I believe the problem is that you are only applying the MCA parameters to the first app context instead of all of them:

shell$ mpiexec -v -d -machinefile $PBS_NODEFILE -mca oob_tcp_if_exclude eth0 -mca pls_rsh_agent ssh -np 6 ./hwc.exe : -np 2 ./hwc.exe

The '-mca' parameter will apply the MCA parameter specified only to the app context in which it is specified. In the example you gave (above) it is the first (-np 6 ./hwc.exe) app context that receives these parameters and not the second (-np 2 ./hwc.exe). It is likely that you need these parameters specified for all app contexts.

There are two main ways of doing this:
1) The most common ways is to use the '-gmca' parameter which will mark the following MCA parameter as global across all app contexts:

shell$ mpiexec -v -d -machinefile $PBS_NODEFILE -gmca oob_tcp_if_exclude eth0 -gmca pls_rsh_agent ssh -np 6 ./hwc.exe : - np 2 ./hwc.exe

2) Alternatively you can duplicate the MCA parameters for each app context:

shell$ mpiexec -v -d -machinefile $PBS_NODEFILE -mca oob_tcp_if_exclude eth0 -mca pls_rsh_agent ssh -np 6 ./hwc.exe : - mca oob_tcp_if_exclude eth0 -mca pls_rsh_agent ssh -np 2 ./hwc.exe


If these MCA parameters are required for every run of Open MPI on your system you may consider putting them in the default MCA file, see point 4 in the following FAQ:
http://www.open-mpi.org/faq/?category=tuning#setting-mca-params

Taking a look at the FAQ it seems that we do not discuss the difference between -mca and -gmca mpirun/mpiexec/orterun parameters. However, if you do a 'mpiexec --help' they will appear in the help output.

Hope this helps,
Josh


On Dec 5, 2007, at 1:50 AM, Brian Dobbins wrote:

Hi guys,

I seem to have encountered an error while trying to run an MPMD executable through Open MPI's '-app' option, and I'm wondering if anyone else has seen this or can verify this?

Backing up to a simple example, running a "hello world" executable (hwc.exe) works fine when run as: (using an interactive PBS session with -l nodes=2:ppn=4) mpiexec -v -d -machinefile $PBS_NODEFILE -mca oob_tcp_if_exclude eth0 -mca pls_rsh_agent ssh -np 8 ./hwc.exe

But when I run what should be the same thing via an '--app' file (or implied command line) liks the following fails: mpiexec -v -d -machinefile $PBS_NODEFILE -mca oob_tcp_if_exclude eth0 -mca pls_rsh_agent ssh -np 6 ./hwc.exe : -np 2 ./hwc.exe

My understanding is that these are equivalent, no? But the latter example fails with multiple "Software caused connection abort (103)" errors, such as the following: [xxx:13978] [0,0,2]-[0,0,0] mca_oob_tcp_peer_try_connect: connect to xx.x.2.81:34103 failed: Software caused connection abort (103)

Any thoughts? I haven't dug around the source yet since this could be a weird problem with the system I'm using. For the record, this is with OpenMPI 1.2.4 compiled with PGI 7.1-2.

As an aside, the '-app' syntax DOES work fine when all copies are running on the same node.. for example, having requested 4 CPUs per node, if I run "-np 2 ./hwc.exe : -np 2 ./hwc.exe", it works fine. And I did also try duplicating the mca parameters after the colon since I figured they might not propagate, thus perhaps it was trying to use the wrong interface, but that didn't help either.

  Thanks very much,
  - Brian


Brian Dobbins
Yale University HPC
_______________________________________________
users mailing list
us...@open-mpi.org
http://www.open-mpi.org/mailman/listinfo.cgi/users

Reply via email to