next up previous contents
Next: Implementation of Collectives Up: A high-level communication library Previous: A high-level communication library   Contents

Background

A C++ library called Adlib [12] was completed in the Parallel Compiler Runtime Consortium (PCRC) [19] project. It was a high-level runtime library designed to support translation of data-parallel languages [16]. Initial emphasis was on High Performance Fortran (HPF), and two experimental HPF translators used the library to manage their communications [38,58]. It incorporated a built-in representation of a distributed array, and a library of communication and arithmetic operations acting on these arrays. The array model supported general HPF-like distribution formats, and arbitrary regular sections.

Initially HPJava used a JNI wrapper interface to the C++ kernel of the PCRC library. The library described here borrows many ideas form the PCRC library, but for this project we rewrote high-level library from the scratch for Java. It was extended to support Java object types, to target Java based communication platforms and to use Java exception handling--making it ``safe'' for Java. The Java version of the Adlib library is developed on top of mpjdev. The mpjdev API can be implemented portably on network platforms and efficiently on parallel hardware (see Chapter 5).

The Adlib series of libraries support collective operations on distributed arrays. A call to a collective operation must be invoked simultaneously by all members of some active process group, which may or may not be the entire set of processes executing the program. Communication patterns supported include HPF/Fortran 90 intrinsics such as cshift. More importantly they include the regular-section copy operation, remap, which copies elements between shape-conforming array sections regardless of source and destination mapping. Another function, writeHalo, updates ghost areas of a distributed array. Various collective gather and scatter operations allow irregular patterns of access. The library also provides essentially all Fortran 90 arithmetic transformational functions on distributed arrays and various additional HPF library functions.


next up previous contents
Next: Implementation of Collectives Up: A high-level communication library Previous: A high-level communication library   Contents
Bryan Carpenter 2004-06-09