random_number()如何并行工作?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了random_number()如何并行工作?相关的知识,希望对你有一定的参考价值。

random_number()如何与OpenMP并行工作?

如果我在没有并行化的情况下运行程序,我总是会得到相同的结果,但是在并行化的情况下,每次都会得到不同(但相似)的结果。

答案

通常,不能保证random_number的线程安全或线程性能。 Fortran标准根本不了解OpenMP。

各个编译器可能会为您提供一些保证,但是它们仅对特定编译器中存在的版本有效。例如,当前的gfortran版本提供了线程安全的随机数生成器,并且"Note that in a multi-threaded program (e.g. using OpenMP directives), each thread will have its own random number state."其他编译器可能有所不同。显然,您的用户可能要使用的编译器可能会有所不同,您可能对此一无所知。

以上是关于random_number()如何并行工作?的主要内容,如果未能解决你的问题,请参考以下文章