next up previous contents
Next: Process Groups Up: NPAC PCRC Runtime Kernel Previous: Contents

Introduction

The library defined in this document is designed as a common runtime kernel for manipulating HPF-style regular distributed arrays. It is not expected that the kernel interface described here will be used directly by an application programmer. It may not even appear directly in code generated by a compiler. Additonal interface code, built on top of the kernel, will probably be needed.

One example of a user-level interface to the kernel is the ad++ interface. This is a set of C++ header files which define type-secure template classes--container classes--representing distributed arrays, various macros implementing distributed control constructs, and template functions for performing transformations on distributed arrays. The latter functions fulfil a role something like the array transformational intrinsics of Fortran 90. In particular, they abstract communication.

Compiler-level interfaces, on the other hand, provide any additional run-time structure assumed by the distributed array model of the source language, and make the kernel callable from the target language of the compiler. In principle this target language could be machine code, but historically the library has been used by source-to-source translators targetting Fortran 77 or Fortran 90. So existing ``compiler-level'' interfaces to the kernel are actually Fortran bindings. A Java interface is under development.

The kernel itself provides:

This document is not supposed to be read in isolation. The underlying model of data distribution should be understood, for example by learning the user-level interface to the library, before attempting direct use of the kernel.

The next three chapters define the components of the Adlib array descriptor--groups, ranges, then the array descriptor record itself. Chapter 5 describes the communication library. This will followed by a chapter on the ad++ interface, then a chapter about using the Adlib descriptor technology in translation of distributed loops. A final chapter will discuss the implementation of the communication schedules.


next up previous contents
Next: Process Groups Up: NPAC PCRC Runtime Kernel Previous: Contents

Guansong Zhang
Fri Oct 9 12:29:23 EDT 1998