On 05/03/2018 7:01 PM, J-S Caux wrote:
On Monday, 5 March 2018 at 05:40:09 UTC, rikki cattermole wrote:
On 05/03/2018 6:35 PM, J-S Caux wrote:
I'm considering shifting a large existing C++ codebase into D (it's a scientific code making much use of functions like atan, log etc).

I've compared the raw speed of atan between C++ (Apple LLVM version 7.3.0 (clang-703.0.29)) and D (dmd v2.079.0, also ldc2 1.7.0) by doing long loops of such functions.

I can't get the D to run faster than about half the speed of C++.

Are there benchmarks for such scientific functions published somewhere

Gonna need to disassemble and compare them.

atan should work out to only be a few instructions (inline assembly) from what I've looked at in the source.

Also you should post the code you used for each.

So the codes are trivial, simply some check of raw speed:

   double x = 0.0;
  for (int a = 0; a < 1000000000; ++a) x += atan(1.0/(1.0 + sqrt(1.0 + a)));

for C++ and

   double x = 0.0;
  for (int a = 0; a < 1_000_000_000; ++a) x += atan(1.0/(1.0 + sqrt(1.0 + a)));

for D. C++ exec takes 40 seconds, D exec takes 68 seconds.

Yes, but that doesn't show me how you benchmarked.

Reply via email to