有什么区别,实际上应该使用哪一个?我找到了这个IBM链接和这个问题MPI - one function for MPI_Init and MPI_Init_thread。如果这很重要的话,我只会在C语言中很有趣。

这两个功能的描述相同:



正如您在他们的引用文献中看到的:MPI_Init()MPI_Init_thread(),但自变量不同。

最佳答案

每当程序使用线程时,都应使用MPI_Init_thread()

这取决于您将通过的required值的线程使用情况。
来自OpenMPI手册的引用:



通常,required唯一被区别对待的值是MPI_THREAD_MULTIPLE。如果更多线程可以同时调用MPI函数,则可以传递此值。不幸的是,在这种情况下,MPI库的性能通常很差。

在MPI库中,其他的常常被平等地对待。但是,如果在构建OpenMPI时禁用了线程支持,它仍然会提示,即使providedMPI_THREAD_SINGLE也可以使用,唯一的MPI_FUNNELED值是MPI_SERIALIZED

关于c - MPI_Init()与MPI_Init_thread(),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34851903/

10-11 21:52