Professional Parallel Programming with C# Master Parallel Extensions With . NET 4
Gespeichert in:
| 1. Verfasser: | |
|---|---|
| Format: | E-Book |
| Sprache: | Englisch |
| Veröffentlicht: |
Newark
John Wiley & Sons, Incorporated
2010
|
| Ausgabe: | 1 |
| Schlagworte: | |
| ISBN: | 1118546032, 9781118546031 |
| Online-Zugang: | Volltext |
| Tags: |
Tag hinzufügen
Keine Tags, Fügen Sie den ersten Tag hinzu!
|
Inhaltsangabe:
- Creating Custom PLINQ Aggregate Functions -- Concurrent PLINQ Tasks -- Cancelling PLINQ -- Specifying the Desired Degree of Parallelism -- Working with ForAll -- Configuring How Results Are Returned by Using WithMergeOptions -- Handling Exceptions Thrown by PLINQ -- Using PLINQ to Execute MapReduce Algorithms -- Designing Serial Stages Using PLINQ -- Summary -- Chapter 7: Visual Studio 2010 Task Debugging Capabilities -- Taking Advantage of Multi-Monitor Support -- Understanding the Parallel Tasks Debugger Window -- Viewing the Parallel Stacks Diagram -- Following the Concurrent Code -- Detecting Deadlocks -- Summary -- Chapter 8: Thread Pools -- Going Downstairs from the Tasks Floor -- Understanding the New CLR 4 Thread Pool Engine -- Summary -- Chapter 9: Asynchronous Programming Model -- Mixing Asynchronous Programming with Tasks -- Summary -- Chapter 10: Parallel Testing and Tuning -- Preparing Parallel Tests -- Solutions to Common Patterns -- Understanding False Sharing -- Summary -- Chapter 11: Vectorization, SIMD Instructions, and Additional Parallel Libraries -- Understanding SIMD and Vectorization -- From MMX to SSE4.x and AVX -- Using the Intel Math Kernel Library -- Using Intel Integrated Performance Primitives -- Summary -- Appendix A: .NET 4 Parallelism Class Diagrams -- Task Parallel Library -- Data Structures for Coordination in Parallel Programming -- PLINQ -- Threading -- Appendix B: Concurrent UML Models -- Structure Diagrams -- Behavior Diagrams -- Interaction Diagrams -- Appendix C: Parallel Extensions Extras -- Inspecting Parallel Extensions Extras -- Coordination Data Structures -- Extensions -- Parallel Algorithms -- Partitioners -- Task Schedulers -- Index
- Intro -- Title Page -- Copyright -- Dedication -- Credits -- About the Author -- About the Technical Editor -- Acknowledgments -- Foreword -- Introduction -- Who This Book Is For -- What This Book Covers -- How This Book Is Structured -- What You Need to Use This Book -- Conventions -- Source Code -- Errata -- P2P.WROX.COM -- Chapter 1: Task-Based Programming -- Working with Shared-Memory Multicore -- Understanding Hardware Threads and Software Threads -- Understanding Amdahl's Law -- Considering Gustafson's Law -- Working with Lightweight Concurrency -- Creating Successful Task-Based Designs -- Preparing for NUMA and Higher Scalability -- Deciding the Convenience of Going Parallel -- Summary -- Chapter 2: Imperative Data Parallelism -- Launching Parallel Tasks -- Transforming Sequential Code to Parallel Code -- Parallelizing Loops -- Specifying the Desired Degree of Parallelism -- Using Gantt Charts to Detect Critical Sections -- Summary -- Chapter 3: Imperative Task Parallelism -- Creating and Managing Tasks -- Summary -- Chapter 4: Concurrent Collections -- Understanding the Features Offered by Concurrent Collections -- Summary -- Chapter 5: Coordination Data Structures -- Using Cars and Lanes to Understand the Concurrency Nightmares -- Understanding New Synchronization Mechanisms -- Working with Synchronization Primitives -- Working with Mutual-Exclusion Locks -- Using Spin Locks as Mutual-Exclusion Lock Primitives -- Working with Lightweight Manual Reset Events -- Limiting Concurrency to Access a Resource -- Simplifying Dynamic Fork and Join Scenarios with CountdownEvent -- Working with Atomic Operations -- Summary -- Chapter 6: PLINQ: Declarative Data Parallelism -- Transforming LINQ into PLINQ -- Specifying the Execution Mode -- Understanding Partitioning in PLINQ -- Performing Reduction Operations with PLINQ

