<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On 22 February 2013 21:18, Sam Tobin-Hochstadt <span dir="ltr">&lt;<a href="mailto:samth@ccs.neu.edu" target="_blank">samth@ccs.neu.edu</a>&gt;</span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div>On Fri, Feb 22, 2013 at 4:51 AM, Haiwei Zhou &lt;<a href="mailto:highfly22@gmail.com" target="_blank">highfly22@gmail.com</a>&gt; wrote:<br>


&gt; Hi,<br>
&gt;<br>
&gt;   I wrote a simple script for fannkuch redux.<br>
&gt; <a href="https://github.com/highfly22/fannkuch-redux/blob/master/fannkuch-redux.rkt" target="_blank">https://github.com/highfly22/fannkuch-redux/blob/master/fannkuch-redux.rkt</a><br>
&gt;<br>
&gt;   The result of this script is about 10 minutes in my i7 machine, which is<br>
&gt; better than Python, lua and ruby. Is the result expected? Do I miss<br>
&gt; something?<br>
<br>
</div>That seems reasonable, and if you&#39;re getting the right answers, I<br>
wouldn&#39;t worry.<br>
<div><br>
&gt;   I have tried to use unsafe op. That may reduces about 30 seconds.<br>
<br>
</div>Which unsafe operations?  Vectors, fixnums, both?<br></blockquote><div>Only for vectors. This algorithm uses vector operations heavily. <br></div><blockquote class="gmail_quote" style="margin:0pt 0pt 0pt 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">


<div><br>
&gt;   The optimizer couch complains the missed inline on the most time spent<br>
&gt; functions - flip and flip-count. I tried to re-write the functions to<br>
&gt; macros. But it doesn&#39;t change anything.<br>
&gt;<br>
&gt;   I also tried to re-write in the typed/racket. It doesn&#39;t help either.<br>
<br>
</div>I&#39;d be interested in seeing the typed version -- maybe we can give it<br>
more restricted types that help the optimizer more.<br></blockquote><div> The typed version doesn&#39;t work well as I expected. I guess unsafe operations does the same thing.<br></div><blockquote class="gmail_quote" style="margin:0pt 0pt 0pt 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">


<div><br>
&gt;   Finally, I try to use future. There is not a blocking operation in the<br>
&gt; future-visualizer. But it&#39;s twice slow than normal version. Maybe task (each<br>
&gt; flip-count) is too trivial for this job.<br>
<br>
</div>I&#39;m sure that James would love to see the version with futures, but I<br>
find that futures work best if you don&#39;t create too many of them. How<br>
many times does `flip-count` get run?<br></blockquote><div>For n = 7, flip-count got run 5039 times (7! - 1). <br></div><blockquote class="gmail_quote" style="margin:0pt 0pt 0pt 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">

<span><font color="#888888">
Sam<br>
</font></span></blockquote></div><br></div></div>