> 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. > 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" .......* Regards Nicolas 2009/2/28 Jeff Squyres <jsquy...@cisco.com> > 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<matt.c.hughes%2bo...@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 > > > _______________________________________________ > users mailing list > us...@open-mpi.org > http://www.open-mpi.org/mailman/listinfo.cgi/users >