Muutke küpsiste eelistusi

E-raamat: Intel Threading Building Blocks: Outfitting C++ for Multi-core Processor Parallelism

  • Formaat: 332 pages
  • Sari: O'Reilly Ser.
  • Ilmumisaeg: 12-Jul-2007
  • Kirjastus: O'Reilly Media
  • Keel: eng
  • ISBN-13: 9780596517267
Teised raamatud teemal:
  • Formaat - PDF+DRM
  • Hind: 26,90 €*
  • * hind on lõplik, st. muud allahindlused enam ei rakendu
  • Lisa ostukorvi
  • Lisa soovinimekirja
  • See e-raamat on mõeldud ainult isiklikuks kasutamiseks. E-raamatuid ei saa tagastada.
  • Formaat: 332 pages
  • Sari: O'Reilly Ser.
  • Ilmumisaeg: 12-Jul-2007
  • Kirjastus: O'Reilly Media
  • Keel: eng
  • ISBN-13: 9780596517267
Teised raamatud teemal:

DRM piirangud

  • Kopeerimine (copy/paste):

    ei ole lubatud

  • Printimine:

    ei ole lubatud

  • Kasutamine:

    Digitaalõiguste kaitse (DRM)
    Kirjastus on väljastanud selle e-raamatu krüpteeritud kujul, mis tähendab, et selle lugemiseks peate installeerima spetsiaalse tarkvara. Samuti peate looma endale  Adobe ID Rohkem infot siin. E-raamatut saab lugeda 1 kasutaja ning alla laadida kuni 6'de seadmesse (kõik autoriseeritud sama Adobe ID-ga).

    Vajalik tarkvara
    Mobiilsetes seadmetes (telefon või tahvelarvuti) lugemiseks peate installeerima selle tasuta rakenduse: PocketBook Reader (iOS / Android)

    PC või Mac seadmes lugemiseks peate installima Adobe Digital Editionsi (Seeon tasuta rakendus spetsiaalselt e-raamatute lugemiseks. Seda ei tohi segamini ajada Adober Reader'iga, mis tõenäoliselt on juba teie arvutisse installeeritud )

    Seda e-raamatut ei saa lugeda Amazon Kindle's. 

Intel Threading Building Blocks is "a C++ template library for parallelism that extends C++ by abstracting away thread management and allowing straightforward parallel programming," to quote Reinders (a senior engineer with the Intel Corporation), who explains the advantages and use of Threading Building Blocks. He covers basic and advanced algorithms, data structure capabilities, scalable memory allocation, mutual exclusion, timing, and the task scheduler. He also presents examples of the use of Threading Building Blocks and discusses the history of its design. Prior knowledge of parallel computing, C++ templates, and template libraries is useful but not necessary for understanding the material. Annotation ©2008 Book News, Inc., Portland, OR (booknews.com)

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 developers and customers, this book explains the key tasks in multithreading and how to accomplish them with TBB in a portable and robust manner. With plenty of examples and full reference material, the book lays out common patterns of uses, reveals the gotchas in TBB, and gives important guidelines for choosing among alternatives in order to get the best performance.

You'll learn how Intel Threading Building Blocks:

  • Enables you to specify tasks instead of threads for better portability, easier programming, more understandable source code, and better performance and scalability in general
  • Focuses on the goal of parallelizing computationally intensive work to deliver high-level solutions
  • Is compatible with other threading packages, and doesn't force you to pick one package for your entire program
  • Emphasizes scalable, data-parallel programming, which allows program performance to increase as you add processors
  • Relies on generic programming, which enables you to write the best possible algorithms with the fewest constraints
Any C++ programmer who wants to write an application to run on a multi-core system will benefit from this book. TBB is also very approachable for a C programmer or a C++ programmer without much experience with templates. Best of all, you don't need experience with parallel programming or multi-core processors to use this book.



Book explains how to maximize the benefits of Intel's new dual-core and multi-core processors through a portable C++ library that works on Windows, Linux, Macintosh, and Unix systems.

More than ever, multithreading is a requirement for good performance of systems with multi-core chips. This book combines the expertise of Intel's developers and customers to teach programmers how to use Intel Threading Building Blocks effectively for parallel programming.
Foreword xiii
Note from the Lead Developer of Intel Threading Building Blocks xv
Preface xix
Why Threading Building Blocks?
1(6)
Overview
2(1)
Benefits
2(5)
Thinking Parallel
7(22)
Elements of Thinking Parallel
8(1)
Decomposition
9(4)
Scaling and Speedup
13(6)
What Is a Thread?
19(3)
Mutual Exclusion and Locks
22(1)
Correctness
23(2)
Abstraction
25(1)
Patterns
25(2)
Intuition
27(2)
Basic Algorithms
29(36)
Initializing and Terminating the Library
30(2)
Loop Parallelization
32(20)
Recursive Range Specifications
52(12)
Summary of Loops
64(1)
Advanced Algorithms
65(15)
Parallel Algorithms for Streams
65(15)
Containers
80(21)
concurrent_queue
81(5)
concurrent_vector
86(5)
concurrent_hash_map
91(10)
Scalable Memory Allocation
101(9)
Limitations
101(1)
Problems in Memory Allocation
101(2)
Memory Allocators
103(1)
Replacing malloc, new, and delete
104(6)
Mutual Exclusion
110(20)
When to Use Mutual Exclusion
111(1)
Mutexes
112(6)
Mutexes
118(4)
Atomic Operations
122(8)
Timing
130(3)
Task Scheduler
133(36)
When Task-Based Programming Is Inappropriate
133(1)
Much Better Than Raw Native Threads
134(3)
Initializing the Library Is Your Job
137(1)
Example Program for Fibonacci Numbers
137(3)
Task Scheduling Overview
140(2)
How Task Scheduling Works
142(3)
Recommended Task Recurrence Patterns
145(2)
Making Best Use of the Scheduler
147(6)
Task Scheduler Interfaces
153(15)
Task Scheduler Summary
168(1)
Keys to Success
169(8)
Key Steps to Success
169(1)
Relaxed Sequential Execution
170(1)
Safe Concurrency for Methods and Libraries
171(1)
Debug Versus Release
172(1)
For Efficiency's Sake
172(1)
Enabling Debugging Features
172(2)
Mixing with Other Threading Packages
174(2)
Naming Conventions
176(1)
Examples
177(106)
The Aha! Factor
177(2)
A Few Other Key Points
179(1)
parallel_for Examples
180(10)
The Game of Life
190(9)
Parallel_reduce Examples
199(10)
CountStrings: Using concurrent_hash_map
209(6)
Quicksort: Visualizing Task Stealing
215(8)
A Better Matrix Multiply (Strassen)
223(7)
Advanced Task Programming
230(7)
Packet Processing Pipeline
237(20)
Memory Allocation
257(5)
Game Threading Example
262(9)
Physics Interaction and Update Code
271(4)
Open Dynamics Engine
275(8)
History and Related Projects
283(14)
Libraries
283(2)
Languages
285(1)
Pragmas
286(1)
Generic Programming
286(3)
Caches
289(1)
Costs of Time Slicing
290(1)
Quick Introduction to Lambda Functions
291(1)
Further Reading
292(5)
Index 297