<div dir="ltr">On Thu, Jun 27, 2013 at 3:26 AM, Richard A. O'Keefe <span dir="ltr"><<a href="mailto:ok@cs.otago.ac.nz" target="_blank">ok@cs.otago.ac.nz</a>></span> wrote:<br><div class="gmail_extra"><div class="gmail_quote">
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="im"><br></div>Except for commands typed at the shell, Erlang is compiled, not interpreted.<br>
And there is a native code generator; c(File, [native]) does the trick if<br>
native code generation was enabled at build time.<br>
And the native code generator exploits -spec declarations (and some type<br>
inference) to avoid boxing floats some of the time.<br>
<br></blockquote><div><br></div><div>It is bytecode interpreted to be precise. It is faster than blind AST-interpretation, but it is not really what I would call compiled in the sense of compiled-to-native-code. The native code generator can help for certain types of programs, but it does not yield enough speedup to make it interesting in my opinion.</div>
<div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
So Erlang might well make good sense as a language for prototyping an<br>
application, even a floating-point one, to the point where you can do<br>
some benchmarking and find out where the time is really going.<br></blockquote><div><br></div><div>For prototyping, Erlang is definitely an excellent vehicle. Haskell could be even better in this situation though. </div>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div class="im"><br>
</div>My experience has been that Fortran is *still* the King if you want<br>
serious floating-point performance, and modern Fortran is a serious<br>
modular programming language. GNU Fortran has _nearly_ caught up<br>
with the 2003 standard, which saw some serious additions to the language.<br>
Coarrays are part of the 2008 standard, and gfortran support for them is<br>
still incomplete, which is a pity, because they look extremely useful<br>
for this kind of problem. I haven't personally used the Intel Fortran<br>
compiler, but I've used the Intel C compiler, and Intel's Parallel<br>
Studio _looks_ impressive. I see the HPCWales systems have the Intel<br>
compilers...<br>
<br></blockquote><div><br></div><div>Good point about Fortran.</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
What's often an issue in floating-point calculations is algorithm design,<br>
and good facilities for managing abstractions may be more important than<br>
raw floating-point speed. Haskell is pretty good here, and there are<br>
some interesting libraries, like the beginnings of support for Geometric<br>
Algebra. There's certainly an HMM library (version 0.04, so be warned).<br>
<div class="im"><a href="http://erlang.org/mailman/listinfo/erlang-questions" target="_blank">http://erlang.org/mailman/listinfo/erlang-questions</a></div></blockquote><div> </div></div><br></div></div>