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. Specifically, instead of:

mpirun ... my_mpi_app

you would do

mpirun ... script.sh

and script.sh would be something like Matt mentioned; it constructs the GMON_OUT_PREFIX environment variable and then launches my_mpi_app.

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

-----
shell$ cat run
#!/bin/sh
echo $FOO
shell$ mpirun -np 1 -x FOO=bar ./run : -np 1 -x FOO=yow ./run
bar
yow
shell$
-----

On Feb 27, 2009, at 2:36 PM, Nicolas Deladerriere wrote:

Matt,

Thanks for your solution, but I thought about that and it is not really convenient in my configuration to change the executable on each node.
I would like to change only mpirun command.



2009/2/27 Matt Hughes <matt.c.hughes+o...@gmail.com>
2009/2/27 Nicolas Deladerriere <nicolas.deladerri...@gmail.com>:
> I am looking for a way to set environment variable with different value on > each node before running MPI executable. (not only export the environment
> variable !)

I typically use a script for things like this.  So instead of
specifying your executable directly on the mpirun command line,
instead specify the script.  The script can set the environment
variable, then launch your executable.

#!/bin/csh
setenv GMON_OUT_PREFIX 'gmon.out_'`/bin/uname -n`
myexe

mpirun -np 2 --bynode --hostfile CLUSTER_NODES myscript

I'm not sure if that csh syntax is right, but you get the idea.

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

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


--
Jeff Squyres
Cisco Systems

Reply via email to