1
Designing and Building Parallel Programs 2
Outline 3
Outline 4
Why Parallel Computing? 5
The Multicomputer: an Idealized Parallel Computer 6
Multicomputer Architecture 7
Multicomputer Cost Model 8
How do Real Parallel Computers Fit the Model? 9
Distributed Memory MIMD Multiprocessor 10
Shared Memory MIMD Multiprocessor 11
Distributed Shared Memory (DSM) 12
Workstation Clusters 13
A Simple Parallel Programming Model 14
Properties 15
Parallel Algorithm Design 16
A Design Methodology 17
Partitioning 18
Communication 19
Agglomeration 20
Mapping 21
Example: Atmosphere Model 22
Atmosphere Model: Numerical Methods 23
Atmosphere Model: Partition 24
Atmosphere Model: Communication 25
Atmosphere Model: Agglomeration 26
Atmosphere Model: Mapping 27
Modeling Performance 28
Bandwidth and Latency 29
Measured Costs 30
Typical Communication Costs 31
Example: Finite Difference 32
Time for Finite Difference 33
Using Performance Models 34
Design Alternatives: Finite Difference 35
Design Alternatives (2) 36
Finding Model Discrepancies 37
Impact of Network Topology 38
Competition for Bandwidth 39
Bandwidth-Constrained Model Versus. Observations 40
Tool Survey 41
High Performance Fortran (HPF) 42
HPF Example 43
HPF Analysis 44
Message Passing Interface (MPI) 45
MPI Example 46
MPI Analysis 47
PCF 48
PCF and OpenMP 49
PCF Example (SGI Variant) 50
OpenMP Example 51
PCF/OpenMP Analysis 52
Portable, Extensible Toolkit for Scientific Computations (PETSc) 53
PETSc Example 54
PETSc Analysis
Click outside pointer rectangle to move pointer
Click on Pointer to Hide
Click on Pointer + ALT to toggle message hiding
Click on Pointer + CNTL to abolish pointer
Click on Pointer + Shift to cycle families
Click outside + Alt is Change Image
Click outside + Control is Double Size
Click outside + Shift is Halve Size
Right Mouse Down on Pointer Toggles Index
Shift Right Mouse aligns top with scrolled Page While With Mouse Down on Current Pointer h hides This Message while m restores i Toggles Index Aligned with Page Top j Toggles Index Aligned with Scrolled View Top a Abolishes Pointer while CNTL-Click restores f cycles through pointer families c cycles through members of a family u increases Size Up and d decreases Down Mouse Up-Down between changes of Pointer to process new option