pnumpy
======

$Id: README 8 2014-02-02 15:23:00Z pletzer $

"Parallel computing in N dimensions made easy" 

pnumpy is a very lightweight implementation of distributed arrays,
which runs on architectures ranging from multi-core laptops to large
MPI clusters.  pnumpy is based on numpy and mpi4py and supports arrays in
any number of dimensions. Processes can access remote data using a "get" 
method. This can be used to access neighbor ghost data but is more 
flexible as it allows to access data from any process--not necessarily
a neighboring one. pnumpy is designed to work seamlessly with numpy's 
slicing operators ufunc, etc., making it easy to transition your code
from using numpy arrays to pnumpy arrays. 

Getting pnumpy
--------------

Stable versions of pnumpy can be accessed and installed using 

$ [sudo] pip install pnumpy

or

$ [sudo] easy_install pnumpy

The latest source version can be accessed anonymously from the sourceforge site
using the command:

$ svn co https://svn.code.sf.net/p/pnumpy/code/trunk pnumpy

Building pnumpy by hand
-----------------------

pnumpy needs python 2.x, mpi4py, and numpy. To install pnumpy type:

$ [sudo] python setup.py install

or 

$ python setup.py install --prefix=<install_directory> 

if you wish to install pnumpy under install_directory (make sure 
to set the PYTHONPATH environment variable to
 <install_directory/lib/python<version>/site-packages).

Documentation
-------------

Please visit https://sourceforge.net/p/pnumpy/wiki/Home/ for examples showing 
how to use pnumpy.

Testing
-------

$ cd tests
$ mpiexec -n 4 python testDistArray.py (or any other test)

Contact
-------

Send email to Alexander Pletzer (alexander _at_ gokliya _dot_ net) for bug 
reports, questions, and request for additional features. 
