Java/DSM [#!JAVADSM!#] is heterogeneous computing system which implements a JVM on top of the Tread-Marks DSM (distributed shared memory) system [#!TreadMarks!#]. In a DSM system, no explicit communication is necessary and that eliminates the need for the programmer to write message-passing code. Because of the portability feature of Java, the combination of Java and DSM completely hides the hardware differences and the distributed nature of the system from the programmer view, providing a better platform for heterogeneous computing environments.
JavaNow [#!JAVANOW99!#] is a pure Java based framework on shared memory system that includes features found in Linda, Actors, and Message Passing Interface (MPI). It creates a PVM like virtual parallel machine and provides distributed associative shared memory. JavaNow is currently available as stand-alone software and must be used with a remote (or secure) shell tool in order to run on a network of workstations.
Titanium [#!TITANIUM98!#] is a Java based language and system for high-performance parallel computing. It has additional features over Java like immutable classes, multidimensional arrays, an explicitly parallel SPMD model of computation with a global address space, and a mechanism for programmer to control memory management. Immutable classes allow the compiler pass objects by value. It does not provide any special support for distributed arrays, and the programming style is quite different to HPJava. Because the Titanium compiler translates Titanium into C, users do not have full access to the AWT or certain other Java libraries directly from Titanium.
Spar [#!SPAR97!#] is a Java-based language for array-parallel programming. Spar has been designed as part of the Automap project, in which a compiler and run-time system are being developed for distributed memory systems. Like our language it introduces multi-dimensional arrays, array sections, and a parallel loop. There are some similarities in syntax, but semantically Spar is very different to HPJava. Spar expresses parallelism but not explicit data placement or communication--in this sense it is a higher level language--closer to HPF.
javar [#!JAVAR97!#] is a simple Java restructuring compiler, written in C, that can automatically transform a Java program into a form in which implicit parallelism is made explicit by means of multi-threading.
The WebFlow [#!WEBFLOW!#] of Northeast Parallel Architectures Center, Syracuse University, is a particular programming paradigm implemented over a virtual Web accessible metacomputer, providing a dataflow-programming model. A WebFlow application is given by a computational visually edited by end-users, using Java applets. Modules are written by module developers, people who have only limited knowledge of the system on which the modules will run. They need not concern themselves with issues such as allocating and running the modules on various machines, creating connections among the modules, sending and receiving data across these connections, or running several modules concurrently on one machine. The WebFlow system hides these management and coordination functions from the developers, allowing them to concentrate on the modules being developed.
IceT [#!ICET97!#] is a collaborative, multi-user environment. IceT provides mechanism by which resources can be made available to the system for use by users who do not have log-on privileges. The goals of this metacomputing-based approach include better utilization of larger resource bases, as well as an enhanced collaborative environment for high performance computing. Among the challenges introduced by this idea are the numerous security issues introduced by code-upload capabilities for non-privileged uses.
In the next chapter we will review in detail our own HPJava parallel programming environment. This will provide a setting for the main original content of the dissertation.