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.
- Designed to introduce threading and multicore programming to teach modern coding strategies for developers in applied computing
- Leverages author Victor Alessandrini's rich experience to explain each platform's design strategies, analyzing the focus and strengths underlying their often complementary capabilities, as well as their interoperability
- Includes complete, up-to-date discussions of OpenMP 4.0 and TBB
- Based on the author's training sessions, including information on source code and software libraries which can be repurposed
After obtaining a PhD in theoretical physics in Argentina - where he was born - he spent several years as visiting scientist, working in theoretical particle physics in different research laboratories in the USA and Europe, in particular at the CERN theory division. In 1978, he was appointed full professor at the University of Paris XI in Orsay, France. His basic interests shifted to computational sciences in the early 90's, and he was at this time the founding director of IDRIS supercomputing center in Orsay, which he directed until 2009. In 2004-2009, he coordinated the DEISA European supercomputing infrastructure, a consortium of national supercomputing centers that pioneered the deployment of high performance computing services au the continental scale. He is currently emeritus research director at 'Maison de la Simulation", a CEA-CNRS-INRIA-University research laboratory providing high level support to HPC. He was decorated in 2011 'Chevalier de l'Ordre National du Mérite" by the French Republic.