google-code-export / sire

Automatically exported from code.google.com/p/sire
1 stars 0 forks source link

Very slow loading of amber topology file #11

Open GoogleCodeExporter opened 9 years ago

GoogleCodeExporter commented 9 years ago
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

Attachments: