Showing results for April 2010 - .NET Parallel Programming

Apr 28, 2010
0
0

ParallelExtensionsExtras Tour – #14 – SingleItemPartitioner

Stephen Toub - MSFT
Stephen Toub - MSFT

(The full set of ParallelExtensionsExtras Tour posts is available here.) In a previous ParallelExtensionsExtras Tour blog post, we talked about implementing a custom partitioner for BlockingCollection<T>.  Custom partitioning is an advanced but important feature supported by both Parallel.ForEach and PLINQ, as it allows the develope...

Parallel ExtensionsTask Parallel Library.NET 4
Apr 27, 2010
0
0

ParallelExtensionsExtras Tour – #13 – AsyncCall

Stephen Toub - MSFT
Stephen Toub - MSFT

(The full set of ParallelExtensionsExtras Tour posts is available here.)Producer/consumer scenarios could logically be split into two categories: those where the consumers are synchronous, blocking waiting for producers to generate data, and those where the consumers are asynchronous, such that they're alerted to data being available and only then ...

Parallel ExtensionsTask Parallel Library.NET 4
Apr 26, 2010
0
0

Performance of Concurrent Collections in .NET 4

Igor Ostrovsky - MSFT
Igor Ostrovsky - MSFT

.NET 4 introduces new data structures designed to simplify thread-safe access to shared data, and to increase the performance and scalability of multi-threaded applications. To best take advantage of these data structures, it helps to understand their performance characteristics in different scenarios.Chunyan Song, Emad Omara and Mike Liddell measu...

Parallel Extensions.NET 4Coordination Data Structures
Apr 23, 2010
0
0

ParallelExtensionsExtras Tour – #12 – AsyncCache

Stephen Toub - MSFT
Stephen Toub - MSFT

(The full set of ParallelExtensionsExtras Tour posts is available here.)Caches are ubiquitous in computing, serving as a staple of both hardware architecture and software development.  In software, caches are often implemented as dictionaries, where some data is retrieved or computed based on a key, and then that key and its resulting data/val...

Parallel ExtensionsTask Parallel Library.NET 4
Apr 21, 2010
0
0

When To Use Parallel.ForEach and When to Use PLINQ

Igor Ostrovsky - MSFT
Igor Ostrovsky - MSFT

If you've played around with PLINQ and Parallel.ForEach loops in .NET 4, you may have noticed that many PLINQ queries can be rewritten as parallel loops, and also many parallel loops can be rewritten as PLINQ queries. However, both parallel loops and PLINQ have distinct advantages in different situations. When writing ...

Parallel ExtensionsTask Parallel Library.NET 4
Apr 19, 2010
0
0

A Tour of Various TPL Options

Igor Ostrovsky - MSFT
Igor Ostrovsky - MSFT

The Task Parallel Library (TPL) exposes various options that give you more control over how tasks get scheduled and executed: Joseph E. Hoag's article A Tour of Various TPL Options explains these options in detail, accompanied by examples of correct and incorrect uses.(This paper and many more are available through the Parallel Computing D...

Parallel ExtensionsTask Parallel Library.NET 4
Apr 15, 2010
0
0

Parallel Computing Sessions at the Visual Studio 2010 Launch

Stephen Toub - MSFT
Stephen Toub - MSFT

Thanks to everyone who attended our three breakout sessions at the Visual Studio 2010 Launch and DevConnections conference this week in Las Vegas.  Attached to this blog post are the slide decks that were presented at the talks.  The code from the talks is available either as part of our Parallel Programming in .NET 4 samples at htt...

Parallel Extensions.NET 4Visual Studio 2010
Apr 15, 2010
0
0

ParallelExtensionsExtras Tour – #11 – ParallelDynamicInvoke

Stephen Toub - MSFT
Stephen Toub - MSFT

(The full set of ParallelExtensionsExtras Tour posts is available here.)  Delegates in .NET may have one or more methods in their invocation list.  When you invoke a delegate, such as through the Delegate.DynamicInvoke method, the net result is that all of the methods in the invocation list get invoked, one after the other.  Of...

Parallel Extensions.NET 4Code Samples
Apr 14, 2010
0
0

ParallelExtensionsExtras Tour – #10 – Pipeline

Stephen Toub - MSFT
Stephen Toub - MSFT

(The full set of ParallelExtensionsExtras Tour posts is available here.)  Producer/consumer is a fundamental pattern employed in many parallel applications.  With producer/consumer, one or more producer threads generate data that is consumed by one or more consumer threads.  These consumers can themselves also be producers of f...

Parallel Extensions.NET 4Code Samples
Apr 13, 2010
0
0

ThreadPool performance you can see

Stephen Toub - MSFT
Stephen Toub - MSFT

We've spent a lot of time touting improvements to the .NET Framework in .NET 4 around threading, including core enhancements to the performance of the runtime itself.  Sometimes data is more powerful than words, however, and it's useful to be able to see exactly what kind of difference such improvements can make.  To assist with that, her...

.NET 4ThreadPool