“天河二号”总工程师杜云飞谈星光超算应用平台设计

整理 | 夕颜

出品 | AI科技大本营(ID:rgznai100)

【导读】12 月 21-22 日,OpenI/O 启智开发者大会在深圳召开。在大会上, 国家超级计算广州中心总工程师、“天河二号”总工程师杜云飞发表了题为《星光超算应用平台》的主题报告,系统地介绍了星光超算平台,包括该平台的架构、开发和运行等环节。天河二号也是大会主办方鹏城实验室规划建设中的“云脑”分布全国的异构超级脑计算集群的广州合作共建节点。

2016 年 12 月,国家超级计算广州中心成功发布了“天河星光”云超算平台。使用天河星光,只需要一个网页浏览器即可登录“天河二号”。“天河二号”是一组由中国人民解放军国防科技大学研制的异构超级计算机,为“天河一号”超级计算机的后继。“天河二号”于 2013 年底入驻广东省广州的国家超级计算广州中心并进行验收,2013 年底交付使用后对外开放接受运算项目任务,用于实验、科研、教育、工业等领域。“天河二号”造价达一亿美元,从 2013 年 6 月起至 2016 年 6 月之前,它都是世界上最快的超级计算机。(来源:维基百科)

 

杜云飞是“天河二号”超级计算机的设计者之一,他用十年的时间见证了超级计算机从“天河一号”向“天河二号”的进化之路,也见证了中国超算技术的不断飞跃。此后,他和团队又陆续构建了天文物理、大气海洋、工业设计制造等应用软件平台“天河星光”。基于“天河星光”,超算中心已经和各大院校、科研院所合作,共建大气海洋环境、CFD与工业制造、生物医药健康大数据、视频交通大数据、深度学习与认知智能等平台。

 

以下为演讲内容,AI科技大本营(ID:rgznai100)整理:

 

我今天带来的报告为《星光超算应用平台》,这是我们目前正在做的一个项目,目前部署在广州超算中心,并已经应用到实践中。今天的会议和开源相关,我们在开发过程中也得益于整个开源社区。现在做 CS 开发的,人人都得益于开源社区,我们不仅能够从整个社区中的大量开源代码中学习到很多,而且我们的一些系统也在从这些开源项目中获得开发上的启发。反过来,我们也会对开源社区有相应的反馈,才形成了目前良好的开源生态环境。  

建设背景

      

介绍一下我们这个平台的建设背景,这是国家重点研发支持的一个项目。应该说,我们依托超算中心来支持超算中心和新型应用的融合。大家都知道,超算中心传统是以高性能计算为主。高性能计算的主流计算方式包括浮点计算为主的计算方式,比如双精度浮点、高精度浮点。到了 AI 时代,单精、半精甚至更低精度的计算成为主流,但是应用如何更好地融合,是目前超算面临的应用挑战,另一方面也给超算带来一些机遇。在这种背景下,我们开发了这个项目,以为传统的高性能计算带来便利性,建立从软件开发到管理、到运行的一体化平台。

平台架构

 

       

星光超算平台架构采用微服务的软件架构,这更便于程序员做相关开发和功能切分,包括相应功能的升级。我们建立了以应用中心为主,在此基础上的相应的资源管理、工具流数据管理和开发环境等功能,以及辅助功能。整个平台采用微服务,分成这几大功能来对外提供服务。

 

图片上是我们现在的网址(见PPT),通过这个网址可以访问我们的平台。

星光开发    

 

另外,我们整个开发过程中使用了微服务容器化 DevOps 方法。一个科研机构做开发,如何去开发一个完整的生产级产品对我们来说是巨大的挑战。我们借鉴了很多企业界的方法,包括目前企业界成熟使用的开发流程,可以看到,星光的整个开发流程基本上是依托这些开源软件来建立的,从代码开发到测试和生产环境管理,整个开发过程依托开源的生态建立严格的开发流程,以保证系统的可用性和可靠性。虽然我们做的是学术研究,但是研究的目的是做一个可用的系统,所以我们采用了非常严格的开发方法。

平台运行

 

另外,整个平台运行上,我们利用目前 K8s 和容器的方法来管理平台,在资源调度、部署运行、服务发现、扩容缩容方面都非常便利,而且整个系统运行在 K8s 集群上,通过这个系统管理不同的 HPC,包括 K8s 的 CPU 集群和 GPU 集群,并能够对外提供服务。

应用开发环境

    

这是我们的应用开发环境。星光平台要支持高性能计算从应用开发到应用管理、应用服务的整个流程,面对着如何提供一个传统的高性能开发环境的问题。目前我们基于容器技术的定制化云端开发环境,为什么用这个?大家也知道,现在所有开发环境都面临一个挑战,即要处理的体系结构越来越复杂,包括多样化的 CPU 体系结构,不同的加速器环境,如何在不同体系结构下提供统一的开发环境很难。所以,星光基于容器技术的定制化云端开发环境让我们可以根据自己的需求自动生成一个面向不同体系结构的开发环境,便于程序员做相应的开发。

 

   

此 demo 显示,在我们平台上,你可以进入到相应的云端开发环境,依托开发环境进行相应的应用代码编写到编译,包括和后端的超算资源的对接,都可以通过这个开发环境融合在一起,提供一个便利的开发和调试环境。

应用全生命周期管理

     

 

这是应用生命周期的管理。对于一个开发者来说,超算从最开始的应用开发到完成开发的整个生态,都希望他们开发的软件能够为人所用,尤其是同一个领域的用户能够使用。

 

 

所以,对于开发者来说,经过应用开发、管理员应用审核到发布,到使用者面前,它就是一个应用运行的环境。我们的平台贯穿了整个应用的生命周期管理,开发完之后就可以用各种各样的形式发布应用。传统的 HPC 环境下可以以命令来使用这些软件,也可以用定制化容器来运行软件环境。

 

    

这是应用发布的管理,当应用发布完之后,可以在这个平台上通过软件界面来定制软件使用的输入和输出环境,知道如何发布你的软件。管理员对应用进行相应的审核,以确定可知性、安全性等相关问题,因为超算不仅仅是面向计算机领域使用的,还包括很多应用领域,比如材料、大气海洋等,所以按照相应的领域发布到这样的平台里,领域用户就能够更好地找到相应的软件。

基于容器的定制化运行时环境

 

 

这是一个应用运行环境,如果用户想使用某个软件,根据定义需要的参数,就可以将应用提交到系统上运行。同时,我们也使用容器技术,不仅仅是 HPC,包括大数据和 AI 环境都可以进行相应的定制,用户可以更加便利地创建自己的以工具框架为核心的软件环境。在这个平台上可以非常便利地使用和申请相应的资源,包括存储,生成一个你所需要的环境入口,这个入口可以进行程序编写,包括需要处理的数据。处理完数据之后,你还可以通过服务的形式进行发布,让有需要的人通过 Web 服务的方式来访问你所获得的这些数据结果。

      

 

对整个传统的高性能计算的前后处理的全流程支持,实际上计算只是 HPC 中的一部分,计算的前端和后端也需要相应的支持,包括模型建模到计算结果可视化,整个过程在星光平台上都可以提供支持。

  

 

从上图中可以看到,针对一个计算访问的任务,可以直接对结果在平体上进行可视化的处理,然后提交相应的任务。

工作流管理系统

    

 

工作流的管理系统支持工作流从基本的编排到运行的完整功能,而且支持循环结构的工作流。很多情况下我们需要一个循环结构的工作流,于是我们通过对工业仿真的特征抽取,设计了循环结构的工作流。另外,整个流程与资源管理、数据管理进行了很好的结合,并对整个工作流的任务状态做实时的监控,提供可视化展示。这个过程中,工作流还支持断检查和自动化的处理,以支持不同领域的使用。

    

 

我们以实例来展示面向领域的工作流。这是一个汽车安全设计的工作流,整合整车的碰撞模拟。这个设计过程是一个典型的多目标优化的问题。什么是多目标优化?它实际上是有大量参数需要不停地寻优,并需要根据结果进行反馈,对上一次输入进行调整,直到得到一个最优化的结果。这个过程的人工成本很高,需要对结果进行人工分析,然后再自动地调整上一次的输入,整个过程非常复杂。所以,我们把它做成一个领域的工作流,可以在图形界面上定义工作流,它会自动根据定义的工作流生成大量任务,这些任务将对输入的参数进行自动化寻优,极大地提高了整个生产过程。工作流在实际车企中得到了实际应用,并极大地提升了生产效率。

    

 

在平台上,我们面向调度做了一个融合调度系统。大家在云计算中使用资源调度较多的是 K8s,但是我们是以 HPC 为主的调度器。现在的调度器无法在一套硬件资源上进行共存,需要支撑不同场景下不同资源管理系统管理这一套计算资源,不同计算资源之间无法进行共享,而且是隔离的状态。为了支持不同的场景,我们做了一套融合调动,以实现两套管理系统之间的调度,能够提高资源利用率,并支持不同应用场景对资源管理系统的需求。这样是一个很好的应用,用户可以多种方式使用同一套硬件资源,避免了不同资源之间数据的迁移过程。

面向HPC应用的镜像仓库

    

 

另外,以前面向 HPC 应用的镜像仓库在云化的场景中用得非常少,所以在 HPC 场景下,用户自己部署应用,提供了基础的环境,但用户在迁移软件时面临巨大的挑战。依托这个项目,我们面向 HPC 应用建立了一个镜像仓库,以在不同资源之间进行迁移,而且是面向公众开放的镜像仓库环境。它不仅支持传统的云服务,更多是面向 HPC 场景,比如 Groupmax 是面向材料、生物处理、分子动力学的场景,我们把它以容器化的方式面向公众提供服务,让用户可以更便利地迁移自己的软件。如果用户自己开发应用,也可以多样化的形式对外提供服务。HPC 受益于开源社区,不同领域都有大量科研人员贡献着自己的开源代码,不管是大气、海洋还是材料计算领域,很多都有相应的开源社区、开源代码在这里做贡献,所以,通过这种方式来建立开源社区的镜像仓库,可以让用户更便利地在不同硬件资源上迁移自己的软件资源,实现快速部署。

     

 

在这里,用户可以发布自己的软件,而且可以构建自己的镜像和镜像的运行环境,这样就可以在超算上部署自己的软件环境,并快速地使用这些软件资源,避免传统上需要用户手动部署的麻烦。

    

很多 HPC 领域的用户是非实验计算机领域的,装一个软件是非常耗时的过程,镜像仓库可以帮助他迁移软件环境。

小结

    

 

对整个平台做一个总结:星光平台支持传统的应用从开发到整个运行的全生命周期的管理,从应用的开发到最后应用的发布、运行,整个平台上可以无缝地做完。而且,通过资源管理、数据管理技术,可以支持 HPC、大数据、深度学习的应用,在超算系统上都可以运行这些环境。随着技术的发展,传统的 HPC 领域也在逐渐使用大数据和深度学习做相应的处理。因为很多数据可能是来自于 HPC 的仿真计算或通过一些科学装置得到的数据,而这些数据需要使用大数据和深度学习的技术来进行相应的处理。我们通过这些技术,能够在相应的资源上很好地支持 HPC 计算和深度学习计算的融合,并实现更加便利的处理。

 

另一方面,在整个平台上,我们将容器技术应用的从平台的运维到整个应用的支撑环境中。最后,依托星光平台,我们建立了一个 HPC 应用容器的镜像仓库,未来会面向所有公众开放,成为中国的高性能应用容器镜像中心,HPC 用户可以非常便利地使用软件迁移应用软件。

    

在整个星光开发的过程中,我们受益于开源软件社区,虽然目前我们还没有做到很好地给开源社区做很多反馈的阶段,但是在这个过程中,我们从开源社区中学习到很多,对于科研单位如何研究开发一个生产级的系统启发很大。

    

我的报告就到这里,谢谢大家。

 

(*本文为AI科技大本营整理文章,转载请微信联系1092722531)

精彩推荐

2020年,由 CSDN 主办的「Python开发者日」活动(Python Day)正式启动。我们将与 PyCon 官方授权的 PyCon中国社区合作,联手顶尖企业、行业与技术专家,通过精彩的技术干货内容、有趣多元化的活动等诸多体验,共同为中国 IT 技术开发者搭建专业、开放的技术交流与成长的家园。未来,我们和中国万千开发者一起分享技术、践行技术,铸就中国原创技术力量。

【Python Day——北京站】现已正式启动,「新春早鸟票」火热开抢!2020年,我们还将在全国多个城市举办巡回活动,敬请期待!

活动咨询,可扫描下方二维码加入官方交流群~

CSDN「Python Day」咨询群 ????

来~一起聊聊Python

如果群满100人,无法自动进入,可添加会议小助手微信:婷婷,151 0101 4297(电话同微信)


推荐阅读

  • 集五福,我用 Python

  • 2019中国Python开发者调查报告

  • AI 没让人类失业,搞 AI 的人先失业了

  • 为什么 k8s 在阿里能成功?| 问底中国 IT 技术演进

  • 好扑科技技术副总裁戎朋:从海豚浏览器技术负责人到区块链,揭秘区块链技术之路

  • 你点的每个“在看”,我都认真当成了AI

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

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

相关文章

蚂蚁金服开源 SOFAJRaft:生产级 Java Raft 算法库

什么是 SOFAJRaft? SOFAJRaft 是一个基于 Raft 一致性算法的生产级高性能 Java 实现,支持 MULTI-RAFT-GROUP,适用于高负载低延迟的场景。 使用 SOFAJRaft 你可以专注于自己的业务领域,由 SOFAJRaft 负责处理所有与 Raft 相关的技…

如何在mysql查询结果集中得到记录行号_获取MySQL查询结果集中记录行号的方法...

如果需要在查询语句返回的列中包括一列以指示整个结果集中记录的行号,则ISO SQL: 2003标准建议的方法是提供ROW_NUMBER()/ RANK()函数. Oracle可以使用标准方法(版本8i或更高版本)或非标准ROWNUM. MS SQL Server在2005版中提供了ROW_NUMBER()函数. 但是在MySQL中似乎…

Sublime Text 3 快捷键总结(简洁版本)

文章目录选择类快捷键说明CtrlAlt↑向上添加多行光标,可同时编辑多行CtrlAlt↓向下添加多行光标,可同时编辑多行CtrlD向下添加多行光标,可同时编辑多行选中光标所占的文本,继续操作则会选中下一个相同的文本AltF3选中文本按下快捷…

开发者必看!探秘阿里云Hi购季开发者分会场:海量学习资源0元起!

2019阿里云云上Hi购季活动已经于2月25日正式开启,从已开放的活动页面来看,活动分为三个阶段: 2月25日-3月04日的活动报名阶段、3月04日-3月16日的新购满返5折抢购阶段、3月16日-3月31日的续费抽豪礼5折抢购阶段。 活动核心亮点:…

疫情严重,潜伏期也有传染性?科技公司在行动

整理 | 阿司匹林出品 | CSDN云计算新型冠状病毒的感染人数仍在不断增加。根据1月26日的最新数据,全国新型冠状病毒感染的肺炎确诊2005例,疑似2684例,死亡56例。据央视报道,国家卫生健康委员会主任马晓伟在国新办新闻发布会上表示&…

Sublime Text 3 快捷键总结(详细版本)

选择类CtrlD 选中光标所占的文本,继续操作则会选中下一个相同的文本。AltF3 选中文本按下快捷键,即可一次性选择全部的相同文本进行同时编辑。举个栗子:快速选中并更改所有相同的变量名、函数名等。CtrlL 选中整行,继续操作则继续…

python方法定义..._解析Python类中的方法定义

最近在学习类过程中,绑定方法这个概念没有理解透彻,所以在网上找了很多相关博客、文章研究到底是怎么一回事。因为有的文章所陈述与我在python3.5版本实际实验中有些出入,所以经过实践后总结出以下结论。对于Python类中,方法的定义…

阿里巴巴复杂搜索系统的可靠性优化之路

背景 搜索引擎是电商平台成交链路的核心环节,搜索引擎的高可用直接影响成交效率。闲鱼搜索引擎作为闲鱼关键系统,复杂度和系统体量都非常高,再加上闲鱼所有导购场景都依靠搜索赋能,搜索服务的稳定可靠成为了闲鱼大部分业务场景可…

Kubernetes 将何去何从?

戳蓝字“CSDN云计算”关注我们哦!作者 | Kevin Casey译者 | 弯月责编 | 唐小引封图 | CSDN 付费自图虫创意出品 | CSDN 云计算(ID:CSDNcloud)【导读】随着越来越多的人开始使用 Kubernetes,IT 领导者对新的一年有哪些期…

活体检测很复杂?仅使用opencv就能实现!(附源码)

什么是活体检测,为什么需要它? 随着时代的发展,人脸识别系统的应用也正变得比以往任何时候都更加普遍。从智能手机上的人脸识别解锁、到人脸识别打卡、门禁系统等,人脸识别系统正在各行各业得到应用。然而,人脸识别系…

SQL中where 1 = 1的用处

文章目录1. where 1 <> 12. where 1 13. 不用where 11 在多条件查询中的困扰1. where 1 <> 1 where 1 1;--永远为真 where 1 <> 1&#xff0c;--永远为假他俩的作用主要是一个条件永远为真&#xff0c;一个永远为假&#xff0c;所以这里只是说 1 1的情况&…

stm32g474教程_杜洋老师:STM32教程,STM32视频教程

单片机也叫做单片微型计算机&#xff0c;简单来说就是集CPU(运算、控制)、RAM(数据存储-内存)、ROM(程序存储)、输入输出设备(串口、并口等)和中断系统处于同一芯片的器件&#xff0c;是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器…

Pod在多可用区worker节点上的高可用部署

一、 需求分析 当前kubernetes集群中的worker节点可以支持添加多可用区中的ECS&#xff0c;这种部署方式的目的是可以让一个应用的多个pod&#xff08;至少两个&#xff09;能够分布在不同的可用区&#xff0c;起码不能分布在同一个可用区&#xff0c;已达到高可用或者同…

揭秘:蚂蚁金服bPaaS究竟是什么?

去年9月&#xff0c;蚂蚁金服在杭州云栖ATEC发布了分布式金融核心套件bPaaS&#xff08; Business Platform As a Service &#xff09;&#xff0c;对外开放自身沉淀的“产品合约”、“资产交换”、“资产核心”、“会计核算”、“计价” 等金融核心组件&#xff0c;而这款号称…

云计算的 2020:云原生崛起,重新定义软件!

戳蓝字“CSDN云计算”关注我们哦&#xff01;作者 | Ashish Sukhadeve译者 | 弯月责编 | 唐小引封图 | CSDN 付费自图虫创意出品 | CSDN 云计算&#xff08;ID&#xff1a;CSDNcloud&#xff09;随着 2006 年末 AWS S3 数据存储的问世&#xff0c;云计算发展成为了 IT 行业的三…

用PL/SQL Develpoer工具完成导入和导出

文章目录一、用PL/SQL Develpoer工具完成导入导出1. 导出2. 导入3. 补充前言&#xff1a;首先&#xff0c;我们导入导出数据&#xff0c;肯定是要通过oracle自带的可运行程序来完成数据的导入导出工作&#xff0c;imp.exe 和exp.exe这两个可运行文件都放在oracle安装目录下的BI…

mysql修改表结构例子_mysql修改表结构方法实例详解

本文实例讲述了mysql修改表结构方法。分享给大家供大家参考。具体如下&#xff1a;mysql修改表结构使用ALTER TABLE语句&#xff0c;下面就为您详细介绍mysql修改表结构的语句写法&#xff0c;希望对您学习mysql修改表结构方面能有所帮助。 ALTER [IGNORE] TABLE tbl_name alte…

关于Paxos 幽灵复现问题的看法

由于郁白之前写的关于Multi-Paxos 的文章流传非常广, 原文提出了一个叫"幽灵复现" 的问题, 认为这个是一个很诡异的问题, 后续和很多人交流关于一致性协议的时候, 也经常会提起这个问题, 但是其实这个问题我认为就是常见的"第三态"问题加了一层包装而已. …

idea spring boot 修改 html,js 等不用重启即时生效

1、【File】-【Settings】-【Build,Execution,Deplyment】-【Compiler】&#xff0c;选中打勾 Build project automatically 2、 组合键&#xff1a;ShiftCtrlAlt/&#xff0c;选择 Registry &#xff0c;选中打勾 compiler.automake.allow.when.app.running” 3、找到你要运…

MySQL中update修改数据与原数据相同会再次执行吗

背景 本文主要测试MySQL执行update语句时&#xff0c;针对与原数据&#xff08;即未修改&#xff09;相同的update语句会在MySQL内部重新执行吗&#xff1f; 测试环境 MySQL5.7.25Centos 7.4 binlog_format为ROW 参数 rootlocalhost : (none) 04:53:15> show variables…