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

Provide a serial "thread pool" for use in the tasking #1219

Merged
merged 8 commits into from
Jan 9, 2025

Conversation

Yurlungur
Copy link
Collaborator

@Yurlungur Yurlungur commented Jan 6, 2025

PR Summary

PR Checklist

This has come up multiple times before, but currently trying to chase down a throw and getting blocked by the threading. This MR provides a simple compile time option to fake a thread pool and run the new tasking machinery entirely without threading. Simply build with
-DPARTHENON_USE_SERIAL_POOL=ON
and the thread pool will be replaced with a simple queue.

@AstroBarker try running with this branch to debug your issue. @jdolence thoughts on this addition as a debugging tool? I believe @bprather also did something like this. But I'm not sure where that MR went. So I just re-did it.

  • Code passes cpplint
  • New features are documented.
  • Adds a test for any bugs fixed. Adds tests for new features.
  • Code is formatted
  • Changes are summarized in CHANGELOG.md
  • Change is breaking (API, behavior, ...)
    • Change is additionally added to CHANGELOG.md in the breaking section
    • PR is marked as breaking
    • Short summary API changes at the top of the PR (plus optionally with an automated update/fix script)
  • CI has been triggered on Darwin for performance regression tests.
  • Docs build
  • (@lanl.gov employees) Update copyright on changed files

@Yurlungur Yurlungur added bug Something isn't working testing build configuration experiment Outcome unknown. Some testing/eval needed. labels Jan 6, 2025
@Yurlungur Yurlungur self-assigned this Jan 6, 2025
@Yurlungur Yurlungur enabled auto-merge January 6, 2025 23:51
@Yurlungur Yurlungur disabled auto-merge January 6, 2025 23:51
@AstroBarker
Copy link
Collaborator

This looks good to me! Worked in phoebus and improved output on crash for debugging greatly.

Copy link
Collaborator

@bprather bprather left a comment

Choose a reason for hiding this comment

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

Looking back I don't think I made my changes into a formal MR, I just hacked out the threading without the niceties here. This is the right way to do it.
Though, someday this may tempt someone into making a ProcessPool using IPC, and I am registering now I want no part of that mess.

@Yurlungur Yurlungur enabled auto-merge January 8, 2025 17:22
@Yurlungur Yurlungur disabled auto-merge January 8, 2025 17:22
@Yurlungur Yurlungur enabled auto-merge January 8, 2025 17:22
@Yurlungur Yurlungur disabled auto-merge January 8, 2025 17:23
@Yurlungur
Copy link
Collaborator Author

Ping @pgrete @jdolence @BenWibking @forrestglines @pdmullen any objections to this MR going in?

@Yurlungur Yurlungur merged commit 9b045ae into develop Jan 9, 2025
35 of 59 checks passed
@Yurlungur Yurlungur deleted the jmm/serial-pool branch January 9, 2025 16:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working build configuration experiment Outcome unknown. Some testing/eval needed. testing
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants