On Mar 2, 2009, at 8:41 AM, Jeff Squyres wrote:

On Mar 2, 2009, at 4:02 AM, Nicolas Deladerriere wrote:

> I think you missed Matt's point -- he was suggesting writing a single script that just reacts accordingly to which host it is on and sets > the environment variable before launching your back-end MPI executable.

I got it, but I would like to be able to do it without creating/ copying new script on all nodes.

Don't you already need to make your MPI executable available on all nodes?

You could also use OMPI's "filem" mechanism to copy the script out to all nodes. I actually never remember the details on this; Josh -- can you fill in here?

You can distribute the binary target of mpirun to all nodes using the --preload-binary option to mpirun:
  shell$ mpirun --preload-binary my-script

You can also distribute other files and directories using the -- preload-files option to mpirun: shell$ mpirun --preload-files=foo.txt,../bar.txt,/home/fred/mydir my-script

Note that this feature is available on the Open MPI trunk, and in the upcoming v1.3.1 (there was a bug in the v1.3.0 release that prevented it from working correctly).

The documentation on this feature is lacking, I'll file a ticket to remind me to write a FAQ on this option.

-- Josh



> Additionally, note that mpirun's -x option *can* set environment variable.

yes but with the following syntax, the $HOST environment variable is interpretated on all first node (where mpirun command is launched) and then exported to all other nodes.
mpirun -np 2 -x FOO="yow_$HOST"
Is there another syntax to use ?
I could then use similar syntax than your previous example, but it is not really conveniant for 128 nodes ! :
mpirun -np 1 -x FOO="yow_n001" : -np 1 -x FOO="yow_n002" .......

You can do a similar syntax in a file -- instead of using :'s to delimit the stanzas, you put each stanza on a separate line.

--
Jeff Squyres
Cisco Systems

_______________________________________________
users mailing list
us...@open-mpi.org
http://www.open-mpi.org/mailman/listinfo.cgi/users

Reply via email to