Nexus: use data hashing in heuristic equilibration detection algorithm#4557
Merged
Conversation
Contributor
|
There are still some ways this might not reproduce the value.
These are probably sufficiently unlikely scenarios that having a consistent output via hashing is the more useful solution, but I did want to get them listed and considered. |
Contributor
Author
|
The data are numeric (numpy float64). If a deterministic solution other than hashing is desired, please state it and I will implement that. |
Contributor
|
This would work for me. Have you thought about printing out the equilibration length? Giving an indication that equilibration length was taken into account was a good suggestion. (Definitely could be done in another PR) |
mdewing
approved these changes
Apr 20, 2023
Contributor
|
Test this please |
Contributor
|
Test this please |
Contributor
|
Test this please |
Contributor
|
Test this please |
Contributor
|
Test this please |
Merged
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Proposed changes
The heuristic equilibration detection algorithm used by
qmcawhen-eis unspecified uses a random number to avoid stastistical bias in the selection of the equilibration length. This approach generates an estimate of the mean that varies each timeqmcais run. While statistically correct, users expect deterministic behavior. This PR seeds the RNG based on the hash of the data being analyzed. This preserves use of the RNG for unbiasedness while presenting deterministic behavior to the user.Addresses #4556. The reported means are now consistent when multiple files are used (or when the same file is used repeatedly):
What type(s) of changes does this code introduce?
Does this introduce a breaking change?
What systems has this change been tested on?
Workstation
Checklist