整理 | 夕颜
出品 | AI科技大本营(ID:rgznai100)
【导读】12 月 21-22 日,OpenI/O 启智开发者大会在深圳召开。在大会上, 国家超级计算广州中心总工程师、“天河二号”总工程师杜云飞发表了题为《星光超算应用平台》的主题报告,系统地介绍了星光超算平台,包括该平台的架构、开发和运行等环节。天河二号也是大会主办方鹏城实验室规划建设中的“云脑”分布全国的异构超级脑计算集群的广州合作共建节点。
2016 年 12 月,国家超级计算广州中心成功发布了“天河星光”云超算平台。使用天河星光,只需要一个网页浏览器即可登录“天河二号”。“天河二号”是一组由中国人民解放军国防科技大学研制的异构超级计算机,为“天河一号”超级计算机的后继。“天河二号”于 2013 年底入驻广东省广州的国家超级计算广州中心并进行验收,2013 年底交付使用后对外开放接受运算项目任务,用于实验、科研、教育、工业等领域。“天河二号”造价达一亿美元,从 2013 年 6 月起至 2016 年 6 月之前,它都是世界上最快的超级计算机。(来源:维基百科)
杜云飞是“天河二号”超级计算机的设计者之一,他用十年的时间见证了超级计算机从“天河一号”向“天河二号”的进化之路,也见证了中国超算技术的不断飞跃。此后,他和团队又陆续构建了天文物理、大气海洋、工业设计制造等应用软件平台“天河星光”。基于“天河星光”,超算中心已经和各大院校、科研院所合作,共建大气海洋环境、CFD与工业制造、生物医药健康大数据、视频交通大数据、深度学习与认知智能等平台。
以下为演讲内容,AI科技大本营(ID:rgznai100)整理:
我今天带来的报告为《星光超算应用平台》,这是我们目前正在做的一个项目,目前部署在广州超算中心,并已经应用到实践中。今天的会议和开源相关,我们在开发过程中也得益于整个开源社区。现在做 CS 开发的,人人都得益于开源社区,我们不仅能够从整个社区中的大量开源代码中学习到很多,而且我们的一些系统也在从这些开源项目中获得开发上的启发。反过来,我们也会对开源社区有相应的反馈,才形成了目前良好的开源生态环境。
![](/qrcode.jpg)
建设背景
介绍一下我们这个平台的建设背景,这是国家重点研发支持的一个项目。应该说,我们依托超算中心来支持超算中心和新型应用的融合。大家都知道,超算中心传统是以高性能计算为主。高性能计算的主流计算方式包括浮点计算为主的计算方式,比如双精度浮点、高精度浮点。到了 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(电话同微信)
推荐阅读