OVERVIEW: LPARX [1] (University of California at San Diego) is a domain+specific run-time C++ class library that supports dynamic irregular data structures organized into block and levels. It is specifically targeted to particle methods and multilevel and adaptive finite difference methods.
LPARX application may be written using C++, C or Fortran 77, or a mixture of these.
DYNAMIC/STATIC: Supports dynamic creation/deletion of distributed arrays
DIMENSIONS SUPPORTED: to 4 dimensions
DATA-TYPES SUPPORTED: C++ data types + user-defined classes (packing/unpacking routines must be provided for user-defined classes)
PROGRAMMING MODEL:
SPMD - coarse grained data parallel
LPARX Classes:
Region: Abstract object representing an index space
Grid: Uniform dynamic array instantiated over Region
XArray: Dynamic array (currently 1 dimensional) of Grids
distributed over processors
Operators:
forall construct that operates over all Grids
in a XArray
Reduction operators across processors
Programming Scheme:
Decomposition of computational space into an array of Regions
Assignment of each Region to a processor ->
automatic or user-defined mapping
Create an XArray of Grids corresponding to Regions
Satisfy data-dependencies using Domain Calculus:
grow operation on a Region
copy operation to fill halo
Operate on XArray in parallel using forall construct
CONSISTENCY: Weak consistency - does not guarantee that a remote access/update is complete when the associated call returns. Explicit synchronization must be used to ensure consistency. Consistency is guaranteed on exit from LPARX's for_all loop via an implicit synchronization
DISTRIBUTION: LPARX's standard library of partitioners or user-defined.
ACCESS SCHEME: Nearest neighbor access using array partition overlap (based on ``Domain Calculus''); geometric operators such as grow and intersect defined on array partitions (i.e. Grids) and a copy function defined to fill in overlaps regions from remote a partition
PROGRAMMING INTERFACE: C++, C & Fortran 77 (array data is stored in Fortran standard column major order)
COMMUNICATION HARNESS: Custom MP++ message passing layer built on top of native machine OS of multiprocessor systems or on top of PVM for networked workstations
PLATFORMS SUPPORTED: Intel Gamma, Paragon; CM-5; KSR-1; nCUBE/2; C90; Networked Workstations (PVM)
TARGET APPLICATION DOMAIN: Particle methods; multilevel and adaptive finite difference methods
TOOL HOME PAGE: LPARX