Welcome to Scribd. Sign in or start your free trial to enjoy unlimited e-books, audiobooks & documents.Find out more
Download
Standard view
Full view
of .
Look up keyword or section
Like this
2Activity

Table Of Contents

2.3.3Synchronization in the Simple Loop Example
2.3.4Final Words on the Simple Loop Example
2.4A More Complicated Loop
2.5Explicit Synchronization
2.6Thereduction Clause
2.7Expressing Parallelism with Parallel Regions
2.8Concluding Remarks
2.9Exercises
3.1Introduction
3.2Form and Usage of the parallel do Directive
3.2.1Clauses
3.2.2Restrictions on Parallel Loops
3.3Meaning of the parallel do Directive
3.3.1Loop Nests and Parallelism
3.4Controlling Data Sharing
3.4.1General Properties of Data Scope Clauses
3.4.2Theshared Clause
3.4.3Theprivate Clause
3.4.4Default Variable Scopes
3.4.5Changing Default Scoping Rules
3.4.6Parallelizing Reduction Operations
3.4.7Private Variable Initialization and Finalization
3.5Removing Data Dependences
3.5.1Why Data Dependences Are a Problem
3.5.2The First Step: Detection
3.5.3The Second Step: Classification
3.5.4The Third Step: Removal
3.5.5Summary
3.6Enhancing Performance
3.6.1Ensuring Sufficient Work
3.6.2Scheduling Loops to Balance the Load
3.6.3Static and Dynamic Scheduling
3.6.4Scheduling Options
3.6.5Comparison of Runtime Scheduling Behavior
3.7Concluding Remarks
3.8Exercises
4.1Introduction
4.2Form and Usage of the parallel Directive
4.2.1Clauses on the parallel Directive
4.2.2Restrictions on the parallel Directive
4.3Meaning of the parallel Directive
4.3.1Parallel Regions and SPMD-Style Parallelism
4.4threadprivate Variables and the copyin Clause
4.4.1Thethreadprivate Directive
4.4.2Thecopyin Clause
4.5Work-Sharing in Parallel Regions
4.5.1A Parallel Task Queue
4.5.2Dividing Work Based on Thread Number
4.5.3Work-Sharing Constructs in OpenMP
4.6Restrictions on Work-Sharing Constructs
4.6.1Block Structure
4.6.2Entry and Exit
4.6.3Nesting of Work-Sharing Constructs
4.7Orphaning of Work-Sharing Constructs
4.7.1Data Scoping of Orphaned Constructs
4.8Nested Parallel Regions
4.8.1Directive Nesting and Binding
4.9Controlling Parallelism in an OpenMP Program
4.9.1Dynamically Disabling the parallel Directives
4.9.2Controlling the Number of Threads
4.9.3Dynamic Threads
4.9.4Runtime Library Calls and Environment Variables
4.10Concluding Remarks
4.11Exercises
5.1Introduction
5.2Data Conflicts and the Need for Synchronization
5.2.1Getting Rid of Data Races
5.2.2Examples of Acceptable Data Races
5.2.3Synchronization Mechanisms in OpenMP
5.3Mutual Exclusion Synchronization
5.3.1The Critical Section Directive
5.3.2Theatomic Directive
5.3.3Runtime Library Lock Routines
5.4Event Synchronization
5.4.1Barriers
5.4.2Ordered Sections
5.4.3Themaster Directive
5.5Custom Synchronization: Rolling Your Own
5.5.1Theflush Directive
5.6Some Practical Considerations
5.7Concluding Remarks
5.8Exercises
6.1Introduction
6.2Key Factors That Impact Performance
6.2.1Coverage and Granularity
6.2.2Load Balance
6.2.3Locality
6.2.4Synchronization
6.3Performance-Tuning Methodology
6.4Dynamic Threads
6.5Bus-Based and NUMA Machines
6.7Exercises
References
Index
0 of .
Results for:
No results containing your search query
P. 1
Parallel Programming in OpenMP

Parallel Programming in OpenMP

Ratings: (0)|Views: 70|Likes:
Published by Cristiano Grigo

More info:

Published by: Cristiano Grigo on Jun 03, 2012
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as PDF, TXT or read online from Scribd
See more
See less

04/16/2013

pdf

text

original

You're Reading a Free Preview
Pages 5 to 20 are not shown in this preview.
You're Reading a Free Preview
Pages 29 to 223 are not shown in this preview.
You're Reading a Free Preview
Pages 232 to 249 are not shown in this preview.

You're Reading a Free Preview

Download
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->