Last month Pat Miller outlined how to encapsulate mpi code so that it will
run regardless of the presence/absence of mpi as follows:
value = ...
if mpi is not None:
value = mpi.allreduce(value)
Sometimes you need to debug your actual mpi code to find out where you
messed up. I discovered that you can run the graphical debugger under idle
at np 1, AS LONG AS you start up idle *without* the network subprocess,
which is used for debugging.
If the startup directory was "/home/jcook/python/Python-2.4", then you could
use the following command to startup idle under pyMPI. Note the "-n" to
switch off the debugging subprocess.
mpirun -np 1 /home/jcook/python/Python-2.4/bin/pyMPI Lib/idlelib/idle.py -n
After idle starts, you can load the file you want to debug and step into it
or set a breakpoint and run it. I used it to find a difficult error, where
(in some low level function) one input had to be an exact multiple of
another - but the code never checked for this (because I never added it).
pyMPI had no trouble running the debugger, so I found it fairly quickly. It
would be nice to use Idle with np >1, but I have not figured out how to do