MSDN Live Meeting - Visual Studio 2010 and .NET 4 Update
- Posted: Mar 23, 2010 at 12:29 PM
- 5,167 Views
- 3 Comments
Download
How do I download the videos?
- To download, right click the file type you would like and pick “Save target as…” or “Save link as…”
Why should I download videos from Channel9?
- It's an easy way to save the videos you like locally.
- You can save the videos in order to watch them offline.
- If all you want is to hear the audio, you can download the MP3!
Which version should I choose?
- If you want to view the video on your PC, Xbox or Media Center, download the High Quality WMV file (this is the highest quality version we have available).
- If you'd like a lower bitrate version, to reduce the download time or cost, then choose the Medium Quality WMV file.
- If you have a Zune, WP7, iPhone, iPad, or iPod device, choose the low or medium MP4 file.
- If you just want to hear the audio of the video, choose the MP3 file.
Right click “Save as…”
- WMV (WMV Video)
- MP3 (Audio only)
- MP4 (iPod, Zune HD)
- Mid Quality WMV (Lo-band, Mobile)
With Visual Studio 2010 and .NET 4.0, we are taking a huge step forward in giving individuals and development teams an advanced solution that enables them to build and deliver high-quality applications using some of the world’s most advanced technologies.
In this webcast, we'll explain how you can take advantage of some of the most exciting features like the modeling tools, test cycles, WF and WCF. We will cover as well the Parallel Extensions to the .NET Framework 4 and the Concurrency Runtime for Visual C++
2010 that enable developers to leverage parallel computing.
Speaker: Nick Van den Abbeele (U2U)
Comments Closed
Comments have been closed since this content was published more than 30 days ago, but if you'd like to continue the conversation,
please create a new thread in our Forums,
or
Contact Us and let us know.
Follow the Discussion
Great video! Though I had really hard time listening because of all the `yeah yeah yeah yeah` every few seconds throughout all the video :/
I agree with the previous poster that the "yeah yeah yeah" throughout the entire video was indeed very distracting. As a result you were difficult to follow at times and I had to rewind the video and replay it. In particular, as a presenter and mentor, you need to work even harder on your communication skills. Anything distracting, whether it is the occasional "uhm" or, in this case, the constantly repeated "yeah," hurts your ability to convey your teaching points to others.
Additionally, commitments were made in the demo to post the source code on the presenter's blog on March 24th. As of today, March 26th, this has still not been done. If you commit to doing something before a very wide audience (i.e., Channel 9), make sure you follow through!
Now, let's move on to topics more relevant to this technical presentation.
The following is not only directed to you, but to all future presenters of anything involving comparisons of performance. The (mis)behaviors described below seem to be rampant, not only in this video, but in many of the presentations on related topics at the last PDC, as well. Without further ado:
Let the above points be a lesson to this and all future presenters on this topic, whether on Channel 9, at a PDC, or any other venue.
Thanks for reading
For anyone interested in the scalability of the various approaches presented, here are the results of a proper 64-bit release mode run on a more modern box with 6GB of RAM and a single Intel Xeon W5590 CPU (3.33 GHz / 8MB L3 cache quad-core Nehalem-EP with hyperthreading turned on for a total of 8 logical CPUs). The build was done using VS2010 RC / .NET 4.0 RC and run on the host I just gave the specs for, under the Windows 2008 R2 Standard OS:
CalcPrimes
Count of prime numbers: 283146
Elapsed = 1713
ThreadingDemo.CalcPrimes
Count of prime numbers: 283146
Elapsed = 1080
ParallelFor.CalcPrimes
Count of prime numbers: 283146
Elapsed = 431
ParallelForEach.CalcPrimes
Count of prime numbers: 283146
Elapsed = 481
ParallelFor.CalcPrimes_TLV
Count of prime numbers: 283146
Elapsed = 430
ParallelForEach.CalcPrimes_TLV
Count of prime numbers: 283146
Elapsed = 447
LinqDemo.CalcPrimes
Count of prime numbers: 283146
Elapsed = 1740
PLinqDemo.CalcPrimes
Count of prime numbers: 283146
Elapsed = 461
Summary: It looks like, with a proper release 64-bit build, there are many options available here to gain the scalability, at least with this particular test and the specified number of CPUs.
Interestingly, if we make a slight improvement to the algorithm we can improve performance and most likely not even need to consider multithreaded approaches. Also, we can leverage the contents of the container we are forming without worrying about (and paying a concurrency penalty for) locking it, as follows:
Running with these small changes, we get:
CalcPrimes2 (Single-Threaded)
Count of prime numbers: 283146
Elapsed = 501
Notices how this result is comparable to our best multi-threaded results.
For the next test, let's increase the number of numbers being tested for primality to 8 million and see how the various approaches fair:
CalcPrimes
Count of prime numbers: 539777
Elapsed = 4585
CalcPrimes2 (Single-Threaded)
Count of prime numbers: 539777
Elapsed = 1224
ThreadingDemo.CalcPrimes
Count of prime numbers: 539777
Elapsed = 2870
ParallelFor.CalcPrimes
Count of prime numbers: 539777
Elapsed = 1146
ParallelForEach.CalcPrimes
Count of prime numbers: 539777
Elapsed = 1210
ParallelFor.CalcPrimes_TLV
Count of prime numbers: 539777
Elapsed = 1144
ParallelForEach.CalcPrimes_TLV
Count of prime numbers: 539777
Elapsed = 1178
LinqDemo.CalcPrimes
Count of prime numbers: 539777
Elapsed = 4623
PLinqDemo.CalcPrimes
Count of prime numbers: 539777
Elapsed = 1183
Now, the slightly improved single threaded function (CalcPrimes2) is almost in line with out best parallel attempt, using the previous algorithm, despite the fact that this is a decent multi-processor host (i.e., 4 physical, 8 logical CPU cores) which allows for a lot of potential parallelism to the various decent parallel approaches presented in this session. This example (i.e., extending the domain of numbers being tested to 8 million) and how it scales as the workload increases, underlines the point about taking a little time to improve the algorithm first, before jumping with both feet into a multi-threaded solution.
If you are still not convinced, let's look at what happens when the domain is doubled again to the first 16 million numbers:
CalcPrimes
Count of prime numbers: 1031130
Elapsed = 12248
CalcPrimes2 (Single-Threaded)
Count of prime numbers: 1031130
Elapsed = 3017
ThreadingDemo.CalcPrimes
Count of prime numbers: 1031130
Elapsed = 7682
ParallelFor.CalcPrimes
Count of prime numbers: 1031130
Elapsed = 3054
ParallelForEach.CalcPrimes
Count of prime numbers: 1031130
Elapsed = 3119
ParallelFor.CalcPrimes_TLV
Count of prime numbers: 1031130
Elapsed = 3052
ParallelForEach.CalcPrimes_TLV
Count of prime numbers: 1031130
Elapsed = 3103
LinqDemo.CalcPrimes
Count of prime numbers: 1031130
Elapsed = 12318
PLinqDemo.CalcPrimes
Count of prime numbers: 1031130
Elapsed = 3106
In this run, the (improved) single-threaded solution (marginally) beats our best parallel attempts with the weaker algorithm.
Thanks for listening
Remove this comment
Remove this thread
close