作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在查看 mpi.h
header ,但我对 PMPI_Init
函数感到困惑。它位于 MPI_Init
声明之后,看起来完全一样。但是, Msmpi.dll
(例如)没有 MPI_Init
导出,只有 PMPI_Init
。
这些 PMPI_
函数是什么?
最佳答案
您正在查看 MPI 分析界面。对于每个 MPI 函数,还有一个类似的 PMPI 函数,只是前缀不同。
作为用户,您应该只调用 MPI
版本而忽略 PMPI
版本。
这是一种机制,允许工具开发人员拦截对 MPI
函数的调用并在内部调用 PMPI
版本。通常这是这样实现的,所有函数都被实现为 PMPI
函数,并且 MPI
函数作为指向它们的弱符号。然后,该工具可以用它们自己的包装器实现替换弱符号,并且仍然在内部调用 PMPI
函数。
// Normal case
user --calls--> libmpi:MPI_Init --redicrects to--> libmpi:PMPI_Init (implementation)
// Tool case
user --calls--> libtool:MPI_Init (does tool things) --calls--> libmpi:PMPI_Init (implementation)
关于mpi - MPI_* 函数和 PMPI_* 函数之间有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43002936/
我正在查看 mpi.h header ,但我对 PMPI_Init 函数感到困惑。它位于 MPI_Init 声明之后,看起来完全一样。但是, Msmpi.dll (例如)没有 MPI_Init 导出,
我是一名优秀的程序员,十分优秀!