Module 3: OpenMP Loop Level Programming

11/24/98


Click here to start


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

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

TLNS3D SOLVE

TLNS3D SOLVE FILTFX Parallel Loops

TLNS3D Hand Restructuring

TLNS3D Convergence Checking

TLNS3D Reductions

TLNS3D Performance

Summary

Home Page: http://www.openmp.org