1 option
The art of concurrency / Clay Breshears.
- Format:
- Book
- Author/Creator:
- Breshears, Clay.
- Series:
- Theory in practice The art of concurrency
- Language:
- English
- Subjects (All):
- Computer programming.
- Parallel programming (Computer science).
- Physical Description:
- 1 online resource (304 p.)
- Edition:
- First edition.
- Place of Publication:
- Sebastopol, California : O'Reilly, 2009.
- Language Note:
- English
- System Details:
- text file
- Summary:
- If you're looking to take full advantage of multi-core processors with concurrent programming, this practical book provides the knowledge and hands-on experience you need. The Art of Concurrency is one of the few resources to focus on implementing algorithms in the shared-memory model of multi-core processors, rather than just theoretical models or distributed-memory architectures. The book provides detailed explanations and usable samples to help you transform algorithms from serial to parallel code, along with advice and analysis for avoiding mistakes that programmers typica
- Contents:
- Table of Contents; Preface; Why Should You Read This Book?; Who Is This Book For?; What's in This Book?; Conventions Used in This Book; Using Code Examples; Comments and Questions; Safari® Books Online; Acknowledgments; Chapter 1. Want to Go Faster? Raise Your Hands if You Want to Go Faster!; Some Questions You May Have; What Is a Thread Monkey?; Parallelism and Concurrency: What's the Difference?; Why Do I Need to Know This? What's in It for Me?; Isn't Concurrent Programming Hard?; Aren't Threads Dangerous?; Four Steps of a Threading Methodology
- Step 1. Analysis: Identify Possible ConcurrencyStep 2. Design and Implementation: Threading the Algorithm; Step 3. Test for Correctness: Detecting and Fixing Threading Errors; Step 4. Tune for Performance: Removing Performance Bottlenecks; The testing and tuning cycle; What About Concurrency from Scratch?; Background of Parallel Algorithms; Theoretical Models; Distributed-Memory Programming; Parallel Algorithms Literature; Shared-Memory Programming Versus Distributed-Memory Programming; Common Features; Redundant work; Dividing work; Sharing data; Static/dynamic allocation of work
- Features Unique to Shared MemoryLocal declarations and thread-local storage; Memory effects; Communication in memory; Mutual exclusion; Producer/consumer; Readers/writer locks; This Book's Approach to Concurrent Programming; Chapter 2. Concurrent or Not Concurrent?; Design Models for Concurrent Algorithms; Task Decomposition; What are the tasks and how are they defined?; What are the dependencies between tasks and how can they be satisfied?; How are the tasks assigned to threads?; Example: numerical integration; Data Decomposition; How should you divide the data into chunks?
- How can you ensure that the tasks for each chunk have access to all data required for updates?How are the data chunks (and tasks) assigned to threads?; Example: Game of Life on a finite grid; Concurrent Design Models Wrap-Up; What's Not Parallel; Algorithms with State; Recurrences; Induction Variables; Reduction; Loop-Carried Dependence; Not-so-typical loop-carried dependence; Chapter 3. Proving Correctness and Measuring Performance; Verification of Parallel Algorithms; Example: The Critical Section Problem; First Attempt; Second Attempt; Third Attempt; Fourth Attempt; Dekker's Algorithm
- Case 1Case 2a: T0 is the favored thread; Case 2b: T1 is the favored thread; Case 3; What about indefinite postponement?; What Did You Learn?; There Are No Evil Threads, Just Threads Programmed for Evil; Performance Metrics (How Am I Doing?); Speedup; Amdahl's Law; Gustafson-Barsis's Law; Efficiency; One Final Note on Speedup and Efficiency; Review of the Evolution for Supporting Parallelism in Hardware; Chapter 4. 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
- Notes:
- Includes index.
- Description based on print version record.
- ISBN:
- 9780596551155
- 0596551150
- 9780596555788
- 0596555784
- OCLC:
- 609841053
The Penn Libraries is committed to describing library materials using current, accurate, and responsible language. If you discover outdated or inaccurate language, please fill out this feedback form to report it and suggest alternative language.