Scientific Computing With Java Tuplespaces
Civilization advances by increasing the number of important
operations we can perform without thought.    -A.N. Whitehead


Overview Download: version 0.80   (released 2003/02/20)   Version History

The Tonic package was originally developed as a joint project between Boston University and the Harvard-Smithsonian Center For Astrophysics, to investigate the extent to which Java-based tuplespaces facilitate distributed scientific computation in heterogeneous networks of machines ranging from commodity PCs to exotic supercomputers. To focus our effort we first developed a suite of benchmarks, which may be used to quickly assess the performance of JavaSpaces or TSpaces on a given network, or as a framework for further development.

Several offshoots of the original work have since emerged: one involves the rapid development of a data modeling testbed, as part of the NSF ITR grant #0121296 for developing Virtual Observatory infrastructure; a second employs tuplespaces at the MIT Center for Space Research, as a blindingly simple way of adding fault tolerance and load-balancing to distributed ISIS computations. Tonic has also been used or cited, both nationally and internationally, in a number of other contexts.

A guiding principle of the work is minimal buy-in. This point is elaborated in the papers below, but in short means we seek to demonstrate that computational power beyond the scope of the desktop can be made available to larger numbers of typical practicing scientists, without a great deal of fuss on their part or buckets of drudgery for their technical support staff.

The package currently contains several score Java and C benchmarks, utility classes, and scripts. Among these are low-level tuple I/O benchmarks, higher-level parallel algorithms, a dynamic compilation technique, and a node configuration mechanism which avoids the need to install JavaSpaces on remote machines.

Since configuring, launching, and terminating Jini/JavaSpaces sessions can be a daunting task, Tonic also provides a GNU configure mechanism and helper scripts which simplify that process considerably. You might find these utilities useful even if you have no interest whatsoever in Java tuplespace benchmarks or scientific computing.

The Goods

The current Tonic version can be downloaded below. In the future anonymous CVS access may also be provided. The package is currently distributed under the terms of the GNU General Public license. Community contributions and feedback are quite welcome!

The benchmarks and support scripts are described in more detail in the above links, and some of the statistics collected to date are gathered in the ./stats subdirectory of the distribution. The work was originally under development on Solaris, and has since been tested on several versions of Linux (x86 and PPC), SGI Irix, Windows98, IBM AIX, and Dec Alpha/OSF1.

Here's a sample NullIO benchmark run, which shows a peak rate of ~160 operations per second for the JavaSpaces write primitive using two Solaris machines on a 100Mbps ethernet subnet.

Here are two sample plots which compare the speedup and runtime of implementations of a PI computation, one in JavaSpaces (square) and another in C with OpenMP #pragma directives (triangle). Here's another plot showing the peak speedups obtained for several Java tuplespace computations, relative to native code compiled with GCC -O3.

The papers listed below provide additional examples and discussion of these and other aspects of the package.

Papers/Lectures

Rapid Distributed Computing Development, With Implications for the Virtual Observatory
(Invited Speaker) Astronomical Data Analysis Software & Systems XII ps.gz ps.zip

Scientific Computation with JavaSpaces
9th International Conf. on High Perf. Computing and Networking Springer LNCS ps StarOffice Slides

Distributed Computation with JavaSpaces
Worldwide Java Developer Conference: JavaOne 2001 StarOffice Slides

Distributed Services With Java Tuplespaces
4th Science Data Centers Symposium, 2001 abstract zip     ps.gz

Boston University Technical Report ps

Distributing Computation with JavaSpaces pdf gzipped ps

Related Links

Yale University Linda Group (where David Gelernter's team pioneered tuplespaces)
Sun's Jini Page
IBM's TSpaces
RDBSpaces (open source implementation of JavaSpaces, with database support)
JavaSpaces Users Archive
Jini Users Archive
Globe (a project investigating Java/tuplespace replication issues)
Directory of Jini Resources
Global Grid Forum: Jini WG
Sun's Jini Page
JavaSpaces Nuts & Bolts
The JavaGrande Forum (Java-based high performance computation)
Java Numerics (a JavaGrande working group)
IBM's Ninja Project (with fast array package)
NCSA Horizon Project (also contains fast n-d array)
Blackdown: Java for Linux (x86, PowerPC, Sparc)

Acknowledgements

This work was supported in part by the National Science Foundation grant INT-9910110, and the Chandra X-Ray Center, under NASA contract NAS8-39073.




Valid HTML 4.01!
Last Updated: December 15, 2005
This page was created and is maintained by Michael S. Noble.


Visited at least     times since we started counting.