CS267: Lecture 11

Titanium

October 3, 2001

Lecturer: Dan Bonachea

Abstract

We introduce a second "global address space" languages, Titanium.  Titanium is a SPMD language based on Java that allows programmers to build distributed data structures using pointers.  Titanium adds several features to Java to improve serial performance, including immutable classes (similar to structs in C), multidimensional arrays, and unordered iteration.  It also adds operator overloading and parameterized types (C++-style templates) to make large-scale scientific programming more convenient.  Support for parallelism is mainly through the global address space, but the language also provides a kind of checking for global synchronization based on a notion called "single" variables.  Titanium preserves the safety features of Java, which depend on automatic memory management.  Because of the difficulty of doing efficient garbage collection on a large-scale parallel machine, Titanium has a notion of region-based memory management in which objects may be allocated in named regions and deallocated as a single group.  Titanium is compiled to C with a lightweight communication layer, and it currently runs on the T3E, SP, and clusters with ethernet (using the UDP protocol). 

These notes steal liberally from lectures  by Kathy Yelick.

2001 Lecture Notes

PowerPoint, Postscript, PDF

Assignments

Homework 2: Sharks and Fish in threads and MPI (due 10/10)

Project Proposals due 10/17

Readings

  • Titanium web page at UCB
  •