[发明专利]基于消息传递的HPC大规模并行程序异常的检测系统有效

专利信息
申请号: 201610854431.3 申请日: 2016-09-27
公开(公告)号: CN106445781B 公开(公告)日: 2019-03-26
发明(设计)人: 刘轶;张国振 申请(专利权)人: 北京航空航天大学
主分类号: G06F11/30 分类号: G06F11/30;G06F11/32;G06F11/07
代理公司: 北京永创新实专利事务所 11121 代理人: 李有浩
地址: 100191*** 国省代码: 北京;11
权利要求书: 查看更多 说明书: 查看更多
摘要: 发明公开了一种基于消息传递的HPC大规模并行程序异常自动监测及软硬件原因判断的检测系统,该系统克服了集中式检测机制性能开销大,扩展性差的问题,通过对消息传递行为的异常监测,被动心跳机制为每个节点上的工作进程设置消息监控计时器,当消息行为发生异常时,才会向主控节点发送心跳消息,而在正常情况下,并不用发送心跳,从而避免了对网络资源的占用,扩展性也不会因此受限,利用可疑事件定位机制,只在需要的时候进行状态检查,本发明对MPI程序的执行所造成的性能开销可以忽略不计,易于扩展支持高性能计算机上的大规模并行应用程序在运行和调试阶段的运行错误软硬件原因的判断。
搜索关键词: 基于 消息 传递 hpc 大规模 并行 程序 异常 自动 监测 软硬件 原因 判断 检测 系统
【主权项】:
1.一种基于消息传递的HPC大规模并行程序异常自动监测及软硬件原因判断的检测系统,其特征在于:检测系统由服务初始化模块(1)、节点信息采集模块(2)、本地消息传递监测模块(3)、节点内心跳管理模块(4)、CLIENT端心跳检测模块(5)、SERVER端心跳检测模块(6)、CLIENT端可疑事件检测定位模块(7)、SERVER端可疑事件检测定位模块(8)、报告生成模块(9)和服务关闭模块(10)组成;服务初始化模块(1)用来初始化启动三个服务进程,即心跳检测服务、可疑事件检测定位服务和本地心跳管理服务;节点信息采集模块(2)收集HPC程序运行时的进程相关信息及各进程运行所在的节点相关信息;本地消息传递监测模块(3)监测本地工作进程中的消息传递操作,当存在消息传递发生时,生成一个请求重置计时器的通知,通过计时器超时警报该进程中消息传递的异常行为;节点内心跳管理模块(4)对同一个节点上运行的隶属于同一个HPC程序的多个工作进程的状态进行监测和管理,接收工作进程发送来重置计时器请求,重置计时器,当计时器超时时,向主控节点的SERVER端心跳检测模块(6)发送一条心跳消息;通过本地消息传递监测模块(3)结合节点内心跳管理模块(4)实现了在发现消息传递有可疑迹象时,才向外发送心跳消息,当心跳检测服务端接收到心跳信息时,则说明心跳发送方监控的工作进程中在一个监测期内没有发生消息传递操作,导致这种情况的原因有4种:原因A:MPI程序的代码可划分为两部分,计算代码区和通信代码区,计算代码区用于各种计算任务,通信代码区负责进程之间消息的传递,当工作进程执行计算代码花费的时间过长,那么监测期内很可能不会进行消息传递;原因B:程序错误导致本地工作进程出现了阻塞、死锁、异常退出的现象,工作进程无法正常进展下去导致不再发生消息传递操作;原因C:将相互通信的节点称为对等节点,相互通信的进程称为对等进程,某个节点上的工作进程发生异常有可能是由于对等进程的异常引起的,这种现象叫做错误的级联传播;对等节点上的对等进程由于程序错误而出现了阻塞、死锁、异常退出的现象,由于进程之间的相互影响,导致本地工作进程也出现了阻塞、死锁、异常退出的现象,监测期内不会发现消息传递;原因D:本地工作进程的对等节点发生了硬件系统故障,这种情况下,该对等节点上的工作进程异常结束,导致本地工作进程执行过程中发生阻塞、死锁或异常退出问题,不再发生消息传递操作;心跳检测模块包括SERVER端和CLIENT端两部分,之间采用TCP的方式建立连接进行消息的发送和接收;SERVER端位于主控节点上,等待接收来自各个工作节点的心跳消息,设定一个程序行为异常报警的心跳阈值,CLIENT端以函数调用的方式被实现,由各个工作节点上的本地心跳管理服务调用,向SERVER端发送心跳消息;SERVER端接收到的心跳消息数量超过心跳阈值时,判定当前程序执行过程中存在可疑事件发生导致程序行为异常,从而触发可疑事件探测定位;所述CLIENT端心跳检测模块(5)以静态库函数调用的形式实现,当节点内心跳管理模块(4)发现所在节点消息传递行为异常时,调用该函数调用,CLIENT端心跳检测模块(5)会与SERVER端心跳检测模块(6)建立起TCP socket连接,向SERVER端心跳检测模块(6)发送心跳信息;可疑事件探测定位模块也分为SERVER端和CLIENT端两部分,之间采用UDP的方式建立连接进行消息的发送和接收;SERVER端位于每个工作节点上,即由服务初始化模块在程序开始阶段启动的可疑事件探测定位服务,等待接收来自CLIENT端的探测请求并回复响应信息;CLIENT端位于主控节点上,以函数调用的方式实现,当触发可疑事件探测定位时,采用轮询地方式,向每个工作节点发送探测请求,获取各个节点的硬件系统状态;报告生成模块(9)记录可疑事件探测定位的结果,内容包括节点名、节点IP以及节点状态,即正常或者故障;当存在节点状态为故障时,判定导致HPC程序执行失效的原因为硬件系统故障,否则为软件错误引起的;服务关闭模块(10)将在程序执行结束后对服务初始化模块所启动的三个服务即心跳检测服务、可疑事件探测定位服务和本地心跳管理服务进行清理;原因是在初始化阶段,为了避免对HPC程序执行的影响,将这三个服务以独立进程的方式而非MPI进程的方式运行。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京航空航天大学,未经北京航空航天大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/patent/201610854431.3/,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top