我使用 MAPICH2 启动 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 程序(使用不同的缓冲区)
- 禁用检查缓冲区别名
有人知道我如何使用 MAPICH2 做到这一点吗?一些编译器选项、参数、环境变量等?
类似 MV2_NO_BUFFER_ALIAS_CHECK 的东西,但它不起作用。
你正在做的是一个不正确的程序,你应该重写你的代码以使用单独的缓冲区
或者,您也许可以使用MPI_IN_PLACE
如果您想使用相同的缓冲区作为输入和输出值MPI_GATHER
。如果没有看到您的代码,我无法告诉您如何做到这一点。你可以看看一些文档 http://mpi.deino.net/mpi_functions/MPI_Gather.html about MPI_GATHER
并阅读更多关于如何MPI_IN_PLACE
有效,看看是否能解决您的问题。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)