Skip to main content

Parallel Computing Technical Articles

These technical articles will help you be more successful when developing parallel applications.

Overview

Parallel Computing Technical Articles

Visual Studio 2010 Brings Parallelism Mainstream
Visual Studio 2010 contains innovations in the parallel computing space to enable developers to cope with parallel applications.
Taking Parallelism Mainstream: Parallel Technologies in Microsoft Visual Studio 2010
Microsoft Visual Studio 2010 leads the first wave of developer tools to simplify the mainstream transition to parallel software development. Learn about Microsoft’s approach to parallel computing and ... Mehr
Paradigm Shift: Design Considerations For Parallel Programming
David Callahan, Microsoft Distinguished Engineer, discusses considerations that must be taken into account when designing parallel applications.
Q&A with S. Somasegar, Senior Vice President, Developer Division
“Microsoft’s goal is to make the benefits of building software on manycore architectures simple and accessible to the broad developer community.” Here S. Somasegar talks about the progress of Microsof... Mehr
The Manycore Shift: Microsoft Parallel Computing Initiative Ushers Computing into the Next Era
The computational power of manycore processors promises to change the way people will interact with computers. This paper describes how Microsoft and industry partners are working together to enable b... Mehr

Parallelism Basics and Theory

Parallel Computing Technical Articles

Effective Concurrency: Know When to Use an Active Object Instead of a Mutex
Got state? Hide it! And if it's shared and either popular or slow, make it asynchronous...it's just good encapsulation.
Effective Concurrency: Prefer Using Active Objects Instead of Naked Threads
How to automate best practices for threads and raise the semantic level of our code
Effective Concurrency: Associate Mutexes with Data to Prevent Races
Come together: Associate mutexes with the data they protect, and you can make your code race-free by construction.
Effective Concurrency: Prefer Futures to Baked-In "Async APIs"
When designing concurrent APIs, separate "what" from "how"
Patterns for Parallel Programming: Understanding and Applying Parallel Patterns with the .NET Framework 4
Stephen Toub delivers an in-depth tour of common parallel patterns and how they can be implemented using the .NET Framework 4.
Effective Concurrency: Avoid Exposing Concurrency – Hide It Inside Synchronous Methods
You have a mass of existing code and want to add concurrency. Where do you start?
Effective Concurrency: Design for Manycore Systems
Why worry about "manycore" today?
Effective Concurrency: The Power of "In Progress"
Hold no hostages: Know when to design for "partially updated" as the normal state.
Effective Concurrency: Break Up and Interleave Work to Keep Threads Responsive
Breaking up is hard to do, but interleaving can be even subtler.
Introduction to Algorithms, Third Edition, Chapter 27: Multithreaded Algorithms
This is a sample chapter, focused on multithreaded algorithms, from the classic book "Introduction to Algorithms".
Effective Concurrency: Eliminate False Sharing
Stop your CPU power from invisibly going down the drain.
Effective Concurrency: Use Thread Pools Correctly: Keep Tasks Short and Nonblocking
How many threads must a thread pool pool? For a thread pool must pool threads.
Effective Concurrency: Sharing Is the Root of All Contention
Sharing requires waiting and overhead, and is a natural enemy of scalability.
Effective Concurrency: volatile vs volatile
A tale of two similar but different tools.
Effective Concurrency: Measuring Parallel Performance: Optimizing a Concurrent Queue
How much parallel performance does each successive optimization really buy us, and why?
Effective Concurrency: Writing a Generalized Concurrent Queue
A two-lock queue with pretty good concurrency.
Don’t Be Afraid To Throw Away Your Work
So how else can you make your client apps richer today? Aside from increasing UI responsiveness in general, my radical suggestion is to start throwing away work.
Concurrency Hazards: Solving 11 Likely Problems In Your Multithreaded Code
Here we describe some of the more common challenges to concurrent programming and present advice for coping with them in your software.

Managed

Parallel Computing Technical Articles

Async Performance: Understanding the Costs of Async and Await
It’s easy to get started writing asynchronous methods in C# and Visual Basic, but there can be hidden performance costs.
Asynchronous Programming: Pause and Play with Await
Mads Torgersen takes a closer look at what the new await keyword actually does.
Asynchronous Programming: Easier Asynchronous Programming with the New Visual Studio Async CTP
The next version of C# and Visual Basic will include a form of asynchronous control flow that avoids both the dangers of multithreading and the pain of writing callback methods.
The Past, Present and Future of Parallelizing .NET Applications
In the world of multi-core and manycore everywhere, parallelism is now something every developer must at least consider, and something that the millions of developers that use managed languages must b... Mehr
Task-based Asynchronous Pattern
This document provides an in-depth look at the new Task-based Asynchronous Pattern (TAP) for the .NET Framework.
Introduction to TPL Dataflow
This document provides an introduction to a new .NET library for building parallel and concurrent applications.
Asynchrony in .NET
Get an overview of the new asynchronous features being developed for C#, Visual Basic and the .NET Framework.
Throttling Concurrency in the CLR 4.0 ThreadPool
Erika Fuentes details the approach taken toward automating concurrency control in the ThreadPool in .NET 4.
Simplify Asynchronous Programming with Tasks
Igor Ostrovsky details various patterns in the .NET Framework for handling asynchronous operations, including how Task forms a standard representation for any asynchronous operation.
Cutting Edge: Don't Worry, Be Lazy
Dino Esposito explores laziness in .NET 4 and its relevance to parallel programming.
Custom Parallel Partitioning With .NET 4
Partitioning is fundamental to parallel computing.
Parallel Computing with the .NET Framework 4
In coordination with the launch of the Visual Studio 2010 and the .NET Framework 4, Stephen Toub provides an overview of what's new for developers with regards to parallel programming with managed cod... Mehr
Parallel Programming in .NET 4: Coding Guidelines
Patterns, techniques and tips on writing reliable, maintainable, and performing multi-core programs and reusable libraries with .NET Framework 4.
Performance Characteristics of New Synchronization Primitives in the .NET Framework 4
The .NET Framework 4 introduces a set of new synchronization primitives. This document provides discussion and analysis of the performance of these new types.
PLINQ and Office Add-ins
Building Office add-ins that take advantage of parallelism is in many cases straightforward. This document demonstrates this through two Office add-in implementations.
Integrating Parallelism with Windows Workflow Foundation in the .NET Framework 4
Despite the similarity in naming, the System.Threading.Tasks.Parallel class and the System.Activities.Statements.Parallel* activities in WF4 are largely orthogonal in the scenarios they address. Howev... Mehr
Using Cancellation Support in .NET Framework 4
This document explores the new cancellation types in the .NET Framework 4, highlighting common usage and patterns
PLINQ’s Ordering Model
Parallel LINQ (PLINQ) provides special behaviors around the ordering of elements in queries. This article discusses the ins-and-outs of PLINQ's ordering semantics.
Thread-safe Collections in .NET Framework 4 and Their Performance Characteristics
The .NET Framework 4 introduces the new System.Collections.Concurrent namespace, replete with new thread-safe collections for use in developing parallel applications. This article discusses performanc... Mehr
Optimizing Parallel Applications Using Concurrency Visualizer: A Case Study
This article captures the triumphs and tribulations of implementing a console-based spell checker application, and delineates how the new Concurrency Visualizer in Visual Studio 2010 was used to detec... Mehr

Debugging

Parallel Computing Technical Articles

Synchronization Coverage: Code Coverage for Concurrency
As more and more multi-threaded software applications get developed, software development professionals need to adopt new tools, techniques and metrics that can deal with multi-threaded software. Sync... Mehr
Debugging Task-Based Parallel Applications in Visual Studio 2010
In Visual C++ 10 and the Microsoft .NET Framework 4, both available with Visual Studio 2010, Microsoft is introducing new libraries and runtimes to significantly ease the process of expressing paralle... Mehr
Improved Support For Parallelism In The Next Version Of Visual Studio
An early look at new support in Visual Studio 2010, the .NET Framework 4, and Visual C++ 10 for writing parallel applications.
Tools And Techniques to Identify Concurrency Issues
This article looks at testing techniques for parallel programs and presents six helpful tools you can use to locate potentially serious defects.

Profiling

Parallel Computing Technical Articles

Thread Diagnostics: Performance Tuning with the Concurrency Visualizer in Visual Studio 2010
This article presents an overview of the features of the Concurrency Visualizer in Visual Studio 2010, along with some practical usage guidance.
Optimizing Parallel Applications Using Concurrency Visualizer: A Case Study
This article captures the triumphs and tribulations of implementing a console-based spell checker application, and delineates how the new Concurrency Visualizer in Visual Studio 2010 was used to detec... Mehr
Improved Support For Parallelism In The Next Version Of Visual Studio
An early look at new support in Visual Studio 2010, the .NET Framework 4, and Visual C++ 10 for writing parallel applications.

Research and Incubation

Parallel Computing Technical Articles

The Polyglot Programmer: ACID Transactions with STM.NET
In this month's column, Ted Neward focuses on software transactional memory, or STM. STM.NET is available for download via the DevLabs Web site.
The Polyglot Programmer: Concurrency with Channels, Domains and Messages
Axum is not a general-purpose language like C# or VB, but one aimed squarely at the problem of concurrency, designed from the outset to be part of a suite of languages that collectively cooperate to s... Mehr

Native

Parallel Computing Technical Articles

Asynchronous Programming in C++ Using PPL
New in Visual Studio 2012, the task class of the PPL allows you to succinctly represent an individual unit of work to be executed asynchronously. It allows you to express your program logic in terms o... Mehr
Microsoft's C++ AMP Unveiled
Using C++ Accelerated Massive Parallelism, Microsoft's new tools for GPU computation.
Actor-Based Programming with the Asynchronous Agents Library
In this article, Michael Chu and Krishnan Varadarajan provide an overview of the Asynchronous Agents library in Visual C++ 10 and demonstrate how you can take advantage of it in your applications.
Patterns and Practices for Parallel Programming in C++
This document provides a detailed exploration of common patterns of parallelism and how they can be expressed with the Parallel Pattern Library, the Asynchronous Agents Library, and the Concurrency Ru... Mehr
Concurrent Affairs: Four Ways to Use the Concurrency Runtime in Your C++ Projects
This column walks through four common scenarios developers face in multithreaded application development and describes how you use the Parallel Pattern Library (PPL) and Asynchronous Agents Library in... Mehr
Concurrent Affairs: Solving The Dining Philosophers Problem With Asynchronous Agents
This column walks through an implementation of a classic concurrency problem (Djikstra's Dining Philosophers) using the Asynchronous Agents Library available in Visual C++ 2010.
Improved Support For Parallelism In The Next Version Of Visual Studio
An early look at new support in Visual Studio 2010, the .NET Framework 4, and Visual C++ 10 for writing parallel applications.
Anzeige


Anzeige
Microsoft führt eine Onlineumfrage durch, um Ihre Meinung zur -Website zu erfahren. Wenn Sie sich zur Teilnahme entscheiden, wird Ihnen die Onlineumfrage angezeigt, sobald Sie die -Website verlassen.

Möchten Sie teilnehmen?