为 MPICH3.3 添加用户级功能。*

Add user-level function to MPICH3.3.*

我需要向 MPICH-3.3.2 添加用户级函数 MPI_Myfunc()。我将函数原型添加到 src/include/mpi.h.in 其他原型所在的位置 (MPI_Send, ...),然后我在 src/mpi/coll/allgather/allgather.c.我可以毫无问题地编译和构建 MPICH。但是,当我想编译一个调用 MPI_Myfunc() 的测试程序时,我得到这个错误:

undefined reference to MPI_Myfunc.

当我按照 MPICH-3.2.1 中的相同步骤操作时,我没有收到此错误。我想知道 MPICH-3.3.2 是否有我不知道的变化。

我该如何解决这个错误?

我可以通过将以下内容添加到 /src/invlude/mpi 处的函数原型来解决此问题。h.in:

MPICH_ATTR_POINTER_WITH_TYPE_TAG(1,3) MPICH_API_PUBLIC;

因此,函数原型如下所示:

void MPI_Myfunc() MPICH_ATTR_POINTER_WITH_TYPE_TAG(1,3) MPICH_API_PUBLIC;