[Matrix-SIG] Version 1.0 of Python Interface to Global Arrrays

Harrison, Robert J Robert.Harrison@pnl.gov
Thu, 09 Dec 1999 14:14:54 -0800

The link at the bottom is to an initial Python wrapper around the
Global Arrays library.  This is a numerically-oriented, portable, 
parallel programming environment including distributed, shared,
multi-dimension arrays with both one-sided and collective 
operations, message passing, and interfaces to parallel BLAS and 
linear algebra packages.  The Numeric extension is used to 
handle local data.

For sometime we've been using Python embedded into our
massively parallel computational chemistry code in order to
provide the end-user with the ability to control fairly
high-level capabilities.  However, we've become so enamored 
with Python that we're considering exposing a lot more 
of our C and Fortran APIs.  Most of these APIs are specific
to our application (molecular and solid state electronic structure
and molecular dynamics), but the parallel programming tools
may be of wider interest, hence this post.

The GA library (C and Fortran interfaces, and the Python interface) 
is freely distributed in the public domain, and, since many projects
rely upon it, it is well supported. It runs on every parallel 
computing platform to which we have access including both massively
parallel super-computers and clusters of SMP workstations. GA 
inter-operates with any of the MPI, TCGMSG or PVM message passing
libraries (the Python interface has only been tested with MPI and

There are many things still to do, including understanding how to
use the multiarray object to provide slicing, but the current
version is sufficiently complete and robust to be useful.


Robert Harrison (robert.harrison@pnl.gov)