Parallel Languages and Compilers: Perspective From the Titanium Experience

  • Authors:
  • K. Yelick;P. Hilfinger;S. Graham;D. Bonachea;J. Su;A. Kamil;K. Datta;P. Colella;T. Wen

  • Affiliations:
  • COMPUTER SCIENCE DIVISION, UNIVERSITY OF CALIFORNIAAT BERKELEY;COMPUTER SCIENCE DIVISION, UNIVERSITY OF CALIFORNIAAT BERKELEY;COMPUTER SCIENCE DIVISION, UNIVERSITY OF CALIFORNIAAT BERKELEY;COMPUTER SCIENCE DIVISION, UNIVERSITY OF CALIFORNIAAT BERKELEY;COMPUTER SCIENCE DIVISION, UNIVERSITY OF CALIFORNIAAT BERKELEY;COMPUTER SCIENCE DIVISION, UNIVERSITY OF CALIFORNIAAT BERKELEY;COMPUTER SCIENCE DIVISION, UNIVERSITY OF CALIFORNIAAT BERKELEY;LAWRENCE BERKELEY NATIONAL LABORATORY;LAWRENCE BERKELEY NATIONAL LABORATORY

  • Venue:
  • International Journal of High Performance Computing Applications
  • Year:
  • 2007

Quantified Score

Hi-index 0.00

Visualization

Abstract

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.