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

fix: SDR: make it possible to bind to cores if units > groups #1588

Merged
merged 1 commit into from
Aug 2, 2022

Conversation

vmx
Copy link
Contributor

@vmx vmx commented Apr 22, 2022

For multicore SDR it is important that the producer and conumers share the
same (L3) cache. Hence we bind specific cores to threads. Prior to this
change there was one multicore SDR job per group, even if the group could
accompany multiple of such jobs. If there were more jobs scheduled than
groups available, those additional jobs wouldn't use specific cores, but
whatever the operating system decided.

With this change, additional jobs are now put into the groups in case there
is enough space to accompany them.

Fixes #1556.

@@ -157,7 +157,7 @@ jobs:
ulimit -u 20000
ulimit -n 20000
cargo test --all --verbose --release lifecycle -- --ignored --nocapture
cargo test -p storage-proofs-porep --features isolated-testing --release checkout_cores -- --test-threads=1
cargo test -p storage-proofs-porep --features isolated-testing --release --lib stacked::vanilla::cores
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In case you are wondering about this change. It still runs the original and now two additional tests. And the --test-threads=1 is already set by the RUST_TEST_THREADS: 1 below (you need to click once on expanding the source file).

dignifiedquire
dignifiedquire previously approved these changes Apr 23, 2022
@vmx vmx changed the base branch from master to updated-deps June 20, 2022 12:23
@vmx vmx force-pushed the many-group-sdr branch 2 times, most recently from 0990379 to fab7903 Compare June 20, 2022 17:53
Base automatically changed from updated-deps to master July 22, 2022 11:46
For multicore SDR it is important that the producer and conumers share the
same (L3) cache. Hence we bind specific cores to threads. Prior to this
change there was one multicore SDR job per group, even if the group could
accompany multiple of such jobs. If there were more jobs scheduled than
groups available, those additional jobs wouldn't use specific cores, but
whatever the operating system decided.

With this change, additional jobs are now put into the groups in case there
is enough space to accompany them.

Fixes #1556.
@vmx
Copy link
Contributor Author

vmx commented Aug 1, 2022

This was just a rebase without code changes. When it get re-approved it get be merged :)

@vmx vmx merged commit 82afead into master Aug 2, 2022
@vmx vmx deleted the many-group-sdr branch August 2, 2022 12:21
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.

SDR: cannot put two runs into the same hwloc group
3 participants