From: Peter Maxwell <peter.maxwell@an...> - 2005-01-20 23:22:31
Here's yet another: PyxMPI at
http://cbis.anu.edu.au/software/cogent/PyxMPI-0.6.tar.gz is in some
ways less complete than PyMPI or mpi4py but it does have a couple of
virtues: a pythonic API (everything is done via methods of communicator
objects) and compact source code - 800 lines of Pyrex. It will move
pickled objects point-to-point but it's aimed primarily at operations
on Numeric arrays.
From: Pat Miller <patmiller@ll...> - 2005-01-20 23:42:54
> pythonic API (everything is done via methods of communicator objects)
Just a note that pyMPI does it that way too. I "hoist" methods off
of the WORLD communicator up and shove them in to the module to
look like functions. This is done to ease the transition of C and
FORTRAN programmers [who already know MPI]. Then the code looks a lot
like procedural MPI e.g.
MPI_Bcast(....) | n = mpi.bcast(local)
MPI_Barrier(MPI_COMM_WORLD) | mpi.barrier()
MPI_Allreduce(... MPI_SUM) | all = mpi.allreduce(local,mpi.SUM)
If you like a more objecty model, you can use the communicators and their
# Split into two teams
red = mpi.WORLD.split(range(0,mpi.size,2))
black = mpi.WORLD.split(range(1,mpi.size,2))
if red is not None:
# Must be RED
r = red.bcast(r0)
# Must be black!
b = black.bcast(b1)
* * * * * * * *
On related business...
What features do you think I should be working on improving as the Python MPI
field becomes more competitive?
My current priority list is:
1) Direct [non-pickled] communication for Numarray and Numeric arrays
2) A "remote-communicating-objects" layer [one-sided, interrupting
remote method calls]
3) SIMD support
Pat Miller | (925) 423-0309 | http://www.llnl.gov/CASC/people/pmiller
What hunger is in relation to food, zest is in relation to life. -- Bertrand
Russell, philosopher, mathematician, and author (1872-1970)