| Sign In to gain access to subscriptions and/or personal tools. |
Parallel Languages and Compilers: Perspective From the Titanium ExperienceCOMPUTER SCIENCE DIVISION, UNIVERSITY OF CALIFORNIA AT BERKELEY, YELICK{at}CS.BERKELEY.EDU, LAWRENCE BERKELEY NATIONAL LABORATORY, YELICK{at}CS.BERKELEY.EDU
COMPUTER SCIENCE DIVISION, UNIVERSITY OF CALIFORNIA AT BERKELEY
COMPUTER SCIENCE DIVISION, UNIVERSITY OF CALIFORNIA AT BERKELEY
COMPUTER SCIENCE DIVISION, UNIVERSITY OF CALIFORNIA AT BERKELEY
COMPUTER SCIENCE DIVISION, UNIVERSITY OF CALIFORNIA AT BERKELEY
COMPUTER SCIENCE DIVISION, UNIVERSITY OF CALIFORNIA AT BERKELEY
COMPUTER SCIENCE DIVISION, UNIVERSITY OF CALIFORNIA AT BERKELEY
LAWRENCE BERKELEY NATIONAL LABORATORY
LAWRENCE BERKELEY NATIONAL LABORATORY We describe the rationale behind the design of key features of Titanium—an explicitly parallel dialect of Java for high-performance scientific programming—and our experiences in building applications with the language. Specifically, we address Titanium's partitioned global address space model, single program multiple data parallelism support, multi-dimensional arrays and array-index calculus, memory management, immutable classes (class-like types that are value types rather than reference types), operator overloading, and generic programming. We provide an overview of the Titanium compiler implementation, covering various parallel analyses and optimizations, Titanium runtime technology and the GASNet network communication layer. We summarize results and lessons learned from implementing the NAS parallel benchmarks, elliptic and hyperbolic solvers using adaptive mesh refinement, and several applications of the immersed boundary method.
Key Words: Titanium parallel language compiler
International Journal of High Performance Computing Applications, Vol. 21, No. 3,
266-290 (2007) |
|||