Given by Geoffrey Fox at Trip to China on July 12-28,96. Foils prepared July 6 1996
Abstract * Foil Index for this file
See also color IMAGE
We start with an overall discussion of types of software environments and when they apply
|
Data Parallel and Message Passing are still critical but the situation is confused by immaturity of parallel compilers |
We then discuss current work involving Xiaoming Li with HPF and the Parallel Runtime Compiler Consortium |
MetaComputing is an emerging field oof importance and we sketch our plans for MetaWeb |
Java threatens to change the ballgame! |
This table of Contents
Abstract
http://www.npac.syr.edu/users/gcf/hpcc96software/index.html |
Presented during Trip to China July 12-28,1996 |
Geoffrey Fox |
NPAC |
Syracuse University |
111 College Place |
Syracuse NY 13244-4100 |
We start with an overall discussion of types of software environments and when they apply
|
Data Parallel and Message Passing are still critical but the situation is confused by immaturity of parallel compilers |
We then discuss current work involving Xiaoming Li with HPF and the Parallel Runtime Compiler Consortium |
MetaComputing is an emerging field oof importance and we sketch our plans for MetaWeb |
Java threatens to change the ballgame! |
See Parallel Computing Works for general discussion of problem architecture |
Software Maps |
Problem ---> Machine |
Often software designed around machine architecture |
Rather software should be designed around problem architecture |
Only able to persuade application scientist to parallelize |
Synchronous: Data Parallel Tightly coupled and software needs to exploit features of problem structure to get good performance. Comparatively easy as different data elements are essentially identical. |
Loosely Synchronous:
|
Asynchronous:
|
Embarrassingly parallel:
|
Metaproblems
|
See Parallel Computing Works for QCD and Synchronous problems |
eg. Quantum chromodynamics calculations (calculate proton mass) |
Regular grid in 4D space-time - domain decomposition |
Update algorithm identical at each point |
Time evolution very simple |
The world looked at microscopically in terms of a set of similar fundamental quantities |
Monte Carlo - subtlety that cannot update concurrently points linked in Hamiltonian |
See Parallel Computing Works for Loosely Synchronous problems |
The world looked at macroscopically in terms of interactions between irregular inhomogeneous objects evolved as a time synchronized simulation |
eg. circuit simulation for computer or biological applications |
Linked sets of neurons (components) of different types |
Time taken to model one time step of type i depends on nature of node and interconnect between them |
See Parallel Computing Works Asynchronous problems (including Computer Chess) |
The world looked at macroscopically in terms of interactions between irregular inhomogeneous objects evolved as an event driven simulation |
eg. Battle of Hastings |
See Parallel Computing Works for Metaproblems including Command and Control |
Metaproblems are of growing importance in general HPCC community |
One important Example is: |
Manufacturing and Design including Multidisciplinary Optimization which combines many fields to look at total product design, manufacturability etc.
|
Also link in concurrent engineering
|
USMADE is US Multidisciplinary Analysis and Design Environment Project of MADIC Industrial Consortium |
Global Change:
|
Computational Electromagnetic Scattering (CEM) - A metaproblem of smaller granularity
|
Note this (CEM) itself could be a part - the electromagnetic signature calculation - in design of military aircraft |
Si: Satellite with:
|
FCi: Fire Control platform
|
E: Overall Asynchronous expert system |
Software powerful enough to express natural parallelism of problem (work in progress) |
Problem is "large" |
Architecture of computer at least as "rich" as architecture of problem
|
Problem class Machine |
Synchronous SIMD, MIMD |
Loosely Synchronous MIMD |
Asynchronous Unclear |
Metaproblems Heterogeneous network |
Embarrassingly Parallel Network of workstations
|
See Generic and Specific Application Glossaries |
As nearly all large scale parallel machines are distributed memory, experience is largely
|
Explicit Message Passing is only available way on "all" MIMD machines for generating good performance although this is at cost of significant user effort
|
HPF and Massage Passing both require substantial rewriting of code |
If existing or modestly modified Fortran 77, C, C++ codes would run "well" on parallel machine, then users would be happy
|
Many users want to use workstation clusters as well as dedicated parallel machines
|
This classification is summarized in Parallel Computing Works Survey |
Synchronous:Regular in Space and Time
|
High Performance Fortran (HPF), CMFortran, Crystal, C*, APL are natural and can be automatically parallelized on any machine.
|
Asynchronous:Irregular in Space and Time
|
Loosely Synchronous: Irregular in Space, Regular in Time
|
Fortran + Message Passing "works but is not portable |
Extended HPF (HPF+) designed to do most of these examples |
Data or geometric parallelism again but dynamic data structures which are not arrays
|
Synchronous: Parallel Fortran such as High Performance Fortran, CC++,Fortran-M, pC++, Crystal, APL.. |
Loosely Synchronous: Extensions of the above. (HPF+, HPC++) |
Asynchronous: Web Technology, PCN, Linda, C++ object-oriented approaches....
|
Metaproblems: AVS, MOVIE, PCN, Linda, ADA, Fortran-M, CC++, .... controlling modules written in synchronous or loosely synchronous approach |
Embarrassingly Parallel: Several approaches work?
|
Message Passing works in ALL cases! |
Parallelism in HPF is expressed explicitly
|
Compiler may choose not to exploit information about parallelism |
Compiler may detect parallelism in sequential code |
There is tradeoff between parallelism and communication |
Programmer defines the data mapping |
Underlaying assumptions are that: |
An operation on two or more data object is likely to be carried out much faster if they all reside in the same processor, |
and that it may be possible to carry out many such operations concurrently if they can be performed on different processors |
The directives are structured comments that suggest implementation strategies or assert facts about a program to the compiler |
They may affect the efficiency of the computation performed, but do not change the value computed by the program |
As in Fortran 90 statements, there are both:
|
HPF directives are consistent with Fortran 90 syntax except for the directive prefix:
|
Two forms of the directives are allowed
|
Express in a high level portable scalable fashion those aspects of problems one would like to use Fortran for
|
Lessons from study of
|
Particle Dynamics and Parallel Differential Equation Solving have been studied in detail (for HPF).
|
Data Parallelism
|
Task Parallelism
|
Metaproblems (task parallelism where each component data parallel)
|
MPI and PVM as Message Passing Systems are very healthy but the essential ideas are very old -- 10 to 20 years |
They are used because the systems work well (as relatively easy to build) and the users understand what to expect
|
Parallel C++ is very confused with many standards |
HPF -- Data Parallel Fortran -- is a standard challenged by industry somewhat as they find compilers difficult and wish it was simpler |
Users find performance of HPF often disappointing and find it often is hard to predict what compiler will do
|
Java is rapidly becoming a dominant distributed computing language driven by the the breadth and depth of the World Wide Web.
|
HPCC has developed technology and the application pull for large scale computation with typically tighter synchronization constraints than those of Java. |
Further HPCC can benefit from the pervasive software base illustrated by Web in general and Java in particular. |
Correspondingly there are many emerging Web based applications which will need large synchronized computation. |
For these reasons, we thought it useful to examine the confluence of HPCC and Java -- referred to as HPjava.(without knowing what this is!) |
In particular it is natural for PCRC to examine its software indrastructure and see how it should be structured/changed to support HPJava. |
http://www.npac.syr.edu/users/gcf/hpjava3.html is not a proposal or plan.
|
More thoughtfully, we study Programming Model suggested by HPJava |
What is Role of Optimizing Compilers in (HP)Java?
|
There are a large number of important experiments in the community |
Other topics include role of CORBA, Security, Model for communication in Java |