next up previous contents
Next: Titanium Up: Related Systems Previous: JavaParty   Contents


Timber

Timber [47] is a Java-based programming language for semi-automatic array-parallel programming, in particular for programming array-based applications. The language has been designed as part of the Automap project, in which a compiler and run-time system are being developed for distributed-memory systems. Apart from a few minor modifications, Timber is still a superset of Java. We see some array declarations of array variables in Timber, for example:

Even if ident and vv have the same initialization expression, they are different arrays. ident is a two-dimensional array, and vv is a one-dimensional array of one-dimensional arrays. Array accessing is very similar to that in other languages. Timber provides the each and foreach constructs, which specify that the iterations can be executed in arbitrary order, but that each iteration is to be executed sequentially. For some analysis, the compiler can translate most foreach constructs into explicit parallel loops in SPC [46] form. This intermediate form is used for automatic task mapping.

$\displaystyle \begin{minipage}[t]{\linewidth}\small\begin{verbatim}
each {
s1 ;
s2 ;
}
foreach (i = 0 : n) {
a[i].init() ;
}\end{verbatim}\end{minipage}
$

For the each construct, s1 and s2 are executed in arbitrary order. The foreach construct is a parameterized version of the each construct. In above example, it invokes the init() method on members of array a. Like HPJava, Timber introduces multidimensional arrays, array sections, and a parallel loop. They have some similarities in syntax, but semantically Timber is very different to HPJava. Although Timber supports parallel operations such as each, foreach constructs, it is difficult to say Timber targets massively parallel distributed memory computing, using HPF-like multiarrays, and supports lower-level access to the parallel machines. Moreover, for high-performance, Timber chose C++ as its target language. But it becomes its own bottleneck since Java has been improved and C++ is less portable and secure in the modern computing environment.
next up previous contents
Next: Titanium Up: Related Systems Previous: JavaParty   Contents
Bryan Carpenter 2004-06-09