random number generators in hybrid MPI/OpenMP
This is possibly a non-issue, but it should be documented somehow.
In field.cpp
we implement the make_gaussian_random_field
function, that fills up a field
object with random amplitudes and phases according to a prescribed spectrum.
the STL mt19937_64 random number generator is used: one individual generator for each OpenMP thread.
The seed for each thread is unique, and it is dependent on an "rseed" as well as MPI process ID and OpenMP thread ID.
In principle we could see repeated seed usage if we use different MPI/OpenMP configurations.
While this is not an obvious problem, it would be best to find out if there are standard ways of dealing with random number generation in a massively parallel setting. Could we ensure that random numbers are independent of the MPI/OpenMP configuration?