[Beowulf] launching python in parallel

Toon Knapen toon.knapen at fft.be
Thu Apr 19 02:57:44 PDT 2007


Dear beowulfers,

I have been looking into launching python in parallel. There are 
multiple tools currently doing this like PyTrilinos, PyPar, mpi4py etc.

However I was wondering if launching a standard python interpreter using 
mpirun (or any mpi launch script) is portable ?

For instance, I have my small python module (let's say 'start.py') which 
on its turn loads an extension module (written in C) which calls 
MPI_Init. I launch my program using following cl:

mpirun -np 2 /my/path/to/python start.py

where start.py looks like

<start.py>
import my_extension_module
my_extension_module.init() # this will call MPI_Init
</start.py>

When I do this using mpichgm, it works. However using mpich-1.2.5.2 
(ch_p4) it does not work. To me the reason is that ch_p4 passes the 
cl-arguments in the MPI_Init. So whenever the remote python's are 
launched, they are not told which script (start.py) they need to launch.

So therefore I create a short shell script (called start.sh) which 
contains the following

<start.sh>
/my/path/to/python start.py
</start.sh>

However this does not work either. mpirun.ch_p4 refuses to launch the 
second process (start.sh) Tracing the MPI_Init call made by the master, 
he does not even try to create the other process (because he does not 
get into the net_create_slave function).

So the question now is: is `mpirun -np 2 /my/path/to/python start.py` 
supposed to work or not ?

Thanks in advance for any enlightenment on the subject !

toon



More information about the Beowulf mailing list