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