Join GitHub today
GitHub is home to over 20 million developers working together to host and review code, manage projects, and build software together.
Speed and functionality improvements for 'hbond' command #485
Conversation
drroe
added some commits
Apr 11, 2017
drroe
added bug enhancement
labels
Apr 18, 2017
drroe
self-assigned this
Apr 18, 2017
|
Travis seems slow today... |
|
@drroe: Because of this: https://travis-ci.org/Amber-MD/ambertools-ci May be I will change to every 6 hours. |
|
Done. only run nightly build for now since we just release AT. |
drroe
merged commit d30e061
into Amber-MD:master
Apr 19, 2017
drroe
deleted the
drroe:hbond_improve_speed branch
Apr 19, 2017
|
Cool, thanks for the info Hai. Everything is passed now so no worries. |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
drroe commentedApr 18, 2017
This PR improves the single-threaded speed of
hbond(particularly for solute-solvent hydrogen bonds), adds OpenMP support, fixes some minor bugs, and introduces several new options. This largely (maybe even completely) addresses #392.The solute-solute hydrogen bond calculation speed has been improved by ~1.3x, and the solute-solvent calculation speed improved by > 3x. The single-threaded speed enhancement comes largely from refactoring the donor/acceptor loops. Previously there were a lot of duplicated distance calculations, particularly when it came to solute-solvent hydrogen bonds. Hints are now properly used in all maps which improves the find/insertion speed. OpenMP allows for even further speedup (have gotten 7.3x for 4 threads in a real-world test).
Solute-solvent bridges within the same molecule are now properly ignored when
nointramolis specified. Bridging interactions can now be tracked by solute atom, which allows better resolution when determining solute-solvent bridges; this is activated by the newbridgebyatomkeyword (a test has been added for this). The sorting of bridges has also been made more stable. The code has been re-written to make it easy to add bridge time series data in the future.Results will now be consistent for solute-solute hydrogen bonds in parallel (MPI and OpenMP) due to the more robust way solute-solute indices are calculated (no longer dependent on loop order). Also,
uuseriesanduvseriesshould now work properly in parallel. More detailed timing info can be turned on with the TIMER compiler define.This PR also introduces the
sortkeyword for writing data files; this will ensure that data sets are sorted before being written out which allows consistent results between parallel and non-parallel versions of the code.Version numbers have been incremented. We are now different from the official AT17 release.