Как написать параллельный безопасный генератор случайных чисел на Фортране - PullRequest
0 голосов
/ 07 февраля 2020

Это продолжение до этого вопроса.

Я считаю, что Random_number() не является надежным для параллельного программирования, оно дает невоспроизводимые результаты, и моя программа в значительной степени зависит от случайного номера.

Как я могу написать генератор случайных чисел на Фортране, который является параллельным безопасным?

Или где его найти?

1 Ответ

0 голосов
/ 07 февраля 2020

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

CALL RANDOM_INIT (REPEATABLE=.FALSE., IMAGE_DISTINCT=.TRUE.) 

Дополнительная информация в Стандарт Fortran 2018, раздел 16.9.155

...