commit 6f196de57f747a04c08a3a1b24d2d4ade44bec28
parent 27bc5fc97c7fc11e28920896e575238285121b40
Author: Ivan Gankevich <igankevich@ya.ru>
Date: Sat, 14 Jan 2017 16:45:48 +0300
Sync white noise generation.
Diffstat:
2 files changed, 35 insertions(+), 20 deletions(-)
diff --git a/phd-diss-ru.org b/phd-diss-ru.org
@@ -1384,27 +1384,25 @@ $10^{-5}$.
*** Алгоритм генерации белого шума
Чтобы исключить периодичность из сгенерированной моделью ветрового волнения
-реализации взволнованной поверхности, нужно использовать ГПСЧ с достаточно
-большим периодом. В качестве такого генератора в работе используется
-параллельная реализация вихря Мерсенна cite:matsumoto1998mersenne с периодом
-$2^{19937}-1$. Если предположить, что взволнованная поверхность генерируется на
-сетке размера $1000\times1000$ и шаг по времени составляет 1 сек., то вихрь
-Мерсенна позволяет сгенерировать неповторяющуюся последовательность
-астрономической временной протяженности. Этого более чем достаточно для
-практического применения генератора в задаче моделирования морского волнения.
-
-Запуск нескольких ГПСЧ с разными начальными состояниями в параллельных
-потоках не гарантирует некоррелированность генерируемых последовательностей
-псевдослучайных чисел, и, чтобы избежать этого, в работе используется алгоритм
-динамического создания вихрей Мерсенна cite:matsumoto1998dynamic. Суть
-алгоритма заключается в поиске таких матриц начальных состояний генераторов,
-которые бы дали максимально некоррелированные последовательности
+реализации взволнованной поверхности, для генерации белого шума нужно
+использовать ГПСЧ с достаточно большим периодом. В качестве такого генератора в
+работе используется параллельная реализация вихря Мерсенна
+cite:matsumoto1998mersenne с периодом $2^{19937}-1$. Это позволяет создавать
+апериодичные реализации взволнованной морской поверхности для любых сценариев
+применения, встречаемых на практике.
+
+Запуск нескольких ГПСЧ с разными начальными состояниями в параллельных потоках
+не гарантирует некоррелированность генерируемых последовательностей
+псевдослучайных чисел, однако, можно воспользоваться алгоритмом динамического
+создания вихрей Мерсенна cite:matsumoto1998dynamic, чтобы дать такую гарантию.
+Суть алгоритма заключается в поиске таких матриц начальных состояний
+генераторов, которые бы дали максимально некоррелированные последовательности
псевдослучайных чисел при параллельном запуске нескольких вихрей Мерсенна с
-этими начальными состоянями. Поскольку поиск начальных состояний может занимать
-значительно большее время чем генерация белого шума, то вектор состояний
-создается предварительно для заведомо большего количества параллельных потоков.
-Вектор состояний сохраняется в файл, который впоследствиии считывается основной
-программой перед началом генерации псевдослучаных чисел.
+этими начальными состоянями. Поскольку на поиск начальных состояний можно
+потратить значительное количество процессорного времени, то вектор состояний
+создается предварительно для заведомо большего количества параллельных потоков и
+сохраняется в файл, который впоследствиии считывается основной программой перед
+началом генерации белого шума.
*** Алгоритм генерации взволнованной поверхности
В модели АРСС значение подъема взволнованной поверхности в каждой точке зависит
diff --git a/phd-diss.org b/phd-diss.org
@@ -1469,6 +1469,23 @@ majority of cases three Gram---Charlier series coefficients is enough to
transform ACF; relative error without interpolation is $10^{-5}$.
*** White noise generation
+In order to eliminate periodicity from generated wavy surface, it is imperative
+to use PRNG with sufficiently large period to generate white noise. Parallel
+Mersenne Twister cite:matsumoto1998mersenne with a period of $2^{19937}-1$ is
+used as a generator in this work. It allows producing aperiodic ocean wavy
+surface realisations in any practical usage scenarios.
+
+There is no guarantee that multiple Mersenne Twisters executed in parallel
+threads with distinct initial states produce uncorrelated pseudo-random number
+sequences, however, algorithm of dynamic creation of Mersenne Twisters
+cite:matsumoto1998dynamic may be used to provide such guarantee. The essence of
+the algorithm is to find matrices of initial generator states, that give
+maximally uncorrelated pseudo-random number sequences when Mersenne Twisters are
+executed in parallel with these initial states. Since finding such initial
+states consumes considerable amount of processor time, vector of initial states
+is created preliminary with knowingly larger number of parallel threads and
+saved to a file, which is then read before starting white noise generation.
+
*** Wavy surface generation
*** Velocity potential normalisation formulae
:PROPERTIES: