The Arabica Project A distributed scientific computing project based on a cluster computer and Java technologies. Daniel D. Warner Dept. of Mathematical Sciences Clemson University warner@clemson.edu
Historical Trends Complex simulations are one of a kind Supported by a team of experts Special hardware Vector processors,, Hypercubes, Clusters CPU speeds have increased faster than communication speeds Sophistication in software packaging libraries, objects, components, frameworks
The Arabica Goals Researcher Efficiency Programmer Productivity Help scientists do science. Programmer Productivity Dramatically improve programming. Hardware Performance Cluster computing. Leverage the 10% of the code that uses 90% of the time.
Researcher Efficiency Researcher Team Simultaneous access over the Internet. Simultaneous and modifiable views of the same running simulation. Chat support. Other Portal Properties List of services with web documentation. Authorization for each service.
Programmer Productivity Use Java Technologies to build distributed applications. Use Java wrappers to utilize existing application code, particularly well-tested Fortran and C libraries LAPack and BLAMs Exploit code migration to minimize code administration
Hardware Performance Use distributed computing at the level of coarse grained parallelism Use low level code (C, assembly, or optimized Fortran) to achieve optimal on-chip performance of key kernels. Use JNI, Java’s Native Interface to tie low level code into distributed objects.
Quick Tour of the Arabica cluster Robert Simms, the grad student who got the cluster up and running, working with Henrici, the master computer. Henrici is a 500 MHz PowerMac G4 with 256 MB of ram and 15 GB of hard drive. Henrici is running Mac OS X with Apple’s Java 1.2
Quick Tour of the Arabica cluster The first cabinet contains six 66 MHz PowerMac 6100s with 16 MB of ram and 500 MB of hard drive. Each machine is running the MkLinux operating system with Blackdown Java 1.3.
Quick Tour of the Arabica cluster These slave machines are awaiting power and ethernet cables. Both Mac OS X and MkLinux are based on Carnegie Mellon’s Mach kernel, which supports lightweight threads. The JVMs on all systems are running with native threads.
Quick Tour of the Arabica cluster These slave machines are awaiting power and ethernet cables.
Java Technologies RMI - RPC with a difference JINI JavaSpaces Code migration, only need interfaces String based lookup service JINI Object and attribute lookup service Transaction service. JavaSpaces Linda style system
Java Technologies - RMI Let’s computing be done on the appropriate machine Can start with thin clients Can start with thin servers Program to the interface Remote and Migrateable are simple design decisions
Java Technologies - JINI Flexibility Register a new service and its available Reliability Leases and Transactions allow for communication failures and crashes
Java Technologies - JavaSpaces Based on Linda David Gerlenter introduced “tuple” spaces in 1982 Decouples sender and receiver Partial matching Adds Objects Stores serialized objects with attributes Matches these against “template” objects
Examples HDF Viewer Fraqctal Microsope GalaxSee Clique Tree Solver Graphical and spreadsheet views of data Fraqctal Microsope Interactive Mandelbrot set GalaxSee Interactive “galaxy” simulation Clique Tree Solver Solves sparse linear systems of equations
HDF Viewer NCSA’s Hierarchical Data Format Model, View, Controller Preliminary development, Spring 2000. Starts with selection of data files. Model, View, Controller Multiple views of the same data set. Can edit data in one view and see it reflected in all the other views. Model is a remote object.
Fractal Microscope Client Manager Slaves Supplies region Draws the data selects the color scheme Manager Drops tasks into the JavaSpace. Assembles results and sends to client. Slaves Grab tasks and compute the results.
GalaxSee Client Manager Slaves Specifies number and properties of stars Interactive 3D display of stars Manager Drops tasks into the JavaSpace. Assembles results and sends to client. Slaves Grab tasks and compute results.
Clique Tree Solver Manager Slaves Finds the clique-tree ordering Determines submatrices Manages the hierarchical assembly Slaves Factor submatrices.
Deliverables Open source project Technical notes Courses Frameworks MTHSC 983, SS II 2001 MTHSC 983, Spring 2002 Frameworks Application Examples