I have a problem that I can't seem to figure out from searching the mailing
list archive. I have a code that repeatedly spawns (via MPI_COMM_SPAWN) a
group of 8 processes and then waits for them to finish. The problem is that
OpenMPI (I've tried 1.3.1 and 1.3.3) opens a pipe each time MPI_COMM_SPAWN
is called, but this pipe never gets closed (even if I call MPI_COMM_FREE on
both the parent and child). Therefore, eventually my master process hits the
limit of open file descriptors and cannot spawn any more. I cannot figure
out why this is happening since I am only spawning 8 jobs at a time.
I should note that I don't exchange any data over the child
intercommunicators -- they exist solely so I can call MPI_BARRIER on them
(the spawned processes are programed to call MPI_BARRIER directly before
they call MPI_FINALIZE, thus indicating that they are done doing their
I'd appreciate any suggestions as to what I might be doing wrong with this
that is causing OpenMPI to hold the pipes open.