[gmx-developers] Small hack regarding dihedrals
hess at kth.se
Thu Sep 26 09:02:47 CEST 2013
But note that in 4.6 with SIMD (SSE/AVX) enablebd, dihedrals mostly
(when only forces, no energies are needed) get calculated by a special
SIMD dihedral function. You will need modifiy the conditional such that
the plain C function always gets called.
On 09/26/2013 08:04 AM, MURAT OZTURK wrote:
> Thank you very much. I need to build a toy system to test it, but
> sounds just about right. I might even hard-code the square of
> threshold to save another flop, following your philosophy. A flop is a
> flop :)
> Again, thank you.
> On Thu, Sep 26, 2013 at 12:10 AM, Bogdan Costescu <bcostescu at gmail.com
> <mailto:bcostescu at gmail.com>> wrote:
> On Wed, Sep 25, 2013 at 5:29 PM, MURAT OZTURK <murozturk at ku.edu.tr
> <mailto:murozturk at ku.edu.tr>> wrote:
> > Is it OK to intorduce the conditional into pdihs(), and bypass
> even calling
> > dopdihs() if r_kj ( as reported by calling dih_angle() ) is
> less then
> > threshold?
> Yes. It makes sense to abort calculating as soon as you have enough
> information to make the decision. You can place your test immediately
> after calling dih_angle(), as it gives you r_jk. The code could look
> like (based on your own proposal):
> /* outside of the loop */
> threshold2 = threshold * threshold;
> for (i = 0; (i < nbonds); )
> phi = dih_angle(...)
> midDist2 = iprod(r_jk, r_jk);
> if (midDist2 > threshold2)
> Please note the comparison done on the squares of distances instead of
> distances, saving some CPU cycles.
> Good luck!
> gmx-developers mailing list
> gmx-developers at gromacs.org <mailto:gmx-developers at gromacs.org>
> Please don't post (un)subscribe requests to the list. Use the
> www interface or send it to gmx-developers-request at gromacs.org
> <mailto:gmx-developers-request at gromacs.org>.
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the gromacs.org_gmx-developers