mpi - Mvapic2 缓冲区混叠

标签 mpi hpc

我启动了一个带有 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

我认为有两种方法可以解决这个问题:
  • 重写我的 MPI 程序(使用不同的缓冲区)
  • 禁用检查缓冲区别名

  • 有人知道我如何用 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/

    相关文章:

    opencl - OpenCL 准备好在 CPU 上使用了吗?

    cluster-computing - 在集群上测试 MPI

    c++ - BSP 和 MPI 有什么区别?

    linux - 如何在 Linux Debian 中使用 Cuda-Aware MPI 安装 Open MPI

    c - 使用 MPI-IO 和笛卡尔拓扑编写分布式数组

    通过 Rstudio 在远程服务器上运行 R 代码,而不是通过浏览器

    openmp - 英特尔 OpenMP 库通过设置 KMP_AFFINITY=scatter 显着降低 AMD 平台上的内存带宽

    c++ - 通用 MPI 代码

    macos - openmpi 忽略错误 : mca interface is not recognized

    c++ - MPI - 随着进程数量的增加没有加速