<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Intel Software Network Blogs</title>
	
	<link>http://software.intel.com/en-us/blogs</link>
	<description />
	<pubDate>Fri, 06 Nov 2009 23:30:30 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6.5</generator>
	<language>en</language>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/IntelSoftwareNetworkBlog" type="application/rss+xml" /><feedburner:emailServiceId>IntelSoftwareNetworkBlog</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><item>
		<title>Technology in 3D</title>
		<link>http://feedproxy.google.com/~r/IntelSoftwareNetworkBlog/~3/I35fTq99zfI/</link>
		<comments>http://software.intel.com/en-us/blogs/2009/11/06/technology-in-3d/#comments</comments>
		<pubDate>Fri, 06 Nov 2009 23:28:44 +0000</pubDate>
		<dc:creator>Rick Puckett (Intel)</dc:creator>
		
		<category><![CDATA[Intel SW Partner Program]]></category>

		<guid isPermaLink="false">http://software.intel.com/en-us/blogs/2009/11/06/technology-in-3d/</guid>
		<description><![CDATA[Is a 3D interface right for your application? Check out the new Gartner report on 3D interfaces. See it here
Enroll in Intel Software Partner Program today and learn how the program can help you deliver innovative solutions to meet your users' demands. Learn More
]]></description>
			<content:encoded><![CDATA[<p>Is a 3D interface right for your application? Check out the new Gartner report on 3D interfaces. <a href="https://secure-swpartner.intel.com/login/login.aspx?TARGET=http://swpartner.intel.com/partner/Benefits/BenefitDetails.aspx?BenefitID=88&amp;Lang=ENG&amp;cid=ISPP:116US106ENG1508&amp;utm_source=ispp-blog&amp;utm_medium=blogs&amp;utm_content=interacting-3d&amp;utm_campaign=social-media">See it here</a></p>
<p>Enroll in Intel Software Partner Program today and learn how the program can help you deliver innovative solutions to meet your users' demands. <a href="http://www3.intel.com/cd/software/partner/asmo-na/eng/index.htm?cid=ISPP:106US104ENG1367&amp;utm_source=ispp-blog&amp;utm_medium=blogs&amp;utm_content=footer&amp;utm_campaign=social-media">Learn More</a></p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/IntelSoftwareNetworkBlog?a=I35fTq99zfI:ef567RBfZ2s:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/IntelSoftwareNetworkBlog?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/IntelSoftwareNetworkBlog?a=I35fTq99zfI:ef567RBfZ2s:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/IntelSoftwareNetworkBlog?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/IntelSoftwareNetworkBlog?a=I35fTq99zfI:ef567RBfZ2s:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/IntelSoftwareNetworkBlog?i=I35fTq99zfI:ef567RBfZ2s:V_sGLiPBpWU" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/IntelSoftwareNetworkBlog/~4/I35fTq99zfI" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://software.intel.com/en-us/blogs/2009/11/06/technology-in-3d/feed/</wfw:commentRss>
		<feedburner:origLink>http://software.intel.com/en-us/blogs/2009/11/06/technology-in-3d/</feedburner:origLink></item>
		<item>
		<title>From the Labs - 3D scanning with a camera</title>
		<link>http://feedproxy.google.com/~r/IntelSoftwareNetworkBlog/~3/WtpCIkx_N1s/</link>
		<comments>http://software.intel.com/en-us/blogs/2009/11/06/from-the-labs-3d-scanning-with-a-camera/#comments</comments>
		<pubDate>Fri, 06 Nov 2009 22:19:07 +0000</pubDate>
		<dc:creator>Sean Koehl (Intel)</dc:creator>
		
		<category><![CDATA[Art, Music, &amp; Animation]]></category>

		<category><![CDATA[Visual Computing]]></category>

		<category><![CDATA[3d]]></category>

		<category><![CDATA[Photography]]></category>

		<category><![CDATA[research]]></category>

		<guid isPermaLink="false">http://software.intel.com/en-us/blogs/2009/11/06/from-the-labs-3d-scanning-with-a-camera/</guid>
		<description><![CDATA[Hi -- I'm joining the ISN blog community to share some research efforts from Intel labs that may be of interest to curious software developers. Today I wanted to give a brief summary of one visual computing application that we are investigating in a project we usually call "3D content creation for amateurs."
In this project [...]]]></description>
			<content:encoded><![CDATA[<p>Hi -- I'm joining the ISN blog community to share some research efforts from Intel labs that may be of interest to curious software developers. Today I wanted to give a brief summary of one visual computing application that we are investigating in a project we usually call "<a href="http://techresearch.intel.com/articles/Tera-Scale/1821.htm">3D content creation for amateurs."</a></p>
<p>In this project we are researching an increasingly popular trend -- stitching photos from standard digital cameras into 3D models. There is a lot of interesting work going on in this area. One you may have heard about is Microsoft's <a href="http://photosynth.net/">Photosynth</a>, which is capable of searching the whole internet to find different people's photos of, say, the Roman Coliseum, and create a 3D model of it. Recent advances in computer visions algorithms to register and align 2D photos into a 3D space combined have made this possible, and more and more companies are creating tools based on this concept.</p>
<p>Our researchers at Intel Labs China are working to further advance this field. Why is Intel doing this? Two reasons, primarily. First, we need to understand emerging software algorithms in order to tune and adapt future Intel architectures to run them more efficiently and in a way that can be readily programmed. Second, because this lab is a center of expertise in computer vision research, and they have some ideas on how to make these algorithms run faster and with better visual results. <a href="http://software.intel.com/en-us/videos/using-pictures-to-create-real-world-3d-models/">Here's a demo</a> of the work.</p>
<p>Why do we think this is an important capability? For one, in the labs we see the increasing popularity of online games like World of Warcraft and virtual worlds such as Second Life as the foreshadowing of a transition to a full 3D Internet. However, many barriers remain to making these experiences as appealing as, say, YouTube is today -- they need better graphics, more natural interfaces, and ways for people to create user-generated 3D content with the same facility that blogs are written and videos are edited.</p>
<p>Photo-based 3D content creation tools such as the one from Intel Labs China are one way to simplify content creation. Just snap some photos from different angles and you will be able to scan a real world object to put it into the real world. There are still some hurdles to overcome, such as reducing the polygon count (if you view the <a href="http://software.intel.com/en-us/blogs/?p=11654&amp;preview=true">video</a> you'll see the result is a very detailed mesh), animating the model, and neutralizing the real-world lighting present in the source photos. However, these appear to be tractable problems and a lot of institutions are working on them.</p>
<p>The result will be that, just as almost anyone can be a video editor today, almost anyone could become a 3D designer/animator in the future, using real world objects as a starting point and morphing them into cool avatars or simply pieces of 3D art. These tools are already becoming available for professional animators -- as they advance they will give these artists a new way of creating interesting, realistic visuals.</p>
<p>This is only one of the cool things happening in Intel Labs. I’ll blog about them regularly to share more new developments and how we think they could help to shape the future.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/IntelSoftwareNetworkBlog?a=WtpCIkx_N1s:LVuJNYZUmQA:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/IntelSoftwareNetworkBlog?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/IntelSoftwareNetworkBlog?a=WtpCIkx_N1s:LVuJNYZUmQA:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/IntelSoftwareNetworkBlog?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/IntelSoftwareNetworkBlog?a=WtpCIkx_N1s:LVuJNYZUmQA:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/IntelSoftwareNetworkBlog?i=WtpCIkx_N1s:LVuJNYZUmQA:V_sGLiPBpWU" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/IntelSoftwareNetworkBlog/~4/WtpCIkx_N1s" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://software.intel.com/en-us/blogs/2009/11/06/from-the-labs-3d-scanning-with-a-camera/feed/</wfw:commentRss>
		<feedburner:origLink>http://software.intel.com/en-us/blogs/2009/11/06/from-the-labs-3d-scanning-with-a-camera/</feedburner:origLink></item>
		<item>
		<title>TechEd09: How parallel is the Microsoft conference?</title>
		<link>http://feedproxy.google.com/~r/IntelSoftwareNetworkBlog/~3/Xj4tTXAZvS4/</link>
		<comments>http://software.intel.com/en-us/blogs/2009/11/06/teched09-how-parallel-is-the-microsoft-conference/#comments</comments>
		<pubDate>Fri, 06 Nov 2009 12:26:14 +0000</pubDate>
		<dc:creator>Michael J Huelskoetter</dc:creator>
		
		<category><![CDATA[Events]]></category>

		<category><![CDATA[Add new tag]]></category>

		<category><![CDATA[teched09]]></category>

		<guid isPermaLink="false">http://software.intel.com/en-us/blogs/2009/11/06/teched09-how-parallel-is-the-microsoft-conference/</guid>
		<description><![CDATA[If you look at the Microsoft's Tech-Ed web page you'll find out that there's a lot of things which are parallel. For instance all the different tech session run in parallel so that as much as possible topics can be covered during Tech-Ed. But also the huge showcase is somehow parallel: there are many companies [...]]]></description>
			<content:encoded><![CDATA[<p>If you look at the <a href="http://www.msteched.com/europe/Public/default.aspx" target="_blank">Microsoft's Tech-Ed web page</a> you'll find out that there's a lot of things which are parallel. For instance all the different tech session run in parallel so that as much as possible topics can be covered during Tech-Ed. But also the huge showcase is somehow parallel: there are many companies like Intel and others on the floor showing their latest and greatest technologies and solutions at the same time.</p>
<p>But, and that's what I found really interesting are the tech sessions which cover different topics being related to the parallel programming. There are dedicated sessions regarding this:</p>
<p>On Monday Tiberiu Covaci will talk about "Is the future of programming a parallel one?" He will find out which chip manufacturer drive the multicore market.</p>
<p>On Tuesday Tiberiu will have another session with the title "Why should you care about Multi-core programming". If you are familiar with all our blog posts I'm sure you can tell the answer right away!</p>
<p>Tiberiu is really a busy guy as on Wednesday he will climb the stage again and present "The Future of Parallel Programming". I'm sure this man is worth getting him interviewed after one of his sessions (or beforehand).</p>
<p>Thank god there are other presenters who are familiar with the parallel stuff. Like Anthony Howcroft who will talk on Wednesday about "Microsoft SQL Server Project Code Name "Madison". Madison is MPP which stands for Massively Parallel Processing. Got it?!</p>
<p>On Wednesday our dear old friend <a href="http://www.youtube.com/watch?v=LCO9m8eAv6A" target="_blank">Steve</a> has his session with the title "Parallel Computing for Managed Developers". This sounds like real fun.</p>
<p>So, if you wanna learn more about parallel computing at <a href="http://www.msteched.com/europe/Public/default.aspx">Microsoft Tech-Ed Europe 2009</a> you should go to Berlin next week - or watch this space for more parallel information yet to come!</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/IntelSoftwareNetworkBlog?a=Xj4tTXAZvS4:rO9hc1w1ukk:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/IntelSoftwareNetworkBlog?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/IntelSoftwareNetworkBlog?a=Xj4tTXAZvS4:rO9hc1w1ukk:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/IntelSoftwareNetworkBlog?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/IntelSoftwareNetworkBlog?a=Xj4tTXAZvS4:rO9hc1w1ukk:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/IntelSoftwareNetworkBlog?i=Xj4tTXAZvS4:rO9hc1w1ukk:V_sGLiPBpWU" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/IntelSoftwareNetworkBlog/~4/Xj4tTXAZvS4" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://software.intel.com/en-us/blogs/2009/11/06/teched09-how-parallel-is-the-microsoft-conference/feed/</wfw:commentRss>
		<feedburner:origLink>http://software.intel.com/en-us/blogs/2009/11/06/teched09-how-parallel-is-the-microsoft-conference/</feedburner:origLink></item>
		<item>
		<title>Living in a connected world and managing change</title>
		<link>http://feedproxy.google.com/~r/IntelSoftwareNetworkBlog/~3/Gx9ZkxaZTxQ/</link>
		<comments>http://software.intel.com/en-us/blogs/2009/11/05/living-in-a-connected-world-and-managing-change/#comments</comments>
		<pubDate>Fri, 06 Nov 2009 07:33:24 +0000</pubDate>
		<dc:creator>Dale Taylor (Intel)</dc:creator>
		
		<category><![CDATA[Cool Software]]></category>

		<category><![CDATA[Intel® Atom™ Developer Program]]></category>

		<category><![CDATA[Mobility]]></category>

		<category><![CDATA[Social Media &amp; Virtual Worlds]]></category>

		<category><![CDATA[change]]></category>

		<category><![CDATA[Relationships]]></category>

		<category><![CDATA[Social Networking]]></category>

		<guid isPermaLink="false">http://software.intel.com/en-us/blogs/2009/11/05/living-in-a-connected-world-and-managing-change/</guid>
		<description><![CDATA[Divorce, it happens.  How do you manage divorce with Facebook and so many other connections in life?  What if you keep finding out things you would rather not know via social networking sites?  A simple example, my ex and her family are visible to me through our common children on Facebook.  Honestly I would rather [...]]]></description>
			<content:encoded><![CDATA[<p class="MsoNormal" style="0in 0in 0pt;"><span style="small;">Divorce, it happens.<span style="yes;">  </span>How do you manage divorce with Facebook and so many other connections in life?<span style="yes;">  </span>What if you keep finding out things you would rather not know via social networking sites?<span style="yes;">  </span>A simple example, my ex and her family are visible to me through our common children on Facebook.<span style="yes;">  </span>Honestly I would rather not know or see about anything to do with her and her family, yet I am confronted with it.<span style="yes;">  </span>I want to see what my children have to say, what they are thinking, doing etc but somehow block anything related to or linked to select others.<span style="yes;">  </span>FaceBook needs to address this because life just isn’t that simple and we need a way to manage our connections better.</span></p>
<p class="MsoNormal" style="0in 0in 0pt;"><span style="small;">Years ago I worked on a product called InfoCentral.<span style="yes;">  </span>It was a wonderful database that gave as much power to the connections as the objects the connections were between.<span style="yes;">  </span>You could manage your connections, including possibly multiple connections of different types between objects.<span style="yes;">  </span>It gave you the ability to realistically map life’s complex realities into a software metaphor.<span style="yes;">  </span>I really enjoyed that program and have been unable to find anything even close to its power in the years since.<span style="yes;">  </span>Hopefully something like that can evolve from the successful roots of Facebook.</span></p>
<p class="MsoNormal" style="0in 0in 0pt;"><span style="small;">Currently there’s a way to avoid seeing news from specific people posted to your main page, but even that nice start needs to be improved.<span style="yes;">  </span>Here are a couple of suggestions that would really help in connection management.</span></p>
<p class="MsoNormal" style="0in 0in 0pt;"><span style="Times New Roman;"><span style="Ignore;"><span style="small;">1.</span><span style="7pt &quot;Times New Roman&quot;;">      </span></span><span style="small;">Be able to prioritize, perhaps with as few as 3 levels you could group people into for news you would rather see first… priority level A, B and C.</span></span></p>
<p class="MsoNormal" style="l0 level1 lfo1;"><span style="Times New Roman;"><span style="Ignore;"><span style="small;">2.</span><span style="7pt &quot;Times New Roman&quot;;">      </span></span><span style="small;">Be able to block anything having to do with, showing or related to specific individuals (without them knowing)</span></span></p>
<p class="MsoNormal" style="l0 level1 lfo1;"><span style="Times New Roman;"><span style="Ignore;"><span style="small;">3.</span><span style="7pt &quot;Times New Roman&quot;;">      </span></span><span style="small;">Be able to “drop” someone from your relationships and yet have them continue to think its still there.<span style="yes;">  </span>A stealth mode.<span style="yes;">  </span>Someone you don’t want to offend but perhaps this relative posts updates a little too frequently for your tastes.</span></span></p>
<p class="MsoNormal" style="l0 level1 lfo1;"><span style="Times New Roman;"></span><span style="small;">Small changes add up to big differences in what you see and experience when using social networking software.</span></p>
<p class="MsoNormal" style="l0 level1 lfo1;"> </p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/IntelSoftwareNetworkBlog?a=Gx9ZkxaZTxQ:_SMhD9qHdAs:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/IntelSoftwareNetworkBlog?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/IntelSoftwareNetworkBlog?a=Gx9ZkxaZTxQ:_SMhD9qHdAs:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/IntelSoftwareNetworkBlog?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/IntelSoftwareNetworkBlog?a=Gx9ZkxaZTxQ:_SMhD9qHdAs:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/IntelSoftwareNetworkBlog?i=Gx9ZkxaZTxQ:_SMhD9qHdAs:V_sGLiPBpWU" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/IntelSoftwareNetworkBlog/~4/Gx9ZkxaZTxQ" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://software.intel.com/en-us/blogs/2009/11/05/living-in-a-connected-world-and-managing-change/feed/</wfw:commentRss>
		<feedburner:origLink>http://software.intel.com/en-us/blogs/2009/11/05/living-in-a-connected-world-and-managing-change/</feedburner:origLink></item>
		<item>
		<title>TechEd 2009 Europe</title>
		<link>http://feedproxy.google.com/~r/IntelSoftwareNetworkBlog/~3/AxbzrhKGZA4/</link>
		<comments>http://software.intel.com/en-us/blogs/2009/11/05/teched-2009-europe/#comments</comments>
		<pubDate>Fri, 06 Nov 2009 01:05:03 +0000</pubDate>
		<dc:creator>Asaf Shelly</dc:creator>
		
		<category><![CDATA[Academic]]></category>

		<category><![CDATA[Events]]></category>

		<category><![CDATA[Intel® Software Network 2.0]]></category>

		<category><![CDATA[Mobility]]></category>

		<category><![CDATA[Parallel Prog. &amp; Multi-Core]]></category>

		<category><![CDATA[Software Engineering]]></category>

		<category><![CDATA[guest blogger]]></category>

		<category><![CDATA[TechEd]]></category>

		<category><![CDATA[www.AsyncOp.com]]></category>

		<guid isPermaLink="false">http://software.intel.com/en-us/blogs/2009/11/05/teched-2009-europe/</guid>
		<description><![CDATA[Hi All,
If you are going to the event next week in Berlin then let me know about it. Maybe we can meet face to face and if there are enough of us perhaps even a gourp community meeting. This can be a good opportunity to meet the experts.
In any case, you are all welcome to [...]]]></description>
			<content:encoded><![CDATA[<p>Hi All,</p>
<p>If you are going to the event next week in Berlin then let me know about it. Maybe we can meet face to face and if there are enough of us perhaps even a gourp community meeting. This can be a good opportunity to meet the experts.</p>
<p>In any case, you are all welcome to join my session titled "Parallel Programming for Embedded". I will be presenting on Friday 10:45 - 12:00.</p>
<p>At the basis of this presentation is the fact that the hardware has always been parallel. This also caused the kernel drivers to live in a parallel environment, so even though embedded devices were late to adopt Multi-Core CPUs, the people who are working with the lower levels have always been working in parallel environments.</p>
<p>The session speaks of parallel systems in general side by side with embedded systems and infrastructure environemnts.</p>
<p>The goal of this session is to open the eyes and show the systems that have always been working in parallel and name the principles used with these systems.</p>
<p>You can read my previous blogs to learn more about this approach. For example these:</p>
<p><a href="http://software.intel.com/en-us/blogs/2008/10/29/is-dos-the-ideal-parallel-environment-part-iv/">is dos the ideal parallel environment part iv</a></p>
<p><a href="http://software.intel.com/en-us/blogs/2009/07/27/stateful-programming-a-case-study/">stateful programming a case study</a></p>
<p>Here are a few slides from this presentation.</p>
<div id="attachment_11631" class="wp-caption alignnone" style="width: 310px"><a href="http://software.intel.com/en-us/blogs/wordpress/wp-content/uploads/2009/11/parallel-programming-for-embedded-slide-2.jpg"><img class="size-medium wp-image-11631" src="http://software.intel.com/en-us/blogs/wordpress/wp-content/uploads/2009/11/parallel-programming-for-embedded-slide-2-300x225.jpg" alt="Parallel Programming for Embedded TechEd 2009" width="300" height="225" /></a><p class="wp-caption-text">Parallel Programming for Embedded TechEd 2009</p></div>
<div id="attachment_11632" class="wp-caption alignnone" style="width: 310px"><a href="http://software.intel.com/en-us/blogs/wordpress/wp-content/uploads/2009/11/parallel-programming-for-embedded-slide-56.jpg"><img class="size-medium wp-image-11632" src="http://software.intel.com/en-us/blogs/wordpress/wp-content/uploads/2009/11/parallel-programming-for-embedded-slide-56-300x225.jpg" alt="USB Ping Pong" width="300" height="225" /></a><p class="wp-caption-text">USB Ping Pong</p></div>
<p><a href="http://software.intel.com/en-us/blogs/wordpress/wp-content/uploads/2009/11/parallel-programming-for-embedded-slide-71.jpg"><img class="alignnone size-medium wp-image-11634" src="http://software.intel.com/en-us/blogs/wordpress/wp-content/uploads/2009/11/parallel-programming-for-embedded-slide-71-300x225.jpg" alt="" width="300" height="225" /></a></p>
<p>Hope to see you all there,<br />
Asaf</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/IntelSoftwareNetworkBlog?a=AxbzrhKGZA4:NVa9BsO3DBo:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/IntelSoftwareNetworkBlog?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/IntelSoftwareNetworkBlog?a=AxbzrhKGZA4:NVa9BsO3DBo:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/IntelSoftwareNetworkBlog?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/IntelSoftwareNetworkBlog?a=AxbzrhKGZA4:NVa9BsO3DBo:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/IntelSoftwareNetworkBlog?i=AxbzrhKGZA4:NVa9BsO3DBo:V_sGLiPBpWU" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/IntelSoftwareNetworkBlog/~4/AxbzrhKGZA4" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://software.intel.com/en-us/blogs/2009/11/05/teched-2009-europe/feed/</wfw:commentRss>
		<feedburner:origLink>http://software.intel.com/en-us/blogs/2009/11/05/teched-2009-europe/</feedburner:origLink></item>
		<item>
		<title>Use of rand() in OpenMP parallel sections</title>
		<link>http://feedproxy.google.com/~r/IntelSoftwareNetworkBlog/~3/zsJ6U8rCopY/</link>
		<comments>http://software.intel.com/en-us/blogs/2009/11/05/use-of-rand-in-openmp-parallel-sections/#comments</comments>
		<pubDate>Thu, 05 Nov 2009 22:57:46 +0000</pubDate>
		<dc:creator>Andrey Karpov</dc:creator>
		
		<category><![CDATA[Parallel Prog. &amp; Multi-Core]]></category>

		<category><![CDATA[C++]]></category>

		<category><![CDATA[c++ parallel programming]]></category>

		<category><![CDATA[OpenMP]]></category>

		<guid isPermaLink="false">http://software.intel.com/en-us/blogs/2009/11/05/use-of-rand-in-openmp-parallel-sections/</guid>
		<description><![CDATA[The error consists in the fact that every parallel thread has its own seed and if no special initialization is carried out, rand() function will return the same value in all the threads. Most likely, this will not be the required result.]]></description>
			<content:encoded><![CDATA[<p>I came across an interesting thread at RSDN forum where a specific error of rand() function use in OpenMP parallel sections is considered (<a href="http://rsdn.ru/forum/cpp.applied/3400925.flat.aspx">RSDN forum thread (RU)</a>). I collect various errors which deal with OpenMP technology use so that to implement their troubleshooting in <a href="http://viva64.com/vivamp-tool/">VivaMP</a> static code analyzer in future. The error considered at the forum is perhaps a very specific one to implement a rule for its verification, so I decided just to write about it in the blog.</p>
<p>The error consists in the fact that every parallel thread has its own seed and if no special initialization is carried out, rand() function will return the same value in all the threads. Most likely, this will not be the required result.</p>
<p><em>Note: seed is initial value given to the random sequence generator in order to obtain the first random number. If you assign seed a particular value, the numbers sequence will always repeat starting with this very number.</em></p>
<p>The following code example is given at the forum:</p>
<pre>void initMatrix(int** m, int H, int W)
{
  #pragma omp parallel
  {
    #pragma omp for
    for (int i = 0; i &lt; H; ++i)
      for (int j = 0; j &lt; W; ++j)
         m[i][j] = rand()%15;
  }
}</pre>
<p>The result of such code work is filling of matrix with repeating blocks of numbers. For example, a 10×10 matrix filled in in two threads can look as follows:<br />
<a href="http://software.intel.com/en-us/blogs/wordpress/wp-content/uploads/2009/10/matrix.png"><img src="http://software.intel.com/en-us/blogs/wordpress/wp-content/uploads/2009/10/matrix-300x201.png" alt="" width="300" height="201" class="alignnone size-medium wp-image-11046" /></a></p>
<p>As we can see, the upper and the lower parts of the matrix filled in in two different threads are the same.</p>
<p>In order to avoid the same rand() function behavior, in your code, you should initialize random numbers generator in each parallel thread with various values. To do this, the combination of current time from the current thread number can be used.</p>
<p>The corrected code will look as follows:</p>
<pre>void initMatrix(int** m, int H, int W)
{
  #pragma omp parallel
  {
    srand(int(time(NULL)) ^ omp_get_thread_num());
    #pragma omp for
    for (int i = 0; i &lt; H; ++i)
      for (int j = 0; j &lt; W; ++j)
        m[i][j] = rand()%15;
  }
}</pre>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/IntelSoftwareNetworkBlog?a=zsJ6U8rCopY:859ehYPfDUQ:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/IntelSoftwareNetworkBlog?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/IntelSoftwareNetworkBlog?a=zsJ6U8rCopY:859ehYPfDUQ:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/IntelSoftwareNetworkBlog?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/IntelSoftwareNetworkBlog?a=zsJ6U8rCopY:859ehYPfDUQ:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/IntelSoftwareNetworkBlog?i=zsJ6U8rCopY:859ehYPfDUQ:V_sGLiPBpWU" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/IntelSoftwareNetworkBlog/~4/zsJ6U8rCopY" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://software.intel.com/en-us/blogs/2009/11/05/use-of-rand-in-openmp-parallel-sections/feed/</wfw:commentRss>
		<feedburner:origLink>http://software.intel.com/en-us/blogs/2009/11/05/use-of-rand-in-openmp-parallel-sections/</feedburner:origLink></item>
		<item>
		<title>OpenMP and exceptions</title>
		<link>http://feedproxy.google.com/~r/IntelSoftwareNetworkBlog/~3/-DONFfK5T0E/</link>
		<comments>http://software.intel.com/en-us/blogs/2009/11/05/openmp-and-exceptions/#comments</comments>
		<pubDate>Thu, 05 Nov 2009 22:57:16 +0000</pubDate>
		<dc:creator>Andrey Karpov</dc:creator>
		
		<category><![CDATA[Parallel Prog. &amp; Multi-Core]]></category>

		<category><![CDATA[C++]]></category>

		<category><![CDATA[OpenMP]]></category>

		<category><![CDATA[parallel programming]]></category>

		<category><![CDATA[static analysis]]></category>

		<category><![CDATA[VivaMP]]></category>

		<guid isPermaLink="false">http://software.intel.com/en-us/blogs/2009/11/05/openmp-and-exceptions/</guid>
		<description><![CDATA[You can use exceptions inside parallel regions. But they mustn't leave these parallel regions. Exceptions should be caught and processed inside a parallel region by using try/catch. If the exception leaves the parallel region it will cause fail and most surely program crash.]]></description>
			<content:encoded><![CDATA[<p>We continue developing our static analyzer VivaMP and now we would like to speak about diagnosing errors relating to using C++ exceptions in parallel regions. By a parallel region we understand a program fragment which is divided into two threads executed parallel. Parallel executed threads are formed by such <a href="http://viva64.com/terminology/OpenMP.html">OpenMP</a> directives as for and sections.</p>
<p>You can use exceptions inside parallel regions. But they mustn't leave these parallel regions. Exceptions should be caught and processed inside a parallel region by using try/catch. If the exception leaves the parallel region it will cause fail and most surely program crash. Let's consider an example of incorrect code:</p>
<pre>#pragma omp parallel for num_threads(4)
for(int i = 0; i &lt; 4; i++)
{
  //...
  throw 1;
}</pre>
<p>This code is incorrect as exceptions will leave the parallel region. To avoid this you should use other mechanisms for transferring information about error occurring. For example, the code may be rewritten as follows:</p>
<pre>size_t errCount = 0;
#pragma omp parallel for num_threads(4) reduction(+: errCount)
for(int i = 0; i &lt; 4; i++)
{
  try {
    //...
    throw 1;
  }
  catch (...)
  {
    ++errCount;
  }
}
if (errCount != 0)
  throw 1;
</pre>
<p>It looks a bit complicated but if you need to use exceptions inside parallel regions, there is no other way and you'll have to create a mechanism like this. But certainly, it's better to try to avoid exceptions.</p>
<p>There is some difficulty in that an exception may call not only your code in which you'll write throw. Exceptions can be generated in functions you use or memory allocating operators as well. Let's consider the following example which at first sight looks safe:</p>
<pre>#pragma omp parallel for num_threads(4)
for(int i = 0; i &lt; 4; i++)
{
  float *ptr = new float[10000];
  delete [] ptr;
}
</pre>
<p>This code can work safely for years and it can cause a program crash if at some moment 'new' operator cannot allocate the needed memory size. According to C++ standard new operator throws std::bad_alloc exception if it cannot allocate the needed memory size. This approach allows us not to check if the necessary memory size has been allocated as we do when using malloc function, and begin to work with it immediately. If memory is not allocated the program will proccess this situation in the necessary place. In case of a parallel region we need some additional work to correctly process the error of memory allocation inside the region itself. This is the corrected example:</p>
<pre>#pragma omp parallel for num_threads(4) reduction(+: errCount)
for(int i = 0; i &lt; 4; i++)
{
  try {
    float *ptr = new float[10000];
    delete [] ptr;
  }
  catch (std::bad_alloc &amp;)
  {
    //process error
  }
}</pre>
<p>I think you've already guessed that using functions inside parallel sections is also an unsafe and thankless task. Either you are sure that the functions don't generate exceptions or wrap them in try/catch. An unpleasant thing here is that if by the moment of writing parallel code the functions used in it haven't generated an exception, this can change later and you should be very careful.</p>
<p>Summarizing the information, we can say that exceptions are a thing which you should always keep in mind when developing a program using OpenMP. To simplify programmers' life we added three new diagnostic messages into VivaMP which will help you detect errors relating to using exceptions:</p>
<p><a href="http://viva64.com/content/PVS-Studio-help-en/V1301.html">V1301</a>. The 'throw' keyword cannot be used outside of a try..catch block in a parallel section</p>
<p><a href="http://viva64.com/content/PVS-Studio-help-en/V1302.html">V1302</a>. The 'new' operator cannot be used outside of a try..catch block in a parallel section.</p>
<p><a href="http://viva64.com/content/PVS-Studio-help-en/V1303.html">V1303</a>. The FOO function which throws an exception cannot be<br />
used in a parallel section outside of a try..catch block.</p>
<p>V1301 diagnostic message indicates the error in the first example while V1302 diagnoses errors of calling 'new' operator outside the exception handler. V1303 is much more complicated. Now VivaMP will warn only about call of functions explicitly marked as throwing exceptions, i.e.:</p>
<pre>void MyThrowFoo() throw(...) { }</pre>
<p>Functions not marked with can also throw exceptions but they are not considered unsafe. This step is made deliberately to reduce the number of unnecessary warning messages. Otherwise any function call inside the parallel section not screened with try/catch will be unsafe. Although it is really so, it seems that there is little help from such a large number of diagnostic messages. But perhaps VivaMP analyzer will behave in this way in future in "pedantic mode". And in that case functions marked explicitly as not throwing exceptions will be considered safe:</p>
<pre>void MyNotThrowFoo() throw() { }</pre>
<p>The last thing I would like to say about exceptions in parallel regions is that you should be careful when using barriers. Let's consider the following example:</p>
<pre>#pragma omp parallel num_threads (4)
{
  try {
     if (omp_get_thread_num ()  ==  0) {
       throw CException();
     }
     #pragma omp barrier
  }
  catch(CException &amp;) {
  }
}
</pre>
<p>When an exception is generated one of the threads will "skip" barrier directive and after that a hang will occur. The other threads will eternally wait for the thread in which the exception occurred. Perhaps, in the next version of the analyzer search of the corresponding errors will be added, but at present there are some difficulties of technical character relating to this.</p>
<p>Additional resources:</p>
<ul>
<li>Blog. Michael Suess. <a href="http://www.viva64.com/go.php?url=197">Breaking Out of Loops in OpenMP</a>.</li>
<li>Blog. Michael Suess. <a href="http://www.viva64.com/go.php?url=198">Making Exceptions Work with OpenMP - Some Tiny Workarounds</a>.</li>
<li>Blog. Michael Suess. <a href="http://www.viva64.com/go.php?url=199">Exceptions in OpenMP and C++ - what's the state of affairs today?</a></li>
<li>Wikipedia. <a href="http://www.viva64.com/go.php?url=200">Exception handling</a>.</li>
</ul>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/IntelSoftwareNetworkBlog?a=-DONFfK5T0E:RQRFfX2Eo9A:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/IntelSoftwareNetworkBlog?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/IntelSoftwareNetworkBlog?a=-DONFfK5T0E:RQRFfX2Eo9A:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/IntelSoftwareNetworkBlog?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/IntelSoftwareNetworkBlog?a=-DONFfK5T0E:RQRFfX2Eo9A:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/IntelSoftwareNetworkBlog?i=-DONFfK5T0E:RQRFfX2Eo9A:V_sGLiPBpWU" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/IntelSoftwareNetworkBlog/~4/-DONFfK5T0E" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://software.intel.com/en-us/blogs/2009/11/05/openmp-and-exceptions/feed/</wfw:commentRss>
		<feedburner:origLink>http://software.intel.com/en-us/blogs/2009/11/05/openmp-and-exceptions/</feedburner:origLink></item>
		<item>
		<title>Change of type alignment and the consequences</title>
		<link>http://feedproxy.google.com/~r/IntelSoftwareNetworkBlog/~3/g2EMqnFutP4/</link>
		<comments>http://software.intel.com/en-us/blogs/2009/11/05/change-of-type-alignment-and-the-consequences/#comments</comments>
		<pubDate>Thu, 05 Nov 2009 22:56:36 +0000</pubDate>
		<dc:creator>Andrey Karpov</dc:creator>
		
		<category><![CDATA[Software Engineering]]></category>

		<category><![CDATA[64-bit]]></category>

		<category><![CDATA[64-bit Coding]]></category>

		<category><![CDATA[C++]]></category>

		<category><![CDATA[Data Alignment]]></category>

		<category><![CDATA[Viva64]]></category>

		<guid isPermaLink="false">http://software.intel.com/en-us/blogs/2009/11/05/change-of-type-alignment-and-the-consequences/</guid>
		<description><![CDATA[When porting software one of the task a developer faces is to change types' sizes and rules of their alignments. Not so long ago we provided support of the diagnosing rule allowing you to detect data structures which use memory on 64-bit inefficiently in Viva64 analyzer. But there is still some research work to be [...]]]></description>
			<content:encoded><![CDATA[<p>When porting software one of the task a developer faces is to change types' sizes and rules of their alignments. Not so long ago we provided support of the diagnosing rule allowing you to detect data structures which use memory on <a href="http://viva64.com/terminology/64-bit.html">64-bit</a> inefficiently in <a href="http://viva64.com/terminology/Viva64.html">Viva64</a> analyzer. But there is still some research work to be carried out in this field and I look through the messages concerning this topic in forums with attention.</p>
<p>This time my attention was attracted by a message in RSDN "<a href="http://www.viva64.com/go.php?url=218">Alignment on 64-bit architectures</a>" running as follows:</p>
<p><i>Today I have faced a problem in Linux. There is a data structure consisting of several fields: 64-bit double, 8 unsigned char and one 32-bit int. Altogether it is 20 bytes (8 + 8*1 + 4). On 32-bit systems sizeof is 20 bytes and everything is OK. But on the 64-bit Linux sizeof returns 24 bytes. That is, an alignment at the 64-bit border takes place.</i></p>
<p>After that the author dwells upon data compatibility and asks for advice how to pack data in the structure. But at the moment we are not interested in this. What we are interested in is that there is a new type of errors which can occur when porting applications on a 64-bit system.</p>
<p>It is clear and common that when sizes of fields in a structure change, the size of the structure itself changes too because of this. But this is a different case. The size of the fields remains the same but the size of the structure will change too due to different <a href="http://viva64.com/terminology/Data_alignment.html">alignment</a> rules. This behavior can lead to various errors, for example, incompatibility of the formats of the data being saved.</p>
<p>Linux systems are not supported by Viva64 yet, but I decided to find out if such an error can occur in Windows systems. For this purpose I took an example of the code printing types' sizes and alignment from the article "<a href="http://www.viva64.com/go.php?url=219">C++ data alignment and portability</a>". I've modified it a bit for Visual Studio and got this program:</p>
<pre>#include &lt;iostream&gt;
using namespace std;

template &lt;typename T&gt;
void print (char const* name)
{
  cerr &lt;&lt; name
       &lt;&lt; " sizeof = " &lt;&lt; sizeof (T)
       &lt;&lt; " alignof = " &lt;&lt; __alignof (T)
       &lt;&lt; endl;
}

int _tmain(int, _TCHAR *[])
{
  print&lt;bool&gt;        ("bool          ");
  print&lt;wchar_t&gt;     ("wchar_t       ");
  print&lt;short&gt;       ("short int     ");
  print&lt;int&gt;         ("int           ");
  print&lt;long&gt;        ("long int      ");
  print&lt;long long&gt;   ("long long int ");
  print&lt;float&gt;       ("float         ");
  print&lt;double&gt;      ("double        ");
  print&lt;long double&gt; ("long double   ");
  print&lt;void*&gt;       ("void*         ");
}
</pre>
<p>I compared the data I'd got with the data described in the article "C++ data alignment and portability" for GNU/Linux systems and now give them in Table 1.</p>
<p><a href="http://software.intel.com/en-us/blogs/wordpress/wp-content/uploads/2009/10/blog-aligment.png"><img src="http://software.intel.com/en-us/blogs/wordpress/wp-content/uploads/2009/10/blog-aligment-246x300.png" alt="" width="246" height="300" class="alignnone size-medium wp-image-10977" /></a><br />
Table 1. Types' sizes and alignment.</p>
<p>Let's study this table. Pay attention to the marked cells relating to long int and double. These types' sizes don't depend on the architecture's size and therefore don't change. Both on 32-bit and 64-bit systems their size is 8 byte. But alignment is different for 32-bit and 64-bit systems. It can cause change of the structure's size. When we implement Viva64 for Linux we'll take into consideration the possible errors relating to this.</p>
<p>In Windows systems, there are no such problems with alignment change. Pay attention that alignment of all the types doesn't change or changes together with the type's size. That is good - Windows developers have one potential problem off.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/IntelSoftwareNetworkBlog?a=g2EMqnFutP4:BPmD1BD29bc:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/IntelSoftwareNetworkBlog?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/IntelSoftwareNetworkBlog?a=g2EMqnFutP4:BPmD1BD29bc:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/IntelSoftwareNetworkBlog?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/IntelSoftwareNetworkBlog?a=g2EMqnFutP4:BPmD1BD29bc:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/IntelSoftwareNetworkBlog?i=g2EMqnFutP4:BPmD1BD29bc:V_sGLiPBpWU" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/IntelSoftwareNetworkBlog/~4/g2EMqnFutP4" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://software.intel.com/en-us/blogs/2009/11/05/change-of-type-alignment-and-the-consequences/feed/</wfw:commentRss>
		<feedburner:origLink>http://software.intel.com/en-us/blogs/2009/11/05/change-of-type-alignment-and-the-consequences/</feedburner:origLink></item>
		<item>
		<title>October 27: John Schiavone, Cadence Design Systems: Real World Parallelism:</title>
		<link>http://feedproxy.google.com/~r/IntelSoftwareNetworkBlog/~3/pT40WWksWNk/</link>
		<comments>http://software.intel.com/en-us/blogs/2009/11/05/october-27-john-schiavone-cadence-design-systems-real-world-parallelism/#comments</comments>
		<pubDate>Thu, 05 Nov 2009 22:54:56 +0000</pubDate>
		<dc:creator>Tom Spyrou</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<category><![CDATA[legacy]]></category>

		<category><![CDATA[parallel processing legacy code windows real world]]></category>

		<category><![CDATA[processing]]></category>

		<category><![CDATA[real]]></category>

		<category><![CDATA[Windows]]></category>

		<category><![CDATA[world]]></category>

		<guid isPermaLink="false">http://software.intel.com/en-us/blogs/2009/11/05/october-27-john-schiavone-cadence-design-systems-real-world-parallelism/</guid>
		<description><![CDATA[Hi Everyone,
I thought that I would post this since one of my co-workers at Cadence will be gave a webinar on his experience parallelizing an existing application. The application and algorithms involved are really complex. It was especially interesting because it involves legacy code and also the development environment was Windows unlike many EDA applications [...]]]></description>
			<content:encoded><![CDATA[<p>Hi Everyone,</p>
<p>I thought that I would post this since one of my co-workers at Cadence will be gave a webinar on his experience parallelizing an existing application. The application and algorithms involved are really complex. It was especially interesting because it involves legacy code and also the development environment was Windows unlike many EDA applications which run on Linux/Unix. I really recommending watching.</p>
<p>Tom</p>
<p>October 27: John Schiavone, Cadence Design Systems: Real World Parallelism: Refactoring Legacy Code and Implementing Concurrency Cadence Allegro's complex Design Rules Checking (DCR) process is used to verify that designs meet constraint requirements. Development is currently underway to improve the performance of the DRC process using multithreading. View the design architecture and learn about the challenges faced in refactoring the legacy code, achieving platform independence, and performance verification.<a href="https://event.on24.com/event/36/88/3/rt/1/index.html?&amp;eventid=36883&amp;sessionid=1&amp;key=D76A2FD29D7444AEC06765011A2D4953&amp;tab=1&amp;sourcepage=register">Link to John's Webinar</a></p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/IntelSoftwareNetworkBlog?a=pT40WWksWNk:nz6xkkMs09A:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/IntelSoftwareNetworkBlog?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/IntelSoftwareNetworkBlog?a=pT40WWksWNk:nz6xkkMs09A:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/IntelSoftwareNetworkBlog?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/IntelSoftwareNetworkBlog?a=pT40WWksWNk:nz6xkkMs09A:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/IntelSoftwareNetworkBlog?i=pT40WWksWNk:nz6xkkMs09A:V_sGLiPBpWU" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/IntelSoftwareNetworkBlog/~4/pT40WWksWNk" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://software.intel.com/en-us/blogs/2009/11/05/october-27-john-schiavone-cadence-design-systems-real-world-parallelism/feed/</wfw:commentRss>
		<feedburner:origLink>http://software.intel.com/en-us/blogs/2009/11/05/october-27-john-schiavone-cadence-design-systems-real-world-parallelism/</feedburner:origLink></item>
		<item>
		<title>Five role playing exercises to introduce parallelism concepts</title>
		<link>http://feedproxy.google.com/~r/IntelSoftwareNetworkBlog/~3/cBhM5dpywNg/</link>
		<comments>http://software.intel.com/en-us/blogs/2009/11/05/five-role-playing-exercises-to-introduce-parallelism-concepts/#comments</comments>
		<pubDate>Thu, 05 Nov 2009 19:12:40 +0000</pubDate>
		<dc:creator>Robert Chesebrough (Intel)</dc:creator>
		
		<category><![CDATA[Academic]]></category>

		<category><![CDATA[Parallel Prog. &amp; Multi-Core]]></category>

		<category><![CDATA[concurrency]]></category>

		<category><![CDATA[Critical Section]]></category>

		<category><![CDATA[Domain Decomposition]]></category>

		<category><![CDATA[parallelism]]></category>

		<category><![CDATA[Race Condition]]></category>

		<category><![CDATA[Role Playing]]></category>

		<category><![CDATA[Task Decomposition]]></category>

		<guid isPermaLink="false">http://software.intel.com/en-us/blogs/2009/11/05/five-role-playing-exercises-to-introduce-parallelism-concepts/</guid>
		<description><![CDATA[Since the kickoff of the High School Parallelism bootcamp this summer, I've received several requests for a write up of the five role playing activities we used.  
The activities put students in the place of procesor cores and had them perform tasks in parallel. These activities proved to be popular among many of the [...]]]></description>
			<content:encoded><![CDATA[<p>Since the kickoff of the High School Parallelism bootcamp this summer, I've received several requests for a write up of the five role playing activities we used.  </p>
<p>The activities put students in the place of procesor cores and had them perform tasks in parallel. These activities proved to be popular among many of the students at the camp, however, some of the more advanced students did express that they felt the exercsies could seem childish.</p>
<p>My personal observation is that these exercises laid an excellent foundation that was built upon later with actual computer lab activites using OpenMP and Threading Building Blocks.</p>
<p>The activities are best done in groups of 4 or 5 individuals but even two in a single group can.</p>
<p>Without further ado - here is my promised write up:</p>
<h1>
<p><strong>Thinking Parallel</strong></h1>
<p>
These role playing activities are designed to get you start thinking in parallel. They will also expose you to some terminology &amp; concepts that we will use throughout the rest of the boot-camp. Many of these exercises were inspired from  Chapter two if James Reinders’ book “Intel Threading Building Blocks”.</p>
<p><strong>Objectives</strong><br />
The objectives for the following five exercises are to:<br />
1)	Explore domain &amp; task decomposition using a mailer example.<br />
2)	Learn about race conditions and two ways to mitigate them.<br />
3)	Learn what a critical section does<br />
4)	How a reduction can eliminate a race condition.</p>
<p>
<h1>Activity 1 – Explore Domain Decomposition</h1>
<p>
In this activity, each member of your team or group will play the role of a processor core, or more accurately, the role of a thread executing code on a core. Your team will explore how to use domain decomposition to accomplish the job of folding, stuffing, sealing, addressing, stamping &amp; mailing multiple envelopes.</p>
<p><strong>Time Required</strong><br />
fifteen minutes</p>
<p><strong>Objective</strong><br />
Use scrap paper, some empty envelopes, and a pencil to explore the concept of parallelism<br />
through domain decomposition.</p>
<p><strong>Materials</strong><br />
1) 16 envelopes per table of 4 to 5 “processors”<br />
2) 32 colored post-it notes (16 to represent stamps, 16 to represent address labels)<br />
3) Pens or pencils</p>
<p><strong>Setup</strong><br />
1) Divvy up the 16 envelopes &amp; colored post-its so that each process gets a roughly equal share<br />
2) Each “processor” (think student) must read over and become familiar with the “code” or instructions she is to execute so that the “code” is committed to memory.<br />
Here is your “code” of instructions – For Domain decomposition – each processor does the same task but uses different data (represented here by different addresses)<br />
a) Fold scrap paper<br />
b) Stuff paper into envelop<br />
c) Pretend to seal envelope (so we can re-use them later)<br />
d) Address an “address label” and fix it to the middle of the envelope<br />
You may use these fictitious addresses if you cannot come up with 16 of your own:</p>
<table class="MsoTableGrid" border="1" cellspacing="0" cellpadding="0" style='.5pt solid windowtext'>
<tr style='yes'>
<td width="148" valign="top" style='0in 5.4pt 0in 5.4pt'>
<p class="MsoNormal" style='none'><span style='black'>1600 Daily Planet Ave</span><span style='black'></span></p>
<p class="MsoNormal" style='none'><span style='black'>Metropolis</span><span style='black'>, NY, 12345</span><span style='black'></span></p>
<p class="MsoNormal" style='none'><span style='black'>&nbsp;</span></p>
</td>
<td width="148" valign="top" style='0in 5.4pt 0in 5.4pt'>
<p class="MsoNormal" style='none'><span style='black'>Gotham</span><span style='black'> City College</span><span style='black'></span></p>
<p class="MsoNormal" style='none'><span style='black'>Gotham</span><span style='black'>, IL, 60506</span><span style='black'></span></p>
<p class="MsoNormal" style='none'><span style='black'>&nbsp;</span></p>
</td>
<td width="156" valign="top" style='0in 5.4pt 0in 5.4pt'>
<p class="MsoNormal" style='none'><span class="SpellE"><span style='black'>Kwikspell</span></span><span style='black'> University</span><span style='black'></span></p>
<p class="MsoNormal" style='none'><span style='black'>Briton, UK</span></p>
<p class="MsoNormal" style='none'><span style='black'>&nbsp;</span></p>
</td>
<td width="139" valign="top" style='0in 5.4pt 0in 5.4pt'>
<p class="MsoNormal" style='none'><span style='black'>Know-It-All university</span></p>
<p class="MsoNormal" style='none'><span style='black'>Bullwinkle</span><span style='black'>, AK</span><span style='black'></span></p>
<p class="MsoNormal" style='none'><span style='black'>&nbsp;</span></p>
</td>
</tr>
<tr style='1'>
<td width="148" valign="top" style='0in 5.4pt 0in 5.4pt'>
<p class="MsoNormal" style='none'><span style='black'>Waco</span><span style='black'> University</span><span style='black'></span></p>
<p class="MsoNormal" style='none'><span style='black'>Waco</span><span style='black'>, Texas, 12987</span><span style='black'></span></p>
<p class="MsoNormal" style='none'><span style='black'>&nbsp;</span></p>
</td>
<td width="148" valign="top" style='0in 5.4pt 0in 5.4pt'>
<p class="MsoNormal" style='none'><span style='black'>Acme <span class="SpellE">Looniverisity</span></span></p>
<p class="MsoNormal" style='none'><span class="SpellE"><span style='black'>Toonville</span></span><span style='black'>, CA, 10023</span><span style='black'></span></p>
<p class="MsoNormal" style='none'><span style='black'>&nbsp;</span></p>
</td>
<td width="156" valign="top" style='0in 5.4pt 0in 5.4pt'>
<p class="MsoNormal" style='none'><span class="SpellE"><span style='black'>Bronto</span></span><span style='black'> Crane Academy</span><span style='black'></span></p>
<p class="MsoNormal" style='none'><span style='black'>Rock Vegas, NV, 010101</span></p>
<p class="MsoNormal" style='none'><span style='black'>&nbsp;</span></p>
</td>
<td width="139" valign="top" style='0in 5.4pt 0in 5.4pt'>
<p class="MsoNormal" style='none'><span style='black'>Ferris</span><span style='black'> <span class="SpellE">Bueller</span><br />
   School</span><span style='black'></span></p>
<p class="MsoNormal" style='none'><span style='black'>Burbank</span><span style='black'>, CA</span><span style='black'></span></p>
<p class="MsoNormal" style='none'><span style='black'>&nbsp;</span></p>
</td>
</tr>
<tr style='2'>
<td width="148" valign="top" style='0in 5.4pt 0in 5.4pt'>
<p class="MsoNormal" style='none'><span lang="PT-BR" style='PT-BR'>CXVI Caesar Av.</span></p>
<p class="MsoNormal" style='none'><span lang="PT-BR" style='PT-BR'>Rome, Italy, XLIV BC</span></p>
<p class="MsoNormal" style='none'><span lang="PT-BR" style='PT-BR'>&nbsp;</span></p>
</td>
<td width="148" valign="top" style='0in 5.4pt 0in 5.4pt'>
<p class="MsoNormal" style='none'><span style='black'>Central</span><span style='black'> High School</span><span style='black'></span></p>
<p class="MsoNormal" style='none'><span style='black'>Central</span><span style='black'>, IN, 17766</span><span style='black'></span></p>
<p class="MsoNormal" style='none'><span style='black'>&nbsp;</span></p>
</td>
<td width="156" valign="top" style='0in 5.4pt 0in 5.4pt'>
<p class="MsoNormal" style='none'><span class="SpellE"><span style='#333333'>Bullworth</span></span><span style='#333333'> Academy</span><span style='#333333'></span></p>
<p class="MsoNormal" style='none'><span style='#333333'>Missions Blvd, Bermuda</span></p>
<p class="MsoNormal" style='none'><span style='black'>&nbsp;</span></p>
</td>
<td width="139" valign="top" style='0in 5.4pt 0in 5.4pt'>
<p class="MsoNormal" style='none'><span style='black'>Boston</span><span style='black'> Bay College</span><span style='black'></span></p>
<p class="MsoNormal" style='none'><span class="SpellE"><span style='black'>Dawsons</span></span><span style='black'> Creek</span><span style='black'>, IL, 10982</span><span style='black'></span></p>
<p class="MsoNormal" style='none'><span style='black'>&nbsp;</span></p>
</td>
</tr>
<tr style='yes'>
<td width="148" valign="top" style='0in 5.4pt 0in 5.4pt'>
<p class="MsoNormal" style='none'><span style='black'>1600+1/2 Pennsylvania<br />
    Avenue NW</span><span style='black'></span></p>
<p class="MsoNormal" style='none'><span style='black'>Washington</span><span style='black'>, DC 20500</span><span style='black'></span></p>
<p class="MsoNormal" style='none'><span style='black'>&nbsp;</span></p>
</td>
<td width="148" valign="top" style='0in 5.4pt 0in 5.4pt'>
<p class="MsoNormal" style='none'><span style='black'>Bedrock</span><span style='black'> High School</span><span style='black'></span></p>
<p class="MsoNormal" style='none'><span style='black'>Little Rock</span><span style='black'>, AR, 56005</span><span style='black'></span></p>
<p class="MsoNormal" style='none'><span style='black'>&nbsp;</span></p>
</td>
<td width="156" valign="top" style='0in 5.4pt 0in 5.4pt'>
<p class="MsoNormal" style='none'><span class="SpellE"><span style='black'>Watsamata</span></span><span style='black'> University</span><span style='black'></span></p>
<p class="MsoNormal" style='none'><span style='black'>Rocky Road, AK</span></p>
<p class="MsoNormal" style='none'><span style='black'>&nbsp;</span></p>
</td>
<td width="139" valign="top" style='0in 5.4pt 0in 5.4pt'>
<p class="MsoNormal" style='none'><span style='black'>Hill</span><span style='black'> Valley</span><span style='black'> Schoolhouse</span></p>
<p class="MsoNormal" style='none'><span style='black'>Hill Valley</span><span style='black'>, CA, 33773</span><span style='black'></span></p>
<p class="MsoNormal" style='none'><span style='black'>&nbsp;</span></p>
</td>
</tr>
</table>
<p>e) Fix another post-it (representing a stamp) to the stamp area of the envelope<br />
f) Place envelope in table area designated “the mail box”</p>
<p>Monitor Time for completion of mailer exercise<br />
1) Have someone on the team write down the time just prior to saying go<br />
2) Each “processor” should complete his assigned set of envelopes as quickly as possible.<br />
3) Record the time to complete the assigned mailer job. Time: _____________________<br />
4) Record any observations about the nature of the tasks you do – which ones take longest, which one are fast? Were any processors idle for periods of time?</p>
<p>
<h1>Activity 2 – Explore Task Decomposition</h1>
<p>
In this activity, your team will explore how to use a task decomposition to accomplish the job of folding, stuffing, sealing, addressing, stamping &amp; mailing multiple envelopes.</p>
<p><strong>Time Required </strong><br />
fifteen minutes</p>
<p><strong>Objective</strong><br />
Use scrap paper, some empty envelopes, and a pencil to explore the concept of parallelism<br />
through task decomposition.</p>
<p><strong>Materials</strong><br />
1) 16 envelopes per table of 4 to 5 “processors”<br />
2) 32 colored post-it notes (16 to represent stamps, 16 to represent address labels)<br />
3) Pens or pencils</p>
<p><strong>Setup</strong><br />
1) Divvy up the 16 envelopes &amp; colored post-its so that each process gets a roughly equal share<br />
a) Each “processor” will agree with team ahead of time which task or tasks he/she is committed<br />
to accomplishing. Perhaps, one processor is assigned the tasks of Folding, Stuffing, Pretend<br />
Sealing all the envelopes.<br />
b) Another processor, or perhaps even two, are assigned the task of addressing the envelopes<br />
Use same addresses as before<br />
c) Another processor is assigned the role of stamping and mailing the envelopes</p>
<p>Monitor Time for completion of mailer exercise<br />
1) Have someone on the team write down the time just prior to saying go<br />
2) Each “processor” should complete his assigned tasks as quickly as possible.<br />
3) Record the time to complete the assigned mailer job. Time: _____________________<br />
4) Record any observations about the nature of the tasks you do – which ones take longest, which one are fast? Were any processors idle for periods of time?</p>
<p>
<h1>Activity 3 –Vector Addition exposes race conditions</h1>
<p>
In this activity, your team will explore how to use a domain decomposition to accomplish the job of (mis)adding a set of numbers which we will call a vector. The activity exposes the problem that occurs when writes to a shared memory variable are not protected by a synchronization construct.</p>
<p><strong>Time Required </strong><br />
fifteen minutes</p>
<p><strong>Objective</strong><br />
Use some index cards, and pencils to explore the concept of a race condition.</p>
<p><strong>Materials</strong><br />
1)	16 numbered index cards.<br />
2)	One index card labeled “Shared Sum”<br />
3)	16 extra index cards are labeled “local memory”<br />
4)	Pencils</p>
<p><strong>Setup</strong><br />
1) The 16 numbered index cards represent a vector of length 16 elements. These are divvied up roughly equally among all 4 to 5 “processors”<br />
2) One extra index card is labeled “Shared Sum” and has the value 0 written on it and is placed in the middle of the table accessible to all processors<br />
3) Several extra index cards are labeled “local memory” and are given to each processor as a scratch pad to add number on.</p>
<p><strong>Execution</strong><br />
1) This is a domain decomposition exercise, where each processor “reads” the value of the “shared sum” and writes a new value to this shared sum – ignoring all the other processors previously written values – this is called a race condition.<br />
Each processor should do these steps as quickly as possible:<br />
   a) “read” the value of the “shared sum” and writes that number on your own scratch pad.<br />
   b) add one of your “vector” card’s values to the sum on your scratch pad.<br />
   c) Immediately cross off the current value on the “shared sum” card and write your own value on the card (probably stomping over someone else’s value).<br />
   d) Repeat steps 5a – 5c until you are out of index cards<br />
2) Compare the final value written on the “shared sum” with the known total (46)<br />
3) Did your team compute the correct grand total for the vector sum?</p>
<p>
<h1>Activity 4 –Vector Addition fixed with critical section</h1>
<p>
In this activity, your team will explore how a critical section can be used to guarantee that access to a shared memory region are protected – in other words, that writes to a shared variable are done in an orderly and synchronized fashion. It will also expose the performance penalty that can be taken as a result of critical sections.</p>
<p><strong>Time Required </strong><br />
Fifteen minutes</p>
<p><strong>Objective </strong><br />
Use some index cards, a magic marker &amp; pencils to explore the concept of a critical section</p>
<p><strong>Materials</strong><br />
1)	16 numbered index cards (we call it our vector)<br />
2)	1 index card labeled “Shared Sum”<br />
3)	16 extra index cards are labeled “local memory”<br />
4)	Magic marker<br />
5)	Pencils</p>
<p><strong>Setup</strong><br />
1) The 16 numbered index cards represent a vector of length 16 elements. These are divvied up roughly equally among all 4 to 5 “processors”<br />
2) One extra index cards labeled “Shared Sum” and has the value 0 written on it and is placed in the middle of the table accessible to all processors.<br />
3) Several extra index cards are labeled “local memory” and are given to each processor as a scratch pad to add number on.<br />
4) A Magic maker, known as “critical section”, is placed on the table next to the “shared sum”</p>
<p><strong>Execution</strong><br />
1) We are now trying to synchronize access to shared memory by implementing a critical section. Our goal is to get rid of the race condition we encountered earlier.<br />
2) New rule: “Each processor can only use the magic marker, named critical section, to write values to the “shared sum” index card. And – No processor can do any computations without first acquiring the magic marker, called critical section. As soon as a processor writes a new value to  “shared sum” the processor should expeditiously return the capped critical section to the middle of the table”.<br />
3) Each processor should do these steps as quickly as possible:<br />
   a) Acquire the critical section! If you failed to acquire the critical section you must wait for the marker to be placed back in the middle of the table.<br />
   b) Immediately cross off the current value on the “shared sum” card<br />
   c) Add the value of one of your index cards to the “shared sum” use a scratch pad if needed<br />
   d) Write the new value for sum on the globally shared “shared sum” card<br />
   e) Return the cap to the marker<br />
   f) Return the marker to the middle of the table<br />
   g) Repeat steps 5a(i) – 5a(v) until you are out of index cards<br />
4) Compare the final value written on the “shared sum” with the known total (46)<br />
5) Did your team compute the correct grand total for the vector sum?<br />
6) What did you observe about how much time you spent idling versus time spent writing or calculating?</p>
<p>
<h1>Activity 5 – Vector Addition fixed with reduction</h1>
<p>
In this activity, your team will explore how a reduction (or a partial sums approach) can be used to guarantee that access to a shared memory region are protected – in other words, that writes to a shared variable are done in an orderly and synchronized fashion. It will also demonstrate the benefit of replacing a critical section with a reduction wherever possible.</p>
<p><strong>Time Required </strong><br />
Fifteen minutes</p>
<p><strong>Objective </strong><br />
Use some index cards, &amp; pencils to explore the concept of a critical section</p>
<p><strong>Materials</strong><br />
1)	16 numbered index cards (we call it our vector)<br />
2)	1 index card labeled “Shared Sum”<br />
3)	4 index card labeled “Partial Sum”<br />
4)	16 extra index cards are labeled “local memory”<br />
5)	Pencils</p>
<p><strong>Setup</strong><br />
1) The 16 numbered index cards represent a vector of length 16 elements. These are divvied up roughly equally among all 4 to 5 “processors”<br />
2) One extra index cards labeled “Shared Sum” and has the value 0 written on it and is placed in the middle of the table accessible to all processors.<br />
3) The remaining “Partial sum” cards are divvied up among the processors<br />
4) Several extra index cards are labeled “local memory” and are given to each processor as a scratch pad to add number on.</p>
<p><strong>Execution</strong><br />
We are now trying to synchronize access to shared memory by implementing a reduction – which amounts to a collection of partial sums computed by each processor, followed by a grand total computed by a master thread. Our goal is to get rid of the race condition we encountered earlier, and do the parallel tasks in a more efficient manner.</p>
<p>Every processor will add up his/her own partial sum that represents the total of all the vector<br />
elements assigned to him/her.</p>
<p>One processor will also be named to execute the “master thread” that adds up all the partial sum cards to create a grand total , that the master thread writes this grand total to the “shared sum” card.</p>
<p>1) Each processor should:<br />
   a) Add the values from all their assigned vector cards<br />
   b) Write the value to a “partial Sum” card<br />
   c) Give the “Partial Sum” card to the Processor who will execute the master thread<br />
2) The Master Thread only should:<br />
   a) Compute his own partial sum<br />
   b) Wait for all other partial sums to arrive<br />
   c) Compute the grand total for all partial sums<br />
   d) Write the grand total on the “Shared Sum” card</p>
<p>3) Did your team compute the correct grand total for the vector sum?<br />
What did you observe about how much time you spent idling versus time spent writing or calculating?</p>
<p>4) How effective was the reduction strategy at computing the sum in parallel versus the other methods tried?</p>
<p><strong>Review Questions</strong></p>
<p>Question 1: Describe a race condition<br />
Question 2: What does a critical section do?</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/IntelSoftwareNetworkBlog?a=cBhM5dpywNg:WHob3u8FPkg:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/IntelSoftwareNetworkBlog?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/IntelSoftwareNetworkBlog?a=cBhM5dpywNg:WHob3u8FPkg:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/IntelSoftwareNetworkBlog?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/IntelSoftwareNetworkBlog?a=cBhM5dpywNg:WHob3u8FPkg:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/IntelSoftwareNetworkBlog?i=cBhM5dpywNg:WHob3u8FPkg:V_sGLiPBpWU" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/IntelSoftwareNetworkBlog/~4/cBhM5dpywNg" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://software.intel.com/en-us/blogs/2009/11/05/five-role-playing-exercises-to-introduce-parallelism-concepts/feed/</wfw:commentRss>
		<feedburner:origLink>http://software.intel.com/en-us/blogs/2009/11/05/five-role-playing-exercises-to-introduce-parallelism-concepts/</feedburner:origLink></item>
		<item>
		<title>Interview: Yaozu (Eddie) Dong, Open Source Virtualization Expert</title>
		<link>http://feedproxy.google.com/~r/IntelSoftwareNetworkBlog/~3/uzN-h3V1mZU/</link>
		<comments>http://software.intel.com/en-us/blogs/2009/11/05/interview-yaozu-eddie-dong-open-source-virtualization-expert/#comments</comments>
		<pubDate>Thu, 05 Nov 2009 16:00:41 +0000</pubDate>
		<dc:creator>Dawn M. Foster</dc:creator>
		
		<category><![CDATA[Open Source]]></category>

		<category><![CDATA[Virtualization]]></category>

		<category><![CDATA[kvm]]></category>

		<category><![CDATA[Xen]]></category>

		<category><![CDATA[Yaozu (Eddie) Dong]]></category>

		<guid isPermaLink="false">http://software.intel.com/en-us/blogs/2009/11/05/interview-yaozu-eddie-dong-open-source-virtualization-expert/</guid>
		<description><![CDATA[Yaozu (Eddie) Dong is a technical lead in the Open Source Technology Center in Shanghai, PRC. He joined Intel in 1998 and had been involved in various embedded system projects from PalmOS to Windows CE to Linux, and several virtualization projects. He received his Bachelors and Masters degrees in Engineering from Shanghai Jiao Tong University, [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://software.intel.com/en-us/blogs/wordpress/wp-content/uploads/2009/10/dong.jpg"><img class="alignright size-full wp-image-11324" src="http://software.intel.com/en-us/blogs/wordpress/wp-content/uploads/2009/10/dong.jpg" alt="" width="201" height="151" /></a>Yaozu (Eddie) Dong is a technical lead in the Open Source Technology Center in Shanghai, PRC. He joined Intel in 1998 and had been involved in various embedded system projects from PalmOS to Windows CE to Linux, and several virtualization projects. He received his Bachelors and Masters degrees in Engineering from Shanghai Jiao Tong University, PRC.</p>
<p><strong>Dawn: What do you like about working in Intel's Open Source Technology Center?</strong></p>
<p><strong>Eddie</strong>: Intel's Open Source Technology Center is a great place where I learned, grew up and contributed. The team here in China is young, open and skillful, and we all are in a very good atmosphere to help each other and work as a team. Each individual contribution is small, but we are proud of the whole team effort. That is the sole reason we received an Intel Achievement Award in 2006.</p>
<p><strong>Dawn: How are you involved in performance tuning work for open source virtualization projects?</strong></p>
<p><strong>Eddie</strong>: I started my virtualization life in early 2004, and started working on open source virtualization projects, i.e. Xen, at the end of year. Performance is critical to the success of open source virtualization projects, but it was not that good at that time. I started the work with help from the team, accumulated all the expertise necessary and was able to improve it dramatically both in Xen and KVM.</p>
<p><strong>Dawn: Can you tell us more about your efforts with SR-IOV Networking in the Xen project?</strong></p>
<p><strong>Eddie</strong>: SR-IOV, as part of Intel Virtualization Technology for Connectivity, is a significant product to improve I/O virtualization performance. It takes the advantage of Intel Virtualization Technology for directed I/O, i.e. VT-d, to reduce the intervention of hypervisor in I/O sharing. As a team, we implemented the <a href="http://www.usenix.org/event/wiov08/tech/full_papers/dong/dong_html/">SR-IOV support for open source virtualization</a> and tuned the performance to achieve close to native performance.</p>
<p><strong>Dawn: What do you do for fun when you aren't working at Intel?</strong></p>
<p><strong>Eddie</strong>: I like to spend time with my kid, playing chess or having fun together.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/IntelSoftwareNetworkBlog?a=uzN-h3V1mZU:uMVgXJeK6_Q:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/IntelSoftwareNetworkBlog?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/IntelSoftwareNetworkBlog?a=uzN-h3V1mZU:uMVgXJeK6_Q:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/IntelSoftwareNetworkBlog?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/IntelSoftwareNetworkBlog?a=uzN-h3V1mZU:uMVgXJeK6_Q:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/IntelSoftwareNetworkBlog?i=uzN-h3V1mZU:uMVgXJeK6_Q:V_sGLiPBpWU" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/IntelSoftwareNetworkBlog/~4/uzN-h3V1mZU" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://software.intel.com/en-us/blogs/2009/11/05/interview-yaozu-eddie-dong-open-source-virtualization-expert/feed/</wfw:commentRss>
		<feedburner:origLink>http://software.intel.com/en-us/blogs/2009/11/05/interview-yaozu-eddie-dong-open-source-virtualization-expert/</feedburner:origLink></item>
		<item>
		<title>TechEd09: What you can expect from Intel's conference attendance</title>
		<link>http://feedproxy.google.com/~r/IntelSoftwareNetworkBlog/~3/TdY_o_f2SQ0/</link>
		<comments>http://software.intel.com/en-us/blogs/2009/11/05/teched09-what-you-can-expect-from-intels-conference-attendance/#comments</comments>
		<pubDate>Thu, 05 Nov 2009 10:02:05 +0000</pubDate>
		<dc:creator>Michael J Huelskoetter</dc:creator>
		
		<category><![CDATA[Events]]></category>

		<category><![CDATA[Parallel Prog. &amp; Multi-Core]]></category>

		<category><![CDATA[teched09]]></category>

		<guid isPermaLink="false">http://software.intel.com/en-us/blogs/2009/11/05/teched09-what-you-can-expect-from-intels-conference-attendance/</guid>
		<description><![CDATA[As I wrote in my yesterday's blog post we will be at Microsoft's developer conference Tech-Ed Euirope 2009 which will take place in Berlin this year. Fortunately at the same time the whole city will celebrate the 20th anniversary of the fall of the Wall. So there will be a few people in Berlin during [...]]]></description>
			<content:encoded><![CDATA[<p>As I wrote in <a href="http://software.intel.com/en-us/blogs/2009/11/04/tech-ed-2009-looking-forward-coming-to-the-show/">my yesterday's blog post</a> we will be at Microsoft's developer conference Tech-Ed Euirope 2009 which will take place in Berlin this year. Fortunately at the same time the whole city will celebrate the 20th anniversary of the fall of the Wall. So there will be a few people in Berlin during those days!</p>
<p>But this won't prevent us doing our job at the Microsoft event for four long days (at day five Tech-Ed has to get along without us). This means in particular:</p>
<ul>
<li>We will interview some of the most interesting people at the show with our video cam and blog this right away during Tech-Ed Europe 2009. This year we will try something really new: Instead of doing the live blogging in a dark and isolated chamber somewhere in one of these sad conference rooms I will sit right at the Intel stand within the Visual Studio Partner Zone and blog lively during the show. And with the help of a huge TV screen you can follow how I'm doing my job. This is nearly as good as watching a daily soap, isn't it?!</li>
</ul>
<ul>
<li>There will be three 15 minute sessions which will be held by Intel colleagues. Their short presentations will take place at the huge show theatre. The main topic will be Intel Parallel Studio with all facets of parallel programming with native programming languages as C and C++. So you can learn how to optimize your serial coded application in order to make it as fast as possible on a multi-core system. BUT you will also learn that Parallel Studio can help developers to make their serial coded apps saver and more efficient.</li>
</ul>
<p>In terms of code safety the <a href="http://software.intel.com/en-us/videos/intel-parallel-inspector-memory-checker/">Memory Checker</a> (which is part of the Parallel Inspector) can identify critical and most likely memory leaks while running an application. This is something you'll hardly find with your known software engineering tools. Furthermore with <a href="http://software.intel.com/en-us/intel-parallel-amplifier/">Parallel Amplifier</a> which belongs to Intel Parallel Studio too, it's also possible to raise the overall application performance by finding some critical bottlenecks and hotspots within the serial coded app. For example the tool identifies an often used loop which contains a huge bug and takes far too much time when being executed. As a result the application takes too much execution time than necessary. With the help of Parallel Amplifier you can eliminate that!</p>
<ul>
<li>Besides those parallel programming sessions you can stop by at Rami Radi's tech session. Rami will talk about how you as a developer can give "Your App a Triple Boost with Windows 7, Microsoft .NET Framework 4.0 and Intel Multi-Core". From what I've heard his session will be fully packed with interesting insights as "How to optimize .NET code with the help of <a href="http://software.intel.com/en-us/intel-vtune/">Intel VTune Performance Analyzer</a>". But no worries: You will find all these information on this dedicated TechEd09 blog. So don't forget to bookmark it and stop by later on.</li>
</ul>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/IntelSoftwareNetworkBlog?a=TdY_o_f2SQ0:_zO6qrv6Yk0:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/IntelSoftwareNetworkBlog?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/IntelSoftwareNetworkBlog?a=TdY_o_f2SQ0:_zO6qrv6Yk0:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/IntelSoftwareNetworkBlog?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/IntelSoftwareNetworkBlog?a=TdY_o_f2SQ0:_zO6qrv6Yk0:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/IntelSoftwareNetworkBlog?i=TdY_o_f2SQ0:_zO6qrv6Yk0:V_sGLiPBpWU" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/IntelSoftwareNetworkBlog/~4/TdY_o_f2SQ0" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://software.intel.com/en-us/blogs/2009/11/05/teched09-what-you-can-expect-from-intels-conference-attendance/feed/</wfw:commentRss>
		<feedburner:origLink>http://software.intel.com/en-us/blogs/2009/11/05/teched09-what-you-can-expect-from-intels-conference-attendance/</feedburner:origLink></item>
		<item>
		<title>New video, Community Member at Large Chosen, Odds and Ends...</title>
		<link>http://feedproxy.google.com/~r/IntelSoftwareNetworkBlog/~3/2p7K5uNEoz4/</link>
		<comments>http://software.intel.com/en-us/blogs/2009/11/04/new-video-community-member-at-large-chosen-odds-and-ends/#comments</comments>
		<pubDate>Thu, 05 Nov 2009 05:44:48 +0000</pubDate>
		<dc:creator>Kathy Farrel (Intel)</dc:creator>
		
		<category><![CDATA[Manageability]]></category>

		<category><![CDATA[Andy Schiestl]]></category>

		<category><![CDATA[Community Member at Large]]></category>

		<category><![CDATA[Intel AMT]]></category>

		<category><![CDATA[Intel KVM: This is your SOL on Steroids]]></category>

		<category><![CDATA[REM SDK]]></category>

		<category><![CDATA[Remote Encryption Management]]></category>

		<category><![CDATA[Shmuel Gershon]]></category>

		<category><![CDATA[Tim Duncan]]></category>

		<guid isPermaLink="false">http://software.intel.com/en-us/blogs/2009/11/04/new-video-community-member-at-large-chosen-odds-and-ends/</guid>
		<description><![CDATA[Our community has snagged some new high-quality stuff lately starting with Shmuel Gershon's dynamically entitled blog: "Intel KVM: This is your SOL on Steroids". Shmuel is pretty knowledgeable about this new Intel® AMT™ feature, to be available on some 2010 platforms, and a big fan as well. I think we'll be hearing more from him [...]]]></description>
			<content:encoded><![CDATA[<p>Our community has snagged some new high-quality stuff lately starting with <a href="http://software.intel.com/en-us/blogs/author/shmuel-gershon/">Shmuel Gershon's</a> dynamically entitled blog: <a href="http://software.intel.com/en-us/blogs/2009/10/18/intel-kvm-this-is-your-sol-on-steroids/">"Intel KVM: This is your SOL on Steroids"</a>. Shmuel is pretty knowledgeable about this new <a href="http://software.intel.com/en-us/articles/intel-active-management-technology-intel-amt-software-development-kit-sdk-start-here-guide/">Intel® AMT™</a> feature, to be available on some 2010 platforms, and a big fan as well. I think we'll be hearing more from him on this subject and others. If you haven't yet read his blog please take a little time to do so - many folks have already. Shmuel embedded a <a href="http://www.youtube.com/watch?v=RReVh_shSPc">neat video</a> in his blog too, which nicely illustrates his commentary. Thanks again Shmuel - we can't wait for your next post!!</p>
<p>Tim Duncan and Andy Schiestle this week released a <a href="http://software.intel.com/en-us/videos/Unlock-many-full-drive-encrypted-clients/">new Remote Encryption Management video</a>, showing you how to unclock remote clients. It also gives you more instruction about using the REM SDK itself. </p>
<p>We are helping to promote a new Intel Press book: <a href="http://www.intel.com/intelpress/sum_eshl.htm">Harnessing the UEFI Shell Moving the platform Beyond Dos</a>. Read authors' descriptions of  the features and capabilities of the shell for the UEFI. "UEFI is not an operating system per se, but is instead intended to be a set of defined interfaces between the system firmware (BIOS), Option ROMs, and operating systems." </p>
<p>Our Community Manager at Large program has started with our selection of Javier Andres Caceres Alvis who works as a Software Engineer for Aranda Software in Bucaramanga, Colombia. He will be attending our content meetings once per month and has already provided some excellent ideas for our community. An extremely astute developer who understands what our community is all about, Javier thinks we need to make "more noise" about Manageability in general and <a href="http://software.intel.com/en-us/articles/intel-active-management-technology-intel-amt-software-development-kit-sdk-start-here-guide/">Intel® AMT™</a> in particular. Stay tuned to find out which of Javier's plans will be put into practice.   </p>
<p>We recently featured a poll concerning language preference. The question was "How comfortable are you with the English Language?" Half of the responders said they were not English speakers but understand English well, 42% of respondents said they were native English speakers. Only eight percent stated that they were not English speakers and that English was difficult for them to understand. This is good news for the most part but eight percent stilll have challenges. Please write to me at kathy.a.farrel@intel.com with ideas on how to reach these folks. The Intel Software Network is working to address different languages and will add more over time.</p>
<p>Hey - did you know we're on Twitter? Follow <a href="http://twitter.com/isnmanage">ISNManage</a> to get the latest on Manageability and our Community.</p>
<p>I will continue to morph our site as I receive more input and discover new areas to interest you!</p>
<p>Keep your cards and letters coming! :-) Tell me what you're thinking about - really. What else can we do to help you with your work?</p>
<p>Kathy</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/IntelSoftwareNetworkBlog?a=2p7K5uNEoz4:0IPlbaIG6hM:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/IntelSoftwareNetworkBlog?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/IntelSoftwareNetworkBlog?a=2p7K5uNEoz4:0IPlbaIG6hM:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/IntelSoftwareNetworkBlog?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/IntelSoftwareNetworkBlog?a=2p7K5uNEoz4:0IPlbaIG6hM:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/IntelSoftwareNetworkBlog?i=2p7K5uNEoz4:0IPlbaIG6hM:V_sGLiPBpWU" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/IntelSoftwareNetworkBlog/~4/2p7K5uNEoz4" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://software.intel.com/en-us/blogs/2009/11/04/new-video-community-member-at-large-chosen-odds-and-ends/feed/</wfw:commentRss>
		<feedburner:origLink>http://software.intel.com/en-us/blogs/2009/11/04/new-video-community-member-at-large-chosen-odds-and-ends/</feedburner:origLink></item>
		<item>
		<title>NAGFO Gaming and Animation Summit, India (6th &amp; 7th Nov 2009)</title>
		<link>http://feedproxy.google.com/~r/IntelSoftwareNetworkBlog/~3/ovXkcTXtg8c/</link>
		<comments>http://software.intel.com/en-us/blogs/2009/11/04/nagfo-gaming-and-animation-summit-india-6th-amp-7th-nov-2009/#comments</comments>
		<pubDate>Thu, 05 Nov 2009 04:14:39 +0000</pubDate>
		<dc:creator>Preethi Raj (Intel)</dc:creator>
		
		<category><![CDATA[Events]]></category>

		<category><![CDATA[Visual Computing]]></category>

		<category><![CDATA[Animation India]]></category>

		<category><![CDATA[India gaming]]></category>

		<category><![CDATA[India gaming event]]></category>

		<guid isPermaLink="false">http://software.intel.com/en-us/blogs/2009/11/04/nagfo-gaming-and-animation-summit-india-6th-amp-7th-nov-2009/</guid>
		<description><![CDATA[We are all geared up to attend NAGFO’s Annual Gaming and Animation Summit that bring together the crème de la crème of the India gaming and animation industry, starting tomorrow in Hyderabad, India. This year one complete day has been dedicated to Game Developers with multiple sessions focusing on various aspects of game development.
The event [...]]]></description>
			<content:encoded><![CDATA[<p class="MsoNormal" style="0in 0in 0pt;"><span style="10pt;"><span style="Calibri;">We are all geared up to attend NAGFO’s Annual Gaming and Animation Summit that bring together the crème de la crème of the India gaming and animation industry, starting tomorrow in Hyderabad, India. This year one complete day has been dedicated to Game Developers with multiple sessions focusing on various aspects of game development.</span></span></p>
<p class="MsoNormal" style="0in 0in 0pt;"><span style="10pt;"><span style="Calibri;">The event keynote will be delivered by Ernest Adams, the founder and first chairman of the International Game Developers' Association, who has authored various books on Game Design and often delivers sessions at GDC.</span></span></p>
<p class="MsoNormal" style="0in 0in 0pt;"><span style="10pt;"></span></p>
<p class="MsoNormal" style="0in 0in 0pt;"><span style="10pt;"><span style="Calibri;">Many other companies seen as pioneers of gaming in India like FX Labs, Hyderabad, Dhruva Interactive, Bangalore, Indiagames, Mumbai, Immersive Games, Hyderabad, Ironcode Software and Interactive Media will be sharing their experiences and success stories.</span></span></p>
<p class="MsoNormal" style="0in 0in 0pt;"><span style="10pt;"><span style="Calibri;">Intel has been working closes with NASSCOM to energize the Indian Gaming Ecosystem and we kick started this effort with monthly webinars in June 2009. Since then we have conduct regular webinars for game developers with Industry experts and Intel Engineers on topics like <em>Challenges of Cross Platform Game Development, <strong><span style="normal;">Making 3D game production faster: Using scripting in 3D Studio Max,</span></strong><strong><span style="&quot;Calibri&quot;,&quot;sans-serif&quot;;"> </span></strong>Crystal Ball Gazing into 3D Game Engine Technology and How to optimize games for PC graphics. </em></span></span></p>
<p class="MsoNormal" style="auto;"><span style="Calibri;"><span style="10pt;">Continuing this association Udaysimha, Program Manager and </span><span style="10pt;">Mark Kim, Engineering Manager, Intel Corporation will be <span style="black;">sharing their</span> experience and learning from the Korean <span style="black;">and Asian markets. They will be delivering a session on <em>Building a successful MMORPG - Technical decisions and best known methods.</em></span></span></span></p>
<p class="MsoNormal" style="0in 0in 0pt;"><span style="10pt;"></span></p>
<p class="MsoNormal" style="0in 0in 0pt;"><span style="Calibri;"><span style="10pt;">Uday, Abarnaa</span><span style="10pt;"> </span><span style="10pt;">and I will be at the Intel booth at the NAGFO Gaming and Animation Summit over the next two days and will bring you live updates. We are looking forward to spending two exciting days in Hyderabad, among Indian gaming stalwarts who will be driving the growth of the Indian gaming industry that is expected to reach USD830 million by 2012 growing at a CAGR of 53%, (according to the NASSCOM report). Stay tuned for more from the NAGFO Gaming and Animation Summit.</span></span></p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/IntelSoftwareNetworkBlog?a=ovXkcTXtg8c:84HyMrXz0Y8:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/IntelSoftwareNetworkBlog?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/IntelSoftwareNetworkBlog?a=ovXkcTXtg8c:84HyMrXz0Y8:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/IntelSoftwareNetworkBlog?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/IntelSoftwareNetworkBlog?a=ovXkcTXtg8c:84HyMrXz0Y8:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/IntelSoftwareNetworkBlog?i=ovXkcTXtg8c:84HyMrXz0Y8:V_sGLiPBpWU" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/IntelSoftwareNetworkBlog/~4/ovXkcTXtg8c" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://software.intel.com/en-us/blogs/2009/11/04/nagfo-gaming-and-animation-summit-india-6th-amp-7th-nov-2009/feed/</wfw:commentRss>
		<feedburner:origLink>http://software.intel.com/en-us/blogs/2009/11/04/nagfo-gaming-and-animation-summit-india-6th-amp-7th-nov-2009/</feedburner:origLink></item>
		<item>
		<title>New Beta for Media SDK</title>
		<link>http://feedproxy.google.com/~r/IntelSoftwareNetworkBlog/~3/Rs3G3N8vM0k/</link>
		<comments>http://software.intel.com/en-us/blogs/2009/11/04/new-beta-for-media-sdk/#comments</comments>
		<pubDate>Thu, 05 Nov 2009 02:25:54 +0000</pubDate>
		<dc:creator>Steve Pitzel (Intel)</dc:creator>
		
		<category><![CDATA[Media]]></category>

		<category><![CDATA[Visual Computing]]></category>

		<category><![CDATA[Media Development]]></category>

		<category><![CDATA[Media SDK]]></category>

		<category><![CDATA[optimizing video]]></category>

		<category><![CDATA[video acceleration]]></category>

		<category><![CDATA[video decoding]]></category>

		<category><![CDATA[video encoding]]></category>

		<guid isPermaLink="false">http://software.intel.com/en-us/blogs/2009/11/04/new-beta-for-media-sdk/</guid>
		<description><![CDATA[The Intel® Media SDK 1.5 Beta is now available as a free  download from the Media Development site!  The major features of this beta release include:

Support for Windows 7 (32 and 64bit)
Media Foundation samples
Plugins: source code MFTs (Decode: H.264, MPEG-2, and VC-1) Encode: H.264
Application (transcode/playback)
Enchanced Video Pre-Processing
Hardware accelerated re-sizing (scaling) and color conversion
Simple frame rate conversion (1:2,1:3, [...]]]></description>
			<content:encoded><![CDATA[<p>The Intel® Media SDK 1.5 Beta is now available as a free  download from the <a title="Media Development" href="http://software.intel.com/en-us/articles/media/">Media Development</a> site!  The major features of this beta release include:</p>
<ul>
<li>Support for Windows 7 (32 and 64bit)</li>
<li>Media Foundation samples</li>
<li>Plugins: source code MFTs (Decode: H.264, MPEG-2, and VC-1) Encode: H.264</li>
<li>Application (transcode/playback)</li>
<li>Enchanced Video Pre-Processing</li>
<li>Hardware accelerated re-sizing (scaling) and color conversion</li>
<li>Simple frame rate conversion (1:2,1:3, 2:1,3:1)</li>
</ul>
<p>If you'd like to provide feedback on this release in the <a href="http://software.intel.com/en-us/forums/intel-media-sdk/">Media SDK Forum</a> - be sure and mention you're working with the 1.5 beta.</p>
<p>- Pitz</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/IntelSoftwareNetworkBlog?a=Rs3G3N8vM0k:oE2c2MjLmZo:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/IntelSoftwareNetworkBlog?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/IntelSoftwareNetworkBlog?a=Rs3G3N8vM0k:oE2c2MjLmZo:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/IntelSoftwareNetworkBlog?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/IntelSoftwareNetworkBlog?a=Rs3G3N8vM0k:oE2c2MjLmZo:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/IntelSoftwareNetworkBlog?i=Rs3G3N8vM0k:oE2c2MjLmZo:V_sGLiPBpWU" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/IntelSoftwareNetworkBlog/~4/Rs3G3N8vM0k" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://software.intel.com/en-us/blogs/2009/11/04/new-beta-for-media-sdk/feed/</wfw:commentRss>
		<feedburner:origLink>http://software.intel.com/en-us/blogs/2009/11/04/new-beta-for-media-sdk/</feedburner:origLink></item>
	</channel>
</rss>
