<?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"
	>
<channel>
	<title>Comments on: More reasons why OpenMP is the way to go for parallel programming</title>
	<atom:link href="http://www.thinkingparallel.com/2006/08/15/more-reasons-why-openmp-is-the-way-to-go-for-parallel-programming/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.thinkingparallel.com/2006/08/15/more-reasons-why-openmp-is-the-way-to-go-for-parallel-programming/</link>
	<description>A Blog on Parallel Programming and Concurrency by Michael Suess</description>
	<pubDate>Wed, 09 Jul 2008 02:28:24 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.5</generator>
		<item>
		<title>By: Jakob Engblom</title>
		<link>http://www.thinkingparallel.com/2006/08/15/more-reasons-why-openmp-is-the-way-to-go-for-parallel-programming/#comment-33551</link>
		<dc:creator>Jakob Engblom</dc:creator>
		<pubDate>Wed, 28 Nov 2007 07:11:28 +0000</pubDate>
		<guid isPermaLink="false">http://www.thinkingparallel.com/2006/08/15/more-reasons-why-openmp-is-the-way-to-go-for-parallel-programming/#comment-33551</guid>
		<description>I just started reading about OpenMP in a recent Intel book on parallel programming (for Intel hyperthreaded and multicore machines), and was kind of shocked to realize that the compiler doesn't check for data dependences and data that is shared between threads that could pose a race condition problem.  To me, this sounds like "automatic" is a bit too strongly worded; as a programmer, you still have some seriously hard thinking to do before your serial loop actually parallelizes in the right way. 

In principle, the compiler should be able to detect dangerous conditions, it has been done in Fortran for a long time. And warn when it cannot understand things (with some pointers and structs you can throw off any C compiler's understanding of your code). There are systems that do this better than OpenMP, like SieveC from CodePlay (helped by somewhat modified C semantics, of course). 

The Intel book is actually not too shabby if you can live with lots of (TM) notices and a very clear slant towards Intel HW and its Windows/Linux software ecosystem. It gives an overview of a range of programming systems (Windows API, .Net, pthreads, OpenMP). see http://www.intel.com/intelpress/sum_mcp.htm</description>
		<content:encoded><![CDATA[<p>I just started reading about OpenMP in a recent Intel book on parallel programming (for Intel hyperthreaded and multicore machines), and was kind of shocked to realize that the compiler doesn&#8217;t check for data dependences and data that is shared between threads that could pose a race condition problem.  To me, this sounds like &#8220;automatic&#8221; is a bit too strongly worded; as a programmer, you still have some seriously hard thinking to do before your serial loop actually parallelizes in the right way. </p>
<p>In principle, the compiler should be able to detect dangerous conditions, it has been done in Fortran for a long time. And warn when it cannot understand things (with some pointers and structs you can throw off any C compiler&#8217;s understanding of your code). There are systems that do this better than OpenMP, like SieveC from CodePlay (helped by somewhat modified C semantics, of course). </p>
<p>The Intel book is actually not too shabby if you can live with lots of (TM) notices and a very clear slant towards Intel HW and its Windows/Linux software ecosystem. It gives an overview of a range of programming systems (Windows API, .Net, pthreads, OpenMP). see <a href="http://www.intel.com/intelpress/sum_mcp.htm" rel="nofollow">http://www.intel.com/intelpress/sum_mcp.htm</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Michael Suess</title>
		<link>http://www.thinkingparallel.com/2006/08/15/more-reasons-why-openmp-is-the-way-to-go-for-parallel-programming/#comment-14</link>
		<dc:creator>Michael Suess</dc:creator>
		<pubDate>Fri, 18 Aug 2006 15:52:46 +0000</pubDate>
		<guid isPermaLink="false">http://www.thinkingparallel.com/2006/08/15/more-reasons-why-openmp-is-the-way-to-go-for-parallel-programming/#comment-14</guid>
		<description>Parallel aspect oriented programming, thats an interesting idea for sure. The problem I see with it is that parallelisation is usually more than an "aspect" and therefore the aspect-oriented approach may not be "fine-grained" enough to cover it. But since my knowledge of aspect-oriented programming is more than half a year old by now, maybe that problem is solved already...</description>
		<content:encoded><![CDATA[<p>Parallel aspect oriented programming, thats an interesting idea for sure. The problem I see with it is that parallelisation is usually more than an &#8220;aspect&#8221; and therefore the aspect-oriented approach may not be &#8220;fine-grained&#8221; enough to cover it. But since my knowledge of aspect-oriented programming is more than half a year old by now, maybe that problem is solved already&#8230;</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Christopher C. Aycock</title>
		<link>http://www.thinkingparallel.com/2006/08/15/more-reasons-why-openmp-is-the-way-to-go-for-parallel-programming/#comment-13</link>
		<dc:creator>Christopher C. Aycock</dc:creator>
		<pubDate>Wed, 16 Aug 2006 15:42:04 +0000</pubDate>
		<guid isPermaLink="false">http://www.thinkingparallel.com/2006/08/15/more-reasons-why-openmp-is-the-way-to-go-for-parallel-programming/#comment-13</guid>
		<description>As you point out, the best features of OpenMP are that it's (1) mature, and (2) builds on existing sequential C code.

I'd be interested to see a programming construct based on the aspect-oriented paradigm, though I have yet to find one. That is, instead of including compiler directives in the original code, the programmer can simply include details about parallelization in an external file.

The other item I'm interested in is better parallelization of math-specific languages like MATLAB or Mathematica. It seems that the industry is definitely moving in this direction with Star-P, as well as packages from both MathWorks and Wolfram.</description>
		<content:encoded><![CDATA[<p>As you point out, the best features of OpenMP are that it&#8217;s (1) mature, and (2) builds on existing sequential C code.</p>
<p>I&#8217;d be interested to see a programming construct based on the aspect-oriented paradigm, though I have yet to find one. That is, instead of including compiler directives in the original code, the programmer can simply include details about parallelization in an external file.</p>
<p>The other item I&#8217;m interested in is better parallelization of math-specific languages like MATLAB or Mathematica. It seems that the industry is definitely moving in this direction with Star-P, as well as packages from both MathWorks and Wolfram.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
