[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