Mack Joyner, Compiler Optimizations for Object-Oriented High-Performance Scientific Computing

Object-oriented languages have become popular over the past decade, enabling many scientists to experience high productivity and efficiency developing high-performance scientific applications. One major obstacle to the broad acceptance of object-oriented languages in the past has been their runtime performance compared to languages such as C and Fortran, especially if the developers use the object-oriented features of the language extensively. X10 is an object-oriented language that is being developed as part of DARPA's High-Productivity Computing Systems (HPCS) program, challenging supercomputer vendors to increase productivity in high-performance computing. Compiler optimizations for high-level languages like X10 will be necessary to realize the productivity from the language features without sacrificing performance. We begin to address this problem by developing compiler strategies that will promote the viability of X10 in the scientific community. Specifically, we study the suite of NAS parallel benchmarks written in X10 and Java to identify the language challenges to performance.