ACM Home Page
Please provide us with feedback. Feedback
Automatic loop transformations and parallelization for Java
Full text PdfPdf (969 KB)
Source International Conference on Supercomputing archive
Proceedings of the 14th international conference on Supercomputing table of contents
Santa Fe, New Mexico, United States
Pages: 1 - 10  
Year of Publication: 2000
ISBN:1-58113-270-0
Authors
Pedro V. Artigas  IBM T. J. Watson Research Center, Yorktown Heights, NY
Manish Gupta  IBM T. J. Watson Research Center, Yorktown Heights, NY
Samuel P. Midkiff  IBM T. J. Watson Research Center, Yorktown Heights, NY
José E. Moreira  IBM T. J. Watson Research Center, Yorktown Heights, NY
Sponsor
SIGARCH: ACM Special Interest Group on Computer Architecture
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 4,   Downloads (12 Months): 45,   Citation Count: 9
Additional Information:

abstract   references   cited by   index terms   collaborative colleagues   peer to peer  

Tools and Actions: Request Permissions Request Permissions    Review this Article  
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/335231.335232
What is a DOI?

ABSTRACT

From a software engineering perspective, the Java programming language provides an attractive platform for writing numerically intensive applications. A major drawback hampering its widespread adoption in this domain has been its poor performance on numerical codes. This paper describes a prototype Java compiler which demonstrates that it is possible to achieve performance levels approaching those of current state-of-the-art C, C++ and Fortran compilers on numerical codes. We describe a new transformation called alias versioning that takes advantage of the simplicity of pointers in Java. This transformation, combined with other techniques that we have developed, enables the compiler to perform high order loop transformations (for better data locality) and parallelization completely automatically. We believe that our compiler is the first to have such capabilities of optimizing numerical Java codes. We achieve, with Java, between 80 and 100% of the performance of highly optimized Fortran code in a variety of benchmarks. Furthermore, the automatic parallelization achieves speedups of up to 3.8 on four processors. Combining this compiler technology with packages containing the features expected by programmers of numerical applications would enable Java to become a serious contender for implementing new numerical applications.


REFERENCES

Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.

 
1
 
2
U. Banerjee. Unimodular transformations of double loops. In Proc. Third Workshop on Programming Languages and Compilers for Parallel Computing, Irvine, California, August 1990.
 
3
 
4
A. J. C. Bik and D. B. Gannon. A note on native level 1 BLAS in Java. Concurrency, Pract. Exp. (UK), 9(11):1091-1099, November 1997.
 
5
 
6
R. E Boisvert, J. J. Dongarra, R. Pozo, K. A. Remington, and G. W. Stewart. Developing numerical libraries in Java. Concurrency, Pract. Exp. (UK), 10(11-13):1117-29, September-November 1998. ACM 1998 Workshop on Java for High-Performance Network Computing. URL: http : //www. cs. ucsb. edu/conferences / java98.
 
7
M. Byler, J. R. B. Davies, C. Huson, B. Leasure, and M. Wolfe. Multiple version loops. In Proceedings of the 1987 International Conference on Parallel Processing, pages 312-318, August 17-21 1987.
 
8
H. Casanova, J. Dongarra, and D. M. Doolin. Java access to numerical libraries. Concurrency, Pract. Exp. ( UK), 9( 11): 1279-91, November 1997. Java for Computational Science and Engineering - Simulation and Modeling II Las Vegas, NV, USA 21 June 1997.
 
9
M. Ciemiak and W. Li. Just-in-time optimization for high-performance Java programs. Concurrency, Pract. Exp. (UK), 9(11):1063-73, November 1997. Java for Computational Science and Engineering - Simulation and Modeling II, Las Vegas, NV, June 21, 1997.
10
11
 
12
R. Fitzgerald, T. B. Knoblock, E. Ruf, B. Steensgaard, and D. Tarditi. Marmot: an optimizing compiler for Java. Technical report, Microsoft Research, October 1998. URL: http : //research .microsoft. com/apl% discretionary//default, htm.
 
13
V. Getov, S. Flynn-Hummel, and S. Mintchev. High-performance parallel programming in Java: Exploiting native libraries. In ACM 1998 Workshop on Java for High-Performance Network Computing. ACM SIGPLAN, 1998. URL: http : //www. cs. ucsb. edu/ conferences / java 98.
14
15
 
16
Java Grande Forum. Java Grande Forum Report: Making Java Work for High-End Computing, November 1998. Java Grande Forum Panel, SC98, Orlando, FL. URL: http : //www. j avagrande, org/reports, htm.
 
17
 
18
19
 
20
21
 
22
 
23
M. Schwab and J. Sehroeder. Algebraic Java classes for numerical optimization. In ACM 1998 Workshop on Java for High-Performance Network Computing. ACM SIGPLAN, 1998. URL: http : //www. CS. ucsb. edu/ conferences / java98.
 
24
V. Seshadri. IBM high performance compiler for Java. AIXpert Magazine, September 1997. URL: http:// www. developer, ibm. com/l ibrary/aixpert.
25
 
26
27

CITED BY  9
 

Collaborative Colleagues:
Pedro V. Artigas: colleagues
Manish Gupta: colleagues
Samuel P. Midkiff: colleagues
José E. Moreira: colleagues

Peer to Peer - Readers of this Article have also read: