Given by Geoffrey C. Fox at ASC Dayton Ohio Invited Presentation on October 29 98. Foils prepared November 5 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 |
We discuss Problem Solving Environments and Java Framework for Computing |
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
Presentation at ASC October 30, 98 |
Geoffrey Fox |
Northeast Parallel Architectures Center |
Syracuse University |
111 College Place |
Syracuse NY |
gcf@npac.syr.edu |
http://tangowebserver.npac.syr.edu/webwisdom/users/gcf/aschpccoct98 |
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 |
We discuss Problem Solving Environments and Java Framework for Computing |
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 -- they may become "just" clusters |
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
|
Users want more attractive "problem solving environments" insulated from arcane changing HPCC backend |
Well I can't guarantee solution but there is only one possible approach .... |
Make more use of commodity (the other 99%) software and minimize reliance on specialized HPCC software |
Identify those requirements that are "pure HPCC" and focus specialized software there |
e.g. accessing a database or logging into a computer/compiling is NOT HPCC |
sending low latency MPI messages is HPCC |
More subtly linking coarse grain software modules is NOT HPCC |
So SGI appears to be relatively weak |
IBM is not obviously committed to HPCC and indeed not clear if in country's best interest that they should -- we want IBM to remain globally competitive! |
Sun Compaq/Digital HP and IBM are strong in high end Enterprise system market |
Not clear if current HPCC systems will have a follow-on and as a backup, somebody (or some group of concerned supercomputer centers) should urgently investigate management of large clusters as a HPCC resource |
"Gateway" is consistent with clusters as HPCC resource but does not directly address critical resource management issues
|
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 |
A server acts as an interface between services and either
|
A CORBA Object Broker is just a server |
Servers implement one or more protocols such as IIOP COM/RMI's specialized protocol, HTTP ..... |
Users do not write servers but rather software implementing services
|
One needs to access services and this is where "distributed object technology" comes in. This provides mechanisms to discover, access and invoke distributed services
|
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 |
WebFlow |
server |
WebFlow |
server |
WebFlow |
server |
EDYS |
CASC2D |
Data Retrieval |
High Performance SubSystem |
CASC2D |
proxy |
IIOP |
Web Browser |
Data Wizard |
WMS interface |
Toolbar |
HTTP |
WMS |
File Transfer |
File Transfer |
GLOBUS |
Internet |
WebFlow modules |
(back-end) |
WebFlow |
middle-tier |
WebFlow applet |
(front-end) |
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(!) |
Enables development of Web Interfaces to run a given job on any computer with any data source compliant with this framework just as JDBC gives a universal interface to any relational database
|
The Computing Services Framework will allow vendors to compete on either User Front End (GUI) or back end services with the JavaCS framework providing universal linkage |
The framework is implemented at the backend as a set of drivers which map generic Java Interfaces to particular software (e.g. a compiler) on particular machines. |
Requires agreement by "suitable interested parties" on
|
First meeting was October 8-9 1998 at Argonne with "most major players" -- report available by SC98 and standards process initiated |
Grande Resource Discovery, Allocation and Scheduling
|
We are defining methods and properties of computers and programs viewed as distributed objects
|
Compiling, Executing, Specification of features needed for execution optimization
|
Accounting -- integrate with Web commerce technology? |
Authentication, Security (especially hard in metacomputing as link several different management policies)
|
What do we keep from HPCC
|
What do we take from Enterprise Systems
|
We have a strategy of using commodity hardware and software when appropriate |
We have a consequent Gateway architecture with hardware and software implications
|
We have initiated standards process to lead to agreement on common interfaces |
We have a suite of General PSE infrastructure including
|
We have Gateway compatible exemplars such as NetSolve, NPAC demos for NCSA/Cewes |
Consider large class of problems that can be thought of a set of coarse grain entities which could be internally data parallel and the coarse grain structure is "functional or task" parallelism |
Use (Enterprise) JavaBeans to represent modules at (server) client level |
Use UML (and related technologies) to specify application and system structure |
WebFlow is graphical (Java Applet) composition palette (Beanbox for computational modules) |
Use "To be Agreed Seamless Computing Interface" to implement linkage of proxies to backend hardware |
We can support any given paradigm at either high functionality (web server) or high performance (backend) level |
HPCC Messaging could be a pure Java/RMI middle tier version of MPI or Nexus/Optimized Machine specific MPI at backend |
Coarse Grain Entities can be time synchronized simulations and use MPI(HPF?) at either middle or back end tier or as in DMSO simulations a federate running a custom discrete event simulation |
Use DMSO Object model HLA to specify object structure of jobs and systems at middle tier level |
A HLA Federation could be the set of all jobs to be run on a particular site
|
A HLA Federate could be a job consisting of multiple possibly shared objects |
Use DMSO Runtime Infrastructure RTI to implement dynamic management
|
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 |