Many of the examples in this report use a communication library called Adlib. This library is not supposed to have a uniquely special status so far as the HPJava language is concerned. Eventually HPJava bindings for other communication libraries will probably be needed. For example, the Adlib library does not provide the one-sided communication functionality of libraries like the Global Arrays toolkit (www.emsl.pnl.gov:2080/docs/global/ga.html). It doesn't provide optimized numerical operations on distributed arrays like those in ScaLAPACK (www.netlib.org/scalapack). And it doesn't provide highly optimized collective operations for irregular patterns of array access, like those in CHAOS (www.cs.umd.edu/projects/hpsl/chaos.html). These libraries (and others) work with distributed arrays more or less similar in concept to HPJava distributed arrays. Bindings to these or functionally similar libraries might one day be made available for HPJava. For now, this section summarizes essential features of the HPJava binding of Adlib.
The original Adlib was developed independently of the HPJava project, to support HPF translation. The first version of the library called Adlib6.1was implemented during the SHPF project (www.vcpc.univie.ac.at/information/software/shpf) at Southampton University. The library was further developed during the PCRC project at Syracuse University (www.hpjava.org/pcrc). As part of the HPJava project it has been reimplemented again in Java.
All the collective functions in the HPJava version of Adlib are static methods of the class hpjava.adlib.Adlib. All may throw exceptions of type hpjava.adlib.AdlibException. This is an unchecked exception (it is a subclass of java.lang.RuntimeException), so catching these exceptions in the user program is optional. Uncaught exceptions will cause the program to abort, which, for better or worse, is fairly typical practice in parallel programming environments.