Table of Contents
Module 3: OpenMP Loop Level Programming
Overview
Module 3A: Automatic Parallelism
3.A.1 Parallelizing Compilers for OpenMP
The Basics AboutParallelizing Compilers
Basic Compiler Transformations
Basic Compiler Transformations
Basic Compiler Transformations
3.A.2 Compiler Options
More About Compiler Options
3.A.3 Viewing the Translated Program
Compiler Listing
PPT Slide
3.A.5 Improving Automatic- Parallelized Code
Tuning Automatically-Parallelized Code
Module 3B: Loop Level Parallelism
3.B.1 Profiling to Find the Parallel Loop
Example Profile
Example Profile
Walking the Key Loop Nest
If You Find Multiple Candidate Loops
Example -- Program Loop Nest
Example -- Answer
3.B.2 Parallel Data Types of Variables
Guidelines for Classifying Variables
Process of Classifying Variables
Process of Classifying Variables
Process of Classifying Variables
Example -- Variable Typing
Example -- Variable Typing
Example -- Answer
Data Structure Example -- Spice
Data Structure Example - Molecular Dynamics
Data Structure Example - Molecular Dynamics
3.B.3 Choosing, Placing Synchronization
What to Synchronize
Reductions
The (Flawed) Plan For a Good Reduction
Good Reductions
Barriers
Example -- Critical/Ordered Section
Example -- Critical/Ordered Section
Example -- Answer
3.B.4 SimpleTechniques for Debugging
SimpleTechniques for Debugging
Typical Parallel Bugs
Typical Parallel Bugs
Typical Parallel Bugs
3.B.5 Case Study TLNS3D
TLNS3D Parallelization Strategy
TLNS3D Profile
TLNS3DSOLVE
TLNS3D SOLVE FILTFX Parallel Loops
TLNS3D Hand Restructuring
TLNS3DConvergence Checking
TLNS3DReductions
TLNS3D Performance
Summary
|