Log In
Or create an account -> 
Imperial Library
  • Home
  • About
  • News
  • Upload
  • Forum
  • Help
  • Login/SignUp

Index
Title Page Copyright
Mastering C++ Multithreading
Credits About the Author About the Reviewer www.PacktPub.com
Why subscribe?
Customer Feedback Preface
What this book covers What you need for this book Who this book is for Conventions Reader feedback
Downloading the example code Errata Piracy Questions
Revisiting Multithreading
Getting started The multithreaded application
Makefile
Other applications Summary
Multithreading Implementation on the Processor and OS
Defining processes and threads
Tasks in x86 (32-bit and 64-bit) Process state in ARM
The stack Defining multithreading
Flynn's taxonomy Symmetric versus asymmetric multiprocessing Loosely and tightly coupled multiprocessing Combining multiprocessing with multithreading Multithreading types
Temporal multithreading Simultaneous multithreading (SMT)
Schedulers Tracing the demo application Mutual exclusion implementations
Hardware Software
Summary
C++ Multithreading APIs
API overview POSIX threads
Windows support PThreads thread management Mutexes Condition variables Synchronization Semaphores Thread local storage (TLC)
Windows threads
Thread management Advanced management Synchronization Condition variables Thread local storage
Boost Qt
QThread Thread pools Synchronization QtConcurrent Thread local storage
POCO
Thread class Thread pool Thread local storage (TLS) Synchronization
C++ threads Putting it together Summary
Thread Synchronization and Communication
Safety first The scheduler
High-level view Implementation
Request class Worker class
Dispatcher Makefile Output
Sharing data
Using r/w-locks Using shared pointers
Summary
Native C++ Threads and Primitives
The STL threading API
Boost.Thread API
The 2011 standard C++14 C++17 STL organization Thread class
Basic use Passing parameters Return value Moving threads Thread ID Sleeping Yield Detach Swap
Mutex
Basic use
Non-blocking locking
Timed mutex Lock guard Unique lock Scoped lock Recursive mutex Recursive timed mutex
Shared mutex
Shared timed mutex
Condition variable
Condition_variable_any Notify all at thread exit
Future
Promise
Shared future
Packaged_task Async
Launch policy
Atomics Summary
Debugging Multithreaded Code
When to start debugging The humble debugger
GDB Debugging multithreaded code Breakpoints Back traces
Dynamic analysis tools
Limitations Alternatives Memcheck
Basic use Error types
Illegal read / illegal write errors Use of uninitialized values Uninitialized or unaddressable system call values Illegal frees Mismatched deallocation Overlapping source and destination Fishy argument values Memory leak detection
Helgrind
Basic use
Misuse of the pthreads API Lock order problems Data races DRD Basic use Features C++11 threads support
Summary
Best Practices
Proper multithreading Wrongful expectations - deadlocks Being careless - data races Mutexes aren't magic Locks are fancy mutexes Threads versus the future Static order of initialization Summary
Atomic Operations - Working with the Hardware
Atomic operations
Visual C++ GCC
Memory order
Other compilers C++11 atomics Example Non-class functions Example Atomic flag Memory order
Relaxed ordering Release-acquire ordering Release-consume ordering Sequentially-consistent ordering Volatile keyword
Summary
Multithreading with Distributed Computing
Distributed computing, in a nutshell
MPI
Implementations Using MPI
Compiling MPI applications The cluster hardware
Installing Open MPI
Linux and BSDs Windows
Distributing jobs across nodes
Setting up an MPI node Creating the MPI host file Running the job Using a cluster scheduler
MPI communication
MPI data types
Custom types
Basic communication Advanced communication Broadcasting Scattering and gathering
MPI versus threads Potential issues Summary
Multithreading with GPGPU
The GPGPU processing model
Implementations OpenCL Common OpenCL applications OpenCL versions
OpenCL 1.0 OpenCL 1.1 OpenCL 1.2 OpenCL 2.0 OpenCL 2.1 OpenCL 2.2
Setting up a development environment
Linux Windows OS X/MacOS
A basic OpenCL application GPU memory management GPGPU and multithreading
Latency
Potential issues Debugging GPGPU applications Summary
  • ← Prev
  • Back
  • Next →
  • ← Prev
  • Back
  • Next →

Chief Librarian: Las Zenow <zenow@riseup.net>
Fork the source code from gitlab
.

This is a mirror of the Tor onion service:
http://kx5thpx2olielkihfyo4jgjqfb7zx7wxr3sd4xzt26ochei4m6f7tayd.onion