Parallel computing in Visual Studio 2010/.net 4.0 slides

Just finished the presentation about Parallel computing in Visual Studio 2010/.net 4.0 at TŠC Nova Gorica (a part of Microsoft’s event for students). Audience was cool and almost everything went well, except for VS2010CTP crash at very beginning. Not a big problem, one has to expect such problems running CPT versions. Visual Studio restart fixed it.

All in all a good day for my presentation. Go get the slides here (slides are in Slovene language).

Change the HAL of Windows OS

I am doing a presentation on Visual Studio 2010/.net 4 parallel programming enhancements in the near future. [MS] released Visual Studio 2010 CTP and that’s fine. The problem was that the one and only release comes in the form of a VirtualPC image. This is not a problem by itself but it is a problem if one wants to show parallelism. You see, VirtualPC supports only single processor guests ([MS] isn’t exactly pushing for VirtualPC enhancements, is it – at the time [MS] bought VirtualPC it was on the same level as [VMWare] Workstation, now it is lightyears away). How can one show performance enhancements of parallelism with one CPU?

Part of the solution is [VMWare] Workstation 6.5 (and earlier, don’t know exactly which ones): it supports multiprocessor guests. Great. However once I’ve imported VirtualPC image into Workstation the OS was still showing only one processor even though device manager recognized two processors. Even updating the computer driver (node Computer\Advanced Configuration and Power Interface (ACPI) PC) didn’t help – there were no choices. Luckily I’ve googled over this blog post: Hyper-V How To: Change the HAL on your vm. Oh, the joy, the trick just worked.

The other problem with this presentation is that Visual Studio 2010 CTP expired by the end 2008. The solution is to change date backwards (silly, isn’t it) but Workstation/Windows keep synchronizing the time with current and thus yielding all sort of activation and expiration warnings. The solution is a twofold one:

- add these lines to Workstation’s configuration file so the Workstation won’t synchronize the guest on every occasion (thanks to Virtual Time Freeze):

tools.syncTime = "FALSE"
time.synchronize.continue = "FALSE"
time.synchronize.restore = "FALSE"
time.synchronize.resume.disk = "FALSE"
time.synchronize.shrink = "FALSE"

- remove or disable guest’s network capabilities so the OS won’t synchronize as well.

Ah, the joys of presentations based on CTPs.