Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Skip to main content

JaMake: A Java Compiler Environment

  • 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

A language of choice for general-purpose programming, Java is quickly becoming popular in more specialized areas, such as scientific computing. However, even though the compilation technologies have significantly improved Java execution, performance is still the main obstacle to the use of Java for scientific applications. Although good Java Virtual Machine implementations are approaching the performance of Fortran on similarly-coded applications, significant performance problems remain because of the power of the object-oriented programming paradigm. Our experiments show that full use of polymorphic, object-oriented programming can result in performance penalties of up to two orders of magnitude. To address this performance difficulty, the authors have developed the JaMake Java transformation system, which uses advanced program analysis and transformation techniques to allow programmers to create extensible and maintainable programs using object-oriented design, while generating Java programs whose performance approaches that of hand-optimized, Fortran-style code. Experiments on our collection of object-oriented scientific programs have shown that transformation by JaMake can yield speed-ups of a factor of ten or more, bringing the performance of these object-oriented programs to within 75% of hand-optimized, Fortran-style code.

This work is sponsored by Compaq and LACSI.

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

Access this chapter

Subscribe and save

Springer+ Basic
$34.99 /Month
  • Get 10 units per month
  • Download Article/Chapter or eBook
  • 1 Unit = 1 Article or 1 Chapter
  • Cancel anytime
Subscribe now

Buy Now

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.

Similar content being viewed by others

References

  1. F.E. Allen and J. Cocke. A catalogue of optimizing transformations, in Design and Optimization of Compilers, Prentice-Hall, 1–30, 1972.

    Google Scholar 

  2. P. Briggs, K. Cooper, T. Harvey, and T. Simpson, Practical improvements to the construction and destruction of static single assignment form, Software: Practice and Experience, 28(8), 859–881, 1998.

    Google Scholar 

  3. Z. Budimlić. Compiling Java for High Performance and the Internet, PhD thesis, Rice University, 2001.

    Google Scholar 

  4. Z. Budimlić and K. Kennedy. Optimizing Java: Theory and practice, Concurrency: Practice and Experience, 9(6), 445–463, 1997.

    Article  Google Scholar 

  5. Z. Budimlić and K. Kennedy. Static interprocedural optimizations in Java, Technical Report CRPC-TR98746, Rice University, December 1998.

    Google Scholar 

  6. Z. Budimlić and K. Kennedy. Prospects for scientific computing in polymorphic, object-oriented style, in Proceedings of the Ninth SIAM Conference on Parallel Processing for Scientific Computing, San Antonio, Texas, March 1999.

    Google Scholar 

  7. Z. Budimlić, K. Kennedy, and J. Piper. The cost of being object-oriented: A preliminary study, Scientific Programming, 7(2), 87–95, 1999.

    Article  Google Scholar 

  8. R. Cartwright. Encoding machine-specific optimization in generic byte code by using local variables as pseudo-registers, United States Patent, 6075942, June 2000.

    Google Scholar 

  9. C. Chambers and D. Ungar. Customization: Optimizing compiler technology for SELF, a dynamically-typed object-oriented programming language, in Proceedings of the ACM SIGPLAN 89 Conference on Program Language Design and Implementation, 24(7), 146–160,1989.

    Google Scholar 

  10. K. Cooper, M. Hall, and K. Kennedy. Procedure cloning, in Proceedings of the 1992 International Conference on Computer Languages, Oakland, California, 96–105, 1992.

    Google Scholar 

  11. K. Cooper, M. Hall, and K. Kennedy. Ametho dology for procedure cloning, Computer Languages, 19(2), 105–117, 1993.

    Article  Google Scholar 

  12. R. Cytron, J. Ferrante, B. K. Rosen, M. N. Wegman, and F. K. Zadeck. An efficient method of computing static single assignment form, in Conference Record of the Sixteenth ACM Symposium on the Principles of Programming Languages, Austin, Texas, 25–35, 1989.

    Google Scholar 

  13. FPL Statistics Group. Linear algebra for statistics Java package. http://www1.fpl.fs.fed.us/linear_algebra.html.

  14. E. Gamma, R. Helm, R. Johnson, and J. Vlissides. Design Patterns: Elements of Reusable Object-Oriented Software, Mass.: Addison-Wesley, 1999.

    Google Scholar 

  15. M. W. Hall and K. Kennedy. Efficient call graph analysis, ACM Letters on Programming Languages and Systems, 1(3), 227–242, 1992.

    Article  Google Scholar 

  16. P. Havlak and K. Kennedy. An implementation of interprocedural bounded regular section analysis, IEEE Transactions on Parallel and Distributed Systems, 3(2), 1991.

    Google Scholar 

  17. J. L. Hennessy. Symbolic debugging of optimized code, ACM Transactions on Programming Languages and Systems, 4(3), 323–344, 1982.

    Article  Google Scholar 

  18. R. Milner. Atheory of type polymorphism in programming, Journal of Computer and System Sciences, 17, 348–375, 1978.

    Article  MathSciNet  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

Budimlić, Z., Kennedy, K. (2001). JaMake: A Java Compiler Environment. 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_20

Download citation

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

  • 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