LAM/MPI logo

LAM/MPI General User's Mailing List Archives

  |   Home   |   Download   |   Documentation   |   FAQ   |   all just in this list

From: Anthony J. Ciani (aciani1_at_[hidden])
Date: 2005-01-23 19:21:35


Hello All,

On Sat, 22 Jan 2005, Siva Bandhamravuri wrote:
> Hi,
> I was wondering if there are any issues in dynamic process creation with
> MPI_Comm_spawn under the openPBS scheduler.
> Is the MPI_Comm_spawn supported under openPBS. If yes, where are the newly
> created processes allocated. Because under openPBS, only a specific set of
> nodes is given to a MPI job during the job start where as we require the newly
> spawned processes to be allocated to a new node.

I should clarify my previous response. I was assuming that you did not
know the number of daughter processes to start a priori. If you DO KNOW
the number of daughters you will need before hand (say you'll need 16
total, but 8 to start), then you could submit a 16 processor job and use
"mpirun -np 8 n8-15 your_program" to start. This will create the first 8
instances on nodes 8 through 15. After this, you could use;

MPI_Comm_spawn("your_child_program", argv, 8, info, 0, MPI_COMM_WORLD,
child_comm, ierr);

to have rank 0 in MPI_COMM_WORLD start 8 instances of
"your_child_program", which will execute on nodes 0 through 7. It would
then be up to you to figure out how to split the work up amongst your
child programs, as each call to MPI_Comm_spawn starts new programs on n0
up.

BTW, if your parent program will be idle while the children run, then you
should just reuse the same nodes.

------------------------------------------------------------
               Anthony Ciani (aciani1_at_[hidden])
            Computational Condensed Matter Physics
    Department of Physics, University of Illinois, Chicago
               http://ciani.phy.uic.edu/~tony
------------------------------------------------------------