Introduction |
Parallelism, Synchronization, and Environments |
Restructuring/Designing Programs in OpenMP |
Example Programs |
001 Outline 002 Outline 003 OpenMP 004 OpenMP (2) 005 Shared Memory 006 Shared Memory in Pictures 007 OpenMP 008 OpenMP in Pictures 009 Design of OpenMP 010 Design of OpenMP (2) 011 Outline 012 Control Structures 013 Control Structures (2) 014 DO Scheduling 015 DO Scheduling (2) 016 Orphaned Directives 017 OpenMP Synchronization 018 OpenMP Synchronization (2) 019 OpenMP Data Environments 020 OpenMP Data Environments 021 OpenMP Environment & Runtime Library 022 OpenMP Environment & Runtime (2) 023 OpenMP Environment & Runtime (3) 024 Outline 025 Analyzing for Parallelism 026 Program Profile 027 Walking the Key Loop Nest 028 Multiple Parallel Loops 029 Example --Loop Nest 030 Restructuring Applications 031 Two Levels of Parallel Processing 032 Two Levels of Parallel Processing (cont.) 033 Determining Shared and Private 034 Types of Variables 035 Guidelines for Classifying Variables 036 Process of Classifying Variables 037 Process of Classifying Variables (2) 038 Process of Classifying Vars (3) 039 Firstprivate and Lastprivate 040 Firstprivate and Lastprivate (2) 041 Choosing & Placing Synchronization 042 What to Synchronize 043 Example -- Critical/Ordered Section 044 Reductions 045 (Flawed) Plan For a Good Reduction 046 Good Reductions 047 Typical Parallel Bugs 048 Typical Parallel Bugs (2) 049 Typical Parallel Bugs (3) 050 Outline 051 Designing Parallel Programs in OpenMP 052 Designing Parallel Programs in OpenMP (2) 053 Jacobi Iteration: The Problem 054 Jacobi Iteration: OpenMP Partitioning, Communication, and Agglomeration 055 Partitioning, Communication, and Agglomeration (2) 056 Jacobi Iteration: OpenMP Mapping 057 Jacobi Iteration: OpenMP Program 058 Jacobi Iteration/Program (2) 059 Irregular Mesh: The Problem 060 Irregular Mesh: Sequential Program 061 Irregular Mesh: OpenMP Partitioning 062 Irregular Mesh: OpenMP Communication 063 Irregular Mesh: OpenMP Agglomeration 064 Irregular Mesh: OpenMP Mapping 065 Irregular Mesh: OpenMP Mapping (2) 066 Irregular Mesh: OpenMP Program 067 Irregular Mesh 068 Irregular Mesh: Pictures 069 Irregular Mesh: Bad Data Order 070 Irregular Mesh: Bad Data Order 071 Irregular Mesh: Good Data Order 072 Irregular Mesh: Good Data Order 073 OpenMP Summary 074 Three Systems Compared 075 Three Systems Compared (2) 076 OpenMP + MPI 077 MPI + HPF 078 HPF + OpenMP