发明名称 一种基于内存缓存技术的多核系统容错方法
摘要 本发明公开了一种基于内存缓存技术的多核系统容错方法,目的是解决检查点过程中对I/O资源的突发性需求,减少检查点操作的时间。技术方案是部署并行计算机系统时为每个并行任务部署一个帮助线程,操作系统中的系统容错模块将计算线程的中间运行状态保存到内存,帮助线程将内存的中间运行状态保存到磁盘I/O系统。当应用程序出现错误情况下,帮助线程和统容错模块使用保存的中间运行状态恢复应用程序运行。本发明利用现有并行计算机丰富的CPU和内存资源,实现了计算和容错的并行,显著降低了系统级检查点的容错时间,提高了I/O磁盘系统的稳定性。
申请公布号 CN102147755B 申请公布日期 2012.07.04
申请号 CN201110093904.X 申请日期 2011.04.14
申请人 中国人民解放军国防科学技术大学 发明人 易会战;李春江;黄春;杨灿群;赵克佳;杜云飞;彭林;陈娟;王锋;左克
分类号 G06F11/14(2006.01)I 主分类号 G06F11/14(2006.01)I
代理机构 国防科技大学专利服务中心 43202 代理人 郭敏
主权项 一种基于内存缓存技术的多核系统容错方法,其特征在于基于内存缓存技术的多核系统容错方法分为两个阶段:第一阶段是应用程序运行期间对作业中间运行状态保存的阶段,称为检查点阶段,第二阶段是当应用程序出现错误情况下,使用保存的中间运行状态恢复应用程序运行的阶段,称为恢复阶段,第一阶段包括第一步至第四步,第二阶段包括第五步至第七步,具体步骤如下:第一步,部署并行计算机系统硬件和软件,方法是:1.1部署多个计算节点、一个管理节点和一个磁盘I/O系统,计算节点完成计算功能,一个计算节点由多个处理器和一个共享的存储器构成,每个处理器包括偶数个处理器核;管理节点完成系统管理功能;磁盘I/O系统保存应用程序和数据;1.2通过网络完成连接:计算节点之间由高速计算网络连接,通过高速计算网络进行计算过程中的通信;计算节点、管理节点和磁盘I/O系统之间通过存储网络连接,通过存储网络向磁盘I/O系统传输程序、数据;计算节点、磁盘I/O系统和管理节点之间通过管理网络连接,管理节点通过管理网络提交作业,维护计算节点和I/O系统;1.3软件部署:计算节点上安装有操作系统、作业管理系统、通信库和全局文件系统,操作系统内核模块中含系统容错模块;管理节点安装有作业管理系统和全局文件系统,磁盘I/O系统安装有全局文件系统;作业由计算节点上协作运行的多个并行任务组成,作业管理系统通过管理网络将并行任务提交给计算节点运行,并负责管理并行任务;计算节点上的每个并行任务 除了包括一个计算线程以外,还包括一个用于支持容错的帮助线程,帮助线程在检查点阶段将缓存在内存的中间运行状态保存到磁盘I/O系统,在恢复阶段将中间运行状态从磁盘I/O系统读入到内存;第二步,作业管理系统提交并行任务:2.1管理节点的作业管理系统与计算节点的作业管理系统通信,请求在计算节点生成N个并行任务,计算节点的作业管理系统根据请求生成并行任务;在多个计算节点启动的并行任务通过通信库使用高速计算网络通信,通信库在并行任务启动时为该并行任务分配逻辑编号ID,ID的范围为0~N‑1,其中N为并行任务数,N小于等于处理器核数的一半;2.2并行任务的计算线程完成计算功能;2.3计算节点上具有逻辑编号ID的并行任务的帮助线程建立与逻辑编号为ID+1和逻辑编号为ID‑1的并行任务的帮助线程之间的连接,ID不包括0和N‑1;逻辑编号为0的并行任务的帮助线程只与逻辑编号为1的并行任务的帮助线程建立连接,逻辑编号为N‑1的并行任务的帮助线程只与逻辑编号为N‑2的并行任务的帮助线程建立连接,这样建立了所有并行任务的帮助线程的一个排序,顺序就是逻辑编号的顺序;2.4并行任务的帮助线程进入睡眠状态,准备从计算线程接收检查点保存请求;第三步,系统容错模块保存计算线程的中间运行状态,过程如下:3.1管理节点的作业管理系统通知计算节点作业管理系统开始检查点操作,计算节点作业管理系统向本地并行任务发送信号,启动检查点操作;3.2并行任务收到检查点信号后,暂停计算线程的计算,系统容错模块 清空通信库建立的通信通道中的数据,保留全部待发送和已接收但未处理的消息数据,关闭通信通道;3.3系统容错模块检查内存是否具有足够的空间用于保存计算线程的中间运行状态,如果有足够空间,执行3.5;如果没有足够空间,执行3.4;3.4计算线程进入睡眠状态,执行3.5;3.5本地并行任务使用系统容错模块将计算线程的中间运行状态保存在内存,打开通信通道,唤醒帮助线程,恢复计算线程为运行状态;3.6计算线程运行;第四步,帮助线程保存计算线程的中间运行状态,过程如下:4.1帮助线程睡眠等待;4.2帮助线程被计算线程唤醒后检查内存,查找是否有尚未保存到磁盘I/O系统的计算线程的中间运行状态;如果没有计算线程的中间运行状态需要保存,执行4.1;如果有计算线程的中间运行状态需要保存,执行4.3;4.3根据磁盘I/O系统稳定运行最大支持的客户节点数目M,M为正整数,计算节点的帮助线程依逻辑编号ID的排序,依照ID由小到大的顺序,依次将内存的计算线程的中间运行状态保存到磁盘I/O系统,每次最大并发保存的帮助线程数限制不超过M,M的值根据对磁盘I/O系统的测试获得;4.4帮助线程唤醒等待检查点完成的计算线程,执行4.1;第五步,建立并行任务结构,方法是:5.1根据并行任务的计算线程的中间运行状态的保存位置,作业管理系统提取对应的作业运行参数,包括作业之前运行的并行任务总数TN、每个节点运行的并行任务数LN,然后分配TN/LN个计算节点,通知计算节点上 的作业管理系统启动并行任务,TN和LN均为正整数;5.2计算节点上的管理服务进程启动并行任务,并行任务包括两个线程,也就是计算线程和帮助线程,这里的计算线程只具有操作系统线程的内核状态部分,用户状态部分需要从以前保存的计算线程的中间运行状态恢复;5.3计算线程进入睡眠状态,等待帮助线程唤醒;5.4采用步骤2.3所述的方法,帮助线程根据并行任务的逻辑ID构成一个排序;第六步,帮助线程将内存的中间运行状态进行恢复,方法是:6.1根据磁盘I/O系统稳定运行最大支持的客户节点数目M,计算节点的帮助线程依逻辑编号ID的排序,依照ID由小到大的顺序,依次将磁盘I/O系统中计算线程的中间运行状态读入到内存,每次最大并发读取的帮助线程数限制不超过M;6.2帮助线程通知系统容错模块恢复运行状态,帮助线程转入睡眠状态;第七步,系统容错模块将计算线程进行恢复,方法是:7.1系统容错模块恢复计算线程的处理器状态、寄存器信息、内存信息,然后打开通信库的通信通道;7.2系统容错模块将计算线程转移到执行状态,继续计算线程的执行。
地址 410073 湖南省长沙市开福区德雅路109号