[发明专利]一种远程并行程序调试系统中基于树形的消息聚集方法无效
申请号: | 201010524824.0 | 申请日: | 2010-10-27 |
公开(公告)号: | CN102023920A | 公开(公告)日: | 2011-04-20 |
发明(设计)人: | 伍卫国;樊源泉;赵海祥;王恩东;公维锋 | 申请(专利权)人: | 西安交通大学;浪潮(北京)电子信息产业有限公司 |
主分类号: | G06F11/36 | 分类号: | G06F11/36;G06F9/46 |
代理公司: | 西安智大知识产权代理事务所 61215 | 代理人: | 贺建斌 |
地址: | 710049 陕*** | 国省代码: | 陕西;61 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 一种远程并行程序调试系统中基于树形的消息聚集方法,首先构建一种树形调试框架,再为树形调试框架中除根结点外的其他结点绑定串行调试工具gdb,然后把调试进程分配到该框架的同一棵子树中,最后根控制器按照该框架逐层把调试命令分发到位于树形调试框架中各个结点的gdb进程,调试操作结束后,由gdb进程所在结点的叶子控制器把调试结果产生的消息返回给其父亲结点调试控制器,该控制器在收到其所有孩子结点返回的消息后,将其聚集成四类消息之一,返回给其父亲结点调试控制器进行聚集,再返回到根控制器并进行聚集,并把聚集后的消息封装成ip数据包发送至客户端,本发明具有系统并发性高、通信量少、响应时间短的优点。 | ||
搜索关键词: | 一种 远程 并行 程序 调试 系统 基于 树形 消息 聚集 方法 | ||
【主权项】:
一种远程并行程序调试系统中基于树形的消息聚集方法,其特征在于:包括以下步骤:第一步,构造树形的调试框架,根据调试进程数n,其中n的取值为:1≤n,构造一棵n+1个结点的树,树的度可以手动设置为c,其中c的取值为:1≤c≤n,按照从0到n‑1的顺序依次为每个调试进程分配一个消息传递接口MPI的唯一编号rank,把进程编号rank值为n+1的结点设置为树形调试框架的根结点,即根控制器MainController所在的结点,把位于同一个调试进程集的待调试进程分配到树形调试框架中同一个子树中,树形调试框架中除去根结点和叶子外的每个结点构成中间控制器MidController,其中每个结点的度为r,r的取值为:1≤r≤c,子结点即叶子控制器LeafController只接收调试命令并负责并行程序的调试信息收集,然后求出树形调试框架中每个结点的父亲、孩子和子孙结点的进程编号rank,分别将其存放于父结点parent、孩子结点children和后代结点descendents的数据结构中,最后为树形调试框架中除根结点外的每个结点启动一个串行gdb调试进程,而根结点只负责调试命令的转发和调试结果消息的接收聚集;第二步,调试命令的接收和转发,来自客户端的调试命令首先被发送到树形调试框架的根控制器MainController,根控制器MainController接收到命令后,对命令进行分析,并根据其孩子结点children数据结构中记录的进程编号rank,按照广度优先策略依次把调试命令转发给中间控制器MidController,中间控制器MidController接收到调试命令后,首先把自身的进程编号rank与调试命令中的进程编号rank进行比较:相等,则传递命令给自身绑定的串行调试器gdb进程,串行调试器gdb进程执行该调试命令;不相等,则根据其孩子结点children数据结构中记录的进程编号rank值,按照广度优先的策略依次把调试命令转发给属于其孩子结点children的中间控制器MidController,其余结点采用相同的方法,直到该调试命令转发到位于树形调试框架叶子结点的叶子控制器LeafController,此时,叶子控制器LeafController把各自的调试命令传递给自身绑定的串行调试器gdb进程,以执行调试任务;第三步,消息的聚集,每个串行调试器gdb执行完各自接收到的调试命令后,会以消息的方式返回调试进程执行的结果,但是这些消息中并没有进程的标识,为了对消息进行区分,使用产生消息数据的那个调试进程的编号作为该条消息的头部标记,这个整数值标记是全局唯一的,用中括号“[]”包括起来放在该消息的头部,以区别于消息正文,如果一个消息正文属于多个进程,则在头部的中括号“[]”里列出每个调试进程的编号,编号间用“,”隔开,语法格式如下:|[process‑idj,…,process‑idk]*mi_result其中:符号“|”隔开不同消息,process‑idj是调试进程的rank值,mi_result是消息正文,也就是单个调试进程返回的调试结果数据,在对调试进程执行结果所产生的消息数据进行聚集时,把消息分成四种情况,分别对应四种消息聚集方法:第一类,数据部分完全相同的消息,指所有进程返回的消息完全相同,这类消息在合并的时候,只需保留一条,在此消息前面加上进程号,以表示是哪些进程产生了这个消息;第二类,数据部分不完全相同的消息,指调试结果result里至少有一个调试数据值value不同,其余的调试数据值value都相同,对这类消息处理时,将不同的调试数据值value都列出来,值之间用“,”隔开,在每一个值前面加上中括号“[]”,“[]”中列出该值所属的每一个进程号,进程号之间也用“,”隔开;第三类,数据部分完全不同的消息,此处的不同是指消息不属于第一、第二类的情况,此类消息不进行聚集操作,处理的方法是在每条消息的前面加上该消息所属调试进程的编号,前后两条消息之间用“|”隔开;第四类,针对多条消息而言,部分属于第一、二类,另一部分属于第三类,处理的方法是组合第二类和第三类的处理方法,把其中相同的消息按照第二类合并,对于完全不同的消息,在其前加上“[]”,“[]”中列出该消息所属的进程号,作为单独的一条消息,前后两条消息之间用“|”隔开;第四步,调试结果的返回,gdb调试进程执行完调试命令后,由该gdb进程所在结点的叶子控制器LeafController根据其父亲结点parent数据结构中记录的父亲结点parent进程编号rank,向父亲结点parent返回调试结果,父亲结点parent接收到其所有孩子结点children返回的调试结果后,与其自身绑定的调试器返回的结果按照第三步的聚集方法进行消息的聚集操作,然后根据其自身的父亲结点parentparent数据结构中记录的父亲结点parent进程编号rank,向其父亲结点parent返回调试结果,其他结点类似,直到根控制器MainController接收到其所有后代结点descendents返回的调试结果后,按照第三步的聚集方法,对消息进行聚集操作,并把聚集后的消息封装成IP数据包格式,发送至客户端。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于西安交通大学;浪潮(北京)电子信息产业有限公司,未经西安交通大学;浪潮(北京)电子信息产业有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201010524824.0/,转载请声明来源钻瓜专利网。
- 上一篇:一种用于钢包喷粉精炼工艺的脱硫粉剂及其生产方法
- 下一篇:固件切换的检测方法