超算互联网统一存储平台技术研究

大家好,我是来自山东省计算中心(国家超级计算济南中心)的王春晓,我从2022年开始参与超算互联网的项目,主要负责算网统一存储平台的研发,在存储基座方面也做了很多调研,最后选择了Alluxio平台,经过一年多的努力,也取得了一定的进展,非常感谢Alluxio公司提供的支持和帮助。

接下来我们将围绕超算互联网的主题,从三个方面和大家进行分享:

(1)超算互联网建设中存在的问题和挑战;

(2)超算互联网统一存储平台关键技术的研究;

(3)超算互联网的应用和未来发展

观看完整分享

一、超算互联网建设中存在的问题和挑战

首先向大家简要介绍一下国家超级计算济南中心,它创建于2011年,是我国国产服务器“神威蓝光”的诞生地,当然现在神威蓝光的规模,已经从千万亿次达到百亿亿次了。从2019年开始,我们在国产平台基础上就开始研建通用平台。也就是山河超级计算平台,CPU、GPU、存储带宽体量都达到了相当大的规模,对山东省的很多行业起到了重要支撑作用。

从2009年起,我国陆续成立了很多超算中心,到2023年8月,我们国家有14家国家级的超算中心,智算中心大概有30多个,大型的云数据中心有500多个。这样的体量,在全球算力的供给也是前列的。

如今随着大模型等很多的需求激增,算力方面也暴露了一些不足。这和我们在应用发展方面的复杂程度脱不开关系:现在的应用已经不是靠单算力就能解决的阶段,以前可能拿着一些数据,拿着模型到某个资源上跑一跑就可以。现在是多算力阶段,在一些规模相对比较大的应用场景,对于算力和存储的规模、种类都提出了自己的需求。比如像云计算、高性能计算、AI计算等融合计算,以及我国提出的东数西算的场景,如果只是在某一个区域单纯提高它的算力或单纯提高存储,其实很难解决问题。当然我国这种算力的需求和资源的分布本身就存在着地域差异,这也是我国提出建设超算互联网的初衷。

2023年4月,科技部启动了建设国家超算互联网的工作,构建一体化的超算算力网络和服务平台。国家超级计算济南中心也属于超算互联网单位之一,现在做的主要是对广域的算力存储和网络进行统一的资源管控和协调调度,实现资源的优化布局。

国家超级计算济南中心从2016就开始布局建设超算互联网,并在各个层面做了工作。当然在算力网络建设和应用方面也遇到了很多问题。

1、第一个就是多样化的算力平台问题,包括各式各样的云平台、AI平台、存储平台层出不穷;

2、第二个就是资源异构的问题,包括国产集团芯片标准都非常不同,存储系统也是各式各样的接口,非常分散,结构很复杂,协议比较多,这就导致很难实现互联互通,需要有一个统一的平台搭建;

3、第三个是算力分配不均匀,这是我国普遍存在的问题。以山东省为例,计算在济南,存储在淄博,如果中间网络存在瓶颈,基本很难实现远程的挂载、调用甚至是传输。

还有一些复杂的应用场景,比如海洋气象遥感这些领域,他们本身的操作流程就比较复杂,可能数据存储在一个地方,需要流转到另一个地方进行数据的预处理,模拟仿真、模型训练等操作,但是这些操作又可能要在不同的平台上进行,甚至要在不同的区域进行,如果没有一个一体化的服务平台,很难行得通,很难精通所有平台的使用方式,这些问题和挑战也是我们打造超算互联网核心要解决的。

这是超算互联网的框架——让国家、企业/区域级,边缘级的数据中心实现互联互通、分级分类。互联互通就是让算力、存储、网络能有一个比较容易的、统一的接入和运营。能像水电一样流动起来,向上层提供给各类用户使用,甚至有一些是混合用户:比如一个算法,既要用高性能又要用AI,这也是我们的建设目标。

这是当时做的超算互联网发展的产业链。以前用户使用算力、存储,软件,都是通过超算或数据中心使用,有一个第三方应用单位。而现在我们在中间加了一层,有上、中、下游3层定义:第一层的应用单位和超算是作为并列资源的提供方,超算网操作系统作为中间层提供相应的算力和存储网络。运营模式可以参考京东、淘宝这样的平台,可以作为一个中间平台。像京东、淘宝卖的是物品,我们经营的就是一种资源,就是从切分蛋糕变为共同做蛋糕的模式。

二、超算互联网统一存储平台关键技术的研究

这是目前超算互联网的建设情况,先在山东做的试点,覆盖了山东省16个地市,包含了济南和青岛两个核心节点,现在济南和青岛通过高速互联运行,剩余的地市是采用专线。还有30个边缘节是可以用sdone或者互联网连接的。同时我们也接入了28个算力集群,7种45个存储系统,存储系统的统一平台就是用Alluxio打造的,这是我们第一版超算网操作系统的规模。目前上层支持了云计算、HPC和AI这三类服务。里面主要提供三方面的资源:

√ 计算资源;

√ 存储资源;

√ 网络资源。

因为我主要负责统一存储平台,所以我就重点介绍统一存储平台的情况,这是当时的设计框架图,大家可以看到统一存储平台的目标,实际上不管是底层任何一种存储还是云上的存储,我们都要进行纳管,与存储系统打交道的这一层采用的是Alluxio作为存储基座。在此基础上,我们也做了一些优化工作,就是包括路径的最优化、数据的迁移策略、加密传输、一致性检查等,有一些还在验证过程中,第一版里边还没有加进去,这是我们的整体规划。

这张图展示了统一存储平台的核心技术就是服务总线的设计,我把它单独拿出来,因为我们以Alluxio为基础,在上层研发了一个统一存储的适配器和数据流转的控制器,并且嵌入了三种流转策略:实时流转、定时流转、自动流转。也为这个算码门户(上面的主门户)提供了存储、数据和数据流转三种服务,能够提供接口和挂载功能。像统一存储适配器,目前我们可以做到:

√ 存储的自动挂载;

√ 数据多种方式的存取,包括接口、客户端、命令行,这些都是支持的。

当然我们也做了用户的数据隔离和最优化存储方法的研究,这些都已经嵌入进去了。数据流转控制器做的工作比较多,做了三种流转的策略:

1、实时流转主要是针对用户的,因为用户在我们平台上比如在济南申请了一块存储,在青岛申请了一块存储,想要把里面的数据做实时迁移,由用户指定迁移的原地址和目标地址,选择传输速度,自动匹配迁移策略。我们也做了一些智能模型的研究,计算不同状态下任务运行的时间,选择最优的策略方案。

2、定时流转,定时流转目前针对海洋、校园场景,像学校里或者海洋上现场的数据就是边缘端的,因为有一些是视频数据,数据规模特别大。如果想要做研究,需要保存的话,在边缘端其实没有这样的存储设备,没有这么大的存储设备量,可能需要每周做定时的数据迁移。在定义的时间内做指定迁移原地址和目标地址的配置。这个我们也是在智能模型的基础上,根据任务时间和截止时间选择最优的策略方案。可以选择晚上或者是一些网络流量比较低的时候进行。

3、自动流转也是一个特色,就是根据规则引擎智能选择迁移的数据和位置。这种场景可能比较多,我们定制了几个这样的场景,后面有一个自动流转场景介绍。这里根据数据是否存算分离来判断,比如存储在淄博,我想要在济南计算,那如果网络条件不允许用户又同意的话,我们就可以给他进行自动的迁移。当然这里可以结合元数据库获取数据的模式访问和热点数据的访问频率确定数据是否预取。

这是我们的部署方案,目前实际上接入了图中列出的,也包括阿里云这种存储系统。对外接口大概有130个,能够以服务门户命令行、客户端、API等方式对外提供服务,目前的部署我们还是按照Alluxio这种经典的部署做的。后期我们希望能够做到分布式部署:目前也是由于网络的限制,所有的出口都集中在济南,虽然16个地市都已经做了联通,但其实出口目前还没有放开。比如青岛和淄博的连接还没有测试得很完善。这样的情况下,这种布局是没有问题的,所有存储在使用的时候都要经过Alluxio Master 济南总平台的部署调用,如果其他的网络都放开,希望如果在青岛计算,而存储也在青岛,能够实现当地挂载,而不需要再去通知济南的Master让它做分配,这样其实多转了一个步骤,所以我们现在也在做分布式部署的测试验证。

这是存算分离自动流转的案例,当然这也是目前智慧校园实际的场景。

我们的存储设备还有计算资源,都已经纳管到统一存储平台和云平台上,叫多云管理平台。这种情况下,我们算网操作系统会有一个总体调度,这个环境下所有的数据目前是存在最右侧的数据中心,假设这个数据中心在淄博,用户在济南,或者在总平台提交训练任务,提交之后会有一个总调度判断计算资源、预训练环境、训练环境在哪从而做位置的划定和资源的生成,因为这个容器需要根据需求自动化生成,并且会根据数据视图(我们在Alluxio的上面做了一层数据视图)。根据数据视图还有数据流转的控制器将数据由原地址迁移到目标地址进行训练。针对这个场景其实就需要四次流转:

√ 从最原始数据集流转到预训练的预处理环境下训练;

√ 处理完需要去训练环境训练;

√ 最后还需要把模型再反馈给用户;

√ 如果用户配置的情况下,还要反馈到最终的场景(像某个校园里面)再去做推理的操作。

所以我们指定了几个特定行业场景下的流转流程。

这是目前我们统一存储平台V1.0的界面。在主门户上已经发布出来,包括服务门户和管理门户,服务门户一共有6个模块,20多个子模块的规模。

针对统一存储平台,我们还有后续的工作在继续开展:包括要做Alluxio Master节点的分布式部署,在它的上层再做统一的调度管理。再就是数据的预取,也就是数据缓存机制的优化,包括预取的设计、关联规则,还有比较重点的,我们想做分层存储,这是后续要做的事情。

三、超算互联网的应用和未来发展

下面介绍一下目前超算互联网在各个行业的应用:

我们是从2022年下半年开始集中开发超算互联网的,是2022年下半年开始的,但其实从2016年我们就开始布局,所以在很多行业已经有一些应用:包括海洋、材料、气象、环保、生态、工业仿真、教育等方面。

这是海洋耦合模式,是我们与崂山实验室共同构建的互联网络,大家可以看到像海洋里面的计算可能相对比较复杂。需要有海洋模式的计算和大气模式的计算。现在的大气模式在青岛超算进行,海洋模式是在济南超算进行,然后再进行文件耦合,这是我们2023年首次实现的异地协同计算,取得了不错的效果。

在遥感领域,我们也有比较完整的数据流转场景,这是国家对地观测科学数据中心的数据:首先是通过专线传输到济南超算,然后通过一些整编入库的操作分类存储到块文件还有对象这样的存储里面,经过处理之后再进行数据产品的生产、共享操作。这也是我们首个跨域存算分离的数据汇交和处理的系统。我们也申请建立了国家对地观测的存算中心。

在数字政府领域,因为本身电子政务就在我们单位,所以我们目前支撑的是山东省30个省级单位和300个政务系统的高效运行,当然这块主要是云上的操作,就是做了资源弹性扩展。

像在医疗、教育等领域主要是云边端的工作。就是由算网提供计算存储网络,包括前面提到的定时流转在智慧校园场景里,我们做了齐鲁工大的项目,在校园应用的场景我们做的比较多。

最后介绍一下公司,我们的应用覆盖到了全国2000多家企业/高校/机构,也收到了国内外的广泛认可。我觉得构建算力网络其实是很有必要的,它有助于盘活我们目前这个存量算力资源。如果我们有一张超算互联网,那就提高计算资源的利用率,让算力能够变现,让算力中心、超算中心以及其他的数据中心能够可持续健康运营,而且在一些超算生态上,在环保、海洋、遥感这些领域进行比较好的应用,相信后续也会有更广阔的应用场景。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/521873.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

测试常用的Linux命令

前言 直接操作硬件 将把操作硬件的代码封装成系统调用,供程序员使用 虚拟机软件 可以模拟的具有完整硬件系统的功能 可以在虚拟机上安装不同的操作系统 Linux内核只有一个,发行版有很多种 内核来运行程序和管理像磁盘和打印机等硬件设备的核心程序 终端…

【物联网】stm32芯片结构组成,固件库、启动过程、时钟系统、GPIO、NVIC、DMA、UART以及看门狗电路的全面详解

一、stm32的介绍 1、概述 stm32: ST:指意法半导体 M:指定微处理器 32:表示计算机处理器位数 与ARM关系:采用ARM推出cortex-A,R,M三系中的M系列,其架构主要基于ARMv7-M实现 ARM分成三个系列: Cortex-A&…

她力量:致敬计算机领域的第一位女性先驱

在每年的3月8日,我们庆祝国际妇女节,以此来纪念和赞扬女性在社会、经济、文化和政治等各个领域所取得的杰出成就。而今天,我们特别想要回顾并致敬一位在计算机科技历史上留下了不可磨灭印记的女性——她,就是阿达洛芙莱斯&#xf…

mybatis中使用<choose><when><otherwise>标签实现根据条件查询不同sql

项目场景&#xff1a; 有时候业务层未进行条件处理那么在sql怎么操作呢,这里我是将c#版本的代码改成Java版本的时候出现的问题,因为c#没有业务层 更多操作是在sql中实现的 也就是业务层和编写sql地方一起写了,当我按照c#代码改Java到写sql时发现<if>标签不能实现我们业务…

MySQL--MHA高可用方案

MHA高可用方案实行 1.1MHA简介 MHA 在监控到 master 节点故障时&#xff0c;会提升其中拥有最新数据的 slave 节点成为新的master 节点&#xff0c;在此期间&#xff0c;MHA 会通过于其它从节点获取额外信息来避免一致性方面的问题。MHA 还提供了 master 节点的在线切换功能&a…

java常用排序算法——冒泡排序,选择排序概述

前言&#xff1a; 开始接触算法了&#xff0c;记录下心得。打好基础&#xff0c;daydayup! 算法 算法是指解决某个实际问题的过程和方法 排序算法 排序算法指给混乱数组排序的算法。常见的有&#xff1a;冒泡排序&#xff0c;选择排序 冒泡排序&#xff1a; 冒泡排序指在数组…

方法中单独使用return关键字

一、return关键字的单独使用 二、示例代码 public class ReturnDemo {public static void main(String[] args) {chu(10,0);chu(10,2);}public static void chu(int a,int b){if (b 0) {System.out.println("除法出错&#xff0c;除数不能为零");return;}System.ou…

【MQ】消息队列概述

&#x1f4dd;个人主页&#xff1a;五敷有你 &#x1f525;系列专栏&#xff1a;MQ ⛺️稳中求进&#xff0c;晒太阳 定义 消息队列&#xff1a;一般我们简称为MQ(Message Queue) Message Queue :消息队列中间件&#xff0c;很多初学者认为&#xff0c;MQ通过消息的发送…

ubuntu18.04编译OpenCV-3.4.19+OpenCV_contrib-3.4.19

首先确保安装了cmake工具 安装opencv依赖文件 sudo apt-get install build-essential sudo apt-get install git libgtk-3-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev sudo apt-get install python3-dev python3-numpy libtbb2 libtbb-dev libjpeg-dev li…

分享7款前端直接使用的项目动画特效(附在线演示)

分享7款非常不错的项目动画特效 其中有jQuery特效、canvas特效、CSS动画等等 下方效果图可能不是特别的生动 那么你可以点击在线预览进行查看相应的动画特效 同时也是可以下载该资源的 图片分割组合特效 首先会把图片分割成均匀的小块 之后又会将这些小块拼接组合起来 以下效…

go go.mod file not found in current directory or any parent directory

场景&#xff1a; 安装好 liteide 之后创建了第一个 “hello world” 的golang 项目&#xff0c;却报了如下错误。 原因分析&#xff1a; go 的环境配置问题。与 golang 的包管理有关。 解决方案&#xff1a; 如果你是 Windows 系统&#xff0c;快捷键 “WinR”&#xff0c…

吴恩达机器学习-可选实验:特征缩放和学习率(多变量)

文章目录 目标工具概念问题陈述数据集多变量梯度下降学习率a9.9e-7a9e-7a1e-7 特征缩放实现 恭喜致谢 目标 在本实验中&#xff0c;你将: 利用在上一个实验中开发的多变量例程对具有多个特征的数据集运行梯度下降探讨学习率alpha对梯度下降的影响通过使用z-score归一化的特征…