arma-thesis

git clone https://git.igankevich.com/arma-thesis.git
Log | Files | Refs | LICENSE

commit 6f196de57f747a04c08a3a1b24d2d4ade44bec28
parent 27bc5fc97c7fc11e28920896e575238285121b40
Author: Ivan Gankevich <igankevich@ya.ru>
Date:   Sat, 14 Jan 2017 16:45:48 +0300

Sync white noise generation.

Diffstat:
phd-diss-ru.org | 38++++++++++++++++++--------------------
phd-diss.org | 17+++++++++++++++++
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: