Given by Geoffrey C. Fox at Delivered Lectures of CPS615 Basic Simulation Track for Computational Science on 24 October 96. Foils prepared 11 November 1996
Outside Index
Summary of Material
This covers two topics: |
Monte Carlo Integration for large scale Problems using Experimental and Theoretical high energy physics as an example |
This includes accept-reject methods, uniform weighting and parallel algorithms |
Then we complete HPF discussion with embarassingly parallel DO INDEPENDENT discussed in Monte Carlo case |
And HPF2 Changes |
Outside Index Summary of Material
Geoffrey Fox |
NPAC |
Room 3-131 CST |
111 College Place |
Syracuse NY 13244-4100 |
This covers two topics: |
Monte Carlo Integration for large scale Problems using Experimental and Theoretical high energy physics as an example |
This includes accept-reject methods, uniform weighting and parallel algorithms |
Then we complete HPF discussion with embarassingly parallel DO INDEPENDENT discussed in Monte Carlo case |
And HPF2 Changes |
See Original Foil |
See Original Foil |
See Original Foil |
See Original Foil |
See Original Foil |
See Original Foil |
See Original Foil |
See Original Foil |
See Original Foil |
See Original Foil |
See Original Foil |
See Original Foil |
See Original Foil |
See Original Foil |
See Original Foil |
See Original Foil |
See Original Foil |
See Original Foil |
See Original Foil |
See Original Foil |
This is an exception from the conventional HPF picture of a global name space with either distributed or replicated variables |
An extrinsic function is a function written in a language other than HPF including most naturally any node programming language (e.g. Fortran77) targeted to a single processor SPMD) with message passing such as MPI |
HPF defines (Fortran90) interface and invocation characteristics
|
Allows one to get efficient parallel code where HPF language or compiler inadequate
|
The original HPF 1.0 omitted some key capabilities which were known to be important but syntax and functionality was unclear in 1993
|
The HPF Forum met in 1995-96 and has approved a set of Extensions and Simplifications of HPF |
The concept of a base HPF 2.0 and Approved Extensions has been agreed |
Note approved extensions (which presumably vendors need not implement) include critical capability for dynamic irregular problems |
DYNAMIC REALIGN and REDISTRIBUTE are no longer in base language and are just "appproved extensions" |
Suprisingly no parallel I/O capabilities were approved! |
!HPF$ INDEPENDENT |
DO i = 1 , n
|
END DO |
This modifies the owner computes rule by specifying that computation will not be performed on processor owning left hand side |
ON HOME is an approved extension |
Many applications of INDEPENDENT DO loops do require reductions as they are typically calculating independently quantities but storing results as parts of various averages |
e.g. in High Enegry Physics Data Analysis, each measured event can be computed via an INDEPENDENT DO but one wishes to find a particular observable (histogram, scatterplot) which is averaged over each event |
Financial modelling is similar |
x = 0 |
!HPF$ INDEPENDENT, NEW(xinc), REDUCTION(x) |
do i = 1 , N
|
END DO |
xinc is a separate new variable each iteration but result is accumulated into global x |
Task Parallelism is sort of supported in HPF but not clear to me that this is a great idea as better to keep sophisticated task parallelism outside HPF which is really only designed to support data parallelism |
!HPF$ TASKING
|
!HPF$ END |
This extends SPMD model with foo running on eight and bar on another processors |
Note foo and bar are expected to contain data parallel statements which distribute execution using conventional HPF over 8 processors |
!HPF DISTRIBUTE x( BLOCK(SHADOW = 1 ) )
|
!HPF DISTRIBUTE x( BLOCK( /26,24,24,26/ ) )
|
!HPF DISTRIBUTE x( INDIRECT(map_array) )
|
Distribution is now allowed to Processor Subsets with typical Syntax:
|
Distribution is allowed for Derived Types but can only be done at ONE level
|