Table of Contents:
- Module 3: OpenMP Loop Level Programming
- Overview
- Module 3A: Automatic Parallelism
- 3.A.1 Parallelizing Compilers for OpenMP
- The Basics About Parallelizing 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
- Performance of Parallelizing Compilers
- 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
- TLNS3D SOLVE
- TLNS3D SOLVE FILTFX Parallel Loops
- TLNS3D Hand Restructuring
- TLNS3D Convergence Checking
- TLNS3D Reductions
- TLNS3D Performance
- Summary
Return to top level
|
Home Page: http://www.openmp.org
|