Skip to content

Art of Concurrency A Thread Monkey's Guide to Writing Parallel Applications

Best in textbook rentals since 2012!

ISBN-10: 0596521537

ISBN-13: 9780596521530

Edition: 2009

Authors: Clay Breshears, C. Breshears

List price: $44.99
Blue ribbon 30 day, 100% satisfaction guarantee!
what's this?
Rush Rewards U
Members Receive:
Carrot Coin icon
XP icon
You have reached 400 XP and carrot coins. That is the daily max!

Customers also bought

Book details

List price: $44.99
Copyright year: 2009
Publisher: O'Reilly Media, Incorporated
Publication date: 6/9/2009
Binding: Paperback
Pages: 302
Size: 7.17" wide x 9.13" long x 0.81" tall
Weight: 1.166
Language: English

Clay Breshears has been with Intel since September 2000. He started as a Senior Parallel Application Engineer at the Intel Parallel Applications Center in Champaign, IL, implementing multithreaded and distributed solutions in customer applications. Clay is currently a Course Architect for the Intel Software College, specializing in multi-core and multithreaded programming and training. Before joining Intel, Clay was a Research Scientist at Rice University helping Department of Defense researchers make best use ofthe latest High Performance Computing (HPC) platforms and resources. Clay received his Ph.D. in Computer Science from the University of Tennessee, Knoxville, in 1996, but has been…    

Preface
Want to go Faster? Raise Your Hands if You Want to go Faster!
Some Questions You May Have
Four Steps of a Threading Methodology
Background of Parallel Algorithms
Shared-Memory Programming Versus Distributed-Memory Programming
This Book's Approach to Concurrent Programming
Concurrent or not Concurrent?
Design Models for Concurrent Algorithms
What's Not Parallel
Proving Correctness and Measuring Performance
Verification of Parallel Algorithms
Example: The Critical Section Problem
Performance Metrics (How Am I Doing?)
Review of the Evolution for Supporting Parallelism in Hardware
Eight Simple Rules for Designing Multithreaded Applications
Rule 1: Identify Truly Independent Computations
Rule 2: Implement Concurrency at the Highest Level Possible
Rule 3: Plan Early for Scalability to Take Advantage of Increasing Numbers of Cores
Rule 4: Make Use of Thread-Safe Libraries Wherever Possible
Rule 5: Use the Right Threading Model
Rule 6: Never Assume a Particular Order of Execution
Rule 7: Use Thread-Local Storage Whenever Possible or Associate Locks to Specific Data
Rule 8: Dare to Change the Algorithm for a Better Chance of Concurrency
Summary
Threading Libraries
Implicit Threading
Explicit Threading
What Else Is Out There?
Domain-Specific Libraries
Parallel Sum and Prefix Scan
Parallel Sum
Prefix Scan
Selection
A Final Thought
Mapreduce
Map As a Concurrent Operation
Reduce As a Concurrent Operation
Applying MapReduce
MapReduce As Generic Concurrency
Sorting
Bubblesort
Odd-Even Transposition Sort
Shellsort
Quicksort
Radix Sort
Searching
Unsorted Sequence
Binary Search
Graph Algorithms
Depth-First Search
All-Pairs Shortest Path
Minimum Spanning Tree
Threading Tools
Debuggers
Performance Tools
Anything Else Out There?
Go Forth and Conquer
Glossary
Photo Credits
Index