next up previous contents
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;

$\displaystyle \begin{minipage}[t]{\linewidth}\small\begin{verbatim}
foreach (p in A.domain()) {
A[p] = 42 ;
}\end{verbatim}\end{minipage}
$

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 up previous contents
Next: Discussion Up: Related Systems Previous: Timber   Contents
Bryan Carpenter 2004-06-09