On 6/16/2012 8:03 AM, Roland Schulz wrote:
Hi,

I would like to start a single process without mpirun and then use MPI_Comm_spawn to start up as many processes as required. I don't want the parent process to take up any resources, so I tried to disconnect the inter communicator and then finalize mpi and exit the parent. But as soon as I do that the children exit too. Why is that? Can I somehow change that behavior? Or can I wait on the children to exit without the waiting taking up CPU time?

The reason I don't need the parent as soon as the children are spawned, is that I need one intra-communicator over all processes. And as far as I know I cannot join the parent and children to one intra-communicator.
You could use MPI_Intercomm_merge to create an intra-communicator out of the groups in an inter-communicator and pass the inter-communicator you get back from the MPI_Comm_spawn call.

--td

The purpose of the whole exercise is that I want that my program to use all cores of a node by default when executed without mpirun.

I have tested this with OpenMPI 1.4.5. A sample program is here: http://pastebin.com/g2XSZwvY . "Child finalized" is only printed with the sleep(2) in the parent not commented out.

Roland

--
ORNL/UT Center for Molecular Biophysics cmb.ornl.gov
865-241-1537, ORNL PO BOX 2008 MS6309


_______________________________________________
users mailing list
users@open-mpi.org
http://www.open-mpi.org/mailman/listinfo.cgi/users

--
Terry D. Dontje | Principal Software Engineer
Developer Tools Engineering | +1.781.442.2631
Oracle - Performance Technologies
95 Network Drive, Burlington, MA 01803
Email terry.dontje@oracle.com