<?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; Clay Breshears (Intel)</title>
	<atom:link href="http://software.intel.com/en-us/blogs/author/clay-breshears/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>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>1 million new jobs from robotics industries</title>
		<link>http://software.intel.com/en-us/blogs/2012/02/15/1-million-new-jobs-from-robotics-industries/</link>
		<comments>http://software.intel.com/en-us/blogs/2012/02/15/1-million-new-jobs-from-robotics-industries/#comments</comments>
		<pubDate>Wed, 15 Feb 2012 17:51:19 +0000</pubDate>
		<dc:creator>Clay Breshears (Intel)</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://software.intel.com/en-us/blogs/2012/02/15/1-million-new-jobs-from-robotics-industries/</guid>
		<description><![CDATA[I was intrigued by the teaser for the IEEE- USA Today's Engineer story "The Real Steel: Robotics Careers Ready to Boom". It cited a market research report that claimed there would be 1 million new jobs added due to the robotics industry over the next 5 years. Many of these jobs will come from obvious sources like [...]]]></description>
			<content:encoded><![CDATA[<p>I was intrigued by the teaser for the IEEE- USA Today's Engineer story "<a href="http://www.todaysengineer.org/2012/Feb/career-focus.asp">The Real Steel: Robotics Careers Ready to Boom</a>". It cited a market research report that claimed there would be 1 million new jobs added due to the robotics industry over the next 5 years. Many of these jobs will come from obvious sources like engineering, software, and manufacturing.</p>
<p>To me, the most surprising  job that was mentioned in the article was for psychiatrists. The reasoning for such positions was to ensure robots will "have a mental picture of what people are doing around it". Psychiatrists would observe how humans interact with robots and be able to suggest better behavior or design changes to improve such interaction. (When I read this my first thought was about <a href="http://en.wikipedia.org/wiki/Susan_Calvin">Dr. Susan Calvin</a> and the Three Laws of Robotics or picturing Robbie the Robot laying out on a couch talking to his therapist.)</p>
<p>There was also a reference made that indirect industries (restaurants and service industries) would also benefit with expanding numbers of jobs. I can understand the need for engineers and programmers to develop working models of robots, but I would have thought that the advent of robots would start <strong>taking </strong>jobs from workers in many of the service industries. Won't we soon have robot waiters, robot salesmen, and robot butlers?</p>
<p>I don't want to see someone lose their job, but if we have autonomous robots, I think that there will be more jobs lost (to robot replacements) than there will be jobs created. Of course, that will all depend on how well the psychiatrists are doing their job to influence designs and perceptions to be more readily accepted by the public. If we're going to start with more household automation (like all the cleaning robots in the 1947 short "<a href="http://www.youtube.com/watch?v=bDyL-PkfBqs">House Hunting Mice</a>"), it might be easier to introduce other service industry robots nito our modern society.</p>
<p>The article, being focused on careers, ends with some helpful advice about how you can get into the robotics industry. There are many different industries that will be touched by robotics and you may need to specialize in something other than engineering or programming. For example, to design and create medical robots, you should have some experience or knowledge about biomedicine.</p>
<p>All in all, if you're interested in robotics, this sounds like a cool opportunity. I have probably watched too many SF movies with robots in them and will likely be disappointed with the current state of the technology myself. I don't think we're getting close to entering the world portrayed in <em><a href="http://software.intel.com/en-us/blogs/2010/02/17/will-a-robot-be-doing-your-job-in-25-years/">Magnus, Robot Fighter</a></em>. However, my great grand nieces and nephews could be very close in their lifetimes.</p>
]]></content:encoded>
			<wfw:commentRss>http://software.intel.com/en-us/blogs/2012/02/15/1-million-new-jobs-from-robotics-industries/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>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>Parallel Programming is easier than separating 2 corks</title>
		<link>http://software.intel.com/en-us/blogs/2012/01/06/parallel-programming-is-easier-than-separating-2-corks/</link>
		<comments>http://software.intel.com/en-us/blogs/2012/01/06/parallel-programming-is-easier-than-separating-2-corks/#comments</comments>
		<pubDate>Fri, 06 Jan 2012 23:47:54 +0000</pubDate>
		<dc:creator>Clay Breshears (Intel)</dc:creator>
				<category><![CDATA[Academic]]></category>
		<category><![CDATA[Parallel Programming]]></category>
		<category><![CDATA[cork trick]]></category>
		<category><![CDATA[EAPF]]></category>
		<category><![CDATA[SC11]]></category>
		<category><![CDATA[Tom Murphy]]></category>

		<guid isPermaLink="false">http://software.intel.com/en-us/blogs/2012/01/06/parallel-programming-is-easier-than-separating-2-corks/</guid>
		<description><![CDATA[I've known Prof. Tom Murphy for a few years now. Whenever we were at a conference or other event together and had dinner, he invariably would ask the wait staff if they had two corks he could have. If the place served wine, it wasn't too difficult to find two corks that were the same size [...]]]></description>
			<content:encoded><![CDATA[<p>I've known Prof. Tom Murphy for a few years now. Whenever we were at a conference or other event together and had dinner, he invariably would ask the wait staff if they had two corks he could have. If the place served wine, it wasn't too difficult to find two corks that were the same size or close.</p>
<p>Upon receiving the corks, Tom would demonstrate his "cork trick" and mystify everyone that had not seen it before. After going through it three or four times he would hand the corks back to our server and have them try to do it. They would go away, sometimes showing others, as they struggled to figure out the trick. If they actually tried to recreate the solution as Tom had been able to do, they always came back before we had paid the check and triumphantly demonstrated their dexterity.</p>
<p>At SC11, the Educational Alliance for a Parallel Future (<a href="http://www.eapf.org">EAPF</a>) commissioned some corks with the organization's logo. Tom wandered around part of the conference urging attendees to try his cork trick. The tagline he used was that "Parallel Programming is easier than the cork trick." You can see a short video of his efforts to bring a little magic to the SC11 proceedings<a href="http://link.brightcove.com/services/player/bcpid741496472001?bckey=AQ~~,AAAArH1stHk~,LuRqJUw7MaeY_bnKu-CFpxLmWqzXqxwQ&amp;bctid=1337973843001"> here</a>.</p>
<p>If you meet Tom with some corks in his pocket and he brings them out to show you the cork trick, be aware that he will never show you the solution. (He says he really likes me, but I had to figure it out for myself.) Like most problems you encounter in life, very few are impossible to solve; it is just that you don't have a solution, yet.</p>
<p>Parallel programming is the same. It may seem difficult and impossible to figure out, but that only means you haven't discovered the key that will allow you to wrap your brain around the concepts.</p>
]]></content:encoded>
			<wfw:commentRss>http://software.intel.com/en-us/blogs/2012/01/06/parallel-programming-is-easier-than-separating-2-corks/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Can your phone SEE what you&#039;re saying?</title>
		<link>http://software.intel.com/en-us/blogs/2011/12/16/can-emyourem-phone-see-what-youre-saying/</link>
		<comments>http://software.intel.com/en-us/blogs/2011/12/16/can-emyourem-phone-see-what-youre-saying/#comments</comments>
		<pubDate>Fri, 16 Dec 2011 22:15:38 +0000</pubDate>
		<dc:creator>Clay Breshears (Intel)</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://software.intel.com/en-us/blogs/2011/12/16/can-emyourem-phone-see-what-youre-saying/</guid>
		<description><![CDATA[Since I don't have a smartphone (and am not in the market for one), I don't typically care what new features get put into the latest models. That is, unless it is cool and interesting. When I first saw commercials for the Apple iPhone S and Siri, I thought it must have been a recreation [...]]]></description>
			<content:encoded><![CDATA[<p>Since I don't have a smartphone (and am not in the market for one), I don't typically care what new features get put into the latest models. That is, unless it is cool and interesting.</p>
<p>When I first saw commercials for the Apple iPhone S and Siri, I thought it must have been a recreation of the technology to get market buzz. When I figured out the scenes were portraits of reality, I took notice and marvelled at such a cool feature.</p>
<p>Today, I read some speculative articles and rumors about Google getting ready to release their competitive product, Majel. This is named after Majel Barrett-Rodenberry who provided the voice of the computer in <em>Star Trek </em>and <em>Star Trek: The Next Generation</em>. Beyond the appropriate name, I was thinking "Ho hum, another voice activated search tool."</p>
<p>Then I read some of the "details" <a href="http://androidandme.com/2011/12/news/more-info-on-googles-majel-moving-a-little-faster-towards-that-star-trek-future/">published on the androidandme.com site</a>. The most interesting point for me is in the second-to-last paragraph attributed to "anonymous Googler" touting the reasons for higher expected performance of Majel over normal speech recognition: "...mostly because of the use of high quality microphones and <em>lip-reading assistance</em>." [Emphasis is mine]</p>
<p>Regardless of whether or not this turns out to be true, it's one of those cool <em>Star Trek </em>technology ideas! Being able to read lips with a handheld device would  have so many benefits and uses.</p>
<p>Being able to understand spoken commands more reliably by the device is good and functional. Why couldn't you turn the camera outward to act as an aid to the hearing-impaired? This seems like it would be a great help for older citizens that have lost their hearing or when encountering people that do not know how to sign.  I hold my device so that it can see the speaker's face when they talk and a transcript of their words appears on the screen facing me. Maybe even translating from their language to mine?</p>
<p>And I haven't even had time to think about all the James Bond uses for such portable technology. All football coaches will need a clipboard to cover their mouths when calling in plays to keep fans or spies from the other team being able to discern what they say.</p>
<p>What's next?</p>
<ul>
<li>Facial recognition? If I'm at a party and I want to be sure to meet someone that I've not met, I could put in some pictures, have my device stuck in my pocket scanning people as I walk around the party and give me a signal when I am close to the object of my search.</li>
<li>Finding separated members of your party in a crowd? If we arrange to meet at Splash Molehill at 1pm, but I can't tell if anyone else is close, I hold my device over my head and rotate slowly to scan the crowd. If anyone is recognized, I get a signal and an indication of where they are.</li>
<li>Or assessing the identity and potential value of objects in a previously locked room? (My wife and I have become fans of <em>Storage Wars</em>.) It would be cool if a device can scan a room, postulate the identity of items that can be seen and render a value of those objects from Interwebs search.</li>
</ul>
<p>I may not be getting a smartphone anytime soon (or ever), but I'm still fascinated by what technology is being built into handheld devices that even 5 year ago seemed to require much more computational power than  you could hold in the palm of your hand.</p>
]]></content:encoded>
			<wfw:commentRss>http://software.intel.com/en-us/blogs/2011/12/16/can-emyourem-phone-see-what-youre-saying/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>As fall Idaho twins, so falls Twin Falls, ID</title>
		<link>http://software.intel.com/en-us/blogs/2011/12/14/as-fall-idaho-twins-so-falls-twin-falls-id/</link>
		<comments>http://software.intel.com/en-us/blogs/2011/12/14/as-fall-idaho-twins-so-falls-twin-falls-id/#comments</comments>
		<pubDate>Wed, 14 Dec 2011 23:24:06 +0000</pubDate>
		<dc:creator>Clay Breshears (Intel)</dc:creator>
				<category><![CDATA[Parallel Programming]]></category>
		<category><![CDATA[Site News & Announcements]]></category>

		<guid isPermaLink="false">http://software.intel.com/en-us/blogs/2011/12/14/as-fall-idaho-twins-so-falls-twin-falls-id/</guid>
		<description><![CDATA[A chapter has closed on my career here at Intel. I hope this post isn't too maudlin.]]></description>
			<content:encoded><![CDATA[<p>If you've read <a href="http://software.intel.com/en-us/blogs/2011/12/14/the-last-show-parallel-programming-talk-130-parallel-manifold-with-jim-dempsey/">Kathy's blog and Show Notes</a> for <em>Parallel Programming Talk #130</em>, then you know the sad news. This was the last show we'll be doing. Kathy and I are moving on to different duties within Intel. Ironically, over the last three months I've had quite a few people tell me that they had just found the show and were enjoying the episodes that they had seen. Luckily for them, there will always be this and the previous 129 episodes available for <a href="http://www.intel.com/software/parallelprogrammingtalk">online viewing</a>.</p>
<p>I want to thank Kathy Farrel for all her hard work in organizing and taking the lead on the last 40 shows. She had some fresh ideas during our collaboration and I enjoyed working with her. Kathy was taking on the role of Parallel Programming Community Manager and it seemed like she was asking me at least one question every day about the subject.  She started out a bit camera shy and tongue-tied. But she made steady improvement, started to explore parallel programming topics on her own, and soon got comfortable with the hosting duties. I am impressed with her drive and tenacity. She will do more great things in her <a title="vPro Developer Web Site" href="http://software.intel.com/en-us/vPro">new role</a>.</p>
<p>Aaron Tersteeg deserves a big "Thank You" for developing <em>Parallel Programming Talk </em>back in 2008, first on blogtalkradio and then as an Intel Software Network web video show. When he first approached me about participating, he described it as "<a href="http://www.cartalk.com">Car Talk</a>" but focused around parallel programming topics. We tried to keep things both informal and informative. I was relegated to Aaron's monitor when we started the video shows (as he is in Oregon and I am in Illinois), which led to some light-hearted moments, some accidents, and some experimentation as we played with this restriction.</p>
<p>(My favorite anecdote from the early video days was when Aaron ran into a fan of the show at a Portland Trailblazers game. The fan knew he looked familiar and then asked if he was Clay Breshears.)</p>
<p>The production crew will always have my undying respect and appreciation. Jerry Makare and Josh Bancroft ushered the video era into existence and have always driven the technology and production values to deliver a higher quality product. They were always up for a challenge and conquered many of them during the show's run. I also appreciate all the work that the video production interns--Chris Davis and Anthony Lopez--did for the show. They worked tirelessly behind the scenes moving, setting up, and tearing down equipment, they did some of the editing chores, and they were always great fun during those rare times I was in town for a live shoot.</p>
<p>And finally, I want to thank the fans and casual viewers of the show. Thank you for all your support, questions, and comments. Without you we would have shut down soon after we started. During my tenure as co-host of <em>Parallel Programming Talk</em>, I got to meet some of the superstars of the field, got to hear more about cool parallel languages and approaches to parallel programming, and got to see some cool tools that are useful in making parallel programming, debugging and tuning much easier. I hope that you enjoyed hearing from the experts and finding out about new technology at least half as much as I did.</p>
<p>Keep writing parallel code and be good to each other.</p>
]]></content:encoded>
			<wfw:commentRss>http://software.intel.com/en-us/blogs/2011/12/14/as-fall-idaho-twins-so-falls-twin-falls-id/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MIC: Stepping-stone to Quantum Computing?</title>
		<link>http://software.intel.com/en-us/blogs/2011/12/14/mic-stepping-stone-to-quantum-computing/</link>
		<comments>http://software.intel.com/en-us/blogs/2011/12/14/mic-stepping-stone-to-quantum-computing/#comments</comments>
		<pubDate>Wed, 14 Dec 2011 17:59:41 +0000</pubDate>
		<dc:creator>Clay Breshears (Intel)</dc:creator>
				<category><![CDATA[Parallel Programming]]></category>
		<category><![CDATA[Server]]></category>
		<category><![CDATA[MIC]]></category>
		<category><![CDATA[QRAM]]></category>
		<category><![CDATA[quantum computation]]></category>

		<guid isPermaLink="false">http://software.intel.com/en-us/blogs/2011/12/14/mic-stepping-stone-to-quantum-computing/</guid>
		<description><![CDATA[I was reading Quantum Computing for Computer Scientists by Noson S. Yanofsky and Mirco A. Mannucci while I was on the treadmill last night. I started out reading the description of Shor's algorithm (for factoring integers) and thought that implementing this on a classical computer (in parallel, of course) would make an interesting problem for the Intel [...]]]></description>
			<content:encoded><![CDATA[<p>I was reading <em><a href="http://www.cambridge.org/us/knowledge/isbn/item1174708/?site_locale=en_US">Quantum Computing for Computer Scientists</a> </em>by Noson S. Yanofsky and Mirco A. Mannucci while I was on the treadmill last night. I started out reading the description of <a href="http://en.wikipedia.org/wiki/Shor%27s_algorithm">Shor's algorithm</a> (for factoring integers) and thought that implementing this on a classical computer (in parallel, of course) would make an interesting problem for the Intel Threading Challenge contest.</p>
<p>But what really caught my imagination was the first section of Chapter 7, "Programming Languages," that briefly described the Quantum Random Access Machine (QRAM) model of quantum computation. In addition to the few paragraphs that were devoted to this model, there was a picture that showed the relationship of a classic computer to a quantum computing device. Each part was simply a box with data/instructions passed from the classic to the quantum and data (results) passed from quantum to the classic side.</p>
<p>This setup looked familiar and it came to me during my cool down: this is how a system equipped with MIC would work. That is, your Intel Core processor does some initial computation to set up data, the data is passed over to the MIC (along with the computation instructions to be executed), and the results from the MIC can be returned to the Core side for use.</p>
<p>I know that MIC processors (and other GPU-like devices) don't have the same computational power as a quantum processor could have. However, the data-parallel and SIMD execution modes are similar to how a quantum device could take a superposition of all potential input data and execute a single computation step to arrive at a measurable result. This similarity got me thinking that MIC devices could be the first steps taken by the industry to better understand, prepare for and program effective quantum computations.</p>
<p>I don't know if we will ever see commodity quantum computation devices. I doubt they'll be developed within my lifetime, at least. Even so, I am nothing short of astounded when I look back at how far computer technology has come since I wrote my first COBOL program on an IBM mainframe. </p>
<p>Knowing I should "never say never," how about on the day after I get my qPad(TM) quantum tablet device, I come back and comment on this blog post to say I was mistaken about how quickly quantum computation entered our lives? If it's anywhere in the cloud-o-sphere (and you know once these bits get pushed out, they never go away), I'll find it with the qSearch app, which will be based on the algorithm outlined in section 6.4 of Yanofsky's and Mannucci's book.</p>
]]></content:encoded>
			<wfw:commentRss>http://software.intel.com/en-us/blogs/2011/12/14/mic-stepping-stone-to-quantum-computing/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>It&#039;s here! The Intel Guide for Developing Multithreaded Applications</title>
		<link>http://software.intel.com/en-us/blogs/2011/10/27/its-here-the-intel-guide-for-developing-multithreaded-applications/</link>
		<comments>http://software.intel.com/en-us/blogs/2011/10/27/its-here-the-intel-guide-for-developing-multithreaded-applications/#comments</comments>
		<pubDate>Thu, 27 Oct 2011 17:54:48 +0000</pubDate>
		<dc:creator>Clay Breshears (Intel)</dc:creator>
				<category><![CDATA[Parallel Programming]]></category>

		<guid isPermaLink="false">http://software.intel.com/en-us/blogs/2011/10/27/its-here-the-intel-guide-for-developing-multithreaded-applications/</guid>
		<description><![CDATA[Okay, so it's not something that I would promote as "New &#38; Improved"  with big splashy TV commercials, like some laundry detergent or kids' sugary drink. I would be more likely to skip the trumpets and play a fanfare on a kazoo instead. Even so, I'm excited to announce that the Intel Guide for Developing Multithreaded [...]]]></description>
			<content:encoded><![CDATA[<div id="attachment_38801" class="wp-caption alignleft" style="width: 360px"><a href="http://software.intel.com/en-us/blogs/wordpress/wp-content/uploads/2011/10/Picture-48.jpg"><img class="size-full wp-image-38801" title="Picture 48" src="http://software.intel.com/en-us/blogs/wordpress/wp-content/uploads/2011/10/Picture-48.jpg" alt="" width="350" height="262" /></a><p class="wp-caption-text">The author with a printed edition of the Intel Guide For Developing Multithreaded Applications</p></div>
<p>Okay, so it's not something that I would promote as "New &amp; Improved"  with big splashy TV commercials, like some laundry detergent or kids' sugary drink. I would be more likely to skip the trumpets and play a fanfare on a kazoo instead. Even so, I'm excited to announce that the <a title="Intel Guide for Developing Multithreaded Applications" href="http://software.intel.com/en-us/articles/intel-guide-for-developing-multithreaded-applications/" target="_blank">Intel Guide for Developing Multithreaded Applications</a> has been updated.</p>
<p>Many of the articles featured in the Guide remain as relevant to parallel programmers today as they did when the Guide was first put together. Good parallel progarmming practice will always be good parallel programming practice. Even so, technology  tools are changing at a steady pace, and we know that the Guide needs to keep up with those changes. To that end we've added three new articles and revised two others.</p>
<p>The revised articles illustrate some new features of Intel software tools. The article "<a href="http://software.intel.com/en-us/articles/getting-code-ready-for-parallel-execution-with-intel-parallel-composer/">Getting Code Ready for Parallel Execution with Intel® Parallel Composer</a>" has added explanations of new features and new programming libraries supported by the Intel® Parallel Composer compiler. "<a href="http://software.intel.com/en-us/articles/use-intel-parallel-inspector-to-find-race-conditions-in-openmp-based-multithreaded-code/">Using Intel® Inspector XE 2011 to Find Data Races in Multithreaded Code</a>" updates how to use the latest version of the thread debugging tool.</p>
<p>One of the new articles also deals with Intel software tools. "<a href="http://software.intel.com/en-us/articles/optimize-data-structures-and-memory-access-patterns-to-improve-data-locality/">Optimize Data Structures and Memory Access Patterns to Improve Data Locality</a>" poses a tricky parallel performance issue. Intel® VTune™ Amplifier XE is used to not only detect the problem, but the tool gives users some low-level analysis option to diagnose the root-cause of the problem. The article illustrates a methodology to delve deeper into parallel code to identify and correct bottlenecks to scalability and performance.</p>
<p>Vector computation has been a staple of parallelism for many decades. The second new article, "<a href="http://software.intel.com/en-us/articles/using-avx-without-writing-avx-code/">Using AVX Without Writing AVX Code</a>" shows how programmers can take advantage of the new vector hardware units and AVX instructions without needing to go down to the assembly language level of coding. For viewers of <em>Parallel Programming Talk</em> this might sound familiar. Our guest for <a href="http://software.intel.com/en-us/blogs/2011/06/24/discussion-of-using-avx-without-writing-avx-with-intels-rich-hubbard-parallel-programming-talk-show-114/">show #114</a>was Richard Hubbard who talked about this exact topic. We felt it was something parallel programmers would want to know about, so Richard and Eric Palmer (Intel) wrote it up for the Guide.</p>
<p>The topic of the third new article, "<a href="http://software.intel.com/en-us/articles/optimizing-applications-for-numa/">Optimizing Applications for NUMA </a>" was also featured on Parallel Programming Talk. David Ott appeared in <a href="http://software.intel.com/en-us/blogs/2011/06/16/all-about-numa-with-intel-sr-sw-engineer-david-ott-parallel-programming-talk-show-113/">show #113</a> to tell us about NUMA architecture and how best to program for NUMA. If you have never heard of NUMA or if you have, but have been unsure about what you need to be doing to get the best performance from your applications, then David's article is an excellent place to start.</p>
<p>Even if you've read articles from the Guide before this, you might find something you can apply to your own work in the new articles. This isn't the last revision we'll make to the Guide, of course. I've got some ideas for topics that I'm sure will find their way into the collection. Future articles may be inserted without much hoopla, so check back periodically to see if we've added something new.</p>
<p>If you have a topic that you think should be featured in the Guide, let me know. We are always interested in delivering what readers and parallel programming practitioners want to know more about.</p>
]]></content:encoded>
			<wfw:commentRss>http://software.intel.com/en-us/blogs/2011/10/27/its-here-the-intel-guide-for-developing-multithreaded-applications/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The slings and arrows of outrageous fortune?</title>
		<link>http://software.intel.com/en-us/blogs/2011/10/17/the-slings-and-arrows-of-outrageous-fortune/</link>
		<comments>http://software.intel.com/en-us/blogs/2011/10/17/the-slings-and-arrows-of-outrageous-fortune/#comments</comments>
		<pubDate>Mon, 17 Oct 2011 17:53:34 +0000</pubDate>
		<dc:creator>Clay Breshears (Intel)</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://software.intel.com/en-us/blogs/2011/10/17/the-slings-and-arrows-of-outrageous-fortune/</guid>
		<description><![CDATA[I knew this day was coming, but you're never prepared for it. I was in Portland, OR, for an internal Intel conference. Before the meeting got started, I arrived early and decided to browse Powell's Books. The technical store's location has changed and the name seems to now be Powell's #2, so I wanted to see what [...]]]></description>
			<content:encoded><![CDATA[<p>I knew this day was coming, but you're never prepared for it.</p>
<p>I was in Portland, OR, for an internal Intel conference. Before the meeting got started, I arrived early and decided to browse Powell's Books. The technical store's location has changed and the name seems to now be Powell's #2, so I wanted to see what that was like.</p>
<p>Imagine my delight to find two copies of <em>The Art of Concurrency</em> on the shelf. As I pulled one off the shelf, I glanced at the back and got very sad. The copy I held in my hand was <em>used</em>. Someone had bought the book and then gave it up. The other copy was also a used version.</p>
<p>My wife tried to cheer me up when I told her about it. Powell's Books must still see some value in selling my book. She pointed out that I didn't find these copies in the FREE box.</p>
<p>Yet.</p>
<p>Maybe it's time to start writing a new book.</p>
]]></content:encoded>
			<wfw:commentRss>http://software.intel.com/en-us/blogs/2011/10/17/the-slings-and-arrows-of-outrageous-fortune/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Do monkeys even know about iambic pentameter?</title>
		<link>http://software.intel.com/en-us/blogs/2011/09/26/do-monkeys-even-know-about-iambic-pentameter/</link>
		<comments>http://software.intel.com/en-us/blogs/2011/09/26/do-monkeys-even-know-about-iambic-pentameter/#comments</comments>
		<pubDate>Mon, 26 Sep 2011 22:37:00 +0000</pubDate>
		<dc:creator>Clay Breshears (Intel)</dc:creator>
				<category><![CDATA[Academic]]></category>
		<category><![CDATA[Parallel Programming]]></category>
		<category><![CDATA[infinite monkeys]]></category>
		<category><![CDATA[Shakespeare]]></category>

		<guid isPermaLink="false">http://software.intel.com/en-us/blogs/2011/09/26/do-monkeys-even-know-about-iambic-pentameter/</guid>
		<description><![CDATA[I guess I can understand why Shakepeare is the chosen meter stick for this kind of project. Still, why not hope for the Great American Novel, pop song lyrics, or a script for the next "Planet of the Apes" movie?]]></description>
			<content:encoded><![CDATA[<p>I just read a <a href="http://www.bbc.co.uk/news/technology-15060310">BBC News online report</a> about a project to simulate <a href="http://en.wikipedia.org/wiki/Infinite_monkey_theorem">an infinite number of monkeys with an infinite number of typewriters</a> to see if they can come up with the works of William Shakespeare. Since it is a computational exercise, there is a limit to the number of monkeys that can be simulated.  </p>
<p>The brainchild of (US programmer) Jesse Anderson, a few million virtual monkeys are randomly spitting out nine-character strings. These strings are then compared to Shakespeare's work for matches. If the string appears anywhere within the Bard's catalog (punctuation and spaces are ignored for ease of comparison), then the string is a success.</p>
<p>Initially started on the Amazon EC2 cloud, the project has been moved to a home PC. (At almost $20 per day in computation time expenses, I'd want a more economical option, too.) I hope Mr. Anderson has a multi-core processor since, according to the report, there are "5.5 trillion different combinations of any nine characters from the English alphabet."</p>
<p>Of course, for me the big flaw is that there is no order to the random scribblings of the simulated simians. A set of consecutive strings something like...</p>
<pre>rvxtobeor nottobeth atisthequ estionalp</pre>
<p> </p>
<p> ...would be so much more impressive. I guess, even processing in parallel, that restriction might take a bit longer.</p>
<p>It's an interesting project, nonetheless. Not the kind of thing that you might give as a homework assignment, but something of an intriguing search problem with several parallel approaches (just off the top of my head).</p>
]]></content:encoded>
			<wfw:commentRss>http://software.intel.com/en-us/blogs/2011/09/26/do-monkeys-even-know-about-iambic-pentameter/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Does anyone still remember Mnemosyne?</title>
		<link>http://software.intel.com/en-us/blogs/2011/09/23/does-anyone-still-remember-mnemosyne/</link>
		<comments>http://software.intel.com/en-us/blogs/2011/09/23/does-anyone-still-remember-mnemosyne/#comments</comments>
		<pubDate>Fri, 23 Sep 2011 16:38:18 +0000</pubDate>
		<dc:creator>Clay Breshears (Intel)</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[IBM Watson]]></category>
		<category><![CDATA[jeopardy]]></category>
		<category><![CDATA[Memory]]></category>

		<guid isPermaLink="false">http://software.intel.com/en-us/blogs/2011/09/23/does-anyone-still-remember-mnemosyne/</guid>
		<description><![CDATA[You can do it.... One of the Titans from Greek mythology? .... Mother to the Nine Muses? .... Oh, never mind, just Google it already.]]></description>
			<content:encoded><![CDATA[<p>I finished my summer reading project on the way to the Intel Developer Forum 2011. This was <em><a href="http://thenumerati.net/?postID=685&amp;final-jeopardy-about-the-book">Final Jeopardy: Man vs. Machine and the Quest to Know Everything</a> </em>by Stephen Baker. It's the background story of how IBM decided to create the Watson Q-A machine and have it compete against champion players on the game show <em>Jeopardy! </em>I found it a good read that reminded me of <em><a href="http://www.tracykidder.com/books/soul/">The Soul of a New Machine</a></em> in many respects.</p>
<p>One of the questions raised in the book was the nature of memory vs. looking up information, and whether the memorization of facts, figures, and other trivia, which is a paramount skill for <em>Jeopardy!</em> contestants, might soon become a lost art. <a href="http://news.columbia.edu/googlememory">Columbia University researcher Betsy Sparrow’s recent paper</a> in <em>Science</em> is titled, “Google Effects on Memory: Cognitive Consequences of Having Information at Our Fingertips.” It found that humans tend to not remember facts if they know that they will be able to look them up when needed.</p>
<p>Yesterday morning, while eating my breakfast, I saw a commercial on the Game Show Network for their new audience participation game entitled "A Google a Day." Participants are practically berated to look up the answer to a trivia question rather than knowing the answer. This is just sad.</p>
<p>I grew up watching <em>Jeopardy! </em>with host Art Fleming. I like trivia-based question-and-answer game shows. You can play along to test your own knowledge before the answer is revealed. Will the next breed of game shows have three contestants, each armed with their own smart-phone, vying to see who can look up the answer to a question before the others? How do I play along at home with that? Should I just record the show and pause it after the question is posed to give my slower Internet connection time to bring me back possible solutions?</p>
<p>The slide into total reliance on technology for recall of facts may not be stoppable. The Columbia study points to changes in how we now relate to our collected bodies of knowledge. Watson is a technical marvel that will redefine how we navigate a myriad of information and data in search of solutions to questions beyond the simple regurgitation of facts. Charles Stross postulates a near future where we record everything we see and experience into personal data storage units (<em>Accelerando</em>, <em>Halting State</em>) and we really don't need to actively remember anything (except how to access our external memory units).</p>
<p>The need for new and bigger memory packages and the processing power to run, populate, index, and search them will be good for companies like Intel. Personally, I'm going to miss demonstrating that I know the first US president born in a hospital, Doc Savage's assistants and their specialties, and the more common name for a dactylogram, in lieu of having faster fingers to query an electronic repository.</p>
]]></content:encoded>
			<wfw:commentRss>http://software.intel.com/en-us/blogs/2011/09/23/does-anyone-still-remember-mnemosyne/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>These are your 2011 Faces of Parallelism...</title>
		<link>http://software.intel.com/en-us/blogs/2011/09/20/these-are-your-2011-faces-of-parallelism/</link>
		<comments>http://software.intel.com/en-us/blogs/2011/09/20/these-are-your-2011-faces-of-parallelism/#comments</comments>
		<pubDate>Tue, 20 Sep 2011 19:23:04 +0000</pubDate>
		<dc:creator>Clay Breshears (Intel)</dc:creator>
				<category><![CDATA[Events]]></category>
		<category><![CDATA[Parallel Programming]]></category>
		<category><![CDATA[faces of parallelism]]></category>
		<category><![CDATA[idf2011]]></category>
		<category><![CDATA[Intel Parallel Building Blcoks]]></category>
		<category><![CDATA[parallel programming]]></category>

		<guid isPermaLink="false">http://software.intel.com/en-us/blogs/2011/09/20/these-are-your-2011-faces-of-parallelism/</guid>
		<description><![CDATA[I just wish we had been thinking ahead and had their actual faces that we could post, too.]]></description>
			<content:encoded><![CDATA[<p>  The "Faces of Parallelism" lab and contest at last week's Intel Developer Forum 2011 went quite well. There were 87 people that stopped by during the four hour lab time to try out one or more of the Intel® Parallel Building Blocks (Intel® PBB) libraries.</p>
<p>A bonus portion of the lab was the opportunity to run the Intel® PBB lab code on the Intel® Many Integrated Core Architecture (Intel® MIC). After testing one of the programming models, a select few went the extra mile and learned how easy it was (little or no code changes required) to port specified computations over to an Intel® MIC-enabled platform.</p>
<p>The other big part of the lab was a contest to win an Internet TV for putting together a video or written statement about how the programming model tested would benefit the participant in their daily work. A panel of judges looked over the entries that came in and awarded a prize to one contestant from each of the four lab choices. The winners are:</p>
<p><strong>Intel® Array Building Blocks: Dick Brown </strong></p>
<p><strong>Intel® Cilk Plus: Tom Ratcliffe </strong></p>
<p><strong>Intel® Threading Building Blocks: Emmanuel Lopez </strong></p>
<p><strong>Intel® Many Integrated Core Architecture: Joe Dougherty</strong></p>
<p>Congratulations to all of the winners! And a big "<strong>Thank You</strong>" for all the other lab/contest participants. I hope you got something out of your chance to test some of the PBB programming models (even if it wasn't a big prize).</p>
]]></content:encoded>
			<wfw:commentRss>http://software.intel.com/en-us/blogs/2011/09/20/these-are-your-2011-faces-of-parallelism/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

