Java User Group
South Wales


mail suggestions to
omer rana
Development Routes for Message Passing Parallelism in Java

Professor Ken Hawick,
University of Wales, Bangor

Java is an attractive environment for writing portable message passing parallel programs. Considerable work in message passing interface bindings for the C and Fortran languages has been done. We show how this work can be reused and bindings for Java developed. We have built a Pure Java Message Passing Implementation (PJMPI) that is strongly compatible with the MPI standard. Conversely, the imperative programing style bindings are not entirely appropriate for the Java programming style and we have therefore also developed a less compatible system, known as JUMP, that enables many of the message passing parallel technological ideas but in a way that we believe will be more appropriate to the style of Java programs. JUMP is also intended as a development platform for many of our higher level ideas in parallel programming and parallel paradigms that MPI enables but does not directly implement. We review ongoing attempts at resolving this present crisis in reconciling Java and MPI. Our PJMPI system uses either Java RMI or Sockets for initialisation subsequently uses Java sockets for message passing communications. We have looked at some of the more advanced Java technologies, specifically Jini and JavaSpaces, which may contribute to Java message passing, but have found the performance of these to be somewhat deficient at the time of writing. We have therefore designed JUMP to be independent of Jini and JavaSpaces at present although use of these technologies may be strongly desirable. We describe the ClassLoading problem and other techniques we have employed in JUMP to enable a pure Java message passing system suitable for use on local and remote clusters amongst other parallel computing platforms. Our objective for the JUMP system is to produce a lightweight daemon that can manage message passing parallel programs that can be launched from a computational grid like environment.

Ken Hawick is Professor of High Performance Computing and head of the Informatics group at the University of Wales, Bangor. Prior to joining Bangor, he was head of the High Performance Distributed Computing (HPDC) group at the University of Adelaide in Australia. Professor Hawick has extensive experience of developing applications for high performance machines, ranging from clusters of workstations to dedicated supercomputers such as the CM5. Professor Hawick is also very active in the JavaGrande efforts worldwide, and has contributed benchmark suites towards the JavaGrande effort.

[Java User Group, South Wales]