Mvapich2 缓冲区别名

2023-12-27

我使用 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

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

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

有人知道我如何使用 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(使用前将#替换为@)

Mvapich2 缓冲区别名 的相关文章

  • 信号:MPI C++ 中的分段错误 (11)

    我有一个代码 它计算 MPI 中整数的平均值 include
  • 在集群的节点上启动 Jupyter Notebook(高性能计算或 HPC 设施)

    我想在集群的一个节点上运行 jupyter 笔记本 不在登录节点上 我可以在登录节点上远程运行 jupyter 笔记本 但这会不必要地减慢集群的使用速度 请指导我如何从本地桌面在节点上启动 jupyter 笔记本 我们的集群使用PBS作业提
  • 通过 fftw_mpi_r2c_2d 和 fftw_mpi_c2r_2d 输出不正确

    我编写了一个简单的测试程序 以便在 2d 域 使用 Fortran 中使用 MPI 实现 FFTW 该域的宽度为 Ny x Nx 并在第二个 x 索引中进行分区 在正确 我相信 声明和分配变量和计划之后 我调用 fftw mpi r2c 2
  • Java 中的 Infiniband

    众所周知 OFED的Socket Direct协议是已弃用 http en wikipedia org wiki Sockets Direct ProtocolOFED 的 3 x 版本根本不附带 SDP 因此 Java 的SDP http
  • 如何使用mpirun为不同的程序使用不同的CPU核心?

    我有一个 32 核的虚拟机 我正在运行一些模拟 需要同时使用 16 个内核 我使用以下命令在 16 个核心上运行作业 mpirun n 16程序名 args gt 注销2 gt 1 该程序在 16 个内核上运行 现在 如果我想在其余核心上使
  • Visual Studio C++ 中的 msmpi.dll 错误消息

    我正在研究 mpi 但我一直收到此错误消息 程序无法启动 因为您的计算机缺少 msmpi dll 尝试 重新安装程序以解决此问题 所以我的问题是 卸载Visual Studio并重新安装可以解决这个问题吗 或者我应该使用电脑修复工具包程序和
  • MPI_Bsend 的缺点?

    我最近遇到了一个死锁 我可以通过使用来解决MPI Bsend代替MPI Send 如果我理解正确的话 MPI Bsend 是一个非阻塞发送 并且可以安全地修改我发送的内容 而不必担心发送操作何时完成 所以 double x 1 MPI Bs
  • 如何使用 MS HPC Server 2008 R2 的 MPI 堆栈成功编译 mpi4py?

    故事是这样的 我需要一个 Python 的 MPI 包装器 我知道有mpi4py http code google com p mpi4py 对于当前的工作 我 大部分 使用 Python 和 Windows 我想使用 Microsoft
  • 在 C++ 程序上使用 mpicc 链接失败

    我正在运行 Ubuntu 11 04 64 位 我已经安装了 OpenMPI 我正在尝试构建以下代码 这是 Gropp Lusk Skjellum 所著的 Using MPI 一书中测试问题的片段 include
  • 使用 MPI 通过命令行传递参数

    我正在使用 C 使用 MPI 调用在多个进程上运行一个过程 我的 Main 函数中的前几行如下所示 int main int argc char argv int comm sz int my rank MPI Init argc argv
  • MPI 运行错误“导致所有级别集体中止”

    我正在尝试使用 C 中的 MPI 编写并行程序 但是 当我运行我的程序时 我收到该消息并且我的程序被终止 我不知道该错误消息的原因 警告 无法读取 mpd hosts 或未提供主机列表 MPI 作业将仅在当前计算机上运行 解决方案正在启动
  • 使用 mpi4py 接收多个发送命令

    如何修改以下代码 改编自http materials jeremybejarano com MPIwithPython pointToPoint html http materials jeremybejarano com MPIwithP
  • 为了实现快速读/写性能(在 Python/pandas 中),推荐的 HDF5 压缩是多少?

    我曾多次读到 在 HDF5 中打开压缩可以带来更好的读 写性能 我想知道什么理想的设置可以在以下位置实现良好的读 写性能 data df to hdf format fixed complib complevel chunksize 我已经
  • MPI:MPICH2 在 Windows 局域网中安装和编程

    我正在学习MPI 我遵循的第一个教程是here http curveto blogspot in search label Parallel 我在 Windows 7 上使用 MSVC 2010 成功运行的代码是 include mpi h
  • 如何在 Chapel 中附加稀疏域

    我正在使用读取 CSV 的循环填充 Chapel 中的稀疏数组 我想知道最好的模式是什么 var dnsDom 1 n dims 1 n dims var spsDom sparse subdomain dnsDom for line in
  • MPI+p 线程。程序卡在 MPI_Ssend 和 MPI_Recv 上

    我已经调试了这个程序2周了 它只有 93 行 但我仍然找不到错误 请帮我 这个程序在我的笔记本电脑上运行正常 但是当我在我的实验室 上海超算中心和济南超算中心的集群上运行时 就卡住了 这个程序的逻辑非常简单 有 2 个 MPI 进程 一个是
  • 使用 MPI 派生数据类型

    我正在学习 Fortran 中的 BCASTing 数据类型 并且有一个代码可以从终端获取两个值并将它们显示在每个进程上 对于整数 整数和整数 实数类型的组合 value1 value2 这是有效的 但是对于整数 实数 8 的组合 它会失败
  • MPI 是否提供预处理器宏?

    MPI 标准是否提供了预处理器宏 因此如果我的 C C 代码由支持 MPI 的编译器编译 它可以分支吗 就像是 OPENMPOpenMP 的宏 根据MPI标准 http www mpi forum org docs mpi 3 0 mpi3
  • MPI 矩阵向量乘法返回有时正确有时奇怪的值

    我有以下代码 Start MPI MPI Init argc argv int size atoi argv 1 int delta 10 int rnk int p int root 0 MPI Status mystatus MPI C
  • Boost MPI 在监听列表时不会释放资源?

    这是一个后续问题如何释放 boost mpi request https stackoverflow com questions 44078901 how do i free a boostmpirequest 我在监听列表而不是单个项目时

随机推荐