Perhaps we should first profile the codes, and see which part constitutes the bottleneck?
Dahua On Tuesday, June 17, 2014 5:23:24 PM UTC-5, Alireza Nejati wrote: > > > But for fastest transcendental function performance, I assume that one > must use the micro-coded versions built into the processor's FPU--Is that > what the fast libm implementations do? > > Not at all. Libm's version of log() is about twice as fast as the CPU's > own log function, at least on a modern x86_64 processor (really fast log > implementations use optimized look-up tables). I had a look at your code > and it seems that the 'consumption' variable is always in the very narrow > range of 0.44950 to 0.56872. If you plot the log function in this tiny > range, it is very flat and linear. I think that if you simply replaced it > with a 2- or 4-part piecewise approximation, you could get significant > speedup across the board, in julia, c++, and others, with only a very small > approximation error. > > On Tuesday, June 17, 2014 3:52:07 AM UTC+12, Florian Oswald wrote: >> >> Dear all, >> >> I thought you might find this paper interesting: >> http://economics.sas.upenn.edu/~jesusfv/comparison_languages.pdf >> >> It takes a standard model from macro economics and computes it's solution >> with an identical algorithm in several languages. Julia is roughly 2.6 >> times slower than the best C++ executable. I was bit puzzled by the result, >> since in the benchmarks on http://julialang.org/, the slowest test is >> 1.66 times C. I realize that those benchmarks can't cover all possible >> situations. That said, I couldn't really find anything unusual in the Julia >> code, did some profiling and removed type inference, but still that's as >> fast as I got it. That's not to say that I'm disappointed, I still think >> this is great. Did I miss something obvious here or is there something >> specific to this algorithm? >> >> The codes are on github at >> >> https://github.com/jesusfv/Comparison-Programming-Languages-Economics >> >> >>