有什么区别,实际上应该使用哪一个?我找到了这个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时禁用了线程支持,它仍然会提示,即使provided
和MPI_THREAD_SINGLE
也可以使用,唯一的MPI_FUNNELED
值是MPI_SERIALIZED
。
关于c - MPI_Init()与MPI_Init_thread(),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34851903/