Book description
This book provides a set of practical processes and techniques used for multicore software development. It is written with a focus on solving day to day problems using practical tips and tricks and industry case studies to reinforce the key concepts in multicore software development.
Coverage includes:
- The multicore landscape
- Principles of parallel computing
- Multicore SoC architectures
- Multicore programming models
- The Multicore development process
- Multicore programming with threads
- Concurrency abstraction layers
- Debugging Multicore Systems
- Practical techniques for getting started in multicore development
- Case Studies in Multicore Systems Development
- Sample code to reinforce many of the concepts discussed
- Presents the ‘nuts and bolts’ of programming a multicore system
- Provides a short-format book on the practical processes and techniques used in multicore software development
- Covers practical tips, tricks and industry case studies to enhance the learning process
Table of contents
- Cover image
- Title page
- Table of Contents
- Copyright
- Dedication
- Chapter 1. Principles of Parallel Computing
- Chapter 2. Parallelism in All of Its Forms
- Chapter 3. Multicore System Architectures
- Chapter 4. Multicore Software Architectures
- Chapter 5. Multicore Software Development Process
- Chapter 6. Putting it All Together, A Case Study of Multicore Development
- Chapter 7. Multicore Virtualization
-
Chapter 8. Performance and Optimization of Multicore Systems
- Abstract
- 8.1 Select the Right “Core” for Your Multicore
- 8.2 Improve Serial Performance before Migrating to Multicore (Especially ILP)
- 8.3 Achieve Proper Load Balancing (SMP Linux) and Scheduling
- 8.4 Improve Data Locality
- 8.5 Reduce or Eliminate False Sharing
- 8.6 Use Affinity Scheduling When Necessary
- 8.7 Apply the Proper Lock Granularity and Frequency
- 8.8 Remove Sync Barriers Where Possible
- 8.9 Minimize Communication Latencies
- 8.10 Use Thread Pools
- 8.11 Manage Thread Count
- 8.12 Stay Out of the Kernel If at all Possible
- 8.13 Use Parallel Libraries (pthreads, OpenMP, etc.)
-
Chapter 9. Sequential to Parallel Migration of Software Applications
- Abstract
- 9.1 Step 1: Understand Requirements
- 9.2 Step 2: Sequential Analysis
- 9.3 Step 3: Exploration
- 9.4 Step 4: Code Optimization and Tuning
- 9.5 Image Processing Example
- 9.6 Step 2: Sequential Analysis
- 9.7 Step 3: Exploration
- 9.8 Step 4: Optimization and Tuning
- 9.9 Data Parallel; First Attempt
- 9.10 Data Parallel—Second Try
- 9.11 Task Parallel—Third Try
- 9.12 Exploration Results
- 9.13 Tuning
- 9.14 Data Parallel—Third Try
- 9.15 Data Parallel—Third Results
- 9.16 Data Parallel—Fourth Try
- 9.17 Data Parallel—Work Queues
- 9.18 Going Too Far?
- Chapter 10. Concurrency Abstractions
- Appendix A. Source Code Examples
- Index
Product information
- Title: Multicore Software Development Techniques
- Author(s):
- Release date: November 2015
- Publisher(s): Newnes
- ISBN: 9780128010372
You might also like
book
Multicore DSP
The only book to offer special coverage of the fundamentals of multicore DSP for implementation on …
book
Multicore Application Programming: For Windows, Linux, and Oracle® Solaris
Write High-Performance, Highly Scalable Multicore Applications for Leading Platforms is a comprehensive, practical guide to high-performance …
book
Software Development for Embedded Multi-core Systems
The multicore revolution has reached the deployment stage in embedded systems ranging from small ultramobile devices …
book
Demystifying Embedded Systems Middleware
This practical technical guide to embedded middleware implementation offers a coherent framework that guides readers through …