Re: [AMBER-Developers] Anyone use restricted pointers in C?

From: Ross Walker <rosscwalker.gmail.com>
Date: Tue, 30 Aug 2011 10:08:23 +0800

Note a good deal of the speed in serial in PMEMD comes from Bob's excellent table lookup and splining system for the direct space sum.

All the best
Ross



On Aug 30, 2011, at 9:05, Scott Brozell <sbrozell.rci.rutgers.edu> wrote:

> Hi,
>
> Unsurprising results regarding restrict.
> I'm relatively clueless about exactly what you are doing, but :)
> Isn't the likely difference due to the use of the memory hierarchy?
> Bob spent a lot of time on cache performance tuning.
> Even before pmemd, differences between charmm and sander
> had a lot to do with the different memory layouts (although
> sander was doing some more math which may have explained its
> slower performance on some hardware).
>
> An interesting experiment would be to profile, using the
> hardware counters, the two codes on the same machine with
> the same compiler family. This should in principle classify
> the source(s) of the performance differences. However, going
> from that to realized code improvement could be a long project.
>
> scott
>
> On Mon, Aug 29, 2011 at 04:21:47PM -0400, dcerutti.rci.rutgers.edu wrote:
>> Well, for the record, I have now tried numerous instances of restricted
>> pointers and the speedups have been positively zero. I did at least
>> identify a couple of places where the code was spending more time than I
>> thought, and I made a ~5% improvement to the performance, but it still
>> eludes me how the PMEMD Fortran code can be so much faster than my C
>> implementation if the often-discussed pointer restriction problem doesn't
>> account for any significant difference. I will be removing all pointer
>> restrictions; the risk is too great for a statistically insignificant
>> benefit.
>>
>> Dave
>>
>>> Thanks to all who have replied; I did not take the emacs editor to be
>>> authoritative, just an indicator that I was not the only one who thought
>>> that restrict was the correct reserved keyword. Apparently, __restrict__
>>> works on both gcc and icc. I will be sparing in my use of this
>>> construction, but am attempting to improve the direct space inner loop to
>>> make use of it.
>
> _______________________________________________
> AMBER-Developers mailing list
> AMBER-Developers.ambermd.org
> http://lists.ambermd.org/mailman/listinfo/amber-developers

_______________________________________________
AMBER-Developers mailing list
AMBER-Developers.ambermd.org
http://lists.ambermd.org/mailman/listinfo/amber-developers
Received on Mon Aug 29 2011 - 19:30:03 PDT
Custom Search