<?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 - Visualizing Concurrency: VS 2010 Beta 2 - Parallel Performance Profiling Advancements</title>
	<atom:link rel="self" type="application/rss+xml" href="http://channel9.msdn.com/Shows/Going+Deep/Visualizing-Concurrency-Inside-the-Concurrency-Visualizer-Profiling-Tool/RSS"></atom:link>
	<image>
		<url>http://ecn.channel9.msdn.com/o9/previewImages/100/497082_100x75.jpg</url>
		<title>Channel 9 - Visualizing Concurrency: VS 2010 Beta 2 - Parallel Performance Profiling Advancements</title>
		<link></link>
	</image>
	<description>
In Visual Studio 2010 Beta 1, you were introduced to new analysis and profiling&amp;nbsp;capabilities (Parallel Profiling and Performance Tools) designed to make concurrency understandable and, ultimately, debuggable. Today, with the release of

Visual Studio 2010 Beta 2,&amp;nbsp;we introduce an&amp;nbsp;updated and significantly more capable concurrency visualization and&amp;nbsp;profiling tool&amp;nbsp;which is available with other profiling features in Visual Studio 2010 Premium and Ultimate. What does it do, exactly? How does
 it work?What&#39;s new?Here, Architect Hazim Shafi, Dev Lead Sasha Dadiomov and PM Bill Colburn tell us all about the Concurrency Visualizer Profiling Tool, including a demo. So, fire up Beta 2, spin up some threads and visualize concurrency. You should profile an already-existing
 application that employs concurrency and, perhaps for the first time, get to see what your concurrent code is
actually doing at run time. 
Parallel visualization tools&amp;nbsp;team blog: 
http://blogs.msdn.com/visualizeparallel/The parallel computing dev center: 
http://msdn.microsoft.com/en-us/concurrency/default.aspx  
&amp;nbsp;Hazim&#39;s blog: 
http://blogs.msdn.com/hshafi/default.aspx 
</description>
	<link></link>
	<language>en</language>
	<pubDate>Sun, 19 May 2013 21:53:21 GMT</pubDate>
	<lastBuildDate>Sun, 19 May 2013 21:53:21 GMT</lastBuildDate>
	<generator>Rev9</generator>
	<item>
		<title>Re: Visualizing Concurrency: VS 2010 Beta 2 - Parallel Performance Profiling Advancements</title>
		<description>
			<![CDATA[
<p>Witch edition do I need to get access to this?</p>
<p>posted by ianringrose</p>]]>
		</description>
		<link>http://channel9.msdn.com/Shows/Going+Deep/Visualizing-Concurrency-Inside-the-Concurrency-Visualizer-Profiling-Tool#c633915864570000000</link>
		<pubDate>Mon, 19 Oct 2009 22:00:57 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Shows/Going+Deep/Visualizing-Concurrency-Inside-the-Concurrency-Visualizer-Profiling-Tool#c633915864570000000</guid>
		<dc:creator>ianringrose</dc:creator>
	</item>
	<item>
		<title>Re: Visualizing Concurrency: VS 2010 Beta 2 - Parallel Performance Profiling Advancements</title>
		<description>
			<![CDATA[
<p>This is available in Premium and up.</p>
<p>C</p>
<p>posted by Charles</p>]]>
		</description>
		<link>http://channel9.msdn.com/Shows/Going+Deep/Visualizing-Concurrency-Inside-the-Concurrency-Visualizer-Profiling-Tool#c633915888550000000</link>
		<pubDate>Mon, 19 Oct 2009 22:40:55 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Shows/Going+Deep/Visualizing-Concurrency-Inside-the-Concurrency-Visualizer-Profiling-Tool#c633915888550000000</guid>
		<dc:creator>Charles</dc:creator>
	</item>
	<item>
		<title>Re: Visualizing Concurrency: VS 2010 Beta 2 - Parallel Performance Profiling Advancements</title>
		<description>
			<![CDATA[
<p>What's &quot;Premium?&quot; Is that the equivalent of VS 2008 Pro?</p>
<p>posted by zian</p>]]>
		</description>
		<link>http://channel9.msdn.com/Shows/Going+Deep/Visualizing-Concurrency-Inside-the-Concurrency-Visualizer-Profiling-Tool#c633915993020000000</link>
		<pubDate>Tue, 20 Oct 2009 01:35:02 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Shows/Going+Deep/Visualizing-Concurrency-Inside-the-Concurrency-Visualizer-Profiling-Tool#c633915993020000000</guid>
		<dc:creator>zian</dc:creator>
	</item>
	<item>
		<title>Re: Visualizing Concurrency: VS 2010 Beta 2 - Parallel Performance Profiling Advancements</title>
		<description>
			<![CDATA[
<p>Zian,</p>
<p>&nbsp;</p>
<p>See <a href="http://www.microsoft.com/visualstudio/en-us/products/2010/default.mspx#compare">
http://www.microsoft.com/visualstudio/en-us/products/2010/default.mspx#compare</a></p>
<p>posted by Dewey2009</p>]]>
		</description>
		<link>http://channel9.msdn.com/Shows/Going+Deep/Visualizing-Concurrency-Inside-the-Concurrency-Visualizer-Profiling-Tool#c633916055520000000</link>
		<pubDate>Tue, 20 Oct 2009 03:19:12 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Shows/Going+Deep/Visualizing-Concurrency-Inside-the-Concurrency-Visualizer-Profiling-Tool#c633916055520000000</guid>
		<dc:creator>Dewey2009</dc:creator>
	</item>
	<item>
		<title>Re: Visualizing Concurrency: VS 2010 Beta 2 - Parallel Performance Profiling Advancements</title>
		<description>
			<![CDATA[
<p>What version of Windows does this feature require?</p>
<p>&nbsp;</p>
<p>On my&nbsp;Server 2003 R2, it says &quot;Requires infrastructure not available on this version of Windows&quot; <img src='http://ecn.channel9.msdn.com/o9/content/images/emoticons/emotion-6.gif' alt='Sad' /></p>
<p>posted by dwn</p>]]>
		</description>
		<link>http://channel9.msdn.com/Shows/Going+Deep/Visualizing-Concurrency-Inside-the-Concurrency-Visualizer-Profiling-Tool#c633916676560000000</link>
		<pubDate>Tue, 20 Oct 2009 20:34:16 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Shows/Going+Deep/Visualizing-Concurrency-Inside-the-Concurrency-Visualizer-Profiling-Tool#c633916676560000000</guid>
		<dc:creator>dwn</dc:creator>
	</item>
	<item>
		<title>Re: Visualizing Concurrency: VS 2010 Beta 2 - Parallel Performance Profiling Advancements</title>
		<description>
			<![CDATA[
<p>Looks like you need a 6&#43; kernel... <a href="http://blogs.msdn.com/hshafi/archive/2009/10/17/vs2010-beta-2-parallel-performance-tool-improvements.aspx#comments">
http://blogs.msdn.com/hshafi/archive/2009/10/17/vs2010-beta-2-parallel-performance-tool-improvements.aspx#comments</a></p>
<p>posted by dwn</p>]]>
		</description>
		<link>http://channel9.msdn.com/Shows/Going+Deep/Visualizing-Concurrency-Inside-the-Concurrency-Visualizer-Profiling-Tool#c633916697470000000</link>
		<pubDate>Tue, 20 Oct 2009 21:09:07 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Shows/Going+Deep/Visualizing-Concurrency-Inside-the-Concurrency-Visualizer-Profiling-Tool#c633916697470000000</guid>
		<dc:creator>dwn</dc:creator>
	</item>
	<item>
		<title>Re: Visualizing Concurrency: VS 2010 Beta 2 - Parallel Performance Profiling Advancements</title>
		<description>
			<![CDATA[
<p>Hi, sorry, but this is the least informative webcast I've seen on &quot;going deep&quot; so far, and I watched quite a few. And it's really surprising since you have 3 developers in the room with the camera and they keep talking marketing...&nbsp;</p>
<p>&nbsp;</p>
<p>First off, all this functionality existed for years in Intel Thread Profiler for native applications. Additionally Thread Profiler is displaying transitions (transition from thread1 to thread2 is when thread1 leaves a critical section and thread2 acquires
 access to it by acquiring the synchronization primitive). From what I understood VS 2010 shows you that the thread was idle/waiting on a sync primitive, but it does not show you which thread needed to release the mutex, so the current one can advance. Another
 feature, or whole analysis engine is a Critical Path analysis. Which, as I understood it, is also missing from VS 2010 profiler.</p>
<p>&nbsp;</p>
<p>From the &quot;going deep&quot; host I was expecting questions like:</p>
<p>&nbsp;</p>
<ul>
<li>how large is the sampling, instrumentation and tracing overhead? Are there cases, where it skews up application behavior and how would you fix that?
</li><li>Why sample on context switches only? Why not use time-based sampling and sample say, every 10 ms? Time quanta for the thread is quite large ~20ms and from what I understood the callstack is only collected on each context switch event. So really the tool
 does not tell you what was going on _inside_ the quanta, when the thread was really working. BTW what if a thread is doing some CPU intensive work and there's no over-subscription. Thread Scheduler will keep this thread running for as long as it can without
 any context switches and therefore no callstacks. </li><li>Is there support for new and cool threading features of VS 2010 &nbsp;- Asynchronous Agents, task-based parallelism with PPL and TPL? And why not?&nbsp; <img src='http://ecn.channel9.msdn.com/o9/content/images/emoticons/emotion-5.gif' alt='Wink' />
</li><li>And the little things like: why do I need to scroll down for active legend, if it's so informative, important and interactive? if you know that everyone will want to look at the graphical timeline after data collection, why that checkbox is not &quot;on&quot; by
 default? and so on... </li></ul>
<p>Story about helping codec people was a lot of fun! I might be missing something, but it sounded like codec developers could not just figure out to actually time their &quot;encode&quot; and &quot;decode&quot; functions running on a stream/image loaded in memory, then take the
 inverse and guess the only reasonable explanation for the difference between 90 and 24 FPS. But rather decided to substitute thinking with a GUI tool. Cool <img src='http://ecn.channel9.msdn.com/o9/content/images/emoticons/emotion-1.gif' alt='Smiley' /></p>
<p>&nbsp;</p>
<p>posted by apegushi</p>]]>
		</description>
		<link>http://channel9.msdn.com/Shows/Going+Deep/Visualizing-Concurrency-Inside-the-Concurrency-Visualizer-Profiling-Tool#c634064020640000000</link>
		<pubDate>Fri, 09 Apr 2010 09:27:44 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Shows/Going+Deep/Visualizing-Concurrency-Inside-the-Concurrency-Visualizer-Profiling-Tool#c634064020640000000</guid>
		<dc:creator>apegushi</dc:creator>
	</item>
	<item>
		<title>Re: Visualizing Concurrency: VS 2010 Beta 2 - Parallel Performance Profiling Advancements</title>
		<description>
			<![CDATA[
<p>Wow. Thanks for the detailed feedback. <img src='http://ecn.channel9.msdn.com/o9/content/images/emoticons/emotion-1.gif' alt='Smiley' /> This was an <em>introductory</em> piece, to be fair.<br />C</p>
<p>posted by Charles</p>]]>
		</description>
		<link>http://channel9.msdn.com/Shows/Going+Deep/Visualizing-Concurrency-Inside-the-Concurrency-Visualizer-Profiling-Tool#c634064337940000000</link>
		<pubDate>Fri, 09 Apr 2010 18:16:34 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Shows/Going+Deep/Visualizing-Concurrency-Inside-the-Concurrency-Visualizer-Profiling-Tool#c634064337940000000</guid>
		<dc:creator>Charles</dc:creator>
	</item>
	<item>
		<title>Re: Visualizing Concurrency: VS 2010 Beta 2 - Parallel Performance Profiling Advancements</title>
		<description>
			<![CDATA[
<p>Great! Looking forward to hearing more about the Profiler, it really did look like a good starting point. I do realize that half of my questions can be answered with &quot;well, this is the ETW limitation/purpose&quot;, but still I was wondering if there's a plan
 to implement EBS or TBS to provide answers to some more complex questions that arise during performance analysis. Support for TPL and PPL is something I'd very much like to see implemented.</p>
<p>posted by apegushi</p>]]>
		</description>
		<link>http://channel9.msdn.com/Shows/Going+Deep/Visualizing-Concurrency-Inside-the-Concurrency-Visualizer-Profiling-Tool#c634064370030000000</link>
		<pubDate>Fri, 09 Apr 2010 19:10:03 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Shows/Going+Deep/Visualizing-Concurrency-Inside-the-Concurrency-Visualizer-Profiling-Tool#c634064370030000000</guid>
		<dc:creator>apegushi</dc:creator>
	</item>
	<item>
		<title>Re: Visualizing Concurrency: VS 2010 Beta 2 - Parallel Performance Profiling Advancements</title>
		<description>
			<![CDATA[
<p>First, let me say that I will follow up with a more detailed walkthrough of the product asap, so keep an&nbsp;eye out for it.&nbsp; Let me address some of your questions:</p>
<p>&nbsp;</p>
<p>1. Profiling Overhead:&nbsp; This is of course application dependent and also platform dependent.&nbsp; For CPU-intensive phases of your application the overhead is negligible.&nbsp; Because tracing involves I/O, it can interfere with your I/O intensive applications. On
 some platforms, collecting callstacks is more expensive (e.g., x64 vs. x86).&nbsp; That's due to the calling conventions that are being used and the information necessary to walk the stack.&nbsp; I don't know of any profiling tool with zero impact, but this has thus
 far not been a source of feedback from customers.&nbsp; Do you have data to the contrary?</p>
<p>&nbsp;</p>
<p>2. We actually sample on both context switches and at regular time intervals (1ms).&nbsp; So, we provide you with data about why threads blocked and where as well as data about what threads are doing when they're executing.&nbsp; You can get at the sample profile
 data by clicking on the &quot;Execution&quot; legend entry or by clicking on the execution segments in the time line.&nbsp; When you do the latter, we show you the sample callstack and give you a visual hint to where that sample was taken.&nbsp; Does this help?</p>
<p>&nbsp;</p>
<p>3. We do have some support for PLINQ, TPL, and PPL.&nbsp; We show markers for PLINQ queries and some PPL and TPL parallel constructs that allow users to identify the region when they are executing so you can focus your tuning on them.&nbsp; Try it out!&nbsp; For PPL, you
 have to opt into this feature by calling the Concurrency::EnableTracing()/DisableTracing() methods.</p>
<p>&nbsp;</p>
<p>4. I had a hard time parsing your comment about the active legend and the checkbox.&nbsp; Can you elaborate more?&nbsp; If this is a usability related question, I am very well aware of some of the warts in the product.&nbsp; We spent a huge amount of time improving the
 tool from that perspective.&nbsp; Look at our CTP, Beta 1, and Beta 2 bits and you'll agree that we've come a long way.&nbsp; We've also made significant investments in usability studies and worked with designers.&nbsp; We've learned a lot during this process and hope that
 we can avoid some of the pitfalls in future releases.</p>
<p>&nbsp;</p>
<p>For more information about the tool, please visit my blog at <a href="http://blogs.msdn.com/hshafi">
http://blogs.msdn.com/hshafi</a>.&nbsp; You might find some useful information there.&nbsp; I also have a detailed article in MSDN magazine at
<a href="http://msdn.microsoft.com/en-us/magazine/ee336027.aspx">http://msdn.microsoft.com/en-us/magazine/ee336027.aspx</a>.</p>
<p>&nbsp;</p>
<p>Finally, Intel's Thread Profiler is very different from our tool in both methodology and diagnostic information provided in addition to our tool being&nbsp;fully integrated with the development experience.&nbsp; I don't want to get into a competitive analysis here,
 so choose what you find useful&nbsp;for your needs.</p>
<p>&nbsp;</p>
<p>Cheers,</p>
<p>&nbsp;</p>
<p>-Hazim</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>posted by hshafi</p>]]>
		</description>
		<link>http://channel9.msdn.com/Shows/Going+Deep/Visualizing-Concurrency-Inside-the-Concurrency-Visualizer-Profiling-Tool#c634064399060000000</link>
		<pubDate>Fri, 09 Apr 2010 19:58:26 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Shows/Going+Deep/Visualizing-Concurrency-Inside-the-Concurrency-Visualizer-Profiling-Tool#c634064399060000000</guid>
		<dc:creator>hshafi</dc:creator>
	</item>
	<item>
		<title>Re: Visualizing Concurrency: VS 2010 Beta 2 - Parallel Performance Profiling Advancements</title>
		<description>
			<![CDATA[
<p>Hi, thanks so much for all the info and especially the link to the paper on MSDN, this is exactly the level of details I was looking for. Had a couple of follow up questions after I read it.</p>
<p></p>
<ul>
<li>About transitions (lines that connect the blocking segment with an execution segment on another thread) in the paper you say &quot;When this visualization is visible, it illustrates ...&quot;. I was wondering why would it not be visible? Did you refer to the cases
 of uncontended critical section or is there more to it? </li><li>Regarding PPL support. In case of nested parallel_for-s or in case of two master threads start two parallel_for algorithms in parallel would it be possible to recognize on the timeline which thread is executing which parallel_for exactly? Or would I only
 see markers from one parallel_for, or inner-most parallel_for-s? </li><li>Sorry, my comment about a checkbox was on usability and it refers to the bottom checkbox on Page 1 of 3 of the Performance Wizard (Figure 8 in your paper). In the demo you showed it was not &quot;on&quot; by default and I was wondering why would one run the Concurrency
 analysis from the VS 2010 GUI if not to see the visualized timeline. </li></ul>
<div>Anyway, the Profiler really looks like a great Tool, I'm definitely giving it a try!</div>
<p></p>
<p>&nbsp;</p>
<p>posted by apegushi</p>]]>
		</description>
		<link>http://channel9.msdn.com/Shows/Going+Deep/Visualizing-Concurrency-Inside-the-Concurrency-Visualizer-Profiling-Tool#c634066162820000000</link>
		<pubDate>Sun, 11 Apr 2010 20:58:02 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Shows/Going+Deep/Visualizing-Concurrency-Inside-the-Concurrency-Visualizer-Profiling-Tool#c634066162820000000</guid>
		<dc:creator>apegushi</dc:creator>
	</item>
	<item>
		<title>Re: Visualizing Concurrency: VS 2010 Beta 2 - Parallel Performance Profiling Advancements</title>
		<description>
			<![CDATA[
<p>Hi apegushi,</p>
<p>&nbsp;</p>
<ul>
<li>&quot;Thread transitions&quot; are depicted&nbsp;via the <a href="http://msdn.microsoft.com/en-us/library/ee329540(v=VS.100).aspx">
Thread Ready Connector</a>.&nbsp; This is only shown when an unblocking event occured on another thread in same process, which is why it isn't always visible.
</li><li>For PPL support, the Concurrency Visualizer does not depict nesting, nor does it depict which threads were involved in a parallel for loop.&nbsp; However, markers will be shown for all parallel loop iterations.
</li><li>Regarding the check boxes in the performance wizard, the reason the lower check box isn't on by default is because there is another profiling tool related to concurrency.&nbsp; In addition to the Concurrency Visualizer data, the Visual Studio profiler presents
 contention data, which can be viewed after checking the first box. </li></ul>
<p>Thanks for your feedback; we always appreciate it!</p>
<p>&nbsp;</p>
<p>-James</p>
<p>posted by James Rapp</p>]]>
		</description>
		<link>http://channel9.msdn.com/Shows/Going+Deep/Visualizing-Concurrency-Inside-the-Concurrency-Visualizer-Profiling-Tool#c634079026180000000</link>
		<pubDate>Mon, 26 Apr 2010 18:16:58 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Shows/Going+Deep/Visualizing-Concurrency-Inside-the-Concurrency-Visualizer-Profiling-Tool#c634079026180000000</guid>
		<dc:creator>James Rapp</dc:creator>
	</item>
</channel>
</rss>