1 option
Intel threading building blocks : outfitting C++ for multi-core processor parallelism / James Reinders.
- Format:
- Book
- Author/Creator:
- Reinders, James.
- Language:
- English
- Subjects (All):
- C++ (Computer program language).
- Parallel processing (Electronic computers).
- Physical Description:
- 1 online resource (334 p.)
- Edition:
- First edition.
- Other Title:
- Outfitting C++ for multi-core processor parallelism
- Place of Publication:
- Beijing ; Sebastopol, California : O'Reilly, 2007.
- Language Note:
- English
- System Details:
- text file
- Summary:
- 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.
- Contents:
- 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)
- 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
- 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
- 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
- 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
- Replace malloc, free, realloc, and calloc
- Notes:
- Description based upon print version of record.
- Includes bibliographical references (pages 292-295) and index.
- Description based on print version record.
- ISBN:
- 9781449390860
- 1449390862
- 9780596517267
- 0596517262
- OCLC:
- 297556537
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.