Hello Bill

Thanks for your mail.

First up, the raw_forms have been deprecated and replaced by the keyword argument 'buffer'. (See the DOC file under Programming for efficiency: http://pypar.svn.sourceforge.net/viewvc/pypar/documentation/DOC?view=markup
This is the same thing and useful when you know that you are transmitting Numeric (numpy) arrays. Does the unit test suite (test_pypar.py) run for you?
I suspect demo3 just hasn't been updated. If you can I'd appreciate it muchly.

Documentation - uh oh. I wrote the DOC file which gives a brief description of each function and what it returns.

I also made some attempts at proper LaTeX documentation. My feeble attempts are available at
The reason they don't compile is that I never got around to finishing them. Sorry.

Non-blocking versions should be very easy to do if you follow the general skeleton of the rest of pypar. Are you sure you really need unblocking sends and receives?
Most implementations of MPI actually buffers the message and allows the program to move on. In addition, scalability rarely relies on this feature. But if you wish to implement them, I'd be more than happy for you to get access to the repository and incorporate the functions into pypar.

I would love to devote some time to evolving pypar but it has enough functionality for our uses and most of my time goes towards another FOSS project, ANUGA.

Let me know if this brief mail was helpful

All the best
Ole Nielsen.

On Jan 24, 2008 6:22 PM, Bill McKie <william.r.mckie@nasa.gov> wrote:
Hi Ole

I recently picked up the latest pypar distribution tarballs:


and have been exploring pypar under FC6 & FC8 Linux with openmpi-1.1.4.

Pypar from pypar-2.0.2_alpha_36.tgz installed well into the expected
/usr/lib/python*/site-packages/ area.

 From pypar_demos-2.0.2_alpha_36.tgz, the demo programs ring_example.py
and demo2.py ran ok with various numbers of MPI processes.

But demo3.py appears to call some pypar functions that do not exist,
e.g. pypar.Get_processor_name() and pypar.raw_receive().

Starting an interactive python session, importing pypar, and looking at
dir(pypar), I see that pypar.get_processor_name (lower case g) is there,
but no pypar.raw_receive.

Could the demo files in pypar_demos-2.0.2_alpha_36.tgz be out of sync
with the corresponding pypar-2.0.2_alpha_36.tgz distribution?  Or did my
pypar install not include all the expected functions?

I encountered fatal errors when I tried to process the .tex files under
pypar_documentation-2.0.2_alpha_36.tgz with latex.

Also, I'm wondering is there is a way to use non-blocking MPI send and
receive with pypar?

Is there documentation that shows what each pypar function returns?

Thanks, Ole.  I really appreciate the design of pypar to not require a
special version of the python interpreter.

Bill McKie