『冲刺』活捉那只抢算力的谷歌员工!挤占计算资源?博弈论或可破解数据中心“囚徒困境”( 二 )


博弈论为这类问题提供了可行的解决方案——实际上它已被应用于计算机网络和计算机系统 。 我们从这两个领域获得了灵感 , 但我们也必须解决它们的局限性 。 在计算机网络中 , 有很多工作通过设计机制来管理自利的和不协调的路由器以避免拥塞 。 但是这些模型只考虑对单个资源网络带宽的争用 。 在数据中心计算机集群和服务器中 , 有各种各样的资源需要争夺 。
在计算机系统中 , 人们对考虑多种资源的资源分配机制产生了浓厚的兴趣 , 特别是一种称为支配资源公平性的机制 。 然而 , 这类工作仅限于性能模型和处理器与内存的比率 , 它们并不总是反映数据中心的真实场景 。
“计算冲刺”引起“公地悲剧”
为了提出适用于数据中心的博弈论模型 , 我们深入研究了硬件架构的细节 , 从最小的层次开始:晶体管 。
长期以来 , 晶体管在缩小体积的同时耗散的功率越来越小 , 部分原因是降低了工作电压 。 然而 , 到2005年左右 , 这种被称为登纳德缩放比例的定律已被打破 。
『冲刺』活捉那只抢算力的谷歌员工!挤占计算资源?博弈论或可破解数据中心“囚徒困境”
图片

结果就是 , 对于固定的电力预算 , 处理器不再以我们习惯的速度变快 。 一个临时的解决方案是将多个处理器核心放在同一块芯片上 , 这样大量的晶体管仍然可以在经济上得到冷却 。 然而 , 很明显 , 你不可能同时全速运转所有的核心 , 否则芯片会熔化 。
2012年 , 计算机架构师提出了一种名为“计算冲刺”(computational sprinting)的变通方法 。 其概念是处理器核心可以在短时间间隔(称为冲刺)内安全地突破它们的能量预算 。 在一次冲刺之后 , 处理器必须在下一次冲刺之前冷却下来;否则芯片就会被熔毁 。 如果处理正确 , “冲刺”可以使系统对工作负载的变化做出更快速的响应 。 “计算冲刺”最初是为智能手机等移动设备的处理器而提出的 , 因为这些处理器必须限制用电量 , 以节省电量 , 同时避免“烫伤”用户 。 但“冲刺”很快就应用于数据中心来处理计算需求的激增 。
这就是问题所在 。 假设自私的用户们拥有启用了带有“冲刺”的服务器 , 这些服务器在数据中心中共享一个电源供应 。 用户可以通过冲刺来提高处理器的计算能力 , 但如果大部分处理器同时冲刺 , 那么电力负荷将会激增 。 然后断路器跳闸 。 这就迫使不间断电源(UPS)中的电池在系统恢复时提供电力 。 在这样的紧急情况之后 , 所有的服务器都必须在电池充电的时候以额定功率运行——不允许冲刺 。
这种情形是经典的“公地悲剧”(tragedy of the commons)的一个版本 , 英国经济学家威廉·福斯特(603806,股吧)·劳埃德(William Forster Lloyd)在1833年的一篇文章中首次提出了这一观点 。 他描述了如下的情况:假设牧牛人共享一块土地来放牧他们的牛 。 如果一个牧民把超过分配数量的牛放到公共草地上 , 这个牧民可以获得边际收益;但如果许多牧民这样做 , 过度放牧将破坏土地 , 伤害所有人 。
我们与当时杜克大学(Duke University)的博士生Songchun Fan一起 , 把“冲刺”战略当作公地悲剧来研究 。 我们建立了一个关注两个主要物理约束的系统模型 。 首先 , 对于服务器处理器 , 冲刺要求处理器在芯片散热时等待 , 从而限制了未来的操作 。 其次 , 对于一个服务器集群 , 如果断路器跳闸 , 那么所有的服务器和处理器必须在UPS电池充电时处于等待状态 。
我们设计了一个博弈游戏 。 在每一轮比赛中 , 用户可能处于三种状态中的一种:活跃状态、冲刺后的冷却状态、紧急断电后的恢复状态 。 在每一轮游戏中 , 用户唯一能决定的就是当他们的处理器处于活动状态时是否进行冲刺 。 用户希望优化他们的冲刺以获得好处 , 比如提高吞吐量或减少执行时间 。 但也要注意 , 这些好处会随着冲刺的发生时间而变化 。 例如 , 冲刺在需求量大的时候更有益 。


推荐阅读