For highly connected topologies, the SireIO::amber parser is very slow to load
input.
The attached input top/crd provides a good example. Loading the system takes
over 30 min with my build.
I have traced the issue to the subroutine setNonBondedPairs in amber.cpp. There
are some minor optimisations that are possible there to minimise memory lookups
and object construction, but the major bottleneck is the cost to update the
CLJNBPairs object nbpairs that store scaling factors for intra-non bonded
interactions.
nbpairs.set( atom0.cgAtomIdx(), atom1.cgAtomIdx(),
CLJScaleFactor(cscl, ljscl) );
nbpairs.set( atom1.cgAtomIdx(), atom0.cgAtomIdx(),
CLJScaleFactor(cscl, ljscl) );
* Is the behavior reproducible?
* Is there a simple code change that would reduce by >10 fold the time needed
to call nbpairs.set() ?
Original issue reported on code.google.com by julienm...@googlemail.com on 26 Jul 2013 at 12:14
Original issue reported on code.google.com by
julienm...@googlemail.com
on 26 Jul 2013 at 12:14Attachments: