推特有一位博主发贴表示,和微软工程师聊GPT-6训练集群项目,他们表示很烦,因为要在不同地区的GPU之间配置高带宽网络连接。博主回问,那么为什么不把H100集群放在同一个地区呢?微软工程师回答,他们试过,但是现实不允许,因为10万个H100放在一个地区,电网撑不住。

在这个博文里,微软其实有两个问题:
1. 如果把10万个H100放在同一个地区,电网负荷太高,会搞崩电网。
2. 如果把10万个H100分别放在不同的地区,那么需要更多网络带宽,网络通信会是瓶颈。对于超大规模数据集的AI训练,会影响延迟训练效果,也是问题。
对于微软遇到的问题,在Laxcus分布式操作系统在设计之初就已经预估到了,对此的解决方案是:
1. 用多集群的分散算力取代单集群的集中算力,化解电力压力。
2. 用卡间计算和网间计算的结合,重新聚合算力,完成计算工作。

这两个问题,咱们一个个说。
首先,从本质来说,Laxcus分布式操作系统即是一个多机操作系统,也是支持多集群并行的操作系统。从这个特点来说,Laxcus分布式操作系统是同类产品的唯一。从体系架构上来说,Laxcus分布式操作系统分为后端和前端两个部分。在后端,Laxcus把海量物理的硬件的计算机,组成一台虚拟的软件的“超级计算机”,统一管理所有软硬件资源,不论这些计算机分散在哪里,逻辑上属于一台计算机。在前端,Laxcus分布式操作系统具有与传统单机操作系统一样的图形界面和字符界面。Laxcus后端的集群资源,可以根据用户需要,由管理员分配给用户。当用户通过前端界面操纵后端的计算机集群时,不论后端有多少台计算机,在前端就像是使用一台计算机。这样即解决了资源管理问题,在人机交互界面又与传统单机操作系统保持一致,符合用户使用习惯。
在Laxcus分布式操作系统的语义规范里,后端的计算机集群,以“域”为计量单位。一个计算机集群里,管理节点处于核心地位,它负责监督、维护整个集群的运行,作用非常重要。管理节点实质也是一台计算机,也受到自身CPU、内存、网络接口和带宽等硬件性能的限制,随着集群内计算机数量的增加,它的管理负荷也在随之升高。因为有这样的限制,在实际部署时,一个集群内的计算机数量是不可能无限增加。以IB网络为例,根据我们对多种硬件和应用的组合测试显示,当一个集群内的节点数量达到8000至10000这个范围时,会出现管理峰值,超过这个范围,稳定性会大打折扣。但是在实际使用中,用户对数据存储和计算需求总是在持续增加的,这样就产生一个矛盾:如何在保证集群稳定运行的情况下,仍然能够满足用户更大规模存储数据和计算数据需要?
多域并行集群就成为这样一个选择。
Laxcus的多域并行集群是对现有单域集群的升级和改进。通过把原来多个孤立运行的集群连接起来,在这些集群之上,建立更高一层的管理模型,实现一个两级的管理架构。这个两级架构的集群,在Laxcus中被称为“主域集群”,原来的集群成为它下属的子集群,这个集群被称为“子域集群”。子域集群接受主域集群的管理,实时向主域集群汇报自己的运行状态。按照Laxcus对集群的设计定义,子域集群需要集中在一个物理环境里,主域集群允许跨地域分散存在。就是说,如果A子域集群的机房在北京,B子域集群的机房在广州,天津机房是C主域集群,只要它们之间能够通过网络进行通信,就可以在天津的C主域集群管理下协同工作。
通过这样的组合,集群的节点数量获得巨大的提升,极大地拓展了数据存储和计算能力,满足了当前包括未来相当长一段时间内数据处理的需要。在我们组织的跨域测试中,主域集群管理下的计算机节点数量可以达到100万级的规模,数据的存储能力达到EB量级。这样的计算机规模,在多集群并行情况下,管理10万块H100 GPU不是问题。
第二个问题,与Laxcus分布式操作系统的计算体系有关。
因为Laxcus是多机操作系统是针对第三代算力互联网设计开发的操作系统,主要处理大规模、超大规模计算工作。它相对传统单机操作系统的优势是:用多机计算取代单机计算,用并行计算取代串行计算,这样就能够千百倍提高计算效率。在传统单机操作系统上做不好或者需要长时间计算的工作,在Laxcus分布式操作系统上,都可以快速完成。简单地说就是用空间换时间,通过并行处理压缩计算提升计算效率。具体到执行层面,是卡间计算和网间计算共同来完成解决。

卡间计算和网间计算被封装DSDK里面,是DSDK的一部分。
DSDK(Distributed SDK)是Laxcus分布式操作系统的一套分布式编程接口,供开发者编写分布式应用软件时使用。在DSDK里面,有各种各样的接口,比如网络通信、虚拟空间、分布式计算框架、工具的接口。使用DSDK,开发者可以像编写传统单机操作系统的应用软件一样,编写运行在Laxcus分布式操作系统上的应用软件。其中的计算工作,主要由卡间计算和网间计算来提供和负责执行。
关于卡间计算,如果简单理解,就是一台计算机内部,多块GPU之间或者多块CPU之间的计算行为。
卡间计算是基于单节点状态下大数据集和复杂计算工作,主要利用高速通信接口将计算任务分配给不同的GPU和CPU,并在它们之间共享数据和计算结果。这样做可以显著提高计算效率,缩短计算时间。如果要找一个对标产品,卡间计算类似英伟达的CUDA计算框架,只是卡间计算的“软件属性”更纯粹。
相比卡间计算,网间计算是在一个单域集群的多台计算机之间,或者单域多集群的多个单域集群之间的计算行为。执行网间计算的前提是已经通过Laxcus分布式操作系统实现计算机集群组网,并给用户分配了一定的计算资源。
网间计算比卡间计算是更加复杂且专业化,涉及到更多的网络技术、硬件架构、系统管理、冗余容错、应用开发方面的技术知识。因为网间计算是在多个单域集群和多台计算机之间执行的计算工作,任何一个节点或者集群的故障,都可能导致网间计算失败,所以网间计算需要一个稳定可靠的网络环境。网间计算使得计算机集群能够更加高效地处理大规模计算任务,为用户提供强大的计算和可扩展能力,也为未来有更多的算力中心组网提供了基础技术支撑。另外,由于网间计算需要大量数据传输,为了降低网络压力,减少数据传输延迟,降低计算时间,网间计算有一条黄金法则:用移动计算而不是移动数据计算。这项功能被集成在DSDK里面,届时希望开发者参照执行。
卡间计算和网间计算,被集成在Laxcus分布式操作系统7.0版本里面,目前处于产品研发和测试阶段,未来会继续根据算力业务需求和变化升级,需要更多的丰富和优化。
Laxcus分布式操作系统研发团队正在扩招中,岗位包括:技术合伙人、项目主管、核心开发人员,公司提供了丰厚的股权和期权奖励,欢迎“有想法”和“不安分”的小伙伴联系我们,加入Laxcus分布式操作系统研发团队,抓住人工智能和算力互联网发展浪潮红利!





