Next: Discussion
Up: Related Systems
Previous: Timber
Contents
Titanium
Titanium [48] is another Java-based language (not a
strict extension of Java) for high-performance computing. Its compiler
translates Titanium into C. Moreover, it is based on a parallel SPMD
model of computation.
The main new features of Titanium are immutable classes, explicit
support for parallelism, and multi-dimensional arrays.
Immutable classes are not extensions of any existing class. This
restriction allows the compiler to pass such objects by value and to
allocate them on the stack. They behave like Java primitive types or C
structs.
Titanium arrays are multi-dimensional, distinct from Java arrays. They
are constructed using domains, which specify their index sets,
and are indexed by points. Points are tuples of integers and
domains are sets of points. The following code shows an example
declaration of a multi-dimensional array.
Moreover, a multi-dimensional iterator, foreach allows one to
operate on the elements of A, as follows;
Titanium is originally designed for high-performance computing on both
distributed memory and shared memory architectures. (Support for SMPs
is not based on Java threads.) The system is a Java-based language,
but, its translator finally generates C-based codes for performance
reason. In the current stage development of Java, performance has
almost caught up with C and Fortran, as discussed in chapter
6. Translating to C-based codes is no longer
necessarily an advantage in these days. In addition, it doesn't
provide any special support for distributed arrays and the programming
style is quite different to HPJava.
Next: Discussion
Up: Related Systems
Previous: Timber
Contents
Bryan Carpenter
2004-06-09