OK. I appreciate the suggestion and will definitely try it out. Thanks, Allen
On Fri, 2009-06-05 at 10:14 -0400, Jeff Squyres wrote: > On Jun 2, 2009, at 3:26 PM, Allen Barnett wrote: > > I > > guess what I'm asking is if I will have to make my partitioner an > > OpenMPI program as well? > > > > > If you use MPI_COMM_SPAWN with the 1.2 series, yes. > > Another less attractive but functional solution would be to do what I > did for the new command notifier due in the OMPI v1.5 series > ("notifier" = subsystem to notify external agents when OMPI detects > something wrong, like write to the syslog, send an email, write to a > sysadmin mysql db, etc., "command" = plugin that simply forks and runs > whatever command you want). During MPI_INIT, the fork notifier pre- > forks a dummy process. This dummy process then waits for commands via > a pipe. When the parent (MPI process itself) wants to fork a child, > it sends the argv to exec down the pipe and has the child process > actually do the fork and exec. > > Proxying all the fork requests through a secondary process like this > avoids all the problems with registered memory in the child process. > This is icky, but it is an unfortunately necessity for OS-bypass/ > registration-based networks like OpenFabrics. > > In your case, you'd want to pre-fork before calling MPI_INIT. But the > rest of the technique is pretty much the same. > > Have a look at the code in this tree if it helps: > > > https://svn.open-mpi.org/trac/ompi/browser/trunk/orte/mca/notifier/command