Abstract
In this paper we discuss some experiences with javar, which is a prototype Java restructuring compiler that supports the automatic conversion of serial loops into constructs that use the multi-threading mechanism of the language to exploit any parallelism in these loops. Expressing parallelism in Java itself clearly has the advantage that the transformed program remains portable. After compilation of the transformed Java program into bytecode, speedup can be obtained on any platform on which the Java Virtual Machine implementation supports the true parallel execution of threads, whereas we will see that the threads only induce a slight overhead on uni-processors.
This project is supported by DARPA under contract ARPA F19628-94-C-0057 through a subcontract from Syracuse University.
Preview
Unable to display preview. Download preview PDF.
References
Alfred V. Aho, Ravi Sethi, and Jeffrey D. Ullman. Compilers Principles, Techniques and Tools. Addison-Wesley, 1986.
Utpal Banerjee. Dependence Analysis for Supercomputing. Kluwer, Boston, 1988.
Utpal Banerjee. Loop Transformations for Restructuring Compilers: The Foundations. Kluwer, Boston, 1993. A Book Series on Loop Transformations for Restructuring Compilers.
Utpal Banerjee. Loop Parallelization. Kluwer, Boston, 1994. A Book Series on Loop Transformations for Restructuring Compilers.
Aart J.C. Bik and Dennis B. Gannon. Automatically exploiting implicit parallelism in Java. Concurrency, Practice and Experience, 9(6):579–619, 1997.
Zoran Budimlic and Ken Kennedy. Optimizing Java-theory and practice. Concurrency, Practice and Experience, 9(6):445–463, 1997.
Bryan Carpenter, Yuh-Jye Chang, Geoffrey Fox, Donald Leskiw, and Xiaoming Li. Experiments with ‘HP Java'. Concurrency, Practice and Experience, 9(6):633–648, 1997.
Michal Cierniak and Wei Li. Optimizing Java bytecodes. Concurrency, Practice and Experience, 9(6):427–444, 1997.
Jack J. Dongarra et al. Java Linpack Benchmark. This benchmark is made available at http://www.netlib.org/benchmark/linpackjava/.
uGeoffrey C. Fox and Wojtek Furmanski. Java for parallel computing and as a general language for scientific and engineering simulation and modeling. Concurrency, Practice and Experience, 9(6):415–425, 1997.
James Gosling, Bill Joy, and Guy Steele. Java Programming Language. AddisonWesley, Reading, Massachusetts, 1996.
Vipin Kumar, Ananth Grama, Anshul Gupta, and George Karypis. Introduction to Parallel Programming. The Benjamin/Cummings Publishing Company, Redwood City, CA, 1994.
Doug Lea. Concurrent Programming in Java. Addison-Wesley, Reading, Massachusetts, 1997.
David Wanqian Liu. Wavelet Transformation Package. This package is made available at http://reality.sgi.com/davidliu/.
Samuel P. Midkiff. The Dependence Analysis and Synchronization of Parallel Programs. PhD thesis, C.S.R.D., 1993.
Constantine D. Polychronopoulos. Parallel Programming and Compilers. Kluwer, Boston, 1988.
Michael J. Wolfe. Optimizing Supercompilers for Supercomputers. Pitman, London, 1989.
Michael J. Wolfe. High Performance Compilers for Parallel Computers. AddisonWesley, Redwood City, California, 1996.
H. Zima and B. Chapman. Supercompilers for Parallel and Vector Computers. ACM Press, New York, 1990.
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1998 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Bik, A.J., Villacis, J.E., Gannon, D.B. (1998). Experiences with loop parallelization in javar (A prototype restructuring compiler for java). In: Li, Z., Yew, PC., Chatterjee, S., Huang, CH., Sadayappan, P., Sehr, D. (eds) Languages and Compilers for Parallel Computing. LCPC 1997. Lecture Notes in Computer Science, vol 1366. Springer, Berlin, Heidelberg. https://doi.org/10.1007/BFb0032704
Download citation
DOI: https://doi.org/10.1007/BFb0032704
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-64472-9
Online ISBN: 978-3-540-69788-6
eBook Packages: Springer Book Archive