-
对于互联网服务与云计算不断增长的需求使数据中心内运行的服务器数量也由几百台迅速增至几万台,因此数据中心的电量开销巨大。例如,2011年,美国数据中心的能耗就达到了每年1 100万kW/h[1],同时其低负载的数据中心能耗是最大能耗的65%左右[2]。这是因为所有的数据中心都是根据高峰时刻的负载设计的,即一个数据中心的平均负载水平只有最高负载的60%[3]。
有很多关于数据中心节能的研究[4-8],寻找有效的方法在低工作负载时期关闭暂时无用的服务器非常重要[9-10]。当数据中心的负载增加时,这些服务器可再次开启。然而,这一项操作可能会使一些服务延迟,且对等待时间、业务阻塞率、系统平均业务数量等性能参数产生影响[9]。当服务器减少时,一些业务可能会遇到不可忽视的延迟,甚至可能堵塞。因此,在限制能耗的同时保持良好的性能有着重要的意义。
许多关于数据中心的研究都建立在所有服务器均有相同处理能力的同构环境假设上[9-10]。而实际上,数据中心会根据容量的增加以及规格的变化不断升级服务器[11]。随着时间的推移,最终数据中心将由一系列不同处理能力的异构服务器组成。在异构环境里分配业务时,不同的分配策略会导致功率效率的明显不同。譬如,一些业务在某个特定服务节点上要比在其他节点上运营得要快,这就意味着更少的处理时间以及更低的能耗。因此,在异构环境下选择需要被关闭的服务器又是一大挑战。
基于以上两点建立数据中心模型,其中排队系统为任务单独到达、任务缓存容量有限的M/M/n+ m1+m2数学模型。系统中所有的服务器根据其处理能力被分为3组。假设任意发送到数据中心的业务都在合适的服务器节点中接受服务,一旦服务结束,业务离开数据中心。基于实时的负载,根据在队列长度上设置的阈值来开启备用的服务器,根据系统中的总业务数量来关闭备用服务器,从而达到动态调整服务器数量以节约能源的目的。此外,采用优化策略来寻找最佳阈值。
-
采用排队论对第2节提出的节能数据中心模型进行数学建模。系统中多个服务器的最佳开启阈值是利用排队论实现节能的关键问题之一。
-
图 3为系统的状态转移图。由于该系统是M/M/n+m1+m2排队模型,首先要定义状态空间。在马尔科夫链中,静态概率就是系统中每个状态服从静态分布的概率。用随机变量x(i, j)表示静态概率,其中i,j分别表示系统中总的业务数量和服务器的状态。j=0时,只有第一组服务启动。j=1时,第一组服务器和第二组服务器都被启动;j=2时,第一组服务器、第二组服务器和第三组服务器都启动。基于状态空间以及状态转换,用Si0、Si1和Si2表示系统中服务器的3种宏观的工作状态。利用图 3中的马尔科夫链和马尔科夫链的状态转移概率守恒公式,可以得出以下结论:
首先考虑系统中只有0~i+θ1个服务并且只有第一组服务器开启的情况。其宏观状态Si0的状态转移为:
$$ \lambda x(i-1, 0) = i\mu x(i, 0){\rm{ }}1 \le i \le n $$ (1) $$ \begin{array}{c} \lambda x{\rm{(}}i, 0{\rm{)}} = n\mu x{\rm{(}}i + 1, 0{\rm{)}} + {\rm{(}}n + 1{\rm{)}}\mu x{\rm{(}}n + 1, 1{\rm{)}}\\ n + 1 \le i \le n + {\theta _1}-1 \end{array} $$ (2) 在第一组和第二组服务器处于打开的情况下,对于状态Si1有:
$$ \begin{array}{c} (n + 1)\mu x(n + 1, 1) + \lambda x(i, 1) = (i + 1)\mu x(i + 1, 1)\\ n + 2 \le i \le n + {\theta _1} + 1 \end{array} $$ (3) $$ \begin{array}{c} \lambda x(i, 1) + (n + {\theta _1} + 1)\mu x(n + {\theta _1} + 1, 1) = \\ (i + 1)\mu x(i + 1, 1) + \lambda x(n + {\theta _1}, 0) + \lambda x(n + {\theta _1}, 1)\\ n + {\theta _1} + 1 < i < n + {m_1} \end{array} $$ (4) $$ \begin{array}{c} \lambda x(i, 1) = (n + {m_1})\mu x(i + 1, 1) + \\ (n + {m_1} + 1)\mu x(n + {m_1} + 1, 2)\\ n + {m_1} + 1 < i < n + {m_1} + {\theta _2}-1 \end{array} $$ (5) 当第一、二和三组服务器同时处于开启状态,对于Si2有:
$$ \begin{array}{c} (n + {m_1} + 1)\mu x(n + {m_1} + 1, 2) + \lambda x(i, 2) = (i + 1)\mu x(i + 1, 2)\\ n + {m_1} + 2 < i < n + {m_1} + {\theta _2} + 1 \end{array} $$ (6) $$ (n + {m_1} + {m_2})\mu x(i + 1, 2) = \lambda x(i, 2)\;\;\;i \ge n + {m_1} + {m_2} $$ (7) -
对3.1节的状态公式进行迭代可以得到每个系统的状态概率:
$$ x(i, 0) = \frac{{{\lambda ^i}}}{{(i!){\mu ^i}}}x(0, 0)\quad \quad 1 \le i \le n $$ (8) 推出:
$$ x(n + 1, 1) = \frac{{{{\left( {\frac{\lambda }{{n\mu }}} \right)}^{{\theta _1}}}\frac{{{\lambda ^n}}}{{n!{\mu ^n}}}x(0, 0)}}{{\frac{{1-{{\left( {\frac{\lambda }{{n\mu }}} \right)}^{{\theta _1}}}}}{{1-\frac{\lambda }{{n\mu }}\frac{{n + 1}}{n}}} + \frac{{\mu (n + 1)}}{\lambda }}} $$ (9) 因此当$n + 1 \le i \le n + {\theta _1} -1$时,可以得到:
$$ x(i, 0) = {\left( {\frac{\lambda }{{n\mu }}} \right)^{i-n}}x(n, 0)-\sum\limits_{k = 0}^{i-1 - n} {{{\left( {\frac{\lambda }{{n\mu }}} \right)}^k}\frac{{n + 1}}{n}x(n + 1, 1)} $$ (10) 当$n + 2 \le i \le n + {\theta _1} -1$时,可得:
$$ \begin{array}{c} x(i, 1) = \frac{{{\lambda ^{i-(n + 1)}}}}{{A_i^{i-(n + 1)}{\mu ^{i-(n + 1)}}}}x(n + 1, 1) + \\ \sum\limits_{k = 0}^{i - (n + 2)} {\frac{{{\lambda ^k}(n + 1)}}{{A_i^{k + 1}{\mu ^k}}}} x(n + 1, 1) \end{array} $$ (11) 为了进一步简化表达式,先定义:
$$ \begin{array}{c} s1 \times x(0, 0) = (n + {\theta _1} + 1)\mu x(n + {\theta _1} + 1, 1)-\\ \lambda x(n + {\theta _1}, 0)-\lambda x(n + {\theta _1}, 1) \end{array} $$ (12) 因而当$n + {\theta _1} + 1 < i < n + {m_1}$时,有:
$$ \begin{array}{c} x(i, 1) = \frac{{{\lambda ^{i-(n + {\theta _1} + 1)}}}}{{A_i^{i-(n + {\theta _1} + 1)}{\mu ^{i-(n + {\theta _1} + 1)}}}}x(n + {\theta _1} + 1, 1) + \\ \sum\limits_{k = 0}^{i - (n + {\theta _1} + 1) - 1} {\frac{{{\lambda ^k}}}{{A_i^k{\mu ^k}}}} \frac{1}{{i\mu }}s1 \times x(0, 0) \end{array} $$ (13) 可求得:
$$ x(n + {m_1} + 1, 2) = \frac{{{{\left[{\frac{\lambda }{{(n + {m_1})\mu }}} \right]}^{{\theta _2}}}x(n + {m_1}, 1)}}{{\sum\limits_{k = - 1}^{{\theta _2} - 1} {{{\left[{\frac{\lambda }{{(n + {m_1})\mu }}} \right]}^k}} }} $$ (14) 当$n + {m_1} < i < n + {m_1} + {\theta _2}$时,有:
$$ \begin{array}{c} x(i, 1) = {\left[{\frac{\lambda }{{(n + {m_1})\mu }}} \right]^{i - n - {m_1}}}x(n + {m_1}, 1) - \\ \frac{{1 - {{\left[{\frac{\lambda }{{(n + {m_1})\mu }}} \right]}^{i -n -{m_1}}}}}{{1 -\frac{\lambda }{{(n + {m_1})\mu }}}}\frac{{n + {m_1} + 1}}{{n + {m_1}}}x(n + {m_1} + 1, 2) \end{array} $$ (15) $$ \begin{array}{c} x(i, 2) = \frac{{{\lambda ^{i-(n + {m_1} + 1)}}}}{{A_i^{i-(n + {m_1} + 1)}{\mu ^{i-(n + {m_1} + 1)}}}}x(n + {m_1} + 1, 2) + \\ \sum\limits_{k = 0}^{i - (n + {m_1} + 2)} {\frac{{{\lambda ^k}(n + {m_1} + 1)}}{{A_i^{k + 1}{\mu ^k}}}} x(n + {m_1} + 1, 2) \end{array} $$ (16) 为了简化再定义:
$$ \begin{array}{c} s2 \times x(0, 0) = (n + {m_1} + {\theta _2} + 1)\mu x(n + {m_1} + {\theta _2} + 1, 2)-\\ \lambda x(n + {m_1} + {\theta _2}, 1)-\lambda x(n + {m_1} + {\theta _2}, 2) \end{array} $$ (17) 则当$n + {m_1} + {\theta _2} + 2 < i < n + {m_1} + {m_2}$时,有:
$$ x(i, 1) = \frac{{{\lambda ^{i-(n + {m_1} + {\theta _2} + 1)}}}}{{A_i^{i-(n + {m_1} + {\theta _2} + 1)}{\mu ^{i-(n + {m_1} + {\theta _2} + 1)}}}}x(n + {m_1} + {\theta _2} + 1, 2) +\\\;\;\;\;\;\;\;\; \sum\limits_{k = 0}^{i - (n + {m_1} + {\theta _2} + 1) - 1} {\frac{{{\lambda ^k}}}{{A_i^k{\mu ^k}}}} \frac{1}{{i\mu }}s2 \times x(0, 0) $$ (18) 当$n + {m_1} + {m_2} \le i$时,可得:
$$ x(i, 2) = \frac{{{\lambda ^{i- (n + {m_1} + {m_2})}}}}{{{{[(n + {m_1} + {m_2})\mu]}^{i -n -{m_1} -{m_2}}}}}x(n + {m_1} + {m_2}, 2) $$ (19) 最后,以上所有概率相加之和应为1,即:
$$ \sum\limits_{i = 0}^{n + {\theta _1}} {x(i, 0) + \sum\limits_{i = n + 1}^{n + {m_1} + {\theta _2}} {x(i, 1)} + \sum\limits_{i = n + {m_1} + 1}^{ + \infty } {x(i, 2)} } = 1 $$ (20) 因此x(0, 0)可以求出,进而各个状态的概率都可以求得。
-
当得到状态概率的值后,就可以对数据中心系统的性能进行度量了。
1) 平均意义上的队列长度:
$$ \begin{array}{c} \Omega = \sum\limits_{i = n}^{n + {\theta _1}} {(i-n)x(i, 0) + } \\ \sum\limits_{i = n + {m_1}}^{n + {m_1} + {\theta _2}} {(i-n-{m_2})x(i, 1)} + \\ \sum\limits_{i = n + {m_1} + {m_2}}^{ + \infty } {(i - n - {m_1} - {m_2})x(i, 2)} \end{array} $$ (21) 2) 到达系统的每个业务平均意义上的等待时间:
$$ W{\rm{ = }}\frac{{\mathit\Omega }}{\lambda } $$ (22) 3) 令每个服务器的工作功率均为$P_{{\rm{busy}}}^k$,空载功率为$P_{{\rm{idle}}}^k$,关闭后的功率为$P_{{\rm{off}}}^k$,其中k∈{1, 2, 3}代表服务器所属的分组编号。则系统消耗的总功率为:
$$ \begin{array}{c} {P_{\rm{total}}} = \sum\limits_{i = 0}^n {x(i,0)} [iP_{\rm{busy}}^1 + (n - i)P_{\rm{idle}}^1 + ({m_{\rm{1}}} + {m_{\rm{2}}}){{\rm{P}}_{\rm{off}}}] + \sum\limits_{i = n + 1}^{n + {\theta _1}} {x(i,0)} [nP_{\rm{busy}}^1 + ({m_{\rm{1}}} + {m_{\rm{2}}}){{\rm{P}}_{\rm{off}}}] + \\ \sum\limits_{i = n + 1}^{n + {m_1}} {x(i,1)} [nP_{\rm{busy}}^1 + (i - n)P_{\rm{busy}}^2 + (n + {m_1} - i)P_{\rm{idle}}^2 + {m_{\rm{2}}}{{\rm{P}}_{\rm{off}}}] + \sum\limits_{i = n + {m_{\rm{1}}} + 1}^{n + {m_{\rm{1}}} + {\theta _2}} {x(i,1)} [(nP_{\rm{busy}}^1 + {m_{\rm{1}}}P_{\rm{busy}}^2 + {m_{\rm{2}}}{{\rm{P}}_{\rm{off}}}] + \\ \sum\limits_{i = n + {m_{\rm{1}}} + 1}^{n + {m_1} + {m_{\rm{2}}}} {x(i,2)} [nP_{\rm{busy}}^1 + {m_1}P_{\rm{busy}}^2 + (i - n - {m_1})P_{\rm{busy}}^3 + (n + {m_1} + {m_{\rm{2}}} - {\rm{i}})P_{\rm{idle}}^3] + \\ \sum\limits_{i = n + {m_1} + {m_2} + 1}^{ + \infty } {x(i,2)} [nP_{\rm{busy}}^1 + {m_1}P_{\rm{busy}}^2 + {m_2}P_{\rm{busy}}^3] \end{array} $$ (23) 下面给出本文的最优化模型。优化目标是最小化数据中心的能量消耗的同时保证数据中心系统的性能不被影响,即每个业务的平均等待时间不超过参数α。因此需要推算出系统达到最小能耗所需的最优阈值θ1和θ2。
最优化目标:
$$ {\rm{Minimize}}\begin{array}{*{20}{c}} &{{P_{\rm{total}}}} \end{array} $$ (24) 约束条件:
$$ W \le \alpha $$ (25) $$ n \le {\theta _1} \le n + {m_1} $$ (26) $$ n + {m_1} \le {\theta _2} \le n + {m_2} $$ (27) 由式(23)和式(24)可得总功率Ptotal与参数θ1和θ2是非线性关系。即使参数θ1和θ2已知的情况下,数据中心能耗系统的各状态概率的求解仍然是一个复杂的问题。故最优的阀值θ1和θ2无法通过上述模型直接求得。因此本文采用另外一种方法,即在θ1和θ2的取值范围内通过上述方程求解系统各个状态的概率,然后通过各个状态的概率得到相应的目标函数值Ptotal,最后对比找到最优开启阈值θ1和θ2。但这是一个NP问题。因所求参数θ1和θ2与最优目标为非线性关系且随着参数θ1和θ2取值范围的扩大,求解复杂度和方程的次数均呈指数增长。
-
实验环境为C++,电脑配置为3.0 GHz Intel CPU、4 GB内存。本文所有仿真结果中服务器的能耗按照文献[13]给出的Intel Xeon E5320进行计算。表 1给出了本文所有仿真结果的参数设置。
表 1 仿真参数设置
N α/s Pbusy1/W Pidle1/ W Pbusy2/W Pidle2/ W Pbusy3/W Pidle3/ W 150 250 210 120 240 150 270 180 表中,N表示服务器总数,α表示平均等待时间,$P_{{\rm{busy}}}^k$表示第k组服务器的工作功率,$P_{{\rm{idle}}}^k$表示第k组服务器的空载功率。
-
图 4反应了系统消耗功率和等待时间随时间变化的情况,其中总等待时间被设置为90 s。同时,该图从一定程度上反应了本文提出的服务器调度方案的原理。仔细观察该图可以发现,在系统刚启动时,平均等待时间随着业务数目的增大而加长。这是因为更多的业务进入队列等待执行,因此平均等待时间加长。然而,当业务数目增加到一定程度,即队列中的业务数目超过阈值θ1时,平均等待时间开始急剧缩短。这是因为第二组服务器的开启,队列中的业务被第二组服务器执行。同理,当总业务数超过N+θ1+θ2时,第三组服务器启动。同时,系统能耗随着第一组服务器和第二组服务的开启而增大。当第三组服务器开启后,系统能耗基本保持稳定,但是当第三组服务器关闭后,系统能耗降低。这是因为随着工作服务器数目的增加,系统能耗增加。为了能够清楚的看到系统能耗情况,图中的实线框给出了稳定的系统能耗,实线框的左边框对应的时刻是第三组服务器关闭的时刻。
图 5为不同参数阀值下的系统能耗值。从图中不同阀值的能耗曲线可得,虚线所代表的系统功率值大多数情况下稳定在150 W左右。而实线大多数情况下稳定在250 W左右。而虚线时参数θ1和θ2最大,实线时参数最小。因此可以推断出如下结论:1)参数值θ1和θ2设置较大时,系统功率变小。因为较大的参数值会减少开启的服务器个数;2)当阈值θ1和θ2较高时,功率消耗的抖动也更加频繁。由此可得当阈值较低的时候,功率的波动会更加频繁。
为了探讨参数λ和μ与系统功率的关系。图 6分析了不同λ和μ情况下的系统功率情况。除了参数λ和μ不同以外,其他参数都是固定不变的。可以看出系统消耗总功率在同一组参数的情况下是随着组数的增长而下降的。当在增大参数μ时,系统的平均服务时间会加长。这将导致系统的等待队列变长。因此会唤醒第二组和第三组服务器加入工作中,故第二组和第三组的功率会增加。当增大参数λ时,系统的业务到达率会变大,这将导致队长减小。因此第二组和第三组的服务器被打开的概率减小,故其能耗降低。
本文除了测试不同分组的功率消耗,还与文献[15]提出的策略对比了总功耗,如图 7所示。尽管在两种策略下,系统的功率在100个周期内都在不停的变化,但本文策略的抖动频率相比于文献[15]所提策略较低,即本文策略的系统稳定性更好,而本文策略在起初位置的突起,是由系统中任务到达的随机性引起的。
图 8再一次测试了两种策略的系统功率,可看出本文策略不再有激凸部分,而文献[15]提出的策略却因为随机的任务到达环境出现了突起。但两次仿真中,本文策略的抖动频率都比文献[15]的策略低。
此外,从两次仿真结果可以看出,两种策略的平均功率相差不大,但是本文策略可以使系统处于更加稳定的状态,系统的平均能耗和服务器的状态都会尽量维持稳定。在传统的大型数据中心内,为了满足业务峰值时期的需要,所有服务器都处于开启状态,因此即使是全部空闲的低负载时期,系统的最低功率依然有450 W,而本文策略的平均功耗大约是350 W。由此可见,本文策略节约了20%以上的能源,达到了本文的节能目标。
A Strategy for Queuing Theory-Based Performance and Energy Management in Heterogeneous Data Centers
-
摘要: 该文研究了怎样在一个数据中心内的几种具有不同处理能力的服务器之间,在消耗最小能量的同时根据等待时间保证性能要求。重点探讨了在给定基于等待时间的性能要求的前提下,使用动态开启/关闭一部分服务器的管理策略,实现最小化数据中心能耗的问题;使用排队论建立了数学模型来确定应开启的服务器的数目。实验结果表明,相比于不考虑服务器分组的调度策略,该方法可以减少能耗,其策略也为研究异构数据中心的能耗与性能的权衡提供了途径。Abstract: With the increasing popularity of Internet services and cloud computing, both energy efficiency and performance guarantees are major concerns for data center operators. However, most of the previous works only address this problem in homogeneous data center environments. This paper investigates how to guarantee performance requirement in terms of waiting time so as to minimize power consumption among multiple types of servers with different processing capabilities in a data center. We address the problem of minimizing the energy consumption of a data center by means of dynamic management policies that switch on/off a certain quantity of servers necessary under given performance requirements in terms of waiting time. We develop a mathematical model using queuing theory to determine the number of servers that should be used i.e., powered on. Experiment results show that our scheme can reduce power consumption compared with the non-group division strategy. Our scheme provides an analytical approach for studying the power-performance tradeoff in the heterogeneous data center.
-
Key words:
- energy consumption /
- heterogeneous datacenter /
- queuing theory /
- waiting time
-
表 1 仿真参数设置
N α/s Pbusy1/W Pidle1/ W Pbusy2/W Pidle2/ W Pbusy3/W Pidle3/ W 150 250 210 120 240 150 270 180 -
[1] BROWN R E, BROWN R, MASANET E, et al. Report to congress on server and data center energy efficiency: Public law 109-431[R]. Ernest Orlando Lawrence Berkeley National Laboratory. Berkeley, USA: [s. n. ], 2007. [2] GREENBERG A, HAMILTON J, MALTZ D A, et al. The cost of a cloud:Research problems in data center networks[J]. ACM SIGCOMM Computer Communication Review, 2008, 39(1):68-73. doi: 10.1145/1496091 [3] BENSON T, AKELLA A, MALTZ D. Network traffic characteristics of data centers in the wild[C]//Internet Measurement Conference (IMC). Melbourne, Australia: [s. n. ], 2010. [4] DENG X, WU D, SHEN J, et al. Eco-aware online power management and load scheduling for green cloud datacenters[J]. IEEE Systems Journal, 2016, 10(1):78-87. doi: 10.1109/JSYST.2014.2344028 [5] ZHANG Q, SHI W. Energy-efficient workload placement in enterprise datacenters[J]. Computer, 2016, 49(2):46-52. doi: 10.1109/MC.2016.58 [6] ROSSI F, XAVIER M, ROSE C, et al. E-eco:Performance-aware energy-efficient cloud data center orchestration[J]. Journal of Network and Computer Applications, 2017, 78:83-96. doi: 10.1016/j.jnca.2016.10.024 [7] XU G, DAI B, HUANG B, et al. Bandwidth-aware energy efficient flow scheduling with SDN in data center networks[J]. Future Generation Computer Systems, 2017, 68:163-174. doi: 10.1016/j.future.2016.08.024 [8] KIM J, CHANG H, JUNG Y, et al. Energy conservation effects of a multi-stage outdoor air enabled cooling system in a data center[J]. Energy and Buildings, 2017, 138:257-270. doi: 10.1016/j.enbuild.2016.12.057 [9] MAZZUCCO M, DYACHUK D, DETERS R. Maximizing cloud providers revenues via energy aware allocation policies[C]//IEEE International Conference on Cloud Computing. Miami, Florida: IEEE, 2010. [10] DYACHUK D, MAZZUCCO M. On allocation policies for power and performance[C]//11th ACM/IEEE International Conference on Grid Computing (Grid 2010)-Energy Efficient Grids, Clouds and Clusters Workshop. Brussels, Belgium: IEEE, 2010. [11] GANDHI A, GUPTA V, HARCHOL-BALTER M, et al. Optimality analysis of energy-performance trade-off for server farm management[J]. Performance Evaluation, 2010, 67(11):1155-71. doi: 10.1016/j.peva.2010.08.009 [12] ZHENG X, CAI Y. Optimal server provisioning and frequency adjustment in server clusters[C]//IEEE 39th International Conference on Parallel Processing Workshops. [S. l. ]: IEEE, 2010. [13] GHAMKHARI M, MOHSENIAN-RAD H. Energy and performance management of green data centers:a profit maximization approach[J]. IEEE Transactions on Smart Grid, 2013, 4(2):1017-1025. doi: 10.1109/TSG.2013.2237929 [14] GUENTER B, JAIN N, WILLIAMS C. Managing cost, performance and reliability tradeoffs for energy-aware serverprovisioning[C]//IEEE International Conference on Computer Communications. [S. l. ]: IEEE, 2011. [15] SCHWARTZ C, PRIES R, TRAN-GIA P. A queuing analysis of an energy-saving mechanism in data centers[C]//IEEE International Conference on Information Networking (ICOIN). [S. l. ]: IEEE, 2012. [16] WANG W, LUO J, SONG A, et al. Heterogeneity aware optimal power allocationin data center environments[J]. Pervasive Computing and the Networked World, 2013, 7719:513-528. doi: 10.1007/978-3-642-37015-1_45 [17] LI K. Optimal power allocation among multiple heterogeneous servers in a data center[J]. Sustainable Computing:Informatics and Systems, 2012, 2(1):13-22. doi: 10.1016/j.suscom.2011.11.002 [18] INTEL CORP. Intel math kernel library 10. 0-linpack[EB/OL]. [2016-05-10]. http://www.intel.com/cd/software/products/asmo-na/eng/266857.htm,2007.