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

Revisions №14019

branch: commits 「№14019」
Commited by: Vikram K. Mulligan
GitHub Pull Request link: 「№4089」
Merge: 「144630bd1」「bb79cec5d」  code diff
Scheduled at: 2019-10-24 22:23:17.764033
linux.clang linux.gcc linux.srlz mac.clang
PyRosetta4.notebook linux.clang.cxx11thread.serialization.python37.PyRosetta4.unit linux.gcc.python36.PyRosetta4.unit mac.PyRosetta.unit build.clean.debug cppcheck 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 linux.ui mac.ui build.xcode beautification code_quality.clang_analysis serialization integration.mpi integration.release_debug integration.tensorflow integration.thread 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 util.apps

Pull Request №4089 master←vmullig/multithreaded_packer_setup2 Merge: 144630bd1ecd26808a9f070798c067f4196109ab←bb79cec5d1237730eb3c3c3313214ab23b94a1dd Multi-thread packer setup using the RosettaThreadManager work vector interface ---------------- Merge commit message: Merge pull request #4310 from RosettaCommons/vmullig/vmullig/multithreaded_packer_setup3 Address Andrew and Jack's current concerns about the multi-threaded interaction graph precomputation. I was a bit conservative in the way I did this initially, and I ensured that the interaction graph was calculated exactly as before in both the single-threaded Rosetta build and in the case of a user of the multi-threaded build requesting only one thread. This creates issues for testing, and can result in code drift. Andrew and Jack had suggested that I use the work vector approach in either case, sending the work vector to threads in the multi-threaded case and handling the work in the vector with a for loop in the single-threaded case (both carried out with the `RosettaThreadManager`). This greatly simplifies the code, reduces the number of `#ifdefs`, and ensures that tests on one build are more valid for other builds. I'm also fixing an issue in this branch with the SymmetricRotamerSets object, which, when it constructs its work vector, creates copies of the RotamerSet that persist until the work is done. This is memory-wasteful. It's better to have each copy created inside one of the tasks in the work vector, and destroyed once it's used. Note that this is a pull request from `vmullig/multithreaded_packer_setup3` to `vmullig/multithreaded_packer_setup2`, not into `master`. @aleaverfay @JackMaguire Note to self: - [x] When I resolve the rotamer set copy issue, I'll be able to make `SymmetricRotamerSets::append_two_body_energy_computations_to_work_vector()` and `RotamerSets::append_two_body_energy_computations_to_work_vector()` `const` functions. TODO: - [x] Fix bug in on-the-fly IG computation. - [x] Fix the O(N_node^2) loop that Jack caught. Write an O(N_edge) function that iterates over the edges, and call that. - [x] That raw pointer is bugging me. Let's see if we can't switch the function call to a call to a static function. - [x] Fix crash bug in unit tests. - Ugh. There are two ways that I can do this. One's a hack that preserves the use of `delete this` in edge deletion. The other is safer but more work, which is to eliminate `delete this` in favour of a function that marks edges for subsequent deletion by the parent graph. - OK, I did this the right way. **This changes a lot of code**, but it eliminates the use of `delete this` everywhere in our codebase, except in pilot apps. - [x] The `ApproximateBuriedUnsatPenalty` is not threadsafe. For now, I'm just going to ensure that it can't be run on multiple threads, since it looks to be a fair bit of refactoring to correct this. - [x] I need to figure out why ddG is having trouble with threads. - [x] Add `-multithreading:total_threads 1` to `simple_cycpep_predict` sci test (for now). - [x] Add a few intentional instances of pass-by-copy (of `std::pairs` of ints or pointers, which should be cheap enough to copy) to the exceptions for `cppcheck`. These cannot and must not be passed by reference. This pull request must be merged before #4089.

Test: mac.clang.python27.build.xcode

 View log


 View log in dialog  View log in log in separate window
Test: linux.clang.integration.release_debug_no_symbols

Failed sub-tests (click for more details):
ConsensusLoopDesign add_helix_sequence_constraints add_helix_sequence_constraints_advanced_setup antibody_H3 assemble_domains_jd2 beta_strand_homodimer buried_unsat_voids_hbnet_design buried_unsat_voids_hbnet_design_symm central_class_modification cycpep_design_pipeline d_workflow ddG_of_mutation ddG_scan design_glycans design_w_custom_palette-CAAs design_w_custom_palette-NCAAs design_w_custom_palette-RNA doug_dock_design_min_mod2_cal_cal enzdes fiber_diffraction_fad fold_and_dock hbnet hbnet_asymm hbnet_energy hbnet_energy_rosettascripts_linear hbnet_energy_symm hbnet_use_input_rot helix_from_sequence hotspot_hashing hydrate hydrate_relax jd2test_mmCIFIO jd2test_mmCIFin_PDBout min_pack_min mirror_symm mp_find_interface mp_mutate_relax mp_range_relax multithreaded_fastdesign multithreaded_fixbb multithreaded_interaction_graph_accuracy multithreaded_interaction_graph_accuracy_symm multithreaded_packrotamersmover netcharge_design oligourea_design ppi_v3_suiteA range_relax_w_cst remodel_disulfides_rosettascripts remodel_helical_repeat rna_design sequence_recovery simple_cycpep_predict_design simple_cycpep_predict_square_pyramidal_metal simple_cycpep_predict_tetrahedral_metal_asp simple_cycpep_predict_trigonal_planar_metal simple_cycpep_predict_trigonal_pyramidal_metal splice_out_H1_H2_longer splice_out_H1_H2_same splice_out_H1_H2_shorter splice_out_L1_L2_longer splice_out_L1_L2_same splice_out_L1_L2_shorter stored_residue_subset swa_protein_prepack test1_benchmark threefold_symm_peptide_design voids_penalty_energy_design voids_penalty_energy_design_symmetry zinc_heterodimer
Test: linux.clang.performance

Failed sub-tests (click for more details):
Test: linux.clang.profile

Failed sub-tests (click for more details):