Skip to content

Refactor parallel solving#1307

Merged
jcoupey merged 8 commits intomasterfrom
refactor/parallel-solving
Nov 4, 2025
Merged

Refactor parallel solving#1307
jcoupey merged 8 commits intomasterfrom
refactor/parallel-solving

Conversation

@jcoupey
Copy link
Collaborator

@jcoupey jcoupey commented Oct 31, 2025

Issue

Fixes #1305

Tasks

  • Simplify solving lambda
  • Remove splitting logic
  • Define as many threads as there are searches
  • Use a counting_semaphore to limit concurrency
  • Benchmark
  • Update CHANGELOG.md
  • review

@jcoupey
Copy link
Collaborator Author

jcoupey commented Nov 3, 2025

Benchmarking the changes here is a bit disappointing: in the situation where this would be expected to make the biggest difference (lots of parallel searches with low number of threads), computing times for this PR are not significantly lower than with the previous hard-coded splitting logic.

While the new code may look slightly simpler, I'll probably simply close this to avoid touching something that just works.

@jcoupey
Copy link
Collaborator Author

jcoupey commented Nov 4, 2025

On second thoughts I'll probably merge this even with slight computing time improvements as the parallelization logic is now simpler and also consistent with #1292.

@jcoupey jcoupey merged commit bac8464 into master Nov 4, 2025
4 checks passed
@jcoupey jcoupey deleted the refactor/parallel-solving branch November 4, 2025 15:09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Use C++20 counting_semaphore to parallelize solving

1 participant