<?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: Supero Followup</title>
	<atom:link href="http://enfranchisedmind.com/blog/2007/12/12/supero-followup/feed/" rel="self" type="application/rss+xml" />
	<link>http://enfranchisedmind.com/blog/2007/12/12/supero-followup/</link>
	<description>Robert Fischer and Brian Hurt on Punditry, Programming Languages, and Other Religious Issues</description>
	<pubDate>Sun, 12 Oct 2008 02:28:59 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6.1</generator>
		<item>
		<title>By: bhurt</title>
		<link>http://enfranchisedmind.com/blog/2007/12/12/supero-followup/#comment-32052</link>
		<dc:creator>bhurt</dc:creator>
		<pubDate>Thu, 13 Dec 2007 22:25:51 +0000</pubDate>
		<guid isPermaLink="false">http://enfranchisedmind.com/blog/2007/12/12/supero-followup/#comment-32052</guid>
		<description>An interesting set of slides on Proebstring's law and the future of optimization research &lt;a HREF="http://www.cs.umd.edu/class/spring2006/cmsc430/lec18.4p.pdf" rel="nofollow"&gt;is here&lt;/A&gt;.

His conclusion there is, I think, fundamentally pessimistic- basically that we've hit the point of diminishing returns (at least for popular languages like C++, Fortran, and Java), and that the future of compiler optimizations is going to focus on a small segment of special users- High Performance Computing- and leave everyone else out to dry.

Which is yet another interesting aspect of Supero- he's not focusing on "high dollar value" customers.  I mean, his basic benchmark is word count.  That's about as plebian as it gets.</description>
		<content:encoded><![CDATA[<p>An interesting set of slides on Proebstring&#8217;s law and the future of optimization research <a HREF="http://www.cs.umd.edu/class/spring2006/cmsc430/lec18.4p.pdf" rel="nofollow">is here</a>.</p>
<p>His conclusion there is, I think, fundamentally pessimistic- basically that we&#8217;ve hit the point of diminishing returns (at least for popular languages like C++, Fortran, and Java), and that the future of compiler optimizations is going to focus on a small segment of special users- High Performance Computing- and leave everyone else out to dry.</p>
<p>Which is yet another interesting aspect of Supero- he&#8217;s not focusing on &#8220;high dollar value&#8221; customers.  I mean, his basic benchmark is word count.  That&#8217;s about as plebian as it gets.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: bhurt</title>
		<link>http://enfranchisedmind.com/blog/2007/12/12/supero-followup/#comment-32051</link>
		<dc:creator>bhurt</dc:creator>
		<pubDate>Thu, 13 Dec 2007 22:18:44 +0000</pubDate>
		<guid isPermaLink="false">http://enfranchisedmind.com/blog/2007/12/12/supero-followup/#comment-32051</guid>
		<description>No.  Ocaml actually isn't that good at optimization.  I mean, it does the simple things- peephole optimization, inlining, a few others- and it has an excellent garbage collector (even for ML languages), and as a language it allows you to write non-stupid code.  But compare even to GCC 2.94, it's doesn't optimize that much (let alone comparing it to GCC 4).  Also, it helps that modern CPUs are surprisingly good at "optimizing" less than optimal code.

The dirty little secret of the "popular" languages are that optimization doesn't help you much.  Something I forgot to mention is Proebstring's Law: that increases in compiler optimization double program speed every 18 &lt;EM&gt;years&lt;/EM&gt;.  That's compared to the common misquoting of Moore's law that has CPU speed doubling every 18 &lt;EM&gt;months&lt;/EM&gt;.  

And I think Proebstring's law misrepresents the situation, to the benefit of making the optimization improvements look better that they really are.  The justification for Proebstring's law is that after 36 years of progress, programs are about 4x faster.  But the vast bulk of that improvement was the low hanging fruit- a small selection of "simple" optimizations- peephole optimizers, register allocation, strength reduction, inlining- gives an easy 2x speed improvement, and were well known 36 years ago (1971).  Which means over the last 36 years, compilers have only doubled the performance of programs- or about a 2% gain per year.

Parenthetically, this is why Ocaml can still be "speedy" and not have complicated, expensive optimizations- the complicated, expensive optimizations simply don't buy you that much.  It does the simple optimizations which net a lot of performance gain for (comparatively) little pain, but doesn't bother with the optimizations which are lots of pain for little gain.

Then wham- out of left field comes a grad student and an optimization speeding code up by 10% to &lt;EM&gt;three fold&lt;/EM&gt;.  That's like 5 years to 55 years worth of compiler optimization development at current rates, all at one shot.  And he's not done- there are probably (almost certainly) improvements to that to be made.</description>
		<content:encoded><![CDATA[<p>No.  Ocaml actually isn&#8217;t that good at optimization.  I mean, it does the simple things- peephole optimization, inlining, a few others- and it has an excellent garbage collector (even for ML languages), and as a language it allows you to write non-stupid code.  But compare even to GCC 2.94, it&#8217;s doesn&#8217;t optimize that much (let alone comparing it to GCC 4).  Also, it helps that modern CPUs are surprisingly good at &#8220;optimizing&#8221; less than optimal code.</p>
<p>The dirty little secret of the &#8220;popular&#8221; languages are that optimization doesn&#8217;t help you much.  Something I forgot to mention is Proebstring&#8217;s Law: that increases in compiler optimization double program speed every 18 <em>years</em>.  That&#8217;s compared to the common misquoting of Moore&#8217;s law that has CPU speed doubling every 18 <em>months</em>.  </p>
<p>And I think Proebstring&#8217;s law misrepresents the situation, to the benefit of making the optimization improvements look better that they really are.  The justification for Proebstring&#8217;s law is that after 36 years of progress, programs are about 4x faster.  But the vast bulk of that improvement was the low hanging fruit- a small selection of &#8220;simple&#8221; optimizations- peephole optimizers, register allocation, strength reduction, inlining- gives an easy 2x speed improvement, and were well known 36 years ago (1971).  Which means over the last 36 years, compilers have only doubled the performance of programs- or about a 2% gain per year.</p>
<p>Parenthetically, this is why Ocaml can still be &#8220;speedy&#8221; and not have complicated, expensive optimizations- the complicated, expensive optimizations simply don&#8217;t buy you that much.  It does the simple optimizations which net a lot of performance gain for (comparatively) little pain, but doesn&#8217;t bother with the optimizations which are lots of pain for little gain.</p>
<p>Then wham- out of left field comes a grad student and an optimization speeding code up by 10% to <em>three fold</em>.  That&#8217;s like 5 years to 55 years worth of compiler optimization development at current rates, all at one shot.  And he&#8217;s not done- there are probably (almost certainly) improvements to that to be made.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Robert Fischer</title>
		<link>http://enfranchisedmind.com/blog/2007/12/12/supero-followup/#comment-32023</link>
		<dc:creator>Robert Fischer</dc:creator>
		<pubDate>Wed, 12 Dec 2007 23:09:38 +0000</pubDate>
		<guid isPermaLink="false">http://enfranchisedmind.com/blog/2007/12/12/supero-followup/#comment-32023</guid>
		<description>Your mark-up is broke.

This is pretty cool that it's being applied so widely, but I kinda expected this out of functional languages.  So much is known at compile-time that I'd expect huge gains -- in fact, I guess I was implicitly thinking that this was happening in OCaml, which is part of the reason it's so speedy.</description>
		<content:encoded><![CDATA[<p>Your mark-up is broke.</p>
<p>This is pretty cool that it&#8217;s being applied so widely, but I kinda expected this out of functional languages.  So much is known at compile-time that I&#8217;d expect huge gains &#8212; in fact, I guess I was implicitly thinking that this was happening in OCaml, which is part of the reason it&#8217;s so speedy.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
