Skip to content

chore: split random at the start of step so results are reproducible across higher thread counts#2259

Merged
triceo merged 8 commits intoTimefoldAI:mainfrom
Christopher-Chianelli:perf/split-random
Apr 30, 2026
Merged

chore: split random at the start of step so results are reproducible across higher thread counts#2259
triceo merged 8 commits intoTimefoldAI:mainfrom
Christopher-Chianelli:perf/split-random

Conversation

@Christopher-Chianelli
Copy link
Copy Markdown
Contributor

No description provided.

Copy link
Copy Markdown
Collaborator

@triceo triceo left a comment

Choose a reason for hiding this comment

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

First read through the code.

Comment thread core/src/main/java/ai/timefold/solver/core/impl/solver/AbstractSolver.java Outdated
Comment thread core/src/main/java/module-info.java
Comment thread core/src/test/java/ai/timefold/solver/core/impl/solver/DefaultSolverTest.java Outdated
This allows move iterators to generate additional moves without
affecting the random (and thus reach the same result when those
moves are not generated provided the same number of steps).
@Christopher-Chianelli Christopher-Chianelli marked this pull request as ready for review April 28, 2026 15:11
Copy link
Copy Markdown
Collaborator

@triceo triceo left a comment

Choose a reason for hiding this comment

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

All comments need resolving. Also, I am missing some docs changes:

  • Effective move speed needs to be explained in multi-threaded documentation. Especially the seeming contradiction of effective speed going down with more move threads being added.
  • The format of several logging messages has changed (or will change) as a result of this PR. Let's do a quick grep of the docs, in case they're shown anywhere.
  • Check for the Random configuration options; if we mention them in the docs, those mentions need to disappear.

Also, Sonar.

Comment thread core/src/main/java/ai/timefold/solver/core/impl/solver/scope/SolverScope.java Outdated
Comment thread core/src/main/java/ai/timefold/solver/core/impl/solver/DefaultSolverFactory.java Outdated
Comment thread core/src/main/resources/solver.xsd Outdated
Copy link
Copy Markdown
Collaborator

@triceo triceo left a comment

Choose a reason for hiding this comment

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

CI is failing because of Javadoc.
After that, LGTM.

@sonarqubecloud
Copy link
Copy Markdown

Quality Gate Failed Quality Gate failed

Failed conditions
54.4% Coverage on New Code (required ≥ 70%)

See analysis details on SonarQube Cloud

@triceo triceo merged commit ece6d14 into TimefoldAI:main Apr 30, 2026
21 of 22 checks passed
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.

2 participants