-
- Downloads
USER-DPD: make the kokkos and non-kokkos fix_shardlow match more closely
This was accomplished with several key changes: 1) Modified fix_shardlow's control flow to match fix_shardlow_kokkos so that random numbers are pulled fromn the RNGs in exactly the same order. 2) Created random_external_state.h, a simplified version of the Kokkos random number generator that keeps its state variables external to itself. Thus it can be used both with and without Kokkos enabled, as long as the caller stores and passes in the required state variable. 3) Replaced all references to random_mars.h and Kokkos_Random.hpp code in the fix_shardlow* files with calls to the random_external_state.h code, guaranteeing that fix_shardlow* is using an identical RNG in all cases. Result: most (56 of 61) of our internal tests now generate the same results with kokkos turned on or off. Four cases still differ due to what appear to be vectorization caused rounding differences, and the fifth case appears to be something triggered by the kokkos "atom_style hybrid" code.
Showing
- src/.gitignore 1 addition, 0 deletionssrc/.gitignore
- src/KOKKOS/fix_shardlow_kokkos.cpp 17 additions, 58 deletionssrc/KOKKOS/fix_shardlow_kokkos.cpp
- src/KOKKOS/fix_shardlow_kokkos.h 4 additions, 11 deletionssrc/KOKKOS/fix_shardlow_kokkos.h
- src/USER-DPD/fix_shardlow.cpp 76 additions, 40 deletionssrc/USER-DPD/fix_shardlow.cpp
- src/USER-DPD/fix_shardlow.h 6 additions, 2 deletionssrc/USER-DPD/fix_shardlow.h
- src/USER-DPD/npair_half_bin_newton_ssa.cpp 14 additions, 4 deletionssrc/USER-DPD/npair_half_bin_newton_ssa.cpp
- src/USER-DPD/npair_half_bin_newton_ssa.h 6 additions, 1 deletionsrc/USER-DPD/npair_half_bin_newton_ssa.h
- src/USER-DPD/random_external_state.h 171 additions, 0 deletionssrc/USER-DPD/random_external_state.h
Loading
Please register or sign in to comment