OSDI 2020 | 微软亚洲研究院论文一览

编者按:OSDI 是计算机系统软件领域全球最顶级的会议之一 , 每两年举办一届 , 被誉为“操作系统原理领域的奥斯卡” , 拥有极高的学术地位 。 第14届 OSDI 将于2020年11月4日至6日召开 。 此次会议投稿398篇 , 共录用论文70篇 , 录用率不足18% 。 本文中 , 我们将为大家介绍微软亚洲研究院被录取的6篇论文 。
拜占庭有序共识:对拜占庭共识的扩充
Byzantine Ordered Consensus without Byzantine Oligarchy
论文链接:
代码地址:
区块链是当前产业界和学术界十分关心的一种新型应用模式 , 其核心目标是在分布式、无信任的情况下达成共识 。 而分布式、无信任共识问题是系统领域中的经典理论问题 。 拜占庭共识(Byzantine Consensus)是无信任情况下达成共识的一个经典成果 。 在各种区块链中 , 许可链(Permissioned Blockchain)系统看起来可以很自然地利用拜占庭共识的结果达到目标 。
然而 , 在微软亚洲研究院和康奈尔大学合作发表的论文 “Byzantine Ordered Consensus without Byzantine Oligarchy” 中 , 研究员们揭示了事情并没有看上去那么简单 。 在传统的拜占庭共识问题中 , 所有正确节点需要达成一致的执行顺序 , 而具体达成什么样的顺序并不重要 。 但是 , 研究员们意识到 , 在依赖拜占庭共识的许可链中 , 节点的利益与该顺序紧密相关 。 例如在应用于拍卖或者交易的许可链中 , 不同节点提交的购买请求的执行顺序决定了哪些节点能够最终交易成功 。 在交易中 , 每个节点都对该顺序拥有话语权 , 并有义务阻止恶意节点操纵该顺序来获利 。 然而 , 共识问题的经典定义中并没有与顺序正确性相关的描述 。
因此 , 在论文中研究员们首次提出了一种新的概念——“拜占庭有序共识” , 通过引入顺序正确性维度扩充了共识问题的经典定义 。
同时 , 该论文提出了一个新的实现拜占庭共识的系统构架 , 该构架通过分离给命令排序的步骤和节点达成共识的步骤 , 来高效地满足新概念中所定义的顺序正确性 , 阻止恶意节点单方面控制执行顺序 。 论文还提出并实现了新的 Pompe 协议 , 将传统的线性一致性原则自然地扩展到了顺序正确性维度 。 大规模跨多个数据中心的实验表明 , Pompe 可以很好地在满足顺序正确性的条件下达到高性能:在执行时间大致相同的前提下 , Pompe 可以通过在命令排序和节点达成共识两个步骤中采用批量命令处理方式获得比其他拜占庭共识协议更高的吞吐率 。
这篇论文展示了新的应用场景可以对经典计算机理论产生新挑战 , 驱动计算机理论进一步发展 , 让新理论满足新的需求 , 从而达到理论从实践中抽象而生又可以应用回实践中的良性循环 。
HiveD:新的多租户 GPU 集群管理方案
HiveD: Sharing a GPU Cluster for Deep Learning with Guarantees
论文链接:
代码地址:
随着深度学习训练需求的不断扩张 , 很多组织和机构都会选择自建多租户集群来共享昂贵的 GPU 资源 。 然而现有的 GPU 集群管理方案因为使用了 GPU 配额(Quota)机制 , 可能导致严重的共享异常(Sharing Anomaly)现象:某些租户的深度学习任务甚至比在私有集群中性能更差 。 为了从根本上解决该问题 , 微软亚洲研究院和微软(亚洲)互联网工程院、北京大学、香港大学合作提出了一个新的多租户 GPU 集群管理方案 HiveD , 通过新的资源抽象和调度框架从而100% 保证共享安全(Sharing Safety) , 同时不失一般性地和任何任务调度策略兼容 。
现有集群管理方案无法满足共享安全的根本原因是因为采用了 GPU 配额这一资源抽象 , 使得租户无法对 GPU 拓扑资源进行预留 。 HiveD 首先提出了一种新的资源抽象 , 被称为 Cell(类比蜂巢 Hive 中的蜂窝) 。 研究员们通过多级 Cell 来描述 GPU 集群拓扑的层级组织 。 如图1所示 , 一个 Cell 就是一个由同一级拓扑结构互联的 GPU 的集合 。 Cell 的定义取决于所管理的 GPU 服务器集群的拓扑组织方法 , 并不只限于图1所示的形式 。
OSDI 2020 | 微软亚洲研究院论文一览文章插图
图1:HiveD 提供的基于多级 Cell 的资源抽象
在 Cell 的基础上 , HiveD 会为每个租户提供一个虚拟私有集群(Virtual Private Cluster , 简称 VC) 。 每个租户的 VC 显式定义了它拥有的各级 Cell 的配额 。 有了 VC 作为参考 , HiveD 可以轻易地分辨出每个租户的任务可以使用什么 GPU 拓扑 。 而用户也可以根据自己任务的需求 , 灵活地为自己的任务选择消耗什么级别的 Cell 。