首页 > 解决方案 > 如何在 Fortran 中编写并行安全随机数生成器

问题描述

这是对这个问题的跟进。

我发现这Random_number()对于并行编程不可靠,它给出了不可重现的结果,而且我的程序严重依赖随机数。

如何在 Fortran 中编写并行安全的随机数生成器?

或者我在哪里可以找到它?

标签: parallel-processingfortran

解决方案


从 Fortran 2018 开始,可以对调用图像的伪随机数生成器进行初始化,使得伪随机数序列与执行类似语句的其他图像的伪随机数序列不同,并且在程序的后续执行中会有所不同。

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

Fortran 2018 标准第 16.9.155 节中的更多信息


推荐阅读