[MPICH] Changing the comm size at runtime
Patrick Gräbel
pgraebel at stud.fh-dortmund.de
Wed Mar 14 09:32:50 CDT 2007
Hi!
I have two executables (Windows/MPICH-2):
master.exe
slave.exe
Both programms set several environment variables (e.g. PMI_SIZE) to
specify the communicator size, rank number and so on, so that the
initial calls to MPI::Init block until the size matches the available
number of ranks. After MPI::Init de-blocks, the cooperative
calculation between master and slave (successfully) begins.
My problem is that I want to change the size while the master is
running and that I can't call MPI::Init again. I can't afford to close
the master programm, i.e. I need to reuse the master so that I can do
another calculation with a varying number of slaves being involved.
Here is an example of what I mean:
1. master starts with SIZE = 2 (RANK 0), blocks
2. slave starts with RANK 1
3. master and slave de-block as 2 available procs match SIZE
4. calculation starts
5. calculation is done, result is available
6. slave leaves.
7. master now wants to start again, but with SIZE = 5
Is there any chance to implement this behaviour with MPICH-2? What
functions/tools do I need for a solution?
Thanks
Patrick
More information about the mpich-discuss
mailing list