mpiexec and tm fundamentals

Joshua Bernstein jbernstein at penguincomputing.com
Wed Oct 3 18:30:59 EDT 2007


Hello,

	Forgive me if I'm asking for a bit of a review, but I'm looking for a 
bit of clarification as to what happens when mpiexec is used versus 
saying launching an MPICH program from the command line.

	It is my understanding that mpiexec uses the tm PBS interface to "start 
a job on the remote node". From what I gather, mpiexec calls tm_event 
that is a message sent out to each mom that says "start this jobs". The 
pbs_mom, then simply forks the process on the remote node.

	The next step would be in setting up the MPI communication. How does 
the process forked by pbs_mom then know it should be apart of a MPI ring 
and not just a single-threaded instance of itself. Are the envars 
injected into the process' environment sufficient to tell MPI library to 
create the ring?

	Ultimately, I'm wondering how a process that is NOT started using 
something like "mpirun", (and instead started by pbs_mom) know how to go 
about creating an MPI ring with other proceeses started by the other 
pbs_moms.

	Any insight would greatly help debug a rather special case situation.

-Joshua Bernstein
Software Engineer
Penguin Computing


More information about the mpiexec mailing list