Let the tool building commence (about PLINQ)!

Frank Arrigo (among others) is getting the word out there about the parallel programming extensions that are being developed for the .NET Framework. Pretty much all new desktop, server and laptop machines in the planet are now shipping with multiple-core CPU architectures. The benefit that these systems provide is that they can effectively multiply the computing power of a machine on each cycle through the CPU – assuming that there are no concurrency problems in the code that is being executed.

If we as developers want to take advantage of these features we are going to need to get a little bit more savvy about the opportunities and challenges that these new computing architectures offer us.

Part of challenges will be shouldered by new frameworks and runtime capabilities like the ParallelFX as well as general improvements in the underlying operating system. But there will still be a need to tune applications during the development cycle if the performance requirements of that application are critical.

One way that Microsoft could help us is building tools that allow us to visualise memory hotspots in our applications and then track them back to logical threads of execution. This might help our decision making process when writing code to decide which code should be executed sequentially, and which code is a good candidate for parallel execution.

A few weekends ago I wrote a CryptoSum solver, so I am thinking that my first ParallelFX task will be converting this over to take advantage of the enhancements. If I get time to do it I’ll post the results up here.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s