Books & Videos

Table of Contents

  1. Chapter 1 Want to Go Faster? Raise Your Hands if You Want to Go Faster!

    1. Some Questions You May Have

    2. Four Steps of a Threading Methodology

    3. Background of Parallel Algorithms

    4. Shared-Memory Programming Versus Distributed-Memory Programming

    5. This Book’s Approach to Concurrent Programming

  2. Chapter 2 Concurrent or Not Concurrent?

    1. Design Models for Concurrent Algorithms

    2. What’s Not Parallel

  3. Chapter 3 Proving Correctness and Measuring Performance

    1. Verification of Parallel Algorithms

    2. Example: The Critical Section Problem

    3. Performance Metrics (How Am I Doing?)

    4. Review of the Evolution for Supporting Parallelism in Hardware

  4. Chapter 4 Eight Simple Rules for Designing Multithreaded Applications

    1. Rule 1: Identify Truly Independent Computations

    2. Rule 2: Implement Concurrency at the Highest Level Possible

    3. Rule 3: Plan Early for Scalability to Take Advantage of Increasing Numbers of Cores

    4. Rule 4: Make Use of Thread-Safe Libraries Wherever Possible

    5. Rule 5: Use the Right Threading Model

    6. Rule 6: Never Assume a Particular Order of Execution

    7. Rule 7: Use Thread-Local Storage Whenever Possible or Associate Locks to Specific Data

    8. Rule 8: Dare to Change the Algorithm for a Better Chance of Concurrency

    9. Summary

  5. Chapter 5 Threading Libraries

    1. Implicit Threading

    2. Explicit Threading

    3. What Else Is Out There?

    4. Domain-Specific Libraries

  6. Chapter 6 Parallel Sum and Prefix Scan

    1. Parallel Sum

    2. Prefix Scan

    3. Selection

    4. A Final Thought

  7. Chapter 7 MapReduce

    1. Map As a Concurrent Operation

    2. Reduce As a Concurrent Operation

    3. Applying MapReduce

    4. MapReduce As Generic Concurrency

  8. Chapter 8 Sorting

    1. Bubblesort

    2. Odd-Even Transposition Sort

    3. Shellsort

    4. Quicksort

    5. Radix Sort

  9. Chapter 9 Searching

    1. Unsorted Sequence

    2. Binary Search

  10. Chapter 10 Graph Algorithms

    1. Depth-First Search

    2. All-Pairs Shortest Path

    3. Minimum Spanning Tree

  11. Chapter 11 Threading Tools

    1. Debuggers

    2. Performance Tools

    3. Anything Else Out There?

    4. Go Forth and Conquer

  1. Glossary

  2. Appendix Photo Credits

  3. Colophon