Skip to product information
1 of 1
Regular price £45.49 GBP
Regular price £54.99 GBP Sale price £45.49 GBP
Sale Sold out
Free UK Shipping

Freshly Printed - allow 10 days lead

Shared Memory Application Programming
Concepts and Strategies in Multicore Application Programming

Presents the key concepts and applications of multithreaded programming

Victor Alessandrini (Author)

9780128037614

Paperback, published 27 October 2015

556 pages
23.4 x 19 x 3.4 cm, 1.11 kg

Shared Memory Application Programming presents the key concepts and applications of parallel programming, in an accessible and engaging style applicable to developers across many domains. Multithreaded programming is today a core technology, at the basis of all software development projects in any branch of applied computer science. This book guides readers to develop insights about threaded programming and introduces two popular platforms for multicore development: OpenMP and Intel Threading Building Blocks (TBB). Author Victor Alessandrini leverages his rich experience to explain each platform’s design strategies, analyzing the focus and strengths underlying their often complementary capabilities, as well as their interoperability.

The book is divided into two parts: the first develops the essential concepts of thread management and synchronization, discussing the way they are implemented in native multithreading libraries (Windows threads, Pthreads) as well as in the modern C++11 threads standard. The second provides an in-depth discussion of TBB and OpenMP including the latest features in OpenMP 4.0 extensions to ensure readers’ skills are fully up to date. Focus progressively shifts from traditional thread parallelism to modern task parallelism deployed by modern programming environments. Several chapter include examples drawn from a variety of disciplines, including molecular dynamics and image processing, with full source code and a software library incorporating a number of utilities that readers can adapt into their own projects.

  1. Introduction
  2. Threads
  3. Creating and running threads
  4. Thread safe programming
  5. Concurrent access to shared data
  6. Event synchronization
  7. Cache coherency and memory consistency
  8. High level synchronization tools
  9. OpenMP
  10. Intel Threading Building Blocks
  11. Further thread pools
  12. A molecular dynamics example
  13. Further data parallel examples
  14. Pipelining Threads
  15. Using the TBB task scheduler

Subject Areas: Distributed systems [UTR], Computer programming / software development [UM], Grid & parallel computing [UKG], Microprocessors [TJFD1]

View full details