Given by Geoffrey C. Fox at Trip to Digital Corporation in New Hampshire on May 8 97. Foils prepared May 6 97
Outside Index
Summary of Material
We described the overall structure and programs of NPAC |
We illustrate how these fit together in the application of Web Technologies to HPCC and education |
We describe guiding principles of HPCC -- what we have learnt -- and how this suggests that field needs to build more robust functional modular systems |
We suggest Java Servers are a natural unifying approach to Software Integration enabling collaborative design, computational steering etc. |
We present our 4 layer model of HPCC |
Education benefits from HPCC simulations and can use much of the same integration software |
Outside Index Summary of Material
Talk at Digital Equipment Corp May 8 1997 |
Geoffrey Fox |
Syracuse University |
111 College Place |
Syracuse |
New York 13244-4100 |
We described the overall structure and programs of NPAC |
We illustrate how these fit together in the application of Web Technologies to HPCC and education |
We describe guiding principles of HPCC -- what we have learnt -- and how this suggests that field needs to build more robust functional modular systems |
We suggest Java Servers are a natural unifying approach to Software Integration enabling collaborative design, computational steering etc. |
We present our 4 layer model of HPCC |
Education benefits from HPCC simulations and can use much of the same integration software |
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
|
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 |
Well the rest of the Software World is Changing with emergence of WebWindows Environment! |
Current approaches (HPF,MPI) lack needed capability to address memory hierarchy of either today's or any future contemplated high performance architecture -- whether sequential or parallel |
Problem Solving Environments are needed to support complex applications implied by both Web and increasing capabilities of scientific simulations |
So I suggest rethinking High Performance Computing Software Models and Implementations! |
MPI represents data movement with the abstraction for a structure of machines with just two levels of memory
|
This was a reasonable model in the past but even today fails to represent complex memory structure of typical microprocessor node |
Note HPF Distribution Model has similar (to MPI) underlying relatively simple Abstraction for PEM |
This addresses memory hierarchy intra-processor as well as inter-processor
|
Level 2 Cache |
Level 1 Cache |
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! |
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! |
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! |
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) |
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. |
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 |
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 |
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
|
One can identify both decomposition and integration as key parts of parallel (high performance) computing |
Thus in HPF, we have distribute to address decomposition and the compiler uses MPI or equivalent to integrate |
Java brings objects and threads to help decomposition |
Java servers and applets really address integration and the greatest power of Web is in integration -- not decomposition
|
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 |
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 |
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 |
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 |
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
|
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
|
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.
|
NPAC HPJava Activity -- Michael Chang and Bryan Carpenter |
NPAC HPJava Activity -- Michael Chang and Bryan Carpenter |
WebFlow approach with Java Servers supporting metacomputing
|
Java suggests new approaches to distributed Event Driven Simulations
|
As usual most things work for "embarassingly parallel" problems when integration and decomposition coincide. |
Advances in networking and compute technology with growing pervasive access to the World Wide Web will have profound implications for education and Training
|
Nobody (yet) knows what will work!
|
Web Delivery of HTML versions of traditional curricula with linked associated audio of lecturers |
Java and VRML2.0 animated resources to provide new insights to complex problems |
Digital Video Servers with indices |
Online Laboratories for science, programming etc. |
Database search oif full curricula to find topics of interest |
The new technology supports both compute enhanced classroom and distance delivery |
Distance delivery can be synchronous (teacher and students interacting in real time) or asynchronous (student self paced study with "batch" interactions by electronic mail/bulletin boards etc.) |
Collaboration technology such as NPAC's TANGO supports these new models |
Integration of Databases with delivery system allows logging of either pages accessed or even of full multimedia sessions
|
NPAC has developed some unique capabilities in WebWisdom Delivery, TANGO collaboration and Video Server areas |
NPAC has state of art experience in areas such as VRML2 Java and Web-linked Databases |
NPAC can deliver customized Web Education technology linking components of interest |
NPAC can deliver training in several areas -- either in class or at a distance
|
HTML Java etc will give higher quality basic Curricula with glossaries, database search, hyperlinking etc. |
Virtual Laboratories for Science, Programming etc.
|
Voice (RealAudio) and video capture of teacher as augmentation of lecture curricula material
|
Searchable video archives for finding critical few minutes clips to use in class
|
We have made Good Progress here using Web Technology |
WebWisdom is our System at NPAC built from PERL and JavaScript and features |
Built-in Audio |
Hierarchically Arranged Information |
Parameterized HTML |
Automatic Logging of pages accessed |
Set of Illustrations of JavaScript WebWisdom Education and Presentation Delivery System |
Set of Illustrations of JavaScript WebWisdom Education and Presentation Delivery System |
WebWisdom defaults to HTML where "contains all information" and Persuasion/Poewerpoint original Otherwise |
You can always use either version |
We are told that we should communicate science and engineering better to the world! |
Previously such communication skills were the written and spoken word but now perhaps we can imagine that "Java/Web programming" as another key Communication skill |
This suggests newjob opportunities and new curricula such as |
Degrees in Scientific Communication which combine classical Physics (etc.) education with Simulation and Web Technologies .... |
Take Web electronic society technology which link people together and use to join teachers mentors and students
|
Meanwhile can look at VRML2 for Immersive virtual learning environments |
All of these technologies can be used either synchronously (organized sessions) or asynchronously (students learn in their own time and interact with teacher/mentor in batch mode) |
Log educational sessions (including multimedia material) in databases and use for assesment |
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)
|
Screen of User1. Weather Report, Hopfield Neural Network and Cross Product applets started. |
Initial applications include corporate training and University continuing education
|
This is outreach to people wanting to learn new skills and so critical as all organizations redefine themselves |
Also use in Chinese Universities and HBCU's in the U.S. where we can help faculty upgrade their curricula |
NPAC will have all these capabilities in a deployable system by end of 97. |
Task I: Gather requirements from key constituencies (DoD modernization program, NSF PACI, Interested Universities and K-12 school districts) |
Task II: System Design and Integration |
Task III: Build core system |
Task IV: Integrate middle layer services into core system |
Task V: Build Tools on top of middle layer |
Task VI: Develop courseware |
Task VII: Deliver and Assess courses |
The layered design includes a secure database at its core on top of which are built a set of services including
|
The communication system supports the worldwide delivery and includes support for distributed databases to get high performance with for instance core courseware replicated on delivery machines with CD-ROM's or other such mechanisms. |
The top layer of WebWisdom consists of education and training specific capabilities, which customize and extend the generic middle-layer services.
|
The delivery system is based on customized shared browser windows for curricula together with more generic collaboration capabilities e.g. audio-videoconferencing is used by students and teachers for traditional voice interactions.
|
We believe that impressive demonstrations of all the above capabilities have already been prototyped and one can now build such a system.
|