I have been compiling and recompiling and recompiling OpenMPI from source all day because I couldn't successfully run the hello world program. mpirun would just sit there returning no errors of any sort and no output. It turns out that my iptables configuration was causing the problem. So, if you are experiencing similar problem, better check your firewall settings. To give a little more detail, OpenMPI uses random ports to communicate so you should open ports to other nodes you will be communicating with. For one node localhost testing environments, you should tell iptables to accept connections from the loopback interface.

Oh, and other thing, while running you may encounter errors like:

[peanutbutter:21391] mca: base: component_find: unable to open vprotocol pessimist: /usr/local/lib/openmpi/mca_vprotocol_pessimist.so: undefined symbol: pml_v_output (ignored)
[peanutbutter:21392] mca: base: component_find: unable to open vprotocol pessimist: /usr/local/lib/openmpi/mca_vprotocol_pessimist.so: undefined symbol: pml_v_output (ignored)


If you do, just apply the below patch, I think it has something to do with network protocol that has been changed.

--- opal/libltdl/ltdl.c.old 2008-03-07 13:47:39.000000000 +0100
+++ opal/libltdl/ltdl.c 2008-03-07 13:48:05.000000000 +0100
@@ -1096,7 +1096,7 @@
lt_user_data loader_data;
const char *filename;
{
- lt_module module = dlopen (filename, LT_LAZY_OR_NOW);
+ lt_module module = dlopen (filename, RTLD_GLOBAL | LT_LAZY_OR_NOW);

if (!module)
{