我启动了一个带有 MVAPICH2 的 MPI 程序并收到此错误:
Fatal error in PMPI_Gather:
Invalid buffer pointer, error stack:
PMPI_Gather(923): MPI_Gather() failed
PMPI_Gather(857): Buffers must not be aliased
我认为有两种方法可以解决这个问题:
有人知道我如何用 MVAPICH2 做到这一点吗?一些编译器选项、参数、环境变量等?
类似于 MV2_NO_BUFFER_ALIAS_CHECK,但它不起作用。
最佳答案
您正在做的是一个不正确的程序,您应该重写代码以使用单独的缓冲区
或者,您可以使用 MPI_IN_PLACE
如果您想使用相同的缓冲区作为 MPI_GATHER
的输入和输出值.没有看到您的代码,我无法告诉您如何做到这一点。您可以查看一些 documentation关于 MPI_GATHER
并阅读更多关于如何MPI_IN_PLACE
有效,看看是否能解决您的问题。
关于mpi - Mvapic2 缓冲区混叠,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24913863/