MVAPICH2缓冲区别名

xij*_*hoy 5 hpc mpi

我使用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
Run Code Online (Sandbox Code Playgroud)

我认为有两种方法可以解决此问题:

  1. 重写我的MPI程序(使用不同的缓冲区)
  2. 禁用检查缓冲区别名

有人知道我该如何使用MVAPICH2吗?一些编译器选项,参数,环境变量等?

像MV2_NO_BUFFER_ALIAS_CHECK之类的东西,但是它不起作用。

Wes*_*and 7

您正在做的是一个不正确的程序,应该重写代码以使用单独的缓冲区

另外,MPI_IN_PLACE如果您想使用与的输入和输出值相同的缓冲区,则可以使用MPI_GATHER。没有看到您的代码,我无法告诉您如何做到这一点。您可以查看一些文档MPI_GATHER并阅读有关其MPI_IN_PLACE工作原理的更多信息,看看是否可以解决您的问题。