[Mpi3-tools] Standardized MPI_COMM_WORLD rank environment variable?

John DelSignore John.DelSignore at roguewave.com
Tue Apr 24 14:46:49 CDT 2012

Hi Jeff,

Jeffrey Squyres wrote:
> Rayson Ho has been working with a few tools recently (e.g., Google's
> gperftools) that do things like profile (MPI) processes and then
> output files with meta data about the run.  Valgrind does analogous
> things.
> The problem is that if all the MPI processes are running in the same
> networked filesystem directory, they need a way to write unique
> output filenames.
> A common way to solve this has been to include the process'
> MPI_COMM_WORLD rank somewhere in the filename.  Open MPI's run time
> sets the OMPI_COMM_WORLD_RANK environment variable with that proc's
> MPI_COMM_WORLD rank.  Likewise, MPICH2 sets the PMI_RANK environment
> variable.
> These env variables can then be used to form the tool's output
> filename, and all is well.
> My question is: is it worth it to standardize an environment variable
> name (or some other mechanism) for a tool to get an MPI process' rank

I think so.

> I admit that this gets murkier when there are multiple MPI processes
> per OS process, but that problem, too, will need to be solved by the
> tools...

I'm not familiar with any implementations where there are multiple MPI processes per OS process. I did read Snir's proposal, but I can't say that I'm less confused about what it implies relative to an MPI process's rank in MPI_COMM_WORLD. Are you saying that a single OS process may have contain multiple MPI processes where each MPI process has a unique rank in MPI_COMM_WORLD? And therefore, if we try to use the environment to identify an OS process's rank in MPI_COMM_WORLD, it would have to be more like a list of ranks rather than a single value?

Cheers, John D.

More information about the mpiwg-tools mailing list