Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Additional OpenSwath Speedups (IsotopeCacher + LinearResampler) #3

Open
wants to merge 15 commits into
base: feature/oswSpeedUp
Choose a base branch
from

Conversation

jcharkow
Copy link
Owner

@jcharkow jcharkow commented Jan 9, 2023

Description

Speedups for OpenSwathWorkflow

  1. Add OpenSwathIsotopeGeneratorCacher class which stores computed theoretical spectrum to prevent recomputation
  2. Prevent Copying of LinearResampler

Checklist

  • Make sure that you are listed in the AUTHORS file
  • Add relevant changes and new features to the CHANGELOG file
  • I have commented my code, particularly in hard-to-understand areas
  • New and existing unit tests pass locally with my changes
  • Updated or added python bindings for changed or new classes (Tick if no updates were necessary.)

How can I get additional information on failed tests during CI

Click to expand If your PR is failing you can check out
  • The details of the action statuses at the end of the PR or the "Checks" tab.
  • http://cdash.openms.de/index.php?project=OpenMS and look for your PR. Use the "Show filters" capability on the top right to search for your PR number.
    If you click in the column that lists the failed tests you will get detailed error messages.

Advanced commands (admins / reviewer only)

Click to expand
  • /reformat (experimental) applies the clang-format style changes as additional commit. Note: your branch must have a different name (e.g., yourrepo:feature/XYZ) than the receiving branch (e.g., OpenMS:develop). Otherwise, reformat fails to push.
  • setting the label "NoJenkins" will skip tests for this PR on jenkins (saves resources e.g., on edits that do not affect tests)
  • commenting with rebuild jenkins will retrigger Jenkins-based CI builds

⚠️ Note: Once you opened a PR try to minimize the number of pushes to it as every push will trigger CI (automated builds and test) and is rather heavy on our infrastructure (e.g., if several pushes per day are performed).

Add additional class which will cache generated isotope patterns. This
should speed up the execution of OpenSwathWorkflow

This commit is very preliminary with nothing implmented yet
Revamped code when creating the test. Might not be the most efficient
way right now however it is quite readable
now reads out the number of isotopes from command line dia_nr_isotopes
when using this full size cache, the performance suffers. Takes
significantly longer with the cache
Cache was actually taking longer because it was getting copied with
function called unintentionally. Pass by address in all cases in order
to prevent copying.
This gets without mutating the cache (such that it is compatible with
multthreading)
clean up code, and ensure that all tests are passing
Fix unit tests so that they pass including DIAPrescoring_test,
DIAScoring_test, MRMFeatureFinderScoring_test and
MRMFeatureScoring_test
update function signatures of other tools to allow building
score behaviour was undefined because taking X isotopes for theoretical
spectrum and X+1 isotopes for actual spectrum leading to non
reproducible scoring. Edit cache to produce an extra isotope.

Also revert getImmutable back to using upper bound because the rounding
was a bit buggy.
don't create new linear resampler each time in order to speed up
workflow
Also fix test in DIAScoring because isotopeCacher was empty by modifying
getImmutable()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant