首页> 中国专利> 一种基于随机延迟缓解I/O瓶颈的大规模并行系统检查点数据写入方法

一种基于随机延迟缓解I/O瓶颈的大规模并行系统检查点数据写入方法

摘要

本发明公开了一种基于随机延时缓解I/O瓶颈的大规模并行系统检查点数据写入方法,该方法将检查点数据暂时缓存在内存之中,使checkpoint主流程可以立即返回,实现写入过程的分离,从而缩短了检查点数据操作过程中全局停止的时间。本发明使用随机延迟checkpoint文件处理方法确定预设延迟写入时间,将写入操作在时间上进行分散,从而减少同一时刻I/O写入峰值,达到缓解I/O瓶颈的目的。在大规模并行系统执行I/O操作之前,周期性探测大规模并行系统的关联数据信息,若影响到应用程序的运行,则放弃延时操作立即执行写入操作,避免长时间占用共享资源影响应用程序的正常运行;反之,则继续按确定的延时写入时间写入。本发明可以使应用在不同系统平台上相对于传统集中式写入模式对I/O子系统造成的压力减小,获得更高的吞吐率和更短的全局阻塞时间。

著录项

  • 公开/公告号CN108491159A

    专利类型发明专利

  • 公开/公告日2018-09-04

    原文格式PDF

  • 申请/专利权人 北京航空航天大学;

    申请/专利号CN201810188654.X

  • 发明设计人 刘轶;孙庆峥;朱延超;

    申请日2018-03-07

  • 分类号

  • 代理机构北京永创新实专利事务所;

  • 代理人李有浩

  • 地址 100191 北京市海淀区学院路37号

  • 入库时间 2023-06-19 06:24:22

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2023-02-28

    未缴年费专利权终止 IPC(主分类):G06F 3/06 专利号:ZL201810188654X 申请日:20180307 授权公告日:20200717

    专利权的终止

  • 2020-07-17

    授权

    授权

  • 2018-09-28

    实质审查的生效 IPC(主分类):G06F3/06 申请日:20180307

    实质审查的生效

  • 2018-09-04

    公开

    公开

说明书

技术领域

本发明涉及一种高性能计算领域动态调节检查点(Checkpoint)数据最佳写入时机的处理方法,更特别地说,是指一种涉及大规模并行系统中缓解检查点数据集中写入导致I/O瓶颈的检查点数据写入控制方法。

背景技术

高性能计算大多采用大规模的并行计算模式,高性能计算系统在硬件基础架构上包含计算节点、网络互连和存储系统三大部分。其中计算节点负责运行计算任务,网络互连实现计算节点间及计算节点与存储系统间的互连,而存储系统包括多个I/O节点和外部存储设备,I/O节点运行并行文件系统,响应计算节点的读写请求,并实现对外部存储设备的管理和调度。

随着高性能计算系统规模的不断扩大,并行程序使用大量的计算节点长时间运行时,通常会伴随着部分节点中软件或是硬件错误的发生,这给系统的可靠性带来了新的挑战。目前超级计算机整系统的平均无故障时间(MTBF,Mean Time Between Failure)已降至数个小时。现有的长时间运行程序大部分属于MPI(信息传递接口)程序,当某个节点发生错误时,可能会导致当前节点中正在运行的MPI程序中止或停止,进而导致所有节点中的程序必须重新执行,损失了之前所有的计算结果,这无疑造成了资源的严重浪费。同时在大规模高性能计算系统中,由于平均无故障时间仅仅为数个小时,在最差的情况下会导致程序反复重新开始执行却无法最终执行完成。因此为了使并行程序可以正确的执行,回滚—恢复(rollback—recovery)技术作为一种容错技术被广泛应用于高性能计算之中。其中一类的代表就是检查点软件。

检查点软件周期性的保存当前时刻应用程序在全部对应节点中的相关信息,形成一个由各个节点的单节点检查点文件组成的检查点文件集合,之后将该集合经由I/O节点写入到稳定存储之中。当有节点发生错误时,checkpoint软件将上一次的检查点数据读出,根据该记录创建进程,恢复数据,进而恢复应用程序的执行,从而达到保存之前运算结果的目的,这种策略被称为回滚—恢复策略,是计算机容错(Fault Tolerance)技术中一种普遍的实现策略,得到了广泛的应用。

在基于检查点的容错技术出现后,如何减少检查点操作过程中所造成的额外开销成为检查点技术研究的重点。目前为止,多数检查点软件将缩减单节点单次检查点操作所保存的检查点数据量作为减少检查点开销相关研究的重点。但是在大规模或超大规模集群的节点网络应用场景中,由于计算节点集合中的节点过多,若仅考虑检查点软件需要保存的数据量大小,依然无法达到最好的效果。因为在目前主流的使用协调(coordinated)同步协议的检查点软件中,在执行检查点操作前会先在所有节点进行一次全局同步操作,以达到一个全局一致的状态,以杜绝可能出现的多米诺效应(由于全局状态不一致导致的连续多次回滚)。之后当收集检查点数据的操作完成后,检查点软件默认将检查点数据直接写入到外部存储系统中,以应对之后可能发生的节点宕机故障(如某节点宕机,且未将当前节点的检查点数据写入稳定存储,则该节点相应的检查点数据丢失,节点相关进程的运行无法恢复)。由于系统中I/O节点数目远小于计算节点数目,数量众多的计算节点集中写入检查点数据将对I/O系统造成冲击,进而形成系统瓶颈,而且这一问题将随着高性能计算系统规模的增大而愈加突出。

对于大规模并行系统中的检查点软件来说,减少检查点数据写入过程对I/O子系统造成的冲击是实现检查点软件可用性的重要指标。从底层来看就是对系统共享I/O带宽资源使用的控制。为了能够更好的控制I/O带宽的使用峰值,可以将集中式的I/O请求进行一定程度的时间分解:先将检查点数据缓存于当前节点的内存之中,由独立的写入模块负责处理,再将写入操作分散到一个时间区间中,从而减少在同一时刻的I/O写入的总操作量。同时引入反馈调节机制,在延迟等待过程中,周时期性的检测当前计算节点的硬件使用信息,并将CPU使用率,内存占用率等信息作为反馈信息提供给写入模块的控制器使用,以期最终得到合理的I/O写入时机策略。

对于使用协调协议的检查点软件来说,不考虑系统I/O的使用情况来确定并行度将会对I/O子系统造成一定的冲击,因此如何能够自适应的根据不同系统的综合硬件条件和实时负载状况来动态的确定检查点软件数据相应的最佳写入时机,成为了解决该问题的关键。本发明针对上述问题,提出了一种基于随机延迟缓I/O瓶颈的大规模并行系统检查点数据写入方法。

发明内容

本发明公开了一种通过随机延迟来缓解系统I/O瓶颈的大规模并行系统检查点(checkpoint)数据写入方法。该方法将检查点恢复过程和写入过程分离,在系统中各节点生成检查点数据后,暂时将其缓存在内存中,并使用相应的随机延迟checkpoint文件处理方法来计算检查点数据的延迟写入时间,在延迟写入时间计时完成后再将检查点数据写入外部存储子系统。在延迟等待过程中,周期性探测相关硬件的使用信息,若影响到现有应用程序的运行,则放弃延迟立即执行写入操作,避免长时间占用硬件资源影响相关程序的正常运行。与传统的检查点数据集中式写入模式相比,该方法将各节点的检查点数据写入操作在时间上进行分散,避免了所有节点同时向外部存储系统写入检查点数据形成的峰值,从而可以缓解系统I/O瓶颈,提高检查点系统的可扩展性。

本发明的一种基于随机延迟缓解I/O瓶颈的大规模并行系统检查点数据写入方法,具体执行下列步骤:

步骤A,在写入模块(20)完成关联数据信息缓存之后,获取当前时间作为时间区段的起始时间点t

步骤B,计算运行节点集BP={bpb,bpb+1,…,bpc}中的各个节点使用随机延迟checkpoint文件处理方法得到进行时间区段的结束时间点t

步骤C,在确定了写入时间区段[t,t]之后,记录下计算运行节点集BP={bpb,bpb+1,…,bpc}中的各个节点存在的一个独立的随机值;

步骤D,在确定的随机值下,为计算运行节点集BP={bpb,bpb+1,…,bpc}中的各个节点确定一个在时间区段[t,t]中的相对时间位置;

步骤E,在确定的相对时间位置下,为计算运行节点集BP={bpb,bpb+1,…,bpc}中的各个节点确定一个预定的延迟写入时间;将预定延迟写入时间按照时间先后均匀分布到整个写入时间区段[t,t]中去,得到时间数轴;

步骤F,判断当前程序运行时间是否到达了预定延迟写入时间,是,则执行步骤J;否,执行步骤G;

步骤G,记录同一周期下的计算运行节点集BP={bpb,bpb+1,…,bpc}中的各个节点的反馈信息;

步骤H,通过反馈信息来获得评价参数并将与预先设定的阈值K阈值进行比较,若则执行步骤J;若则执行步骤I;

步骤I,当满足时,说明本地运行环境允许继续延时,转到步骤F;

步骤J,将缓存的关联数据信息写入到外部存储系统(40),本次延迟检查点数据写入操作结束。

本发明基于随机延迟缓解I/O瓶颈的大规模并行系统检查点数据写入方法优点在于:

①本发明针对使用协调协议的checkpoint程序,通过延迟写入的方式,可以减缓checkpoint数据的写入峰值,从而获得更高的吞吐率。

②本发明使用随机延迟checkpoint文件处理方法来确定检查点数据的延迟写入时间,同时又能够根据系统负载的变化相应的调整检查点数据的最佳写入时机。

③本发明各个节点独立使用随机延迟checkpoint文件处理方法进行延迟写入时间计算,不依赖于集中式的全局调度控制,有利于在大规模并行计算环境中减少全局同步操作带来的额外开销,减少处理时间,提高检查点软件的可扩展性。

④本发明中的主动延迟技术是传统的I/O优化技术中没有的,主动延迟能够有效降低写入冲突,降低周期性的大量同时写操作所造成的I/O性能损失。

附图说明

图1是本发明调整检查点程序写入并行过程中模块的流程表示图。

图2是采用本发明检查点写入方法对任意一计算运行节点的预测延迟写入时间的动态调整过程示意图。

图3是本发明的相同带宽和节点数下进行写入checkpoint文件的操作的延时时间对比图。

图4是大规模并行系统检查点数据在竞争I/O时的延迟写入时间与总写入时间的效率示意图。

10.执行模块20.写入模块30.恢复模块40.外部存储系统

具体实施方式

下面将结合附图和实施例对本发明做进一步的详细说明。

参见图1所示,在大规模并行系统检查点数据写入过程中,采用执行模块10、写入模块20和恢复模块30来缓解对I/O子系统造成的冲击,在延迟写入时间计时完成后再将检查点数据写入外部存储系统40中。

(A),在大规模并行系统进入到检查点操作时,首先由执行模块10将进程暂停,然后执行模块10完成各项同步并收集关联数据信息;所述关联数据信息可以是同享文件、进程信息、内存信息等;

(B),当执行模块10收集完成所有的关联数据信息后,由写入模块20将关联数据信息先缓存于本地节点的内存之中;当缓存完成后执行模块10输出恢复指令给恢复模块30;

(C),恢复模块30用于恢复进程到暂停前的状态并释放解锁,让进程重新开始执行,检查点操作过程此时结束。

在写入模块20中,所述写入模块20采用随机延迟checkpoint文件处理方法计算相应的延迟写入时间,并选取出最大的延迟写入时间记为总写入时间;当写入模块20在到达延迟写入时间或系统环境参数超过设定阈值K阈值不适合继续等待时,将关联数据信息写入到外部存储系统40之中。

在本发明中,假设当前集群的计算节点集记为AP={P0,P1,P2,…,Pa-1},P0表示当前集群中的第一个计算节点,P1表示当前集群中的第二个计算节点,P2表示当前集群中的第三个计算节点,Pa-1表示当前集群中的最后一个计算节点,角标a表示当前集群中计算节点的标识号,a也是当前集群中计算节点的总个数。

在本发明中,当前应用程序运行着的所述计算节点集AP={P0,P1,P2,…,Pa-1}中的子集(简称为计算运行节点集)记为BP={bpb,bpb+1,…,bpc},bpb表示任意一个计算运行节点,角标b表示计算运行节点的标识号,bpb+1表示bpb的后一个计算运行节点,bpc表示最后一个计算运行节点。0≤b≤c≤a-1。所述计算运行节点集BP={bpb,bpb+1,…,bpc}用来执行计算任务。

在本发明中,写入检查点数据的写入过程被从主流程中分离出来,形成独立写入模块20,在BP={bpb,bpb+1,…,bpc}中的每个节点是在checkpoint软件中运行。

在本发明中,将写入checkpoint文件的次数标识号记为d,checkpoint文件的文件大小记为FILE,写入checkpoint文件的时间记为WT(简称为文件写入时间),写入checkpoint文件的写入速度记为WV(简称为文件写入速率)。Checkpoint文件的保存周期记为T周期。当将d作为当前次次数时,则所述d之前的次数记为前一次次数d-1,所述d之后的次数记为后一次次数d+1。

对于任意一个计算运行节点bpb进行随机延迟checkpoint文件处理的具体步骤为:

步骤一,对于计算运行节点bpb的第一次随机延迟计算;

计算运行节点bpb在进行第一次随机延迟计算时,可参考使用预先设定的checkpoint保存周期T周期,所述T周期长度的1/3或1/2作为第一次计算时的时间区段[t,t]的长度,因此相应的结束点(右端点)以确保下次checkpoint操作之前完成写入保存操作。因此,所述bpb的第一次计算时的写入时间记为所述bpb的第一次计算时checkpoint文件大小记为所述bpb的第一次计算时checkpoint文件写入速率记为由于初始下的checkpoint写入过程不存在写入速率,因此赋值为零。

步骤二,对于计算运行节点bpb的第二次随机延迟计算;

所述bpb在第二次计算时需要获取第一次写入checkpoint文件的写入时间然后一方面使用计算第二次写入checkpoint文件的写入速率,记为另一方面使用计算第二次写入checkpoint文件的写入时间,记为所述bpb的第二次计算时checkpoint文件大小记为

步骤三,对于计算运行节点bpb的第三次随机延迟计算;

所述bpb在第三次计算时需要获取第二次写入checkpoint文件的写入时间然后一方面使用计算第三次写入checkpoint文件的写入速率,记为另一方面使用计算第三次写入checkpoint文件的写入时间,记为所述bpb的第三次计算时checkpoint文件大小记为

步骤四,继第三次计算之后的处理与步骤三是相同的;

步骤五,当用户程序退出后或检查点软件收到命令不再进行checkpoint操作后,写入checkpoint文件结束。

为了普识性说明,则有,在checkpoint写入过程中需要获取前一次写入checkpoint文件的写入时间然后一方面使用计算当前次写入checkpoint文件的写入速率,记为另一方面使用计算当前次写入checkpoint文件的写入时间

为在当前次d时写入checkpoint文件的写入时间。

为在前一次数d-1时写入checkpoint文件的写入时间。

为在当前次d时写入checkpoint文件的写入速率。

为在前一次数d-1时写入checkpoint文件的写入速率。

为在当前次d时的checkpoint文件的大小。

为在前一次数d-1时的checkpoint文件的大小。

在本发明中,为了留出2倍的的时间间隔保证下一次checkpoint执行之前,本次checkpoint文件已经写入完成,因此除第一次之后的右端点有

在本发明确定了写入时间区段[t,t]之后,计算运行节点集BP={bpb,bpb+1,…,bpc}中的各个节点将存在一个独立的随机值。即,所述bpb节点的随机值,记为所述bpb+1节点的随机值,记为所述bpc节点的随机值,记为

在确定的随机值下,为计算运行节点集BP={bpb,bpb+1,…,bpc}中的各个节点确定一个在时间区段[t,t]中的相对时间位置。即,所述bpb节点的相对时间位置,记为所述bpb+1节点的相对时间位置,记为所述bpc节点的相对时间位置,记为

在确定的相对时间位置下,为计算运行节点集BP={bpb,bpb+1,…,bpc}中的各个节点确定一个预定的延迟写入时间。即,所述bpb节点的预定延迟写入时间,记为所述bpb+1节点的预定延迟写入时间,记为所述bpc节点的预定延迟写入时间,记为

在本发明中,将预定延迟写入时间按照时间先后均匀分布到整个写入时间区段[t,t]中去,得到时间数轴。

在本发明中,在获得时间数轴之后,写入模块20会进行周期性的性能探测,从而获取计算运行节点集BP={bpb,bpb+1,…,bpc}中的各个节点的使用情况,即称为反馈信息IM;最终使用所述反馈信息IM来调整最终写入时间。

本发明使用预先设定的初始参考值和与相应的随机延迟计算算法,首先在一个对应的时间段[t,t]内为计算运行节点集BP={bpb,bpb+1,…,bpc}中每一个计算运行节点确定一个预定的延迟写入时间,则有:bpb的预定延迟写入时间为bpb+1的预定延迟写入时间为bpc的预定延迟写入时间为之后在写入模块真正执行I/O操作之前,周期性探测本地节点上总体及相关特定程序的CPU,内存等相关硬件的使用信息,将其作为反馈信息作为参考值,计算相应的值Ki+x从而进行评估,若该值超过预设的标准Kp,则不再进行延迟操作,而立即(记该时刻为)执行数据的写入操作,以避免长时间占用共享资源影响相关程序的正常运行;若该值Ki+k一直在预设的阈值Kp之下,则认为相关程序并未受其延迟操作的影响,继续按之前计算的延迟写入时间进行延迟写入操作。

本发明是可感知本地节点实时状态的随机延迟缓解I/O瓶颈的大规模并行系统检查点数据写入方法,该方法包括有下列处理步骤:

步骤一:预设延迟写入时间的确定;

步骤11,下面结合图3说明任意一个计算运行节点bpb中检查点软件中各自对应的延迟写入时间的确定过程;

首先应确定写入时间区段记为[t,t],即执行随机延迟写入操作的最早时间t及最晚时间t构成的时间区段。一般以写模块收到请求的时刻为该时间区段的零点即起始点(左端点)t,表示可以有部分写请求不进行延迟操作而立即执行。

同时,该时间区段[t,t]应小于进行两次相邻checkpoint操作的时间区间tck<t<t<tck+1,且T周期=tck+1-tck,以确保在进行下一次checkpoint操作时刻tck+1之前当前checkpoint保存操作已经完成。另一方面,在写模块真正进行写操作前,checkpoint数据将被暂时保存在bpb内存中,因此会占用bpb一部分的系统资源,从而可能会在一定程度上影响应用程序运行的性能。

步骤二:本地节点使用效率的实时监控与反馈;

(A)通过操作系统本身提供的各种方法,如系统调用、终端命令等,获得本地总体及当前程序或其他必要的相关程序的CPU和内存使用信息,记为反馈信息,所述反馈信息包括有当前的CPU使用率Ucpu,内存总量CM,内存使用总量UM,内存剩余总量Umin,虚拟内存交换区使用大小Uvmu,虚拟内存交换区缓存大小Uvmc等。这个过程是周期性,直至真正执行写操作。

(B)结合图3说明反馈机制的运作。首先将获得的使用率信息按如下规则进行处理,获取评价参数

具体的判定规则可以不同,如判断剩余内存是否少于预设值、CPU使用率是否高于预设值、使用多种因素作为参数的公式等方式,将他们使用不同系数,记为ai进行归一化,以此为标准判断是否当前临时保存在内存中的checkpoint数据对当前程序的运行性能造成了影响,同时也可以排除一些干扰数据可能造成的影响,比如当连续数次反馈信息都超过预设值Kp或明显超过预设值Kp(如)时,才将当前节点状态判定为资源紧缺状态,需要立即执行写入操作,以释放当前占用的共享资源。若根据判断结果,确实对当前程序的运行造成了影响,则不再等待直至预先确定的延迟写入时间而立即在当前时刻执行写入操作,记为

步骤三:延时写入;

(A)每个节点bpb独立的周期性的执行信息IM收集操作及判断操作获得参数若没有影响当前程序的运行则继续等待,直至达到预设的延迟写入时间之后执行写入操作。

实施例1

如图3所示,假设I/O子系统的总带宽为100GB/s,总共有16000个节点进行写入checkpoint文件的操作,若每个节点写入的检查点数据量为10MB,在不考虑I/O冲突的理想环境下,则1s之内写完需160GB/s;若延时5s,则5s内平均需要写入32GB/S;若延时10s,则每秒仅需写入16G,对带宽的占用下降到系统总带宽以下。但实际写入时间应比理论时间更长,因为大量同时写入造成了冲突降低了I/O效率,这种冲突的程度随着延时时间的增大而降低。

在图4所示中延时时间为0时表示不使用随机延时写入方法时的情况。当延时时间刚开始增大时,由于竞争减少I/O效率提高,总写入时间呈下降趋势;当延迟写入时间非常接近乃至超过了原来的写入时间时,I/O效率继续提高,但总写入时间无法继续受益,而是基本接近于设定的延时时间。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号