<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Parallel Programming with .NET : C++</title><link>http://blogs.msdn.com/pfxteam/archive/tags/C_2B002B00_/default.aspx</link><description>Tags: C++</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>PDC09 Parallelism Session Videos Now Available</title><link>http://blogs.msdn.com/pfxteam/archive/2009/11/21/9926691.aspx</link><pubDate>Sat, 21 Nov 2009 09:05:20 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9926691</guid><dc:creator>toub</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/pfxteam/comments/9926691.aspx</comments><wfw:commentRss>http://blogs.msdn.com/pfxteam/commentrss.aspx?PostID=9926691</wfw:commentRss><wfw:comment>http://blogs.msdn.com/pfxteam/rsscomments.aspx?PostID=9926691</wfw:comment><description>&lt;p&gt;Attendees at PDC09 this past week were privy to quite a few sessions on parallel computing.&amp;#160; Now that the videos of these sessions are online, you can view them as well from the comfort of your own home.&amp;#160; Here are some of the key parallelism-related sessions from this past week:&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Overview&lt;/strong&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://ecn.channel9.msdn.com/o9/pdc09/wmvhigh/FT07.wmv"&gt;The State of Parallel Programming&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&amp;#160;&lt;strong&gt;Managed code in Visual Studio 2010&lt;/strong&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://ecn.channel9.msdn.com/o9/pdc09/wmvhigh/FT03.wmv"&gt;Manycore and .NET 4: A Match Made in Visual Studio 2010&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://ecn.channel9.msdn.com/o9/pdc09/wmvhigh/FT21.wmv"&gt;PLINQ: LINQ, but Faster!&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://ecn.channel9.msdn.com/o9/pdc09/wmvhigh/FT20.wmv"&gt;F# for Parallel and Asynchronous Programming&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;strong&gt;Native code in Visual Studio 2010&lt;/strong&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://ecn.channel9.msdn.com/o9/pdc09/wmvhigh/FT19.wmv"&gt;C++ Forever: Interactive Applications in the Age of Manycore&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://ecn.channel9.msdn.com/o9/pdc09/wmvhigh/SVR10.wmv"&gt;Lighting up Windows Server 2008 R2 Using the ConcRT on UMS&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://ecn.channel9.msdn.com/o9/pdc09/wmvhigh/SVR18.wmv"&gt;Developing Applications for Scale-Up Servers Running Windows Server 2008 R2&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;strong&gt;HPC Server&lt;/strong&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://ecn.channel9.msdn.com/o9/pdc09/wmvhigh/SVR01.wmv"&gt;Accelerating Applications Using Windows HPC Server 2008&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;strong&gt;Research and Incubation&lt;/strong&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://ecn.channel9.msdn.com/o9/pdc09/wmvhigh/VTL02.wmv"&gt;Axum: A .NET Language for Safe and Scalable Concurrency&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://ecn.channel9.msdn.com/o9/pdc09/wmvhigh/VTL32.wmv"&gt;Concurrency Fuzzing &amp;amp; Data Races&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://ecn.channel9.msdn.com/o9/pdc09/wmvhigh/SVR17.wmv"&gt;Data-Intensive Computing on Windows HPC Server with DryadLINQ&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://ecn.channel9.msdn.com/o9/pdc09/wmvhigh/VTL04.wmv"&gt;Rx: Reactive Extensions for .NET&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://ecn.channel9.msdn.com/o9/pdc09/wmvhigh/FT36.wmv"&gt;Future of Garbage Collection&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://ecn.channel9.msdn.com/o9/pdc09/wmvhigh/FT11.wmv"&gt;Future Directions for C# and Visual Basic&lt;/a&gt;&amp;#160;&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Enjoy!&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9926691" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/pfxteam/archive/tags/ThreadPool/default.aspx">ThreadPool</category><category domain="http://blogs.msdn.com/pfxteam/archive/tags/Parallel+Extensions/default.aspx">Parallel Extensions</category><category domain="http://blogs.msdn.com/pfxteam/archive/tags/F_2300_/default.aspx">F#</category><category domain="http://blogs.msdn.com/pfxteam/archive/tags/Talks/default.aspx">Talks</category><category domain="http://blogs.msdn.com/pfxteam/archive/tags/HPC+Server/default.aspx">HPC Server</category><category domain="http://blogs.msdn.com/pfxteam/archive/tags/C_2B002B00_/default.aspx">C++</category><category domain="http://blogs.msdn.com/pfxteam/archive/tags/Visual+Studio+2010/default.aspx">Visual Studio 2010</category><category domain="http://blogs.msdn.com/pfxteam/archive/tags/Agents/default.aspx">Agents</category><category domain="http://blogs.msdn.com/pfxteam/archive/tags/.NET+4/default.aspx">.NET 4</category><category domain="http://blogs.msdn.com/pfxteam/archive/tags/Dryad/default.aspx">Dryad</category></item><item><title>Debugging TPL apps in VS2010</title><link>http://blogs.msdn.com/pfxteam/archive/2009/11/15/9922598.aspx</link><pubDate>Sun, 15 Nov 2009 08:18:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9922598</guid><dc:creator>DanielMoth</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/pfxteam/comments/9922598.aspx</comments><wfw:commentRss>http://blogs.msdn.com/pfxteam/commentrss.aspx?PostID=9922598</wfw:commentRss><wfw:comment>http://blogs.msdn.com/pfxteam/rsscomments.aspx?PostID=9922598</wfw:comment><description>&lt;P&gt;The new parallel debugger windows in Visual Studio 2010&amp;nbsp;(Parallel Tasks and Parallel Stacks) have had many fixes and updates. &lt;/P&gt;
&lt;P&gt;I have refreshed the existing content and also added new material for Beta 2. Find links to all of it from my blog post on &lt;A title="Parallel Debugging" href="http://www.danielmoth.com/Blog/2009/11/parallel-debugging.html" mce_href="http://www.danielmoth.com/Blog/2009/11/parallel-debugging.html"&gt;&lt;STRONG&gt;Parallel Debugging&lt;/STRONG&gt;&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;Cheers&lt;BR&gt;Daniel&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9922598" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/pfxteam/archive/tags/C_2B002B00_/default.aspx">C++</category><category domain="http://blogs.msdn.com/pfxteam/archive/tags/Tools/default.aspx">Tools</category><category domain="http://blogs.msdn.com/pfxteam/archive/tags/Visual+Studio+2010/default.aspx">Visual Studio 2010</category><category domain="http://blogs.msdn.com/pfxteam/archive/tags/.NET+4/default.aspx">.NET 4</category><category domain="http://blogs.msdn.com/pfxteam/archive/tags/debugging/default.aspx">debugging</category></item><item><title>Debugging Support for Tasks</title><link>http://blogs.msdn.com/pfxteam/archive/2009/05/15/9621187.aspx</link><pubDate>Sat, 16 May 2009 07:55:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9621187</guid><dc:creator>DanielMoth</dc:creator><slash:comments>9</slash:comments><comments>http://blogs.msdn.com/pfxteam/comments/9621187.aspx</comments><wfw:commentRss>http://blogs.msdn.com/pfxteam/commentrss.aspx?PostID=9621187</wfw:commentRss><wfw:comment>http://blogs.msdn.com/pfxteam/rsscomments.aspx?PostID=9621187</wfw:comment><description>Visual Studio 2010 has new debugger windows to support the Task-based programming model. Check out my &lt;A href="http://www.danielmoth.com/Blog/2009/05/parallel-tasks-new-visual-studio-2010.html" mce_href="http://www.danielmoth.com/Blog/2009/05/parallel-tasks-new-visual-studio-2010.html"&gt;blog post about the Parallel Tasks window&lt;/A&gt;.&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9621187" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/pfxteam/archive/tags/C_2B002B00_/default.aspx">C++</category><category domain="http://blogs.msdn.com/pfxteam/archive/tags/Tools/default.aspx">Tools</category><category domain="http://blogs.msdn.com/pfxteam/archive/tags/Visual+Studio+2010/default.aspx">Visual Studio 2010</category><category domain="http://blogs.msdn.com/pfxteam/archive/tags/.NET+4.0/default.aspx">.NET 4.0</category></item><item><title>Parallelism Videos Galore</title><link>http://blogs.msdn.com/pfxteam/archive/2008/11/18/9117413.aspx</link><pubDate>Tue, 18 Nov 2008 11:14:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9117413</guid><dc:creator>toub</dc:creator><slash:comments>4</slash:comments><comments>http://blogs.msdn.com/pfxteam/comments/9117413.aspx</comments><wfw:commentRss>http://blogs.msdn.com/pfxteam/commentrss.aspx?PostID=9117413</wfw:commentRss><wfw:comment>http://blogs.msdn.com/pfxteam/rsscomments.aspx?PostID=9117413</wfw:comment><description>&lt;P&gt;It's been a hectic and exciting few weeks, and we on the &lt;A href="http://msdn.com/concurrency" mce_href="http://msdn.com/concurrency"&gt;Parallel Computing Platform&lt;/A&gt; team have been having a great time talking with customers all over the world, at the PDC, at TechEd EMEA, at DevConnections, through Channel 9, and more.&amp;nbsp; A lot of the resulting material is now available online for viewing, so do check it out if you're interested.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;PDC 2008 videos&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;A title="Parallel Programming for Managed Developers with the Next Version of Microsoft Visual Studio" href="http://channel9.msdn.com/pdc2008/TL26/" mce_href="http://channel9.msdn.com/pdc2008/TL26/"&gt;Parallel Programming for Managed Developers with the Next Version of Microsoft Visual Studio&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;A title="Parallel Programming for C++ Developers in the Next Version of Microsoft Visual Studio" href="http://channel9.msdn.com/pdc2008/TL25/" mce_href="http://channel9.msdn.com/pdc2008/TL25/"&gt;Parallel Programming for C++ Developers in the Next Version of Microsoft Visual Studio&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;A title="Microsoft Visual Studio- Bringing out the Best in Multicore Systems" href="http://channel9.msdn.com/pdc2008/TL19/" mce_href="http://channel9.msdn.com/pdc2008/TL19/"&gt;Microsoft Visual Studio: Bringing out the Best in Multicore Systems&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;A title="Concurrency Runtime Deep Dive- How to Harvest Multicore Computing Resources" href="http://channel9.msdn.com/pdc2008/TL22/" mce_href="http://channel9.msdn.com/pdc2008/TL22/"&gt;Concurrency Runtime Deep Dive: How to Harvest Multicore Computing Resources&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;A title="Parallel Symposium- Addressing the Hard Problems with Concurrency" href="http://channel9.msdn.com/pdc2008/SYMP01/" mce_href="http://channel9.msdn.com/pdc2008/SYMP01/"&gt;Parallel Symposium: Addressing the Hard Problems with Concurrency&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;A title="Parallel Symposium- Application Opportunities and Architectures" href="http://channel9.msdn.com/pdc2008/SYMP02/" mce_href="http://channel9.msdn.com/pdc2008/SYMP02/"&gt;Parallel Symposium: Application Opportunities and Architectures&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;A title="Parallel Symposium- Future of Parallel Computing" href="http://channel9.msdn.com/pdc2008/SYMP03/" mce_href="http://channel9.msdn.com/pdc2008/SYMP03/"&gt;Parallel Symposium: Future of Parallel Computing&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;A title="Research- Concurrency Analysis Platform and Tools for Finding Concurrency Bugs" href="http://channel9.msdn.com/pdc2008/TL58/" mce_href="http://channel9.msdn.com/pdc2008/TL58/"&gt;Research: Concurrency Analysis Platform and Tools for Finding Concurrency Bugs&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;A title="The Concurrency and Coordination Runtime and Decentralized Software Services Toolkit" href="http://channel9.msdn.com/pdc2008/TL55/" mce_href="http://channel9.msdn.com/pdc2008/TL55/"&gt;The Concurrency and Coordination Runtime and Decentralized Software Services Toolkit&lt;/A&gt;&lt;STRONG&gt;&amp;nbsp;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Channel 9: Visual Studio 2010 and .NET Framework 4.0 Week&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;A title="Using the Parallel Extensions to the .NET Framework" href="http://channel9.msdn.com/posts/VisualStudio/Using-the-Parallel-Extensions-to-the-NET-Framework/" mce_href="http://channel9.msdn.com/posts/VisualStudio/Using-the-Parallel-Extensions-to-the-NET-Framework/"&gt;Using the Parallel Extensions to the .NET Framework&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;A title="Native Parallelism with the Parallel Patterns Library" href="http://channel9.msdn.com/posts/VisualStudio/Native-Parallelism-with-the-Parallel-Patterns-Library/" mce_href="http://channel9.msdn.com/posts/VisualStudio/Native-Parallelism-with-the-Parallel-Patterns-Library/"&gt;Native Parallelism with the Parallel Patterns Library&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;A title="Debugging Parallel Applications with Visual Studio 2010" href="http://channel9.msdn.com/posts/VisualStudio/Debugging-Parallel-Applications-with-Visual-Studio-2010/" mce_href="http://channel9.msdn.com/posts/VisualStudio/Debugging-Parallel-Applications-with-Visual-Studio-2010/"&gt;Debugging Parallel Applications with Visual Studio 2010&lt;/A&gt;&lt;STRONG&gt;&amp;nbsp;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;TechEd EMEA 2008&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;A href="http://www.microsoft.com/emea/teched2008/developer/default.aspx" mce_href="http://www.microsoft.com/emea/teched2008/developer/default.aspx"&gt;Parallel Programming for Managed developers with Visual Studio 2010 and .NET Framework 4.0&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;A href="http://www.youtube.com/watch?v=LCO9m8eAv6A" mce_href="http://www.youtube.com/watch?v=LCO9m8eAv6A"&gt;Tech chat with Microsoft's parallel guru Steve Teixeira&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;A title="Why we Need the Task-Based Programming Model Introduced in .NET 4" href="http://mfile.akamai.com/14853/wmv/microsofttec.download.akamai.com/14853/TechEdOnline/Videos/443_low.asx" mce_href="http://mfile.akamai.com/14853/wmv/microsofttec.download.akamai.com/14853/TechEdOnline/Videos/443_low.asx"&gt;Why we Need the Task-Based Programming Model Introduced in .NET 4&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;A title="The Inexorable Drive to Many-Core Processors" href="http://mfile.akamai.com/14853/wmv/microsofttec.download.akamai.com/14853/TechEdOnline/Videos/08_NA_Dev_techtalk_39_low.asx" mce_href="http://mfile.akamai.com/14853/wmv/microsofttec.download.akamai.com/14853/TechEdOnline/Videos/08_NA_Dev_techtalk_39_low.asx"&gt;The Inexorable Drive to Many-Core Processors&lt;/A&gt;&lt;STRONG&gt;&amp;nbsp;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Other (OnMicrosoft, University of Washington Colloquium, ...)&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;A title="Concurrent Programming on Windows" href="http://podcastmastery.podango.com/podcast_episode/2415/97060/OnMicrosoft_video/Concurrent_Programming_on_Windows" mce_href="http://podcastmastery.podango.com/podcast_episode/2415/97060/OnMicrosoft_video/Concurrent_Programming_on_Windows"&gt;Concurrent Programming on Windows&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;A title="Visual Studio 2010 Part 1 of 2- Support for Parallelism" href="http://podcastmastery.podango.com/podcast_episode/2415/97058/OnMicrosoft_video/Visual_Studio_2010_Part_1_of_2_Support_for_Parallelism#97058" mce_href="http://podcastmastery.podango.com/podcast_episode/2415/97058/OnMicrosoft_video/Visual_Studio_2010_Part_1_of_2_Support_for_Parallelism#97058"&gt;Visual Studio 2010 Part 1 of 2- Support for Parallelism&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;A title="Visual Studio 2010 Part 1 of 2- Support for Parallelism" href="http://podcastmastery.podango.com/podcast_episode/2415/97058/OnMicrosoft_video/Visual_Studio_2010_Part_1_of_2_Support_for_Parallelism#97058" mce_href="http://podcastmastery.podango.com/podcast_episode/2415/97058/OnMicrosoft_video/Visual_Studio_2010_Part_1_of_2_Support_for_Parallelism#97058"&gt;Visual Studio 2010 Part 1 of 2- Support for Parallelism&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;A href="http://norfolk.cs.washington.edu/htbin-post/unrestricted/colloq/details.cgi?id=768" mce_href="http://norfolk.cs.washington.edu/htbin-post/unrestricted/colloq/details.cgi?id=768"&gt;Microsoft's Parallel Computing Platform: Applied Research in a Product Setting&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;And if you're more interested in the written word, check out this recent tech brief in Redmond Developer News:&lt;/P&gt;
&lt;P&gt;&lt;A title="Parallel Extensions" href="http://reddevnews.com/techbriefs/article.aspx?editorialsid=1187" mce_href="http://reddevnews.com/techbriefs/article.aspx?editorialsid=1187"&gt;Tech Brief: Parallel Extensions&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;All of this is, of course, in addition to all of the previous material that's been posted online, such as was mentioned at &lt;A title="The Channel 9 videos are rolling in" href="http://blogs.msdn.com/pfxteam/archive/2008/10/16/9002166.aspx" mce_href="http://blogs.msdn.com/pfxteam/archive/2008/10/16/9002166.aspx"&gt;The Channel 9 videos are rolling in&lt;/A&gt;, &lt;A title="Webcasts on Parallelism from France" href="http://blogs.msdn.com/pfxteam/archive/2008/09/02/8919966.aspx" mce_href="http://blogs.msdn.com/pfxteam/archive/2008/09/02/8919966.aspx"&gt;Webcasts on Parallelism from France&lt;/A&gt;, &lt;A title="Parallel Extensions Demo Fun on Channel 9" href="http://blogs.msdn.com/pfxteam/archive/2008/06/10/8590898.aspx" mce_href="http://blogs.msdn.com/pfxteam/archive/2008/06/10/8590898.aspx"&gt;Parallel Extensions Demo Fun on Channel 9&lt;/A&gt;, &lt;A title="More Channel 9 Parallel Extensions Goodness" href="http://blogs.msdn.com/pfxteam/archive/2008/06/06/8579465.aspx" mce_href="http://blogs.msdn.com/pfxteam/archive/2008/06/06/8579465.aspx"&gt;More Channel 9 Parallel Extensions Goodness&lt;/A&gt;, &lt;A title="New PLINQ video on Channel 9" href="http://blogs.msdn.com/pfxteam/archive/2008/03/18/8318651.aspx" mce_href="http://blogs.msdn.com/pfxteam/archive/2008/03/18/8318651.aspx"&gt;New PLINQ video on Channel 9&lt;/A&gt;, &lt;A title="Task Parallel Library on Channel 9" href="http://blogs.msdn.com/pfxteam/archive/2008/02/19/7804314.aspx" mce_href="http://blogs.msdn.com/pfxteam/archive/2008/02/19/7804314.aspx"&gt;Task Parallel Library on Channel 9&lt;/A&gt;, &lt;A title="Burton Smith on Channel 9" href="http://blogs.msdn.com/pfxteam/archive/2008/02/13/7677562.aspx" mce_href="http://blogs.msdn.com/pfxteam/archive/2008/02/13/7677562.aspx"&gt;Burton Smith on Channel 9&lt;/A&gt;, &lt;A title="Parallel Extensions on .NET Rocks" href="http://blogs.msdn.com/pfxteam/archive/2007/12/31/6922952.aspx" mce_href="http://blogs.msdn.com/pfxteam/archive/2007/12/31/6922952.aspx"&gt;Parallel Extensions on .NET Rocks&lt;/A&gt;, &lt;A title="Parallelism in October 2008 MSDN Magazine" href="http://blogs.msdn.com/pfxteam/archive/2008/10/02/8974038.aspx" mce_href="http://blogs.msdn.com/pfxteam/archive/2008/10/02/8974038.aspx"&gt;Parallelism in October 2008 MSDN Magazine&lt;/A&gt;, and &lt;A title="Another Parallel Extensions screencast" href="http://blogs.msdn.com/pfxteam/archive/2007/12/12/6752602.aspx" mce_href="http://blogs.msdn.com/pfxteam/archive/2007/12/12/6752602.aspx"&gt;Another Parallel Extensions screencast&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;Enjoy!&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9117413" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/pfxteam/archive/tags/Parallel+Extensions/default.aspx">Parallel Extensions</category><category domain="http://blogs.msdn.com/pfxteam/archive/tags/Media/default.aspx">Media</category><category domain="http://blogs.msdn.com/pfxteam/archive/tags/Talks/default.aspx">Talks</category><category domain="http://blogs.msdn.com/pfxteam/archive/tags/C_2B002B00_/default.aspx">C++</category><category domain="http://blogs.msdn.com/pfxteam/archive/tags/Visual+Studio+2010/default.aspx">Visual Studio 2010</category><category domain="http://blogs.msdn.com/pfxteam/archive/tags/.NET+4.0/default.aspx">.NET 4.0</category></item><item><title>Concurrent, Multi-core Programming on Windows and .NET</title><link>http://blogs.msdn.com/pfxteam/archive/2008/10/27/9019731.aspx</link><pubDate>Tue, 28 Oct 2008 08:51:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9019731</guid><dc:creator>toub</dc:creator><slash:comments>5</slash:comments><comments>http://blogs.msdn.com/pfxteam/comments/9019731.aspx</comments><wfw:commentRss>http://blogs.msdn.com/pfxteam/commentrss.aspx?PostID=9019731</wfw:commentRss><wfw:comment>http://blogs.msdn.com/pfxteam/rsscomments.aspx?PostID=9019731</wfw:comment><description>&lt;P&gt;Thanks to everyone who attended our PDC pre-conference session yesterday on parallelism and concurrency!&amp;nbsp; We had a wonderful turnout at the event, and David, Joe, and I all had a terrific time. &lt;A class="" href="http://blogs.msdn.com/pfxteam/attachment/9019731.ashx" mce_href="http://blogs.msdn.com/pfxteam/attachment/9019731.ashx"&gt;Attached&lt;/A&gt; to this post are the slides we presented.&lt;/P&gt;
&lt;P&gt;(It turns out that the PDC site does allow you to &lt;A href="https://sessions.microsoftpdc.com/public/evals.aspx" mce_href="https://sessions.microsoftpdc.com/public/evals.aspx"&gt;submit an evaluation&lt;/A&gt; for a precon.&amp;nbsp; If you attended, we'd love your &lt;A href="https://sessions.microsoftpdc.com/public/evals.aspx" mce_href="https://sessions.microsoftpdc.com/public/evals.aspx"&gt;feedback&lt;/A&gt;.)&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9019731" width="1" height="1"&gt;</description><enclosure url="http://blogs.msdn.com/pfxteam/attachment/9019731.ashx" length="1451170" type="application/x-zip-compressed" /><category domain="http://blogs.msdn.com/pfxteam/archive/tags/PLINQ/default.aspx">PLINQ</category><category domain="http://blogs.msdn.com/pfxteam/archive/tags/Task+Parallel+Library/default.aspx">Task Parallel Library</category><category domain="http://blogs.msdn.com/pfxteam/archive/tags/ThreadPool/default.aspx">ThreadPool</category><category domain="http://blogs.msdn.com/pfxteam/archive/tags/Parallelism+Blockers/default.aspx">Parallelism Blockers</category><category domain="http://blogs.msdn.com/pfxteam/archive/tags/Code+Samples/default.aspx">Code Samples</category><category domain="http://blogs.msdn.com/pfxteam/archive/tags/Parallel+Extensions/default.aspx">Parallel Extensions</category><category domain="http://blogs.msdn.com/pfxteam/archive/tags/Talks/default.aspx">Talks</category><category domain="http://blogs.msdn.com/pfxteam/archive/tags/C_2B002B00_/default.aspx">C++</category><category domain="http://blogs.msdn.com/pfxteam/archive/tags/Tools/default.aspx">Tools</category><category domain="http://blogs.msdn.com/pfxteam/archive/tags/Coordination+Data+Structures/default.aspx">Coordination Data Structures</category><category domain="http://blogs.msdn.com/pfxteam/archive/tags/Release/default.aspx">Release</category><category domain="http://blogs.msdn.com/pfxteam/archive/tags/CTP/default.aspx">CTP</category><category domain="http://blogs.msdn.com/pfxteam/archive/tags/CDS/default.aspx">CDS</category></item><item><title>Native concurrency, tools, and TM</title><link>http://blogs.msdn.com/pfxteam/archive/2008/10/12/8997392.aspx</link><pubDate>Mon, 13 Oct 2008 08:32:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8997392</guid><dc:creator>toub</dc:creator><slash:comments>2</slash:comments><comments>http://blogs.msdn.com/pfxteam/comments/8997392.aspx</comments><wfw:commentRss>http://blogs.msdn.com/pfxteam/commentrss.aspx?PostID=8997392</wfw:commentRss><wfw:comment>http://blogs.msdn.com/pfxteam/rsscomments.aspx?PostID=8997392</wfw:comment><description>&lt;P&gt;The &lt;A href="http://msdn.microsoft.com/en-us/concurrency/default.aspx" mce_href="http://msdn.microsoft.com/en-us/concurrency/default.aspx"&gt;Parallel Computing Platform&lt;/A&gt; team at Microsoft is working on much more than Parallel Extensions to the .NET Framework...&lt;/P&gt;
&lt;P&gt;A few weeks back, Charles from Channel 9 spoke with us about our efforts on supporting concurrency and parallelism in &lt;A href="http://blogs.msdn.com/nativeconcurrency/" mce_href="http://blogs.msdn.com/nativeconcurrency/"&gt;native code&lt;/A&gt;; the video of that conversation was released this week, and you can view it at &lt;A title=http://channel9.msdn.com/posts/Charles/The-Concurrency-Runtime-Fine-Grained-Parallelism-for-C href="http://channel9.msdn.com/posts/Charles/The-Concurrency-Runtime-Fine-Grained-Parallelism-for-C" mce_href="http://channel9.msdn.com/posts/Charles/The-Concurrency-Runtime-Fine-Grained-Parallelism-for-C"&gt;http://channel9.msdn.com/posts/Charles/The-Concurrency-Runtime-Fine-Grained-Parallelism-for-C&lt;/A&gt;. Niklas Gustafsson, an architect on our team, was also recently on Intel's Parallel Programming Talk podcast discussing the Concurrency Runtime; you can listen to that podcast at &lt;A href="http://software.intel.com/en-us/blogs/2008/10/07/parallel-programing-talk-microsoft-concurrency-runtime/"&gt;http://software.intel.com/en-us/blogs/2008/10/07/parallel-programing-talk-microsoft-concurrency-runtime/&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;Charles also spoke with our tools team, which for Visual Studio is focusing on dramatically improving the debugging and profiling experience for when writing parallel applications; you can view that video at &lt;A title=http://channel9.msdn.com/posts/Charles/Parallel-Computing-Platform-An-Integrated-Approach-to-Tooling/ href="http://channel9.msdn.com/posts/Charles/Parallel-Computing-Platform-An-Integrated-Approach-to-Tooling/" mce_href="http://channel9.msdn.com/posts/Charles/Parallel-Computing-Platform-An-Integrated-Approach-to-Tooling/"&gt;http://channel9.msdn.com/posts/Charles/Parallel-Computing-Platform-An-Integrated-Approach-to-Tooling/&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;In other cool news, our team focused on implementing an experimental transactional memory system has just started up a blog (&lt;A title=http://blogs.msdn.com/stmteam/ href="http://blogs.msdn.com/stmteam/" mce_href="http://blogs.msdn.com/stmteam/"&gt;http://blogs.msdn.com/stmteam/&lt;/A&gt;):&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;"This blog is about transactional memory with entries written by the team at Microsoft that is implementing an experimental transactional memory system in .NET. While we work in the Developer Division’s &lt;A href="http://www.msdn.com/concurrency/" mce_href="http://www.msdn.com/concurrency/"&gt;Parallel Computing Platform&lt;/A&gt; product group, we are not working on a product release at this time. Instead we have been incubating, researching, and experimenting with transactional memory.&lt;/P&gt;
&lt;P&gt;Our goal is to create a TM system that lives up to its promise. This work has lead us to what we think is some industry-leading work – but we have been so busy doing it that we haven’t had a chance to talk about it; share what we have found; and more importantly hear what the community thinks of this effort.&lt;/P&gt;
&lt;P&gt;This blog is our first step to remedy that. Welcome to the Transactional Memory blog here at MSDN."&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;The &lt;A href="http://blogs.msdn.com/stmteam/archive/2008/10/08/welcome-to-the-transactional-memory-team-s-blog.aspx" mce_href="http://blogs.msdn.com/stmteam/archive/2008/10/08/welcome-to-the-transactional-memory-team-s-blog.aspx"&gt;first post&lt;/A&gt; on the blog is quite interesting and is definitely worth a read.&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8997392" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/pfxteam/archive/tags/C_2B002B00_/default.aspx">C++</category><category domain="http://blogs.msdn.com/pfxteam/archive/tags/Tools/default.aspx">Tools</category></item><item><title>Announcing the "Parallel Programming in Native Code" Blog</title><link>http://blogs.msdn.com/pfxteam/archive/2008/06/06/8579087.aspx</link><pubDate>Sat, 07 Jun 2008 09:24:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8579087</guid><dc:creator>essey</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/pfxteam/comments/8579087.aspx</comments><wfw:commentRss>http://blogs.msdn.com/pfxteam/commentrss.aspx?PostID=8579087</wfw:commentRss><wfw:comment>http://blogs.msdn.com/pfxteam/rsscomments.aspx?PostID=8579087</wfw:comment><description>&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Calibri size=3&gt;Our colleagues working on native concurrency have just launched the &lt;/FONT&gt;&lt;A href="http://blogs.msdn.com/nativeconcurrency/" mce_href="http://blogs.msdn.com/nativeconcurrency/"&gt;&lt;FONT face=Calibri size=3&gt;Parallel Programming in Native Code&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Calibri size=3&gt; blog.&amp;nbsp; We’re all on the same team and work really closely to ensure that the right programming models are exposed both for managed and native consumers, so you will be able to use your language of choice.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt" mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Calibri size=3&gt;Here’s a little bit from the &lt;/FONT&gt;&lt;A href="http://blogs.msdn.com/nativeconcurrency/archive/2008/06/06/welcome-to-the-native-concurrency-blog.aspx" mce_href="http://blogs.msdn.com/nativeconcurrency/archive/2008/06/06/welcome-to-the-native-concurrency-blog.aspx"&gt;&lt;FONT face=Calibri size=3&gt;Welcome&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Calibri size=3&gt; post explaining what they’re all about.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;FONT face=Calibri size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 43.5pt"&gt;&lt;SPAN lang=EN style="FONT-SIZE: 12pt; COLOR: #0070c0; mso-ansi-language: EN"&gt;&lt;FONT face=Calibri&gt;“…We’re looking to help overcome these barriers and improve productivity for C++ developers. &lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 43.5pt"&gt;&lt;SPAN lang=EN style="FONT-SIZE: 12pt; COLOR: #0070c0; mso-ansi-language: EN"&gt;&lt;FONT face=Calibri&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 43.5pt"&gt;&lt;SPAN lang=EN style="FONT-SIZE: 12pt; COLOR: #0070c0; mso-ansi-language: EN"&gt;&lt;FONT face=Calibri&gt;We want to make expressing concurrency easier by adding abstractions for describing opportunities for parallelism that maintain the original intent, readability and composability of the code.&amp;nbsp; &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 43.5pt"&gt;&lt;SPAN lang=EN style="FONT-SIZE: 12pt; COLOR: #0070c0; mso-ansi-language: EN"&gt;&lt;FONT face=Calibri&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 43.5pt"&gt;&lt;SPAN lang=EN style="FONT-SIZE: 12pt; COLOR: #0070c0; mso-ansi-language: EN"&gt;&lt;FONT face=Calibri&gt;We’re trying to minimize the number of new concepts we introduce to ensure that the model remains approachable and familiar to mainstream C++ developers. &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 43.5pt"&gt;&lt;SPAN lang=EN style="FONT-SIZE: 12pt; COLOR: #0070c0; mso-ansi-language: EN"&gt;&lt;FONT face=Calibri&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 43.5pt"&gt;&lt;SPAN lang=EN style="FONT-SIZE: 12pt; COLOR: #0070c0; mso-ansi-language: EN"&gt;&lt;FONT face=Calibri&gt;We’re exploring ways for developers to overcome the challenges of shared memory by providing a means of describing applications as isolated components that communicate with a rich message passing interface.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 43.5pt"&gt;&lt;SPAN lang=EN style="FONT-SIZE: 12pt; COLOR: #0070c0; mso-ansi-language: EN"&gt;&lt;FONT face=Calibri&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 43.5pt"&gt;&lt;SPAN lang=EN style="FONT-SIZE: 12pt; COLOR: #0070c0; mso-ansi-language: EN"&gt;&lt;FONT face=Calibri&gt;We’re looking at providing a common and efficient Concurrency Runtime that supports a broad range of parallel abstractions and removes the need for developers to build this infrastructure.”&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;FONT face=Calibri size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Calibri size=3&gt;Check out the &lt;A class="" href="http://blogs.msdn.com/nativeconcurrency/archive/2008/06/06/welcome-to-the-native-concurrency-blog.aspx" mce_href="http://blogs.msdn.com/nativeconcurrency/archive/2008/06/06/welcome-to-the-native-concurrency-blog.aspx"&gt;post&lt;/A&gt; to see an example of their work in action.&lt;/FONT&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8579087" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/pfxteam/archive/tags/C_2B002B00_/default.aspx">C++</category></item><item><title>Mandelbrot in Parallel with C++/CLI</title><link>http://blogs.msdn.com/pfxteam/archive/2008/06/06/8579067.aspx</link><pubDate>Sat, 07 Jun 2008 01:11:44 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8579067</guid><dc:creator>toub</dc:creator><slash:comments>3</slash:comments><comments>http://blogs.msdn.com/pfxteam/comments/8579067.aspx</comments><wfw:commentRss>http://blogs.msdn.com/pfxteam/commentrss.aspx?PostID=8579067</wfw:commentRss><wfw:comment>http://blogs.msdn.com/pfxteam/rsscomments.aspx?PostID=8579067</wfw:comment><description>&lt;p&gt;Since the release of the December 2007 CTP of Parallel Extensions, we've received several questions about whether Parallel Extensions can be used from C++/CLI.&amp;#160; In short, yes, it can! (It can be used with any .NET language, one of the beauties of this functionality being provided through a library.)&amp;#160; To demonstrate, we included in the &lt;a href="https://www.microsoft.com/downloads/details.aspx?familyid=348F73FD-593D-4B3C-B055-694C50D2B0F3"&gt;June 2008 CTP&lt;/a&gt; an example of doing just that, using Parallel Extensions to compute the Mandelbrot fractal. (To use Parallel Extensions in your own C++ project, you'll need to add a reference to both System.Threading.dll and System.Core.dll.)&lt;/p&gt;  &lt;p&gt;The sample application loads and displays the Mandelbrot fractal.&amp;#160; You can click-and-drag to move around in the fractal, and on each move the image will be redrawn.&amp;#160; However, as soon as you move again, the previous rendering will be canceled and a new rendering will begin; this keeps the UI responsive.&amp;#160; You can also double-click with the left mouse button to zoom in or double-click with the right mouse button to zoom out.&amp;#160; The application starts out in sequential rendering mode, signified by the &amp;quot;(1x)&amp;quot; in the title bar of the app.&amp;#160; If you press the 'p' key while the application is running, it will switch over into parallel mode, and the title bar will display &amp;quot;(2x)&amp;quot; on a dual-core, &amp;quot;(4x)&amp;quot; on a quad-core, and so forth.&amp;#160; The title bar also displays the time it took to perform the last rendering, and the image will be re-rendered every time you push 'p' or 's' (for sequential), so you can quickly flip back and forth between the two modes to see the difference in rendering times.&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/pfxteam/WindowsLiveWriter/ParallelExtensionsSampleMandelbrotinCCLI_13FB3/image_2.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="228" alt="image" src="http://blogs.msdn.com/blogfiles/pfxteam/WindowsLiveWriter/ParallelExtensionsSampleMandelbrotinCCLI_13FB3/image_thumb.png" width="244" border="0" /&gt;&lt;/a&gt; &lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;While Parallel Extensions can be used from C++/CLI, it's admittedly not the best experience due to C++'s current lack of support for lambda expressions and anonymous methods.&amp;#160; In C# I could write a method something like the following to render an image (this is just pseudo-code):&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;static Bitmap Create(MandelbrotPosition position, int width, int height)      &lt;br /&gt;{       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Bitmap bmp = new Bitmap(width, height);       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Parallel.For(0, height, delegate(int j)       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; {       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; for(int i=0; i&amp;lt;width; i++)       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; bmp.SetPixel(i, j, RenderPixel(i,j,position));       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; });       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; return bmp;       &lt;br /&gt;}&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;This works because C# supports closures and is able to capture references to variables like width, height, position, and bmp in order to use them inside of the delegate.&amp;#160; In C++/CLI in contrast, I need to write this more like the following:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;static Bitmap^ Create(MandelbrotPosition position, int width, int height)      &lt;br /&gt;{       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Bitmap^ bmp = gcnew Bitmap(width, height);       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; RenderImageData ^rid =       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; gcnew RenderImageData(bmp, position, width, height);       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Parallel::For(0, height, gcnew Action&amp;lt;int&amp;gt;(       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; rid, &amp;amp;RenderImageData::RenderRow));       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; return bmp;       &lt;br /&gt;}&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Not shown, I've defined RenderImageData as a class that stores the various values and that exposes a RenderRow method that implements the inner loop which renders a single row.&amp;#160; I can call that RenderRow method in parallel by passing a delegate to it to the Parallel::For method.&lt;/p&gt;  &lt;p&gt;Some of you who are familiar with OpenMP will note that this particular task of parallelizing a loop is OpenMP's bread-and-butter and doesn't require some of these funky gyrations to manually implement a closure, since the compiler handles it much of it for you.&amp;#160; As it turns out, the nice folks in Visual C++ land implemented support for OpenMP 2.0 in C++/CLI, so you can actually use OpenMP from managed code.&amp;#160; To do so, in your project you need to throw the /openmp switch, which can be done by setting the OpenMP Support value to Yes in the property pages for the project under Configuration Properties | C/C++ | Language.&amp;#160; Under Configuration Properties | General, you'll also need to set Common Language Runtime support to Common Language Runtime support (/clr).&amp;#160; Now, on a for loop (like the one used to render the image), you can add an OpenMP pragma like:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;#pragma omp parallel for      &lt;br /&gt;for(int j=0; j&amp;lt;height; j++) { ... }&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;and the system will automatically parallelize the rendering of the loop (you may need to help the system to find the OpenMP runtime library VCOMP90.DLL, such as by copying that DLL into the directory containing your binary).&amp;#160; Of course, the OpenMP approach has its downsides, too, besides all of the configuration we just went through.&amp;#160; For one, OpenMP doesn't provide an easy mechanism to jump out of parallelized loops, such as by using a break statement.&amp;#160; This makes it difficult to cancel the rendering of the loop, such as how we do with Parallel::For.&amp;#160; Additionally, OpenMP doesn't currently provide good support for task parallelism as is available through the System::Threading::Tasks namespace in Parallel Extensions, or for the plethora of new coordination and synchronization constructs available in System::Threading and System::Threading::Collections.&amp;#160; All of these Parallel Extensions constructs should be usable from C++/CLI.&lt;/p&gt;  &lt;p&gt;For more details on this application, &lt;a href="https://www.microsoft.com/downloads/details.aspx?familyid=348F73FD-593D-4B3C-B055-694C50D2B0F3"&gt;download and install the June 2008 CTP&lt;/a&gt;.&amp;#160; The Mandelbrot sample is installed by default at %PROGRAMFILES%\Microsoft Parallel Extensions Jun08 CTP\Samples\MandelbrotFractals.&amp;#160; We'd be very interested in hearing about your experiences using Parallel Extensions from C++/CLI, so please send any and all feedback our way, especially if you have suggestions for things we could do to improve the scenario.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8579067" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/pfxteam/archive/tags/Task+Parallel+Library/default.aspx">Task Parallel Library</category><category domain="http://blogs.msdn.com/pfxteam/archive/tags/Code+Samples/default.aspx">Code Samples</category><category domain="http://blogs.msdn.com/pfxteam/archive/tags/Parallel+Extensions/default.aspx">Parallel Extensions</category><category domain="http://blogs.msdn.com/pfxteam/archive/tags/C_2B002B00_/default.aspx">C++</category></item><item><title>Parallel Computing Platform at TechEd 2008</title><link>http://blogs.msdn.com/pfxteam/archive/2008/05/28/8557291.aspx</link><pubDate>Thu, 29 May 2008 08:16:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8557291</guid><dc:creator>toub</dc:creator><slash:comments>3</slash:comments><comments>http://blogs.msdn.com/pfxteam/comments/8557291.aspx</comments><wfw:commentRss>http://blogs.msdn.com/pfxteam/commentrss.aspx?PostID=8557291</wfw:commentRss><wfw:comment>http://blogs.msdn.com/pfxteam/rsscomments.aspx?PostID=8557291</wfw:comment><description>&lt;P&gt;&lt;B&gt;&lt;A class="" href="http://www.microsoft.com/events/teched2008/default.mspx" mce_href="http://www.microsoft.com/events/teched2008/default.mspx"&gt;&lt;IMG height=137 alt=website_banner_main src="http://blogs.msdn.com/blogfiles/joestagner/WindowsLiveWriter/TechEd2008Mypresentationscomesayhello_9453/website_banner_main_thumb.jpg" width=436 border=0 mce_src="http://blogs.msdn.com/blogfiles/joestagner/WindowsLiveWriter/TechEd2008Mypresentationscomesayhello_9453/website_banner_main_thumb.jpg"&gt;&lt;/A&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P&gt;Heading to TechEd 2008? Come discover some of the exciting technologies the Parallel Computing Platform team is working on.&lt;/P&gt;
&lt;P&gt;We're presenting four sessions on parallelism at the &lt;A class="" href="http://msdn.microsoft.com/en-us/events/teched/default.aspx" mce_href="http://msdn.microsoft.com/en-us/events/teched/default.aspx"&gt;Developer conference&lt;/A&gt;:&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;DVP205 &lt;/EM&gt;&lt;BR&gt;&lt;STRONG&gt;The Microsoft Parallel Computing Initiative: Bringing Concurrency to the Masses&lt;/STRONG&gt; &lt;BR&gt;Tuesday, June 3 10:30 AM - 11:45 AM, S210 B&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;Software is headed for a fundamental change. Over the last 30 years, developers have relied on exponential growth in computing power in order to write applications that run fast. However, whereas the average PC clock speed increased more than ten-fold between 1993 and 1999, the average processor speed in the last four years hasn’t even doubled. Instead, the hardware industry is shifting to multi-core and manycore processors. The average PC on the market today is a dual-core. Next year, expect the average to be quad-core. Two years after that, eight-core. Unfortunately, most software today is single-threaded in nature and will not take advantage of multiple processors. The key to high-performance applications in the future is parallelism. In this session, we explore the need for concurrency, as well as what Microsoft is doing through its programming languages, libraries, runtimes, and tools to help developers leverage parallelism in their code.&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;&lt;EM&gt;DVP304 &lt;BR&gt;&lt;/EM&gt;&lt;STRONG&gt;Parallelize Your Microsoft .NET Framework-Based Applications with Parallel Extensions &lt;BR&gt;&lt;/STRONG&gt;Wednesday, June 4 10:15 AM - 11:30 AM, S220 A &lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;With the Microsoft .NET Framework today, correctly introducing concurrency into libraries and applications is difficult, time consuming, and error-prone. However, as the hardware industry shifts towards multi-core and manycore processors, the key to high-performance applications is parallelism. Parallel Extensions to the .NET Framework offers solutions to help make writing concurrent applications significantly easier. In this session, we dive into Parallel Extensions, exploring Parallel LINQ-to-Objects (PLINQ), the Task Parallel Library (TPL), the underlying concurrency runtime, and more, in order to provide an in-depth look at the next generation of parallel programming with .NET.&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;&lt;EM&gt;DVP316 &lt;BR&gt;&lt;/EM&gt;&lt;STRONG&gt;Simplify Parallel Application Debugging and Profiling with Concurrency Tools in Microsoft Visual Studio &lt;BR&gt;&lt;/STRONG&gt;Thursday, June 5 8:30 AM - 9:45 AM, S330 C &lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;Developing software doesn’t begin and end with writing code. Tools are incredibly important in the life cycle of applications, especially when it comes to debugging and improving performance. This is never more true than when writing parallel applications, as concurrency introduces a whole host of issues that can be very difficult to find and fix. In this talk, we explore difficulties with debugging and profiling concurrent applications, and we dive into powerful new tools being introduced in Visual Studio to improve their development.&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;&lt;EM&gt;TLA327&lt;/EM&gt; &lt;BR&gt;&lt;STRONG&gt;Parallelize Your Microsoft Visual C++ Applications with the Concurrency Runtime &lt;BR&gt;&lt;/STRONG&gt;Friday, June 6 8:30 AM - 9:45 AM, S310 A &lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;Introducing concurrency into native Visual C++ applications has long been the domain of true experts and gurus. Yet, as the hardware industry shifts toward multi-core and manycore processors, all developers will need to be able to write robust and scalable parallel applications. As part of its work on Visual C++ and Visual Studio, the Parallel Computing Platform team is building a key set of technologies that will enable the development of such applications. In this talk, we explore libraries for expressing concurrency, a set of messaging APIs that allow developers to consistently build parallel applications that are robust and resilient, and a shared user-mode runtime for scheduling and for coordinating system resources. Come learn about these exciting new technologies that will help bring concurrency to the masses.&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;Heading to the &lt;A class="" href="http://technet.microsoft.com/en-us/events/teched/default.aspx" mce_href="http://technet.microsoft.com/en-us/events/teched/default.aspx"&gt;IT Professional conference&lt;/A&gt;?&amp;nbsp; No problem: we're presenting there, too!&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;APP253&lt;/EM&gt; &lt;BR&gt;&lt;STRONG&gt;The Manycore Shift: Bringing Concurrency to the Masses&lt;/STRONG&gt; &lt;BR&gt;Tuesday, June 10 3:00 PM - 4:15 PM, N220 A &lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;Recent advances in microelectronic technology and the advent of multi-core and manycore processors are a signal that a large industry change is on the horizon. The computational power of manycore processors, new programming models and platforms, and advanced research in usability promises to change the way people interact with computers. As a result, software is headed for a fundamental change. Over the last 30 years, developers have relied on exponential growth in computing power in order to write applications that run fast. However, whereas the average PC clock speed increased more than 10x between 1993 and 1999, the average processor speed in the last four years hasn’t even doubled. Instead, the hardware industry is shifting to multi-core and manycore processors. The average PC on the market today is a dual-core. Next year, expect the average to be quad-core. Two years after that, eight-core. Unfortunately, most software today will not take advantage of multiple processors. The key to high-performance applications in the future is parallelism, and IT professionals need to be intimately aware of this coming shift so that the applications and scripts they develop can fully utilize all available processing power. In this session, we explore the need for concurrency as well as what Microsoft is doing through its programming languages, libraries, runtimes, and tools to help developers and IT professionals leverage parallelism in their code. &lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;We're looking forward to seeing you there!&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8557291" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/pfxteam/archive/tags/Parallel+Extensions/default.aspx">Parallel Extensions</category><category domain="http://blogs.msdn.com/pfxteam/archive/tags/Talks/default.aspx">Talks</category><category domain="http://blogs.msdn.com/pfxteam/archive/tags/C_2B002B00_/default.aspx">C++</category><category domain="http://blogs.msdn.com/pfxteam/archive/tags/Tools/default.aspx">Tools</category></item></channel></rss>