next up previous
Next: Interpreted Environments. Up: Java and High-Performance Computing Previous: Performance.

Parallelism.

To discuss parallel Java, we consider four forms of parallelism seen in applications.

  1. Data Parallelism. By data parallelism we mean large-scale = parallelism found from parallel updates of grid points, particles, and other basic components in scientific computations (see Chapter gif). Such parallelism is supported in Fortran by either high-level data parallel HPF or, at a lower level, Fortran plus message passing. Java has no built-in parallelism of this type, but the lack of pointers means that natural parallelism is less likely to be obscured. There seems no reason why Java cannot be extended to high-level data-parallel form (HPJava) in a similar way to Fortran (HPF) or C++ (HPC++). Such an extension can be done by using threads on shared-memory machines, while in distributed-memory machines, message passing may be used.
  2. Modest-Grain Functional Parallelism. Functional parallelism refers to the Functional parallelism arises when... type of parallelism used when computation and I/O operations are overlapped, a situation exploited extensively by Web browsers. This parallelism is built into the Java language with threads but has to be added explicitly with libraries for Fortran and C++.
  3. Object Parallelism. Object parallelism is quite natural for C++ = or Java. Java can use the applet mechanism to represent objects portably.
  4. Metaproblem Parallelism. Metaproblem parallelism occurs in applications that are made up of several different subproblems, which themselves may be sequential or parallel.



Theresa Canzian
Fri Mar 13 01:17:33 EST 1998