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

 

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

 

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

 

rnd128()

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

 

rnd128_jump_exp( N )

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

 

rnd128_jump_proc( M )

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

 

rnd128_jump_samp()

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

 

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

 

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