D easily overlooked?

thinwybk via Digitalmars-d digitalmars-d at puremagic.com
Sun Sep 3 10:56:26 PDT 2017


On Saturday, 2 September 2017 at 17:00:46 UTC, Joakim wrote:
> On Saturday, 2 September 2017 at 15:41:54 UTC, Joakim wrote:
>> D:
>> https://bitbucket.org/qznc/d-shootout/raw/898f7f3b3c5d55680229113e973ef95ece6f711a/progs/nbody/nbody.d
>>
>> ldc 1.4 beta1, llvm 4.0.1
>>
>> ldc2 -O3 nbody.d
>>
>> The D version averages 2.5 seconds, the C++ version 6 seconds, 
>> which means D would likely still be at the top of that n-body 
>> ranking today.
>
> Sorry, I assumed the D version worked fine and didn't bother to 
> check the output, turns out it needs two foreach loops changed 
> in advance(dt).  Specifically, "Body i" should be changed to 
> "ref Body i" in both foreach statements, so the data is 
> actually updated. ;)
>
> After that change, the C++ version wins by a little, 6 seconds 
> vs. 6.5 seconds for the D translation.  I see that the C++ 
> version directly invokes SIMD intrinsics, so perhaps that's to 
> be expected.

What needs to be adjusted for optimization? If you let me know it 
I adjust it here 
https://github.com/fkromer/exploringBB/blob/nbody/chp05/performance/nbody.d and/or https://github.com/fkromer/exploringBB/blob/nbody/chp05/performance/build and/or https://github.com/fkromer/exploringBB/blob/nbody/chp05/performance/run#L25


More information about the Digitalmars-d mailing list