Merge pull request #4484 from RosettaCommons/benchmark
updating Benchmark release scripts, adding file locking so multiple releases could be done in parallel by multiple back-ends
notify author
notify list [rosetta-logs@googlegroups.com]
Merge pull request #4476 from RosettaCommons/roccomoretti/fix_cppcheck_test
Attempt to fix the cppcheck test.
We're having issues with cryptic errors in the cppcheck test.
Part of that is that the cppcheck test script has the wrong option for grep in parsing out error lines, and part of it is that cppcheck updates (1.90 in particular) changed the behavior of cppcheck. Fix that and update the "known issues" list accordingly.
notify author
notify list [rosetta-logs@googlegroups.com]
Merge pull request #4477 from RosettaCommons/smlewis/sci_tests_minor_updates
Minor language changes and typographical error fixes for scientific tests. Includes commits from Brahm so that they make it to master.
notify author
notify list [rosetta-logs@googlegroups.com]
Merge pull request #4480 from CyrusBiotechnology/smlewis/GreenPacker_tests
GreenPacker and GreedyOptMutationMover have ultrabasic unit tests to check that they don't segfault.
notify author
notify list [rosetta-logs@googlegroups.com]
Merge pull request #4464 from CyrusBiotechnology/smlewis/mangle_job_id_with_HOSTNAME
This adds an option (`HOSTNAME_in_jobname`) to mangle JD2 job names with $HOSTNAME.
In a context where job distribution is not being done inside Rosetta, but instead being done externally, you will run into the case where the low job numbers (like 0001) recur. Instead of managing job completion by moving them around, we can make them unique by mangling them on the host on which they occur. In containerized systems $HOSTNAME is usually set; in kubernetes specifically it includes a hash unique to the problem.
The option does nothing if $HOSTNAME is not set.
notify author
notify list [rosetta-logs@googlegroups.com]
Merge pull request #4436 from RosettaCommons/JackMaguire/AcceptToBestMover
AcceptToBestMover
I'm re-implementing FastDesign using rosetta_scripts instead of relax_scripts. People are generally more familiar with rosetta_scripts so this side-by-side comparison will hopefully be the "Rosetta Stone" of relax_scripts.
The only functionality that does not currently exist in rosetta_scripts is the accept_to_best command, which updates the pose to the best one seen so far. This PR adds the AcceptToBestMover which wraps this simple logic into Mover boilerplate.
notify author
notify list [rosetta-logs@googlegroups.com]
Merge pull request #4465 from RosettaCommons/vmullig/fix_james_helical_bundle_predict_issues_2
Fix an issue with, and add some features to, helical_bundle_predict.
This PR:
- [x] Fixes a silly bug in parsing FASTA files in helical_bundle_predict.
- [x] Adds an option to skip residues in the native structure in alignments.
- [x] Adds an option to skip residues in the generated structure in alignments.
- [x] Adds integration tests for the new options.
- [x] Adds documentation for the new options.
notify author
notify list [rosetta-logs@googlegroups.com]
Merge pull request #4462 from RosettaCommons/vmullig/multithreaded_scoring_incremental_merge3
Incremental merge 3 for multithreaded scoring
The multithreaded scoring branch identified a major thread-safety issue with the hydrogen bonding code, in which data that were needed down a long series of function calls were cached in mutable storage in the energy method, then accessed down the chain. This is fundamentally non-threadsafe: if different threads are trying to score different parts of the pose at the same time, one could overwrite the data that the other cached. The proper solution is simply to pass these data down the chain of function calls. Unfortunately, due to the complexity of the etable template classes, this means modifying a _lot_ of functions.
I've done the work for this, now, and want to make it a separate pull request to ensure that it only improves performance and has no effect on accuracy. Note that I've tried to do this in a way that involves a subclassed container class, so that we can add additional data in the future if we so wish _without_ having to refactor all of these dozens of template functions, simply by adding new subclasses of the container class.
Note also that this might fix rare thread safety issues with multithreaded packing, so it benefits multi-threading even before we enable multithreaded scoring.
- [x] Pull request #4460 must be merged before this one.
notify author
notify list [rosetta-logs@googlegroups.com]
Merge pull request #4460 from RosettaCommons/vmullig/multithreaded_scoring_incremental_merge2
Incremental merge 2 for multithreaded scoring
This PR relaxes some of the locking of the global options system. I was overdoing it, and it was hurting multithreaded performance and performance scaling a bit.
(Note that the full locking can be restored by defining `OPTIONS_COLLECTION_FULL_THREAD_SAFETY`. This is not defined by default. When `MULTI_THREADED` is defined, as it is when building with `extras=cxx11thread`, only the necessary locking occurs.)
- [x] Pull request #4459 must be merged before this one.
@bcov77
notify author
notify list [rosetta-logs@googlegroups.com]
Merge pull request #4461 from RosettaCommons/vmullig/fix_maybe_uninitialized_errors
Fix a couple of compilation errors in gcc/7.
The gcc/7 compiler on Ubuntu 18 was complaining about uninitialized or potentially uninitalized variables in a devel protocol. This may be a false warning, since other compilers don't seem to complain, but initializing the vars shushes the warnings, and is unlikely to have any significant impact on performance given the complexity of the other stuff that these classes do.
notify author
notify list [rosetta-logs@googlegroups.com]
Merge pull request #4459 from RosettaCommons/vmullig/multithreaded_scoring_incremental_merge1
Incremental merge 1 for multithreaded scoring.
This pulls the changes to the RosettaThreadManager into its own pull request, to keep everything nicely compartmentalized and easy to review. See pull request #4342 for details.
notify author
notify list [rosetta-logs@googlegroups.com]
Merge pull request #4450 from RosettaCommons/roccomoretti/clang_tidy_4
Clang tidy: modernize-use-nullptr
Another in the series of adding additional clang-tidy tests. This one is pretty much purely mechanical.
The big change was to fixedarray1/fixedarray0. These were changed to default initialize instead of zero initialize. This had the knock-on effect of requiring me to convert their internal store from a C-style array to a std::array, as well as changing a few places where there were fixedsizearrays of xyzVectors (which behave differently for zero vs. default initialization.)
notify author
notify list [rosetta-logs@googlegroups.com]
Merge pull request #4456 from RosettaCommons/roccomoretti/no_apply_to_pose
Remove APPLY_TO_POSE usage in integration tests
APPLY_TO_POSE is deprecated, and we should hopefully be removing support for it in the (nearish?) future.
There are, however, two integration tests which make (non-trivial) use of it. This PR adjusts those integration tests not to use it, using the suggested replacement instead.
notify author
notify list [rosetta-logs@googlegroups.com]