<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	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:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Blogs &#187; Power Efficiency</title>
	<atom:link href="http://software.intel.com/en-us/blogs/category/power/feed/" rel="self" type="application/rss+xml" />
	<link>http://software.intel.com/en-us/blogs</link>
	<description></description>
	<lastBuildDate>Fri, 25 May 2012 22:49:19 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.3</generator>
		<item>
		<title>My wife bought an Ultrabook – and LOVES it!</title>
		<link>http://software.intel.com/en-us/blogs/2012/04/02/my-wife-bought-an-ultrabook-and-loves-it/</link>
		<comments>http://software.intel.com/en-us/blogs/2012/04/02/my-wife-bought-an-ultrabook-and-loves-it/#comments</comments>
		<pubDate>Tue, 03 Apr 2012 05:17:31 +0000</pubDate>
		<dc:creator>Matt Ployhar (Intel)</dc:creator>
				<category><![CDATA[Academic]]></category>
		<category><![CDATA[Events]]></category>
		<category><![CDATA[Game Development]]></category>
		<category><![CDATA[Graphics & Media]]></category>
		<category><![CDATA[Intel SW Partner Program]]></category>
		<category><![CDATA[Intel® AppUp Developer Program]]></category>
		<category><![CDATA[Mobility]]></category>
		<category><![CDATA[Performance and Optimization]]></category>
		<category><![CDATA[Power Efficiency]]></category>
		<category><![CDATA[Ultrabook]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[PC Gaming Ultrabook]]></category>

		<guid isPermaLink="false">http://software.intel.com/en-us/blogs/2012/04/02/my-wife-bought-an-ultrabook-and-loves-it/</guid>
		<description><![CDATA[Right now we have 4 PC laptops in our house; 5 if you count the iPad 2 being a ‘personal computing’ device. There’s my work HP Pavilion dv6, my personal Alienware M11x, her former Dell XPS M1530, which just got replaced by the Asus Zen book UX 31. In my sixteen years of being in [...]]]></description>
			<content:encoded><![CDATA[<p>Right now we have 4 PC laptops in our house; 5 if you count the iPad 2 being a ‘personal computing’ device.   There’s my work HP Pavilion dv6, my personal Alienware M11x, her former Dell XPS M1530, which just got replaced by the Asus Zen book UX 31.  In my sixteen years of being in the tech industry, and thirteen being with my wife, I’ve never seen her get so excited, and delighted, about technology and or a PC.  The only other time that gets this close would have been when I bought her an iPhone.  Sure…. We love our iPad 2, but tend to use it more for what’s termed ‘snacking’, or simply just casually surfing the internet, looking something up, perusing the occasional YouTube video, etc.   So this got me thinking that if something like an Ultrabook can have that sort of an impact on my wife, and reach a broader demographic than myself, then it warrants taking a closer look at.  </p>
<p>So what things does she like most about it? The below is in her words.</p>
<p>1) She loves the design, how sleek it is, and the brushed metal appearance.<br />
2) Loves the small form factor – fits in most of her handbags.<br />
3) Loves the Keyboard. Likes the spacing between the keys &#038; the way they feel.<br />
4) Setup was seamless, found all her ‘piles of different devices’.  “Right out of the box everything worked”.<br />
5) Liked the fact she didn’t have to download a bunch of updates.  Was up and running quickly.<br />
6) The Solid State drive.  (I asked her how she knew about that) – ‘because she read up on it’.<br />
7) Boots up super-fast.<br />
8) Likes the attention to detail.<br />
9) Out of box experience was great.  Wasn’t like unpacking something from just a bunch of cardboard.<br />
10) Likes the Case it came with, it’s like an envelope case.<br />
11) Loves the battery life.</p>
<p>	Ok… so I realize this is a sample of one; but I’m struck at how quickly she rattled off all the above features without even thinking about it.  So… about ten minutes later I asked her – ‘So what do you like about the iPad 2’?   (Note: It took her about three times the length of time to list the following things)</p>
<p>1) Touch screen.<br />
2) Size of the Form Factor.<br />
3) Convenience that it offers in being able to multi-task.<br />
4) Can play games on it.<br />
5) Good for reading stuff.<br />
6) Quickly checking email.</p>
<p>That’s where it ended… and then about three minutes later she says … ‘well, now with my Ultrabook, the iPad has now pretty much been relegated to being a kitchen gadget’.<br />
Interesting….<br />
So then I flipped the bit and asked her – ‘Is there anything you don’t like about your Ultrabook?’ – Answer: “not yet”.   IMO that's pretty cool.</p>
<p>Ok - so now onto some gratuitous pics of most of these devices.   (Note:  I didn’t include my Alienware M11x this time around).   In the foreground – bottom to top:  iPad 2, Asus Ultrabook, HP dv6, and then the Dell M1530<br />
<a href="http://software.intel.com/en-us/blogs/wordpress/wp-content/uploads/2012/04/IMG_1251.jpg"><img src="http://software.intel.com/en-us/blogs/wordpress/wp-content/uploads/2012/04/IMG_1251-224x300.jpg" alt="4 PC devices" title="IMG_1251" width="224" height="300" class="aligncenter size-medium wp-image-46409" /></a></p>
<p>In this next pic.. I’m comparing the thickness of the Dell to the Asus Ultrabook.<br />
<a href="http://software.intel.com/en-us/blogs/wordpress/wp-content/uploads/2012/04/IMG_1254.jpg"><img src="http://software.intel.com/en-us/blogs/wordpress/wp-content/uploads/2012/04/IMG_1254-300x224.jpg" alt="Ultrabook on top of Dell 1530" title="IMG_1254" width="300" height="224" class="aligncenter size-medium wp-image-46410" /></a</p>
<p>In this following pic I’m comparing the thickness of the Ultrabook (on the bottom) as compared to the iPad 2<br />
<a href="http://software.intel.com/en-us/blogs/wordpress/wp-content/uploads/2012/04/IMG_1256.jpg"><img src="http://software.intel.com/en-us/blogs/wordpress/wp-content/uploads/2012/04/IMG_1256-300x224.jpg" alt="iPad 2 on top of UB" title="IMG_1256" width="300" height="224" class="aligncenter size-medium wp-image-46411" /></a></p>
<p>In this final pic I’m comparing the iPad 2 (I had to put the case back on it in order to prop it up), the Ultrabook, and then the HP dv6<br />
<a href="http://software.intel.com/en-us/blogs/wordpress/wp-content/uploads/2012/04/IMG_1261.jpg"><img src="http://software.intel.com/en-us/blogs/wordpress/wp-content/uploads/2012/04/IMG_1261-300x224.jpg" alt="iPad 2 - UB - HP" title="IMG_1261" width="300" height="224" class="aligncenter size-medium wp-image-46412" /></a> </p>
<p>For those concerned about the dimension of weight.  The Dell XPS for example weighs 5.9lbs  (2.6 kg), the Ultrabook comes in at 2.9lbs (1.3 kg).  This weight factor alone is one of the biggest selling points for me.  The best part is that I’m seeing little to no tradeoffs yet with regards to overall performance. These devices are packing a pretty serious punch.</p>
<p>So – in a nutshell I’m having some serious PC Laptop envy right now.   I might wait a few more months though.  For those that have been following the Ultrabook category – we should also start seeing the Ultrabooks that also integrate ‘touch’ – and convert into being either a Laptop and or a Tablet when you want it.   At any rate, I’m very sold on the concept, and yes, I’m keeping a very close eye on ensuring that all the games we PC Gamers love to play – play well on these!  Stay tuned!</p>
]]></content:encoded>
			<wfw:commentRss>http://software.intel.com/en-us/blogs/2012/04/02/my-wife-bought-an-ultrabook-and-loves-it/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Dualbooting Windows 7 and Windows 8</title>
		<link>http://software.intel.com/en-us/blogs/2012/03/20/dualbooting-windows-7-and-windows-8/</link>
		<comments>http://software.intel.com/en-us/blogs/2012/03/20/dualbooting-windows-7-and-windows-8/#comments</comments>
		<pubDate>Tue, 20 Mar 2012 22:08:52 +0000</pubDate>
		<dc:creator>Rami Radi (Intel)</dc:creator>
				<category><![CDATA[Academic]]></category>
		<category><![CDATA[Intel SW Partner Program]]></category>
		<category><![CDATA[Parallel Programming]]></category>
		<category><![CDATA[Performance and Optimization]]></category>
		<category><![CDATA[Power Efficiency]]></category>
		<category><![CDATA[Site News & Announcements]]></category>
		<category><![CDATA[Software Tools]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[dual boot]]></category>
		<category><![CDATA[dual booting]]></category>
		<category><![CDATA[dualboot]]></category>
		<category><![CDATA[Windows 8]]></category>
		<category><![CDATA[Windows 8 Consumer Preview]]></category>

		<guid isPermaLink="false">http://software.intel.com/en-us/blogs/2012/03/20/dualbooting-windows-7-and-windows-8/</guid>
		<description><![CDATA[The Windows 8 Consumer Preview ISO image became public a few days ago, which is available here, so I am sure a lot of people are interested in trying it out on their development systems without replacing their current Windows 7 installation. If you've ever dual booted a system before, the procedure for doing it [...]]]></description>
			<content:encoded><![CDATA[<p>The Windows 8 Consumer Preview ISO image became public a few days ago, which is available <a href="http://windows.microsoft.com/en-US/windows-8/iso">here</a>, so I am sure a lot of people are interested in trying it out on their development systems without replacing their current Windows 7 installation.</p>
<p>If you've ever dual booted a system before, the procedure for doing it for Windows 8 is not all that different. In summary, all you need to do is create a new partition for Windows 8, install it on that partition, and then edit your new boot menu if you want to keep Windows 7 as the default OS.</p>
<p><strong>Step One: Download and burn the Windows 8 Consumer Preview</strong></p>
<p>• Assuming that you downloaded the Consumer preview ISO image from the link above, you can use the <a href="http://www.microsoftstore.com/store/msstore/html/pbPage.Help_Win7_usbdvd_dwnTool">“ Microsoft Windows 7 USB/DVD Download Tool</a> to either burn the ISO image to a DVD disc or a USB drive. The tool is free, and very small, and installation instructions are available in the site itself and are very simple. Of course if you prefer to use other burning software like ImgBurn, you can do that too.</p>
<p><a href="http://software.intel.com/en-us/blogs/wordpress/wp-content/uploads/2012/03/screenshot4.png"><img src="http://software.intel.com/en-us/blogs/wordpress/wp-content/uploads/2012/03/screenshot4-300x168.png" alt="" width="300" height="168" class="alignnone size-medium wp-image-45518" /></a></p>
<p><a href="http://software.intel.com/en-us/blogs/wordpress/wp-content/uploads/2012/03/screenshot1.png"><img src="http://software.intel.com/en-us/blogs/wordpress/wp-content/uploads/2012/03/screenshot1-300x168.png" alt="" width="300" height="168" class="alignnone size-medium wp-image-45519" /></a></p>
<p><a href="http://software.intel.com/en-us/blogs/wordpress/wp-content/uploads/2012/03/screenshot5.png"><img src="http://software.intel.com/en-us/blogs/wordpress/wp-content/uploads/2012/03/screenshot5-300x168.png" alt="" width="300" height="168" class="alignnone size-medium wp-image-45520" /></a></p>
<p><strong>Step Two: Create a New Partition</strong></p>
<p>• Before you start, make sure to make a backup of your data and files. We will be creating new partitions and installing a new OS, so anything could go wrong, and you don't want to lose your everything. For paranoid people like me, I like taking "bare metal" backups of my systems with a wonderful open source and free tool called <a href="http://redobackup.org/">Redo Backup</a>. A bare metal backup takes a complete image of your hard drive, with all of its partitions. That way, I am able to restore my entire system the way it was exactly if needed. Going into more details about backups however is another topic.</p>
<p>• When you're ready, from within Windows 7, we will create some space for Windows 8 by using Windows' Disk Management. Click on the Start Menu and right click on "Computer", then click "Manage", and in the window that appears, click on "Disk Management" in the left sidebar.</p>
<p><a href="http://software.intel.com/en-us/blogs/wordpress/wp-content/uploads/2012/03/screenshot91.png"><img src="http://software.intel.com/en-us/blogs/wordpress/wp-content/uploads/2012/03/screenshot91-300x168.png" alt="" width="300" height="168" class="alignnone size-medium wp-image-45522" /></a></p>
<p>• Find your system hard disk in the graphical list that appears in the bottom pane. Right-click on it and then click "Shrink Volume".  20 GBs is a reasonable size that is not too small and not too big for the new Windows 8 partition, so shrink it down so you have at least 20GB of space left on the end of the drive, and click OK. Of course if you think you need more than 20 GB (if you are going to do intensive development and/or testing), or less than 20GB (if you don’t have enough space on your Windows 7 partition), then please feel free to choose a different size.</p>
<p><a href="http://software.intel.com/en-us/blogs/wordpress/wp-content/uploads/2012/03/screenshot10.png"><img src="http://software.intel.com/en-us/blogs/wordpress/wp-content/uploads/2012/03/screenshot10-300x168.png" alt="" width="300" height="168" class="alignnone size-medium wp-image-45523" /></a></p>
<p><a href="http://software.intel.com/en-us/blogs/wordpress/wp-content/uploads/2012/03/screenshot11.png"><img src="http://software.intel.com/en-us/blogs/wordpress/wp-content/uploads/2012/03/screenshot11-300x168.png" alt="" width="300" height="168" class="alignnone size-medium wp-image-45524" /></a></p>
<p><a href="http://software.intel.com/en-us/blogs/wordpress/wp-content/uploads/2012/03/screenshot12.png"><img src="http://software.intel.com/en-us/blogs/wordpress/wp-content/uploads/2012/03/screenshot12-300x168.png" alt="" width="300" height="168" class="alignnone size-medium wp-image-45525" /></a></p>
<p>• Then, click on the "Unallocated" block of that drive that appears and click "New Simple Volume". Click Next on the next few windows until you reach the "Format Partition" window. Here, give it a volume label you'll recognize (like "Windows 8") and click Next. It should format the drive for you. Now you're all set to install Windows 8.</p>
<p><a href="http://software.intel.com/en-us/blogs/wordpress/wp-content/uploads/2012/03/screenshot13.png"><img src="http://software.intel.com/en-us/blogs/wordpress/wp-content/uploads/2012/03/screenshot13-300x168.png" alt="" width="300" height="168" class="alignnone size-medium wp-image-45527" /></a></p>
<p><a href="http://software.intel.com/en-us/blogs/wordpress/wp-content/uploads/2012/03/screenshot14.png"><img src="http://software.intel.com/en-us/blogs/wordpress/wp-content/uploads/2012/03/screenshot14-300x168.png" alt="" width="300" height="168" class="alignnone size-medium wp-image-45528" /></a></p>
<p><a href="http://software.intel.com/en-us/blogs/wordpress/wp-content/uploads/2012/03/screenshot151.png"><img src="http://software.intel.com/en-us/blogs/wordpress/wp-content/uploads/2012/03/screenshot151-300x168.png" alt="" width="300" height="168" class="alignnone size-medium wp-image-45530" /></a></p>
<p><a href="http://software.intel.com/en-us/blogs/wordpress/wp-content/uploads/2012/03/screenshot16.png"><img src="http://software.intel.com/en-us/blogs/wordpress/wp-content/uploads/2012/03/screenshot16-300x168.png" alt="" width="300" height="168" class="alignnone size-medium wp-image-45531" /></a></p>
<p><a href="http://software.intel.com/en-us/blogs/wordpress/wp-content/uploads/2012/03/screenshot17.png"><img src="http://software.intel.com/en-us/blogs/wordpress/wp-content/uploads/2012/03/screenshot17-300x168.png" alt="" width="300" height="168" class="alignnone size-medium wp-image-45532" /></a></p>
<p><a href="http://software.intel.com/en-us/blogs/wordpress/wp-content/uploads/2012/03/screenshot18.png"><img src="http://software.intel.com/en-us/blogs/wordpress/wp-content/uploads/2012/03/screenshot18-300x168.png" alt="" width="300" height="168" class="alignnone size-medium wp-image-45533" /></a></p>
<p><a href="http://software.intel.com/en-us/blogs/wordpress/wp-content/uploads/2012/03/screenshot19.png"><img src="http://software.intel.com/en-us/blogs/wordpress/wp-content/uploads/2012/03/screenshot19-300x168.png" alt="" width="300" height="168" class="alignnone size-medium wp-image-45534" /></a></p>
<p><strong>Step Three: Install Windows 8</strong></p>
<p>• Now reboot your system, and go into your BIOS settings (for most systems, you need to press F2 or DEL). Now make sure your computer is set to boot from CD or USB as a first priority (depending on what medium you have decided to use earlier). This may be different from system to system though. Now reboot.</p>
<p><a href="http://software.intel.com/en-us/blogs/wordpress/wp-content/uploads/2012/03/IMG_0013.jpg"><img src="http://software.intel.com/en-us/blogs/wordpress/wp-content/uploads/2012/03/IMG_0013-300x167.jpg" alt="" width="300" height="167" class="alignnone size-medium wp-image-45535" /></a></p>
<p>• Now you should boot into the Windows 8 installer. It looks very similar to the Windows 7 installer, so it should be familiar. Pick your language and hit "Install Now”.</p>
<p><a href="http://software.intel.com/en-us/blogs/wordpress/wp-content/uploads/2012/03/1.jpg"><img src="http://software.intel.com/en-us/blogs/wordpress/wp-content/uploads/2012/03/1-300x167.jpg" alt="" width="300" height="167" class="alignnone size-medium wp-image-45536" /></a></p>
<p>• Enter the Product Key available on the Windows 8 Consumer Preview download page.</p>
<p><a href="http://software.intel.com/en-us/blogs/wordpress/wp-content/uploads/2012/03/2.jpg"><img src="http://software.intel.com/en-us/blogs/wordpress/wp-content/uploads/2012/03/2-300x167.jpg" alt="" width="300" height="167" class="alignnone size-medium wp-image-45537" /></a></p>
<p>• Now choose "Custom" when asked what type of install you'd like to perform. Then find the new partition you created on the list of drives shown. Make sure it's the right one, because remember, you are about to write over whatever is on it.</p>
<p><a href="http://software.intel.com/en-us/blogs/wordpress/wp-content/uploads/2012/03/3.jpg"><img src="http://software.intel.com/en-us/blogs/wordpress/wp-content/uploads/2012/03/3-300x167.jpg" alt="" width="300" height="167" class="alignnone size-medium wp-image-45538" /></a></p>
<p><a href="http://software.intel.com/en-us/blogs/wordpress/wp-content/uploads/2012/03/4.jpg"><img src="http://software.intel.com/en-us/blogs/wordpress/wp-content/uploads/2012/03/4-300x167.jpg" alt="" width="300" height="167" class="alignnone size-medium wp-image-45545" /></a></p>
<p><a href="http://software.intel.com/en-us/blogs/wordpress/wp-content/uploads/2012/03/5.jpg"><img src="http://software.intel.com/en-us/blogs/wordpress/wp-content/uploads/2012/03/5-300x167.jpg" alt="" width="300" height="167" class="alignnone size-medium wp-image-45546" /></a></p>
<p>• Hit "Next" and let the installer do its thing. When you're done, your computer should reboot into Windows 8. It'll probably reboot one more time after it does, then you will see the Windows 8 Start screen.</p>
<p><a href="http://software.intel.com/en-us/blogs/wordpress/wp-content/uploads/2012/03/6.jpg"><img src="http://software.intel.com/en-us/blogs/wordpress/wp-content/uploads/2012/03/6-300x167.jpg" alt="" width="300" height="167" class="alignnone size-medium wp-image-45541" /></a></p>
<p><strong>Step Four: Make Windows 7 the Default OS Again<strong></p>
<p>• You'll notice when you first boot up into Windows 8 the new graphical boot menu that will let you choose between Windows 7 and Windows 8. Windows 8 will be the default, meaning if you don't manually choose Windows 7 from the menu, your computer will boot into Windows 8 after 3 seconds, unless you interrupt it. If this is not something you want, follow the steps below to make Windows 7 the default OS again.</p>
<p>• On the boot menu, click on the button at the bottom that says "Change Defaults or Choose Other Options", and hit "Choose the Default Operating System". From there, you can pick Windows 7 from the menu. From now on, your computer will boot into Windows 7 by default</p>
<p><a href="http://software.intel.com/en-us/blogs/wordpress/wp-content/uploads/2012/03/78.jpg"><img src="http://software.intel.com/en-us/blogs/wordpress/wp-content/uploads/2012/03/78-300x167.jpg" alt="" width="300" height="167" class="alignnone size-medium wp-image-45543" /></a></p>
<p><a href="http://software.intel.com/en-us/blogs/wordpress/wp-content/uploads/2012/03/1.png"><img src="http://software.intel.com/en-us/blogs/wordpress/wp-content/uploads/2012/03/1-300x168.png" alt="" width="300" height="168" class="alignnone size-medium wp-image-45548" /></a></p>
<p>Thats it. Enjoy using the Windows 8 Consumer Preview, on your dualboot system.</p>
<p>Rami</p>
]]></content:encoded>
			<wfw:commentRss>http://software.intel.com/en-us/blogs/2012/03/20/dualbooting-windows-7-and-windows-8/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Hear what other developers are saying about the new Ultrabook™</title>
		<link>http://software.intel.com/en-us/blogs/2012/03/12/hear-what-other-developers-are-saying-about-the-new-ultrabook/</link>
		<comments>http://software.intel.com/en-us/blogs/2012/03/12/hear-what-other-developers-are-saying-about-the-new-ultrabook/#comments</comments>
		<pubDate>Tue, 13 Mar 2012 00:02:30 +0000</pubDate>
		<dc:creator>Rick Puckett (Intel)</dc:creator>
				<category><![CDATA[Game Development]]></category>
		<category><![CDATA[Graphics & Media]]></category>
		<category><![CDATA[Manageability & Security]]></category>
		<category><![CDATA[Mobility]]></category>
		<category><![CDATA[Power Efficiency]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Ultrabook]]></category>

		<guid isPermaLink="false">http://software.intel.com/en-us/blogs/2012/03/12/hear-what-other-developers-are-saying-about-the-new-ultrabook/</guid>
		<description><![CDATA[By now you’ve probably heard about Ultrabook and this next evolution in personal computing. Like me, you are probably curious about all of the cool things you’ve been hearing; they’re really light and thin, fast, and have longer battery life than traditional laptops. Well here is your chance to hear what other developers are saying [...]]]></description>
			<content:encoded><![CDATA[<p>By now you’ve probably heard about <a href="http://software.intel.com/en-us/ultrabook/?cid=sw:ubcomm011">Ultrabook</a> and this next evolution in personal computing. Like me, you are probably curious about all of the cool things you’ve been hearing; they’re really light and thin, fast, and have longer battery life than traditional laptops. Well here is your chance to hear what other developers are saying about them as they conduct an 8 week evaluation of Ultrabooks from Asus, Acer and Toshiba. It’s all here including comments, videos, and perceptions from 10 developers from the around the world. <a href="http://www.codeproject.com/KB/hardware-review/?cid=sw:ubblog001">Hear what your peers are saying!</a> </p>
]]></content:encoded>
			<wfw:commentRss>http://software.intel.com/en-us/blogs/2012/03/12/hear-what-other-developers-are-saying-about-the-new-ultrabook/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Can I still get an Energy Efficient Free Lunch?</title>
		<link>http://software.intel.com/en-us/blogs/2012/02/17/can-i-still-get-an-energy-efficient-free-lunch/</link>
		<comments>http://software.intel.com/en-us/blogs/2012/02/17/can-i-still-get-an-energy-efficient-free-lunch/#comments</comments>
		<pubDate>Fri, 17 Feb 2012 23:49:28 +0000</pubDate>
		<dc:creator>Clay Breshears (Intel)</dc:creator>
				<category><![CDATA[Power Efficiency]]></category>
		<category><![CDATA[mobile apps]]></category>
		<category><![CDATA[Ultrabook]]></category>

		<guid isPermaLink="false">http://software.intel.com/en-us/blogs/2012/02/17/can-i-still-get-an-energy-efficient-free-lunch/</guid>
		<description><![CDATA[When the semiconductor industry was turning to multicore chips and lowering clock rates, Herb Sutter wrote a seminal article entitled "The Free Lunch is Over: A Fundamental Turn Toward Concurrency in Software." Up to that point software developers relied on the increasing clock speeds (the "free lunch") to give their software a boost in the next generation [...]]]></description>
			<content:encoded><![CDATA[<p>When the semiconductor industry was turning to multicore chips and lowering clock rates, Herb Sutter wrote a seminal article entitled "<a href="http://www.gotw.ca/publications/concurrency-ddj.htm">The Free Lunch is Over: A Fundamental Turn Toward Concurrency in Software</a>." Up to that point software developers relied on the increasing clock speeds (the "free lunch") to give their software a boost in the next generation of processors. Mr. Sutter was serving notice that this practice was over and programmers would now need to turn to parallel programming to get improved performance.</p>
<p>I got to thinking about this the other day and contemplated on whether or not this applied to more than just execution speed performance. Specifially, I was wondering if we're still in the free lunch phase with regards to energy efficient performance or if developers can still coast on their laurels since new hardware continues to become still better at using less and less energy.</p>
<p>I arrived as this existential conundrum as I was looking over an internal presentation for an upcoming processor release from Intel. One prominent feature that was touted was the increase in energy efficiency to be realized by the new chip. Better technology has reduced the energy leakage within processor circuits. I imagine that there is more research and development (or already has been such R&amp;D) that can be and will be done in the near future to get even better energy performance from processors. If that is the case, why should software developers be concerned with programming applications that actively conserve power?</p>
<p>(If you're a laurel coaster, stop here, don't read the rest of this post, and go check out your favorite online comic strip.)</p>
<p>For those of you that are still reading, let me first say, you can be sure that your competitors are taking steps to write software that uses the processing cores more efficiently. In terms of performance, the fastest software will be the one that sells more copies. Energy efficiency has become another dimension for comparing competing software products. In some cases, it might even be the more important dimension for a consumer's choice.</p>
<p>Mobile devices have become nearly ubiquitous (or so they tell me). After some amount of use these devices need to be recharged. If your application runs down the stored battery power faster than an alternative product, users will gravitate to that competing software. Device owners have already spent a pretty penny on their current hardware.  It is highly unlikely they are willing to wait months to upgrade to a model with a better energy conserving processor in order for your software to not drain the battery as quickly. If this is your strategy for energy efficient performance, you've already lost the sale. Even if users would be willing to wait, they'll be using something else and getting familiar with that software. Besides, the better energy efficiency of a new processor will also benefit your competition's software.</p>
<p>Secondly, it's really not all that hard to program for energy efficient performance. Many of the things you would already do for execution optimization and performance (use better algorithms, multiple threads, compiler optimizations, etc.) will directly benefit the power consumption rate of your software. For more techniques and ideas on how to upgrade your applications to be more energy efficient, visit the Intel <a href="http://software.intel.com/en-us/articles/energy-efficient-software/">Power Efficiency Community</a>.</p>
<p>Sitting around and waiting for the next helping of improved energy efficient hardware "free lunch" to make your software better is easy. (Heck, you might even be able to surreptitiously take time off from work to practice your drumming at the beach.) But if you're interested in making your software the best that it can be and the most desired products to consumers, be proactive and start looking at how to improve your application's power considerations today. There will be time for beach drumming after you make that first million dollar$.</p>
]]></content:encoded>
			<wfw:commentRss>http://software.intel.com/en-us/blogs/2012/02/17/can-i-still-get-an-energy-efficient-free-lunch/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Sweet 16?</title>
		<link>http://software.intel.com/en-us/blogs/2012/02/06/sweet-16/</link>
		<comments>http://software.intel.com/en-us/blogs/2012/02/06/sweet-16/#comments</comments>
		<pubDate>Mon, 06 Feb 2012 21:59:29 +0000</pubDate>
		<dc:creator>Clay Breshears (Intel)</dc:creator>
				<category><![CDATA[Parallel Programming]]></category>
		<category><![CDATA[Power Efficiency]]></category>
		<category><![CDATA[Server]]></category>

		<guid isPermaLink="false">http://software.intel.com/en-us/blogs/2012/02/06/sweet-16/</guid>
		<description><![CDATA[Have we already hit the maximum number of cores that can be put in our processors? Or have the needs of the user and developer communities been served at sixteen cores?]]></description>
			<content:encoded><![CDATA[<p>I just saw the article "<a title="AMD calls end to core growth on server chips" href="http://news.techworld.com/data-centre/3334884/amd-calls-end-ot-core-growth-on-server-chips/">AMD calls end to core growth on server chips</a>" at Techworld.com. The gist of the article is that AMD has decided to produce server chips with no more than 16 cores. There were some interesting future directions outlined and hinted at by the end of the article, too.</p>
<p>What seemed most disturbing to me was the limit on the number of cores being self-inflicted. Surely we can't have reached the maximum number of cores that are possible to squeeze onto a chip? The whole "right turn" idea to add cores rather than try to cool processors reaching rocket engine temperatures was less than 10 years ago. I'm not sure where the physics starts to overshadow Moore's Law, but I thought I'd  heard that a few more generations of smaller wire sizes in processor dies were still possible. So why not push more and more cores into the same package?</p>
<p>It might be that the average server application (and, perhaps even more so, consumer applications) can't scale well beyond some fixed number of cores. How many cores does it take to type and post a tweet or update your Facebook status or to watch a streaming video? Would any of those tasks be faster or somehow enhanced if there were twice the number of cores available?</p>
<p>If we stop increasing the core counts in the next 5 years, how will new chips keep fulfilling the ever-growing hunger for more performance by consumers? Maybe it won't be about faster and faster application exeuction, but more about less energy consumption while maintaining a level of performance. I guess at some point we'll stop being concerned about Gigahertz or core counts because all processors will be able to do many of the same tasks in about the same amount of time.</p>
<p>I do know that power consumption is going to be a major driving design force as HPC moves closer toward Exascale platforms.  Thus, if the THX-1138 processor draws power twice as fast as the CFM602 processor, I would be more likely to build my system equipped with the former.</p>
]]></content:encoded>
			<wfw:commentRss>http://software.intel.com/en-us/blogs/2012/02/06/sweet-16/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Using Amdahl&#039;s Law for Energy Efficient Performance Estimation?</title>
		<link>http://software.intel.com/en-us/blogs/2012/01/26/using-amdahls-law-for-energy-efficient-performance-estimation/</link>
		<comments>http://software.intel.com/en-us/blogs/2012/01/26/using-amdahls-law-for-energy-efficient-performance-estimation/#comments</comments>
		<pubDate>Thu, 26 Jan 2012 21:24:03 +0000</pubDate>
		<dc:creator>Clay Breshears (Intel)</dc:creator>
				<category><![CDATA[Parallel Programming]]></category>
		<category><![CDATA[Power Efficiency]]></category>

		<guid isPermaLink="false">http://software.intel.com/en-us/blogs/2012/01/26/using-amdahls-law-for-energy-efficient-performance-estimation/</guid>
		<description><![CDATA[While trying to find an answer to my previous question, I stumbled across the paper "Extending Amdahl's Law for Energy-Efficient Computing in the Many-Core Era" (Computer, Dec. 2008, pp. 24-31) by Dong Hyuk Woo and Hsien-Hsin S. Lee (Georgia Institute of Technology). The title had me thinking that this might be an investigation into finding [...]]]></description>
			<content:encoded><![CDATA[<p>While trying to find an answer to my <a href="http://software.intel.com/en-us/blogs/2012/01/18/how-would-you-define-energy-efficient/">previous question</a>, I stumbled across the paper "Extending Amdahl's Law for Energy-Efficient Computing in the Many-Core Era" (<em>Computer</em>, Dec. 2008, pp. 24-31) by Dong Hyuk Woo and Hsien-Hsin S. Lee (Georgia Institute of Technology). The title had me thinking that this might be an investigation into finding a metric or upper bound on how energy efficient an application could be. It didn't quite turn out to be that simple, but the findings are interesting.</p>
<p>The authors look to evaluate which of three possible processor core architectures might be best for parallel execution that minimizes energy consumption. The three model core arrangements are 1) multi-core (several large processing cores on a single chip), 2) manycore (lots and lots of simpler, more power efficient cores), and 3) a combination of a single large core with many simpler cores. The first is like the current dual-, quad-, and hexa-core processors, the second is akin to a GPU, and the third is a hybrid conglomeration of large core sitting on a GPU.</p>
<p>For the purposes of the model formulas, the maximum power consumption of a single large core is normalized to 1 and the power consumption of an idle processor is an added variable, <em>k</em>. For the first architecture, the new variable is used in the traditional Amdahl's Law formula as a multiplier to the serial percentage of time multiplied by the (n-1) idle cores. Some simple algebraic manipulation and the authors generate a formula for estimating the average power consumption, in watts (<em>W</em>), for a parallel application with <em>n </em>cores and the stated percentages of parallel and serial work. A similar derivation is done for the manycore model with the power consumption per simple core being 0.25 of the large core. With the hybrid model, the assumption used to derive a corresponding formula is for the large single core to handle the serial execution and the simpler cores do the parallel work.</p>
<p>Since a measure of the watts consumed is provided by the model, the authors then compute performance per watt (<em>Perf/W</em>) by computing the original Amdahl's formula divided by the formula to compute <em>W</em>. In order to compare the three model to each other, a power budget is imposed, which sets the number of cores available for each model.</p>
<p>The conclusions drawn from comparing the model with various numbers of cores and fractions of parallel execution of the overall execution time are probably the most interesting part of the article. For example, the first result reported is that to achieve the highest <em>Perf/W</em> value in the multi-core model, the parallelization must scale linearly. If the application doesn't scale linearly,the processor (model) must dissipate more energy than the serial version since the idle power of the extra cores scales linearly.</p>
<p>The ultimate result of the paper was that the hybrid model, one large core and many small cores, was the most power scalable. The manycore option does well with high amounts of parallelism and lower power budgets (fewer total cores), but as that budget increases, the number of simple cores increases and the effective serial execution performance does not. The hybrid model, with the single large core in place of several simpler cores, can more efficiently handle the serial portions of the execution (than one simple core out of the dozens sitting idle).</p>
<p>As I was reading the paper I could identify which was the model of current standard multi-core processors available in abundance today. The manycore model could easily be a GPU or MIC accelerator by itself. The hybrid model suggested the combination of a manycore accelerator and a dual-core processor (in the absence of  heterogeneous core chips). I wondered where vector hardware fits into the three models. Considering just the vector registers alone might suggest it would be an instance of the manycore model. However, these registers are part of a larger core, which makes me think of the hybrid model. Maybe they are a second level of parallel execution that isn't accounted for in the three models.</p>
<p>It's a good paper. But I have a couple of quibbles. First, the only way that parallel execution on the multi-core model underachieves the serial equivalent execution is if the sequential code is run on a single core system. A later comment in the paper makes me think that this is the assumption, but it's not too clear. This assumption is not valid in the real-world. For a true apples-apples comparison, the serial code needs to be run on a multi-core processor, too. If that were the case, I contend that the parallel execution consumes less energy.</p>
<p>For example, assume that we have an execution time of 10 time units (let's call them <em>moops</em>) . On a quad core processor running the serial code we would have one core running full speed for 10 <em>moops </em>and the other three cores generate an aggregate 30 <em>moops </em>of idle consumption. If the algorithm is 50% parallel, we would have 5 <em>moops </em>of  full power consumption in serial, 5 <em>moops </em>of full consumption in parallel across four cores, and 15 <em>moops </em>total of idle consumption. Even if the code is 10% parallel there would only be 27 <em>moops </em>of total idle consumption. Any level of (perfect) parallelism is going to prove to consume less energy than the serial equivalent on the same system. Am I missing something?</p>
<p>Note that I included '(perfect)' at the end of the previous paragraph. There will always be overhead in parallel computations and this will expand the execution time of the parallel portions and, consequently, the full consumption time of the execution (e.g., the 50% parallel portion above might require 5.4 <em>moops </em>of full consumption).</p>
<p>Second, Amdahl's Law is an estimate of speedup. Speedup is a dimensionless number. That is, I divide the execution time of the serial code with the time of the parallel execution to get a simple  number since the <em>moops </em>of the two quantities cancel each other out in that calculation. If I need 10 <em>moops </em>of serial time versus 6.35 <em>moops </em>of parallel time, I get a 1.57X speedup. 1.57 whats? ('X' is not a unit.) Speedup is a metric of relative performance, but it's not what I really think of when I think of performance.</p>
<p>To me "performance" is more absolute. Typically this is some countable quantity like number of transactions, floating-point operations, or feet traveled. It can be associated within a time unit measure, too, like transactions per <em>moop</em>, floating-point operations per second, or furlongs per fortnight. Thus, the metrics of transactions per watt or flops per watt or feet per watt make sense to me. Improvements that raise the performance value or lower the watt value show a trend in the right direction for achieving better energy efficient performance.</p>
<p>I'm still not able to quite wrap my head around the efficacy of speedup per watt (or even speedup per joule, which is also used in the Woo and Lee paper) as an absolute measure of energy efficient performance. It may be that I'm reading too much into this and the metrics are simply used to compare the three architectural models described (within the assumptions given). Perhaps it is simpy just a model after all.</p>
]]></content:encoded>
			<wfw:commentRss>http://software.intel.com/en-us/blogs/2012/01/26/using-amdahls-law-for-energy-efficient-performance-estimation/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Meshcentral.com - Now with Pogoplug support!</title>
		<link>http://software.intel.com/en-us/blogs/2012/01/24/meshcentralcom-now-with-pogoplug-support/</link>
		<comments>http://software.intel.com/en-us/blogs/2012/01/24/meshcentralcom-now-with-pogoplug-support/#comments</comments>
		<pubDate>Wed, 25 Jan 2012 05:38:23 +0000</pubDate>
		<dc:creator>Ylian Saint-hilaire (Intel)</dc:creator>
				<category><![CDATA[Manageability & Security]]></category>
		<category><![CDATA[Mobility]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Power Efficiency]]></category>
		<category><![CDATA[Agent]]></category>
		<category><![CDATA[Mesh]]></category>
		<category><![CDATA[MeshCentral]]></category>
		<category><![CDATA[MeshCentral.com]]></category>
		<category><![CDATA[p2p]]></category>
		<category><![CDATA[pogo]]></category>
		<category><![CDATA[pogoplug]]></category>
		<category><![CDATA[Ylian]]></category>

		<guid isPermaLink="false">http://software.intel.com/en-us/blogs/2012/01/24/meshcentralcom-now-with-pogoplug-support/</guid>
		<description><![CDATA[A few weeks back I went on eBay and got myself two Pogoplug devices. Very nice little media and file sharing devices, you plug storage in the USB ports and you get access to the data anywhere on the internet. The devices are not expensive at all and very functional. One of the things that [...]]]></description>
			<content:encoded><![CDATA[<p><a href="https://meshcentral.com"><img class="alignnone size-full wp-image-21651" title="MeshCentral.com" src="http://software.intel.com/en-us/blogs/wordpress/wp-content/uploads/2010/12/MeshCentral-BlogLogo2.png" alt="" width="670" height="66" /></a></p>
<p>A few weeks back I went on eBay and got myself two <a href="https://pogoplug.com/">Pogoplug</a> devices. Very nice little media and file sharing devices, you plug storage in the USB ports and you get access to the data anywhere on the internet. The devices are not expensive at all and very functional. One of the things that interested me in the device is that you can enable SSH on them, login and install and run more software. Of course, the <a href="https://meshcentral.com">Meshcentral</a> peer-to-peer agent would be a great target for such a device. You can leave your Pogoplug on all the time and then, use it as a low-power presence on the network to wake up other computers, monitor sleeping Intel AMT computers, etc. Best of all, you can use both Meshcentral along with the original Pogoplug software.</p>
<p>So, earlier today I downloaded the proper cross-compiler. I am really getting the hang of this, it took me about an hour to compile the mesh agent and get it running on the device! I also added the new mesh agent to the list of available agents on Meshcentral.com. Now, this is not for everyone just yet, you need to have a good idea what you are doing with Linux and the command prompt. I also did not research how to auto-start the mesh agent yet when the device boots up. Regardless, enable SSH on the Pogoplug web site in the settings and security menu, then I log in and remount the root file system and create a new folder with these commands:</p>
<p>mount -o rw,remount /<br />
mkdir /usr/local/mesh<br />
cd /usr/local/mesh</p>
<p>I am then ready to cut &amp; paste the agent download and launch code from the <a href="https://meshcentral.com">Meshcentral.com</a> account page (hit the Install link). After about a minute, the device will show up on Meshcentral.com and you can access file, get the command prompt, etc. Obviously, no remote desktop available.</p>
<p>That's it for now. Have fun with your new Pogoplug features!</p>
<p>Ylian<br />
<a href="https://meshcentral.com">meshcentral.com</a></p>
<p><a href="http://software.intel.com/en-us/blogs/wordpress/wp-content/uploads/2012/01/pogoplug_v2_front.jpg"><img class="alignnone size-full wp-image-44395" title="pogoplug_v2_front" src="http://software.intel.com/en-us/blogs/wordpress/wp-content/uploads/2012/01/pogoplug_v2_front.jpg" alt="" width="500" height="372" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://software.intel.com/en-us/blogs/2012/01/24/meshcentralcom-now-with-pogoplug-support/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Accessing Intel® Power Gadget 2.0 library in C++</title>
		<link>http://software.intel.com/en-us/blogs/2012/01/21/accessing-intel-power-gadget-20-library-in-c/</link>
		<comments>http://software.intel.com/en-us/blogs/2012/01/21/accessing-intel-power-gadget-20-library-in-c/#comments</comments>
		<pubDate>Sat, 21 Jan 2012 19:25:23 +0000</pubDate>
		<dc:creator>Seung-Woo Kim (Intel)</dc:creator>
				<category><![CDATA[Mobility]]></category>
		<category><![CDATA[Power Efficiency]]></category>
		<category><![CDATA[Software Tools]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[cpu power]]></category>
		<category><![CDATA[Intel® Power Gadget 2.0]]></category>

		<guid isPermaLink="false">http://software.intel.com/en-us/blogs/2012/01/21/accessing-intel-power-gadget-20-library-in-c/</guid>
		<description><![CDATA[With the release of Intel® Power Gadget 2.0 there is now externally callable API’s to extract power information within sections of code. The API layer is a set of libraries and dlls that can be called via C/C#/C++ or via JavaScript and offers the flexibility to build the tool within code sections of an application. [...]]]></description>
			<content:encoded><![CDATA[<p>With the release of <a href="http://software.intel.com/en-us/articles/intel-power-gadget/">Intel® Power Gadget 2.0</a> there is now externally callable API’s to extract power information within sections of code. The API layer is a set of libraries and dlls that can be called via C/C#/C++ or via JavaScript and offers the flexibility to build the tool within code sections of an application. Intel® Power Gadget 2.0’s main engine is written as ATL COM that supports Javascript, C++, and C#. The gadget itself is a sample javascript code to use the library. In order to look at the source, rename the “CPUPowerData.gadget” to “CPUPowerData.zip” and unzip it. You should be able to see the source to see how the APIs are used. In this article, a sample code is provided to illustrate how to use the library’s API through C++. Another article to use C# is planned in the future. The sample project can be downloaded here.</p>
<ul>
<li><a href="http://software.intel.com/file/41089">Cppsample.zip</a></li>
<li><a href="http://software.intel.com/file/40419">Download End User License Agreement</a></li>
</ul>
<h1>Initializating COM</h1>
<p>The beginning of CppSample.cpp starts with COM initialization as follows so that COM is initialized before _tmain and de-initialized after _tmain is done. EzPwrLibrary.dll itself should be imported as a header.</p>
<div id="attachment_44294" class="wp-caption alignnone" style="width: 555px"><a href="http://software.intel.com/en-us/blogs/wordpress/wp-content/uploads/2012/01/init.png"><img class="size-full wp-image-44294" title="init" src="http://software.intel.com/en-us/blogs/wordpress/wp-content/uploads/2012/01/init.png" alt="" width="545" height="258" /></a><p class="wp-caption-text">Initializing COM</p></div>
<h1>Setting up parameters</h1>
<ul>
<li><strong>Create a smart pointer:</strong> create an interface to the library - "IEzPwrCtrlPtr pEzPwrCtl" followed by instantiation -"pEzPwrCtl.CreateInstance(L”EzPwrLibrary.EzPwrCtl”);"</li>
<li><strong>Log file:</strong> The library takes a log file name and append the time stamp to the log file name. In order to specify the file name, assign the file name to "ExportFileName" property. Usually, full path to the file is specified. In order to get the file name, use "GetExportFileName" or "GetExportFileNameExtended" to get the exact file name with the time stamp appended. In order for GetExportFileNameExtended to succeed, the logging should have been started by setting "Logging" property to 1. Setting "Logging" property to 0 stops the logging.</li>
<li><strong>Sampling Resolution</strong>: The gadget itself is updated once every second. But you can specify much finer sampling resolution for the logging by calling  "Reset(millisecond)" method. It is not guaranteed to get the specified resolution due to thread scheduling, but it will try to get up to the resolution. It is recommended to set this to 50 ms.</li>
</ul>
<div id="attachment_44294" class="wp-caption alignnone" style="width: 472px"><a href="http://software.intel.com/en-us/blogs/wordpress/wp-content/uploads/2012/01/parameters.png"><img class="alignnone size-full wp-image-44302" title="Setup Parameters" src="http://software.intel.com/en-us/blogs/wordpress/wp-content/uploads/2012/01/parameters.png" alt="" width="462" height="277" /></a><p class="wp-caption-text">Setting up Parameters</p></div>
<h1>Getting Power and Frequency Information</h1>
<p>All the methods in the library are non-blocking calls, but the actual data is updated once per second. The log however, has much finer resolution as specified in the "Reset" method.</p>
<ul>
<li><strong>Multi-socket support:</strong> The library supports multi-socket systems and can get the power and frequency information per socket. You can get the number of sockets in the system by calling "GetNumSockets" method.</li>
<li><strong>Frequency: </strong>In order to get the base frequency (maximum frequency without turbo,) call "GetMaxFreq" method. Be aware that modern processors including Penryn, Nehalem, Sandy Bridge, and Ivy Bridge can not only throttle down the frequency to save power, it can go higher than the base frequency temporarily for performance. It is very important to understand the frequency is not fixed to the base frequency to properly understand power / performance. CPU utilization alone is not going to tell the whole story - x % of CPU utilization really doesn't mean much without the running frequency information at the moment. "GetFrequency" method gives the average frequency from all the sockets, and GetSocketFrequency(int iSocket) gives individual frequency for each socket. If there is only one socket, both methods have the same result.</li>
<li><strong>Power: </strong>There are 2 ways to get power - total power from all the sockets (GetPackagePower) and individual sockets (GetSocketPower(int iSocket)). GetPackagePower is just a sum of all GetSocketPower.</li>
</ul>
<div id="attachment_44317" class="wp-caption alignnone" style="width: 560px"><a href="http://software.intel.com/en-us/blogs/wordpress/wp-content/uploads/2012/01/usage.png"><img class="size-full wp-image-44317" title="usage" src="http://software.intel.com/en-us/blogs/wordpress/wp-content/uploads/2012/01/usage.png" alt="" width="550" height="323" /></a><p class="wp-caption-text">Getting Power and Frequency </p></div>
<h1>Clean up</h1>
<p>Be sure to stop logging and close &amp; release the interface.</p>
<div id="attachment_44324" class="wp-caption alignnone" style="width: 332px"><a href="http://software.intel.com/en-us/blogs/wordpress/wp-content/uploads/2012/01/Cleanup.png"><img class="size-full wp-image-44324" title="Cleanup" src="http://software.intel.com/en-us/blogs/wordpress/wp-content/uploads/2012/01/Cleanup.png" alt="" width="322" height="80" /></a><p class="wp-caption-text">Clean up</p></div>
]]></content:encoded>
			<wfw:commentRss>http://software.intel.com/en-us/blogs/2012/01/21/accessing-intel-power-gadget-20-library-in-c/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How would you define &quot;Energy Efficient&quot;?</title>
		<link>http://software.intel.com/en-us/blogs/2012/01/18/how-would-you-define-energy-efficient/</link>
		<comments>http://software.intel.com/en-us/blogs/2012/01/18/how-would-you-define-energy-efficient/#comments</comments>
		<pubDate>Wed, 18 Jan 2012 22:29:53 +0000</pubDate>
		<dc:creator>Clay Breshears (Intel)</dc:creator>
				<category><![CDATA[Power Efficiency]]></category>

		<guid isPermaLink="false">http://software.intel.com/en-us/blogs/2012/01/18/how-would-you-define-energy-efficient/</guid>
		<description><![CDATA[Say your boss comes to you and tells you to ensure that the software project you are working on is energy efficient. (Go ahead, I'll wait while you say it.) There are all kinds of ideas to be found on the Power Efficiency Community site on how to accomplish this assignment. What I'd like to [...]]]></description>
			<content:encoded><![CDATA[<p>Say your boss comes to you and tells you to ensure that the software project you are working on is energy efficient. (Go ahead, I'll wait while you say it.)</p>
<p>There are all kinds of ideas to be found on the <a href="http://software.intel.com/en-us/articles/energy-efficient-software/">Power Efficiency Community </a>site on how to accomplish this assignment. What I'd like to know is how you prove to your boss that you have accomplished the task. Or, if you've already optimized the you-know-what out of the application, what do you measure to label your software is energy efficient?</p>
<p>With serial applications, the metric of better performance is easy: less time is better.  Parallel applications have similar metrics: either run the same workload in less time than an equivalent serial version or run more workloads than the serial code can process in the same time.</p>
<p>I've found that energy efficiency is a little more nebulous. Talking with engineers that deal with this question around Intel, I've gotten three potential answers.</p>
<h4>Total Energy Consumed</h4>
<p>This is simply the amount of energy used during the run of your application or an average of energy used per time unit (since the needs of the application might fluctuate based on the processing done). Certainly the less total energy used, the more efficient your application will be. On laptops and Ultrabooks and other mobile devices, applications that use less energy will preserve battery life.</p>
<p>But, how much energy does the application NOT have to use to be considered efficient? Is there a minimum achievable level of energy consumption for a given computation? When do you know that there is no more efficiency that can be squeezed from your tuning efforts? With parallel computation we have Amdahl's Law and other theoretical models that can be used to compute an upper bound on the amount of parallelism we might be able to eke out of an application. Is there a similar model for energy efficient performance limits?</p>
<h4>Performance per Watt</h4>
<p>This measures how much work is done per watt of power. Clearly, if your optimizations result in more work done with the same amount of energy used or the same computation with less energy expended, your application is more efficient than it was before. Most applications will have some easy metric of performance. Things like FLOP/s or pixels rendered or transactions processed or frames per second are all common measures of the work being done in applications.</p>
<p>Again, a relative measure of before and after is easy to keep track of during the tuning process. If your application starts with 10 <em>FAUXtoe-ops </em>per watt and eventually reaches 20 <em>FAUXtoe-ops </em>per watt, your tuning efforts are headed in the right direction. As with the previous measure, I wonder if there is an absolute (theoretical?) value that can be held up as the goal of your optimization efforts? Dependent on what work unit your application uses, of course. And would such an energy efficiency measure need to take into account the target hardware configuration (battery, power supply, processor, chipset, GPU, etc.)?</p>
<h4>Application Idle Behavior</h4>
<p>One idea that I find repeated over and over is that the processor should be kept idle as much as possible. That is, it should reside in the lowest C-state as much as possible. For an application, this rule of thumb can be summarized with the acronym HUGI (Hurry Up and Get Idle). Do whatever is needed to complete any processing as quickly as possible and then have the application sit idle (and do that as energy efficiently as possible). Thus, the measure is to determine how well an application spends time waiting for user input or some other interrupt.</p>
<p>Judging how efficiently an application executes during its idle time will be as simple as measuring the percentage of low C-states (C3, C6) residency. This metric can be an absolute percentage of execution time or measured relative to the idle state of the system without any other application running, i.e., the quiescent state of the OS. Sounds good for user-interactive applications that can run faster than the user can type or click, but what about heavily compute-intensive executions? When I ran a version of <a href="http://drdobbs.com/go-parallel/blogs/architecture-and-design/232300953">my Akari application</a>, less than 3% of the time was spent in C3 while achieving a 22.56X speedup on 80 threads. With all the parallel tasks that get spawned to inhabit all the threads/cores available, should that application be considered energy efficient?</p>
<h4>What do you think?</h4>
<p>So, when you read the first two paragraphs, did you think of any of the metrics I outlined here? Maybe it was some variation on a theme or did you have a completely different idea?</p>
<p>Performance was, is, and always will be the driver of the need for software tuning and optimization. Would there ever be a trade-off of lower performance (longer execution time) in order to conserve energy consumed? Perhaps a question for a future blog. For now, though, assuming a preservation or improvement of application performance is a requirement, how do you demonstrate that your application is also efficient in the energy used during execution?</p>
]]></content:encoded>
			<wfw:commentRss>http://software.intel.com/en-us/blogs/2012/01/18/how-would-you-define-energy-efficient/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Meshcentral.com - Waking up computers</title>
		<link>http://software.intel.com/en-us/blogs/2012/01/09/meshcentralcom-waking-up-computers/</link>
		<comments>http://software.intel.com/en-us/blogs/2012/01/09/meshcentralcom-waking-up-computers/#comments</comments>
		<pubDate>Tue, 10 Jan 2012 05:53:03 +0000</pubDate>
		<dc:creator>Ylian Saint-hilaire (Intel)</dc:creator>
				<category><![CDATA[Manageability & Security]]></category>
		<category><![CDATA[Mobility]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Power Efficiency]]></category>
		<category><![CDATA[Mesh]]></category>
		<category><![CDATA[MeshCentral]]></category>
		<category><![CDATA[MeshCentral.com]]></category>
		<category><![CDATA[p2p]]></category>
		<category><![CDATA[power management]]></category>
		<category><![CDATA[wake]]></category>
		<category><![CDATA[Wake-on-lan]]></category>
		<category><![CDATA[wol]]></category>
		<category><![CDATA[Ylian]]></category>

		<guid isPermaLink="false">http://software.intel.com/en-us/blogs/2012/01/09/meshcentralcom-waking-up-computers/</guid>
		<description><![CDATA[With this post, I want to cover how Meshcentral.com powers up sleeping computers. As many of you know, you can go on the web site, see all your computers and select one or many and remotely powered them off, reset them, etc. These operations are fairly simple, just tell the mesh agent to instruct the [...]]]></description>
			<content:encoded><![CDATA[<p><a href="https://meshcentral.com"><img class="alignnone size-full wp-image-21651" title="MeshCentral.com" src="http://software.intel.com/en-us/blogs/wordpress/wp-content/uploads/2010/12/MeshCentral-BlogLogo2.png" alt="" width="670" height="66" /></a></p>
<p>With this post, I want to cover how <a href="https://meshcentral.com">Meshcentral.com</a> powers up sleeping computers. As many of you know, you can go on the web site, see all your computers and select one or many and remotely powered them off, reset them, etc. These operations are fairly simple, just tell the mesh agent to instruct the operating system to do the operation. The real magic comes when you want to wake a system back up. I use this operation myself to wake up my Microsoft Home Server which is set to go to sleep after an hour.</p>
<p>To remotely wake a computer, the web site can't just hop in a cab, go to the computer's location and press the power button... but almost all desktop computers sold in the last 10 years support "wake-on-lan", also know as the "magic packet". Your are very likely to have this on your computer if, when you power your computer down, your Ethernet port is still blinking. Meshcentral has two requirements to get wake working. You need another mesh computer on the same network powered on, and you need your computer to have wake-on-lan enabled.</p>
<p>The first requirement is required since, in order to get passed the home router, there needs to be a mesh agent acting as the relay. The relay node can be a full computer, a laptop, a plugpc, router or android device. As long as it runs the mesh agent and belong to your account, you are set. If you have more than one, even better.</p>
<p>The second requirement is also important since, by default Wake-on-LAN is often disabled. You may need to go into the BIOS and enable it, also in Microsoft Windows, go in the device manager, go in the properties of your network card, power management tab and enable it. I suggest also selecting "Only allow a magic packet to wake the computer" because if you don't any packet that hits a listening port with wake the computer (it's called wake on pattern) and it causes the computer of wake up too often.</p>
<p>Well, that is it. If you meet these two requirements, your computer will wake up, even from a full S5 power off using Meshcentral.com or the Meshcentral mobile application.</p>
<p>Have fun!<br />
Ylian<br />
<a href="https://meshcentral.com">meshcentral.com</a></p>
<p><a href="http://software.intel.com/en-us/blogs/wordpress/wp-content/uploads/2012/01/Powered.png"><img class="alignnone size-full wp-image-44080" title="Powered" src="http://software.intel.com/en-us/blogs/wordpress/wp-content/uploads/2012/01/Powered.png" alt="" width="658" height="508" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://software.intel.com/en-us/blogs/2012/01/09/meshcentralcom-waking-up-computers/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ultrabooks are here and so is our new community!</title>
		<link>http://software.intel.com/en-us/blogs/2011/12/31/ultrabooks-are-here-and-so-is-our-new-community/</link>
		<comments>http://software.intel.com/en-us/blogs/2011/12/31/ultrabooks-are-here-and-so-is-our-new-community/#comments</comments>
		<pubDate>Sat, 31 Dec 2011 16:33:42 +0000</pubDate>
		<dc:creator>Jeffrey Rott (Intel)</dc:creator>
				<category><![CDATA[Graphics & Media]]></category>
		<category><![CDATA[Performance and Optimization]]></category>
		<category><![CDATA[Power Efficiency]]></category>
		<category><![CDATA[Ultrabook]]></category>

		<guid isPermaLink="false">http://software.intel.com/en-us/blogs/2011/12/31/ultrabooks-are-here-and-so-is-our-new-community/</guid>
		<description><![CDATA[Without a doubt, one of the most exciting developments in the tech world for 2011 was the introduction of the Ultrabook.  We put a reference design out there and OEMs took it and ran with it.  Most of the models that arrived were slim, sleek, powerful and yet power-efficient.  I brought one of the current [...]]]></description>
			<content:encoded><![CDATA[<p>Without a doubt, one of the most exciting developments in the tech world for 2011 was the introduction of the Ultrabook.  We put a reference design out there and OEMs took it and ran with it.  Most of the models that arrived were slim, sleek, powerful and yet power-efficient.  I brought one of the current ultrabooks with me on holiday this year, knowing that it would be played with by my tech-savvy extended family, and it quickly found it’s way onto everyone’s gift list.  My guess is that their response will be replicated worldwide.  Once you see it, touch it and use it – you just have to have one.</p>
<p>With all the excitement going on, I couldn’t be more energized about being the community manager for this new form factor.  The community is structured around the main opportunities for ISVs to focus their development efforts at.  At the moment, those main areas are Power- efficiency, Performance and Graphics.</p>
<p>In the Power-efficiency section you’ll learn about and get help with the things you can do to make sure that your software is playing its role in keeping the ultrabook’s battery life as long as possible.  The only true way to get the most out of the batteries is if the hardware and the software are both playing “green” together.</p>
<p>On the Performance side, the current ultrabooks are powered by 2nd Generation Intel® Core™ processors.  These are some powerful processors!  And just like with desktops and standard laptops, your software needs to take advantage of the performance offered by these multicore chips.  So this section will be dedicated to helping you thread your applications to run on multiple processing cores.</p>
<p>And in the Graphics area, you’ll get the information and insight to help you look your best on the new ultrabooks.  With these new form factors, there’s not much room for discrete cards.  In fact, I’m not even sure how they got the processors in there.  So you’ll likely be depending on the performance of the integrated graphics processing to deliver your visuals to your customers.  This area will be the spot to help you put your best foot forward…visually.</p>
<p>This, of course, is just how to engage with the current model releases.  2012 and 2013 promise to bring about some exciting developments for ultrabooks, with new features, designs and operating systems introduced.  And with these new developments, the opportunities for ISVs will continue to grow.  And this community will be the place for you to go to figure out what your next steps should be.  But for now go ahead and get your applications optimized for the power-efficient performance and graphics capabilities of ultrabooks as these enabling vectors will surely be the foundation of on which future feature will be built on.</p>
<p>&nbsp;</p>
<p><a href="http://software.intel.com/en-us/ultrabook">Visit the Ultrabook Community here.</a></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://software.intel.com/en-us/blogs/2011/12/31/ultrabooks-are-here-and-so-is-our-new-community/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Accessing Intel® Power Gadget from Intel® Energy Checker SDK</title>
		<link>http://software.intel.com/en-us/blogs/2011/12/15/accessing-intel-power-gadget-from-intel-energy-checker-sdk/</link>
		<comments>http://software.intel.com/en-us/blogs/2011/12/15/accessing-intel-power-gadget-from-intel-energy-checker-sdk/#comments</comments>
		<pubDate>Thu, 15 Dec 2011 18:00:26 +0000</pubDate>
		<dc:creator>Jun De Vega (Intel)</dc:creator>
				<category><![CDATA[Mobility]]></category>
		<category><![CDATA[Power Efficiency]]></category>
		<category><![CDATA[Software Tools]]></category>
		<category><![CDATA[cpu power]]></category>
		<category><![CDATA[Intel(R) Energy Checker]]></category>
		<category><![CDATA[Intel(R) Power Gadget]]></category>
		<category><![CDATA[Sandy Bridge]]></category>

		<guid isPermaLink="false">http://software.intel.com/en-us/blogs/2011/12/15/accessing-intel-power-gadget-from-intel-energy-checker-sdk/</guid>
		<description><![CDATA[Intel® Power Gadget 2.0 can be associated with the Intel® Energy Checker SDK (Intel EC SDK). Used as an ESRV* DAQ module**, the Intel® Power Gadget can provide processor average power (Watt), cumulative energy consumed (Joule) and instantaneous frequency (MHz) as counters. These counter’s values can then be read by any application using the SDK API or [...]]]></description>
			<content:encoded><![CDATA[<p><a title="Intel(R) Power Gadget" href="http://software.intel.com/en-us/articles/intel-power-gadget/">Intel® Power Gadget 2.0</a> can be associated with the Intel® Energy Checker SDK (Intel EC SDK). Used as an ESRV* DAQ module**, the Intel® Power Gadget can provide processor average power (Watt), cumulative energy consumed (Joule) and instantaneous frequency (MHz) as counters. These counter’s values can then be read by any application using the SDK API or monitored with SDK tools.</p>
<p>To start ESRV with the <a title="Intel(R) Power Gadget" href="http://software.intel.com/en-us/articles/intel-power-gadget/">Intel® Power Gadget</a>, type:</p>
<ul>
<li>1 socket:  esrv --start --daq --library "C:\Program Files\Intel\Power Gadget 2.0\daq_driver.dll" --channels "1-4" --default_suffixes "decimals = 2" --counters "Number of Sockets=C1, CPU Average Power (Watt)=C2, CPU Energy Consumed (Joule)=C3 integral, CPU Frequency (MHz)=C4"</li>
<li>2 sockets: esrv --start --daq --library "C:\Program Files\Intel\Power Gadget 2.0\daq_driver.dll" --channels "1-7" --default_suffixes "decimals = 2" --counters "Number of Sockets=C1, CPU Average Power_0 (Watt)=C2, CPU Energy Consumed_0 (Joule)=C3 integral, CPU Frequency_0 (MHz)=C4, CPU Average Power_1(Watt)=C5, CPU Energy Consumed_1 (Joule)=C6 integral, CPU Frequency_1 (MHz)=C7 "</li>
<li>Etc.</li>
</ul>
<p> To monitor – this is not required –, start the PL GUI Monitor typing the following command. Double-click on the newly created PL configuration file in the C:\productivity_link folder (and click Cancel when done). The following figure shows the monitor output. Note that these commands can be saved in a batch file for convenience. </p>
<p> pl_gui_monitor --gdiplus --process --trend --transparency 30 --format --geometry "gauges=3x1 position=topxright" --top --title "Powered by Power Gadget"</p>
<div id="attachment_28845" class="wp-caption aligncenter" style="width: 156px"><a href="http://software.intel.com/en-us/blogs/wordpress/wp-content/uploads/2011/03/ESRV1.png"><img class="size-medium wp-image-28845" src="http://software.intel.com/en-us/blogs/wordpress/wp-content/uploads/2011/03/ESRV1-146x300.png" alt="" width="146" height="300" /></a><p class="wp-caption-text">Intel® Energy Checker SDK </p></div>
<p>Please refer to the EC User Guides – including the Companion Applications User Guide – for details on ESRV and PL GUI Monitor and advanced options from <a href="http://software.intel.com/en-us/articles/intel-energy-checker-sdk/?wapkw=(energy+checker)">Intel® Energy Checker SDK</a>.</p>
<p>EC SDK is shipped with ESRV (Energy Server) which monitors a platform’s energy consumption of monitored or instrumented components. ESRV provides counters for the cumulative energy consumed, as well as the immediate power draw from the power meter or power supply. More detailed information can be found in the Intel® Energy Checker Device Driver Kit User Guide.</p>
<p>ESRV also provides a Data Acquisition (DAQ) mode, which allows the monitoring of system components, such as memory or IO subsystems.</p>
]]></content:encoded>
			<wfw:commentRss>http://software.intel.com/en-us/blogs/2011/12/15/accessing-intel-power-gadget-from-intel-energy-checker-sdk/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>FLASH: Why haven&#039;t we seen this sooner?</title>
		<link>http://software.intel.com/en-us/blogs/2011/12/12/flash-why-havent-we-seen-this-sooner/</link>
		<comments>http://software.intel.com/en-us/blogs/2011/12/12/flash-why-havent-we-seen-this-sooner/#comments</comments>
		<pubDate>Mon, 12 Dec 2011 18:32:32 +0000</pubDate>
		<dc:creator>Clay Breshears (Intel)</dc:creator>
				<category><![CDATA[Parallel Programming]]></category>
		<category><![CDATA[Power Efficiency]]></category>
		<category><![CDATA[Server]]></category>

		<guid isPermaLink="false">http://software.intel.com/en-us/blogs/2011/12/12/flash-why-havent-we-seen-this-sooner/</guid>
		<description><![CDATA[I saw an announcement of the Gordon supercomputer in an online Wired article. What made the new installation at the San Diego Supercomputer Center (SDSC) noteworthy wasn't the size of the machine or that the machine debuted at #48 on the TOP500 list. No, it was the fact that Gordon is the world's first supercomputer [...]]]></description>
			<content:encoded><![CDATA[<p>I saw an announcement of the <a href="http://www.wired.com/wiredenterprise/2011/12/gordon-supercomputer/?utm_source=feedburner&amp;utm_medium=feed&amp;utm_campaign=Feed%3A+wired%2Findex+%28Wired%3A+Index+3+%28Top+Stories+2%29%29">Gordon supercomputer</a> in an online Wired article. What made the new installation at the San Diego Supercomputer Center (SDSC) noteworthy wasn't the size of the machine or that the machine debuted at #48 on the TOP500 list.</p>
<p>No, it was the fact that Gordon is the world's first supercomputer that uses flash memory instead of disk drives. This is the world’s largest thumb drive (300 Terabytes across 1024 Intel 710 series drives), as Allan Snavely, SDSC Associate Director, noted. There are quite a few advantages for using flash memory drives in place of spinning disks including lower power consumption, lower latency to access data, and fewer moving parts that can have mechanical failure. This just seems so logical that I'm surprised it hadn't happened sooner.</p>
<p>On a coincidental note, I saw a report earlier today that stated <a href="http://www.crn.com/news/components-peripherals/232300356/intel-cuts-q4-revenue-forecast-as-hard-drive-shortage-continues.htm;jsessionid=wuhovW-ybu7I-FqOBknOww**.ecappj02">Intel was lowering Q4 revenue projections</a> due to a drop in microprocessor demand from PC manufacturers. This is a direct result of not having enough disk drives available, which was caused by flooding in Thailand earlier this year.</p>
<p>I would think that the expected hard drive shortage will open the doors for wider adoption of SSD drives in the PC market and provide a hefty revenue stream for companies that can supply those drives. Big-scale projects like SCSD's Gordon computer just reinforce the efficacy of SSDs in desktops and laptops and even smaller form factors.</p>
]]></content:encoded>
			<wfw:commentRss>http://software.intel.com/en-us/blogs/2011/12/12/flash-why-havent-we-seen-this-sooner/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Open Parallel: Optimizing Web Performance with TBB</title>
		<link>http://software.intel.com/en-us/blogs/2011/11/16/open-parallel-optimizing-web-performance-with-tbb/</link>
		<comments>http://software.intel.com/en-us/blogs/2011/11/16/open-parallel-optimizing-web-performance-with-tbb/#comments</comments>
		<pubDate>Wed, 16 Nov 2011 22:39:36 +0000</pubDate>
		<dc:creator>Nicolas Erdody</dc:creator>
				<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Parallel Programming]]></category>
		<category><![CDATA[Performance and Optimization]]></category>
		<category><![CDATA[Power Efficiency]]></category>
		<category><![CDATA[Software Tools]]></category>
		<category><![CDATA[HipHop]]></category>
		<category><![CDATA[Intel Software Partner Program]]></category>
		<category><![CDATA[James Reinders]]></category>
		<category><![CDATA[multi-core]]></category>
		<category><![CDATA[parallel programming]]></category>
		<category><![CDATA[parallelism]]></category>
		<category><![CDATA[Perl]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[TBB]]></category>

		<guid isPermaLink="false">http://software.intel.com/en-us/blogs/2011/11/16/open-parallel-optimizing-web-performance-with-tbb/</guid>
		<description><![CDATA[Open Parallel is a research and development company that focuses on parallel programming and multicore development. We are a bunch of highly skilled geeks from various backgrounds that work together on problems in parallel programming and software development for multicore and manycore platforms. At LinuxConf (LCA2010) James Reinders gave a talk about the Threading Building [...]]]></description>
			<content:encoded><![CDATA[<p><strong><a href="www.openparallel.com">Open Parallel</a></strong> is a research and development company that focuses on parallel programming and multicore development. We are a bunch of highly skilled geeks from various backgrounds that work together on problems in parallel programming and software development for multicore and manycore platforms.</p>
<p>At LinuxConf (LCA2010) <strong>James Reinders</strong> gave a talk about the Threading Building Blocks (<a href="http://threadingbuildingblocks.org/">TBB</a>) library, a C++ threading library that sets out to make multicore programming more accessible to the average programmer. We took this idea on board and explored the possibilities of opening up this approach to an even wider audience, namely the audience of web application developers working in script languages.</p>
<p>Many websites require a non-trivial amount of per-request processing in the application layer, perhaps to retrieve, consolidate or otherwise manipulate data. Achieving better performance at this level improves response times and the overall user experience. Even when processing time at application level is not critical, parallelizing access to database and web service back-end layers can yield substantial improvements in perceived performance.</p>
<p>This drove our goal of adding TBB support into <strong>PHP</strong> and <strong>Perl</strong>, starting with <strong><a href="http://en.wikipedia.org/wiki/HipHop_%28software%29">HipHop</a></strong> as the PHP implementation of choice and later on adding Perl support to the game.</p>
<p>HipHop is a PHP to C++ cross compiler that was developed by Facebook to cut down on resource needs and speed up the execution times of their gigantic web infrastructure that was started on a classic PHP/MySQL stack and now has to scale to hundreds of millions of users. The HipHop project is a PHP implementation that is thread safe and already uses TBB for some memory management. We started by extending the existing support and added first only the new *parallel_for* function. Later, we added concurrent data structures and re-implemented our first approach.</p>
<p>What we have now is a robust implementation of *parallel_for* and *parallel_reduce* with the data structures needed to support them. What we learned on the way was both, very enlightening and quite frustrating at times. Our aim to make TBB more widely accessible was reached by getting the language extension into HipHop but we also tried to get it into Zend PHP. This turned out to only work with a language compatibility module that does not provide the full glory we can offer on the HipHop platform. The reason for this is the architecture of the PHP interpreter.</p>
<p>Implementing threading into language interpreters turns out to be very hard. There are two dormant/failed approaches in Perl and every attempt in PHP has failed so far. The core developers on both sides are very much in doubt if it is a path worth going down at all. The problem is global locking and copying/sharing of data structures that are thread local. Our Perl implementation is a starting point that could influence not only the Perl community but other interpreter designers and interpreter developers as well.</p>
<p>In the Perl community we are trying to lobby for a const keyword that would lock a data structure and remove the need to copy it into every thread. The ability to make something immutable is missing in Perl and PHP and this makes the startup cost of any worker thread very expensive. For the Perl library we wrote a lazy clone module that would only clone a data structure if the worker thread really accesses it. That way we only penalize the worker thread for accessing data - we can possibly get around cloning structures at all if they are not accessed within this task.</p>
<p>In our work with the PHP HipHop compiler we also wrote a patch set for WordPress and enhanced WordPress with our new *parallel_for* language extension. This trial brought us instant success in reduced page load times. The patch set for WordPress only replaced some key *foreach* loops with *parallel_for* and was our first real success with the TBB library in PHP. Based on that success we started out to re-implement our initial approach and tidy up our patch set for HipHop to make it more accessible to others.</p>
<p>The Perl project worked towards a Perl module that can be used to get access to TBB functions directly. We also started out to implement the core memory structures and then built on top of those the *parallel_for* functionality. The module we have now is stable enough to demonstrate the gains we can get by using TBB in Perl.</p>
<p>To round the project off we implemented two little tools as real world demo and as working code to look at. The demo is based around the HTML5 geo tag which is present in modern browsers and can be read with a Javascript API. In the HipHop version we use it to read the current Lat/Lon from the accessing browser and then parse the Twitter firehose to find tweets with embedded image URLs.</p>
<p>In the Perl demo we query Flickr and fetch a grid of 4x4 images, cache them locally and then render one big image out of scaled versions of the single images. The demos are running on <strong><a href="http://geopic.me">geopic.me</a></strong></p>
<p>To sum up our experience with TBB and script languages we know now that threading interpreters buries its very own set of challenges but we were able to get further than others did on the same mission by using TBB. The libraries we produced so far - which are open source and can be found on <strong>our <a href="https://github.com/openparallel/">github</a> account</strong> - will be further developed and maintained.</p>
<p>We will continue working on both platforms to expose the power of multicore CPUs to developers in an approachable way. Along the way we also produced a number of more detailed white papers covering various aspects of the project:</p>
<p>* <strong><a href="http://openparallel.com/2011/05/11/threading-perl-using-tbb-the-cpan-module-and-white-paper/">threads::tbb</a></strong><br />
* <strong><a href="http://openparallel.files.wordpress.com/2010/09/tbb-in-wordpress-oct-10.pdf">TBB in WordPress</a></strong><br />
* <strong><a href="http://openparallel.files.wordpress.com/2010/09/wordpress-on-hiphop-nov-10.pdf">WordPress on HipHop</a></strong></p>
<p>Get in touch if you are interested in these projects or have questions about the work we did. There is further information on our website <strong><a href="www.openparallel.com">OpenParallel.com</a></strong></p>
<p>Contact: <strong><a href="http://openparallel.com/contact-us/">Nicolas Erdody</a></strong></p>
]]></content:encoded>
			<wfw:commentRss>http://software.intel.com/en-us/blogs/2011/11/16/open-parallel-optimizing-web-performance-with-tbb/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Register for Intel(R) Technical Presentation &quot;Modeling parallelism with Intel(R) Parallel Advisor&quot; by Dr.Paul Petersen (Architect)</title>
		<link>http://software.intel.com/en-us/blogs/2011/07/20/register-for-intelr-technical-presentation-modeling-parallelism-with-intelr-parallel-advisor-by-drpaul-petersen-architect/</link>
		<comments>http://software.intel.com/en-us/blogs/2011/07/20/register-for-intelr-technical-presentation-modeling-parallelism-with-intelr-parallel-advisor-by-drpaul-petersen-architect/#comments</comments>
		<pubDate>Wed, 20 Jul 2011 23:18:51 +0000</pubDate>
		<dc:creator>RAVI (Intel)</dc:creator>
				<category><![CDATA[Academic]]></category>
		<category><![CDATA[Embedded Computing]]></category>
		<category><![CDATA[Events]]></category>
		<category><![CDATA[Game Development]]></category>
		<category><![CDATA[Graphics & Media]]></category>
		<category><![CDATA[Intel SW Partner Program]]></category>
		<category><![CDATA[Mobility]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Parallel Programming]]></category>
		<category><![CDATA[Performance and Optimization]]></category>
		<category><![CDATA[Power Efficiency]]></category>
		<category><![CDATA[Software Tools]]></category>
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://software.intel.com/en-us/blogs/2011/07/20/register-for-intelr-technical-presentation-modeling-parallelism-with-intelr-parallel-advisor-by-drpaul-petersen-architect/</guid>
		<description><![CDATA[<a href="http://software.intel.com/en-us/blogs/wordpress/wp-content/uploads/2011/03/ips1.png"><img class="alignnone" src="http://software.intel.com/en-us/blogs/wordpress/wp-content/uploads/2011/03/ips1.png" alt="" width="161" height="203" /></a>

Paul Petersen, Architect for the Intel(R) Parallel Studio product suite, will be presenting on July 21st at 9am PDT on "Modeling Parallelism with Intel® Parallel Advisor". Please register and attend.]]></description>
			<content:encoded><![CDATA[<p>Paul Petersen, Architect for the Intel(R) Parallel Studio product suite, will be presenting on July 21st at 9am PDT on the following topic:</p>
<p style="padding-left: 30px;"><strong>Modeling parallelism with Intel® Parallel Advisor</strong></p>
<p>Please register for this presentation using the following link:</p>
<p style="padding-left: 30px;"><a href="https://www1.gotomeeting.com/register/662997241">https://www1.gotomeeting.com/register/662997241</a></p>
<p>Here is a short abstract of the presentation:</p>
<p style="padding-left: 30px;">An application written in a sequential language like C++ can be understood in two ways. It can be understood as an exact specific of how a program must execute, or it can be understood as a specification of the kinds of computations that must be performed. In the Parallel Advisor, we exploit the second interpretation by introducing a modeling language that can be embedded into your sequential application. This modeling language allows you to precisely specify where and how the sequential execution of your application is over-constrained and what flexibility you are willing to utilize to harness parallel execution. This talk will describe the modeling language, show the benefits of parallel modeling over parallel execution, and illustrate the correspondence of the parallel modeling language to common idioms available in Intel® Threading Building Blocks and Intel® Cilk™ Plus.</p>
<p>Please register for the presentation now and attend it on July 21st at 9am PDT. You can ask Paul questions during the second half of the presentation.</p>
]]></content:encoded>
			<wfw:commentRss>http://software.intel.com/en-us/blogs/2011/07/20/register-for-intelr-technical-presentation-modeling-parallelism-with-intelr-parallel-advisor-by-drpaul-petersen-architect/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

