On Oct 21, 2008, at 10:37 AM, Adams, Brian M wrote:
>> We do have some environmental variables that we guarantee to
>> be "stable" across releases. You could look for
>> OMPI_COMM_WORLD_SIZE, or OMPI_UNIVERSE_SIZE (there are a
>> couple of others as well, but any of these would do).
> Q: I just wrote a simple C++ program, including mpi.h and getenv to
> check for these two variables and compiled with the mpicxx wrapper
> (openmpi-1.2.5 as distributed with RHEL5). When running this
> program with orterun, these variables come back NULL from the
> environment. The same is true if I just orterun a shell script to
> dump the environment to a file. Am I making an obvious mistake here?
Crud - forgot you are using the old 1.2 series. No, we don't have any
good variables for you to use there. You might consider updating to
1.3 (beta should come out soon) to get something stable. Otherwise,
you're kinda stuck with the OMPI-internal ones, so you'll have to be
prepared to make a change should anyone try to use it with 1.3 or
higher as we go forward.
If you absolutely have to do this with 1.2, your best bet is probably
OMPI_MCA_universe as the others are even worse (many are gone in 1.3).
> Doug is right that we could use an additional command line flag to
> indicate MPI runs, but at this point, we're trying to hide that from
> the user, such that all they have to do is run the binary vs.
> orterun/mpirun the binary and we detect whether it's a serial or
> parallel run.
> As for parsing the command line $argv before MPI_Init, I don't
> think it will help here. While MPICH implementations typically left
> args like -p4pg -p4amslave on the command line, I don't see that
> coming from OpenMPI-launched jobs.
Really? That doesn't sound right - we don't touch the arguments to
your application. We test that pretty regularly and I have always seen
the args come through.
Can you provide an example of where it isn't?
> users mailing list