一种基于空闲历史信息的计算阵列节能方法

文档序号:6332068阅读:208来源:国知局
专利名称:一种基于空闲历史信息的计算阵列节能方法
技术领域
本发明涉及高性能计算系统计算阵列的节能方法。
背景技术
随着高性能计算系统技术的不断发展,新一代大规模并行计算系统的研制面临许 多新的挑战。特别是随着系统性能的不断提升,规模越来越庞大,系统的能耗飞速增长,造 成了大规模计算系统的能耗危机。系统能耗和系统性能的比值正成为高性能计算的主要评 价指标之一。高性能计算系统通常包括前端服务阵列、计算阵列、后端存储阵列三个组成部分。 计算阵列由大量的计算结点组成,对外提供作业的执行服务。计算阵列作为高性能计算阵 列的主要能耗部件,是能耗优化研究和工程设计的重点。目前常见的计算阵列节能方法包 括
1)限制可用结点数量的节能方法。根据计算系统的历史平均利用率P,关闭计算阵列 中百分比为(1-P)的计算结点,达到节能的目的。该方法会增加作业的平均等待时间,降低 用户满意度。此外该方法不能适应系统利用率频繁变化的用户环境。2)定时休眠空闲结点的节能方法。管理员手工设定一个时间参数T。当计算 结点空闲时间达到T后,将空闲结点置于S3休眠状态。S3休眠状态是ACPI (Advanced Configuration and Power Interface Specification)标准定义的计算系统的一种低功耗 状态,相比开机状态能够节省90% - 95%的能耗。广泛应用的slurm高性能资源管理系统 即采用该手工设定时间参数T的节能方法。如果T参数的设定时间过短,则计算结点可能 刚进入休眠状态,很快又被分配作业然后被唤醒,导致计算结点状态切换频繁,影响系统稳 定性。如果T参数的设定时间过长,则计算结点空闲很长时间后才进入休眠状态,影响节能 效果。当前绝大多数计算结点生产厂商和通用操作系统均支持ACPI标准规定的S3休眠 状态,为基于S3休眠状态的节能方法提供了支持。由于用户作业提交的不均衡特性和作业 调度策略的部分保序特性,计算阵列运行过程中存在大量的空闲计算结点。如何对这些空 闲的计算结点进行节能设计,是本领域技术人员极为关注的技术问题。

发明内容
本发明要解决的技术问题在于针对高性能计算系统计算阵列的节能问题,提出 一种基于空闲历史信息的计算结点节能方法,利用结点空闲时间的历史记录动态自适应地 控制计算结点进入S3休眠状态,达到较好的节能效果,同时维持结点的能耗状态切换次数 在一个可控的低水平。为了解决上述技术问题,本发明的技术方案为为每个计算结点建立一个独立的 空闲历史信息队列,根据空闲历史信息队列对每个计算结点的能耗状态进行独立控制。每 当计算结点上作业被释放时,结合管理员配置的结点能耗状态切换次数限制和空闲历史信息队列设定空闲结点进入S3休眠状态的时间点。结点从空闲状态切换到S3休眠状态、S3 休眠状态切换到开机状态均算一次能耗状态切换。每当该计算结点从空闲状态加载作业或 者S3休眠状态被重新唤醒然后加载作业时,将该次空闲的开始时间和空闲时间长度加入 空闲历史信息队列。根据大量高性能计算系统的运行数据统计,结点的空闲时间长度具有 相似性,根据结点的空闲历史规律预测结点未来的空闲时间长度具有较高的准确度,这奠 定了本发明的理论基础。具体技术方案为
第一步,构造计算阵列节能系统。计算阵列节能系统是部署在高性能计算系统前端服 务阵列中的服务器上的软件包,由能耗状态调节模块和能耗状态控制模块组成。能耗状态 调节模块是节能优化决策模块,构造计算结点的空闲历史信息队列,根据空闲历史信息设 定计算结点进入S3休眠状态的时间点,将计算结点休眠的时间点传递给能耗控制模块。能 耗状态控制模块是节能优化实施模块,负责根据能耗状态调节模块指定的时间点将空闲计 算结点置于S3休眠状态,在已休眠计算结点被分配作业后唤醒计算结点。第二步,设定节能参数历史信息队列的时间窗口 HIST0RY_WIND0W(单位为秒),其 取值范围为7天到1个月,其取值决定了历史信息队列中保存的记录的时间约束;计算结点 一天中允许能耗状态切换的次数SWITCHS_LIMIT,其取值范围为2到10次;结点从空闲状 态进入S3休眠状态的最短时间限制MINI_SUSPEND_TIME,其取值范围为1到5分钟,避免过 于频繁的结点能耗状态切换。第三步,能耗状态调节模块构造空闲历史信息队列,根据空闲历史信息设定计算 结点进入S3休眠状态的时间点。方法是
3. 1构造空闲历史信息队列hqueue。空闲历史信息队列的每条记录包括结点空闲开始 时间戳S、结点本次空闲时间长度J。每当计算节点进入空闲状态时,记录当前时间为计算 结点的空闲开始时间m。此后当计算结点被分配作业时,当前时间为n,则在空闲历史信息 队列中增加一条记录,该记录的值S = m,J = η — m。空闲历史信息队列按照J的值从大 到小排序,J值大的记录放在队列前面。3. 2定期检查hqueue队列中的记录项,删除S值小于Tl (Tl=当前时间一 HIST0RY_WIND0ff)的过期历史记录。3. 3当计算结点上的作业全部结束时,能耗状态调节模块按以下方法动态设定允 许该计算结点进入S3休眠状态的时间点Sle印Time,达到节能目标。方法是
3. 3. 1在该计算结点的hqueue队列中检索S值最小的记录,将该记录的S值记为 earlisto当前系统时钟为now,贝Ij hqueue队列的时间跨度timewidth=now_earlist。3. 3. 2在t imewi dth时 间 区 间 内,计算允许 的 能耗状态 切 换 次数 switchlimits , switchlimits =
LsmCHS_LIMTT *(timewidth ΦΑΥ)/2」+ 1。其中 DAY 为一天中的秒数,即 24*3600。其 中L」为下取整操作。3. 3. 3从hqueue队列头开始检索前swithclimits条记录。如果hqueue队列中 记录的总条数小于swithchlimits,说明该计算结点历史空闲的次数低于允许的能耗状态 切换限制,设定该计算结点进入休眠状态前的空闲时间长度为T2 (T2 = MINI_SUSPEND_TIME),则 Sle印Time= now+MINI_SUSPEND_TIME,转第四步。3. 3. 4设定该计算结点进入休眠状态前的空闲时间长度为T3 (T3 = (hqueuefs^chlimitlJ + hqueue[swchlimit& 1 ].J)/2.),其中 hqueue [χ]. J 表示 hqueue 队列从
队列头开始的第χ条记录的结点空闲时间长度J值),则根据空闲历史信息队列可预测该结 点的能耗状态切换次数不会超过SWitchlimitS限制。据此可计算允许该结点进入S3休眠 状态的时间点 SleepTime=now + [(hqueue[switchlmits ]J + hqueue[swichlimits -l]’J)/2」。其中
L」为下取整操作。第四步,能耗控制模块定期检测计算结点的状态,每当计算结点处于空闲状态而 且当前时间超过计算结点能耗状态模块设定的休眠时间点Sle印Time,则将该计算结点置 于S3休眠状态。第五步,高性能计算系统的资源分配软件负责分配用户作业所占用的计算结点, 计算结点能耗控制模块检测到S3休眠状态的计算结点被分配作业后,调用操作系统提供 的ACPI控制接口唤醒该结点。
与现有技术相比,采用本发明可达到以下技术效果
1.本发明的第一步支持本发明具有较好的通用性,当前主流的计算结点厂商和操作系 统厂商均支持S3休眠状态;
2.本发明的第二步和第三步支持本发明能够有效控制计算结点的能耗状态切换次数, 避免由于结点能耗状态频繁切换导致的系统不稳定,甚至降低硬件的寿命;
3.本发明的第三步支持本发明能够根据系统历史运行状态自适应的调整结点的能耗 状态,避免了人工干预,有效的实现计算阵列节能;
4.本方面的第四步支持本发明对应用透明,无需修改并行应用软件。


图1为本发明的节能方法流程图。
具体实施例方式图1为本发明的节能方法流程图。第一步,构造计算阵列节能系统。计算阵列节 能系统是部署在高性能计算系统前端服务阵列中的服务器上的软件包,由能耗状态调节模 块和能耗状态控制模块组成。第二步,设定节能参数历史信息队列的时间窗口 HIST0RY_WIND0W(单位为秒),其 取值范围为7天到1个月,其取值决定了历史信息队列中保存的记录的时间约束;计算结点 一天中允许能耗状态切换的次数SWITCHS_LIMIT,其取值范围为2到10次;结点从空闲状 态进入S3休眠状态的最短时间限制MINI_SUSPEND_TIME,其取值范围为1到5分钟,避免过 于频繁的结点能耗状态切换。第三步,能耗状态调节模块构造空闲历史信息队列,根据空闲历史信息设定计算 结点进入S3休眠状态的时间点。方法是
3. 1构造空闲历史信息队列hqueue。空闲历史信息队列的每条记录包括结点空闲开始时间戳S、结点本次空闲时间长度J。每当计算节点进入空闲状态时,记录当前时间为计算 结点的空闲开始时间m。此后当计算结点被分配作业时,当前时间为n,则在空闲历史信息 队列中增加一条记录,该记录的值S = m,J = η — m。空闲历史信息队列按照J的值从大 到小排序,J值大的记录放在队列前面。3. 2定期检查hqueue队列中的记录项,删除S值小于Tl (Tl=当前时间一 HIST0RY_WIND0ff)的过期历史记录。3. 3当计算结点上的作业全部结束时,能耗状态调节模块按以下方法动态设定允 许该计算结点进入S3休眠状态的时间点Sle印Time,达到节能目标。方法是
3. 3. 1在该计算结点的hqueue队列中检索S值最小的记录,将该记录的S值记为 earlisto当前系统时钟为now,贝Ij hqueue队列的时间跨度timewidth=now_earlist。3. 3. 2在timewidth时间区间内,计算允许的能耗状态切换次数switchlimits, switchlimits = LswrCHS JJMTT *(timewidth ΦΑΥ)/2」+ 1。其中 DAY 为一天中的秒数,
即24*3600。其中L」为下取整操作。3. 3. 3从hqueue队列头开始检索前swithclimits条记录。如果hqueue队列中 记录的总条数小于swithchlimits,设定该计算结点进入休眠状态前的空闲时间长度为T2 (T2 = MINI_SUSPEND_TIME),贝丨」SleepTime= now+MINI_SUSPEND_TIME,转第四步。3. 3. 4设定该计算结点进入休眠状态前的空闲时间长度为T3 (T3 = (lnqueue[swtchlimit|J + hqueue [swehlimits· 1 ]. J)/ 2 ,其中 hqueue [χ], J 表示 hqueue 队列从
队列头开始的第χ条记录的结点空闲时间长度J值),则根据空闲历史信息队列可预测该结 点的能耗状态切换次数不会超过switchlimits限制。据此可计算允许该结点进入S3休眠 状态的时间点 SleepTime=now + [(liqueue[switchlimits ].J+hqueue[swichlkmts -l].J)/2」。其中
L」力下取整操作。第四步,能耗控制模块定期检测计算结点的状态,每当计算结点处于空闲状态而 且当前时间超过计算结点能耗状态模块设定的休眠时间点Sle印Time,则将该计算结点置 于S3休眠状态。第五步,高性能计算系统的资源分配软件负责分配用户作业所占用的计算结点, 计算结点能耗控制模块检测到S3休眠状态的计算结点被分配作业后,调用操作系统提供 的ACPI控制接口唤醒该结点。
权利要求
一种基于空闲历史信息的计算阵列节能方法,其特征在于包括以下步骤第一步,构造计算阵列节能系统,计算阵列节能系统是部署在高性能计算系统前端服务阵列中的服务器上的软件包,由能耗状态调节模块和能耗状态控制模块组成;能耗状态调节模块是节能优化决策模块,构造计算结点的空闲历史信息队列,根据空闲历史信息设定计算结点进入S3休眠状态的时间点,将计算结点休眠的时间点传递给能耗控制模块;能耗状态控制模块是节能优化实施模块,负责根据能耗状态调节模块指定的时间点将空闲计算结点置于S3休眠状态,在已休眠计算结点被分配作业后唤醒计算结点;第二步,设定节能参数历史信息队列的时间窗口HISTORY_WINDOW,其取值决定了历史信息队列中保存的记录的时间约束;计算结点一天中允许能耗状态切换的次数SWITCHS_LIMIT;结点从空闲状态进入S3休眠状态的最短时间限制MINI_SUSPEND_TIME;第三步,能耗状态调节模块构造空闲历史信息队列,根据空闲历史信息设定计算结点进入S3休眠状态的时间点,方法是3.1构造空闲历史信息队列hqueue,空闲历史信息队列的每条记录包括结点空闲开始时间戳S、结点本次空闲时间长度J;每当计算节点进入空闲状态时,记录当前时间为计算结点的空闲开始时间m;每当计算结点被分配作业时,当前时间为n,则在空闲历史信息队列中增加一条记录,该记录的值S=m,J=n-m;空闲历史信息队列按照J的值从大到小排序,J值大的记录放在队列前面;3.2定期检查hqueue队列中的记录项,删除S值小于T1的过期历史记录T1=当前时间-HISTORY_WINDOW;3.3当计算结点上的作业全部结束时,能耗状态调节模块按以下方法动态设定允许该计算结点进入S3休眠状态的时间点SleepTime,达到节能目标,方法是3.3.1在该计算结点的hqueue队列中检索S值最小的记录,将该记录的S值记为earlist,当前系统时钟为now,则hqueue队列的时间跨度timewidth=now earlist;3.3.2在timewidth时间区间内,计算允许的能耗状态切换次数switchlimits ,switchlimits = +1,其中DAY为一天中的秒数,即24*3600,为下取整操作;3.3.3从hqueue队列头开始检索前swithclimits条记录,如果hqueue队列中记录的总条数小于swithchlimits,说明该计算结点历史空闲的次数低于允许的能耗状态切换限制,设定该计算结点进入休眠状态前的空闲时间长度为T2,T2=MINI_SUSPEND_TIME,则SleepTime= now+MINI_SUSPEND_TIME,转第四步; 3.3.4设定该计算结点进入休眠状态前的空闲时间长度为T3,T3=,其中hqueue[x].J表示hqueue队列从队列头开始的第x条记录的结点空闲时间长度J值,则根据空闲历史信息队列可预测该结点的能耗状态切换次数不会超过switchlimits限制,据此计算允许该结点进入S3休眠状态的时间点SleepTime=now+;第四步,能耗控制模块定期检测计算结点的状态,每当计算结点处于空闲状态而且当前时间超过计算结点能耗状态模块设定的休眠时间点SleepTime,则将该计算结点置于S3休眠状态; 第五步,高性能计算系统的资源分配软件负责分配用户作业所占用的计算结点,计算结点能耗控制模块检测到S3休眠状态的计算结点被分配作业后,调用操作系统提供的ACPI控制接口唤醒该结点。 2010102820774100001dest_path_image002.jpg,2010102820774100001dest_path_image004.jpg,dest_path_image006.jpg,dest_path_image008.jpg
2. 1构造空闲历史信息队列hqueue,空闲历史信息队列的每条记录包括结点空闲开始 时间戳S、结点本次空闲时间长度J ;每当计算节点进入空闲状态时,记录当前时间为计算 结点的空闲开始时间m ;每当计算结点被分配作业时,当前时间为n,则在空闲历史信息队 列中增加一条记录,该记录的值S = m,J = η — m ;空闲历史信息队列按照J的值从大到小 排序,J值大的记录放在队列前面;3. 2定期检查hqueue队列中的记录项,删除S值小于Tl的过期历史记录Tl =当前时 间一 HIST0RY_WIND0W ;3. 3当计算结点上的作业全部结束时,能耗状态调节模块按以下方法动态设定允许该 计算结点进入S3休眠状态的时间点Sle印Time,达到节能目标,方法是3. 3. 1在该计算结点的hqueue队列中检索S值最小的记录,将该记录的S值记为 earlist, ^mM^t^t^^] now,贝U hqueue PA^J WWI^itiS timewidth=now-earlist ;3. 3. 2在t i m e w i d t h时间区间 内,计算允许的能 % # ^ W M 、ikswitchlimits , switchlimits =LSOTCHS_LIM]T *(timewidtii /DAY)/2」+ 丨,其中 DAY 为一天中的秒数,即 24*3600,L」为下取整操作;3. 3. 3从hqueue队列头开始检索前swithclimits条记录,如果hqueue队列中记录的 总条数小于swithchlimits,说明该计算结点历史空闲的次数低于允许的能耗状态切换限 制,设定该计算结点进入休眠状态前的空闲时间长度为T2,T2 = MINI_SUSPEND_TIME,则 Sle印Time= now+MINI_SUSPEND_TIME,转第四步;3. 3. 4设定该计算结点进入休眠状态前的空闲时间长度为T3,T3 = (hqueue [ swtchl imit) J + hqueue [swchlirnits 1 ]S)f 2 , tl、:屮 hqueue [χ]. J 表示 hqueue 队列从队列头开始的第χ条记录的结点空闲时间长度J值,则根据空闲历史信息队列可预测该结 点的能耗状态切换次数不会超过switchlimits限制,据此计算允许该结点进入S3休眠状 态的时间点 SleepTime=now + [(hqueue[switchlimits ]J +hqueue[swichHmits -l].J)/2」;第四步,能耗控制模块定期检测计算结点的状态,每当计算结点处于空闲状态而且当 前时间超过计算结点能耗状态模块设定的休眠时间点Sle印Time,则将该计算结点置于S3休眠状态;第五步,高性能计算系统的资源分配软件负责分配用户作业所占用的计算结点,计 算结点能耗控制模块检测到S3休眠状态的计算结点被分配作业后,调用操作系统提供的 ACPI控制接口唤醒该结点。2.如权利要求1所述的基于空闲历史信息的计算阵列节能方法,其特征在于所述 HIST0RY_WIND0W取值范围为7天到1个月;SWITCHS_LIMIT,取值范围为2到10次;MINI_ SUSPEND_TIME其取值范围为1到5分钟。
全文摘要
本发明公开了一种基于空闲历史信息的计算阵列节能方法,目的是实现好的节能效果。技术方案是构造由能耗状态调节模块和能耗状态控制模块组成计算阵列节能系统,能耗状态调节模块构造计算结点的空闲历史信息队列,根据空闲历史信息设定计算结点进入S3休眠状态的时间点,将计算结点休眠的时间点传递给能耗控制模块。能耗状态控制模块根据能耗状态调节模块指定的时间点将空闲计算结点置于S3休眠状态,在已休眠计算结点被分配作业后唤醒计算结点。采用本发明能够有效控制计算结点的能耗状态切换次数,避免由于结点能耗状态频繁切换导致的系统不稳定,有效地实现计算阵列节能。
文档编号G06F9/50GK101943944SQ20101028207
公开日2011年1月12日 申请日期2010年9月15日 优先权日2010年9月15日
发明者卢宇彤, 周恩强, 所光, 曹宏嘉, 董勇, 蒋艳凰, 谢旻, 陈海涛 申请人:中国人民解放军国防科学技术大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1