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

Revisions №61037

branch: master 「№61037」
Commited by: Vikram K. Mulligan
GitHub commit link: 「e1e61459e6ead5a4」 「№4355」
Difference from previous tested commit:  code diff
Commit date: 2019-11-12 18:13:52
linux.clang linux.gcc linux.srlz mac.clang
debug
release
unit
PyRosetta4.notebook gcc-9.gcc.python37.PyRosetta4.unit linux.clang.cxx11thread.serialization.python37.PyRosetta4.unit linux.gcc.python36.PyRosetta4.unit mac.PyRosetta.unit build.clean.debug cppcheck alpine.gcc.build.debug gcc-9.gcc.build.debug mysql postgres linux.clang.python36.build.debug linux.zeromq.debug mpi mpi.serialization linux.icc.build.debug OpenCL mac.clang.python36.build.debug build.header build.levels ninja graphics static mac.clang.static.build.release linux.ui mac.ui build.xcode beautification code_quality.clang_analysis code_quality.clang_tidy serialization integration.addsan integration.mpi integration.release_debug integration.tensorflow integration.thread integration.tutorials integration.ubsan integration maintenance.documentation performance profile linux.clang.python27.release.PyRosetta4.Debug linux.clang.python35.release.PyRosetta4.Debug linux.clang.python36.release.PyRosetta4.Debug linux.clang.python37.release.PyRosetta4.Debug mac.clang.python27.release.PyRosetta4.Debug mac.clang.python35.release.PyRosetta4.Debug linux.clang.python36.release.PyRosetta4.MinSizeRel linux.clang.python37.release.PyRosetta4.MinSizeRel ubuntu.clang.python27.release.PyRosetta4.MinSizeRel ubuntu.clang.python35.release.PyRosetta4.MinSizeRel ubuntu.clang.python36.release.PyRosetta4.MinSizeRel ubuntu.clang.python37.release.PyRosetta4.MinSizeRel linux.clang.python35.release.PyRosetta4.Release linux.clang.python36.release.PyRosetta4.Release mac.clang.python27.release.PyRosetta4.Release ubuntu.clang.python27.release.PyRosetta4.Release ubuntu.clang.python35.release.PyRosetta4.Release ubuntu.clang.python36.release.PyRosetta4.Release ubuntu.clang.python37.release.PyRosetta4.Release release.PyRosetta4.conda.Release release.source scientific.antibody_grafting.debug scientific.antibody_grafting scientific.cofactor_binding_sites.debug scientific.enzyme_design scientific.fast_relax.debug scientific.fast_relax_5iter.debug scientific.fast_relax_5iter scientific.fast_relax scientific.loop_modeling_ccd_12res scientific.mhc_epitope_energy.debug scientific.mp_domain_assembly scientific.mp_f19_ddG_of_mutation.debug scientific.mp_f19_ddG_of_mutation scientific.mp_f19_decoy_discrimination.debug scientific.mp_f19_sequence_recovery.debug scientific.mp_lipid_acc.debug scientific.mp_relax.debug scientific.mp_relax scientific.rna_denovo_favorites scientific.stepwise_rna_favorites.debug linux.clang.score linux.gcc.score mac.clang.score linux.scripts.pyrosetta scripts.rosetta.parse scripts.rosetta.validate scripts.rosetta.verify unit.addsan linux.clang.unit.release linux.gcc.unit.release unit.ubsan util.apps

Merge pull request #4355 from RosettaCommons/vmullig/simplify_threadmanager_api Reduce mutex contention a bit by reducing reliance on std::shared_ptr in RosettaThreadManager classes. I was being overcautious with my ownership model, and unnecessarily using vectors of owning pointers of functions. This results in unnecessary locking of mutexes internal to `std::shared_ptr`, which can slow things down. Worse, I was _copying_ the owning pointers around, which results in new locking every time the reference count is incremented or decremented. (Even in the single-threaded build, unnecessarily passing around smart pointers is likely slowing things down a bit, since reference counts have to be incremented and decremented.) The vector object owns its contents and controls their destruction, so a vector of objects controlled by owning pointers is really unnecessary. This pull request refactors a bit so that the `RosettaThreadManager` now accepts a vector of function objects instead of a vector of owning pointers to function objects. TODO: - [x] Also switch the RosettaThreadAssignmentInfo object to be a stack-allocated object passed by reference, rather than a heap-allocated object passed by owning pointer. - [x] Check profile tests. Is there a performance benefit with packing in the single-threaded builds? (See the core_pack_pdig_current_default_sfxn performance test, which did show a slight drop in single-threaded execution when we switched to building a work vector and evaluating it). --> No big change. Maybe a small improvement. - [x] Does this improve performance scaling for multi-threaded interaction graph calculation? --> Not really. - [x] Does this rescue the scoring performance in the single-threaded build in PR #4342? --> No. Note, though, that the only slowdowns are with very fast-to-compute terms (_e.g._ chainbreak) or with an empty scorefunction. If there's any work to be done at all, the slowdown is negligible. - [x] Does this improve performance scaling for multi-threaded scoring in PR #4342? --> Not really.

...
Test: gcc-9.gcc.python37.PyRosetta4.unit

 View log

Loading...

 View log in dialog  View log in log in separate window
Test: linux.clang.code_quality.clang_analysis

Failed sub-tests (click for more details):
src/protocols/tcr/template_util.cc
Test: ubuntu.clang.code_quality.clang_tidy

Failed sub-tests (click for more details):
src/protocols/tcr/template_util.cc
Test: ubuntu.gcc.integration.addsan

Failed sub-tests (click for more details):
swm_general_polymer_sampler
Test: ubuntu.gcc.integration.ubsan

Failed sub-tests (click for more details):
swm_general_polymer_sampler
Test: ubuntu.clang.python27.release.PyRosetta4.MinSizeRel

 View log

Loading...

 View log in dialog  View log in log in separate window
Test: ubuntu.clang.python35.release.PyRosetta4.MinSizeRel

 View log

Loading...

 View log in dialog  View log in log in separate window
Test: ubuntu.clang.python36.release.PyRosetta4.MinSizeRel

 View log

Loading...

 View log in dialog  View log in log in separate window
Test: ubuntu.clang.python37.release.PyRosetta4.MinSizeRel

 View log

Loading...

 View log in dialog  View log in log in separate window
Test: ubuntu.clang.python27.release.PyRosetta4.Release

 View log

Loading...

 View log in dialog  View log in log in separate window
Test: ubuntu.clang.python35.release.PyRosetta4.Release

 View log

Loading...

 View log in dialog  View log in log in separate window
Test: ubuntu.clang.python36.release.PyRosetta4.Release

 View log

Loading...

 View log in dialog  View log in log in separate window
Test: ubuntu.clang.python37.release.PyRosetta4.Release

 View log

Loading...

 View log in dialog  View log in log in separate window