Limit search to available items
Record 40 of 71
Previous Record Next Record
Book Cover
E-book
Author Oshana, Rob, author

Title Multicore software development techniques : applications, tips, and tricks / Rob Oshana
Published Oxford, UK ; Waltham, MA : Newnes, [2016]
©2016
Online access available from:
ScienceDirect eBooks    View Resource Record  

Copies

Description 1 online resource (1 volume) : illustrations
Contents Front Cover; Multicore Software Development Techniques; Copyright Page; Dedication; Contents; 1 Principles of Parallel Computing; 1.1 Concurrency versus Parallelism; 1.2 Symmetric and Asymmetric Multiprocessing; 1.2.1 Symmetric Multiprocessing; 1.2.2 Asymmetric Multiprocessing; 1.3 Parallelism Saves Power; 1.3.1 Limit: "Hidden Parallelism" Gains are Slowing Down; 1.3.2 Another Limit: Chip Yield and Process Technologies; 1.3.3 Another Limit: Basic Laws of Physics and the Speed of Light; 1.4 Key Challenges of Parallel Computing; 1.4.1 Finding Enough Parallelism; 1.4.2 Data Dependencies
1.4.3 Achieving the Right Level of Granularity1.4.4 Locality and Parallelism; 1.4.5 Load Imbalance; 1.4.6 Speedup; 1.4.7 Directed Graphs; 2 Parallelism in All of Its Forms; 2.1 Bit-Level Parallelism; 2.2 Instruction-Level Parallelism (ILP); 2.3 Simultaneous Multithreading; 2.4 Single Instruction, Multiple Data (SIMD); 2.5 Data Parallelism; 2.6 Task Parallelism; 2.7 Acceleration and Offload Engines; 3 Multicore System Architectures; 3.1 Shared Memory Multicore Systems; 3.2 Cache Coherency; 3.3 Shared Data Synchronization; 3.4 Distributed Memory; 3.5 Symmetric Multiprocessing
3.6 Asymmetric Multiprocessing3.7 Hybrid Approaches; 3.8 Speaking of Cores; 3.9 Graphical Processing Units (GPU); 3.10 Putting It All Together; 4 Multicore Software Architectures; 4.1 Multicore Software Architectures; 4.1.1 Master/Worker; 4.1.2 Peer; 4.1.3 Pipelined; 4.2 A Decision Tree Approach to Selecting a Multicore Architecture; 4.2.1 Decision 1: Select the Programming Model; 4.2.2 Decision 2: Choose the Operating System Framework; 4.2.3 Decision 3: Determine the Control Plane and Data Plane Model
4.2.4 Decisions 4 and 5: Choose the Type of Operating System Needed for the Control Plane and Data Plane4.2.5 Decision 6: Determine the Type of Acceleration Needed; 5 Multicore Software Development Process; 5.1 Multicore Programming Models; 6 Putting it All Together, A Case Study of Multicore Development; 6.1 Multiple-Single-Cores; 6.2 Cooperating-Multiple-Cores; 6.3 Getting Started; 6.3.1 JPEG Encoding Application; 6.4 System Requirements; 6.4.1 Intercore Communication; 6.4.2 Master-and-Slaves Implementation; 7 Multicore Virtualization; 7.1 Hypervisor Classifications
7.2 Virtualization Use Cases for Multicore7.3 Linux Hypervisors; 7.4 Virtual Networking in Multicore; 7.5 I/O Activity in a Virtualized Environment; 7.6 Direct Device Assignment; 8 Performance and Optimization of Multicore Systems; 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
Summary 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
Notes Includes index
Online resource; title from title page (Safari, viewed December 7, 2015)
Subject Parallel programming (Computer science)
Computer software -- Development.
Multiprocessors.
Systems on a chip.
Computer software -- Development
Multiprocessors
Parallel programming (Computer science)
Systems on a chip
Form Electronic book
ISBN 9780128010372
0128010371
0128009586
9780128009581