「view this page in B3 βῆτα server」

Revisions №60582

branch: master 「№60582」
Commited by: Andrew Leaver-Fay
GitHub commit link: 「449d3383852c468b」
Difference from previous tested commit:  code diff
Commit date: 2019-01-11 15:00:05
linux.clang linux.gcc linux.srlz mac.clang
linux.PyRosetta.unit linux.gcc.python36.PyRosetta4.unit mac.PyRosetta.unit build.clean.debug cppcheck mysql postgres linux.zeromq.debug mpi mpi.serialization linux.icc.build.debug OpenCL build.header build.levels ninja graphics static linux.ui mac.ui build.xcode beautification serialization integration.mpi integration.release_debug integration performance profile release.source linux.clang.score linux.gcc.score mac.clang.score linux.scripts.pyrosetta scripts.rosetta.parse scripts.rosetta.validate scripts.rosetta.verify linux.clang.unit.release linux.gcc.unit.release

Merge aleaverfay/slim_lkball2 (PR #3729) @JackMaguire noticed that the per-residue memory use has increased substantially and tracked it down to the arrays used to store the water coordinates and water-derivative matrices in the Residue data cache for the LK_BallEnergy. Previously the coordinates were held in natoms x max_waters_per_atom x 3 arrays, and the derivative matrices in three natoms x max_waters_per_atom x 3 x 3 arrays. In the case of TRP, this was nearly 15KB per Residue. This memory allocation is 100% my fault from a few years back when trying to make LK_Ball faster, which it did, but not in the most space efficient format. The new code allocates the coordinates in nwaters_actual x 3 arrays, and the derivative matrices in nwaters_actual x 3 x 3 arrays and only when derivatives are actually being calculated. The memory use is now ~200 bytes per Residue in the context of the packer and ~2KB per Residue in the context of the minimizer. Integration tests are clean except for one cosmetic test change.

Vikram K. Mulligan 1 year
Note: this merge resulted in a release-mode unit test failure. [list]