- ...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.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.