Intel Threading Building Blocks: outfitting C++ for multi-core processor parallelism
Gespeichert in:
1. Verfasser: | |
---|---|
Format: | Buch |
Sprache: | English |
Veröffentlicht: |
Beijing [u.a.]
O'Reilly
2007
|
Ausgabe: | 1. ed. |
Schlagworte: | |
Online-Zugang: | Table of contents Inhaltsverzeichnis |
Beschreibung: | XXV, 303 S. Ill., graph. Darst. |
ISBN: | 9780596514808 0596514808 |
Internformat
MARC
LEADER | 00000nam a2200000 c 4500 | ||
---|---|---|---|
001 | BV022715655 | ||
003 | DE-604 | ||
005 | 20091113 | ||
007 | t | ||
008 | 070905s2007 ad|| |||| 00||| eng d | ||
010 | |a 2007299881 | ||
015 | |a 07,N29,0080 |2 dnb | ||
016 | 7 | |a 984686584 |2 DE-101 | |
020 | |a 9780596514808 |c : EUR 34.00 (freier Pr.) |9 978-0-596-51480-8 | ||
020 | |a 0596514808 |c : EUR 34.00 (freier Pr.) |9 0-596-51480-8 | ||
035 | |a (OCoLC)255731388 | ||
035 | |a (DE-599)DNB984686584 | ||
040 | |a DE-604 |b ger |e rakddb | ||
041 | 0 | |a eng | |
049 | |a DE-703 |a DE-Aug4 |a DE-898 |a DE-91G |a DE-29T |a DE-11 |a DE-2070s | ||
050 | 0 | |a QA76.58 .R446 2007 | |
082 | 0 | |a 005.13/3 22 | |
082 | 0 | |a 005.133 |2 22 | |
084 | |a ST 151 |0 (DE-625)143595: |2 rvk | ||
084 | |a ST 230 |0 (DE-625)143617: |2 rvk | ||
084 | |a ST 250 |0 (DE-625)143626: |2 rvk | ||
084 | |a DAT 216f |2 stub | ||
084 | |a 004 |2 sdnb | ||
100 | 1 | |a Reinders, James |e Verfasser |0 (DE-588)137778937 |4 aut | |
245 | 1 | 0 | |a Intel Threading Building Blocks |b outfitting C++ for multi-core processor parallelism |c James Reinders |
250 | |a 1. ed. | ||
264 | 1 | |a Beijing [u.a.] |b O'Reilly |c 2007 | |
300 | |a XXV, 303 S. |b Ill., graph. Darst. | ||
336 | |b txt |2 rdacontent | ||
337 | |b n |2 rdamedia | ||
338 | |b nc |2 rdacarrier | ||
650 | 4 | |a Parallel processing (Electronic computers) | |
650 | 4 | |a C++ (Computer program language) | |
650 | 0 | 7 | |a Parallelrechner |0 (DE-588)4173280-7 |2 gnd |9 rswk-swf |
650 | 0 | 7 | |a C++ |0 (DE-588)4193909-8 |2 gnd |9 rswk-swf |
650 | 0 | 7 | |a Parallelverarbeitung |0 (DE-588)4075860-6 |2 gnd |9 rswk-swf |
689 | 0 | 0 | |a Parallelrechner |0 (DE-588)4173280-7 |D s |
689 | 0 | |5 DE-604 | |
689 | 1 | 0 | |a C++ |0 (DE-588)4193909-8 |D s |
689 | 1 | 1 | |a Parallelverarbeitung |0 (DE-588)4075860-6 |D s |
689 | 1 | |5 DE-604 | |
856 | 4 | 2 | |q text/html |u http://www.loc.gov/catdir/toc/fy0802/2007299881.html |3 Table of contents |
856 | 4 | 2 | |m GBV Datenaustausch |q application/pdf |u http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=015921443&sequence=000001&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA |3 Inhaltsverzeichnis |
999 | |a oai:aleph.bib-bvb.de:BVB01-015921443 |
Datensatz im Suchindex
_version_ | 1804136938588864512 |
---|---|
adam_text | INTEL THREADING BUILDING BLOCKS OUTFITTING C++FOR MULTI-CORE PROCESSOR
PARALLELISM JAMES REINDERS O REILLY 8 BEIJING * CAMBRIDGE * FARNHAM *
KOELN * SEBASTOPOL * TAIPEI * TOKYO TABLE OF CONTENTS FOREWORD XIII NOTE
FROM THE LEAD DEVELOPER OF INTEL THREADING BUILDING BLOCKS XV PREFACE
XIX 1. WHY THREADING BUILDING BLOCKS? 1 OVERVIEW 2 BENEFITS 2 2.
THINKING PARALLEL 7 ELEMENTS OF THINKING PARALLEL 8 DECOMPOSITION 9
SCALING AND SPEEDUP 13 WHAT IS A THREAD? 19 MUTUAL EXCLUSION AND LOCKS
22 CORRECTNESS 23 ABSTRACTION 25 PATTERNS 25 INTUITION 27 3. BASIC
ALGORITHMS 29 INITIALIZING AND TERMINATING THE LIBRARY 30 LOOP
PARALLELIZATION 32 RECURSIVE RANGE SPECIFICATIONS 52 SUMMARY OF LOOPS 64
IX 4. ADVANCED ALGORITHMS 65 PARALLEL ALGORITHMS FOR STREAMS 65 5.
CONTAINERS 80 CONCURRENT_QUEUE 81 CONCURRENT_VECTOR 86
CONCURRENT_HASH_MAP 91 6. SCALABLE MEMORY ALLOCATION 101 LIMITATIONS 101
PROBLEMS IN MEMORY ALLOCATION 101 MEMORY ALLOCATORS 103 REPLACING
MAILOC, NEW, AND DELETE 104 7. MUTUAL EXCLUSION 110 WHEN TO USE MUTUAL
EXCLUSION 111 MUTEXES 112 MUTEXES 118 ATOMIC OPERATIONS 122 8. TIMING
130 9. TASKSCHEDULER 133 WHEN TASK-BASED PROGRAMMING IS INAPPROPRIATE
133 MUCH BETTER THAN RAW NATIVE THREADS 134 INITIALIZING THE LIBRARY IS
YOUR JOB 137 EXAMPLE PROGRAM FOR FIBONACCI NUMBERS 137 TASK SCHEDULING
OVERVIEW 140 HOW TASK SCHEDULING WORKS 142 RECOMMENDED TASK RECURRENCE
PATTERNS 145 MAKING BEST USE OF THE SCHEDULER 147 TASK SCHEDULER
INTERFACES 153 TASK SCHEDULER SUMMARY 168 10. KEYSTOSUCCESS 169 KEY
STEPS TO SUCCESS 169 RELAXED SEQUENTIAL EXECUTION 170 SAFE CONCURRENCY
FOR METHODS AND LIBRARIES 171 X | TABLE OF CONTENTS DEBUG VERSUS RELEASE
172 FOR EFFICIENCY S SAKE 172 ENABLING DEBUGGING FEATURES 172 MIXING
WITH OTHER THREADING PACKAGES 174 NAMING CONVENTIONS 176 11. EXAMPLES
177 THE AHA! FACTOR 177 A FEW OTHER KEY POINTS 179 PARALLEL_FOR EXAMPLES
180 THE GAME OF LIFE 190 PARALLEL_REDUCE EXAMPLES 199 COUNTSTRINGS:
USING CONCURRENT_HASH_MAP 209 QUICKSORT: VISUALIZING TASK STEALING 215 A
BETTER MATRIX MULTIPLY (STRASSEN) 223 ADVANCED TASK PROGRAMMING 230
PACKET PROCESSING PIPELINE 237 MEMORY ALLOCATION 257 GAME THREADING
EXAMPLE 262 PHYSICS INTERACTION AND UPDATE CODE 271 OPEN DYNAMICS ENGINE
275 12. HISTORY AND RELATED PROJECTS 283 LIBRARIES 283 LANGUAGES 285
PRAGMAS 286 GENERIC PROGRAMMING 286 CACHES 289 COSTS OF TIME SLICING 290
QUICK INTRODUCTION TO LAMBDA FUNCTIONS 291 FURTHER READING 292 INDEX 297
TABLE OF CONTENTS | XI
|
adam_txt |
INTEL THREADING BUILDING BLOCKS OUTFITTING C++FOR MULTI-CORE PROCESSOR
PARALLELISM JAMES REINDERS O'REILLY 8 BEIJING * CAMBRIDGE * FARNHAM *
KOELN * SEBASTOPOL * TAIPEI * TOKYO TABLE OF CONTENTS FOREWORD XIII NOTE
FROM THE LEAD DEVELOPER OF INTEL THREADING BUILDING BLOCKS XV PREFACE
XIX 1. WHY THREADING BUILDING BLOCKS? 1 OVERVIEW 2 BENEFITS 2 2.
THINKING PARALLEL 7 ELEMENTS OF THINKING PARALLEL 8 DECOMPOSITION 9
SCALING AND SPEEDUP 13 WHAT IS A THREAD? 19 MUTUAL EXCLUSION AND LOCKS
22 CORRECTNESS 23 ABSTRACTION 25 PATTERNS 25 INTUITION 27 3. BASIC
ALGORITHMS 29 INITIALIZING AND TERMINATING THE LIBRARY 30 LOOP
PARALLELIZATION 32 RECURSIVE RANGE SPECIFICATIONS 52 SUMMARY OF LOOPS 64
IX 4. ADVANCED ALGORITHMS 65 PARALLEL ALGORITHMS FOR STREAMS 65 5.
CONTAINERS 80 CONCURRENT_QUEUE 81 CONCURRENT_VECTOR 86
CONCURRENT_HASH_MAP 91 6. SCALABLE MEMORY ALLOCATION 101 LIMITATIONS 101
PROBLEMS IN MEMORY ALLOCATION 101 MEMORY ALLOCATORS 103 REPLACING
MAILOC, NEW, AND DELETE 104 7. MUTUAL EXCLUSION 110 WHEN TO USE MUTUAL
EXCLUSION 111 MUTEXES 112 MUTEXES 118 ATOMIC OPERATIONS 122 8. TIMING
130 9. TASKSCHEDULER 133 WHEN TASK-BASED PROGRAMMING IS INAPPROPRIATE
133 MUCH BETTER THAN RAW NATIVE THREADS 134 INITIALIZING THE LIBRARY IS
YOUR JOB 137 EXAMPLE PROGRAM FOR FIBONACCI NUMBERS 137 TASK SCHEDULING
OVERVIEW 140 HOW TASK SCHEDULING WORKS 142 RECOMMENDED TASK RECURRENCE
PATTERNS 145 MAKING BEST USE OF THE SCHEDULER 147 TASK SCHEDULER
INTERFACES 153 TASK SCHEDULER SUMMARY 168 10. KEYSTOSUCCESS 169 KEY
STEPS TO SUCCESS 169 RELAXED SEQUENTIAL EXECUTION 170 SAFE CONCURRENCY
FOR METHODS AND LIBRARIES 171 X | TABLE OF CONTENTS DEBUG VERSUS RELEASE
172 FOR EFFICIENCY'S SAKE 172 ENABLING DEBUGGING FEATURES 172 MIXING
WITH OTHER THREADING PACKAGES 174 NAMING CONVENTIONS 176 11. EXAMPLES
177 THE AHA! FACTOR 177 A FEW OTHER KEY POINTS 179 PARALLEL_FOR EXAMPLES
180 THE GAME OF LIFE 190 PARALLEL_REDUCE EXAMPLES 199 COUNTSTRINGS:
USING CONCURRENT_HASH_MAP 209 QUICKSORT: VISUALIZING TASK STEALING 215 A
BETTER MATRIX MULTIPLY (STRASSEN) 223 ADVANCED TASK PROGRAMMING 230
PACKET PROCESSING PIPELINE 237 MEMORY ALLOCATION 257 GAME THREADING
EXAMPLE 262 PHYSICS INTERACTION AND UPDATE CODE 271 OPEN DYNAMICS ENGINE
275 12. HISTORY AND RELATED PROJECTS 283 LIBRARIES 283 LANGUAGES 285
PRAGMAS 286 GENERIC PROGRAMMING 286 CACHES 289 COSTS OF TIME SLICING 290
QUICK INTRODUCTION TO LAMBDA FUNCTIONS 291 FURTHER READING 292 INDEX 297
TABLE OF CONTENTS | XI |
any_adam_object | 1 |
any_adam_object_boolean | 1 |
author | Reinders, James |
author_GND | (DE-588)137778937 |
author_facet | Reinders, James |
author_role | aut |
author_sort | Reinders, James |
author_variant | j r jr |
building | Verbundindex |
bvnumber | BV022715655 |
callnumber-first | Q - Science |
callnumber-label | QA76 |
callnumber-raw | QA76.58 .R446 2007 |
callnumber-search | QA76.58 .R446 2007 |
callnumber-sort | QA 276.58 R446 42007 |
callnumber-subject | QA - Mathematics |
classification_rvk | ST 151 ST 230 ST 250 |
classification_tum | DAT 216f |
ctrlnum | (OCoLC)255731388 (DE-599)DNB984686584 |
dewey-full | 005.13/322 005.133 |
dewey-hundreds | 000 - Computer science, information, general works |
dewey-ones | 005 - Computer programming, programs, data, security |
dewey-raw | 005.13/3 22 005.133 |
dewey-search | 005.13/3 22 005.133 |
dewey-sort | 15.13 13 222 |
dewey-tens | 000 - Computer science, information, general works |
discipline | Informatik |
discipline_str_mv | Informatik |
edition | 1. ed. |
format | Book |
fullrecord | <?xml version="1.0" encoding="UTF-8"?><collection xmlns="http://www.loc.gov/MARC21/slim"><record><leader>02174nam a2200553 c 4500</leader><controlfield tag="001">BV022715655</controlfield><controlfield tag="003">DE-604</controlfield><controlfield tag="005">20091113 </controlfield><controlfield tag="007">t</controlfield><controlfield tag="008">070905s2007 ad|| |||| 00||| eng d</controlfield><datafield tag="010" ind1=" " ind2=" "><subfield code="a">2007299881</subfield></datafield><datafield tag="015" ind1=" " ind2=" "><subfield code="a">07,N29,0080</subfield><subfield code="2">dnb</subfield></datafield><datafield tag="016" ind1="7" ind2=" "><subfield code="a">984686584</subfield><subfield code="2">DE-101</subfield></datafield><datafield tag="020" ind1=" " ind2=" "><subfield code="a">9780596514808</subfield><subfield code="c">: EUR 34.00 (freier Pr.)</subfield><subfield code="9">978-0-596-51480-8</subfield></datafield><datafield tag="020" ind1=" " ind2=" "><subfield code="a">0596514808</subfield><subfield code="c">: EUR 34.00 (freier Pr.)</subfield><subfield code="9">0-596-51480-8</subfield></datafield><datafield tag="035" ind1=" " ind2=" "><subfield code="a">(OCoLC)255731388</subfield></datafield><datafield tag="035" ind1=" " ind2=" "><subfield code="a">(DE-599)DNB984686584</subfield></datafield><datafield tag="040" ind1=" " ind2=" "><subfield code="a">DE-604</subfield><subfield code="b">ger</subfield><subfield code="e">rakddb</subfield></datafield><datafield tag="041" ind1="0" ind2=" "><subfield code="a">eng</subfield></datafield><datafield tag="049" ind1=" " ind2=" "><subfield code="a">DE-703</subfield><subfield code="a">DE-Aug4</subfield><subfield code="a">DE-898</subfield><subfield code="a">DE-91G</subfield><subfield code="a">DE-29T</subfield><subfield code="a">DE-11</subfield><subfield code="a">DE-2070s</subfield></datafield><datafield tag="050" ind1=" " ind2="0"><subfield code="a">QA76.58 .R446 2007</subfield></datafield><datafield tag="082" ind1="0" ind2=" "><subfield code="a">005.13/3 22</subfield></datafield><datafield tag="082" ind1="0" ind2=" "><subfield code="a">005.133</subfield><subfield code="2">22</subfield></datafield><datafield tag="084" ind1=" " ind2=" "><subfield code="a">ST 151</subfield><subfield code="0">(DE-625)143595:</subfield><subfield code="2">rvk</subfield></datafield><datafield tag="084" ind1=" " ind2=" "><subfield code="a">ST 230</subfield><subfield code="0">(DE-625)143617:</subfield><subfield code="2">rvk</subfield></datafield><datafield tag="084" ind1=" " ind2=" "><subfield code="a">ST 250</subfield><subfield code="0">(DE-625)143626:</subfield><subfield code="2">rvk</subfield></datafield><datafield tag="084" ind1=" " ind2=" "><subfield code="a">DAT 216f</subfield><subfield code="2">stub</subfield></datafield><datafield tag="084" ind1=" " ind2=" "><subfield code="a">004</subfield><subfield code="2">sdnb</subfield></datafield><datafield tag="100" ind1="1" ind2=" "><subfield code="a">Reinders, James</subfield><subfield code="e">Verfasser</subfield><subfield code="0">(DE-588)137778937</subfield><subfield code="4">aut</subfield></datafield><datafield tag="245" ind1="1" ind2="0"><subfield code="a">Intel Threading Building Blocks</subfield><subfield code="b">outfitting C++ for multi-core processor parallelism</subfield><subfield code="c">James Reinders</subfield></datafield><datafield tag="250" ind1=" " ind2=" "><subfield code="a">1. ed.</subfield></datafield><datafield tag="264" ind1=" " ind2="1"><subfield code="a">Beijing [u.a.]</subfield><subfield code="b">O'Reilly</subfield><subfield code="c">2007</subfield></datafield><datafield tag="300" ind1=" " ind2=" "><subfield code="a">XXV, 303 S.</subfield><subfield code="b">Ill., graph. Darst.</subfield></datafield><datafield tag="336" ind1=" " ind2=" "><subfield code="b">txt</subfield><subfield code="2">rdacontent</subfield></datafield><datafield tag="337" ind1=" " ind2=" "><subfield code="b">n</subfield><subfield code="2">rdamedia</subfield></datafield><datafield tag="338" ind1=" " ind2=" "><subfield code="b">nc</subfield><subfield code="2">rdacarrier</subfield></datafield><datafield tag="650" ind1=" " ind2="4"><subfield code="a">Parallel processing (Electronic computers)</subfield></datafield><datafield tag="650" ind1=" " ind2="4"><subfield code="a">C++ (Computer program language)</subfield></datafield><datafield tag="650" ind1="0" ind2="7"><subfield code="a">Parallelrechner</subfield><subfield code="0">(DE-588)4173280-7</subfield><subfield code="2">gnd</subfield><subfield code="9">rswk-swf</subfield></datafield><datafield tag="650" ind1="0" ind2="7"><subfield code="a">C++</subfield><subfield code="0">(DE-588)4193909-8</subfield><subfield code="2">gnd</subfield><subfield code="9">rswk-swf</subfield></datafield><datafield tag="650" ind1="0" ind2="7"><subfield code="a">Parallelverarbeitung</subfield><subfield code="0">(DE-588)4075860-6</subfield><subfield code="2">gnd</subfield><subfield code="9">rswk-swf</subfield></datafield><datafield tag="689" ind1="0" ind2="0"><subfield code="a">Parallelrechner</subfield><subfield code="0">(DE-588)4173280-7</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="0" ind2=" "><subfield code="5">DE-604</subfield></datafield><datafield tag="689" ind1="1" ind2="0"><subfield code="a">C++</subfield><subfield code="0">(DE-588)4193909-8</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="1" ind2="1"><subfield code="a">Parallelverarbeitung</subfield><subfield code="0">(DE-588)4075860-6</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="1" ind2=" "><subfield code="5">DE-604</subfield></datafield><datafield tag="856" ind1="4" ind2="2"><subfield code="q">text/html</subfield><subfield code="u">http://www.loc.gov/catdir/toc/fy0802/2007299881.html</subfield><subfield code="3">Table of contents</subfield></datafield><datafield tag="856" ind1="4" ind2="2"><subfield code="m">GBV Datenaustausch</subfield><subfield code="q">application/pdf</subfield><subfield code="u">http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=015921443&sequence=000001&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA</subfield><subfield code="3">Inhaltsverzeichnis</subfield></datafield><datafield tag="999" ind1=" " ind2=" "><subfield code="a">oai:aleph.bib-bvb.de:BVB01-015921443</subfield></datafield></record></collection> |
id | DE-604.BV022715655 |
illustrated | Illustrated |
index_date | 2024-07-02T18:28:21Z |
indexdate | 2024-07-09T21:04:21Z |
institution | BVB |
isbn | 9780596514808 0596514808 |
language | English |
lccn | 2007299881 |
oai_aleph_id | oai:aleph.bib-bvb.de:BVB01-015921443 |
oclc_num | 255731388 |
open_access_boolean | |
owner | DE-703 DE-Aug4 DE-898 DE-BY-UBR DE-91G DE-BY-TUM DE-29T DE-11 DE-2070s |
owner_facet | DE-703 DE-Aug4 DE-898 DE-BY-UBR DE-91G DE-BY-TUM DE-29T DE-11 DE-2070s |
physical | XXV, 303 S. Ill., graph. Darst. |
publishDate | 2007 |
publishDateSearch | 2007 |
publishDateSort | 2007 |
publisher | O'Reilly |
record_format | marc |
spelling | Reinders, James Verfasser (DE-588)137778937 aut Intel Threading Building Blocks outfitting C++ for multi-core processor parallelism James Reinders 1. ed. Beijing [u.a.] O'Reilly 2007 XXV, 303 S. Ill., graph. Darst. txt rdacontent n rdamedia nc rdacarrier Parallel processing (Electronic computers) C++ (Computer program language) Parallelrechner (DE-588)4173280-7 gnd rswk-swf C++ (DE-588)4193909-8 gnd rswk-swf Parallelverarbeitung (DE-588)4075860-6 gnd rswk-swf Parallelrechner (DE-588)4173280-7 s DE-604 C++ (DE-588)4193909-8 s Parallelverarbeitung (DE-588)4075860-6 s text/html http://www.loc.gov/catdir/toc/fy0802/2007299881.html Table of contents GBV Datenaustausch application/pdf http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=015921443&sequence=000001&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA Inhaltsverzeichnis |
spellingShingle | Reinders, James Intel Threading Building Blocks outfitting C++ for multi-core processor parallelism Parallel processing (Electronic computers) C++ (Computer program language) Parallelrechner (DE-588)4173280-7 gnd C++ (DE-588)4193909-8 gnd Parallelverarbeitung (DE-588)4075860-6 gnd |
subject_GND | (DE-588)4173280-7 (DE-588)4193909-8 (DE-588)4075860-6 |
title | Intel Threading Building Blocks outfitting C++ for multi-core processor parallelism |
title_auth | Intel Threading Building Blocks outfitting C++ for multi-core processor parallelism |
title_exact_search | Intel Threading Building Blocks outfitting C++ for multi-core processor parallelism |
title_exact_search_txtP | Intel Threading Building Blocks outfitting C++ for multi-core processor parallelism |
title_full | Intel Threading Building Blocks outfitting C++ for multi-core processor parallelism James Reinders |
title_fullStr | Intel Threading Building Blocks outfitting C++ for multi-core processor parallelism James Reinders |
title_full_unstemmed | Intel Threading Building Blocks outfitting C++ for multi-core processor parallelism James Reinders |
title_short | Intel Threading Building Blocks |
title_sort | intel threading building blocks outfitting c for multi core processor parallelism |
title_sub | outfitting C++ for multi-core processor parallelism |
topic | Parallel processing (Electronic computers) C++ (Computer program language) Parallelrechner (DE-588)4173280-7 gnd C++ (DE-588)4193909-8 gnd Parallelverarbeitung (DE-588)4075860-6 gnd |
topic_facet | Parallel processing (Electronic computers) C++ (Computer program language) Parallelrechner C++ Parallelverarbeitung |
url | http://www.loc.gov/catdir/toc/fy0802/2007299881.html http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=015921443&sequence=000001&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA |
work_keys_str_mv | AT reindersjames intelthreadingbuildingblocksoutfittingcformulticoreprocessorparallelism |