Skip to main content

Irregular parallel algorithms in Java

  • Conference paper
  • First Online:

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 1586))

Abstract

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.

This research is supported in part by the National Science Foundation under grant CCR-9711438.

This is a preview of subscription content, log in via an institution.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. K. Arnold and J. Gosling. The Java TM Programming Language. The JavaTM Series. Addison-Wesley Publishing Company, 1996.

    Google Scholar 

  2. C. C. Ashcraft. The domain/segment partition for the factorization of sparse symmetric positive definite matrices. Engineering Computing & Analysis Technical Report ECA-TR-148, Boeing Computer Services, Seattle, WA, Nov. 1990.

    Google Scholar 

  3. D. F. Bacon et al. Thin locks: featherweight synchronization for Java. In Proc. PLDI’98, pages 258–268, 1998.

    Google Scholar 

  4. R. Biswas and R. C. Strawn. A new procedure for dynamic adaption of three-dimensional unstructured grids. Applied Numerical Mathematics, 13:437–452, 1994.

    Article  MATH  Google Scholar 

  5. G. E. Blelloch. Vector Models for Data-Parallel Computing. The MIT Press, Cambridge, MA, 1990.

    Google Scholar 

  6. G. E. Blelloch. Nesl: A nested data-parallel language (version 2.6). Technical Report CMU-CS-93-129, School of Computer Science, Carnegie Mellon University, Pittsburgh, PA, Apr. 1993. Updated version of CMU-CS-92-103, January 1992.

    Google Scholar 

  7. G. E. Blelloch et al. Implementation of a portable nested data-parallel language. JPDC, 21(1):4–14, Apr. 1994.

    MathSciNet  Google Scholar 

  8. B. L. Blount and S. Chatterjee. An evaluation of Java for numerical computing. In Proc. ISCOPE’98, Dec. 1998. LNCS 1505, pp. 35–46, Springer Verlag.

    Google Scholar 

  9. R. D. Blumofe et al. Cilk: An efficient multithreaded runtime system. In Proc. PPoPP’95, pages 207–216, Santa Barbara, CA, July 1995. ACM.

    Google Scholar 

  10. J. A. Board Jr. et al. Scalable variants of multipole-accelerated algorithms for molecular dynamics applications. Technical Report TR94-006, Department of Electrical Engineering, Duke University, Durham, NC, 1994.

    Google Scholar 

  11. F. Bodin et al. Implementing a parallel C++ runtime system for scalable parallel systems. In Proc. SC’93, pages 588–597, November 1993.

    Google Scholar 

  12. A. A. Chien and J. Dolby. ICC++: AC++ dialect for high-performance parallel computation. In Proc. ISOTAS’96, Mar. 1996.

    Google Scholar 

  13. D. E. Culler et al. Parallel programming in Split-C. In Proc. SC’93, pages 262–273, Nov. 1993.

    Google Scholar 

  14. G. C. Fox. Java for high performance scientific and engineering computing. http://www.npac.syr.edu/projects/javaforcse/.

    Google Scholar 

  15. D. B. Gannon. High Performance Java. http://www.extreme.indiana.edu/hpJava/index.html.

    Google Scholar 

  16. High Performance Fortran Forum. High Performance Fortran language specification. Scientific Programming, 2(1–2):1–170, 1993.

    Google Scholar 

  17. Y. Hu, S. L. Johnsson, and S.-H. Teng. High Performance FORTRAN for Highly Irregular Problems. In Proc. PPoPP’97, pages 13–24, June 1997.

    Google Scholar 

  18. S. F. Hummel, T. Ngo, and H. Srinivasan. SPMD programming in Java. Concurrency: Practice and Experience, 9(6):621–631, June 1997. Special issue on Java for computational science and engineering—simulation and modeling.

    Article  Google Scholar 

  19. Java Grande Forum. The Java Grande Forum charter document. http://www.npac.syr.edu/javagrande/jgfcharter.html.

    Google Scholar 

  20. A. Krall and M. Probst. Monitors and Exceptions: How to implement Java efficiently. Concurrency: Practice and Experience, 10(11):837–850, Sept. 1998.

    Article  Google Scholar 

  21. X. S. Li. Sparse Gaussian Elimination on High Performance Computers. PhD thesis, Department of Computer Science, University of California at Berkeley, Berkeley, CA, Sept. 1996. Available as technical report CSD-96-919.

    Google Scholar 

  22. L. S. Nyland, J. F. Prins, and J. H. Reif. A data-parallel implementation of the fast multipole algorithm. In Proc. DAGS’93, pages 111–122, Hanover, NH, June 1993.

    Google Scholar 

  23. M. Odersky and P. Wadler. Pizza into Java: Translating theory into practice. In Proc. POPL’97 Jan. 1997.

    Google Scholar 

  24. M. Philippsen. Data parallelism in Java. In J. Schaefer, editor, High Performance Computing Systems and Applications. Kluwer Academic Publishers, Boston, Dordrecht, London, 1998.

    Google Scholar 

  25. J. Prins, S. Chatterjee, and M. Simons. Expressing irregular computations in modern Fortran dialects. In D. O’Hallaron, editor, Languages, Compilers, and Run-Time Systems for Scalable Computers, pages 1–16. Springer, 1998. LNCS 1511.

    Google Scholar 

  26. K. E. Schmidt and M. A. Lee. Implementing the fast multipole algorithm in three dimensions. Journal of Statistical Physics, 63(5/6), 1991.

    Google Scholar 

  27. T. J. Sheffler and S. Chatterjee. An object-oriented approach to nested data parallelism. In Proceedings of the Fifth Symposium on the Frontiers of Massively Parallel Computation, pages 203–210, McLean, VA, Feb. 1995.

    Google Scholar 

  28. M. Snir et al. MPI: The Complete Reference. MIT Press, 1996.

    Google Scholar 

  29. The Java collections framework. http://java.sun.com/products/jdk/1.2/docs/api/index.html.

    Google Scholar 

  30. K. Yelick et al. Titanium: A high-performance Java dialect. Concurrency: Practice and Experience, 10(11):825–836, Sept. 1998.

    Article  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

José Rolim Frank Mueller Albert Y. Zomaya Fikret Ercal Stephan Olariu Binoy Ravindran Jan Gustafsson Hiroaki Takada Ron Olsson Laxmikant V. Kale Pete Beckman Matthew Haines Hossam ElGindy Denis Caromel Serge Chaumette Geoffrey Fox Yi Pan Keqin Li Tao Yang G. Chiola G. Conte L. V. Mancini Domenique Méry Beverly Sanders Devesh Bhatt Viktor Prasanna

Rights and permissions

Reprints and permissions

Copyright information

© 1999 Springer-Verlag

About this paper

Cite this paper

Blount, B., Chatterjee, S., Philippsen, M. (1999). Irregular parallel algorithms in Java. In: Rolim, J., et al. Parallel and Distributed Processing. IPPS 1999. Lecture Notes in Computer Science, vol 1586. Springer, Berlin, Heidelberg . https://doi.org/10.1007/BFb0097988

Download citation

  • DOI: https://doi.org/10.1007/BFb0097988

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-65831-3

  • Online ISBN: 978-3-540-48932-0

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics