NHSE LogoNHSE Software Catalog


A++/P++ - Object-Oriented array class library

description
http://www.acl.lanl.gov/sunrise/POOMA/aplusplus.html

abstract
A++ is a serial array class library intended for use on either serial machines
or single processors of parallel distributed memory architectures. It's P++
equivalent allows for simulation on parallel architectures with no change to
the A++ syntax. A++/P++ was written by Dan Quinlan and co-workers in
CIC-3. It is implemented in two layers, a machine independent layer in C++
and a machine dependent layer tuned for the vector and memory properties
of the target machine. A++/P++ is designed for both high efficiency and
portability.

A++/P++ provides arrays of from one to four dimensions. Array operators
and functions operate on the arrays independently of the array dimensions.
The syntax associated with the manipulation of the arrays is very similar to
FORTRAN 90 array extensions. A++/P++ represents arrays as objects,
specifically arrays of double, float, and integer. Each type of array is defined
as a class; each class overloads the standard arithmetic and relational
operators. Additional functions overload the standard math library functions,
such as sqrt() and con(), and so provide equivalent operations for array
objects.

environment
Machine dependent layers have been implemented on the Cray,
CM-5 and Unix workstations.

contact
Jeff Brown (jxyb@lanl.gov)
Richard Barrett (rbarrett@lanl.gov)
Bob Boland (wrb@lanl.gov)
Suresh Damodaran-Kamal (dk@lanl.gov)
MaryDell Tholburn (marydell@lanl.gov)

keywords
distributed array; distributed memory mutliprocessor;
sequential architecture; object library; high level parallel library;
runtime system; data parallelism; structured grid;
architecture independence

reference
Max Lemke and Daniel Quinlan, ``P++, a C++ Virtual Shared Grids Based
Programming Environment for Architecture-Independent Development of
Structured Grid Applications'', Lecture Notes in Computer Science, Parallel
Processing: CONPAR 92 - VAPP V, Springer Verlag, pp. 121-126, Sep. 1992,
Proceedings of the Second Joint International Conference on Vector and
Parallel Processing, Lyon, France.

Rebecca Parsons, ``A++/P++ Array Classes for Architecture Independent
Finite Difference Computations'', OON-SKI'94 - The Object-Oriented
Numerics Conference, Sunriver, Oregon, pp. 408-418, Apr. 1994.


nhse-librarian@netlib.org