English | 中文 | Русский | Français
2,598 Posts served
8,347 Conversations started
The first session during Day Four at Microsoft Tech-Ed Europe 2009 was held by Ralf Westphal, a German software developer, speaker, expert, whatever. He is a real good guy who knows a lot about (parallel) programming topics. So it was no surprise that he talked about asynchronous parallel programming in a very lively and comprehensive manner. His main foucs was the Concurrency Coordination Runtime (CCR) which Microsoft implements since the launch of .NET framework 3.5. For all of you guys who are not so familiar with the CCR, Microsoft offers some good information on MSDN Online.
The first interesting statement Ralf made was related to the fact that software developers have to take care of multi-threading their apps themselves instead of letting the operating system do this job alone. Furthermore he talked about the well-known statement of Herb Sutter who said in 2005: "The free lunch is over". What this means can be summarized quite shortly:
As the processor frequencies won't increase any more but the numbers of available core per system will, software developers have to think about parallel programming in order to accelerate their apps in the future.
Believing in Ralf (and I do so) parallel programming stands for the following things:
Reduced latency, higher performance, hiding latency, higher responsivness and increased throughput.
Right after this list Ralf asked two rhetorical questions which you can answer quite easily within a few seconds:
Does firing up as many threads as cores are available help to accelerate apps? No, because this will cause threads waiting!
Does firing up as many threads as needed helps to accelerate apps? No, because it doesn’t scale!
Then he talked very detailed about the Concurrency Coordination Runtime and how you can compare it to task management via e-mail where you send somebody a task which he or she performs instantly or even later. That's what Ralf calls asynchronous multi-threading. Following statements fit perfectly to this:
Concurrency Coordination Runtime (CCR) helps to let data flow around and make thus asynchronous apps possibleParallel Computing is all about cooperative multitasking where you have to think about small processes and steps
Afterwards Ralf showed us a very comprehensive demonstration of the CCR in conjuction with several coding examples. Unfortunately this demo was far too long to show completely and that would not have been very helpful. But what I've heard, Microsoft will put all the sessions online. As soon as this happens I will link the related webcast to this blog post.
After his presentation we asked Ralf three questions which had to do with his tech sessions at Microsoft Tech-Ed and with the CCR and how it can help .NET developers to multi-thread their apps. Question number three was related to a real exciting news he talked about for the very first time in public. So please enjoy the show!
