Hi,
I'd like to dynamically create a group of processes communicating via
MPI. Those processes need to be run without mpirun and create
intracommunicator after the startup. Any ideas how to do this
efficiently?
I came up with a solution in which the processes are connecting one by
one using MPI_Comm_connect, but unfortunately all the processes that
are already in the group need to call MPI_Comm_accept. This means that
when the n-th process wants to connect I need to collect all the n-1
processes on the MPI_Comm_accept call. After I run about 40 processes
every subsequent call takes more and more time, which I'd like to
avoid.
Another problem in this solution is that when I try to connect 66-th
process the root of the existing group segfaults on MPI_Comm_accept.
Maybe it's my bug, but it's weird as everything works fine for at most
65 processes. Is there any limitation I don't know about?
My last question is about MPI_COMM_WORLD. When I run my processes
without mpirun their MPI_COMM_WORLD is the same as MPI_COMM_SELF. Is
there any way to change MPI_COMM_WORLD and set it to the
intracommunicator that I've created?

Thanks,
Grzegorz Maj

Reply via email to