Skip to content

Intel Threading Building Blocks Outfitting C++ for Multi-Core Processor Parallelism

Spend $50 to get a free DVD!

ISBN-10: 0596514808

ISBN-13: 9780596514808

Edition: 2007

Authors: James Reinders

List price: $39.99
Shipping box This item qualifies for FREE shipping.
Blue ribbon 30 day, 100% satisfaction guarantee!
what's this?
Rush Rewards U
Members Receive:
Carrot Coin icon
XP icon
You have reached 400 XP and carrot coins. That is the daily max!

Description:

Multi-core chips from Intel and AMD offer a dramatic boost in speed and responsiveness, and plenty of opportunities for multiprocessing on ordinary desktop computers. But they also present a challenge: More than ever, multithreading is a requirement for good performance. This guide explains how to maximize the benefits of these processors through a portable C++ library that works on Windows, Linux, Macintosh, and Unix systems. With it, you'll learn how to use Intel Threading Building Blocks (TBB) effectively for parallel programming -- without having to be a threading expert. Written by James Reinders, Chief Evangelist of Intel Software Products, and based on the experience of Intel's…    
Customers also bought

Book details

List price: $39.99
Copyright year: 2007
Publisher: O'Reilly Media, Incorporated
Publication date: 7/22/2007
Binding: Paperback
Pages: 336
Size: 7.00" wide x 9.25" long x 1.00" tall
Weight: 1.386
Language: English

James Reinders is involved in multiple engineering, research and educational efforts to increase use of parallel programming throughout the industry. James has contributed to numerous projects including the world's first TeraFLOP/s supercomputer (ASCI Red) and the world's first TeraFLOP/s microprocessor (Intel� Xeon PhiT coprocessor). James has authored numerous technical books, including three other books currently in print: Structured Parallel Programming (Morgan Kaufmann, 2012), Intel� Xeon PhiT Coprocessor High Performance Programming (Morgan Kaufmann, 2013), and Multithreading for Visual Effects (2014).

Foreword
Note from the Lead Developer of Intel Threading Building Blocks
Preface
Why Threading Building Blocks?
Overview
Benefits
Thinking Parallel
Elements of Thinking Parallel
Decomposition
Scaling and Speedup
What Is a Thread?
Mutual Exclusion and Locks
Correctness
Abstraction
Patterns
Intuition
Basic Algorithms
Initializing and Terminating the Library
Loop Parallelization
Recursive Range Specifications
Summary of Loops
Advanced Algorithms
Parallel Algorithms for Streams
Containers
concurrent_queue
concurrent_vector
concurrent_hash_map
Scalable Memory Allocation
Limitations
Problems in Memory Allocation
Memory Allocators
Replacing malloc, new, and delete
Mutual Exclusion
When to Use Mutual Exclusion
Mutexes
Mutexes
Atomic Operations
Timing
Task Scheduler
When Task-Based Programming Is Inappropriate
Much Better Than Raw Native Threads
Initializing the Library Is Your Job
Example Program for Fibonacci Numbers
Task Scheduling Overview
How Task Scheduling Works
Recommended Task Recurrence Patterns
Making Best Use of the Scheduler
Task Scheduler Interfaces
Task Scheduler Summary
Keys to Success
Key Steps to Success
Relaxed Sequential Execution
Safe Concurrency for Methods and Libraries
Debug Versus Release
For Efficiency's Sake
Enabling Debugging Features
Mixing with Other Threading Packages
Naming Conventions
Examples
The Aha! Factor
A Few Other Key Points
parallel_for Examples
The Game of Life
Parallel_reduce Examples
CountStrings: Using concurrent_hash_map
Quicksort: Visualizing Task Stealing
A Better Matrix Multiply (Strassen)
Advanced Task Programming
Packet Processing Pipeline
Memory Allocation
Game Threading Example
Physics Interaction and Update Code
Open Dynamics Engine
History and Related Projects
Libraries
Languages
Pragmas
Generic Programming
Caches
Costs of Time Slicing
Quick Introduction to Lambda Functions
Further Reading
Index