...macros
Of course we could run a preprocessor over Java, but this is not a natural procedure in existing Java environments
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
...methods
For earlier work on interfacing Java to PVM see http://www.isye.gatech.edu/chmsr/JavaPVM/ and http://www.cs.virginia.edu/ãjfzj/jpvm.html
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
...Solaris
Interfacing Java to MPICH/P4 was not straightforward, due to unpleasant interactions between the Java run-time and the underlying P4 implementation. For example, standard implementations of both use the UNIX SIGALRM signal. We found it necessary to patch the MPICH 1.0.13 release to work round these incompatibilities. The necessary patches are available from us on request.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
...section
MPI afficionados will note that the use of standard mode send is ``unsafe'', and could deadlock if the system does not provide enough buffering. The same remark could be made about the socket-based version
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
...message
This offset is in units of the buf array element-or the base type of datatype-not of any compound type. The Object + offset presentation is reminiscent of the interface of the arrayCopy utility in the standard Java API.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
......)
Perhaps a good compromise is to provide one container class for each primitive type and one for Object.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
...type
Confusingly enough, this makes our Array more akin to an HPF template than an HPF array. Needless to say, there is no connection between C++ templates and HPF templates.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
...class
This approach is modelled on the Thread and Applet classes in the standard Java API. Other approaches to providing library-wide resources were illustrated in earlier sections.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
...values
Here we will use whole arrays of neighbours and a shift operation. This is arguably the more conventional approach in a data-parallel setting, but the the ghost-edge mechanism can also be fitted into this framework.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
...class
Our Array class is perched somewhere between STL container and iterator classes. This is a slightly awkward position, and it may be more satifactory to separate these functions into different classes.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

Geoffrey Fox, Northeast Parallel Architectures Center at Syracuse University, gcf@npac.syr.edu