Given by Geoffrey C. Fox, Wojtek Furmanski at Visit to Sun and JavaSoft on Friday 13, June 97. Foils prepared 15 June 97
Outside Index
Summary of Material
We describe a set of possible Java Frameworks for computing covering both numerical computation, interoperable interfaces to compute services and distributed computing |
We use NPAC projects to illustrate various features including the role of Java servers and Collaborator Systems |
Outside Index Summary of Material
Geoffrey Fox, Wojtek Furmanski |
Syracuse University |
NPAC |
111 College Place Syracuse NY 13244 4100 |
3154432163 |
Numerical Computing Framework
|
Distributed Simulation Framework
|
Computing Services Framework
|
High Performance Framework
|
Distributed Computing Framework
|
These are too many frameworks and probably several are rather controversial as there is no agreed model of the use of Web in Computing
|
The most promising for early consideration are |
1) The Numerical Computing Framework which is essentially use of Java in Computational Science and Engineering |
2) The Computing Services Framework which we give a little more detail on. |
Enables development of Web Interfaces to run a given job on any computer compliant with this framework just as JDBC gives a universal interface to any relational database |
Compiling, Executing |
Scheduling jobs as in Codine or LSF |
Accessing and storing into File Systems |
Visualization Interface (how applets access server side information) |
The Computing Services Framework allows vendors to compete on User Front End (GUI) or back end services |
The framework is implemented as a set of drivers which map generic Java Interfaces to particular software (e.g. a compiler) on particular machines. |
HPJava@NPAC is a set of prototypes to explore features of a Java Framework for High Performance Computing
|
We are now integrating them together to produce a reasonably complete Java based Prototype High Performance Computing Environment |
HPCC is a small field with limited resources for a very hard problem and must leverage as much software as possible |
The Web provides an excellent pervasive user interface with Java Applets and WebWindows |
The Web provides a potentially excellent high performance object oriented language (Java) for scientific and engineering computation |
The Web provides a rich but modest performance distributed computing environment based on either Web Servers or Clients
|
So the Web provides "everything" except high performance and data parallelism(!)
|
Agree on standards (The High Performance Java Framework) so that one can maximize software re-use |
Java Wrappers (native classes or Server socket connections) around existing data parallel Fortran or C++ |
Native Java and MPI
|
Data Parallel Extensions of Java
|
Java threads for data parallelism on SMP's |
1:User View: Interoperable Web Interface accessing services through Java Compute Services Framework 2:Network of Java Servers provide distributed services to databases, compute engines, collaboratories, object brokers, instruments
|
High Performance layer accessed when distributed services have insufficient performance
|
Compute processes linked by MPI or distributed units of database, object broker, I/O system etc. |
Java Servers |
If performance adequate, use server level as universal and so certainly put all control at server level |
Coarse grain Integration at Server level |
Fine grain linkage at High Performance layer |
A |
B |
MPI |
Java Socket |
Note JDBC (Java Database Connection) links clients to servers at natural (sequential) SQL query and database connection level
|
CORBA is similar except parallel CORBA still needs to be understood!
|
Suggest Java Compute Framework similarly defines interfaces to distributed computing level
|
Compare two ways of linking two modules or two programs of a multidisciplinary application where each module has internal MPI implementation |
Server Based or High Performance MPI InterModule connectivity |
Systems like Tango or Habanero built around Java Servers integrate a group of multiple clients as a "Service" at the middle Java Server level |
Group of collaborating clients |
and client applications |
Database |
Object Broker |
MPP |
VPL -- Virtual Programming Laboratory
|
WebFlow -- dataflow programming environment at the Java Server level |
HPF Interpreter -- Java or JavaScript GUI to HPF (or MPI)
|
Fortran2Java translator of Fortran code into Java language |
JavaMPI -- a partial Java Interface to MPI |
TANGOsim -- Collaboratory Technology
|
SciVis Toolkit -- Library of client side applets
|