Prospects for Scientific Computing in Polymorphic, Object-Oriented Style

Since the introduction of the Java programming language, there has been widespread interest in the use of Java for high performance scientific computing. One major impediment to such use is the performance penalty paid relative to Fortran. Although Java implementations have made great strides, they still fall short on programs that use the full power of Java’s object-oriented features. In this paper, we present an analysis of the cost associated with polymorphic, object-oriented scientific programming in Java, and discuss the compiler strategies that would reduce the overhead of such programming style. Our ultimate goal is to foster the development of compiler technology that will reward, rather than penalize good object-oriented programming practice.

[1]  Henri Casanova,et al.  Java Access to Numerical Libraries , 1997, Concurr. Pract. Exp..

[2]  Julian Dolby Automatic inline allocation of objects , 1997, PLDI '97.

[3]  Ken Kennedy,et al.  Static Interprocedural Optimizations in Java , 1998 .

[4]  Craig Chambers,et al.  Whole-program optimization of object-oriented languages , 1996 .

[5]  Andrew A. Chien,et al.  Precise Concrete Type Inference for Object-Oriented Languages , 1994, OOPSLA.

[6]  Doug Lea Customization in C++ , 1990, C++ Conference.

[7]  Paul Feautrier,et al.  Direct parallelization of call statements , 1986, SIGPLAN '86.

[8]  Ole Agesen,et al.  Concrete type inference: delivering object-oriented applications , 1995 .

[9]  Matthias Felleisen,et al.  Modular and Polymorphic Set-Based Analysis: Theory and Practice , 1996 .

[10]  Xavier Leroy,et al.  Unboxed objects and polymorphic typing , 1992, POPL '92.

[11]  Guy L. Steele,et al.  The Java Language Specification , 1996 .

[12]  David Grove,et al.  Selective specialization for object-oriented languages , 1995, PLDI '95.

[13]  Zoran Budimlic,et al.  Optimizing Java: theory and practice , 1997, Concurr. Pract. Exp..

[14]  Ken Kennedy,et al.  Procedure cloning , 1992, Proceedings of the 1992 International Conference on Computer Languages.

[15]  Ken Kennedy,et al.  A Methodology for Procedure Cloning , 1993, Computer languages.

[16]  Ken Kennedy,et al.  An Implementation of Interprocedural Bounded Regular Section Analysis , 1991, IEEE Trans. Parallel Distributed Syst..

[17]  Ken Kennedy,et al.  The cost of being object-oriented: A preliminary study , 1999, Sci. Program..