Given by Geoffrey C. Fox at RCI North American Annual Member Executive Conference October 13-15 98 on October 15 98. Foils prepared October 16 98
Outside Index
Summary of Material
We discuss a multi tier (Gateway) approach to HPCC and how this allows appropriate use of ideas from both high performance and enterprise Intranet communities. |
We introduce the Pragmatic Object Web (POW) |
We give examples of using WebFlow and JWORB with Globus and show this gives natural integration of CORBA into HPCC |
The use of HLA/RTI as control of a bunch of workstations is recommended |
We describe Java Grande as an effort to bring better software tools to HPCC |
Outside Index
Summary of Material
Invited Talk at RCI Executive Conference October 15, 98 |
Geoffrey Fox |
Northeast Parallel Architectures Center |
Syracuse University |
111 College Place |
Syracuse NY |
gcf@npac.syr.edu |
http://www.javagrande.org |
http://www.npac.syr.edu/users/gcf/rcihpccoct98 |
We discuss a multi tier (Gateway) approach to HPCC and how this allows appropriate use of ideas from both high performance and enterprise Intranet communities. |
We introduce the Pragmatic Object Web (POW) |
We give examples of using WebFlow and JWORB with Globus and show this gives natural integration of CORBA into HPCC |
The use of HLA/RTI as control of a bunch of workstations is recommended |
We describe Java Grande as an effort to bring better software tools to HPCC |
Java becomes a better Grande (HPCC) programming environment than Fortran and C++ |
High speed networks become pervasively deployed |
Microsoft does not win -- some combination of IBM Sun Netscape (...) stops the advance of NT, COM, Internet Explorer, ChromeEffects ... |
The Web remains a creative open environment |
Supercomputers remain a small market but do not entirely disappear |
Technical computing (on supercomputers and below) continues to be important but problems become complex with linked databases and linked multiple disciplines |
HPCC has developed good research ideas but cannot implement them as solving computing's hardest problem with 1 percent of the funding
|
We have learnt to use commodity hardware either
|
Let us do the same with software and design systems with maximum possible commodity software basis |
The world is building a wonderful distributed computing (information processing) environment using Web (dissemination) and distributed object (CORBA COM, Java, XML) technologies |
This includes Java, Web-linked databases and the essential standards such as HTML(documents), VRML(3D objects), JDBC (Java database connectivity).
|
We will "just" add high performance to this commodity distributed infrastructure
|
The alternative strategy starts with HPCC technologies (such as MPI,HPF) and adds links to commodity world. This approach does not easily track evolution of commodity systems and so has large maintenance costs |
1: Client Tier |
JavaBean Enterprise JavaBean |
Old and New Useful Backend Systems including MPP |
3: Back-end Tier |
Services |
2: Middle Tier |
Servers |
1: Client Tier running on PC or Workstations |
2: Middle Tier -- a growing sea of (application) servers where most Intranet software activity is concentrated
|
3: Back end Capabilities such as MPP's
|
Essential HPcc idea is consider a three tier model
|
Preserve the first two tiers as a high functionality commodity information processing system and confine HPCC to the third (lowest) tier.
|
Database |
Matrix Solver |
Optimization Service |
MPP |
MPP |
Parallel DB Proxy |
NEOS Control Optimization |
Origin 2000 Proxy |
NetSolve Linear Alg. Server |
IBM SP2 Proxy |
Gateway Control |
Agent-based Choice of Compute Engine |
Multidisciplinary Control (WebFlow) |
Data Analysis Server |
Middle Tier |
Distributed (Pragmatic) Object Web |
High Functionality Modest Performance |
Java RMI/Jini |
XML COM CORBA |
Distributed Computing |
The "Operating System" level of Computational Grids, Enterprise Information Systems etc. |
Client Tier |
Java GUI Seamless Computing Interfaces |
CollaborationVisualization |
Microsoft Netscape Browser battle makes unattractive investment |
Backend Tier |
Special Services such as HPCC |
Instruments Traditional Databases |
Can use Java as a Scientific Computing Language? |
Parallel Computing |
Hardware Architecture |
Software Architecture and Philosophy
|
Challenges and Opportunities Opened Up |
What do we adopt of Commodity Tier
|
What do we retain from HPCC
|
Implications for Education |
Note opposite progression from some other approaches: |
The two forms of Large Scale Computing Scale Computer for Scale Users in Proportion Power User to number of computers |
Parallel Commodity Distributed Computers Information Systems Technology <--------------- Internetics Technologies ---------------> |
Send your Staff to Online Course: Certificate in "Internet Applications" |
aka Internetics -- Offered over Internet at 6 hours per week |
1% market |
99% of market driving |
student interest and (Java) technologies |
Geographically |
Distributed |
Grandecomputer |
Resources |
Gateway System |
hosting Seamless Access |
Database, Collaboration |
Visualization |
and other Services |
Geographically Distributed users |
1 |
2 |
3 |
Seamless Interface -- an Enterprise JavaBean which processes input from user's Java Applet interface and maps user generic commands to those on specific machine
|
Resource management of heterogeneous MPP backend (linked to seamless interface) |
Database and Object Brokers; Network servers like Netsolve |
Collaboration Servers including Habanero, Tango, Lotus Notes ... |
Visualization Servers |
"Business Logic" to map user data view (e.g. objects) to persistent store (e.g. Oracle database) and simulation engine (MPP) preferred format |
The 90% of users who only need HPCC occasionally |
Most of a Command and Control Application |
Several FMS and IMT Applications |
Some I/O Intensive applications |
High value services with modest computational needs e.g. grid generation and other pre-processing, data manipulation and other post-processing |
Video Servers for Training |
Design and Planning Tools |
"Glue" for Multidisciplinary Interactions |
Control of Metacomputing applications |
JINI Java Resource Registration and Discovery Service |
NPAC Project illustrating multi tier Gateway incorporating Java Applet Program Composition at Client |
DMSO HLA/RTI Compliance (FMS,IMT) |
CORBA COM Java Web Interoperable Gateway GLOBUS High Performance Backend inherits Gateway Services: Collaboration, Distributed Objects, Databases, Visualization ..... |
Client (Tier 1): Java Graph Editor for Webflow linked to interpreted debugger (DARP), Java Visualizer SciVis
|
Middle Tier 2: Network of Pragmatic Object Web JWORB or Java Servers running on Gateway Tier linking to CORBA COM and HTTP(Internet)
|
Back-end Tier 3: Simple MPI or Globus (or similar) where available and where necessary |
Next foils show
|
Original Image |
Output Image |
Some of |
Available Image Filters |
CLIENT Visual DataFlow |
Interface |
SERVER Processes Filters |
Client Tier |
IIOP High Functionality |
Middle Tier |
Future Globus |
Globus |
Future Parallel I/O |
Currently WebFlow uses a Java Server and manipulates Java applications which can be front ends with native methods to Fortran C or C++ routines |
Change Java Server to JWORB -- server integrating HTTP and IIOP (Web and CORBA) |
Change Java Applications to JavaBeans and non-Java apps to CORBA objects |
Change linkage in WebFlow to respect JavaBean event mechanism |
Then we get HPComponentware |
And using our multi-tier model high performance CORBA |
WebFlow is HPCC version of a |
Typical Visual Interface for JavaBeans |
JWORB - Java Web Object Request Broker - multi-protocol middleware network server (HTTP + IIOP + DCE RPC + RMI transport) |
Current prototype integrates HTTP and IIOP i.e. acts as Web Server and CORBA Broker
|
Currently testing support of Microsoft COM |
JWORB - our trial implementation of Pragmatic Object Web |
First non DMSO implementation of RTI -- HLA (distributed event driven simulation) Runtime at 5% cost(!) |
JacORB |
JWORB |
ORBIX |
RMI |
Variable Size Integer Arrays |
What do we keep from HPCC
|
What do we take from Enterprise Systems
|
Geographically |
Distributed |
Grandecomputer |
Resources |
Gateway System |
hosting Seamless Access |
Database, Collaboration |
Visualization |
and other Services |
Geographically Distributed users |
Java Applet Clients |
Parallel or Sequential Java Grande Codes |
Java Servers |
Java wins today? |
Major Commercial Activity |
Java Grande needs to look at scaling etc. |
Only Java Grande will promote? |
Use of Java for: |
High Performance Network Computing |
Scientific and Engineering Computation |
(Distributed) Modeling and Simulation |
Parallel and Distributed Computing |
Data Intensive Computing |
Communication and Computing Intensive Commercial and Academic Applications |
HPCC Computational Grids ........ |
Very difficult to find a "conventional name" that doesn't get misunderstood by some community! |
We have had several conferences with 50---- attendees
|
Topics of conference papers:
|
"Spun off" Java Grande forum to promote needed community standards and activities. |
Must be proactive because Grande computer market is perhaps 1% of total computing market -- not Sun's highest priority |
The Java Language has several good design features
|
Java has a very good set of libraries covering everything from commerce, multimedia, images to math functions (under development at http://math.nist.gov/javanumerics) |
Java has best available electronic and paper training and support resources |
Java is rapidly getting best integrated program development environments |
Java naturally integrated with network and universal machine supports potentially powerful "write once-run anywhere (badly)" model |
There is a large and growing trained labor force |
Can we exploit this in Grande Computing / computational science? |
So existing Grande codes are written in Fortran C and C++ with a clearly unattractive and comparatively unproductive programming environment |
These current languages and tools are sufficient but does not seem likely that can build much better environments around them
|
Five years ago, it looked as though C++ could become language of choice (perhaps with Fortran as inner core) but this appears stalled
|
So there is no competition -- Java is currently our only hope
|
It has some natural advantages due its internet base with threads and distributed computing built in |
It is a young language and we can take steps now to avoid unproductive proliferation of libraries and parallel constructs
|
It could have expressivity and object oriented advantages of C++ combined with performance levels of C and Fortran |
It can use its clear GUI advantages as an entrée into other aspects of Grande programming |
Java has potential to be a better environment for "Grande application development" than any previous languages such as Fortran and C++ |
The Forum Goal is to develop community consensus and recommendations for either changes to Java or establishment of standards (frameworks) for "Grande" libraries and services |
These Language changes or frameworks are designed to realize "best ever Grande programming environment" |
First Meeting Mar 1 Palo Alto at Java 98 -- 200 Attendees set Agenda -- 30 permanent people and further meetings May 9-10, Aug 6-7 |
Public Discussion SC98 Orlando November 13 (3 hour panel) |
http://www.npac.syr.edu/projects/javaforcse |
http://www.javagrande.org |
1) Most important in the near term -- encourage Sun to make a few key changes in Java to allow it to be a complete efficient Grande Programming Language
|
2) As a community, recognize that sometimes standards are more appropriate than creativity and pool results of experiments to produce a Java Grande framework covering libraries and computer access
|
1) requires us to work with the computing mainstream -- 2) is internal to community |
Two major working groups promoting standards and community actions |
Numerics: Java as a language for mathematics led by Ron Boisvert and Roldan Pozo from NIST
|
Java is particularly slow on floating point -- why?
|
Current Java rules imply that if careful (avoid indeterminate threads and use of JNI) Java not only runs everywhere but gets identical results everywhere |
Need to study Reproducibility -- Performance Trade-offs
|
Language Chip Architecture |
Modifier x86 PowerPC SPARC |
strictfp Java 1.0 (no double Java 1.0 Java 1.0 |
rounding on underflow) (no fused mac) |
default i.e. larger exponent range fused mac can Java 1.0 |
no modifier allowed be used |
associativefp many optimizations allowed on all platforms |
Current default is essentially strictfp although not always implemented precisely |
mac is fused hardware multiply-add (a*b+c) |
strictfp is a little more than 2 times slower than default on INTEL x86 for a vector dot product |
Distributed and Parallel Computing led by Dennis Gannon and Denis Caromel (INRIA, France)
|
Development of Grande Application benchmarks |
The Web integration of Java gives it excellent "network" classes and support for message passing. |
Thus "Java plus message passing" form of parallel computing is actually somewhat easier than in Fortran or C. |
Coarse grain parallelism very natural in Java and we have illustrated this with WebFlow |
"Data Parallel" languages features are NOT in Java and have to be added extending ideas from HPF and HPC++ etc
|
Java has built in "threads" and a given Java Program can run multiple threads at a time
|
Both working groups have made substantial progress
|
We are initiating Community actions
|
Join us at SC98 November 13 |
Note European involvement has been excellent so far
|
Don't need to rewrite existing codes in Java! |
Rather use Java freely at client and "gateway" tier |
Wrap existing codes as CORBA or Java distributed objects |
Conduct suitable experiments in using Java in complete Grande applications |
Make certain your interests are represented in Java Grande Forum |
Retrain your staff in Java Web and distributed object technologies |
Put "High Performance Grande Forum compliant" Java support into your RFP's for hardware and software |