glotzerlab / hoomd-blue

Molecular dynamics and Monte Carlo soft matter simulation on GPUs.
http://glotzerlab.engin.umich.edu/hoomd-blue
BSD 3-Clause "New" or "Revised" License
329 stars 127 forks source link

Broadcast seed to all ranks #233

Closed joaander closed 7 years ago

joaander commented 7 years ago

Original report by me.


Subtle correlations may occur when the seed is different on different ranks of an MPI simulation. HOOMD should protect users who use things like the system time, pid, job id, or other means to set their seed. The solution is to broadcast the seed from rank 0 to all other ranks.

See pull request #298 which implements this for DPD, where different seeds leads to worse problems.

We should also do the same thing for all other places in hoomd that use seeds (if they don't already take care of this). Namely, HPMC integrators, hpmc.compute.free_volume, hpmc.update.boxmc, hpmc.update.wall, hpmc.update.muvt, md.force.active, md.integrate.langevin, and md.integrate.brownian.

joaander commented 7 years ago

Merged in alexchunha/hoomd-blue/fix_langevin_seed_mpi (pull request #315)

refs #233

Fixed RNG seeding issues with the Langevin/Brownian integrators when MPI is enabled

Approved-by: Joshua Anderson joaander@umich.edu

joaander commented 7 years ago

Still to do:

joaander commented 7 years ago

Broadcast seed to all ranks in remaining methods

This brodcast is needed because hoomd assumes that the seed is identical across all ranks, and users sometimes provide different seeds to different ranks.

refs #233

joaander commented 7 years ago

Merged in broadcast-seed (pull request #338)

Broadcast seed to all ranks in remaining methods

fixes #233