Parallel Programming on SGI
SMP Programming
Automatic Parallelization
Automatically Parallelizable Code
Compiler Assertions
Assertion Examples
Manual Parallelization
Creation of Parallel Regions
Data Status Association
Data Status Transition in Parallel Programs
Volatile Variables
Volatile example: Circular Buffer
Synchronization Variables
Workload Distribution
Example: Parallel Region in FORTRAN
Parallelization Examples/1
Parallelization Examples/2
Parallelization Examples/3
False Sharing
Scalability & Data Distribution
Why Distribute?
SGI Additions to OpenMP
Default Distribution: “First Touch”
Data Distribution
Data Placement Policies
Example: Data Distribution
Data Initialization: Example
Data Distribution Directives
Data Distribution: Examples/1
Data Distributions: Examples/2
Data Reshaping Restrictions/1
Data Reshaping Restrictions/2
Data Reshaping Restrictions/3
Data Distribution: Affinity
The dplace Program
dplace: Placement File
Data Distribution: page_place
Environment Variables: Process
Environment Variables: Size
Environment Variables: DSM
Case Study: Maxwell Code
Case Study: Maxwell Code Automatic Parallelization
Scalability of Auto-Parallelization
Case Study: Workload Distribution
Case Study: Data Placement
Parallel Thread Creation
Compile Time Actions
Run Time Actions
Timing and Profiling MP Program
MP SpeedShop Example Output
Example Profile Analysis
Summary
Email: u2591@sgi.com
Other information: 281-493-8372