Given by Geoffrey C. Fox at Hefei Computational Science and Beijing Web Tutorial on May 27 and 30 1997. Foils prepared June 3 97
Outside Index
Summary of Material
The talk starts with an overview of NPAC and a description of our CPSWT CDROM with Chinese translation of Computational Science courseware |
We then 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
|
We show how this allows one to build integrated Interpreted and Compiled Environments |
Outside Index Summary of Material
Talks in Hefei and Beijing China May 27,30 1997 |
Geoffrey Fox |
Syracuse University |
111 College Place |
Syracuse |
New York 13244-4100 |
The talk starts with an overview of NPAC and a description of our CPSWT CDROM with Chinese translation of Computational Science courseware |
We then 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
|
We show how this allows one to build integrated Interpreted and Compiled Environments |
19 PhD level Researchers, 5 senior and 4 junior visitors from Poland |
About 30 students (about half funded, others "volunteers") |
Local and International Collaboraters
|
State of the Art Practical Computational facilities focused on high quality information subsystems and networks
|
Theme is leading edge computer science and its applications of relevance to real world for academia, business and community |
Basic Information Technology -- Databases, Web, Collaboration, Networking |
Healthcare/Human Computer Interfaces -- "Center for Really Neat Research" -- work with disabled users |
Education Technology -- TANGO, Video Servers WebWisdom etc. |
High Performance Computing and Communication Research -- Programming Environments and Applications and links of HPCC to Web Technology |
InfoMall Technology Transfer
|
InfoMall MidHudson supports technology in MidHudson (exIBMers)
|
Education Delivery
|
Chinese translation of material in "International Certificate in Computational Science" ICPSE
|
Translated by Xiaoming Li (Harbin,Peking,Syracuse) and Faculty and Students at Harbin |
CPSWT is HPCC Computational Science and Web Technologies
|
We will add to NPAC Home Page, a link to be able order copies of this free CD-ROM |
Course I: High Performance Simulation
|
Course II: Information (Web) Technologies
|
Ideas from HPCC research Good! |
Not enough people/funding in field to implement robust production systems |
Must re-use as much software (including infrastructure software) as possible |
Similarly must build HPCC software in a modular fashion with small enough modules that smallish groups can build effectively |
Different modules are likely to use different base technologies (Fortran v Java v C++ etc.) and so interoperability essential! |
No silver bullet on the horizon - maybe pessimistic but implies better HPCC environments implies better implementations of existing ideas. |
Need to support both production use of MPP's and "rapid prototyping" in development of new applications - latter is not well supported by current HPCC software systems even though need parallel support for prototyping of new 3D simulations |
PC and workstation clusters are of growing important and this typically distributed memory people's technology is contrasted with distributed shared memory tightly coupled MPP's. |
Computational science moving to multidisciplinary (multi-component) applications |
Corresponding growing use of databases (for data-intensive applications) |
Interoperability between disparate heterogeneous platforms, support of multidisciplinary applications, and metacomputing are three related important areas |
"full metacomputing" (decompose general problem on general networked resources) may not be relevant |
The Web is delivering a new operating environment (WebWindows) and a rich distributed computing software infrastructure with especially excellent support for software integration |
There is a need for a new scalable technical operating system (NT v UNIX v WebWindows) |
We can distinguish Decomposition and Integration |
Decomposition is performed by an HPF or other Parallelizing compiler; or by a user writing a Fortran + Message Passing code "by hand" |
MPI integrates decomposed parts together with high bandwidth latency constraints |
Systems such as AVS integrate larger modules together and much of "software engineering" (modular style of programming) involved with this |
Web is a powerful integration model suitable for large coarse modules with modest latency and sometimes modest bandwidth requirements
|
Collaboration, computational steering, multidisciplinary science are all integration and not decomposition problems! |
By definition, Web Software will be the "best" software ever built because it has the largest market (and so greatest leverage of investment dollars) and most creative business model (harness the world's best minds together with open interfaces)
|
One should build upwards from the "democractic Web"
|
This allows you to both deliver your application to the general public (not always required but often desireable) and use the best leveraged software |
Note Web Software tends to offer highest functionality as opposed to highest performance and HPCC often requires different trade-offs |
Web Technology is still uncertain and there may be major changes but "enough" capabilities are in place to build very general (~all) applications
|
Rapidly evolving Standards and a mechanism to get rapid consensus |
Fortran 77 -> Fortran90 --> HPF --> Fortran2000 (23 years) |
VRML Idea (1994) --> VRML1 deployed (95) --> VRML2 deployed (early 97) (2.3 years)
|
Classic Web: HTTP Mime HTML CGI Perl etc. |
Java and JavaScript Compiled to almost compiled (applet) to fully Interpreted Programming Language |
VRML2 as a dynamic 3D Datastructure for products and their simulation object |
Java Database Connectivity (JDBC) and general Web linked databases |
Dynamic Java Servers and Clients |
Rich Web Collaboration environment building electronic societies |
Security -- still needs maturing as very clumsy or non existent at present in many cases |
Compression/ Quality of Service for Web Multimedia
|
Emerging Web Object model including integration of Corba (see JavaBeans and Orblets) |
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:
|
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 |
This interacts via wrappers to MPI/HPF/F90 running programs |
VRML naturally gives 3D visualization with usual Web advantage of running on PC's and Workstations |
Its universality implies can use in industry to specify products so can design, manufacture and market from the same(related) specification |
Should impact PDES/STEP and such industry product specification standards |
VRML will need extension to handle this but it is a good start and allows user defined types |
VRML and Parallel Computing?
|
NPAC Web Based Geographical Information System in Stand Alone Mode |
A GIS application is a specialized OpenInventor viewer, however it accepts any OpenInventor 2.1 scene model. That's why it's so easy to integrate it with third party applications, which produce IO/VRML output. The images show GIS integration with Weather Simulation application. A GIS viewer can also display animated objects controlled by Simulation Engine. |
Parallel Java is inevitable and indeed Java will replace Fortran and C++ in general scientific computing
|
The (commercial) Web itself will lead to "coarse grain software integration" in AVS like data flow environments
|
Web Collaboration technology can revolutionize computational steering
|
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 |
http://www.packet.com/packet/ Hot Wired Tuesday January 7 Edition |
Applet calculates pi while you read article! |
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 |
We suggest a hierarchical computing model with high functionality modest performance integration/coordination layer controlling classic low level HPCC high performance layer |
At Lowest layer hardest problem is decomposition |
At Top (computing) layer, flexible Integration is |
problem as decomposition natural |
User Interface gives third level |
User View: Interoperable Web Interface as in VPL (Virtual Programming Laboratory)
|
Integration Level: Network of (Java) Servers linking different clients (aka collaboration), Web-linked databases |
Metacomputing and Interoperable module linkage |
High Performance Level: Classic HPCC technologies where low latency and high bandwidth needed! |
Components of the WebFlow user interface. |
Includes WebFlow Editor applet and Visualization/Computational Steering applets associated with individual WebFlow modules. |
Applets are managed by Web Browsers. Modules are managed by Java Web Servers. |
see Real Audio Scripted Discussion of PCRC and WebFlow |
see Real Audio Scripted Discussion of PCRC and WebFlow |
see Real Audio Scripted Discussion of PCRC and WebFlow |
see Real Audio Scripted Discussion of PCRC and WebFlow |
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 |
The Web links people to both Information Sources and to other people |
Currently most progress has been in access and searching of information in HTML(text), Animated Java Applets, and 3D VRML Images |
AOL Compuserve and Web have great success with bulletin boards and "chat systems" for forums, clubs and other electronic societies |
New generation of Java Collaboration Systems will greatly increase capabilities of electronic collaboration
|
Ability to define Interacting Group of people with either pure peer or teacher-student type relationship |
Integrated digital VideoConferencing among participants |
Shared Browser (HTML Java VRML Pages) |
Shared Chat System for text messages |
Shared Whiteboard for drawing |
Multimedia Mail |
Linked Digital Video Server |
Under development is integrated database for multimedia logging of sessions |
Support for multiple but linked "electronic societies" with different rooms |
Shared Applications such as Microsoft Word |
Has well defined Interface for linking other applications in C C++ Java JavaScript
|
Initial application is Decision Support System aimed at emergency planning and command and control
|
Distributed simulations involving machines, people and computers in the loop |
HealthCare from a rich TeleMedicine environment to Home Healthcare including support for disabled individuals |
Distance Education -- TANGOWisdom |
"TANGOlite" or "HomeTANGO" to support low bandwidth links for clubs and forums |
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 |
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 |
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:
|
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. |
Feb 97 Demonstration of Tango |
From Tango Project for CEWES Collaborative Tool Meeting |
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 |
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 |
From Tango - A Java/WWW-Based Internet Collaborative Software System part of NPAC Overview May 1997 |
From Tango - A Java/WWW-Based Internet Collaborative Software System part of NPAC Overview May 1997 |
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 |
My SGI INDY gets .54 Megaflops for Java 100 by 100 Linpack |
It has 200 Mhz R4400 and current Netlib benchmark for this chip is 32 mflops for optimized Fortran |
For better resolution see JPEG Version |
see http://www.netlib.org/benchmark/linpackjava/ |
Note Just in Time Compilers are giving a factor of 10 from June 96 Measurements! |
see http://www.netlib.org/benchmark/linpackjava/ |
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 |
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
|
MPI (or equivalent message passing) done either as "pure Java" or as native class interface |
Threads allow overlap of communication and computation |
Higher Level Libraries such as those of DAGH (Adaptive Mesh Support) or PCRC (Compiler Runtime) |
Build in capabilities with classes designed for "ghost region" support etc. |
Parallel C++ approach (Standard Template Libraries etc.) does not work
|
Could copy HPF directive approach but as this requires major compiler development, this does not seem appropriate in near future
|
In particular can use this with Java threads running on SMP as target i.e. use Java runtime to get parallelism automatically if we spawn appropriate threads |
This work can be done on .class (Bytecode) or .java (Java language) files |
NPAC HPJava Activity -- Michael Chang and Bryan Carpenter |
NPAC HPJava Activity -- Michael Chang and Bryan Carpenter |
Interpreted but limited (in functionality) Java client interface to Java wrapped HPF/C++ (not necessarily and perhaps best not parallel Java)
|
Note that we avoid many difficulties but lose elegance as we exchange information between the Host and running Parallel code using "text strings" |
Host and parallel node "synchronize" object reference by registering names with the communication broker |
We can use Java as an interface to to a Web-implemented simulation linking to either Server or Client |
This does not necessarily need one to use Java native class linkage to Fortran and C -- rather just to be able to send messages between running programs |
PreProcessors Can make this more "automatic"
|
More generally should study link between interpreted and compiled environments
|
Need an Interpreted Java -- JavaScript is interpreted but in limited domain |
We have proposed an approach which uses client native classes for "compiler runtime" or linkage to server 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 to Java wrappers invoked by HPF-style Java(Script) interpreter which interfaces to native HPF/C++/Java server implementations.
|
Note you can "pre-load" server and interpreted front end with all necessary information about server program by preprocessing latter with HPF (Java C++) front end
|
If HPF at server side, it is natural to interrupt running program at "extrinsic" interface. |
Erol Akarsu at NPAC has implement visualization and debugging commands at this interrupt |
However can extend to allow any type of interpreted execution with user request language Java or JavaScript or pure visual interface (as in WebFlow) |
User Interpreted Commands |
invoking preloaded |
Java/Javascript objects |
Server invokes extrinsic |
processor |
(true interpreter |
or compiler invoked |
dynamically) |
Running Program |
interruptable at |
extrinsic interfaces |