<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	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/"
		>
<channel>
	<title>Comments on: Parallel Programming is Not Needed? I don&#8217;t quite agree&#8230;</title>
	<atom:link href="http://jakob.engbloms.se/archives/253/feed" rel="self" type="application/rss+xml" />
	<link>http://jakob.engbloms.se/archives/253?&#038;owa_medium=feed&#038;owa_sid=</link>
	<description>Computer Technology: Simulation, Virtualization, Virtual Platforms, Embedded, Multicore and Multiprocessing (by Jakob Engblom)</description>
	<lastBuildDate>Thu, 12 Jan 2012 21:54:16 -0800</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
	<item>
		<title>By: Jakob</title>
		<link>http://jakob.engbloms.se/archives/253/comment-page-1#comment-1738</link>
		<dc:creator>Jakob</dc:creator>
		<pubDate>Sun, 07 Sep 2008 08:59:19 +0000</pubDate>
		<guid isPermaLink="false">http://jakob.engbloms.se/?p=253#comment-1738</guid>
		<description>Thanks for the comment!  I do think that a key to parallel programming is to make it be expressed as something sequential, OR as a very separate parallel things.  What is hard, I think, is when several parallel things interact deeply and often.  

About the communications processor idea: I beg to differ... Programmers should not have to think about how data is actually transported, but rather deal with something a bit more abstract -- message-passing is good in that respect, since it makes communication explicit but still abstract from the machine.  

Shared-memory is the fundamental mistake in parallel programming, as that is what makes things hard.</description>
		<content:encoded><![CDATA[<p>Thanks for the comment!  I do think that a key to parallel programming is to make it be expressed as something sequential, OR as a very separate parallel things.  What is hard, I think, is when several parallel things interact deeply and often.  </p>
<p>About the communications processor idea: I beg to differ&#8230; Programmers should not have to think about how data is actually transported, but rather deal with something a bit more abstract &#8212; message-passing is good in that respect, since it makes communication explicit but still abstract from the machine.  </p>
<p>Shared-memory is the fundamental mistake in parallel programming, as that is what makes things hard.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Nils</title>
		<link>http://jakob.engbloms.se/archives/253/comment-page-1#comment-1737</link>
		<dc:creator>Nils</dc:creator>
		<pubDate>Sat, 06 Sep 2008 15:42:45 +0000</pubDate>
		<guid isPermaLink="false">http://jakob.engbloms.se/?p=253#comment-1737</guid>
		<description>I read somewhere where someone said that parallel programming is hard since people&#039;s brains are wired sequentially. We have the potential to multi-task between thoughts, but can only focus on one thought at a time.

I think it&#039;s an education issue. We are simply not used to programming parallel programs, just as we weren&#039;t used to programming at all when computers were new a couple of decades ago. Now that many computers are parallel and people start actually writing parallel software in practice, we will get the hang of it eventually.

One thing that should help is to create new abstractions that looks sequential while at a lower level actually does work in parallel, such as multiplying matrices or something like that. However, I think parallel programming-thinking will be a very useful skill no matter which abstraction level you work on.

Another thing that seems to be a hassle today is patterns for communication. Having a &quot;communications processor&quot; that can access the same memory as the &quot;main processor&quot; (essentially those two share memory) would help to make a fully distributed model (that only has message passing) look more like a shared memory model.

Obviously this is just reiterating stuff that people already know; I&#039;m just saying that I think it&#039;ll get there, through various technological improvements and more experience, just give it some time.</description>
		<content:encoded><![CDATA[<p>I read somewhere where someone said that parallel programming is hard since people&#8217;s brains are wired sequentially. We have the potential to multi-task between thoughts, but can only focus on one thought at a time.</p>
<p>I think it&#8217;s an education issue. We are simply not used to programming parallel programs, just as we weren&#8217;t used to programming at all when computers were new a couple of decades ago. Now that many computers are parallel and people start actually writing parallel software in practice, we will get the hang of it eventually.</p>
<p>One thing that should help is to create new abstractions that looks sequential while at a lower level actually does work in parallel, such as multiplying matrices or something like that. However, I think parallel programming-thinking will be a very useful skill no matter which abstraction level you work on.</p>
<p>Another thing that seems to be a hassle today is patterns for communication. Having a &#8220;communications processor&#8221; that can access the same memory as the &#8220;main processor&#8221; (essentially those two share memory) would help to make a fully distributed model (that only has message passing) look more like a shared memory model.</p>
<p>Obviously this is just reiterating stuff that people already know; I&#8217;m just saying that I think it&#8217;ll get there, through various technological improvements and more experience, just give it some time.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jakob</title>
		<link>http://jakob.engbloms.se/archives/253/comment-page-1#comment-1732</link>
		<dc:creator>Jakob</dc:creator>
		<pubDate>Tue, 02 Sep 2008 12:47:12 +0000</pubDate>
		<guid isPermaLink="false">http://jakob.engbloms.se/?p=253#comment-1732</guid>
		<description>Thanks! However, he still seems to be thinking about latency and in the desktop domain... and latency is a strange creature here: in my world, you usually increase throughput at the cost of increased latencies when going parallel from a serial implementation.  Due to the machines involved becoming a little slower.</description>
		<content:encoded><![CDATA[<p>Thanks! However, he still seems to be thinking about latency and in the desktop domain&#8230; and latency is a strange creature here: in my world, you usually increase throughput at the cost of increased latencies when going parallel from a serial implementation.  Due to the machines involved becoming a little slower.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Suren</title>
		<link>http://jakob.engbloms.se/archives/253/comment-page-1#comment-1731</link>
		<dc:creator>Suren</dc:creator>
		<pubDate>Tue, 02 Sep 2008 11:36:52 +0000</pubDate>
		<guid isPermaLink="false">http://jakob.engbloms.se/?p=253#comment-1731</guid>
		<description>In the next post, the author of &quot;Too Many Cores, not Enough Brains&quot; admits to that &quot;Parallelism Matters (http://alarmingdevelopment.org/?p=136).</description>
		<content:encoded><![CDATA[<p>In the next post, the author of &#8220;Too Many Cores, not Enough Brains&#8221; admits to that &#8220;Parallelism Matters (<a href="http://alarmingdevelopment.org/?p=136" rel="nofollow">http://alarmingdevelopment.org/?p=136</a>).</p>
]]></content:encoded>
	</item>
</channel>
</rss>

