Given by Geoffrey C. Fox at SIAM Conference Minneapolis -- OO Methods Session on March 16 97. Foils prepared March 18 97
Outside Index
Summary of Material
Please go to URL http://www.npac.syr.edu/projects/javaforcse |
We describe 3 major areas where Java (and other Web Technologies) can have significant impact |
1) Java can be used to build user Interfaces and here we describe the Virtual Programming Laboratory VPL |
2) Java can support coarse grain integration and metacomputing
|
3) Java as a traditional compiled language for computational kernels
|
Outside Index
Summary of Material
Geoffrey Fox |
Syracuse University |
111 College Place |
Syracuse |
New York 13244-4100 |
Please go to URL http://www.npac.syr.edu/projects/javaforcse |
We describe 3 major areas where Java (and other Web Technologies) can have significant impact |
1) Java can be used to build user Interfaces and here we describe the Virtual Programming Laboratory VPL |
2) Java can support coarse grain integration and metacomputing
|
3) Java as a traditional compiled language for computational kernels
|
See Original Foil |
Java for the User Interface: This is roughly the "WebWindows Philosophy" of building applications to Web Server/Client Standards |
Java for Coarse Grain Software Integration: see collaboration and metacomputing |
Java as a high performance scientific language: for "inner" (and outer) loops Here parallelism is important but sequential issues also critical and first issues to examine! |
This is least controversial and is essentially WebWindows for User Interfaces |
Fortran was never good at user interfaces! |
Initially Aimed at education where usability higher priority than performance |
Teaching Java and JavaScript greatly aided by interpreted technology which allow integration of demonstrations into lectures |
VPL aimed at allowing embedding of F90, HPF and MPI (etc.) examples in lectures and convenient support of homeworks for transient inexperienced users. |
Features of VPL:
|
This added security and various user requested improvements such as choice of editor (emacs vi etc.) |
Note computation and user files are stored on server side |
EPIC (Edinburgh EPCC) is client side for files AND computation |
Just the runtime issues |
User registers data in Java Applet and running HPF/MPI program and transfers between client applet and running simulation in a fashion similar to AVS |
SDDF is Pablo data format |
This interacts via wrappers to MPI/HPF/F90 running programs |
Can use network of Web Clients and/or Web Servers |
Not clear if distinction (in capability) between web server and client will remain |
Web Client Models Include SuperWeb from UCSB and hotwired article "Suck your Mips". |
More powerful but less pervasive is a pure Web Server model as in NPAC WebFlow |
Can either use in controlled (IntraNets or run a server on every node of your MPP) or uncontrolled (the whole world wide web) fashion
|
Note total compute power in all Web "clients" is about 1000 times that in all Central Supercomputers |
High Level WebHPL (Interpreted Interface to parallel Java, Fortran, C++) |
or WebFlow (AVS on the Web) |
Low Level WebVM (MPI on the Web) is linked servers |
Using Servlets (Jeeves) or Resource Objects (Jigsaw) |
http://www.packet.com/packet/ Hot Wired Tuesday January 7 Edition |
Applet calculates pi while you read article! |
Java is basis of Web Collaboration Systems with Applets Coordinated by Java Server |
Habanero from NCSA was one of first |
TANGOsim uses more modern Web Technology and incorporates a Discrete Event Simulator |
Control Application layout (started in Netscape browser). Two users logged in. List of available applications visible. |
TANGOsim |
Basic |
Replicated Applications |
1)Virtual Users 2)Customized Views |
TANGO Java |
Collaboratory |
Server |
HTTP |
Server |
MultiMedia Mail |
C2 Commander |
Chat |
VTC |
Event Driven |
Simulation |
Engine |
C2 Radar Officer |
3D GIS |
Scripting |
Language |
C2 Weather Officer |
Message Routing |
SW/Data Distrib. |
Other |
Collaborators |
MultiMedia Mail |
Chat |
Simulation |
Engine Controller |
All Clients |
Typical Clients |
Feb 97 Demonstration of Tango |
Feb 97 Demonstration of Tango |
Entirely Web-based system (runtime implemented in Java) |
Able to tap any information resources |
Self-distributing software model (applets not applications) |
Unrestricted inter-applet communication |
Supports all basic collaboratory functions:
|
CA -- Control Application |
SA -- Standalone Application |
HTTP -- Classic HTTP Server |
N -- Netscape Navigator |
LD -- Local Daemon |
CS -- Central Server |
DB -- Database |
A -- Java Applet |
This shows how a Java/C Plug-In enables Communication between Java Server and TANGO Clients |
Language independent: support for non-Java applications
|
Archiving system for session replays
|
Dynamic and flexible master-slave mode |
Entirely open, extensible system with growing set of applications |
Multiplatform: SGI/Sun/Win 95/NT |
TANGOsim mode provides support for discrete event simulations |
Used in Command and Control, telemedicine, and weather application in Rome Laboratory Project that funded. |
Chatboard |
Collaboratory Web browser |
Collaboratory search engine |
Mmail - TANGO multimedia mail
|
Weather with 2D and 3D views and simulation and sensor data displays |
All apps collaboratory and compatible with Simulation Engine, hence scriptable. |
Uses linkage of TANGO to JavaScript WebWisdom which supports Persuasion, Powerpoint, HTML and Screendump mixed Presentations with audio (tagged to specific foils) and notes |
Full Webwisdom used by Teacher allows access to full curricula and options |
Client (Slave) WebWisdom displays pages chosen by teacher (with same audio and notes) and generates automatic HTML index
|
Currently WebWisdom used in non TANGO mode with classic large screen display |
TANGO WebWisdom allows one to use same approach to distributed PC's which is surely more attractive (Web font sizes designed for monitors -- not classroom displays) |
To allow use on low speed lines (28.8 kbaud modems), distribute CD ROM of material to students |
Client WebWisdom will map URL sent from Teacher WebWisdom to link on PC (if exists) and so ONLY control information is sent on Web |
Standard low bit rate codecs support audio and video conferencing over phone lines |
For asynchronous learning, ship HTML Index with lesson audio to clients and students use offline with TANGO used to support synchronous audio and video conferencing |
Will use in China (already succesfully used material Spring 96 Semester between Syracuse and Harbin) and for Syracuse University "Limited Residency" continuing programs where students visit University once to three times per semester (see Computing for the Future Certificates)
|
Clearly Java Collaboration Systems are natural implementations of general environments that mix computers and people |
Computational Steering -- a simulation is like a participant in a Tango session which has
|
Need to link to Tango, Java data analysis/visulaization front ends as well as distributed resource management systems such as ARMS from Cornell |
1)Classic solution of large scale PDE or Particle dynamics problem
|
2)Modest Grain size Functional Parallelism as seen in overlap of communication and computation in a node process of a parallel implementation.
|
3)Object parallelism seen in Distributed Simulation where "world" modelled (typically by event driven simulation) as set of interacting macroscopic (larger than grid points) objects
|
4)MetaProblems consisting of several large grain functionally distinct components such as
|
Java: 1) Not Supported, 2) is Thread mechanism, 3) is Java Objects or Applets, 4) is JavaBeans or equivalent |
Fortran: 1)is supported in HPF, 2--4) are not supported |
Note synergy with Java Server based distributed computing such as WebFlow which builds an AVS like environment with graphical interfaces to software Integration |
More ambitious to upgrade discrete event simulation component of TANGOsim to support full SIMNET/DSI (Distributed Simulation Internet) functionality. |
Note that Java is natural language for DSI/Forces Modelling because these typically use object parallelism which fits both language and applet/JavaBean capabilities. |
See discussion in http://www.npac.syr.edu/projects/javaforcse |
Java for User Interfaces and MetaComputing is natural from its design! |
Java for your favourite Conjugate Gradient routine (etc.) is less obvious ..... |
Java likely to be a dominant language as will be learnt and used by a broad group of users
|
Java may replace C++ as major system building language
|
Clearly Java can easily replace Fortran as a Scientific Computing Language as can be compiled as efficiently and has much better software engineering (object) and graphics (web) capabilities
|
Java can unify classic science and engineering computations with more qualitative macroscopic "distributed simulation and modelling" arena which is critical in military and to some extent industry |
Key question is performance of Java |
Note Web Software can be run on High Performance IntraNets such as Iway so hardware need NOT be a problem! |
Java is currently semi-interpreted and (as in Linpack online benchmark) is about 50 times slower than good C or Fortran
|
Java --> (javac)--> Downloadable Universal Bytecodes --> (Java Interpreter) |
--> Native Machine Code
|
However Language can be efficiently compiled with "native compilers" |
Java ----> (native compiler) |
---> Native (for Particular Machine) Code |
Lots of Interesting Compiler issues for both compiled and scripted Java |
Syracuse Workshop saw no serious problem to High Performance Java on sequential or Shared Memory Machines |
Some restrictions are needed in programming model |
For instance, Avoid Complicated Exception handlers in areas compilers need to optimize! |
Should be able to get comparable performance on compiled Java C and Fortran starting with either Java Language or JavaVM bytecodes |
The Interpreted (Applet) JavaVM mode would always be slower than compiled Java/C/Fortran -- perhaps by a factor of two with best technology |
Applications requires a range of capabilities in any language |
High level ("Problem Solving Environment") manipulating"large" objects
|
Intermediate level Compiled Code targetted at "sequential" (multi-threaded) architecture
|
Lower level runtime exploiting parallelism and memory hierarchies
|
Numerical Objects in (C++/Fortran/C/Java) |
Expose the Coarse Grain Parallelism |
Expose All Levels of Memory Hierarchy |
a) Pure Script (Interpreted) |
c) High Level Language but Optimized Compilation |
d) Machine Optimized RunTime |
b) Semi- Interpreted |
a la Applets |
Memory Levels in High |
Performance CPU |
Nodes of Parallel/ Distributed System |
One can use "native classes" which is just a predownloaded library of optimized runtime routines which can be high performance compiled Java, C, C++, Fortran, HPF etc. modules invoked by interpreted or compiled Java
|
Use Native Classes selectively for
|
1)Classic solution of large scale PDE or Particle dynamics problem
|
2)Modest Grain size Functional Parallelism as seen in overlap of communication and computation in a node process of a parallel implementation.
|
3)Object parallelism seen in Distributed Simulation where "world" modelled (typically by event driven simulation) as set of interacting macroscopic (larger than grid points) objects
|
4)MetaProblems consisting of several large grain functionally distinct components such as
|
Java: 1) Not Supported, 2) is Thread mechanism, 3) is Java Objects or Applets, 4) is JavaBeans or equivalent |
Fortran: 1)is supported in HPF, 2--4) are not supported |
As we saw large scale Applications need many forms of parallelism and it is not needed/appropriate to use the same mechanism for each form
|
Thus Java needs (runtime and perhaps language) extension to support HPF/HPC++ like (shared memory model for programmer) data parallelism but "Java plus message passing" is already here
|
We can use Java as an interface to to a Web-implemented simulation linking to either Server or Client |
We have proposed an approach which uses native classes for "compiler runtime" and follows an HPF style with an interpreted front-end like Matlab or APL or "host" programming model as in *LISP on CM-2 |
e.g. A = HParray.matmul(B,C)
|
This leads again to Java wrappers invoked by HPF-style Java(Script) interpreter which interfaces to native HPF or other implementations.
|
Java raises issue of role of Interpreters versus Compilers |
Success of systems like MATLAB and languages like APL show relevance of interpreters in Scientic Computing |
PERL, JavaScript, TcL, Visual Basic etc. indicate growing use of Interpreters in other domain
|
We suggest that integration of Interpreters and compilers is an important research issue and could suggest new models for parallelism
|
Optimizing Interpreters (as in JIT for Java) |
A library model where interpreted toolkits invoke lovingly parallelized high performance libraries |
Natural linkage to interpreted data analysis / visualization |
NPAC HPJava Activity -- Michael Chang and Bryan Carpenter |
NPAC HPJava Activity -- Michael Chang and Bryan Carpenter |