Shared Memory Application Programming

Shared Memory Application Programming: Concepts and Strategies in Multicore 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 a core technology at the basis of any software development project in any branch of applied computer science. This book presents tactics readers can use to develop insights on 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, with the first developing the essential concepts on multithreading, thread safety, and management and synchronization, and the second providing an in-depth discussion of TBB and OpenMP, including the latest features in OpenMP 4.0 to ensure readers' skills are fully up-to-date. Each chapter includes examples drawn from a variety of disciplines, including molecular dynamics and image processing, with full source code and software libraries that readers can adapt into their own projects.