Introducing Parallel Extensions to the .NET Framework

There is no escaping from concurrency challenges… or is there? (A slightly modified version of this article was published in the August 2008 edition of the MSDN Flash newsletter) Dual, quad, and eight-core processors are becoming the norm. Is your application capable of utilising all available processors? In order to achieve this level of utilisation…

2

Coordination Data Structures – WriteOnce<T>

This is an article in a series of blog entries describing a set of new Coordination Data Structures (CDS) introduced in the June 2008 CTP of the Parallel Extensions for .NET Framework. In C#, when a field declaration includes a readonly modifier, assignments to the fields introduced by the declaration can only occur as part…

1

Coordination Data Structures – SpinLock

This is an article in a series of blog entries describing a set of new Coordination Data Structures (CDS) introduced in the June 2008 CTP of the Parallel Extensions for .NET Framework. Waiting on locks usually result in a thread context switch and associated kernel transition which at times can be considered costly. On a…

5

Coordination Data Structures – LazyInit<T>

This is an article in a series of blog entries describing a set of new Coordination Data Structures (CDS) introduced in the June 2008 CTP of the Parallel Extensions for .NET Framework. LazyInit<T> provides support for several common patterns of lazy initialization. In here we will explore some of those patterns, but first a point…

2

How to cancel a task in Parallel FX?

Task Parallel Library (TPL) allows you to easily cancel tasks. Effectively you need to call the Cancel method on the task in question. Imagine the simple sample below: Task task1 = Task.Create(Foo, 10000); static void Foo(object o) {   for (int i = 0; i < (int)o; i++)   {     // some code here…

3

First look at Parallel FX and self-replicating tasks

The Parallel Computing Platform team at Microsoft has recently launched the Parallel Computing Development Centre along with our first CTP of Parallel FX. In here, I will explore some aspects of the framework. If you feel comfortable with the basics of concurrency then read on. There is obviously PLINQ and the methods defined in the…

2