دسترسی نامحدود
برای کاربرانی که ثبت نام کرده اند
برای ارتباط با ما می توانید از طریق شماره موبایل زیر از طریق تماس و پیامک با ما در ارتباط باشید
در صورت عدم پاسخ گویی از طریق پیامک با پشتیبان در ارتباط باشید
برای کاربرانی که ثبت نام کرده اند
درصورت عدم همخوانی توضیحات با کتاب
از ساعت 7 صبح تا 10 شب
دسته بندی: برنامه نویسی: زبان های برنامه نویسی ویرایش: 1st Ed. نویسندگان: James Reinders سری: ISBN (شابک) : 9780596514808, 0596514808 ناشر: سال نشر: 2007 تعداد صفحات: 334 زبان: English فرمت فایل : PDF (درصورت درخواست کاربر به PDF، EPUB یا AZW3 تبدیل می شود) حجم فایل: 3 مگابایت
در صورت تبدیل فایل کتاب Intel Threading Building Blocks: Outfitting C++ for Multi-core Processor Parallelism به فرمت های PDF، EPUB، AZW3، MOBI و یا DJVU می توانید به پشتیبان اطلاع دهید تا فایل مورد نظر را تبدیل نمایند.
توجه داشته باشید کتاب اینتل Threading Building Blocks: تجهیز C++ برای موازی سازی پردازنده چند هسته ای نسخه زبان اصلی می باشد و کتاب ترجمه شده به فارسی نمی باشد. وبسایت اینترنشنال لایبرری ارائه دهنده کتاب های زبان اصلی می باشد و هیچ گونه کتاب ترجمه شده یا نوشته شده به فارسی را ارائه نمی دهد.
تراشههای چند هستهای اینتل و AMD افزایش چشمگیری در سرعت و پاسخدهی و فرصتهای زیادی برای پردازش چندگانه در رایانههای رومیزی معمولی ارائه میدهند. اما آنها همچنین یک چالش را ارائه می دهند: بیش از هر زمان دیگری، multithreading یک نیاز برای عملکرد خوب است. این راهنما نحوه به حداکثر رساندن مزایای این پردازنده ها را از طریق یک کتابخانه سی پلاس پلاس قابل حمل که روی سیستم های ویندوز، لینوکس، مکینتاش و یونیکس کار می کند، توضیح می دهد. با آن، یاد خواهید گرفت که چگونه از بلوک های ساختمانی Intel Threading (TBB) به طور موثر برای برنامه نویسی موازی استفاده کنید - بدون اینکه لازم باشد یک متخصص رشته سازی باشید. این کتاب توسط جیمز ریندرز، مبشر اصلی محصولات نرم افزاری اینتل، و بر اساس تجربه توسعه دهندگان و مشتریان اینتل نوشته شده است، این کتاب وظایف کلیدی در multithreading و نحوه انجام آنها با TBB را به شیوه ای قابل حمل و قوی توضیح می دهد. با مثالهای فراوان و مواد مرجع کامل، این کتاب الگوهای رایج استفادهها را نشان میدهد، گوچاها را در TBB آشکار میکند، و دستورالعملهای مهمی برای انتخاب از میان گزینهها به منظور دستیابی به بهترین عملکرد ارائه میدهد. شما یاد خواهید گرفت که چگونه Intel Threading Building Blocks: به شما امکان می دهد وظایف را به جای رشته ها برای حمل بهتر، برنامه نویسی آسان تر، کد منبع قابل درک تر، و عملکرد بهتر و مقیاس پذیری به طور کلی مشخص کنید. راه حل های سطح با سایر بسته های رشته سازگار است و شما را مجبور نمی کند که یک بسته را برای کل برنامه خود انتخاب کنید. بر برنامه نویسی مقیاس پذیر و موازی داده تأکید دارد که به شما امکان می دهد عملکرد برنامه را با اضافه کردن پردازنده افزایش دهید. متکی به برنامه نویسی عمومی است که به شما امکان می دهد بهترین الگوریتم های ممکن را با کمترین محدودیت بنویسید هر برنامه نویس ++C که بخواهد برنامه ای بنویسد تا روی یک سیستم چند هسته ای اجرا شود، از این کتاب بهره مند خواهد شد. TBB همچنین برای یک برنامه نویس C یا یک برنامه نویس C++ بدون تجربه زیاد در مورد قالب ها بسیار قابل دسترسی است. بهتر از همه، برای استفاده از این کتاب نیازی به تجربه برنامه نویسی موازی یا پردازنده های چند هسته ای ندارید.
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.
Intel Threading Building Blocks......Page 1
Table of Contents......Page 10
Foreword......Page 14
Note from the Lead Developer of Intel Threading Building Blocks......Page 16
Assumptions This Book Makes......Page 20
Contents of This Book......Page 21
Informal Class Declarations......Page 22
Using Code Examples......Page 23
Acknowledgments......Page 24
Why Threading Building Blocks?......Page 28
Benefits......Page 29
Comparison with Raw Threads and MPI......Page 31
Comparison with OpenMP......Page 32
Recursive Splitting, Task Stealing, and Algorithms......Page 33
Thinking Parallel......Page 34
Elements of Thinking Parallel......Page 35
Data Parallelism......Page 36
Pipelining (Task and Data Parallelism Together)......Page 37
Mixed Solutions......Page 38
Achieving Parallelism......Page 39
Scaling and Speedup......Page 40
Amdahl’s Law......Page 41
Gustafson’s observations regarding Amdahl’s Law......Page 43
Serial versus parallel algorithms......Page 45
What Is a Thread?......Page 46
Programming Threads......Page 47
Safety in the Presence of Concurrency......Page 48
Mutual Exclusion and Locks......Page 49
Correctness......Page 50
Patterns......Page 52
Intuition......Page 54
Basic Algorithms......Page 56
Initializing and Terminating the Library......Page 57
Loop Parallelization......Page 59
parallel_for......Page 60
Grain size......Page 63
Automatic grain size......Page 65
parallel_for with partitioner......Page 66
parallel_reduce......Page 67
Advanced example......Page 70
Advanced Topic: Other Kinds of Iteration Spaces......Page 72
parallel_scan......Page 76
Parallel_scan with partitioner......Page 78
Model Types: Splittable Ranges......Page 79
Range Concept......Page 80
blocked_rangeTemplate Class......Page 81
blocked_range2d Template Class......Page 83
Partitioner Concept......Page 85
auto_partitioner Class......Page 86
parallel_forTemplate Function......Page 88
parallel_reduceTemplate Function......Page 89
pre_scan_tag and final_scan_tag Classes......Page 90
Summary of Loops......Page 91
Parallel Algorithms for Streams......Page 92
Cook Until Done: parallel_while......Page 93
parallel_while Template Class......Page 95
Working on the Assembly Line: Pipeline......Page 96
Throughput of pipeline......Page 101
Nonlinear pipelines......Page 102
pipeline Class......Page 103
filter Class......Page 104
parallel_sort......Page 105
parallel_sortTemplate Function......Page 106
Containers......Page 107
concurrent_queue......Page 108
Iterating over a concurrent_queue for Debugging......Page 109
concurrent_queue Template Class......Page 110
concurrent_vector......Page 113
concurrent_vector Template Class......Page 114
Concurrent Operations......Page 115
Capacity......Page 116
Iterators......Page 117
concurrent_hash_map......Page 118
More on HashCompare......Page 120
concurrent_hash_mapTemplate Class......Page 121
Whole-Table Operations......Page 122
const_accessor......Page 123
accessor class......Page 124
Concurrent Operations: find, insert, erase......Page 125
Capacity......Page 126
Iterators......Page 127
Problems in Memory Allocation......Page 128
Memory Allocators......Page 130
Replace malloc, free, realloc, and calloc......Page 131
Replace new and delete......Page 132
Allocator Concept......Page 133
cache_aligned_allocatorTemplate Class......Page 134
aligned_space Template Class......Page 136
Mutual Exclusion......Page 137
When to Use Mutual Exclusion......Page 138
Mutexes......Page 139
Mutex Flavors......Page 141
Upgrade/Downgrade......Page 143
Deadlock......Page 144
Mutexes......Page 145
mutex Class......Page 146
ReaderWriterMutex Concept......Page 147
Model Types......Page 148
Atomic Operations......Page 149
Why atomicHas No Constructors......Page 152
Memory Consistency and Fences......Page 153
atomicTemplate Class......Page 154
Timing......Page 157
tick_count Class......Page 158
tick_count::interval_t Class......Page 159
When Task-Based Programming Is Inappropriate......Page 160
Oversubscription......Page 161
Fair Scheduling......Page 162
Load Imbalance......Page 163
Example Program for Fibonacci Numbers......Page 164
Task Scheduling Overview......Page 167
How Task Scheduling Works......Page 169
Recycling the parent as the continuation......Page 172
Recycling the parent as a child......Page 173
Continuation Passing......Page 174
Scheduler bypass......Page 176
Recycling......Page 177
Empty tasks......Page 178
Lazy copying......Page 179
task_scheduler_init Class......Page 180
task Class......Page 182
Task allocation......Page 185
Explicit task destruction......Page 187
Recycling tasks......Page 188
Task depth......Page 189
Synchronization......Page 190
Task debugging......Page 192
empty_task Class......Page 193
task_list Class......Page 194
Task Scheduler Summary......Page 195
Key Steps to Success......Page 196
Relaxed Sequential Execution......Page 197
Safe Concurrency for Methods and Libraries......Page 198
The TBB_DO_ASSERT Macro......Page 199
The TBB_DO_THREADING_TOOLS Macro......Page 200
Mixing with Other Threading Packages......Page 201
The __TBB Prefix......Page 203
The Aha! Factor......Page 204
A Few Other Key Points......Page 206
ParallelAverage......Page 207
Seismic......Page 208
Matrix Multiply......Page 210
ParallelMerge......Page 211
SubstringFinder......Page 213
The Game of Life......Page 217
Automaton......Page 219
Automata: Implementation......Page 220
Extending the Application......Page 225
ParallelSum......Page 226
ParallelPrime......Page 227
CountStrings: Using concurrent_hash_map......Page 236
Switching from an STL map......Page 238
Quicksort: Visualizing Task Stealing......Page 242
A Better Matrix Multiply (Strassen)......Page 250
Start a Large Task in Parallel with the Main Program......Page 257
Two Mouths: Feeding Two from the Same Task in a Pipeline......Page 260
Packet Processing Pipeline......Page 264
Parallel Programming for an Internet Device......Page 265
Local Network Router Example......Page 267
Network address translation (NAT)......Page 268
Our example......Page 269
The Threading Building Blocks pipeline......Page 270
Synchronization with the pipeline item and concurrent hash maps......Page 273
Filter Classes......Page 274
Class output_packet : public tbb::filter......Page 278
Class translator : public tbb::filter......Page 279
Class gateway : public tbb::filter......Page 281
Class forwarding : public tbb::filter......Page 282
Replacing new and delete......Page 284
Replacing malloc, calloc, realloc, and free......Page 287
Game Threading Example......Page 289
Threading Architecture: Physics + Rendering......Page 290
Overview of Keys to Scalability......Page 291
A Frame Loop......Page 292
Domain Decomposition Data Structure Needs......Page 293
Think Tasks, Not Threads......Page 294
Load Balancing Versus Task Stealing......Page 295
Synchronization Between Physics Threads......Page 296
Integrating the Example into a Real Game......Page 297
Physics Interaction and Update Code......Page 298
Open Dynamics Engine......Page 302
Look for Hotspots......Page 303
Improving on the First Solution......Page 305
The Code......Page 307
Libraries......Page 310
Languages......Page 312
Generic Programming......Page 313
Pseudosignatures in Generic Programming......Page 314
Models in Generic Programming......Page 315
Caches......Page 316
Costs of Time Slicing......Page 317
Quick Introduction to Lambda Functions......Page 318
Further Reading......Page 319
Index......Page 324