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



这是这个问题的后续。

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

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

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

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

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

更多信息,请参阅 Fortran 2018 标准,第 16.9.155 节

最新更新