Given by Geoffrey C. Fox at JNAC (PetaFlops) Presentation on August 28,1996. Foils prepared August 23 1996
Outside Index
Summary of Material
This was part of a set of PetaFlop (JNAC) Presentations to group of Federal Program Managers |
JNAC = Joint National Advanced Computing Initiative |
First we describe Software Strategy in context of Multilevel Systems Architecture |
Three Foils describe a general comparison between JNAC and HPCC |
Finally some back up foils give more detail |
Outside Index Summary of Material
August 28 1996 |
Geoffrey Fox |
All proposed hardware architectures have a complex memory hierarchy which should be abstracted with a software architecture
|
This implies a layered software architecture reflected in all components
|
The Software Architecture should be defined early on so that hardware and software respect it!
|
Users and Compilers must be able to have full control of data movement and placement in all parts of petaflop system |
Size and Complex Memory Structure of PetaFlop machines represent major challenges in scaling existing Software Concepts |
PetaFlop Applications which are grouped into sets with an interface to their own |
Problem Solving Environments |
Application Level or Virtual Problem Interface ADI |
Operating System Services |
Multi Resolution Virtual Machine Interfaces joining at lowest levels with |
Machine Specific Software |
Hardware Systems |
Domain Specific Application Problem Solving Environment |
Numerical Objects in (C++/Fortran/C/Java) High Level Virtual Problem |
Expose the Coarse Grain Parallelism of the Real Complex Computer |
Expose All Levels of Memory Hierarchy of the Real Complex Computer |
Virtual |
Problem /Appl. ADI |
Multi |
Level |
Machine ADI |
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 |
Application Specific Problem Solving Environment |
Coarse Grain Coordination Layer e.g. AVS |
Massively Parallel Modules (libraries) -- such as DAGH HPF F77 C HPC++ HPJava |
Fortran or C plus generic message passing (get,put) and generic memory hierarchy and locality control |
Assembly Language plus specific (to architecture) data movement, shared memory and cache control |
High |
Level |
Low Level |
Main JNAC Program is a mix of both research and development with |
Development is focused on JNAC machines and identified application areas and along lines of a Broad Systems Architecture established (evaluated and evolved) by JNAC |
Work should start now on initial studies to explore the possible system architectures and |
Suggest locations for the "sweet-spots" (necks in the hour glass) to define interfaces |
These "petaflop software point studies" should be interdisciplinary involving hardware, systems software and applications expertise |
Establish and Review Software Architecture and consistent use of Interfaces |
} |
} |
} |
} |
JNAC Architecture Review |
Board |
The Five Software Development Areas |
} |
The mission Critical Applications |
Development of Approximately 3 shared Problem Solving Environments with rich set of application targeted libraries and resources
|
Development of Common Systems Software |
Programming Environments from Compilers to multi-level runtime support at the machine independent ADI's |
Machine Specific software including lowest level of data movement/manipulation |
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
|
Material from PetaSoft Conference and later discussions |
code generation |
memory management |
routing/interconnect |
thread management |
diagnostics |
fault containment |
interupt handling |
device drivers |
scalable filesystems |
networking interfaces |
scheduling |
HL-memory management |
HL-latency management |
performance data |
debugging tools |
intermediate code representations |
object files (a.out) |
HL-resource management |
query of systems state |
operating systems services |
compiler middleware |
basic visualization tools |
numerical libraries |
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 |
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
|
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! |
Domain Specific Application Problem Solving Environment |
Numerical Objects in (C++/Fortran/C/Java) High Level Virtual Problem |
Expose the Coarse Grain Parallelism of the Real Complex Computer |
Expose All Levels of Memory Hierarchy of the Real Complex Computer |
Virtual |
Problem /Appl. ADI |
Multi |
Level |
Machine ADI |
Pure Script (Interpreted) |
High Level Language but Optimized Compilation |
Machine Optimized RunTime |
Semi-Interpreted |
a la Applets |
Relatively Conventional but still Innovative!
|
Special Purpose Systems
|
Architecture Innovation (Perhaps Special Purpose)
|
Radical Technology Innovation (Superconducting Processors)
|