
Shared Memory Application Programming
Concepts and Strategies in Multicore Application Programming
- 556 pages
- English
- ePUB (mobile friendly)
- Available on iOS & Android
Shared Memory Application Programming
Concepts and Strategies in Multicore Application Programming
About this book
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
Frequently asked questions
- Essential is ideal for learners and professionals who enjoy exploring a wide range of subjects. Access the Essential Library with 800,000+ trusted titles and best-sellers across business, personal growth, and the humanities. Includes unlimited reading time and Standard Read Aloud voice.
- Complete: Perfect for advanced learners and researchers needing full, unrestricted access. Unlock 1.4M+ books across hundreds of subjects, including academic and specialized titles. The Complete Plan also includes advanced features like Premium Read Aloud and Research Assistant.
Please note we cannot support devices running on iOS 13 and Android 7 or earlier. Learn more about using the app.
Information
Introduction and Overview
Abstract
1.1 Processes and Threads
1.2 Overview of Computing Platforms


1.2.1 Shared Memory Multiprocessor Systems

Table of contents
- Cover image
- Title page
- Table of Contents
- Copyright
- Preface
- Biography
- Acknowledgments
- Chapter 1: Introduction and Overview
- Chapter 2: Introducing Threads
- Chapter 3: Creating and Running Threads
- Chapter 4: Thread-Safe Programming
- Chapter 5: Concurrent Access to Shared Data
- Chapter 6: Event Synchronization
- Chapter 7: Cache Coherency and Memory Consistency
- Chapter 8: Atomic Types and Operations
- Chapter 9: High-Level Synchronization Tools
- Chapter 10: OpenMP
- Chapter 11: Intel Threading Building Blocks
- Chapter 12: Further Thread Pools
- Chapter 13: Molecular Dynamics Example
- Chapter 14: Further Data Parallel Examples
- Chapter 15: Pipelining Threads
- Chapter 16: Using the TBB Task Scheduler
- Annex A: Using the Software
- Annex B: C++ Function Objects and Lambda Expressions
- Bibliography
- Index