这篇文章是回答一位用户的问题。
问:站长,我是一个在读研究生,正在学习分布式计算、高性能集群计算方面的知识,Laxcus分布式操作系统也是我的学习模板之一,但是我发现,无论是编程开发还是使用操作,Laxcus和Slurm、HTCondor都非常不一样,请问站长,Laxcus的产品定位是什么,我应该怎么理解Laxcus分布式操作系统?
答:你这个问题很大!以前大家都在问各种技术,现在有人开始探讨Laxcus分布式操作系统背后的产品设计和理念了,是不是我们的问答栏目升级了^_^?那我就来试着答一下。
先说产品定位。Laxcus分布式操作系统的目标,就是通过硬件的计算机集群和软件的分布式技术,把原来高高在上的超级计算机投送到个人用户手上,打造一台每个人都会用,每个人都用户得起的“个人超级计算机”,换句话说,这就是一个“个人超算”,或者说是“桌面起算”。
这么说是有它的理由的。这十年里,随着云计算产业的掘起,原来大规模、超大规模存储计算的硬件环境,已经从大型机、高性能服务器、超级计算机,切换到云服务平台和PC服务器上面。Laxcus分布式操作系统顺应了这股潮流,通过新的网络通信技术和软件技术,把低端硬件设备连接起来,再结合虚拟化技术、冗余容错等手段,将大规模、超大规模的存储计算成本,降到白菜价价格。
另外在ICT应用市场,也有几个明显的变化:1. 应用业务向云端迁移已经是大势所趋。2. 用户对存算一体的需求越来越大,越来越复杂,同时对降本增效的要求越来越高;3.这些业务,越来越需要大量计算机联机处理,这些原来属于企业级业务,但是实际上随着各种“智慧型”业务向个体场景迁移延伸,也为“个人超算”提供了大量市场机会。所以Laxcus分布式操作系统也在借着这股东风,深度嵌入这个新兴市场。
现在“个人超算”这个市场环境,有点象上世纪70年代的PC革命,当年的乔布斯,就是看到了个人计算机市场的巨大潜力,通过重新设计的硬件和软件,把计算机从高不可攀的地位拉下来,让每个人对计算机用得起、用得上,大家对计算机不再仰望。这样的市场一旦出现,产业生态也就会随之跟上建立起来。目前的“个人超算”市场,其实也适用这个道理。
所以说,我们把Laxcus分布式操作系统打造成一台“个人超算”,是有它的缘由和背景的。Laxcus的目标和PC革命一样,让每个人对超级计算机不再“高山仰止”,使每个人面对超级计算机时,都能用得起、用得上。
再来说软件。
Laxcus分布式操作系统的本质仍然是软件,只不过它是能够运行应用软件的基础软件。
在这一点上,Laxcus分布式操作系统和Windows、Linux是一样的,都是应用软件的运行平台。所不一样的是,在Laxcus是一个多机操作系统,同时管理很多台计算机。这个平台上,运行的都是分布式应用软件,而Windows、Linux是单机操作系统,只能管理一台计算机,上面的软件是单机应用软件,只能在一台计算机上运行。
由于Laxcus本身的分布式特点和支持能力,在Laxcus上运行的应用软件,应用软件的并行处理规模、算力消耗、数据处理效率,要比单机操作系统上的应用软件大得多,而且随着计算机节点数量增加,处理能力也是呈指数级放大的。
Laxcus分布式应用软件,链接了终端、边缘端、云端,多端协同,驱动数据、算力、机器算法,处理大规模、超大规模存储计算工作。
这是Laxcus做为多机操作系统,和Windows、Linux这些单机操作系统最大的区别。
咱们再来说说你提到的Slurm、HTCondor。
Slurm本质是一个并行任务调度器,所做工作是调配并行运行的应用软件。编写接受Slurm调度的应用软件,需要使用它的MPI。这个开发工作其实是比较复杂的,需要非常熟悉Slurm和MPI开发者才能掌握,你做为学习者,感触肯定比我深。另外在Slurm上运行应用软件,也需要专业人士来操作,普通人很难做到这一点。
而Laxcus就不一样了,它做一个分布式操作系统,有自己完整的技术功能体系结构,也包括图形操作界面、字符操作界面。对开发者来说,编程基础是DSDK(分布式软件工具包),使用DSDK的编程难度要比MPI容易很多。很多的基础功能,比如网络通信、业务流、工作流的调度分配,都是由系统来完成。编程体验方面,用DSDK开发更接近于编程单机应用软件。开发者只需要根据DSDK,将应用业务嵌入编程接口,在配置脚本中指定分派工作流程,开发工作就基本完成。大大节省的开发时间提高了开发效率。在使用操作方面,因为有图形桌面的存在,Laxcus分布式应用软件也都是图形化界面,任何用过Windows的用户都不会陌生,所以使用难度也降低了一个等级。
如果将二者对比,可以这样说,Slurm提供的并行任务调度器功能,在Laxcus分布式操作系统的Call节点上有相应的实现。而Laxcus包含的很多技术和功能,Slurm是不具备的。HTCondor也是类似的情况。
所以无论从哪个方面来说,Laxcus和Slurm、HTCondor都不是一个维度的产品。
最后咱们从使用角度,来说说Laxcus分布式操作系统,为什么是一台“个人超算”。
请看下面这两张图片,分别是Laxcus分布式操作系统的拓扑结构和Laxcus图形桌面。在Laxcus拓扑环境里,图形桌面属于前端,位于Front节点,而Front节点后面,有一整个计算机集群来支撑它的运行。这个计算机集群规模是弹性变化的,可以从几台计算机,到几十万、上百万台计算机。它能够输出的庞大算力,是Windows、Linux这些单机操作系统无法比拟的,这也是Laxcus做为多机操作系统的巨大优势所在。它能够瞬间完成很多Windows、Linux无法完成的存储计算工作,起码是Windows、Linux短时间不能完成的工作。
Laxcus分布式操作系统拓扑结构
Laxcus分布式操作系统图形桌面
用户进入Laxcus计算机集群的流程是这样:首先需要启动桌面进行登录,输入参数登录成功后,Laxcus分布式操作系统中的后端的计算机集群,为登录用户分配一个虚拟的计算机集群。虚拟计算机集群的本质就是从物理计算机集群环境里,分出一段空间,独享给登录者使用。虚拟计算机集群,在用户登录时分配,用户注销退出后释放。这个释放回收的虚拟计算机集群,会进入Laxcus分布式操作系统的运行队列,留待分配给下一个登录者使用。从而实现了最大化复用计算机集群资源,让尽可能多的人接触使用到超级计算机,同时降低使用成本的目的。做为操作系统,Laxcus分布式操作系统的这个特点,是Windows、Linux不具备的。
下面再演示一下Laxcus分布式应用软件是如何运行的。因为图形界面把一些功能隐去了,为了更好理解,咱们通过字符界面和命令行,再结合Laxcus拓扑结构图,来解释分布式应用软件运行过程。
首先我们需要在字符界面的分布式终端上启动应用软件,命令是“RUN DAPP”,在命令后面,是一个分布式应用软件的组件名称,本次显示分布式排序,输入“BENCHMARK.SORT”这个名称。
然后是输入参数,包括生成数据的节点数量,排序数据的节点数量,排序数据容量、升序/降序的选择,是不是使用GPU参与排序。这些参数输入完成后,图形桌面通过系统底层的DSDK接口和网络,以RPC方式投递给Laxcus集群的Call节点,Call节点将为它分配资源,整个过程类似Slurm上的处理,只不过这些工作对用户完全透明。
这个分布式处理工作的具体执行是:Data节点的From阶段产生排序数据,经过重组后,分配到Work节点的To阶段执行。Work节点在Laxcus分布式操作系统里,是专门用来执行计算工作的节点,而Data节点则是用来存储数据的节点。它们的分布式排序工作,由Call节点进行协调,Work节点的To阶段工作支持迭代处理,直到最后把排序计算工作处理完毕,再由Call节点把结果反馈到Front节点的图形桌面,显示在屏幕上面。一个分布式计算工作正式完成。
一个Laxcus简单的分布式应用软件,涉及分布式调度、分布式存储、分布式计算等分布式领域所有基础工作
Laxcus分布式操作系统整个的计算工作,因为基础硬件成本、计算机集群资源复用、运维成本、软件开发成本、用户学习成本,结合起来的综合成本,相比专业的超级计算机、HPC、Slurm、HTCondor等硬软件的组合,它的成本更低。而用户的操作体验,也比它们更容易更简单,更方便普通用户的操作使用。
以上就是对Laxcus分布式操作系统的产品、设计、技术、功能等问题的解答,不知道是不是满意?
其实还有一点隐情,目前我们国家在ICT领域被处处卡脖子,从CPU、FP加速卡,到光刻机、晶圆、EDA软件无一例处,如果我们从基础软件领域发力,通过组合低性能硬件设备,获得高扩展能力,解决基础算力问题,那么最终目标的各种高性能计算问题,大规模、超大规模存储计算工作也就迎刃而解了。这也是Laxcus分布式操作系统坚持持续研发的另一个主要动力,而且我们也已经做到了,得到了市场的充分验证。
Laxcus是一个开源、容错、高扩展、多人共享、多机协同分布运行的操作系统,支持百万级节点规模的计算机集群、亿级用户在线。通过分布式应用软件,处理大规模、超大规模的存储和计算工作。