MPI调试--出错信息整理

初次调试MPI程序,调用Send&Recv函数报错的解决方案 原因是客户端的防火墙没有关,需要把所有节点的防火墙都进行关闭操作,方可保证各节点进行通信。切记,以上命令一定要在所有节点上都操作一遍!!!再次运行程序,就能够正常跑通了! 阅读详情

如果是用FORTRAN写程序,建议加上implicit none,特别是代码比较多时,可以检查出编译过程中的很多问题。
1、

  • [root@c0108 parallel]# mpiexec -n 5 ./simple
  • aborting job:
  • Fatal error in MPI_Irecv: Invalid rank, error stack:
  • MPI_Irecv(143): MPI_Irecv(buf=0x25dab60, count=0, MPI_DOUBLE_PRECISION, src=5, tag=99, MPI_COMM_WORLD, request=0x7fffa02ca86c) failed
  • MPI_Irecv(95): Invalid rank has value 5 but must be nonnegative and less than 5
  • rank 4 in job 5  c0108_52041   caused collective abort of all ranks
  •   exit status of rank 4: return code 13


上面的意思是,进程号为5的无效,因为[root@c0108 parallel]# mpiexec -n 5 ./simple运行的时候,开了5个进程:0 1 2 3 4,所以一定是代码本身的问题,但不一定是某个进程号本身,也有可能是某个参数传递未成功等,MPI总会出现许多莫名的错误。。。
我的代码中MPI_Irecv语句有限,于是通过添加print语句的方法进行调试,找出错误代码所在的行,如下

print *, myid+1,'111111111111111111'!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

call MPI_Irecv(P(1,1,location),IMAX*JMAX*MIN(ITSP, ke-myke),
     &MPI_DOUBLE_PRECISION,MYID+1,RELY,MPI_COMM_WORLD,REQ,IERR)
2、
  • [root@c0109 test]# mpiexec -n 5 ./simple
  • rank 3 in job 22  c0109_51164   caused collective abort of all ranks
  •   exit status of rank 3: killed by signal 11
  • [root@c0109 test]#
  • 其中signal 11是段错误。Signal 11, or officially know as "segmentation fault", means that the program accessed a memory location that was not assigned. That's usually a bug in the program.


3、

  • [root@c0108 test]# mpirun -np 4 ./simple
  • aborting job:
  • Fatal error in MPI_Wait: Invalid MPI_Request, error stack:
  • MPI_Wait(139): MPI_Wait(request=0x7fff1f675228, status0x7fff1f675218) failed
  • MPI_Wait(75): Invalid MPI_Request
  • rank 2 in job 24  c0108_52041   caused collective abort of all ranks
  •   exit status of rank 2: return code 13

solution:

generally it's because MPI_Test of MPI_Wait is supplied a request thatis unknown to MPICH (the request wasn't the one returned by MPICH whenyou made the Isend/Irecv/send_init/recv_init)就是说MPI_Irecv没有和MPI_Wait(req,status,IERR)对应,句柄对错号了。。如果MPI_Wait()函数有很多,可以采用注释的方法一个个锁定错误。。。另外:如果是FORTRAN程序,请首先检查一下status变量定义:integer req,status(MPI_STATUS_SIZE),ierr


4、
aborting job: Fatal error in MPI_Init: Other MPI error, error stack: MPIR_Init_thread(195): Initialization failed MPID_Init(170): failure during portals initialization MPIDI_Portals_Init(321): progress_init failed MPIDI_PortalsI_Progress_init(653): Out of memory   


There is not enough memory on the nodes for the program plus MPI buffers to fit.


You can decrease the amount of memory that MPI is using for buffers by using MPICH_UNEX_BUFFER_SIZE environment variable.

欢迎批评指正,多多交流,谢谢!

MPI跨节点运行:Fatal error in PMPI_Barrier: Unknown error class, error stack: 问题: 在运行跨节点的MPI程序时,在没有使用同步函数(MPI_Barrier())时,程序可以正常运行,加入同步函数后,会出现下面的错误: Fatal error in PMPI_Barrier: Unknown error class, error stack: PMPI_Barrier(289).....................: MPI_Barrier(comm=MPI_COMM_WORLD) failed PMPI_Barrier(275)...................... 阅读详情

相关推荐

并行运算遇到的fatal error(已解决)

Fatal error in MPI_Sendrecv: Message truncated, error stack: MPI_Sendrecv(230).................: MPI_Sendrecv(sbuf=0x39837f0, scount=5776, MPI_BYTE, dest=4, stag=4, rbuf=0x3984e90, rcount=5776, MPI_BYTE, src=2, rtag=4, MPI_COMM_WORLD, status=0x715430) fai.

imastrid的博客 8784

Fatal error in PMPI_Init: Other MPI error, error stack:MPIR_Init_thread(138)

使用onepai 2021.3的编译器,编译程序后,用slurm调度系统跑作业报错:

小男孩儿的博客 7079

ANSYS AUTODYN 2020版并行计算新姿势:告别MPI的保姆级配置指南

本文详细介绍了ANSYS AUTODYN 2020版并行计算的全新配置方法。新版软件摒弃了以往依赖外部MPI的复杂流程,通过内置的共享内存并行机制,用户仅需在图形界面或命令行中简单设置,即可轻松激活多核CPU性能,大幅简化了爆炸、冲击等显式动力学问题的仿真流程,显著提升计算效率。

nokia的博客 995

Fatal error in MPI_Init: Other MPI error报错解决

在127.0.0.1 localhost后添加127.0.0.1 dggphis282828执行即可。比如我的host是root@dggphis282828,报错时我的/etc/hosts内容为。看了很多解决方法,最后亲测最简单明了的方法是在/etc/hosts文件中加入。

weixin_45383658的博客 2617

流场可视化工程dlb-dynamicdr部署日志:阶段五:实验室服务器程序运行

流场可视化工程dlb-dynamicdr部署日志:阶段五:实验室服务器程序运行2022-03-03当前环境:运行(阶段一:Init部分) 2022-03-03 当前环境: 运行(阶段一:Init部分) 先对Init部分进行测试,该部分主要是对nc文件进行读取以及初始化MPI参数。可以对照之前的读代码日志进行分析推进。 整理好数据,配置文件如下: <config repartition="1" trace_depth="2" num_blocks_per_proc="16" num_total_bl

qq_41953485的博客 516

Linux系统下Intel oneAPI HPC Toolkit安装避坑指南(附Base Toolkit配置)

本文提供了在Linux系统下安装和配置Intel oneAPI HPC Toolkit的详细避坑指南。文章重点解析了安装前的系统准备、Base Toolkit的静默安装技巧、HPC Toolkit的组件选择与网络问题破解,以及环境配置永久化和多版本管理方案,旨在帮助开发者高效部署Intel高性能计算工具栈,避免常见陷阱。

omega的博客 852

Slurm用法简介

Slurm =用于集群作业调度和资源管理管理 CPU、GPU/DCU、内存、节点、队列(Partition)用户通过作业脚本或命令行提交计算任务。

SmileHergo的博客 258

SLURM作业脚本编写实战:从基础参数到高级资源分配

本文是SLURM作业脚本编写的实战指南,从基础参数解析到高级资源分配技巧,系统讲解了如何为高性能计算任务编写高效脚本。内容涵盖单线程、多线程、MPI、GPU加速及阵列作业等典型场景,并提供了常见错误排查方法,帮助用户充分利用服务器资源,提升超算平台使用效率。

weixin_29290963的博客 384

对一并行程序实验的简单理解

title: “对一并行程序实验的简单理解” excerpt: “关于MPI编程的一点技巧,以及对矩阵优化的一些简单理解” type: posts classes: categories categories: MPI&OpenMP tags: MPI header: overlay_image: “/assets/img/teaser2.jpg” 写在前面 使用一维数组 在写并行程序时,会遇到很多针对矩阵、张量的计算,尽管它们都是以多维数组的方式组合在一起,但一般情况下,我更加倾向于使用.

df12138的博客 541

SPECFEM3D Ubuntu安装全流程:从环境校验到GPU验证

SPECFEM3D 是面向地震波三维数值模拟的高性能科学计算软件,其本质是基于弹性波方程的大规模并行有限元求解器。它依赖 Fortran/C 混合编译、MPI 并行通信、SCOTCH 图划分与 HDF5 高效 I/O 等底层技术栈,对操作系统、编译器链、数学库和硬件架构具有强耦合性。因此,安装过程远非常规软件部署,而是涉及系统级适配的科研基础设施工程。技术价值体现在支撑高精度地球物理建模、大规模地震动仿真及 GPU 加速计算;典型应用场景包括区域尺度地震波传播模拟、震源反演预处理、HPC 集群生产环境部署等

weixin_34161083的博客 380

Hi3559平台ISP调试实战:从参数配置到画质优化

本文详细介绍了Hi3559平台ISP调试的实战技巧,从基础概念到画质优化,涵盖参数配置、HiTool调试及多摄像头协同处理方案。通过实际案例分享,帮助开发者快速掌握Hi3559平台的ISP模块调试方法,提升图像处理效果与性能优化。

weixin_29179311的博客 107

Mbed TLS错误代码全解析:从原理到实战的嵌入式TLS调试指南

在嵌入式系统与物联网(IoT)开发中,安全通信是核心需求,而TLS/SSL协议是实现数据传输加密与身份验证的基石。Mbed TLS作为一款轻量级、可移植的开源加密库,因其对资源受限环境的友好性,成为嵌入式TLS实现的热门选择。其工作原理基于模块化设计,通过预定义的错误代码体系来报告运行时状态与问题,这对于诊断网络握手、证书验证等复杂流程至关重要。理解这套错误代码体系的技术价值在于,它能将晦涩的十六进制编码转化为明确的故障定位,极大提升开发调试效率。无论是设备上云、安全启动还是远程管理,在涉及加密通信的应用场

dgoh41514的博客 424

QQ群78928780记录整理:90523技术话题-部分

ad198622的专栏 565

别再折腾了!5分钟搞定Ubuntu 22.04上OpenMPI的完整安装与验证(附CMA警告一键修复)

本文提供了一份极简、无痛的OpenMPI安装指南,帮助开发者在Ubuntu 22.04上快速搭建并行计算环境。通过APT安装、智能脚本配置、深度验证和CMA警告一键修复,5分钟内即可完成完整安装与验证,大幅提升开发效率。

weixin_30608503的博客 252

Ubuntu 22.04下5分钟搞定MPICH 4.0.3安装(附常见错误解决方案)

本文提供了在Ubuntu 22.04系统上快速安装MPICH 4.0.3的两种实战方案:APT极速安装与源码编译安装。文章详细对比了两种方法的优劣,并附带了从环境准备、配置编译到验证测试的完整步骤,重点解析了“No targets specified”等常见错误的根源与解决方案,旨在帮助用户高效部署稳定的并行计算环境。

ttt77的博客 995

ROSCO-OpenFAST联合仿真避坑实录:从.dll编译到Paraview动画,手把手解决路径与版本报错

本文详细解析了ROSCO-OpenFAST联合仿真中的常见问题,从.dll编译到Paraview动画生成,提供了一套完整的排障指南。内容包括环境准备、控制器集成、数据可视化等关键环节的实战技巧,帮助用户快速解决路径与版本报错问题,提升仿真效率。

weixin_27215337的博客 377

MPAS-A大气模式:从非结构化网格到全球气候模拟的实战指南

数值模式是大气科学和气候研究的核心工具,它基于物理方程组,通过离散化计算来模拟和预测天气气候系统的演变。其基本原理是将连续的大气状态离散到网格点上进行数值求解。传统结构化网格在区域模拟中存在边界效应和极地计算效率问题,而非结构化网格技术通过可变分辨率设计,实现了计算资源的智能分配,在关键区域自动加密网格,同时保持全球模拟的无缝衔接,极大提升了模拟精度和效率。这一技术价值在于为高分辨率区域气候降尺度、台风精细结构模拟等研究提供了更自洽的框架。MPAS-A(跨尺度预报大气模式)正是这一技术的杰出代表,它采用非结

cmff98425的博客 480

C++ Primer Plus习题实践指南:从环境搭建到项目实战

C++作为一门核心的系统编程语言,其学习过程往往伴随着从理论理解到动手实践的挑战。理解变量、函数、类等基础概念是第一步,但真正掌握C++的关键在于通过实践将知识内化,这涉及到内存管理、多态、模板等高级特性的实际运用。对于学习者而言,配置一个高效的开发环境是首要任务,例如使用GCC或MSVC编译器,并搭配Visual Studio Code等现代编辑器进行代码编写与调试。通过系统地完成教材习题和运行示例代码,学习者能够跨越从“看懂”到“会写”的鸿沟,尤其对于指针、动态内存、STL等难点,结合“错题本”和分阶段

weixin_33933118的博客 297
上一篇: FORTRAN “ multiple definition of `MAIN__'”
下一篇: MPI程序调试--笔记
zhuliting
博客等级 码龄18年 350粉丝 208原创
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值