Skip to main content

Java for Large-Scale Scientific Computations?

  • Conference paper
  • First Online:
Large-Scale Scientific Computing (LSSC 2001)

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

Included in the following conference series:

Abstract

The Java programming language has its origins in the development of portable internet applications, that are interpreted on the client machine. However, a number of software projects have adopted it as the language of choice for a wide variety of applications, including numerically intensive scientific computing. Given its heritage, the suitability of Java for such application domains remains questionable, which is reflected in large number of users reporting poor performance compared to native compilers for C or Fortran.

At heart, Java is an object-oriented language enabling the rapid development of modular and maintainable programs. It provides an integral security modeland features array bounds checking, arbitrarily shaped arrays, a deterministic floating-point arithmetic on all platforms, automatic memory management using garbage collection, multi-threaded execution and a portable byte code representation. These features ease the development of scientific applications but may hinder efficient execution of the applications. This article shows state of the art compilation techniques addressing these language features to achieve optimal performance. Efficient solutions for a large number of performance problems encountered in the past are available in the current generation of Java compilers. We may thus conclude that a maturing Java is suited for large scale scientific applications.

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

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. R. Bodik, R. Gupta, and V. Sarkar. ABCD: Eliminating array bound checks on demand, in Conference on Programming Language Design and Implementation, SIGPLAN, Vancouver, ACM, 35(5), 321–333, 2000.

    Google Scholar 

  2. D. F. Bacon, R. Konuru, C. Mruthy, and M. Serrano. Thin locks: Featherweight synchronization for Java, in Conference on Programming Language Design and Implementation, SIGPLAN, Montreal, ACM, 33(5), 258–268, 1998.

    Google Scholar 

  3. D. Detlefs and O. Agesen. The case for multiple compilers, in Proc. OOPSLA 1999 VM Workshop on Simplicity, Performance and Portability in Virtual Machine Design, 1997.

    Google Scholar 

  4. R. Fitzgerald, T. B. Knoblock, E. Ruf, B. Steensgaard, and D. Tarditi. Marmot: an optimizing compiler for Java, Software-Practice and Experience, 30(3), 199–232, 2000.

    Article  Google Scholar 

  5. S. Gehmawat, K. H. Randall, and D.J. Scales. Field analysis: Getting useful and low-cost interprocedural information, in Conference on Programming Language Design and Implementation, SIGPLAN, Vancouver, ACM, 35(5), 334–344, 2000.

    Google Scholar 

  6. A. Krall and R. Grafl. CACAO-a 64 bit JavaVM just-in-time compiler, Concurrency: Practice and Experience, 9(11), 1017–1030, 1997.

    Article  Google Scholar 

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

    Article  Google Scholar 

  8. A. Krall. Efficient JavaVM just-in-time compilation, in Jean-Luc Gaudiot, (ed.), International Conference on Parallel Architectures and Compilation Techniques, Paris, IFIP,ACM,IEEE, North-Holland, 205–212, 1998.

    Google Scholar 

  9. A. Krall and P. Tomsich. Garbage collection for large memory Java applications, in Proc. of the 7th European Conference on High-Performance Computing and Networking (HPCN Europe‘99), Lecture Notes in Computer Science,1593, Springer Verlag, 895–907, 1999.

    Google Scholar 

  10. J. E. Moreira, S. P. Midkoff, M. Gupta, P. V. Artigas, M. Snir, and R. D. Lawrence. Java programming for high-performance numericalcomputing, IBM Systems Journal, 39(1), 21–56, 2000.

    Article  Google Scholar 

  11. NaturalBridge. BulletTrainTM optimizing compiler and runtime for JVM bytecode, http://www.naturalbridge.com.

  12. P. Pominville, F. Quian, R. Vallee-Rai, L. Hendren, and C. Verbrugge. A framework for optimizing Java using attrributes, in CASCON, Mississauga, IBM, 2000.

    Google Scholar 

  13. E. Ruf. Effective synchronization removalfor Java, in Conference on Programming Language Design and Implementation, SIGPLAN, Vancouver, ACM, 35(5) 208–218, 2000.

    Google Scholar 

  14. T. Suganuma, T. Ogasawara, M. TaT. Yasuekeuchi,, M. Kawahito, K. Ishizaki, and H. Komatsuatani. Overview of the IBM Java just-in-time compiler, IBM Systems Journal, 39(1), 175–193, 2000.

    Article  Google Scholar 

  15. D. J. Scales, K. H. Randall, S. Ghemawat, and J. Dean. The Swift compiler: Design and implementation, Technical Report 2000/2, Compaq Western Research Laboratory, April2000.

    Google Scholar 

  16. T. Smith, S. Srinivas, P. Tomsich, and J. Park. Practicalexp eriences with Java compilation, in Proceedings of the Intl. Conf. on High-Performance Computing, Lecture Notes in Computer Science, Springer, 1970, 2000.

    Google Scholar 

  17. Tower Technologies. TowerJ 3.0: A new generation native Java compiler and runtime environment, http://www.towerj.com .

  18. J. Vitek, N. Horspool, and A. Krall. Efficient type inclusion tests, in T. Bloom, (ed.), Conference on Object Oriented Programming Systems, Languages & Applications (OOPSLA ‘97), Atlanta, ACM, 142–157, 1997.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2001 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Krall, A., Tomsich, P. (2001). Java for Large-Scale Scientific Computations?. In: Margenov, S., Waśniewski, J., Yalamov, P. (eds) Large-Scale Scientific Computing. LSSC 2001. Lecture Notes in Computer Science, vol 2179. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-45346-6_23

Download citation

  • DOI: https://doi.org/10.1007/3-540-45346-6_23

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-43043-8

  • Online ISBN: 978-3-540-45346-8

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics