<?xml version="1.0" encoding="UTF-8"?><!-- generator="wordpress/2.3.1" -->
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	>
<channel>
	<title>Comments for Open Device, Insert Code</title>
	<link>http://mvista.com/blogs/dixon</link>
	<description>Open Source, Open Devices, Open Thinking</description>
	<pubDate>Thu, 20 Nov 2008 23:07:25 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.3.1</generator>
		<item>
		<title>Comment on Cache: the key to multicore performance by Brad Dixon</title>
		<link>http://mvista.com/blogs/dixon/2008/10/10/cache-the-key-to-multicore-performance/#comment-109</link>
		<dc:creator>Brad Dixon</dc:creator>
		<pubDate>Sun, 09 Nov 2008 21:40:25 +0000</pubDate>
		<guid>http://mvista.com/blogs/dixon/2008/10/10/cache-the-key-to-multicore-performance/#comment-109</guid>
		<description>Jakob:

Great response... thank you for reading.

I think that your response is in essence an echo of my original post: That keeping an eye on efficient cache usage is paramount. [Again.. hardly an original or earth shattering thought.] Pinning an RTOS to a specific core does help to efficiently use of the cache. In reply to you... no, it doesn't hurt to put a legacy stack on a single core. Potentially it doesn't help as much as it could, however.

The Intel study was interesting because it indicated that for this particular workload that one could utilize the cache even more efficiently by segregating the data, not the algorithm, to a single assigned core/cache unit. I hear so much about pinning an OS of whatever sort to a core that to read a different approach was refreshing and notable.

Your use case is absolutely en vogue. We have customers follow that approach frequently and I presume they do so because it has benefits.

I do wonder, though, as the core count scales upwards in the next decade when we will get to a point that we've run out of boxes and algorithms to consolidate onto a single multicore (eventually many-core) device? Will there be a second multi-core transition hurdle as developers finally break down their co-resident code silos and create actual multicore algorithms? I presume, like all things, it will happen piece by piece.</description>
		<content:encoded><![CDATA[<p>Jakob:</p>
<p>Great response&#8230; thank you for reading.</p>
<p>I think that your response is in essence an echo of my original post: That keeping an eye on efficient cache usage is paramount. [Again.. hardly an original or earth shattering thought.] Pinning an RTOS to a specific core does help to efficiently use of the cache. In reply to you&#8230; no, it doesn&#8217;t hurt to put a legacy stack on a single core. Potentially it doesn&#8217;t help as much as it could, however.</p>
<p>The Intel study was interesting because it indicated that for this particular workload that one could utilize the cache even more efficiently by segregating the data, not the algorithm, to a single assigned core/cache unit. I hear so much about pinning an OS of whatever sort to a core that to read a different approach was refreshing and notable.</p>
<p>Your use case is absolutely en vogue. We have customers follow that approach frequently and I presume they do so because it has benefits.</p>
<p>I do wonder, though, as the core count scales upwards in the next decade when we will get to a point that we&#8217;ve run out of boxes and algorithms to consolidate onto a single multicore (eventually many-core) device? Will there be a second multi-core transition hurdle as developers finally break down their co-resident code silos and create actual multicore algorithms? I presume, like all things, it will happen piece by piece.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Cache: the key to multicore performance by Jakob Engblom</title>
		<link>http://mvista.com/blogs/dixon/2008/10/10/cache-the-key-to-multicore-performance/#comment-108</link>
		<dc:creator>Jakob Engblom</dc:creator>
		<pubDate>Sun, 09 Nov 2008 19:43:17 +0000</pubDate>
		<guid>http://mvista.com/blogs/dixon/2008/10/10/cache-the-key-to-multicore-performance/#comment-108</guid>
		<description>A small note on the using virtualization to move RTOSes onto a multicore: often, that virtuallization layer will put each RTOS on its own core in the set, essentially pinning it to that core. This is really necessary as trying to run the RTOS on multiple different cores over its lifetime -- or even worse, on a shared-memory truly concurrent SMP abstraction -- is almost guaranteed to break a bunch of assumptions. 

So it is hard to see how it could hurt to put a legacy stack onto a single core, and then have a Linux or other OS share the other cores. It is an engineering-wise very efficient approach, and also one that retain the key value in terms of latency, robustness, and similar traits that make traditional RTOSes technically better at many things than a more general-purpose best-effort OS like Linux. 

I think a common pattern for using a four-core or eight-core multicore device is to gather software stacks that used to run on four or eight physically separate processors onto a single die. This means much reduced bill of materials and package size, while still not totally requiring a rewrite of software. 

A completely homogeneous OS across all cores on a multicore is going to be pretty rare, I think, as it seems to make more sense to run multiple OS instances, some specialized for control, some for line processing, and some for operations and maintenance. 

/jakob</description>
		<content:encoded><![CDATA[<p>A small note on the using virtualization to move RTOSes onto a multicore: often, that virtuallization layer will put each RTOS on its own core in the set, essentially pinning it to that core. This is really necessary as trying to run the RTOS on multiple different cores over its lifetime &#8212; or even worse, on a shared-memory truly concurrent SMP abstraction &#8212; is almost guaranteed to break a bunch of assumptions. </p>
<p>So it is hard to see how it could hurt to put a legacy stack onto a single core, and then have a Linux or other OS share the other cores. It is an engineering-wise very efficient approach, and also one that retain the key value in terms of latency, robustness, and similar traits that make traditional RTOSes technically better at many things than a more general-purpose best-effort OS like Linux. </p>
<p>I think a common pattern for using a four-core or eight-core multicore device is to gather software stacks that used to run on four or eight physically separate processors onto a single die. This means much reduced bill of materials and package size, while still not totally requiring a rewrite of software. </p>
<p>A completely homogeneous OS across all cores on a multicore is going to be pretty rare, I think, as it seems to make more sense to run multiple OS instances, some specialized for control, some for line processing, and some for operations and maintenance. </p>
<p>/jakob</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Thank you for attending! by Troy Kitch</title>
		<link>http://mvista.com/blogs/dixon/2008/09/11/thank-you-for-attending/#comment-94</link>
		<dc:creator>Troy Kitch</dc:creator>
		<pubDate>Sat, 13 Sep 2008 00:08:54 +0000</pubDate>
		<guid>http://mvista.com/blogs/dixon/2008/09/11/thank-you-for-attending/#comment-94</guid>
		<description>Vincent, the recording is live here: http://www.techonline.com/learning/webinar/210201216;jsessionid=AQ3JZOUGZVZXOQSNDLRSKHSCJUNN2JVN

You can find a repository of more information from MontaVista here: http://www.mvista.com/download/library.php</description>
		<content:encoded><![CDATA[<p>Vincent, the recording is live here: <a href="http://www.techonline.com/learning/webinar/210201216;jsessionid=AQ3JZOUGZVZXOQSNDLRSKHSCJUNN2JVN" rel="nofollow">http://www.techonline.com/learning/webinar/210201216;jsessionid=AQ3JZOUGZVZXOQSNDLRSKHSCJUNN2JVN</a></p>
<p>You can find a repository of more information from MontaVista here: <a href="http://www.mvista.com/download/library.php" rel="nofollow">http://www.mvista.com/download/library.php</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Thank you for attending! by Brad Dixon</title>
		<link>http://mvista.com/blogs/dixon/2008/09/11/thank-you-for-attending/#comment-93</link>
		<dc:creator>Brad Dixon</dc:creator>
		<pubDate>Fri, 12 Sep 2008 13:42:00 +0000</pubDate>
		<guid>http://mvista.com/blogs/dixon/2008/09/11/thank-you-for-attending/#comment-93</guid>
		<description>Vincent:

The host of the webinar yesterday will email all registrants a PDF copy of the presentation for your review. Very soon the webinar will also be available "on-demand" via their website. I'll post here when those URLs become available.

As far as other educational materials go there are certainly some options:

* MontaVista's resource library: http://mvista.com/download/library.php

* Earlier blog posts from me on multicore: http://mvista.com/blogs/dixon/category/multicore/

* As I mentioned in the presentation telecom/datacom applications have characteristics which make some highly scalable web applications a natural analog. Google's Seattle Scalability Conference presentations and videos may help to enlighten on what is happening in that world: http://groups.google.com/group/seattle-scalability-conference.

Digging around through my notes I found this quote from the "Landscape of Parallel Computing Research" site at Bekeley: "While embedded and server computing have historically evolved along separate paths, in our view the manycore challenge brings them much closer together. By leveraging the good ideas from each path, we believe we will find better answers to the seven questions."

Guess I'm not alone on this meme. Who ever is?

You can read more at the Berkeley site: http://view.eecs.berkeley.edu/wiki/Main_Page

* I also mentioned OpenMP ( http://www.openmp.org ) and Erlang ( http://www.erlang.org ) yesterday.</description>
		<content:encoded><![CDATA[<p>Vincent:</p>
<p>The host of the webinar yesterday will email all registrants a PDF copy of the presentation for your review. Very soon the webinar will also be available &#8220;on-demand&#8221; via their website. I&#8217;ll post here when those URLs become available.</p>
<p>As far as other educational materials go there are certainly some options:</p>
<p>* MontaVista&#8217;s resource library: <a href="http://mvista.com/download/library.php" rel="nofollow">http://mvista.com/download/library.php</a></p>
<p>* Earlier blog posts from me on multicore: <a href="http://mvista.com/blogs/dixon/category/multicore/" rel="nofollow">http://mvista.com/blogs/dixon/category/multicore/</a></p>
<p>* As I mentioned in the presentation telecom/datacom applications have characteristics which make some highly scalable web applications a natural analog. Google&#8217;s Seattle Scalability Conference presentations and videos may help to enlighten on what is happening in that world: <a href="http://groups.google.com/group/seattle-scalability-conference." rel="nofollow">http://groups.google.com/group/seattle-scalability-conference.</a></p>
<p>Digging around through my notes I found this quote from the &#8220;Landscape of Parallel Computing Research&#8221; site at Bekeley: &#8220;While embedded and server computing have historically evolved along separate paths, in our view the manycore challenge brings them much closer together. By leveraging the good ideas from each path, we believe we will find better answers to the seven questions.&#8221;</p>
<p>Guess I&#8217;m not alone on this meme. Who ever is?</p>
<p>You can read more at the Berkeley site: <a href="http://view.eecs.berkeley.edu/wiki/Main_Page" rel="nofollow">http://view.eecs.berkeley.edu/wiki/Main_Page</a></p>
<p>* I also mentioned OpenMP ( <a href="http://www.openmp.org" rel="nofollow">http://www.openmp.org</a> ) and Erlang ( <a href="http://www.erlang.org" rel="nofollow">http://www.erlang.org</a> ) yesterday.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Thank you for attending! by Vincent</title>
		<link>http://mvista.com/blogs/dixon/2008/09/11/thank-you-for-attending/#comment-87</link>
		<dc:creator>Vincent</dc:creator>
		<pubDate>Fri, 12 Sep 2008 05:26:30 +0000</pubDate>
		<guid>http://mvista.com/blogs/dixon/2008/09/11/thank-you-for-attending/#comment-87</guid>
		<description>Hi Brad,

Thankyou for an informative session.
Where can I get a copy of the presentation and is there a repository of presentations, whitepapers and other information and education material I could access?

Thanks and regards,
Vincent Barrientos
CAE Professional Services</description>
		<content:encoded><![CDATA[<p>Hi Brad,</p>
<p>Thankyou for an informative session.<br />
Where can I get a copy of the presentation and is there a repository of presentations, whitepapers and other information and education material I could access?</p>
<p>Thanks and regards,<br />
Vincent Barrientos<br />
CAE Professional Services</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on VDC survey on multicore indicates reality has a firm grasp on the developer community by Klaas van Gend</title>
		<link>http://mvista.com/blogs/dixon/2008/08/07/vdc-survey-on-multicore-indicates-reality-has-a-firm-grasp-on-the-developer-community/#comment-70</link>
		<dc:creator>Klaas van Gend</dc:creator>
		<pubDate>Fri, 08 Aug 2008 08:05:35 +0000</pubDate>
		<guid>http://mvista.com/blogs/dixon/2008/08/07/vdc-survey-on-multicore-indicates-reality-has-a-firm-grasp-on-the-developer-community/#comment-70</guid>
		<description>Many semi-embedded applications benefit hugely - including telecoms, file/web serving, and - as said before - anything that sees huge amounts of unrelated, parallel, stateless requests. But some software that can be parallised is not.

Ask any manager in a bureaucracy how much faster he can go if you double his staff. 
Depending on his office organization - it might not help at all. 

Consider getting a drivers license.
The front desk employee accepts your stuff and puts it in an envelope. The second person cuts the photo ID. The third person looks up the applicant in a database. The fourth actually creates the basic paper. Fifth attached the photo ID. Sixth laminates. The seventh calls the applicant that it's ready and the eighth one hands it out. Typical pipe line - cars have been made like this for ages.
And you might have noticed in a modern plant: car manufactures stopped using this kind of straight production lines.
The message boxes are the bottle neck in the above design, not the amount of employees.
Adding 8 people to the above team will not improve throughput significantly (is one going to put glue on the photo and another going to affix?). Having each employee (just the original 8) finish a drivers license completely will require a few more computers and more pairs of scissors. But it improves the variety of the job. And the department's throughput speeds up.

I've seen too many software designs that show the above limitations. And because e.g. locking and context switches are more expensive on multi-core machines, the message pipes (or other synchronisation points) will kill your app - especially if you have as many cores as you have stages.

But to stick to my old-and-trusted airbag example: I'd prefer a simple, single processor to check if my airbag must inflate. 
That's not a task I'd like to run on a multi-core CPU - not even if it is a dedicated core. 
What happens if some problem prevents that CPU from running in time?
Ask SGI what happens if you scale the current Linux to run on, say, 4096 cores. Some basic OS thingies take forever...
http://lwn.net/Articles/229873

Henry Ford's assembly line was a good design - ages ago. 
Computer software again is reinventing mechanic engineering principles...</description>
		<content:encoded><![CDATA[<p>Many semi-embedded applications benefit hugely - including telecoms, file/web serving, and - as said before - anything that sees huge amounts of unrelated, parallel, stateless requests. But some software that can be parallised is not.</p>
<p>Ask any manager in a bureaucracy how much faster he can go if you double his staff.<br />
Depending on his office organization - it might not help at all. </p>
<p>Consider getting a drivers license.<br />
The front desk employee accepts your stuff and puts it in an envelope. The second person cuts the photo ID. The third person looks up the applicant in a database. The fourth actually creates the basic paper. Fifth attached the photo ID. Sixth laminates. The seventh calls the applicant that it&#8217;s ready and the eighth one hands it out. Typical pipe line - cars have been made like this for ages.<br />
And you might have noticed in a modern plant: car manufactures stopped using this kind of straight production lines.<br />
The message boxes are the bottle neck in the above design, not the amount of employees.<br />
Adding 8 people to the above team will not improve throughput significantly (is one going to put glue on the photo and another going to affix?). Having each employee (just the original <img src='http://mvista.com/blogs/dixon/wp-includes/images/smilies/icon_cool.gif' alt='8)' class='wp-smiley' /> finish a drivers license completely will require a few more computers and more pairs of scissors. But it improves the variety of the job. And the department&#8217;s throughput speeds up.</p>
<p>I&#8217;ve seen too many software designs that show the above limitations. And because e.g. locking and context switches are more expensive on multi-core machines, the message pipes (or other synchronisation points) will kill your app - especially if you have as many cores as you have stages.</p>
<p>But to stick to my old-and-trusted airbag example: I&#8217;d prefer a simple, single processor to check if my airbag must inflate.<br />
That&#8217;s not a task I&#8217;d like to run on a multi-core CPU - not even if it is a dedicated core.<br />
What happens if some problem prevents that CPU from running in time?<br />
Ask SGI what happens if you scale the current Linux to run on, say, 4096 cores. Some basic OS thingies take forever&#8230;<br />
<a href="http://lwn.net/Articles/229873" rel="nofollow">http://lwn.net/Articles/229873</a></p>
<p>Henry Ford&#8217;s assembly line was a good design - ages ago.<br />
Computer software again is reinventing mechanic engineering principles&#8230;</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Would a proprietary software vendor do this? by Brad Dixon</title>
		<link>http://mvista.com/blogs/dixon/2008/06/24/would-a-proprietary-software-vendor-do-this/#comment-24</link>
		<dc:creator>Brad Dixon</dc:creator>
		<pubDate>Wed, 25 Jun 2008 00:40:03 +0000</pubDate>
		<guid>http://mvista.com/blogs/dixon/2008/06/24/would-a-proprietary-software-vendor-do-this/#comment-24</guid>
		<description>LWN.net has this subscriber only write-up on the Red Hat / Firestar patent settlement: http://lwn.net/Articles/287030/

You are all subscribers to LWN.net, aren't you? If not you should be. It is affordable and always informative.

The LWN.net article deals with a valid line of questions around why couldn't Red Hat just have the patent invalidated? Jonathan Corbet also asks and discusses "what about all of the other projects out there which are using object-relational glue layers?"</description>
		<content:encoded><![CDATA[<p>LWN.net has this subscriber only write-up on the Red Hat / Firestar patent settlement: <a href="http://lwn.net/Articles/287030/" rel="nofollow">http://lwn.net/Articles/287030/</a></p>
<p>You are all subscribers to LWN.net, aren&#8217;t you? If not you should be. It is affordable and always informative.</p>
<p>The LWN.net article deals with a valid line of questions around why couldn&#8217;t Red Hat just have the patent invalidated? Jonathan Corbet also asks and discusses &#8220;what about all of the other projects out there which are using object-relational glue layers?&#8221;</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Linux at the Freescale Technology Forum by Brad Dixon</title>
		<link>http://mvista.com/blogs/dixon/2008/06/17/linux-at-the-freescale-technology-forum/#comment-20</link>
		<dc:creator>Brad Dixon</dc:creator>
		<pubDate>Fri, 20 Jun 2008 19:31:38 +0000</pubDate>
		<guid>http://mvista.com/blogs/dixon/2008/06/17/linux-at-the-freescale-technology-forum/#comment-20</guid>
		<description>Here's a video of the air hockey robot: http://www.youtube.com/watch?v=oNEjtVUxyX4</description>
		<content:encoded><![CDATA[<p>Here&#8217;s a video of the air hockey robot: <a href="http://www.youtube.com/watch?v=oNEjtVUxyX4" rel="nofollow">http://www.youtube.com/watch?v=oNEjtVUxyX4</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Linux at the Freescale Technology Forum by Troy Kitch</title>
		<link>http://mvista.com/blogs/dixon/2008/06/17/linux-at-the-freescale-technology-forum/#comment-19</link>
		<dc:creator>Troy Kitch</dc:creator>
		<pubDate>Wed, 18 Jun 2008 20:23:45 +0000</pubDate>
		<guid>http://mvista.com/blogs/dixon/2008/06/17/linux-at-the-freescale-technology-forum/#comment-19</guid>
		<description>I have to say I did beat the robotic arm, once. Pure luck. I was going for the shoot-fast-with-a-bounce-off-the-side approach...and was informed by the gentleman at the booth that there is something to winning, and that wasn't it. So, I assume it's a multiple rebound approach...you know, confuse the arm. Something worked...and I scored!</description>
		<content:encoded><![CDATA[<p>I have to say I did beat the robotic arm, once. Pure luck. I was going for the shoot-fast-with-a-bounce-off-the-side approach&#8230;and was informed by the gentleman at the booth that there is something to winning, and that wasn&#8217;t it. So, I assume it&#8217;s a multiple rebound approach&#8230;you know, confuse the arm. Something worked&#8230;and I scored!</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Linux at the Freescale Technology Forum by Mohan</title>
		<link>http://mvista.com/blogs/dixon/2008/06/17/linux-at-the-freescale-technology-forum/#comment-18</link>
		<dc:creator>Mohan</dc:creator>
		<pubDate>Wed, 18 Jun 2008 14:31:00 +0000</pubDate>
		<guid>http://mvista.com/blogs/dixon/2008/06/17/linux-at-the-freescale-technology-forum/#comment-18</guid>
		<description>Hi,

I am actually the technical lead who designed the air hockey demo.  Thanks for mentioning
our demo on your site!  Your analysis of the system is fair and accurate - it is fast and generally
good, but not unbeatable.  However, since you have seen it we have made a few simple
algorithm improvements that make it play even better.  I also wanted to mention that this
demo was put together by 3 engineers on the rapid time-scale of 2 months.

We were really happy to win "best in show" award at FTF 2008, out of over 700 demos/kiosks.

I invite anyone reading this blog to learn more about our capabilities at Nuvation.  We are an
electronics design services company that works with other companies to develop their products.
We've got experts in board design, firmware, FPGA, signal processing, motor control, algorithm
design, and many other core areas of electrical engineering and comp science.

And if you have interest in a fun Air hockey robot for your home or business, let us know that as well - we can help you out. :)

Regards
Mohan Gurunathan
Principal HW Engineer
Nuvation Research Company
San Jose, CA
415-713-4081
mohan.gurunathan@nuvation.com</description>
		<content:encoded><![CDATA[<p>Hi,</p>
<p>I am actually the technical lead who designed the air hockey demo.  Thanks for mentioning<br />
our demo on your site!  Your analysis of the system is fair and accurate - it is fast and generally<br />
good, but not unbeatable.  However, since you have seen it we have made a few simple<br />
algorithm improvements that make it play even better.  I also wanted to mention that this<br />
demo was put together by 3 engineers on the rapid time-scale of 2 months.</p>
<p>We were really happy to win &#8220;best in show&#8221; award at FTF 2008, out of over 700 demos/kiosks.</p>
<p>I invite anyone reading this blog to learn more about our capabilities at Nuvation.  We are an<br />
electronics design services company that works with other companies to develop their products.<br />
We&#8217;ve got experts in board design, firmware, FPGA, signal processing, motor control, algorithm<br />
design, and many other core areas of electrical engineering and comp science.</p>
<p>And if you have interest in a fun Air hockey robot for your home or business, let us know that as well - we can help you out. <img src='http://mvista.com/blogs/dixon/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Regards<br />
Mohan Gurunathan<br />
Principal HW Engineer<br />
Nuvation Research Company<br />
San Jose, CA<br />
415-713-4081<br />
<a href="mailto:mohan.gurunathan@nuvation.com">mohan.gurunathan@nuvation.com</a></p>
]]></content:encoded>
	</item>
</channel>
</rss>
