Assign random number seed independent of num_threads #1263
Closed
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Addresses my comment in #1262 (comment)
ForestTrainer::train_trees
callssplit_sequence
to split the number of trees to grow into batches depending on the specified number of threads. However, when assigning a seed to grow an individual tree, only the batch index is considered, but not the tree index. Therefore, different values for the number of threads will yield different results, despite the user having specified the same (global) random number seed.The patch initializes the random number generator based on the user provided seed and the index of the tree (
start + i
). Thus, each tree will be assigned the same seed, independent of the specified number of threads.