发明名称 异构并行计算结点的峰值功耗控制方法
摘要 本发明公开了一种异构并行计算结点的峰值功耗控制方法,目的是动态控制异构并行结点的峰值功耗,尽可能地减少功耗控制对结点执行性能的影响。技术方案是先构建由结点功耗描述文件、结点功耗预算设置子系统、协处理器负载监控子系统、处理器功耗设置子系统组成的异构并行计算结点峰值功耗控制系统;将结点的相关功耗参数记录在结点功耗描述文件中;结点功耗预算设置子系统设置结点功耗预算,协处理器负载监控子系统查询协处理器的实时运行负载W<sub>co</sub>,处理器功耗设置子系统设置处理器的功耗阈值。采用本发明可确保计算结点的峰值功耗不会超过用户设定的功耗预算,对计算结点性能影响小,提高了结点的能耗效率。
申请公布号 CN103559092B 申请公布日期 2016.08.17
申请号 CN201310560455.4 申请日期 2013.11.12
申请人 中国人民解放军国防科学技术大学 发明人 杨灿群;刘勇鹏;卢凯;肖立权;杜云飞;迟万庆;王锋;李宽;邢建英;高颖慧
分类号 G06F9/50(2006.01)I;G06F1/32(2006.01)I 主分类号 G06F9/50(2006.01)I
代理机构 国防科技大学专利服务中心 43202 代理人 郭敏
主权项 一种异构并行计算结点的峰值功耗控制方法,其特征在于包括以下步骤:第一步,构建异构并行计算结点峰值功耗控制系统,该系统由结点功耗描述文件、结点功耗预算设置子系统、协处理器负载监控子系统、处理器功耗设置子系统组成;结点功耗描述文件保存结点的相关功耗参数,共包含6项,分别为处理器最大功耗值P_MAX_CPU、协处理器最大功耗值P_MAX_CO、协处理器空闲功耗值P_IDLE_CO、结点内除处理器和协处理器之外其它所有设备的功耗最大值P_MAX_OTHER、结点空闲功耗值P_IDLE_NODE、结点最大功耗值P_MAX_NODE;结点功耗预算设置子系统接收用户输入的结点功耗预算值P<sub>budget</sub>,读取保存在结点功耗描述文件中的相关功耗参数,计算触发功耗控制所对应的协处理器负载阈值W<sub>co‑th</sub>,并将P<sub>budget</sub>和W<sub>co‑th</sub>传递给协处理器负载监控子系统;协处理器负载监控子系统通过访问协处理器驱动程序提供的协处理器利用率查询接口来读取协处理器的实时利用率,从结点功耗描述文件读取结点的功耗参数,从结点功耗预算子系统获得P<sub>budget</sub>和W<sub>co‑th</sub>,计算处理器的功耗阈值P<sub>cpu‑th</sub>,并将P<sub>cpu‑th</sub>传递给处理器功耗设置子系统;处理器功耗设置子系统从协处理器负载监控子系统获得P<sub>cpu‑th</sub>,操作处理器功耗控制接口设置处理器的功耗阈值;第二步,初始化结点功耗描述文件,查阅异构计算结点的功耗描述手册,获得结点的相关功耗参数,并将这些参数记录在结点功耗描述文件中;第三步,结点功耗预算设置子系统设置结点功耗预算,方法是:3.1接收用户设置的P<sub>budget</sub>,若P_IDLE_NODE≤P<sub>budget</sub>≤P_MAX_NODE,转3.2步;如果P<sub>budget</sub>小于P_IDLE_NODE,结点功耗预算设置子系统向用户返回错误信息,要求用户重新输入,转3.1;如果P<sub>budget</sub>大于P_MAX_NODE,则结点功耗预算设置子系统自动设置P<sub>budget</sub>为P_MAX_NODE,转3.2步;3.2初始化处理器功耗阈值设置标记TH<sub>cpu</sub>为0,TH<sub>cpu</sub>为布尔值变量,取值为0或1,0表示未设置处理器功耗阈值,1表示已设置处理器功耗阈值;3.3计算P<sub>budget</sub>对应的W<sub>co‑th</sub>,即<maths num="0001" id="cmaths0001"><math><![CDATA[<mrow><msub><mi>W</mi><mrow><mi>co</mi><mo>-</mo><mi>th</mi></mrow></msub><mo>=</mo><mfrac><mrow><msub><mi>P</mi><mi>budget</mi></msub><mo>-</mo><mi>P</mi><mo>_</mo><mi>MAX</mi><mo>_</mo><mi>CPU</mi><mo>-</mo><mi>P</mi><mo>_</mo><mi>MAX</mi><mo>_</mo><mi>OTHER</mi><mo>-</mo><mi>P</mi><mo>_</mo><mi>IDLE</mi><mo>_</mo><mi>CO</mi></mrow><mrow><mi>P</mi><mo>_</mo><mi>MAX</mi><mo>_</mo><mi>CO</mi><mo>-</mo><mi>P</mi><mo>_</mo><mi>IDLE</mi><mo>_</mo><mi>CO</mi></mrow></mfrac><mo>;</mo></mrow>]]></math><img file="FDA0000412838940000011.GIF" wi="1078" he="108" /></maths>第四步,协处理器负载监控子系统查询协处理器的实时运行负载W<sub>co</sub>,即所有协处理器核的平均利用率,<img file="FDA0000412838940000012.GIF" wi="303" he="106" />其中,μ<sub>t</sub>为协处理器核t的利用率,通过协处理器利用率查询接口查询得到,T为结点中协处理器核的个数;4.1如果W<sub>co</sub>大于W<sub>co‑th</sub>,则基于W<sub>co</sub>计算P<sub>cpu‑th</sub>,P<sub>cpu‑th</sub>=P<sub>budget</sub>‑(P_IDLE_CO+(P_MAX_CO‑P_IDLE_CO)×W<sub>co</sub>)‑P_MAX_OTHER,转第五步;4.2如果W<sub>co</sub>小于或等于W<sub>co‑th</sub>,则:4.2.1如果TH<sub>cpu</sub>等于1,则将P<sub>cpu‑th</sub>值设为‑1,转第五步;4.2.2如果TH<sub>cpu</sub>等于0,则检测用户是否输入新的P<sub>budget</sub>:4.2.2.1如果用户输入新的P<sub>budget</sub>,转第三步;4.2.2.2如果用户没有输入新的P<sub>budget</sub>,转第四步;第五步,处理器功耗设置子系统设置处理器的功耗阈值:5.1如果P<sub>cpu‑th</sub>等于‑1,则操作处理器提供的功耗控制接口,停止功耗控制支持模块对处理器功耗的控制,设置TH<sub>cpu</sub>为0,转第四步;5.2如果P<sub>cpu‑th</sub>不等于‑1,则操作处理器提供的功耗控制接口,设置处理器的功耗阈值为P<sub>cpu‑th</sub>并设置TH<sub>cpu</sub>为1,启动处理器功耗控制支持模块对处理器功耗加以控制,转第四步;所述启动处理器功耗控制支持模块对处理器功耗进行控制的方法是:处理器功耗控制支持模块实时检测处理器功耗P<sub>cpu</sub>,若发现P<sub>cpu</sub>&gt;P<sub>cpu‑th</sub>,则将处理器功耗降低为P<sub>cpu‑th</sub>,确保处理器功耗不超过P<sub>cpu‑th</sub>。
地址 410073 湖南省长沙市开福区德雅路109号