Параллельный Вихрь Мерсенна

01Перед выполнением задания прочитайте инструкцию.

Задание

02При увеличении размера взволнованной поверхности (zsize) увеличивается время генерации белого шума. Белый шум генерируется по алгоритму Вихря Мерсенна, для которого не существует параллельной версии, так же как и для многих других генераторов псевдо-случайных чисел. Зато для вихря Мерсенна существует алгоритм динамического создания таких генераторов. Динамическое создание генераторов занимает большое количество времени, поэтому напишите вспомогательную программу для создания файла с настройками генераторов, а потом подгрузите сгенерированные настройки в основную программу для создания генераторов, которые можно использовать параллельно (функция generate_white_noise). Скачайте исходный код библиотеки DCMT (Dynamic Creation of Mersenne Twisters) с сайта проекта и соберите его. Для создания вспомогательной программы вам понадобятся файлы dc.h и libdcmt.a, а также файл parallel_mt.hh из директории нашей программы, который реализует обертки для этой библиотеки.