1
Outline 2
Outline 3
OpenMP 4
OpenMP (2) 5
Shared Memory 6
Shared Memory in Pictures 7
OpenMP 8
OpenMP in Pictures 9
Design of OpenMP 10
Design of OpenMP (2) 11
Outline 12
Control Structures 13
Control Structures (2) 14
DO Scheduling 15
DO Scheduling (2) 16
Orphaned Directives 17
OpenMP Synchronization 18
OpenMP Synchronization (2) 19
OpenMP Data Environments 20
OpenMP Data Environments 21
OpenMP Environment & Runtime Library 22
OpenMP Environment & Runtime (2) 23
OpenMP Environment & Runtime (3) 24
Outline 25
Analyzing for Parallelism 26
Program Profile 27
Walking the Key Loop Nest 28
Multiple Parallel Loops 29
Example --Loop Nest 30
Restructuring Applications 31
Two Levels of Parallel Processing 32
Two Levels of Parallel Processing (cont.) 33
Determining Shared and Private 34
Types of Variables 35
Guidelines for Classifying Variables 36
Process of Classifying Variables 37
Process of Classifying Variables (2) 38
Process of Classifying Vars (3) 39
Firstprivate and Lastprivate 40
Firstprivate and Lastprivate (2) 41
Choosing & Placing Synchronization 42
What to Synchronize 43
Example -- Critical/Ordered Section 44
Reductions 45
(Flawed) Plan For a Good Reduction 46
Good Reductions 47
Typical Parallel Bugs 48
Typical Parallel Bugs (2) 49
Typical Parallel Bugs (3) 50
Outline 51
Designing Parallel Programs in OpenMP 52
Designing Parallel Programs in OpenMP (2) 53
Jacobi Iteration: The Problem 54
Jacobi Iteration: OpenMP Partitioning, Communication, and Agglomeration 55
Partitioning, Communication, and Agglomeration (2) 56
Jacobi Iteration: OpenMP Mapping 57
Jacobi Iteration: OpenMP Program 58
Jacobi Iteration/Program (2) 59
Irregular Mesh: The Problem 60
Irregular Mesh: Sequential Program 61
Irregular Mesh: OpenMP Partitioning 62
Irregular Mesh: OpenMP Communication 63
Irregular Mesh: OpenMP Agglomeration 64
Irregular Mesh: OpenMP Mapping 65
Irregular Mesh: OpenMP Mapping (2) 66
Irregular Mesh: OpenMP Program 67
Irregular Mesh 68
Irregular Mesh: Pictures 69
Irregular Mesh: Bad Data Order 70
Irregular Mesh: Bad Data Order 71
Irregular Mesh: Good Data Order 72
Irregular Mesh: Good Data Order 73
OpenMP Summary 74
Three Systems Compared 75
Three Systems Compared (2) 76
OpenMP + MPI 77
MPI + HPF 78
HPF + OpenMP
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