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


James. Reinders
Bok Engelsk 2007 · Electronic books.
Annen tittel
Utgitt
Sebastopol : : O'Reilly Media, , 2007.
Omfang
1 online resource (334 p.)
Opplysninger
Description based upon print version of record.. - Table of Contents; Foreword; Note from the Lead Developer of Intel Threading Building Blocks; Preface; Assumptions This Book Makes; Contents of This Book; Conventions Used in This Book; Informal Class Declarations; Using Code Examples; How to Contact Us; Acknowledgments; Why Threading Building Blocks?; Overview; Benefits; Comparison with Raw Threads and MPI; Comparison with OpenMP; Recursive Splitting, Task Stealing, and Algorithms; Thinking Parallel; Elements of Thinking Parallel; Decomposition; Data Parallelism; Task Parallelism; Pipelining (Task and Data Parallelism Together). - Advanced exampleParallel_reduce with partitioner; Advanced Topic: Other Kinds of Iteration Spaces; Notes on blocked_range2d; parallel_scan; Parallel_scan with partitioner; Recursive Range Specifications; Splittable Concept; Model Types: Splittable Ranges; split Class; Range Concept; Model Types; blocked_range Template Class; blocked_range2d Template Class; Partitioner Concept; Model Types: Partitioners; simple_partitioner Class; auto_partitioner Class; parallel_for Template Function; parallel_reduce Template Function; parallel_scan Template Function. - Mixed SolutionsAchieving Parallelism; Scaling and Speedup; How Much Parallelism Is There in an Application?; Amdahl's Law; Gustafson's observations regarding Amdahl's Law; What did they really say?; Serial versus parallel algorithms; What Is a Thread?; Programming Threads; Safety in the Presence of Concurrency; Mutual Exclusion and Locks; Correctness; Abstraction; Patterns; Intuition; Basic Algorithms; Initializing and Terminating the Library; Loop Parallelization; parallel_for; Grain size; Automatic grain size; Notes on automatic grain size; parallel_for with partitioner; parallel_reduce. - Replace malloc, free, realloc, and calloc. - Whole Vector OperationsConcurrent Operations; Parallel Iteration; Capacity; Iterators; concurrent_hash_map; More on HashCompare; concurrent_hash_map Template Class; Whole-Table Operations; Concurrent Access; const_accessor; accessor class; Concurrent Operations: find, insert, erase; Parallel Iteration; Capacity; Iterators; Scalable Memory Allocation; Limitations; Problems in Memory Allocation; Memory Allocators; Which Library to Link into Your Application; Using the Allocator Argument to C++ STL Template Classes; Replacing malloc, new, and delete. - pre_scan_tag and final_scan_tag ClassesSummary of Loops; Advanced Algorithms; Parallel Algorithms for Streams; Cook Until Done: parallel_while; Notes on parallel_while scaling; parallel_while Template Class; Working on the Assembly Line: Pipeline; Throughput of pipeline; Nonlinear pipelines; pipeline Class; filter Class; parallel_sort; parallel_sort Template Function; Containers; concurrent_queue; Iterating over a concurrent_queue for Debugging; When Not to Use Queues; concurrent_queue Template Class; concurrent_vector; concurrent_vector Template Class. - 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.
Emner
Sjanger
Dewey
ISBN
0596514808. - 9780596514808

Bibliotek som har denne