Irregular Parallel Algorithms in JAVA

The nested data-parallel programming model supports the design and implementation of irregular parallel algorithms. This paper describes work in progress to incorporate nested data parallelism into the object model of Java by developing a library of collection classes and adding a forall statement to the language. The collection classes provide parallel implementations of operations on the collections. The forall statement allows operations over the elements of a collection to be expressed in parallel. We distinguish between shape and data components in the collection classes, and use this distinction to simplify algorithm expression and to improve performance. We present initial performance data on two benchmarks with irregular algorithms, EM3d and Convex Hull, and on several microbenchmark programs.

[1]  K. Schmidt,et al.  Implementing the fast multipole method in three dimensions , 1991 .

[2]  Z. S. Hakura,et al.  Scalable Variants of Multipole-accelerated Algorithms for Molecular Dynamics Applications , 1995 .

[3]  Corporate Rice University,et al.  High performance Fortran language specification , 1993, FORF.

[4]  Katherine Yelick,et al.  Titanium: a high-performance Java dialect , 1998 .

[5]  Andreas Krall,et al.  Monitors and exceptions: how to implement Java efficiently , 1998 .

[6]  Andreas Krall,et al.  Monitors and Exceptions: How to Implement Java Efficiently , 1998, Concurr. Pract. Exp..

[7]  Shang-Hua Teng,et al.  High performance Fortran for highly irregular problems , 1997, PPOPP '97.

[8]  Ken Arnold,et al.  The Java Programming Language , 1996 .

[9]  Rupak Biswas,et al.  A new procedure for dynamic adaption of three-dimensional unstructured grids , 1993 .

[10]  Siddhartha Chatterjee,et al.  An Evaluation of Java for Numerical Computing , 1998, ISCOPE.

[11]  Bradley C. Kuszmaul,et al.  Cilk: an efficient multithreaded runtime system , 1995, PPOPP '95.

[12]  Michael Philippsen,et al.  Data Parallelism in Java , 1998 .

[13]  A ChienAndrew ICC++a C++ dialect for high performance parallel computing , 1996 .

[14]  Jack Dongarra,et al.  MPI: The Complete Reference , 1996 .

[15]  Guy E. Blelloch,et al.  NESL: A Nested Data-Parallel Language (Version 2.6) , 1993 .

[16]  Andrew A. Chien,et al.  ICC++-AC++ Dialect for High Performance Parallel Computing , 1996, ISOTAS.

[17]  Guy E. Blelloch,et al.  Implementation of a portable nested data-parallel language , 1993, PPOPP '93.

[18]  Guy E. Blelloch,et al.  Vector Models for Data-Parallel Computing , 1990 .

[19]  A. Malony,et al.  Implementing a parallel C++ runtime system for scalable parallel systems , 1993, Supercomputing '93.

[20]  Hans-Joachim Bungartz,et al.  High Performance Scientific And Engineering Computing , 1999 .

[21]  Martin Odersky,et al.  Pizza into Java: translating theory into practice , 1997, POPL '97.

[22]  Siddhartha Chatterjee,et al.  Expressing Irregular Computations in Modern Fortran Dialects , 1998, LCR.

[23]  Jonathan Schaeffer,et al.  High performance computing systems and applications , 1998 .

[24]  Harini Srinivasan,et al.  SPMD programming in Java , 1997 .

[25]  T. von Eicken,et al.  Parallel programming in Split-C , 1993, Supercomputing '93.

[26]  Katherine A. Yelick,et al.  Titanium: A High-performance Java Dialect , 1998, Concurr. Pract. Exp..

[27]  Andrea C. Arpaci-Dusseau,et al.  Parallel programming in Split-C , 1993, Supercomputing '93. Proceedings.

[28]  Rice UniversityCORPORATE,et al.  High performance Fortran language specification , 1993 .

[29]  Xiaoye Sherry Li,et al.  Sparse Gaussian Elimination on High Performance Computers , 1996 .

[30]  Message Passing Interface Forum MPI: A message - passing interface standard , 1994 .

[31]  Siddhartha Chatterjee,et al.  An object-oriented approach to nested data parallelism , 1995, Proceedings Frontiers '95. The Fifth Symposium on the Frontiers of Massively Parallel Computation.