НА ГЛАВНУЮГЕНЕРАТОРPARMONCMONCОБ АВТОРЕ
 

 

Многопроцессорный (параллельный) вариант. 64-разрядная версия. C


Ниже описывается набор подпрограмм, реализующих параллельный генератор и приводится пример программы по их использованию.

rnd128()
Подпрограмма, возвращающая одно псевдослучайное число. Фактических аргументов не имеет, но ее параметры хранятся в глобальной переменной
rnd128_param[5].

rnd128_jump_exp( N )
Подпрограмма, выполняющая а) инициализацию генератора и б) определяющая подпоследовательность с номером
N для вычислительного эксперимента. По умолчанию, длина подпоследовательностей для вычислительных экспериментов - 1032 псевдослучайных чисел. Диапазон: N = 0, 1, 2, ..., 106

rnd128_jump_proc( M )
Подпрограмма, определяющая подпоследовательность с номером
M для процессорf (внутри подпоследовательности для вычислительного эксперимента). Номер M соответствует номеру MPI процесса или OpenMP/CUDA потока. По умолчанию, длина подпоследовательностей для процессоров - 1026 псевдослучайных чисел. Диапазон: M = 0, 1, 2, ..., 106

rnd128_jump_samp()
Подпрограмма, определяющая подпоследовательность для следующей независимой реализации. Аргументов не имеет. По умолчанию, длина подпоследовательностей для реализации - 10
16 псевдослучайных чисел.

В программе
main() важен порядок вызова процедур: сначала rnd128_jump_exp, потом rnd128_jump_proc. Процедура rnd128_jump_samp вызывается в конце моделирования реализации.

 

Ссылка для скачивания: