<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" media="screen" href="/styles/xslt/rss.xslt"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:media="http://search.yahoo.com/mrss/" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:c9="http://channel9.msdn.com">
<channel>
	<title>Comment Feed for Channel 9 - 10-4 Episode 6: Parallel Extensions</title>
	<atom:link rel="self" type="application/rss+xml" href="http://channel9.msdn.com/Shows/10-4/10-4-Episode-6-Parallel-Extensions/RSS"></atom:link>
	<image>
		<url>http://ecn.channel9.msdn.com/o9/previewImages/100/454583_100x75.jpg</url>
		<title>Channel 9 - 10-4 Episode 6: Parallel Extensions</title>
		<link></link>
	</image>
	<description>
In this episode of 10-4, we start taking a look at Parallel Extensions to the .NET Framework. We&#39;ll look at some of the surface-area of the Parallel Extensions API and provide you with enough information to start working with it yourself in the Visual Studio
 2010 CTP VPC. 

Remember that&amp;nbsp;we are running these bits within a virtual machine with a single virtual processor, so you won&#39;t be able to see the performance improvements from the library. However, you will be able to start get a feel for the API itself. In future episodes,
 we will dive into deeper details of the various parts of Parallel Extensions. 

Also, in next week&#39;s episode, Jonathan Carter will be back to talk about another new feature in ASP.NET 4.0, so make sure to stay tuned for that!

For more 10-4 episodes, be sure to visit:
http://channel9.msdn.com/shows/10-4 
Visual Studio Topic Area on Channel 9:
http://channel9.msdn.com/VisualStudio
 
Visual Studio 2010 CTP VPC:
http://tinyurl.com/GetCTP  
Visual Studio 2010 Training Kit
http://tinyurl.com/VS10Kit 
Concurrency MSDN Dev Center
http://msdn.microsoft.com/concurrency

10-4! Over and out! </description>
	<link></link>
	<language>en</language>
	<pubDate>Tue, 21 May 2013 03:06:21 GMT</pubDate>
	<lastBuildDate>Tue, 21 May 2013 03:06:21 GMT</lastBuildDate>
	<generator>Rev9</generator>
	<item>
		<title>Re: 10-4 Episode 6: Parallel Extensions</title>
		<description>
			<![CDATA[There is no video this time?<p>posted by ViktorM</p>]]>
		</description>
		<link>http://channel9.msdn.com/Shows/10-4/10-4-Episode-6-Parallel-Extensions#c633682943140000000</link>
		<pubDate>Fri, 23 Jan 2009 07:58:34 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Shows/10-4/10-4-Episode-6-Parallel-Extensions#c633682943140000000</guid>
		<dc:creator>ViktorM</dc:creator>
	</item>
	<item>
		<title>Re: 10-4 Episode 6: Parallel Extensions</title>
		<description>
			<![CDATA[Only&nbsp;voice?<p>posted by gzpbx</p>]]>
		</description>
		<link>http://channel9.msdn.com/Shows/10-4/10-4-Episode-6-Parallel-Extensions#c633682990300000000</link>
		<pubDate>Fri, 23 Jan 2009 09:17:10 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Shows/10-4/10-4-Episode-6-Parallel-Extensions#c633682990300000000</guid>
		<dc:creator>gzpbx</dc:creator>
	</item>
	<item>
		<title>Re: 10-4 Episode 6: Parallel Extensions</title>
		<description>
			<![CDATA[same problem here... just voice, no video <p>posted by Yankee</p>]]>
		</description>
		<link>http://channel9.msdn.com/Shows/10-4/10-4-Episode-6-Parallel-Extensions#c633682991220000000</link>
		<pubDate>Fri, 23 Jan 2009 09:18:42 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Shows/10-4/10-4-Episode-6-Parallel-Extensions#c633682991220000000</guid>
		<dc:creator>Yankee</dc:creator>
	</item>
	<item>
		<title>Re: 10-4 Episode 6: Parallel Extensions</title>
		<description>
			<![CDATA[as with a bunch of other videos, wmv-high link is dead :/ the silverlight player seems to point to the wma file..<br>
<br>
maybe gremlins has&nbsp;invaded the c9 servers :O that would also explain the scilence from the c9 team <img src='http://ecn.channel9.msdn.com/o9/content/images/emoticons/emotion-5.gif' alt='Wink' /><p>posted by aL_</p>]]>
		</description>
		<link>http://channel9.msdn.com/Shows/10-4/10-4-Episode-6-Parallel-Extensions#c633683000110000000</link>
		<pubDate>Fri, 23 Jan 2009 09:33:31 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Shows/10-4/10-4-Episode-6-Parallel-Extensions#c633683000110000000</guid>
		<dc:creator>aL_</dc:creator>
	</item>
	<item>
		<title>Re: 10-4 Episode 6: Parallel Extensions</title>
		<description>
			<![CDATA[I have got video but no voice!! <img src='http://ecn.channel9.msdn.com/o9/content/images/emoticons/emotion-1.gif' alt='Smiley' /> What is going on here <img src='http://ecn.channel9.msdn.com/o9/content/images/emoticons/emotion-1.gif' alt='Smiley' /> Just kidding. WMV (High) is working for me <img src='http://ecn.channel9.msdn.com/o9/content/images/emoticons/emotion-1.gif' alt='Smiley' /><p>posted by Vaso</p>]]>
		</description>
		<link>http://channel9.msdn.com/Shows/10-4/10-4-Episode-6-Parallel-Extensions#c633683049060000000</link>
		<pubDate>Fri, 23 Jan 2009 10:55:06 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Shows/10-4/10-4-Episode-6-Parallel-Extensions#c633683049060000000</guid>
		<dc:creator>Vaso</dc:creator>
	</item>
	<item>
		<title>Re: 10-4 Episode 6: Parallel Extensions</title>
		<description>
			<![CDATA[(same problem here with the missing video, but WMV worked fine.)<br>
<br>
Maybe I missed it in the video, but if I got this right, the Parallel.For is the younger (and stronger&nbsp;<img src='http://ecn.channel9.msdn.com/o9/content/images/emoticons/emotion-5.gif' alt='Wink' /> ) brother of C&#43;&#43; OpenMP (&quot;#pragma omp parallel for&quot;), right? Is there a difference between those two (besides the nice things like a ready-to-use ForEach)
 or is Parallel basically the .Net port of OpenMP? <p>posted by Raffo</p>]]>
		</description>
		<link>http://channel9.msdn.com/Shows/10-4/10-4-Episode-6-Parallel-Extensions#c633683071180000000</link>
		<pubDate>Fri, 23 Jan 2009 11:31:58 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Shows/10-4/10-4-Episode-6-Parallel-Extensions#c633683071180000000</guid>
		<dc:creator>Raffo</dc:creator>
	</item>
	<item>
		<title>Re: 10-4 Episode 6: Parallel Extensions</title>
		<description>
			<![CDATA[Again a very interesting video.<br>
<br>
Thanks!<br>
<p>posted by Rhapsody</p>]]>
		</description>
		<link>http://channel9.msdn.com/Shows/10-4/10-4-Episode-6-Parallel-Extensions#c633683129530000000</link>
		<pubDate>Fri, 23 Jan 2009 13:09:13 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Shows/10-4/10-4-Episode-6-Parallel-Extensions#c633683129530000000</guid>
		<dc:creator>Rhapsody</dc:creator>
	</item>
	<item>
		<title>Re: 10-4 Episode 6: Parallel Extensions</title>
		<description>
			<![CDATA[Are the any differences in the IL code between manually doing the threads and using something like Parallel.For?<br>
<p>posted by spivonious</p>]]>
		</description>
		<link>http://channel9.msdn.com/Shows/10-4/10-4-Episode-6-Parallel-Extensions#c633683243370000000</link>
		<pubDate>Fri, 23 Jan 2009 16:18:57 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Shows/10-4/10-4-Episode-6-Parallel-Extensions#c633683243370000000</guid>
		<dc:creator>spivonious</dc:creator>
	</item>
	<item>
		<title>Re: 10-4 Episode 6: Parallel Extensions</title>
		<description>
			<![CDATA[Sorry all, some of the media links appeared to be messed up. I have added links to the correct media files, so hopefully there shouldn't be a problem anymore.<p>posted by JasonOlson</p>]]>
		</description>
		<link>http://channel9.msdn.com/Shows/10-4/10-4-Episode-6-Parallel-Extensions#c633683264110000000</link>
		<pubDate>Fri, 23 Jan 2009 16:53:31 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Shows/10-4/10-4-Episode-6-Parallel-Extensions#c633683264110000000</guid>
		<dc:creator>JasonOlson</dc:creator>
	</item>
	<item>
		<title>Re: 10-4 Episode 6: Parallel Extensions</title>
		<description>
			<![CDATA[To make a long story short, yes, there's a big difference. When using Parallel.For (and other Parallel Extension constructs), the work will be broken down into Tasks instead of Threads. By using Tasks, the work will use the new work-stealing scheduler
 under the hood to determine how to properly allocate the work to threads.&nbsp; <br>
<br>
So, in short, it's a lot smarter than using Threads directly (as well as more rich and powerful). I'll go into some more details in the future on the work-stealing scheduler and just how this break down into tasks occurs. In the meantime, you can check out
 the link to the Concurrency MSDN Dev Center to get more information. <br>
<br>
Hope this helps!<p>posted by JasonOlson</p>]]>
		</description>
		<link>http://channel9.msdn.com/Shows/10-4/10-4-Episode-6-Parallel-Extensions#c633683265940000000</link>
		<pubDate>Fri, 23 Jan 2009 16:56:34 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Shows/10-4/10-4-Episode-6-Parallel-Extensions#c633683265940000000</guid>
		<dc:creator>JasonOlson</dc:creator>
	</item>
	<item>
		<title>Re: 10-4 Episode 6: Parallel Extensions</title>
		<description>
			<![CDATA[We also dig into the TPL <a href="http://channel9.msdn.com/shows/Going&#43;Deep/Joe-Duffy-Huseyin-Yildiz-Daan-Leijen-Stephen-Toub-Parallel-Extensions-Inside-the-Task-Parallel/" target="_blank">
here</a>.<br>
C<p>posted by Charles</p>]]>
		</description>
		<link>http://channel9.msdn.com/Shows/10-4/10-4-Episode-6-Parallel-Extensions#c633683440160000000</link>
		<pubDate>Fri, 23 Jan 2009 21:46:56 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Shows/10-4/10-4-Episode-6-Parallel-Extensions#c633683440160000000</guid>
		<dc:creator>Charles</dc:creator>
	</item>
	<item>
		<title>Re: 10-4 Episode 6: Parallel Extensions</title>
		<description>
			<![CDATA[And I should clarify, it's not so much a difference in the MSIL. Parallel Extensions isn't a compiler feature, it's a library feature. So the MSIL compiled for the code above is still going to be using the Parallel static class, and then the library (implementation
 of Parallel static class in this case) will break down the work accordingly.<p>posted by JasonOlson</p>]]>
		</description>
		<link>http://channel9.msdn.com/Shows/10-4/10-4-Episode-6-Parallel-Extensions#c633683555180000000</link>
		<pubDate>Sat, 24 Jan 2009 00:58:38 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Shows/10-4/10-4-Episode-6-Parallel-Extensions#c633683555180000000</guid>
		<dc:creator>JasonOlson</dc:creator>
	</item>
	<item>
		<title>Re: 10-4 Episode 6: Parallel Extensions</title>
		<description>
			<![CDATA[When I simply use the Parallel For loop how does the Parallel library know how many threads it should create at a time.<br>
<br>
If you only have code that uses the CPU oder memory it is the number of cores, but what does it when there are more IO operations.<br>
<br>
1.) If you have got an application that does CPU calculation 50% of the time and 50% are IO operations like waiting for a another computer in a client/server situation. Then you could use 2 time the amount of cores. If you only have 10% CPU calculations and
 90% IO (like a web server or another server application that is most time waiting for the user clients or user inputs). It would not be a good idea to only use 8 threads on a quad with two Quad Core Xeons. You could only have 8 users working on the server
 at a time. There you should use at least 100 threads.<br>
<br>
2.) You could also have a program that calls another program (for example with the shell command and set wait to true). Then you cant know if it is a program that only waits for the user on another client to press the submit button or its an CPU intensive application
 like my multi core optimized audio encoder that is calling lame on several threads with different files. Then 100 threads would kill the computer if you do not have enough RAM. For the .NET Framework it is an IO operation but in reality it is a CPU only task.<br>
<br>
3.) What does the class if you already have multiple threads and each thread does a parallel for loop (take another server where you created the connections with tcplistener.accepttcpclient and started each tcpclient in his own thread. If you have 16 cores
 and 32 client connections you would make too much connections again. Then you should only use 1 thread per client and if only 1 client is connected then you should use 16 threads.<br>
<br>
4.) If I am using an application where the load is on an external network share. How does the .NET Framework know how man parallel operations can be done at once.<br>
<br>
I think the parallel for is a good idea but it will never replace manual creation of threads.<br>
Also debugging is more complicated. If I create the thread on my own I can give it a name and find it again very easy. When using network streams I set the threadname to ip and port number (127.0.0.1:4711).<br>
<p>posted by andrgin</p>]]>
		</description>
		<link>http://channel9.msdn.com/Shows/10-4/10-4-Episode-6-Parallel-Extensions#c633684874610000000</link>
		<pubDate>Sun, 25 Jan 2009 13:37:41 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Shows/10-4/10-4-Episode-6-Parallel-Extensions#c633684874610000000</guid>
		<dc:creator>andrgin</dc:creator>
	</item>
	<item>
		<title>Re: 10-4 Episode 6: Parallel Extensions</title>
		<description>
			<![CDATA[I agree andrgin. There will never be a proper replacement for an experienced developer who knows the needs and usage pattern of his application when it comes to concurrency (at least in our current set of tools and languages). However, that doesn't mean
 that you give up control of threads completely. There are still ways with Parallel Extensions to tell it the proper parameters for your application when it comes to concurrency. it is simply the default that allocates 1 thread/processor.
<br>
<br>
As far as debugging, the goal is to eliminate the need to debug at the thread level eventually (it obviously won't go away). We recently did a video with Daniel Moth where he shows some of the new debugging tools being integrated in Visual Studio 2010 for making
 debugging of parallel/concurrent applications easier. You can find it here: <a href="http://channel9.msdn.com/posts/VisualStudio/Debugging-Parallel-Applications-with-Visual-Studio-2010/">
http://channel9.msdn.com/posts/VisualStudio/Debugging-Parallel-Applications-with-Visual-Studio-2010/</a>.
<br>
<br>
As we have to write more and more concurrent applications, the debugging tools in Visual Studio need to be enhanced for this &quot;new world&quot;, hence the efforts in the debugging tools space.<br>
<br>
So, in short, yes, there is no current replacement for an experienced developer that intimately knows his application's needs for concurrency (usage patterns on the hardware, for instance). But if we can give that developer even more powerful abstractions to
 deal with and still meet his needs, it becomes very powerful indeed.<br>
<br>
Thanks for watching!<p>posted by JasonOlson</p>]]>
		</description>
		<link>http://channel9.msdn.com/Shows/10-4/10-4-Episode-6-Parallel-Extensions#c633685143580000000</link>
		<pubDate>Sun, 25 Jan 2009 21:05:58 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Shows/10-4/10-4-Episode-6-Parallel-Extensions#c633685143580000000</guid>
		<dc:creator>JasonOlson</dc:creator>
	</item>
	<item>
		<title>Re: 10-4 Episode 6: Parallel Extensions</title>
		<description>
			<![CDATA[Any chance of getting this in IPOD (MP4) format? Thanks.<br>
<p>posted by esse</p>]]>
		</description>
		<link>http://channel9.msdn.com/Shows/10-4/10-4-Episode-6-Parallel-Extensions#c633686530240000000</link>
		<pubDate>Tue, 27 Jan 2009 11:37:04 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Shows/10-4/10-4-Episode-6-Parallel-Extensions#c633686530240000000</guid>
		<dc:creator>esse</dc:creator>
	</item>
	<item>
		<title>Re: 10-4 Episode 6: Parallel Extensions</title>
		<description>
			<![CDATA[Why dont give you the user more control over the amount of threads. In a for or for each loop you can make an optional parameter with the maximum threadcount. When working with Tasks you could make a property &quot;expected load&quot; where the user can define,
 how much load can be done at the same time. This gives the user full control but is much easier than making a synchronized Queue with work and start x threads like I did. Synchronized queue has no generic support and I have to build an extra class with all
 the information the thread needs.<br>
For simple Tasks where each one is doing different work (the same work with only different data is better done with a for each loop I think) the count cant be so big. If there are 20 threads running on a dual core machine this does not kill performance, only
 if 2K threads are running.<br>
<p>posted by andrgin2</p>]]>
		</description>
		<link>http://channel9.msdn.com/Shows/10-4/10-4-Episode-6-Parallel-Extensions#c633686863530000000</link>
		<pubDate>Tue, 27 Jan 2009 20:52:33 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Shows/10-4/10-4-Episode-6-Parallel-Extensions#c633686863530000000</guid>
		<dc:creator>andrgin2</dc:creator>
	</item>
	<item>
		<title>Re: 10-4 Episode 6: Parallel Extensions</title>
		<description>
			<![CDATA[andrgin2, this is already possible with the Parallel Extensions. I simply showed &quot;default&quot; behavior in this video.<br>
<br>
Most of the parallel operations you can perform with Parallel Extensions provide the ability to specify the &quot;DegreeOfParallelism&quot; which will handle this behavior. So if I was on a 8-core machine, but wanted to leave 2-cores for other work, I could specify a
 DegreeOfParallelism of 6. This is an easy way for the dev to &quot;throttle&quot; the application when he needs to.<br>
<br>
If you need even more fine-grained control, there is&nbsp;a way to create your own TaskManager, not sure you want to go that way though.<p>posted by JasonOlson</p>]]>
		</description>
		<link>http://channel9.msdn.com/Shows/10-4/10-4-Episode-6-Parallel-Extensions#c633687691510000000</link>
		<pubDate>Wed, 28 Jan 2009 19:52:31 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Shows/10-4/10-4-Episode-6-Parallel-Extensions#c633687691510000000</guid>
		<dc:creator>JasonOlson</dc:creator>
	</item>
	<item>
		<title>Re: 10-4 Episode 6: Parallel Extensions</title>
		<description>
			<![CDATA[Hey Jason my Hero,<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Since I'm an extermist VB guy, I converted your stunning demo in C# into VB code. How can I post it for VB fans here?<br>
<p>posted by VBCoder</p>]]>
		</description>
		<link>http://channel9.msdn.com/Shows/10-4/10-4-Episode-6-Parallel-Extensions#c633770170010000000</link>
		<pubDate>Mon, 04 May 2009 06:56:41 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Shows/10-4/10-4-Episode-6-Parallel-Extensions#c633770170010000000</guid>
		<dc:creator>VBCoder</dc:creator>
	</item>
	<item>
		<title>Re: 10-4 Episode 6: Parallel Extensions</title>
		<description>
			<![CDATA[
<p>FYI you can't create a Task with <font face="Consolas" size="2" color="#2b91af">
<font face="Consolas" size="2" color="#2b91af"><font face="Consolas" size="2" color="#2b91af">Task</font></font></font>.StartNew with beta 1 <img src='http://ecn.channel9.msdn.com/o9/content/images/emoticons/emotion-1.gif' alt='Smiley' /> you need to use
<font face="Consolas" size="2" color="#2b91af"><font face="Consolas" size="2" color="#2b91af"><font face="Consolas" size="2" color="#2b91af">Task</font></font></font><font face="Consolas" size="2"><font face="Consolas" size="2">.Factory.StartNew <img src='http://ecn.channel9.msdn.com/o9/content/images/emoticons/emotion-1.gif' alt='Smiley' /></font></font></p>
<p>posted by yassir</p>]]>
		</description>
		<link>http://channel9.msdn.com/Shows/10-4/10-4-Episode-6-Parallel-Extensions#c633788502480000000</link>
		<pubDate>Mon, 25 May 2009 12:10:48 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Shows/10-4/10-4-Episode-6-Parallel-Extensions#c633788502480000000</guid>
		<dc:creator>yassir</dc:creator>
	</item>
	<item>
		<title>Re: 10-4 Episode 6: Parallel Extensions</title>
		<description>
			<![CDATA[
<p>I'm very inexperienced with concurrency and parrallel anything, but I do use Background workers to run background tasks and then update my Win GUIs.&nbsp; I'm just wondering if these new parrallel extentions with the Future and For classes add any advantages
 over using BackgroundWorkers?</p>
<p>Davey</p>
<p>posted by DFGasner</p>]]>
		</description>
		<link>http://channel9.msdn.com/Shows/10-4/10-4-Episode-6-Parallel-Extensions#c633794740480000000</link>
		<pubDate>Mon, 01 Jun 2009 17:27:28 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Shows/10-4/10-4-Episode-6-Parallel-Extensions#c633794740480000000</guid>
		<dc:creator>DFGasner</dc:creator>
	</item>
</channel>
</rss>