PLDI '89 Proceedings of the ACM SIGPLAN 1989 Conference on Programming language design and implementation
An efficient method of computing static single assignment form
POPL '89 Proceedings of the 16th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
ACM Letters on Programming Languages and Systems (LOPLAS)
Design patterns: elements of reusable object-oriented software
Design patterns: elements of reusable object-oriented software
Practical improvements to the construction and destruction of static single assignment form
Software—Practice & Experience
Symbolic Debugging of Optimized Code
ACM Transactions on Programming Languages and Systems (TOPLAS)
An Implementation of Interprocedural Bounded Regular Section Analysis
IEEE Transactions on Parallel and Distributed Systems
Compiling java for high performance and the internet
Compiling java for high performance and the internet
The cost of being object-oriented: A preliminary study
Scientific Programming
Parsek: object oriented particle in cell. implementation and performance issues
JGI '02 Proceedings of the 2002 joint ACM-ISCOPE conference on Java Grande
Automatic program specialization for Java
ACM Transactions on Programming Languages and Systems (TOPLAS)
Studying Energy Trade Offs in Offloading Computation/Compilation in Java-Enabled Mobile Devices
IEEE Transactions on Parallel and Distributed Systems
Improving Compilation of Java Scientific Applications
International Journal of High Performance Computing Applications
Optimizing array accesses in high productivity languages
HPCC'07 Proceedings of the Third international conference on High Performance Computing and Communications
Hi-index | 0.00 |
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, objectoriented 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 objectoriented 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.