Given by Geoffrey C. Fox at Beijing and Chang Sha China on 28 Dec 97 to 5 Jan 98. Foils prepared 8 January 98
Outside Index
Summary of Material
We describe some aspects of HPCC in USA and in particular the new NCSA computational alliance and the proposed petaflop initiative |
We discuss role of commodity (Web) technologies in future high performance computing environments |
We describe how a network of Web/CORBA/COM servers architecture can naturally support both parallel and distributed computing while |
We describe applications to both metacomputing, and parallel computing |
We suggest critical importance of CORBA and component based software in HPCC -- Javabeans seem very important |
We describe role of collaboration technology in linking computers with people |
We describe use of Java as a general coding language for scientific and engineering computation |
This approach unifies distributed event driven simulations with classic massively parallel time stepped computations |
Outside Index
Summary of Material
Geoffrey Fox |
Syracuse University |
NPAC |
111 College Place Syracuse NY 13244 4100 |
3154432163 |
We describe some aspects of HPCC in USA and in particular the new NCSA computational alliance and the proposed petaflop initiative |
We discuss role of commodity (Web) technologies in future high performance computing environments |
We describe how a network of Web/CORBA/COM servers architecture can naturally support both parallel and distributed computing while |
We describe applications to both metacomputing, and parallel computing |
We suggest critical importance of CORBA and component based software in HPCC -- Javabeans seem very important |
We describe role of collaboration technology in linking computers with people |
We describe use of Java as a general coding language for scientific and engineering computation |
This approach unifies distributed event driven simulations with classic massively parallel time stepped computations |
There are national HPCC programs in:
|
The USA activities include
|
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 |
Some of current new developments focus on
|
Use of Commodity hardware: PC's offer best performance per dollar (Gigaflop for $30,000) |
Use of Commodity software: Windows NT, COM, CORBA, web, Java, VRML .... |
Use of Web to produce Seamless (universal) computer interfaces |
Java replacing C++ and Fortran for Numerical Computation |
Use of databases and collaboration technology to link people, databases and simulation |
Integration of parallel and distributed computing |
Use of distributed objects (CORBA) to encapsulated remote services |
National Science Board Decision-March 28
|
Funded for 10 years
|
Major Increase in Support Levels
|
NPACI |
NCSA Alliance |
Both NCSA Alliance and NPACI |
Other sites |
64 sites approved, 63 more proposed 7/97 |
NCSA |
vBNS: very high speed Backbone Network Service |
Leading Edge Centers
|
Enabling Technology Teams
|
Applications Technologies Teams
|
Education, Outreach, and Training Teams
|
Partners for Advanced Computational Services
|
Industrial Partners and Strategic Vendors
|
Infrastructure Foundations
|
Define the Alliance Work Plan
|
Parallel Computing (16)
|
Distributed Computing (15)
|
Data and Collaboration (14)
|
Cosmology (5)
|
Environment Hydrology (11)
|
Chemical Engineering (7)
|
Bioinformatics (9)
|
Nanomaterials (11)
|
Scientific Instruments (8)
|
Enabling Technologies |
Applications Technologies |
EOT-PACI Project Activities |
National Education Community |
Digital Libraries |
Collaboration Tech. |
Distance Learning |
VR/Simulations |
Molecular Biology |
Cosmology |
Scientific Instruments |
Chickscope |
Biology Workbench |
WW2010 |
Chemistry Visualization |
Microprocessor Market Convergence
|
Desktop Software Tool Development
|
Large Scientific Databases
|
Emergence of Distributed Object Architecture
|
Supercomputer Center to PACI
|
Alliance Information Management
|
Information Analysis
|
NT Clusters
|
Technical Collaboration Environments
|
Scientific Data Management
|
Strategy
|
Implementation
|
Asynchronous
|
Synchronous
|
Image Courtesy of Ken Bishop, U Kansas and NCSA |
http://vizlab.beckman.uiuc.edu/chickscope/ |
BIMA, Courtesy Richard Crutcher, UIUC |
http://bima-server.ncsa.uiuc.edu/imagelib/VRMLHighlights.html |
Source: Quantum Research Database |
Distributed Memory |
Distributed Shared Memory |
IBM RS6000 |
6 x 1 |
HP 735 |
12 x 1 |
SGI Power |
Challenge Array |
(10x16) |
SGI Origin-2000 |
8 x 32 |
HP/Convex SPP-1200 |
4 x 16 |
HP/Convex |
SPP-2000 |
8 x 16 |
HP PP cluster (8 x 2), classroom (20 x 1) |
Proposed NT Cluster |
64 x 4 |
Proposed |
SGI Origin-2000 |
8 x 128 |
1990 |
1992 |
1994 |
1996 |
1998 |
PACS Focus Area
|
PACS Members
|
Colliding Galaxies (Smithsonian IMAX)-Donna Cox, Bob Patterson, NCSA-From "Cosmic Voyage"-Nominated for Academy Award 1997 |
Virtual Director in CAVE |
1000 Hour SDSC Supercomputer Run to Generate Data |
Tens of Thousands of Hours of NCSA SGI Time to Render Data |
Cross-Country Transfer to IMAX Film of Massive Amounts of Data |
Rotating Turbulent Gas Ball Model of the Sun |
Nine Day Run on NCSA Origin (128-processors) |
Generated 2 Terabytes of Data, LCSE Visualized in 3 Days |
Dave Porter, Paul Woodward, et al., LCSE, Univ of Minnesota, June 1997 |
For "Convential" MPP/Distributed Shared Memory Architecture |
Now(1996) Peak is 0.1 to 0.2 Teraflops in Production Centers
|
In 1999, one will see production 1 Teraflop systems |
In 2003, one will see production 10 Teraflop Systems |
In 2007, one will see production 50-100 Teraflop Systems |
Memory is Roughly 0.25 to 1 Terabyte per 1 Teraflop |
If you are lucky/work hard: Realized performance is 30% of Peak |
I find study interesting not only in its result but also in its methodology of several intense workshops combined with general discussions at national conferences |
Exotic technologies such as "DNA Computing" and Quantum Computing do not seem relevant on this timescale |
Note clock speeds will NOT improve much in the future but density of chips will continue to improve at roughly the current exponential rate over next 10-20 years |
Superconducting technology is currently seriously limited by no appropriate memory technology that matches factor of 100-1000 faster CPU processing |
Current project views software as perhaps the hardest problem |
All proposed designs have VERY deep memory hierarchies which are a challenge to algorithms, compilers and even communication subsystems |
Major need for hig-end performance computers comes from government (both civilian and military) applications
|
Government must develop systems using commercial suppliers but NOT relying on traditionasl industry applications to motivate |
So Currently Petaflop initiative is thought of as an applied development project whereas HPCC was mainly a research endeavour |
Nuclear Weopens Stewardship (ASCI) |
Cryptology and Digital Signal Processing |
Satellite Data Analysis |
Climate and Environmental Modeling |
3-D Protein Molecule Reconstruction |
Real-Time Medical Imaging |
Severe Storm Forecasting |
Design of Advanced Aircraft |
DNA Sequence Matching |
Molecular Simulations for nanotechnology |
Large Scale Economic Modelling |
Intelligent Planetary Spacecraft |
Extrapolated from SIA Projections to year 2007 -- See Chapter 6 of Petaflops Report -- July 94 |
Extrapolated from SIA Projections to year 2007 -- See Chapter 6 of Petaflops Report -- July 94 |
PetaFLOPS possible; accelerate goals to 10 years. |
Many important application drivers exist. |
Memory dominant implementation factor. |
Cost, power & efficiency dominate. |
Innovation critical, new technology necessary. |
Layered SW architecture mandatory. |
Opportunities for immediate SW effort. |
New technology means paradigm shift.
|
Memory bandwidth. |
Latency. |
Software important. |
Closer relationship between architecture and programming is needed. |
Role of algorithms must improve. |
Conduct point design studies.
|
Develop engineering prototypes.
|
Start SW now, independent of HW. |
Develop layered software architecture for scalability and code reuse |
Explore algorithms for special purpose & reconfigurable structures. |
Support & accelerate R&D in paradigm shift technologies:
|
Perform detailed applications studies at scale. |
Develop petaFLOPS scale latency management. |
Conventional (Distributed Shared Memory) Silcon
|
Note Memory per Flop is much less than one to one |
Natural scaling says time steps decrease at same rate as spatial intervals and so memory needed goes like (FLOPS in Gigaflops)**.75
|
Superconducting Technology is promising but can it compete with silicon juggernaut? |
Should be able to build a simple 200 Ghz Superconducting CPU with modest superconducting caches (around 32 Kilobytes) |
Must use same DRAM technology as for silicon CPU ? |
So tremendous challenge to build latency tolerant algorithms (as over a factor of 100 difference in CPU and memory speed) but advantage of factor 30-100 less parallelism needed |
Processor in Memory (PIM) Architecture is follow on to J machine (MIT) Execube (IBM -- Peter Kogge) Mosaic (Seitz)
|
One could take in year 2007 each two gigabyte memory chip and alternatively build as a mosaic of
|
12000 chips (Same amount of Silicon as in first design but perhaps more power) gives:
|
Performance data from uP vendors |
Transistor count excludes on-chip caches |
Performance normalized by clock rate |
Conclusion: Simplest is best! (250K Transistor CPU) |
Millions of Transistors (CPU) |
Millions of Transistors (CPU) |
Normalized SPECINTS |
Normalized SPECFLTS |
Fixing 10-20 Terabytes of Memory, we can get |
16000 way parallel natural evolution of today's machines with various architectures from distributed shared memory to clustered heirarchy
|
5000 way parallel Superconducting system with 1 Petaflop performance but terrible imbalance between CPU and memory speeds |
12 million way parallel PIM system with 12 petaflop performance and "distributed memory architecture" as off chip access with have serious penalities |
There are many hybrid and intermediate choices -- these are extreme examples of "pure" architectures |
Define a "clean" model for machine architecture
|
Define a low level "Program Execution Model" (PEM) which allows one to describe movement of information and computation in the machine
|
On top of low level PEM, one can build an hierarchical (layered) software model
|
One can program at each layer of the software and augment it by "escaping" to a lower level to improve performance
|
This is not really a simple stack but a set of complex relations between layers with many interfaces and modules |
Interfaces are critical ( for composition across layers)
|
Enable Next |
10000 |
Users |
For First 100 |
Pioneer Users |
Higher Level abstractions |
nearer to |
application domain |
Increasing Machine |
detail, control |
and management |
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 |
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
|
1)Deep Memory Hierarchies present New Challenges to High performance Implementation of programs
|
2)There are two dimensions of memory hierarchy management
|
3)One needs a machine "mode" which supports predictable and controllable memory system leading to communication and computation with same characteristics
|
4)One needs a low level software layer which provides direct control of the machine (memory hierarchy etc.) by a user program
|
5)One needs a layered (hierarchical) software model which supports an efficient use of multiple levels of abstraction in a single program.
|
6)One needs a set of software tools which match the layered software (programming model)
|
1)Explore issues in design of petaComputer machine models which will support the controllable hierarchical memory systems in a range of important architectures
|
2)Explore techniques for control of memory hierarchy for petaComputer architectures
|
3)Explore issues in designing layered software architectures -- particularly efficient mapping and efficient interfaces to lower levels
|
Next Three foils isolate some differences and commonalities in two programs |
Both set a hardware goal (teraflop for HPCC and petaflop for JNAC) to focus activity but in each case systems and applications were main justification |
Both couple applications with software and architectures in multidisciplinary teams with multi-agency support |
HPCC was dominantly research
|
HPCC inevitably developed MPP's and transferred parallel computing to computing mainstream
|
HPCC aimed at Grand challenges in Industry Government and Academia
|
HPCC developed software (PSE's) largely independently in each Grand Challenge
|
HPCC tended to develop hardware with rapidly changing architectures which software "chased" rather laboriously
|
HPCC aimed to transfer technology to Industry for commercialization
|
HPCC is Research -->Capitalization-->Product
|
HPCC was a broad program aimed at "all" (large scale) users of computers
|
Bottom of Pyramid has 1000 times dollar value and compute power of best supercomputer (tip of pyramid) but supercomputer has high performance network to support close synchronization needed by classic parallel algorithms |
Use of |
Web Technologies |
is naturally a |
The current incoherent but highly creative Web will merge with distributed object technology in a multi-tier client-server-service architecture with Java based combined Web-ORB's |
COM(Microsoft) and CORBA(world) are competing cross platform and language object technologies
|
Need to abstract entities (Web Pages, simulations) and services as objects with methods(interfaces) |
How do we do this while infrastructure still being designed! |
One can anticipate this by building systems in terms of Javabeans e.g. develop Web-based databases with Javabeans using standard JDBC (Java Database Connectivity) interfaces |
Design and Use Java Framework for Computing which will become a "CORBA facility"
|
Middle Tier |
Basic Web Server |
Custom Web Server |
TP Server |
Business Transaction Management |
You Write Software |
at Client and Server |
Old and New Useful Backend Software |
This is "middleware" which is implemented in simplest form as a network of Java Servers
|
Access |
Resources |
Store |
Multimedia Information |
Collaboration Server |
File Systems |
and/or Database |
Object Broker |
Database |
Simulation (Network-enabled |
servers such as NEOS, Netsolve) |
Sequential |
or Parallel |
Computer |
1)One can "just" use Object Web technologies as a software infrastructure for building parallel, distributed or sequential computing environments which can have a very different architecture from the Web
|
2)Harness the power of the Web as a computer -- use up the idle cycles on the WebTV's in every home -- typically a Web Client based system
|
3)One can view the Object Web as a distributed information system with modest performance and build a metacomputing system with the Web architecture
|
HPCC (High Performance Computing and Communication)
|
Computational Grid
|
HPcc (High Performance commodity computing)
|
Larry Smarr and NCSA Collaboration have stressed analogy of deployment of computer/communication technology with impact that electrical and transportation grids had
|
The transportation system was built using lessons from and feed up/down from Sports cars, Cadillacs, Model T's, Ford Escorts etc. |
Computational Grid will be shaped by and shape all 5 classes of applications on previous foil
|
A highish end computational grid will in some sense (to be disagreed on) be influenced by and influence the "Object Web" which is here defined as "mass-market"/business IntraNet (low to low) use of Internet/distributed Information Systems |
By definition, Object Web software is and will even more so, be the "best" software ever built because it has the largest market and greatest leverage of investment dollars
|
On should build upwards from the "democratic Web"
|
This allows you to both deliver your application to the general public (when required) and leverage best software |
Applications are metaproblems with a mix of module and data parallelism |
Modules are decomposed into parts (data parallelism) and composed hierarchically into full applications.They can be the
|
Modules are "natural" message-parallel components of problem and tend to have less stringent latency and bandwidth requirements than those needed to link data-parallel components
|
Assume that primary goal of metacomputing system is to add to existing parallel computing environments, a higher level supporting module parallelism
|
It is natural to base on either a network of Web Clients or Web Servers
|
Web Client Models Include SuperWeb (Javelin) from UCSB and are well illustrated by the January 1997 hotwired article "Suck your Mips". |
Greater functionality but less power and pervasiveness is a pure Web Server model as proposed by NPAC
|
Note total compute power in all Web "clients" is about 100 times that in all Central Supercomputers |
Object Web Software provides a high functionality but modest performance distributed computing (Metacomputing) environment based on either Web (soon to be CORBA IIOP and HTTP/Java Socket) Servers or Clients |
Here we will explore an architecture using servers for control as higher functionality than clients although currently less broadly deployed
|
Object Web Only addresses Integration of already decomposed parts!
|
1:User View: Interoperable Web Interface accessing services through Java Compute Services Framework |
2:Network of Java Servers provide distributed services with databases, compute engines, collaboratories, object brokers, instruments
|
Back end "Number Crunchers" linked either by communication at level 2 (slowish but easy) or at level 3 (high performance but more work) |
Compute processes linked either to servers or together by MPI if parallel |
Java Servers |
We have a set of Services hosted by Object Web Servers which form the middleware and accessed by clients |
Groups of clients (electronic societies) are linked by Java server based collaboration systems such as TANGO or Habanero |
Access |
Resources |
Store |
Multimedia Information |
Collaboration Server |
File Systems |
and/or Database |
Object Broker |
Database |
Simulation |
e.g. NEOS |
Netsolve |
Computer |
Person2 |
Shared |
WhiteBoard |
Shared Client Appl |
Person1 |
General User |
As a first step, implement multi-module systems with each module linked via Java Servers
|
Where necessary "escape" down to classic HPCC technologies for data transport keeping control at server level
|
This seems very convenient in JDK 1.1 "event model" which is mechanism used by Javabeans to communicate
|
1)Simple Server Approach 2)Classic HPCC Approach |
3)Hybrid Approach with control at server and |
data transfer at |
HPCC level |
4)Invoke High Performance Message Transfer between Observers and Sources specified in Message Event |
Server Tier |
Data Source |
Data Sink (Observers) |
5)Actual Data Transfer |
High Performance Tier |
2)Prepare |
Message Event in Source Control |
1)Register Observers with Listener |
Here are some examples of using our approach where large scale industry investment in Web technology appears to add significant value to metacomputing systems built with Web architecture
|
Multidisciplinary and Computational Steering Applications
|
Visual and Interpreted Programming Environments
|
Technologies to get High Performance CORBA |
Integration with Forces Modeling (Distributed Event driven Simulation) |
Integration with Networked enabled servers such as NEOS and Netsolve
|
Simulation |
Basic Display |
Image Filter |
is another |
module |
Output Display after Filter |
Runs as a |
parallel |
module |
using |
Java Server |
host |
Bunch of Filters and Displays |
defined in |
Java Graph editor and |
running on grid of Java Servers |
Original Image |
Note Java also integrates compiled and interpreted approaches and so leads to more convenient programming environments
|
JavaScript is a fully interpreted language but not really Java |
Applets are half-way between traditional compiled and interpreted approaches |
Web "systems" can behave like Interpreters with interactive commands at client (gives Web version of MATLAB) |
Web Client |
including |
Java Applets |
Web Server |
Java/Fortran/C++ |
Application Backend |
CORBA (Common Object Request Broker Architecture)
|
COM (Common Object Model)
|
ComponentWare
|
Javabean
|
RMI (Remote Method Invocation)
|
Visual Basic/C++/J++ and ActiveX or Beanboxes with Javabeans give visual approach to software objects
|
Enterprise Javabeans and COM are extending this to distributed computing |
Using Web technologies for grid and building modules out of (whatever Javabeans/COM evolves to) allows one to deliver to user HPCC programming environments with comparable friendliness to those in PC world |
They are Java's implementation of "component-based" visual programming |
This modern software engineering technique produces a new approach to libraries which become a "software component infrastructure(SCI)" |
There is a visual interface to discovery of and setting of values of and information about parameters used in a particular software component |
JavaBeans uses the event model of JDK1.1 to communicate between components
|
The visual interface allows inspection of and implementation of both individual beans and their linkage . This visual construction of linkage allows one to form nontrivial programs with multiple communicating components |
Apart from the event mechanism which is a communication/linkage mechanism, ComponentWare (and JavaBeans in particular) "just" give a set of universal rules (needed for interoperability) for rather uncontroversial (albeit good) object-oriented and visual programming practices
|
In general it is any process, but it is convenient (in the pure form of our web approach) to view each module as a Javabean (or equivalent component) |
The Javabean can wrap existing Fortran, Perl or C C++ code by either using native methods or by invoking the code as a separate process |
Modules as Javabeans allow them to be stored as objects and inspected visually
|
Wrapping existing code as Javabeans is a good way of renovating "legacy code" so can be used more easily in future!
|
Large gains in HPCC user productivity will be attained if we can integrate the ideas and technologies of modern (PC) visual programming with classical HPCC approaches |
Use of important emerging Web and CORBA technology allows HPCC object (C++.,Java) and visual (CODE, Hence, WebFlow, AVS, Khoros) systems to be enhanced to become parallel component-based visual programming systems. |
CORBA does not incorporate HPCC but as it specifies services and not implementation,
|
HP-CORBA can be built on Nexus and Globus and it will allow HPCC users access to any CORBA service with an option for high performance when necessary. |
The NPAC WebFlow technology can be combined with emerging JavaBean technology to produce a prototype HPcomponent system. |
Note industry is ahead with sequential ComponentWare but is only now moving with activeX to distributed systems. HPCC already has visual distributed environments. So HPCC need not be behind if it generalizes modules to Javabeans |
WorkFlow |
ORB |
System Management |
HPcc ? |
.............. |
Trader |
Security |
.......... |
Naming |
Persistence |
Oil & Gas |
DMSO Modeling and Simulation |
Imagery |
Banking |
Manufacturing |
...... |
...... |
Services |
Horizontal Facilities |
Vertical |
Facilities |
Standard Interfaces |
i.e. Frameworks |
This is classic host-node computing model |
Host is logically distinct but can be on same machine as a "node" |
The "Host" is logically a separate Corba object but could of course be instantiated on the same computer as one or more of the nodes. Using the protocol bridge of fig. 15, one could address objects using Corba with local parallel computing nodes invoking MPI and remote accesses using Corba where its functionality (access to very many services) is valuable. |
From HPcc as High Performance Commodity Components |
This allows MPI (or equivalently Nexus, Globus or PVM) and commodity technologies to coexist with a seamless user interface. |
From HPcc as High Performance Commodity Components |
DoD modeling community is currently evolving towards the HLA(High level Architecture) framework with the RTI (Run Time Infrastructure) based communication bus. |
The goal of HLA/RTI is to enhance interoperability across more diverse simulators than in the DIS realm, ranging from real-time to time-stepped to event-driven paradigms. |
HLA defines a set of rules governing how simulators (federates) interact with each others. Federates describe their objects via Object Model Template (OMT) and agree on a common Federation Object Model (FOM). |
The overall HLA/RTI model is strongly influenced by the CORBA architecture and in fact the current prototype development is indeed CORBA based. |
We suggest that next step is to combine CORBA2 (Initial HLA/RTI is CORBA1) with NPS prototype ideas to give a fully object and Web integrated event driven simulation environment. |
Java3D is natural visualization environment in this scenario |
88 89 90 91 92 93 94 95 96 |
Technical |
Management |
Limited scope simulations, little interoperability prior to 1988 |
DSB: Computer Applications |
to Training & Wargaming |
DIS Standards begun |
ALSP- linking of Service wargames |
DEPSECDEF Memo |
EXCIMS and DMSO established |
SIMNET |
HLA Baseline approved |
HLA begun |
Service M&S Offices established |
DoDD 5000.59 |
Federation: a set of simulations, a common federation object model, and supporting RTI, that are used together to form a larger model or simulation |
Federate: a member of a federation; one simulation
|
A federate could be large or small grain -- for initial activity of integrating existing pre HLA simulations, a federate is typically large grain size |
However HLA is a "complete" model and one could build simulations where a federate is finr grain object and federation is simulation of these interacting objects |
Federation Execution: a session of a federation executing together |
Object: An entity in the domain being simulated by a federation that
|
Interaction: a non-persistent, time-tagged event generated by one federate and received by others (through RTI) |
Attribute: A named datum (defined in Federation Object Model) associated with each instance of a class of objects |
Parameter: A named datum (defined in Federation Object Model) associated with each instance of a class of interactions |
HLA Rules: A set of rules which must be followed to achieve proper interaction of federates during a federation execution. These describe the responsibilities of federates and of the runtime infrastructure in HLA federations
|
Interface Specification: Definition of the interface services between the runtime infrastructure and the federates subject to the HLA
|
Object Model Templates: The prescribed common method for recording the information contained in the required HLA Object Model for each federation and federate
|
1. Federations shall have an HLA Federation Object Model (FOM), documented in accordance with the HLA Object Model Template (OMT) |
A FOM is like a particular facility in CORBA |
2. In a federation, all representation of objects in the FOM shall be in the federates, not in the runtime infrastructure (RTI) |
3. During a federation execution, all exchange of FOM data among federates shall occur via the RTI |
4. During a federation execution, federates shall interact with the runtime infrastructure (RTI) in accordance with the HLA interface specification |
5. During a federation execution, an attribute of an instance of an object shall be owned by only one federate at any given time |
6. Federates shall have an HLA Simulation Object Model (SOM), documented in accordance with the HLA Object Model Template (OMT) |
7. Federates shall be able to update and/or reflect any attributes of objects in their SOM and send and/or receive SOM object interactions externally, as specified in their SOM |
8. Federates shall be able to transfer and/or accept ownership of attributes dynamically during a federation execution, as specified in their SOM |
9. Federates shall be able to vary the conditions (e.g., thresholds) under which they provide updates of attributes of objects, as specified in their SOM |
10. Federates shall be able to manage local time in a way which will allow them to coordinate data exchange with other members of a federation |
Object Class Structure Table |
Object Interaction Table
|
Attribute/Parameter Table
|
FOM/SOM Lexicon
|
General Case |
Example |
P=Publish and S=Subscribe |
General Case |
Example |
Live |
Participants |
Interface |
Runtime Infrastructure |
Data Collector/ |
Passive Viewer |
Federation Management Declaration Management |
Object Management Ownership Management |
Time Management Data Distribution Management |
RTI is a bit like IIOP with critical addition of time |
management services |
An Applet based system using LiveConnect and plugin with Netscape3 and Signed Applets with Netscape4 |
Supports general shared event model of collaboration where it can share applications in Java, JavaScript, C, VRML, C++ (Open Inventor)
|
Has conventional general tools
|
Developed for command and control |
Most extensively used in education -- especially for course between Syracuse and Jackson State
|
From Tango - A Java/WWW-Based Internet Collaborative Software System part of NPAC Overview May 1997 |
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 |
From Tango Project for CEWES Collaborative Tool Meeting |
TANGO links people and shared applications such as chat board, audio video conferencing, visualizations, shared white board, common AUTOCAD design and related tools |
CFD |
TANGO Server |
Database |
Object Broker |
MPP |
Structures |
MPP |
Engineer |
+ core |
services |
Visualization e.g.CAVE |
Shared AutoCAD |
Engineer |
+ core |
services |
This combines TANGO for collaboration with WebFlow to link server side applications |
If necessary WebFlow would support high performance inter-module communication as in structures-CFD Linkage example but it would always implement control and this allows TANGO integration with server side computation
|
WebFlow communication model is a dynamic dataflow |
Of course other server side compute models are possible and in general need (web-linked) data bases, file systems, object brokers etc., |
WebFlow supports dataflow model where user must supply routines to process input of data that drives module and output of data for other modules |
TANGO supports shared state and user supplies routines that read or write either
|
Can be done for applications like AUTOCAD as vendor supplies necessary API |
CFD |
Structures |
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 and Las Vegas Workshops 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 |
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 |
"Data Parallel" languages features are NOT in Java and have to be added (as a translator) of HPJava to Java+Messaging just as HPF translates to Fortran plus message passing |
Java has built in "threads" and a given Java Program can run multiple threads at a time
|
Can be used to do more general parallel computing but only on shared memory computers
|
Combine threads on a shared memory machine with message passing between distinct distributed memories |
"Distributed" or "Virtual" Shared memory does support the JavaVM as hardware gives illusion of shared memory to JavaVM |
Message Passing |
Message Passing |
Java Wrappers (native classes or Server socket connections) around existing data parallel Fortran or C++ |
Native Java and MPI
|
Data Parallel Extensions of Java
|
Java threads for data parallelism on SMP's |