Concurrency books — C++¶
Modern Parallel Programming with C++ and Assembly Language: X86 SIMD Development Using AVX, AVX2, and AVX-512¶
Daniel Kusswurm · 1st edition · Apress · 2022
dedicated to concurrency · on the shelf · publisher ↗ · example code ↗
Chapters
- 1 SIMD Fundamentals
- 2 AVX C++ Programming: Part 1
- 3 AVX C++ Programming: Part 2
- 4 AVX2 C++ Programming: Part 1
- 5 AVX2 C++ Programming: Part 2
- 6 AVX2 C++ Programming: Part 3
- 7 AVX-512 C++ Programming: Part 1
- 8 AVX-512 C++ Programming: Part 2
- 9 Supplemental C++ SIMD Programming
- 10 X86-64 Processor Architecture
- 11 Core Assembly Language Programming: Part 1
- 12 Core Assembly Language Programming: Part 2
- 13 AVX Assembly Language Programming: Part 1
- 14 AVX Assembly Language Programming: Part 2
- 15 AVX2 Assembly Language Programming: Part 1
- 16 AVX2 Assembly Language Programming: Part 2
- 17 AVX-512 Assembly Language Programming: Part 1
- 18 AVX-512 Assembly Language Programming: Part 2
- 19 SIMD Usage and Optimization Guidelines
Cited on: SIMD
Data Parallel C++: Mastering DPC++ for Programming of Heterogeneous Systems using C++ and SYCL¶
James Reinders, Ben Ashbaugh, James Brodman, Michael Kinsner, John Pennycook, Xinmin Tian · 1st edition · Apress · 2021
dedicated to concurrency · on the shelf · publisher ↗ · example code ↗
Chapters
- 1 Introduction
- 2 Where Code Executes
- 3 Data Management
- 4 Expressing Parallelism
- 5 Error Handling
- 6 Unified Shared Memory
- 7 Buffers
- 8 Scheduling Kernels and Data Movement
- 9 Communication and Synchronization
- 10 Defining Kernels
- 11 Vectors
- 12 Device Information
- 13 Practical Tips
- 14 Common Parallel Patterns
- 15 Programming for GPUs
- 16 Programming for CPUs
- 17 Programming for FPGAs
- 18 Libraries
- 19 Memory Model and Atomics
Cited on: Barrier, Data parallelism, GPU computing, SIMD
C++ Concurrency in Action¶
Anthony Williams · 2nd edition · Manning Publications · 2019
dedicated to concurrency · on the shelf · publisher ↗ · example code ↗
Chapters
- 1 Hello, world of concurrency in C++!
- 2 Managing threads
- 3 Sharing data between threads
- 4 Synchronizing concurrent operations
- 5 The C++ memory model and operations on atomic types
- 6 Designing lock-based concurrent data structures
- 7 Designing lock-free concurrent data structures
- 8 Designing concurrent code
- 9 Advanced thread management
- 10 Parallel algorithms
- 11 Testing and debugging multithreaded applications
- Brief comparison of concurrency libraries
- C A message-passing framework and complete ATM example
- D C++ Thread Library reference
Cited on: Atomic variable, Concurrency, Concurrent data structures, Data parallelism, Debugging concurrent programs, Future and promise, Lock-free, Oversubscription, Parallel algorithms, Profiling concurrent programs, Shared memory, Thread, Thread pool and executor, Timeout, Weak memory models and reordering
Concurrency with Modern C++¶
Rainer Grimm · Leanpub version of 2019-03-19 edition · Leanpub (self-published) · 2019
dedicated to concurrency · on the shelf · publisher ↗
Chapters
- 1 Concurrency with Modern C++
- 2 Memory Model
- 3 Multithreading
- 4 Parallel Algorithms of the Standard Template Library
- 5 Case Studies
- 6 The Future: C++20/23
- 7 Patterns and Best Practices
- 8 Synchronisation Patterns
- 9 Concurrent Architecture
- 10 Best Practices
- 11 Lock-Based Data Structures
- 12 Lock-Free Data Structures
- 13 Challenges
- 14 The Time Library
- 15 CppMem - An Overview
Cited on: ABA problem, Barrier, Concurrent data structures, Condition variable, Coroutine, Data race, Deadlock, False sharing, Join, Latch, Monitor, Parallel algorithms, Race condition, Task (async), Thread safety, Thread-local storage, Transactional memory
Pro TBB: C++ Parallel Programming with Threading Building Blocks¶
Michael Voss, Rafael Asenjo, James Reinders · 1st edition · Apress · 2019
dedicated to concurrency · on the shelf · publisher ↗ · example code ↗
Chapters
- 1 Jumping Right In: “Hello, TBB!”
- 2 Generic Parallel Algorithms
- 3 Flow Graphs
- 4 TBB and the Parallel Algorithms of the C++ Standard Template Library
- 5 Synchronization: Why and How to Avoid It
- 6 Data Structures for Concurrency
- 7 Scalable Memory Allocation
- 8 Mapping Parallel Patterns to TBB
- 9 The Pillars of Composability
- 10 Using Tasks to Create Your Own Algorithms
- 11 Controlling the Number of Threads Used for Execution
- 12 Using Work Isolation for Correctness and Performance
- 13 Creating Thread-to-Core and Task-to-Thread Affinity
- 14 Using Task Priorities
- 15 Cancellation and Exception Handling
- 16 Tuning TBB Algorithms: Granularity, Locality, Parallelism, and Determinism
- 17 Flow Graphs: Beyond the Basics
- 18 Beef Up Flow Graphs with Async Nodes
- 19 Flow Graphs on Steroids: OpenCL Nodes
- 20 TBB on NUMA Architectures
Cited on: Cancellation, Cooperative scheduling, Dataflow programming, Fork-join, GPU computing, Granularity, NUMA, Oversubscription, Parallel algorithms, Pipeline, Preemptive scheduling, Scheduler, SIMD, Task parallelism, Thread confinement
C++ Reactive Programming: Design concurrent and asynchronous applications using the RxCpp library and Modern C++17¶
Praseed Pai, Peter Abraham · 1st edition · Packt Publishing · 2018
dedicated to concurrency · on the shelf · example code ↗
Chapters
- 1 Reactive Programming Model – Overview and History
- 2 A Tour of Modern C++ and its Key Idioms
- 3 Language-Level Concurrency and Parallelism in C++
- 4 Asynchronous and Lock-Free Programming in C++
- 5 Introduction to Observables
- 6 Introduction to Event Stream Programming Using C++
- 7 Introduction to Data Flow Computation and the RxCpp Library
- 8 RxCpp – the Key Elements
- 9 Reactive GUI Programming Using Qt/C++
- 10 Creating Custom Operators in RxCpp
- 11 Design Patterns and Idioms for C++ Rx Programming
- 12 Reactive Microservices Using C++
- 13 Advanced Streams and Handling Errors
Cited on: Async stream, Event-driven programming, Publish-subscribe and broadcast, Reactive programming, Task (async), UI thread
Mastering C++ Multithreading: Write robust, concurrent, and parallel applications¶
Maya Posch · 1st edition · Packt Publishing · 2017
dedicated to concurrency · on the shelf · example code ↗
Chapters
- 1 Revisiting Multithreading
- 2 Multithreading Implementation on the Processor and OS
- 3 C++ Multithreading APIs
- 4 Thread Synchronization and Communication
- 5 Native C++ Threads and Primitives
- 6 Debugging Multithreaded Code
- 7 Best Practices
- 8 Atomic Operations - Working with the Hardware
- 9 Multithreading with Distributed Computing
- 10 Multithreading with GPGPU
Cited on: Data race, Debugging concurrent programs, GPU computing, MPI, Mutual exclusion, Process
Parallel Programming with Intel Parallel Studio XE¶
Stephen Blair-Chappell, Andrew Stokes · 1st edition · John Wiley & Sons (Wrox) · 2012
dedicated to concurrency · on the shelf · publisher ↗
Chapters
- 1 Parallelism Today
- 2 An Overview of Parallel Studio XE
- 3 Parallel Studio XE for the Impatient
- 4 Producing Optimized Code
- 5 Writing Secure Code
- 6 Where to Parallelize
- 7 Implementing Parallelism
- 8 Checking for Errors
- 9 Tuning Parallel Applications
- 10 Parallel Advisor–Driven Design
- 11 Debugging Parallel Applications
- 12 Event-Based Analysis with VTune Amplifier XE
- 13 The World’s First Sudoku “Thirty-Niner”
- 14 Nine Tips to Parallel-Programming Heaven
- 15 Parallel Track Fitting in the CERN Collider
- 16 Parallelizing Legacy Code
Cited on: Data race, OpenMP, Parallelism, SIMD
Multi-Threaded Programming in C++¶
Mark Walmsley · 1st edition · Springer-Verlag London · 2000
dedicated to concurrency · on the shelf · publisher ↗
Chapters
- 1 Introduction
- 2 Threads
- 3 Mutexes
- 4 Events
- 5 Semaphores
- 6 Objects
- 7 Keys
- 8 Multiple Mutexes
- 9 Multiple Events
- 10 Distributed Computing
Cited on: Channel, Lock ordering, Multiprocessing, Mutex, Reentrant lock, Run-once initialization, Semaphore, Sequential execution, Thread-local storage
Programming with C++20: Concepts, Coroutines, Ranges, and more¶
Andreas Fertig · 1st edition · Fertig Publications · 2021
a concurrency chapter in a broader book · on the shelf · publisher ↗ · example code ↗
The concurrency chapters
- 2 Coroutines: Suspending functions
Cited on: Suspension point