天天看点

并行计算机系统中计算节点能量有效性优化关键技术研究

作者:九鹏举
并行计算机系统中计算节点能量有效性优化关键技术研究
并行计算机系统中计算节点能量有效性优化关键技术研究

文|九鹏举

编辑|九鹏举

近年来,超级计算机不断得到发展,运算性能不断得到提升,超级计算机在航天工程、生物信息、新材料、海洋科学、制药等方面发挥着越来越重要的作用。

随着问题规模不断增加,以及对计算精度要求的增高,目前超级计算机的运算性能并不能够满足应用对性能的需求。

再加上超级计算机是国之重器,目前各个超算大国都在全力发展下一代E级计算机。

并行计算机系统中计算节点能量有效性优化关键技术研究

美国能源部在2014年的报告中指出,在研制E级计算机的挑战中,能量有效性问题位于十大挑战之首。

巨大的能耗已成为超级计算机进一步发展的重要障碍,因此提高系统的能量有效性已成为当前高性能计算领域研究的热点问题。

提高系统的能量有效性需要综合考虑系统的能量消耗和性能,获得能量消耗与性能的综合收益。

并行计算机系统中计算节点能量有效性优化关键技术研究

超级计算机的结构

超级计算机往往包含大量的节点,通过互联网络将这些节点连接起来。

当运行程序时,多个计算节点同时执行并行任务,从而达到高性能的目的,其结构层次由低到高可以分为处理器,节点,主板,机架,机柜,整个系统。

超级计算机的节点可以分为不同的类别,不同类别的节点的作用不同,配置也可能不同。

其中计算节点占据较大比例,对程序的整体运行时间起着巨大的影响。

并行计算机系统中计算节点能量有效性优化关键技术研究

除了计算节点外,还存在一些其它的节点,如I/O节点,服务节点等,这些节点主要用来实现任务分配,节点间通信,从磁盘读取数据,向磁盘写入数据等功能。

在同构的超级计算机中,一个计算节点主要是由处理器和内存组成,通常将多个计算节点集成在一个主板上。

目前所有的处理器都是多核结构的,在一个处理器芯片上集成多个核,这些核拥有独立的L1级缓存,L1缓存集成在核的内部。

并行计算机系统中计算节点能量有效性优化关键技术研究

通常最后一级缓存是集成在芯片上而不是核的内部,所有核共享最后一级缓存。

计算节点对于程序的执行性能起着巨大的作用,同时消耗整个超级计算机系统很大一部分的能耗,所以优化计算节点的能量有效性是十分重要的。

并行计算机系统中计算节点能量有效性优化关键技术研究

超级计算机的能耗测量

为了能够准确的分析计算节点的能耗,需要对超级计算机的能耗进行有效的度量。

目前主流的方案可以分为两种,一种是通过探测器直接测量各个部件的功率,另一种是通过性能计数器等工具,通过部件的使用情况来评估部件的功率。

可以通过实际硬件来测量功率,该方法的优点是测量结果准确,由实际硬件测量得出。

并行计算机系统中计算节点能量有效性优化关键技术研究

BlueGene/Q(BGQ)上部署了两种电源监控功能:一种是环境数据库,另一种是建立在供应商提供的应用程序编程接口(API)上的配置代码。

它们提供了两种不同尺度的能耗信息,环境数据库的维护主要是为了帮助识别和消除不充分的冷却以及电力分配不足等问题。

另一方面,用户可以直接通过配置代码得到部件在运行时的功率数据,并且在时间方面具有更精细的粒度。

并行计算机系统中计算节点能量有效性优化关键技术研究

GeR等通过硬件测量Beowulf中32个从节点上的主要计算资源(即CPU,内存,磁盘和NIC)的功率。

每个从节点都有一个933MHzIntelPentiumIII处理器,4个256MSDRAM模块,一个15.3GBIBMDTLA-307015DeskStar硬盘和一个Intel82559EthernetPro100板载以太网控制器。

ATX延长线将测试节点连接到电路板上的一组0.1欧姆的传感器。

并行计算机系统中计算节点能量有效性优化关键技术研究

使用一个连接到多端口的RadioShack46系列数字万用表22-812测量每个电阻上的电压,并将测量数据收集到计算机。

他们使用10个独立的万用表同时测量10个功率点,仪表将实时测量数据发送到数据采集计算机,以进行数据记录和处理。

每个仪表每秒向数据采集计算机发送4个样本,该方法的缺点是需要增加大量的测量部件,而且很难通过探测器来测量节点内部各个部件的功率值,比如某个节点的处理器的功率值。

并行计算机系统中计算节点能量有效性优化关键技术研究

此外,由于硬件测量的时间间隔较大,需要较长时间才能够进行一次采样,并不能够准确的分析一段时间内部件功率随时间的变化情况。

在通过性能计数器来对部件的功率进行建模的方法中,常见的方法是使用PMC事件来对节点内部件的使用情况进行评估。

通过人工智能的方法,选择对功率值影响较大的事件作为输入变量,部件的功率值作为输出变量,建立对应的模型。

并行计算机系统中计算节点能量有效性优化关键技术研究

学者LsciC等定义了多个部件,并将每个部件的功率与相应的事件相关联,部件的使用情况由一个性能计数器直接给出,或者由多个性能计数器来近似加权。

通过事件来反映处理器的内部每个部件的功率情况,LivelyC等使用E-AMOM方法,该方法根据系统的使用情况来预测应用程序的功率,从而提高程序的能量有效性。

BircherWL等也是通过微处理器性能计数器在线测量整个系统的功率。

并行计算机系统中计算节点能量有效性优化关键技术研究

该方法利用了微处理器中性能事件的“涓滴”效应,不仅对处理器的功率进行了评估,同时通过性能计数器对系统中其它部件的功率进行了评估。

例如使用高速缓存未命中情况和DMA事务来估计存储器和磁盘以及微处理器外部的其他子系统的功率。

通过使用这些模型和现有的片上性能事件计数器,可以在不需要添加额外设备的情况下估算整个系统的功率。

并行计算机系统中计算节点能量有效性优化关键技术研究

学者WuX等将性能计数器的结果与每个系统组件消耗的功率相关联。

使用该相关性来推导每个系统组件的功率模型,其结果的准确性取决于性能计数器的选择,评估的基准以及所使用的数据拟合方法。

运行时平均功率限制技术(RunningAveragePowerLimit–RAPL)是由Intel处理器提供的能耗测量技术。

并行计算机系统中计算节点能量有效性优化关键技术研究

RAPL提供一组能耗信息的计数器,RAPL并不是实际测量功率,而是使用软件功率模型,该软件通过硬件性能计数器和I/O模型来估算能耗。

经过试验,RAPL的测量值和实际值比较吻合,RAPL技术可以分别统计一个节点内的处理器能耗和内存能耗。

除了进行能耗的统计,RAPL技术还能够对处理器和内存的功率进行限制,能够对一段时间内的平均功率进行限制,以满足预期的功率和冷却预算。

并行计算机系统中计算节点能量有效性优化关键技术研究

可以由用户设定时间窗口,当功率过高时,RAPL将强制处理器或者内存进入低功率状态。

在略微影响性能的前提下节约能耗对于计算机的能耗问题,人们已经进行了很多的研究。

目前看到的最早的关于计算机的能耗管理的文献是在03年由IBM的工程师提出的。

该资料中指出,在此之前人们主要将能耗研究集中在嵌入式系统和移动设备,而没有考虑过服务器。

并行计算机系统中计算节点能量有效性优化关键技术研究

由于晶体管密度的不断增加,以及传统的空气制冷设备的限制,服务器系统正面临着能量限制。

其在服务器端管理能耗的手段主要集中在处理器和内存部分。

对于处理器,当处理器处于不活跃状态时,通过DVFS技术来降低处理器能耗。

对于内存则是通过将内存的数据集中在一个区域,使无数据的内存区域进入休眠状态,从而降低能耗。

并行计算机系统中计算节点能量有效性优化关键技术研究

目前人们降低能耗的手段也主要集中在降低内存和处理器的能耗。

降低处理器能耗的手段主要是利用处理器内部各个核不同的使用状态来使用动态电压频率调节技术来进行频率的调节。

应用Adagio算法,通过直接修改MPI库函数,对每个处理器核的空闲状态进行分析,从而根据每一个核的使用情况使用动态频率调节技术(DVFS)来调节每一个核的频率。

并行计算机系统中计算节点能量有效性优化关键技术研究

在超算系统中,将每一个MPI的进程分配到独立的节点,并且不会进行节点的迁移。

Adagio将每一个MPI进程的从一次同步点到下一个同步点作为一个任务,并记录下每个任务执行的时钟数以及其对应的处理器核的空闲状态。

当下一次该进程再次执行到该任务时,通过调节对应处理器核的频率来减少该处理器核的空闲时间。

从而达到不影响性能,并降低处理器能耗的效果。

并行计算机系统中计算节点能量有效性优化关键技术研究

除了研究如何对传统的处理器进行能耗的降低外,我们针对众核技术,提出了一系列能耗优化方案。

众核技术是指在一个处理器芯片上集成大量的核心,不同于传统的处理器。

由于能耗散热的限制,众核芯片每个处理器核都运行在较低的电压频率下,通过充分利用应用的并行性来提高性能。

并行计算机系统中计算节点能量有效性优化关键技术研究

众核技术主要运用在超算中心等场所,个人用户不使用众核芯片,目前大陆最快的计算机神威太湖就是使用的众核芯片。

除了研究如何降低处理器的能耗,我们这次还进行了很多降低内存的能耗的研究。

我们针对使用了嵌入式内存(eDRAM)作为缓存的系统,提出了ESTEEM算法来动态的管理eDRAM,从而减少eDRAM的刷新次数,从而达到降低能耗的目的。

并行计算机系统中计算节点能量有效性优化关键技术研究

传统的缓存使用的是静态随机存取存储器(SRAM),该类型内存的优点是只要保持供电就能够保证数据不丢失。

缺点在于这类内存的数据密度不高,单位体积保存的数据较少。

此外,该类型内存由于漏电能耗较高,导致其需要消耗大量的静态能耗。

相较于SRAM,eDRAM拥有更高的数据密度,能够集成更大的片上缓存,eDRAM的漏电能耗远低于SRAM。

并行计算机系统中计算节点能量有效性优化关键技术研究

但是eDRAM需要每隔一定时间段对存储器进行刷新,才能够有效的保存数据。

针对使用嵌入式内存(eDRAM)作为缓存的系统,ESTEEM方法将缓存分为相应的组,根据访问历史,对不会再次访问的缓存进行判断,并停止这一部分缓存的刷新,从而降低刷新带来的能耗。

并行计算机系统中计算节点能量有效性优化关键技术研究

继续阅读