|
|
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.
|
|