¶摘要
来自墙上插槽(wall socket)的全系统电力输入对于理解和预算大规模数据中心的电力消耗非常重要。然而,测量全系统功率需要额外的仪器与外部物理设备,这不仅麻烦,而且昂贵且耗时。为了解决这个问题,本文中提出了RAPL接口获得的处理器Package功率模拟墙上插槽功率,该接口可在最新的英特尔处理器上获得。实验结果表明RAPL的Package功率与墙上插槽功率之间存在很强的相关性。基于这些观察,本文提出了一种经验功效模型来预测整个系统功率。实验中使用多个综合基准(Stress-ng,STREAM),高能物理基准(Par FullCMS)和非平凡应用基准(Parsec)验证模型。实验结果表明,该预测模型具有良好的准确率,最大误差率为5.6%。
¶前期验证
本文基于Stress-ng和Stream基准测试程序进行了实验观察,验证Package功率和墙上功率呈线性关系。Stress-ng的实验如下图所示:
由该图可以看出,两者是呈线性关系,相关系数为0.999,通过线性拟合可以得到关系式:
$$
P_{wall}=1.214*P_{package}+20.221
$$
其中$P_{package}$表示利用RAPL测量的Package功率,$P_{wall}$表示墙上功率。同样的,基于Stream基准测试程序进行上述实验可以得到相似的结果,其拟合的关系式为:
$$
P_{wall}=1.212*P_{package}+25.580
$$
基于ParFullCMS和Parsec结果显示如下,也是呈线性关系的。
¶墙上功率建模(Wall Power Modeling)
如前几节所示,线性模型非常适合,但不同工作负载的系数会有所不同。因此需要一种方法来校准任何任意工作负载的模型。本文使用机器学习技术开发了一种用于墙上功率的通用功率模型。请注意,为简洁起见,在本文的其余部分中,仅使用Machine 1来显示结果。其他机器表现出类似的趋势。
本文利用Stream, Stress-ng 和Parsec 基准测试程序的数据进行训练,并验证模型的有效性。然后利用ParFullCMS数据来测试模型的准确度。模型定义如下:
公式(1)
$$
E=\sum_{t=1}{N}{(wall_t-f(pkg_t))2} \tag{1}
$$
其中 $N$ 为训练数据的数量, $wall_t$ 为墙上功率, $f(pkg)$ 的定义如下:
$$
f(pkg)=\sum_{i=0}^{k-1}{a_i\cdot y_i(pkg)} \tag{2}
$$
其中 $A=(a_0,a_1,\dots,a_{k-1})$ 是一个 $1\times k$ 的向量。我们的目标是获得一个最优的 $f(x)$ ,使得 $E$ 达到最小。 $E$ 最小则其偏导数为0,那么有
$$
\frac{\partial E}{\partial a_j}=\frac{1}{N}\sum_{t=1}^{N}2\left ((wall_t) -\sum_{i=0}^{k-1}a_i\cdot y_i(pkg_t) \right )y_j(pkg_t) \tag{3}
$$
对该式进行简化,可以得到:
$$
\sum_{t=1}^{N}wall_t y_j(pkg_t)=\sum_{t=1}{N}\sum_{i=0}{k-1}a_i\cdot y_i(pkg_t)y_j(pkg_t) \tag{4}
$$
用矩阵表示为:
$$
A=WYT(YYT)^{-1} \tag{5}
$$
其中 $Y$ 是一个 $k\times N$ 的矩阵,$Y_{i,t}=y_i(pkg_t)$ , $W=(wall_0,\dots,wall_t)$ 。我们定义 $y_i(pkg)=pkg^i$ ,这意味着函数$f$由具有 $k$ 项的多项式定义, $A$ 成为从多项式回归得到的系数的向量。我们针对不同阶数的多项式 $k$ 求解上式,其中 $k$ 从1到4变化。
通过实验表明,线性关系得到的结果最好。