一种适用于监控MPI并行软件的通信方法技术

技术编号:9854599 阅读:129 留言:0更新日期:2014-04-02 18:00
一种适用于监控MPI并行软件的通信方法,包括MPI通信进程、MPI计算进程和上位机监控软件,MPI通信进程又包括OpenMP命令线程和状态线程,步骤如下:1、MPI通信进程接收上位机监控软件的命令,并将该命令以非阻塞方式转发给MPI计算进程;2、MPI计算进程接收MPI通信进程发送的命令并执行该命令控制计算任务,定时或事件驱动将状态信息发送至MPI通信进程;3、MPI通信进程接收MPI计算进程的状态信息,并将该状态信息转发给上位机监控软件;本发明专利技术实现上位机监控软件对多个MPI进程组成的并行软件进行监控,并且达到几乎不影响并行软件计算性能的目的。

【技术实现步骤摘要】
一种适用于监控MPI并行软件的通信方法
本专利技术涉及一种适用于监控MPI(消息传递接口)并行软件的通信方法,适用于MPI并行软件的工程化应用,属于计算机并行计算领域。
技术介绍
目前,基于MPI规范的高性能集群是应用较为广泛的并行计算平台。MPI并行软件通过多个MPI进程同时运行于通过高速网络互连的多台计算机上而获得高效的计算性能。目前,开发MPI并行软件来实现大数据量、大计算量的任务是很普遍的方案。但是,常用的开发平台是基于远程的集群系统,多数安装Linux操作系统。任务提交后往往在被动的等待完成,程序设计者重视软件执行性能而忽略软件运行过程中与用户交互的环节。目前,工程应用中越来越多的数据处理平台采用MPI高性能集群。而MPI并行软件的工程化应用存在以下问题:1、缺少与用户界面交互功能的设计思路;2、多MPI进程运行于分布式集群的多台节点间的特点造成通信模式设计有难度;3、通信和计算功能相互影响和制约,如何让实时通信功能最少的影响计算性能是难点。因此,需要设计一个有效的通信模型,解决上述问题和难点,提高MPI并行软件在工程化应用中的速度。
技术实现思路
本专利技术的技术解决问题是:克服现有技术的不足,提供了一种适用于监控MPI并行软件的通信方法,解决了上位机监控软件对运行于多台计算机集群中的MPI并行软件进行实时监控的问题,并且达到几乎不影响并行软件计算性能的效果。本专利技术的技术解决方案是:一种适用于监控MPI并行软件的通信方法,包括MPI通信进程、MPI计算进程和上位机监控软件,MPI通信进程又包括OpenMP命令线程和状态线程,具体方法步骤如下:(1)MPI通信进程接收上位机监控软件的命令,并将该命令以非阻塞方式转发给MPI计算进程;(2)MPI计算进程接收MPI通信进程发送的命令并执行该命令控制计算任务,定时(如1秒一次)或事件驱动(包括计算任务启动或计算任务结束等事件)将状态信息发送至MPI通信进程;(3)MPI通信进程接收MPI计算进程的状态信息,并将该状态信息转发给上位机监控软件;MPI通信进程接收和发送上位机监控软件命令的方法步骤如下:(1.1)OpenMP命令线程判断是否退出MPI通信进程,若退出则进入步骤(1.2),否则进入步骤(1.3);(1.2)OpenMP命令线程释放资源并进入步骤(1.5);(1.3)OpenMP命令线程判断是否接收到上位机监控软件的命令,若没有接收到则OpenMP命令线程挂起一定时间后进入步骤(1.1);若接收到则进入步骤(1.4);(1.4)OpenMP命令线程对上位机监控软件发送的命令进行解析,并将该命令以非阻塞方式发送到MPI计算进程,同时OpenMP命令线程等待非阻塞发送完成,当非阻塞发送完成后向上位机监控软件发送命令应答,并进入步骤(1.1);(1.5)退出进程;MPI计算进程接收命令和发送状态信息方法步骤如下:(2.1)MPI计算进程判断是否退出MPI计算进程,若退出则进入步骤(2.2),否则进入步骤(2.3);(2.2)MPI计算进程释放资源并进入步骤(2.12);(2.3)MPI计算进程判断是否存在步骤(1.4)中OpenMP命令线程发送的命令需要接收,若存在则进入步骤(2.4),否则进入步骤(2.5);(2.4)启动非阻塞接收步骤(1.4)中OpenMP命令线程发送的命令;(2.5)MPI计算进程判断是否有正在进行的计算任务,若没有则进入步骤(2.7);若有则进入步骤(2.6);(2.6)MPI计算进程进行一定时间任务计算后进入步骤(2.7);(2.7)判断是否启动非阻塞接收OpenMP命令线程发送的命令,若启动则进入步骤(2.8),否则进入步骤(2.10);(2.8)等待非阻塞接收OpenMP命令线程发送的命令完成;(2.9)MPI计算进程对接收到的命令进行解析并执行该命令;(2.10)判断是否需要上报状态信息,若需要则进入步骤(2.11),否则进入步骤(2.1);(2.11)非阻塞发送当前状态信息并进入步骤(2.1);(2.12)退出进程;MPI通信进程接收和发送状态信息的方法步骤如下:(3.1)OpenMP状态线程判断是否退出MPI通信进程,若退出则进入步骤(3.2),否则进入步骤(3.3);(3.2)OpenMP状态线程释放资源并进入步骤(3.6);(3.3)OpenMP状态线程判断是否存在(2.11)中的需要上报的当前状态信息,若不存在则OpenMP状态线程挂起一定时间后进入步骤(3.1);若存在则进入步骤(3.4);(3.4)OpenMP状态线程接收MPI计算进程上报的状态信息,并解析重组该状态信息;(3.5)OpenMP状态线程将步骤(3.4)中解析重组的状态信息上报上位机监控软件并进入步骤(3.1);(3.6)退出进程。所述步骤(1)(2)和(3)并行进行;所述的OpenMP命令线程和OpenMP状态线程是在MPI通信进程中通过OpenMP的并行Sections标识语句实现并行线程。所述的MPI通信进程与上位机监控软件若采用网络进行通信,则MPI通信进程运行在固定IP地址的集群节点上,若MPI通信进程与上位机监控软件采用共享内存进行通信,MPI通信进程和上位机监控软件运行在同一台计算机。所述步骤(1.3)和(3.3)中的一定时间为(1-10)us。本专利技术与现有技术相比的有益效果是:(1)本专利技术设定MPI并行软件中多个MPI进程在通信方法中的角色:通信进程和计算进程,设定MPI通信进程后,相当于设立了MPI并行软件的“通信中心”,上位机监控软件只需要与一个MPI通信进程通信即可,屏蔽了MPI多进程动态分布运行的特征,实现了上位机监控软件对运行于多台计算机集群中的MPI并行软件的实时监控。(2)本专利技术采用非阻塞方式查询是否有命令到达、非阻塞接收命令信息、非阻塞查询命令是否接收完成和非阻塞发送状态信息等手段使通信功能不阻塞计算任务流程,提高计算功能的优先级,从而确保计算任务性能。(3)本专利技术采用MPI非阻塞查询是否有新状态信息达到和非阻塞接收方式以及循环流程中加入“线程挂起一小段时间”,合理地利用了进程资源,提高了效率;MPI通信进程向上位机监控软件上报状态信息时采用网络阻塞发送或写共享内存状态区方式,保证状态信息可靠的被上报。附图说明图1为本专利技术通信方法的结构图;图2为本专利技术MPI通信进程接收和发送命令流程图;图3为本专利技术MPI通信进程接收和发送状态信息流程图;图4为本专利技术MPI计算进程接收命令和发送状态信息流程图。具体实施方式下面结合附图对本专利技术的具体实施方式进行进一步的详细描述。本专利技术是一种适用于监控MPI并行软件的通信方法,便于在工程应用中实现上位机监控软件监控MPI并行软件的功能,并且达到几乎不影响并行软件计算性能的目的。如图1所示,本专利技术设定多个MPI进程在通信方法中的角色,包括MPI通信进程、MPI计算进程和上位机监控软件,MPI通信进程又包括OpenMP命令线程和状态线程,其中OpenMP命令线程和OpenMP状态线程是在MPI通信进程中通过OpenMP的并行Sections标识语句实现并行线程。由于MPI并行软件运行于多台通过网络互联的分布式计算机集群环境中,每个进程运行在哪台计算机可以在启动软件时通过改变本文档来自技高网...
一种适用于监控MPI并行软件的通信方法

【技术保护点】
一种适用于监控MPI并行软件的通信方法,包括MPI通信进程、多个MPI计算进程和上位机监控软件,MPI通信进程又包括OpenMP命令线程和状态线程,其特征在于步骤如下:(1)MPI通信进程接收上位机监控软件的命令,并将该命令以非阻塞方式发送给MPI计算进程;(2)MPI计算进程接收MPI通信进程发送的命令并执行该命令控制计算任务,定时或事件驱动将状态信息发送至MPI通信进程;(3)MPI通信进程接收MPI计算进程的状态信息,并将该状态信息转发给上位机监控软件;所述步骤(1)、(2)和(3)并行进行;MPI通信进程接收和发送上位机监控软件命令的方法步骤如下:(1.1)OpenMP命令线程判断是否退出MPI通信进程,若退出则进入步骤(1.2),否则进入步骤(1.3);(1.2)OpenMP命令线程释放资源并进入步骤(1.5);(1.3)OpenMP命令线程判断是否接收到上位机监控软件的命令,若没有接收到则OpenMP命令线程挂起一定时间后进入步骤(1.1);若接收到则进入步骤(1.4);(1.4)OpenMP命令线程对上位机监控软件发送的命令进行解析,并将该命令以非阻塞方式发送到MPI计算进程,同时OpenMP命令线程等待非阻塞发送完成,当非阻塞发送完成后向上位机监控软件发送命令应答,并进入步骤(1.1);(1.5)退出进程;MPI计算进程接收命令和发送状态信息方法步骤如下:(2.1)MPI计算进程判断是否退出MPI计算进程,若退出则进入步骤 (2.2),否则进入步骤(2.3);(2.2)MPI计算进程释放资源并进入步骤(2.12);(2.3)MPI计算进程判断是否存在步骤(1.4)中OpenMP命令线程发送的命令需要接收,若存在则进入步骤(2.4),否则进入步骤(2.5);(2.4)启动非阻塞接收步骤(1.4)中OpenMP命令线程发送的命令;(2.5)MPI计算进程判断是否有正在进行的计算任务,若没有则进入步骤(2.7);若有则进入步骤(2.6);(2.6)MPI计算进程进行一定时间任务计算后进入步骤(2.7);(2.7)判断是否启动非阻塞接收OpenMP命令线程发送的命令,若启动则进入步骤(2.8),否则进入步骤(2.10);(2.8)等待非阻塞接收OpenMP命令线程发送的命令完成;(2.9)MPI计算进程对接收到的命令进行解析并执行该命令;(2.10)判断是否需要上报状态信息,若需要则进入步骤(2.11),否则进入步骤(2.1);(2.11)非阻塞发送当前状态信息并进入步骤(2.1);(2.12)退出进程;MPI通信进程接收和发送状态信息的方法步骤如下:(3.1)OpenMP状态线程判断是否退出MPI通信进程,若退出则进入步骤(3.2),否则进入步骤(3.3)(3.2)OpenMP状态线程释放资源并进入步骤(3.6);(3.3)OpenMP状态线程判断是否存在(2.11)中的需要上报的当前状态信息,若不存在则OpenMP状态线程挂起一定时间后进入步骤(3.1);若存在则进入步骤(3.4);(3.4)OpenMP状态线程接收MPI计算进程上报的状态信息,并解析重组该状态信息;(3.5)OpenMP状态线程将步骤(3.4)中解析重组的状态信息上报上 位机监控软件并进入步骤(3.1)(3.6)退出进程。...

【技术特征摘要】
1.一种适用于监控MPI并行软件的通信方法,包括MPI通信进程、多个MPI计算进程和上位机监控软件,MPI通信进程又包括OpenMP命令线程和状态线程,其特征在于步骤如下:(1)MPI通信进程接收上位机监控软件的命令,并将该命令以非阻塞方式发送给MPI计算进程;(2)MPI计算进程接收MPI通信进程发送的命令并执行该命令控制计算任务,定时或事件驱动将状态信息发送至MPI通信进程;(3)MPI通信进程接收MPI计算进程的状态信息,并将该状态信息转发给上位机监控软件;所述步骤(1)、(2)和(3)并行进行;MPI通信进程接收和发送上位机监控软件命令的方法步骤如下:(1.1)OpenMP命令线程判断是否退出MPI通信进程,若退出则进入步骤(1.2),否则进入步骤(1.3);(1.2)OpenMP命令线程释放资源并进入步骤(1.5);(1.3)OpenMP命令线程判断是否接收到上位机监控软件的命令,若没有接收到则OpenMP命令线程挂起一定时间后进入步骤(1.1);若接收到则进入步骤(1.4);(1.4)OpenMP命令线程对上位机监控软件发送的命令进行解析,并将该命令以非阻塞方式发送到MPI计算进程,同时OpenMP命令线程等待非阻塞发送完成,当非阻塞发送完成后向上位机监控软件发送命令应答,并进入步骤(1.1);(1.5)退出进程;MPI计算进程接收命令和发送状态信息方法步骤如下:(2.1)MPI计算进程判断是否退出MPI计算进程,若退出则进入步骤(2.2),否则进入步骤(2.3);(2.2)MPI计算进程释放资源并进入步骤(2.12);(2.3)MPI计算进程判断是否存在步骤(1.4)中OpenMP命令线程发送的命令需要接收,若存在则进入步骤(2.4),否则进入步骤(2.5);(2.4)启动非阻塞接收步骤(1.4)中OpenMP命令线程发送的命令;(2.5)MPI计算进程判断是否有正在进行的计算任务,若没有则进入步骤(2.7);若有则进入步骤(2.6);(2.6)...

【专利技术属性】
技术研发人员:苏丽刘斌陈蓉刘文俊王静温
申请(专利权)人:北京遥测技术研究所 航天长征火箭技术有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1