My Account Log in

2 options

Multicore software development techniques : applications, tips, and tricks / Rob Oshana.

Ebook Central Academic Complete Available online

View online

O'Reilly Online Learning: Academic/Public Library Edition Available online

View online
Format:
Book
Author/Creator:
Oshana, Robert, author.
Series:
Newnes Pocket Bks.
Language:
English
Subjects (All):
Parallel programming (Computer science).
Multiprocessors.
Computer software--Development.
Computer software.
Systems on a chip.
Physical Description:
1 online resource (233 p.)
Edition:
1st edition
Place of Publication:
Amsterdam : Elsevier : Newnes, [2016]
System Details:
text file
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 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
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
8.8 Remove Sync Barriers Where Possible
Notes:
Description based upon print version of record.
Includes bibliographical references and index.
Description based on online resource; title from PDF title page (ebrary, viewed December 31, 2015).
ISBN:
9780128009581
0128009586
9780128010372
0128010371
OCLC:
930600757

The Penn Libraries is committed to describing library materials using current, accurate, and responsible language. If you discover outdated or inaccurate language, please fill out this feedback form to report it and suggest alternative language.

Find

Home Release notes

My Account

Shelf Request an item Bookmarks Fines and fees Settings

Guides

Using the Find catalog Using Articles+ Using your account