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

Question(dev): Benchmarking script #76

Open
Uzaaft opened this issue Jul 7, 2022 · 5 comments
Open

Question(dev): Benchmarking script #76

Uzaaft opened this issue Jul 7, 2022 · 5 comments
Labels
enhancement New feature or request

Comments

@Uzaaft
Copy link
Contributor

Uzaaft commented Jul 7, 2022

Hi,

Is it possible to add some kind of benchmarking tests in the test suit, so that one can test for performance regression while implementing changes to the code? I'm not a biologist/gene guy(Just a random HPC enthusiast), so I don't have the brain power to do so myself.

@rob-p
Copy link
Contributor

rob-p commented Jul 8, 2022

Hi @Uzaaft,

That's a nice idea! While we have some experience with integration and performance regression testing, we've always done that outside of the context of the code tests themselves (mostly because we were working in C++ and there wasn't an obvious testing framework to use for this purpose). I imagine that some performance tests could be put together using criterion.rs — though we'd have to look into how large test data has to be before meaningful performance numbers can be inferred. We'll certainly look into this.

Best,
Rob

@rob-p rob-p added the enhancement New feature or request label Jul 8, 2022
@Uzaaft
Copy link
Contributor Author

Uzaaft commented Jul 8, 2022

I think some "real world" workload, from your guys' own work might perhaps be most applicable. To see what is the slowest parts of the code, etc etc. Again, I'm not a biologist, so I have absolutely no insight whatsoever regarding how you guys work.

@rob-p
Copy link
Contributor

rob-p commented Jul 8, 2022

Got it — so I think this would be possible, but would probably require the download of moderately sized external files (stuff that can't easily be put into VC). Presumably there is some standard way to only invoke the tests if the data is present, or to ask to grab the data automatically if the user wants to run these tests. I'm not familiar if there is an idiomatic way to do this in rust or not.

@Uzaaft
Copy link
Contributor Author

Uzaaft commented Jul 8, 2022

I think a way could be to cache the data in the /tmp dir, and then make the script look after it there, before it downloads it and caches it again. This way, the data is not saved across reboots(which avoid eating up space), but is there across invocations during a "session".

@Uzaaft
Copy link
Contributor Author

Uzaaft commented Jul 8, 2022

For example, the script could be within the \tests folder, e.g called:
\tests\performance_regression.rs

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants