MetaCartSign in to MyCiteSeer

Include Citations | Advanced Search | Help

Include Citations | Advanced Search | Help

  From flop to megaflops: Java for technical computing (1998) [39 citations — 14 self]

Download:
Download as a PDF | Download as a PS
by J. E. Moreira, S. P. Midkiff, M. Gupta
ACM Transactions on Programming Languages and Systems
http://www.research.ibm.com/people/g/gupta/lcpc98.ps
Add To MetaCart

Abstract:

Abstract. Although there has been some experimentation with Java as a language for numerically intensive computing, there is a perception by many that the language is not suited for such work. In this paper we show how optimizing array bounds checks and null pointer checks creates loop nests on which aggressive optimizations can be used. Applying these optimizations by hand to a simple matrix-multiply test case leads to Java compliant programs whose performance is in excess of 500 Mflops on an RS/6000 SP 332MHz SMP node. We also report in this paper the effect that each optimization has on performance. Since all of these optimizations can be automated, we conclude that Java will soon be a serious contender for numerically intensive computing. 1

Citations

1415 The Java Language Specification – Gosling, Joy, et al. - 1996
1266 Abstract interpretation : a unified lattice model for the static analysis of programs by construction or approximation of fixpoints – Cousot, Cousot - 1977
441 Optimizing Supercompilers for Supercomputers – Wolfe - 1989
361 A Loop Transformation Theory and an Algorithm to Maximize Parallelism – Wolf, Lam - 1991
358 N.: Automatic discovery of linear restraints among variables of a program – Cousot, Halbwachs - 1978
200 Improving register allocation for subscripted variables – Callahan, Carr, et al. - 1990
172 Unimodular transformations of double loops – Banerjee - 1990
111 Iteration space tiling for memory hierarchies – Wolfe - 1987
100 On estimating and enhancing cache effectiveness – Ferrante, Sarkar, et al. - 1991
76 Compiler Analysis of the Value Ranges for Variables – Harrison - 1977
69 Numerical recipes in FORTRAN : The art of scientific computing – Press - 1992
63 Optimizing array bounds checks using flow analysis – Gupta - 1993
63 Elimination of redundant array subscript range checks – Kolte, Wolfe - 1995
59 A fresh look at optimizing array bound checking – Gupta - 1990
33 R.D.: Java programming for high performance numerical computing – Moreira, Midkiff, et al.
29 Optimization of array subscript range checks – Asuru - 1992
27 Just-in-time optimizations for high-performance Java programs. Concurrency : Practice and Experience – Cierniak, Li - 1997
26 Optimizing java: Theory and practice. Concurrency: Practice and Experience – Budimlic, Kennedy - 1997
26 Optimizing array reference checking in Java programs – Midkiff, Moreira, et al. - 1998
25 Multiple version loops – Byler, Davies, et al. - 1987
24 Java access to numerical libraries – Casanova, Dongarra, et al. - 1997
21 IBM high performance compiler for Java. AIXpert Magazine – Seshadri - 1997
20 Javar: A prototype Java restructuring compiler – Bik, Villancis, et al. - 1997
20 Automatic selection of high-order transformations in the IBM XL Fortran compilers – Sarkar - 1997
18 Developing numerical libraries in Java – Boisvert, Dongarra, et al. - 1998
15 High performance numerical com-puting in Java: language and compiler issues – Artigas, Gupta, et al. - 1999
13 An optimizer for Ada - design, experiences and results – Schwarz, Kirchgassner, et al. - 1988
9 IBM High Performance Compiler for Java – Corporation - 1997
9 Algebraic Java classes for numerical optimization – Schwab, Schroeder - 1998
7 The evolution of numerical computing in Java – GOSLING - 1998
7 Java Grande Forum Report: Making Java Work for High-End Computing – Forum - 1998
5 A Prototype Computational Fluid Dynamics Case Study in Java – Atwood, Garg, et al. - 1997
3 Automatic proofs of the absence of common runtime errors – COUSOT, HALBWACHS - 1978
3 Elimination of redundant array subscript range checks – Markstein, Cocke, et al. - 1982
2 javab manual (version 1.0 BETA – Bik, Gannon - 1998
2 Method for optimizing array bounds checks in programs – GUPTA, MIDKIFF, et al. - 1998
2 The evolution of numerical computing in Java. URL: http://java.sun.com/ people/jag/FP.html – GOSLING - 1997
2 Numerically Intensive Java. URL http://www.alphaWorks.ibm.com/tech/ninja – Moreira, Midkiff, et al. - 1999
1 Better peformance with exceptions in Java – Orchard - 1998
1 A prototype bytecode parallelization tool. Concurrency, Pract. Exp – BIK, GANNON - 1998
1 Flop to Megaflops: Java for Technical Computing \Delta 29 – From - 1990