带你读《弹性计算—无处不在的算力》第三章:计算产品和技术3.5云上高性能计算(三)


3.5.3 超算产品的关键技术

在上面两节里,我们分别阐述了高性能计算产品E-HPC、SCC 的架构和使用场景,那么超算产品有哪些关键技术呢?怎样才能用好超算实现HPC 上云,下面逐一讲解。需要注意的是,由于云计算的产品技术迭代非常快而灵活,超算产品的功能和性能都会随着云的技术发展和用户需求的不断深入而产生快速的升级迭代。因此,这里的技术在实际中可能有较大改善和提升,但基本原理是有延续性的。

1. 集群管理

除了计算、网络、存储等硬性指标,高性能计算中最重要的一部分就是集群管理调度系统,E-HPC 提供一套控制台风格的集群管理控制台,提供E-HPC 高性能集群相关的集群创建和配置、信息浏览与修改、集群扩容与释放、用户管理、作业调度、软件管理、性能监控等功能,分钟级的集群创建和缩扩容提供了云超算最重要的自动伸缩能力。

超算集群由计算集群、共享并行存储集群和网络构成,在首次创建 E-HPC 集群之前,需要通过E-HPC 开通存储服务,在NAS(或 CPFS)服务和挂载点完成后再创建集群。一个账户可以在云平台上建立多个集群并监控它们的所有状态,而第三方集群管理平台,如HPC SaaS 服务伙伴,可以通过E-HPC 提供的Open API 开发自己的集群管理平台,E-HPC 的集群管控台如图 3-56 所示。

只要通过几次鼠标点击选择,用户就可创建云上高性能计算集群。在云端创建集群,首先进行硬件配置,包括可用区、付费类型、部署方式、节点配置,以及高级配置中的网络配置和共享存储配置。由于E-HPC 是一套全功能的HPC PaaS 平台,提供全面的HPC 运行时软件栈,所以接下来要进行软件配置,包括镜像类型、操作系统、调度器、可视化服务和高级配置。用户还可以从E-HPC 提供的开源应用软件和支撑软件中,选取必要的应用软件预装。得益于E-HPC 独特的设计,软件安装时间和集群规模无关。完成集群软件配置后进入基础配置,包括基本信息和登录设置。最终, 我们可以得到一个如图3-57 所示的高性能集群详细信息和拓扑页面,至此,构造了一个全功能的HPC 线上集群,构造了随弹性计算产品演进的“云上超算中心”。

带你读《弹性计算—无处不在的算力》第三章:计算产品和技术3.5云上高性能计算(三)


图3-57  高性能集群详细信息和拓扑页面


2. 集群应用性能优化工具

为了保障应用程序在超算上正常运行,E-HPC 提供了针对HPC 集群规模的并行应用性能监控工具:E-HPC 优化器(E-HPC Tune),协助用户剖析应用程序在云超算平台上运行时的行为,包括系统指标、进程信息和热点函数信息,实现应用在云超算平台上的快速错误排除、性能优化。E-HPC 优化器将原本属于HPC 应用优化工程师的自顶向下的性能特征剖析和优化方法论,固化为逐级分析的自动化工具。

由于应用运行行为复杂,所以优化器采用性能大盘、节点性能、进程性能和性能剖析四个步骤,层层递进地分析应用运行行为特征,如图 3-58 所示。

集群维度,定位实例热点带你读《弹性计算—无处不在的算力》第三章:计算产品和技术3.5云上高性能计算(三)

图 3-58  应用运行行为特征

1)性能大盘

性能大盘是从集群整体角度实时地显示各集群资源使用状态,快速了解整个集群的负载。每个集群都有一个整体的概览,同时显示每个节点主要资源(包括 CPU、内存、存储、网络等)的使用饱和度, 以免因资源使用饱和而出现异常。


2)节点性能

从单个节点角度,分析应用程序运行期间节点关键性能指标的变化曲线,包括 CPU 利用率、内存利用率、网络带宽、存储带宽和利用率等,显示不同时间段、不同节点、不同指标组合下的指标性能变化曲线视图,如图3-59 所示。

图 3-59  节点指标性能变化曲线

3)进程性能

从进程角度,显示近时间段前 5 个 CPU 占用率最高的进程信息,并将 CPU 占用率变化以图形显示,如图 3-60 所示,可选择不同的时间点,查询对应该时间点的进程信息。用户可以对选择的进程进行剖析,获取进程函数级信息。

4)性能剖析

从函数角度,借助火焰图展现进程中各函数的耗时比例,以及函数间的调用逻辑,如图3-61 所示。函数信息通过两种视图展现:Bottom-up 和 Top-down,Bottom-up 主要用于分析函数本身耗时(不包括子函数调用时间)的信息,热点函数列表,同时也显示热点函数被调用的栈信息,在函数优化时,优化耗时占比大的热点函数,才能取得更高的性能加速比;Top-down 主要用于分析从 main 函数开始,各函数调用耗时(包括子函数调用时间)的信息,便于查看逻辑处理占比高的函数,在并行任务划分时,保证每个子任务都有足够的逻辑处理任务。

带你读《弹性计算—无处不在的算力》第三章:计算产品和技术3.5云上高性能计算(三)


3. 科学可视化

高性能计算威力的展现,离不开科学可视化,这属于计算机图形学范畴。科学计算需要处理的输入数据、计算输出的结果通常都是海量数据,如气象类单个作业输入数据量数百MB,输出结果数据量达到数十 GB,而石油勘测类的作业输入数据量更可能达到 PB 级,最终图形化输出的作业数据量也有数十 GB。如此大量的数据还需要符合具体领域的信息结构,如流场、压力场、电磁场、气象云图等,这意味着对于结果数据,还需要通过计算集群针对具体领域完成解释和重构。科学计算的可视化的过程同样需要引入高性能的计算资源,甚至多机并行处理,以达到高效计算、实时渲染和输出高精度可视化结果的目的,

科学可视化通过图形化的方式呈现科学计算输入输出的模型结构、对象关系、计算布局等信息。在科学计算典型流程中,常常要进行三维网格生成的离散化前处理,因此前后处理两大步骤都需要可视化技术建模、计算和渲染。

针对科学计算的参数场可视化需求,云平台从底层硬件到上层服务层面统一设计,构建了基于云计算的三层产品方案,

基础设施层

基础设施层主要利用了 EGS GPU 实例实现高效的图形渲染。现代科学计算的可视化涉及体渲染、光线追踪等多种复杂计算机图形技术,不同规模的计算对于渲染资源的要求各有不同。

业务调度层

通过 E-HPC 服务,可视化操作可以高效地嵌入高性能计算工作流程中。E-HPC 服务除了管理 HPC 并行计算节点资源,还需要对可视化节点进行管理和调度,使得计算的输入数据、结果数据在不同节点之间高效流转。在可视化计算中,通过 E-HPC 并行调度服务将计算过程和结果可视化计算结合起来,即刻在计算节点上进行结果数据的可视化处理称为在场可视化。

可视化展现层

在通过 E-HPC 服务整合的云图站上,用户可以远程访问云端的图形服务器,直接以图形的方式查看、操作云上的科学计算数据,从而避免了云上云下的大量数据传输消耗。云图站服务支持所有 GPU 实例类型,用户可以按性能与成本需求,选择最优性价比的实例。云图站传输协议经过专门的设计,使用较低的带宽即可满足高分辨图像网络传输要求。云图站支持多通道多类型传送,支持远程 App 的方式,即使用者只需打开应用软件的界面,而不是整个桌面,与其他使用者有更好的安全隔离。 另外,E-HPC 控制台还提供了基于 WebGL 的图形显示方案,可直接通过浏览器远程访问可视化节点,查看图形化的输出结果。

基于 E-HPC 的可视化展现层组件如图 3-65 所示。

带你读《弹性计算—无处不在的算力》第三章:计算产品和技术3.5云上高性能计算(三)

图3-65  E-HPC 的可视化展现层组件图

E-HPC 可视化工作流

整个可视化的操作需要嵌入完整的 HPC 工作流中,形成如图3-66 所示的完整流程,满足 HPC 用户实际需求。用户可以直接通过 E-HPC 的 Web 控制台,可视化地完成整个 HPC 工作,E-HPC 服务负责高性能计算资源的统一管理和调度。主要包括以下三个步骤。

(1)用户可通过E-HPC 申请远程可视化资源池(远程桌面或远程App),E-HPC 根据用户权限,生成相应的远程连接资源,以提供给客户安全远程连接。

(2)用户可视化编辑完成作业后提交到E-HPC,E-HPC 后台负责根据作业类型、作业资源需求和作业依赖关系,弹性生成相应的HPC 并行计算资源池和可视化计算资源池,完成科学计算任务。

(3)计算过程中生成的数据由E-HPC 统一管理,通过NAS 服务,打通不同计算资源之间的数据共享,使得用户可以直接可视化查看、分析计算结果数据。

另外,E-HPC 服务通过整合OSS 服务及网络传输服务,实现了 HPC 服务与其他服务之间的数据互通,以及云上云下的数据传输,超算将线下以IT 设备为中心的计算过程,转化成在云上的数据迁移和计算的服务流程,实现了HPC-as-a-Service 的流程优化。


4. 自动缩扩容与闲时计算

除了计算、网络、存储等硬性指标,高性能计算中重要的一部分就是并行作业调度系统。在公共云普及之前,由于本地 HPC 集群的资源昂贵、配置复杂、资源数量有限,催生出很多对调度算法的需求以达到提高资源利用率和在多个用户 / 部门之间协调资源的目的,例如动态资源池、资源回填、单节点调度。在公共云出现之后, HPC 可实现云爆发,从用户的角度看,公共云上的资源充足,可以在想用时创建, 用完即释放。

E-HPC 通过在云上快速部署管理主流的 HPC 集群调度PBS、LSF、Slurm、SGE 等,将其调用和云资源的自动伸缩耦合,降低了 HPC 用户上云的门槛,图 3-67 所示为E-HPC 集群架构。

带你读《弹性计算—无处不在的算力》第三章:计算产品和技术3.5云上高性能计算(三)


E-HPC 的集群自动缩扩容和集群的并行计算作业调度高度绑定,一次自动缩扩容是通过 Job Scheduler 作业调度器来实现的,如图 3-68 所示,E-HPC 自动缩扩容服务会从集群调度节点定时获取当前节点和作业的负载信息,并据此扩容新的节点满足排队作业的资源需求或者释放空闲的节点。

带你读《弹性计算—无处不在的算力》第三章:计算产品和技术3.5云上高性能计算(三)

图3-68  自动缩扩容实现

基于 HPC 集群作业负载的自动伸缩

在很多领域,例如 EDA、生物基因制药等,HPC 用户对资源的需求趋势如图 3-69 所示。

带你读《弹性计算—无处不在的算力》第三章:计算产品和技术3.5云上高性能计算(三)

图 3-69  HPC 用户对资源的需求趋势

从图 3-69 可以看到,传统的本地集群资源规划和资源需求很难完全匹配,要么资源不满足需求,要么资源过剩,造成浪费。E-HPC 将 HPC 集群搬上云的同时,结合公共云的弹性特点,做到了根据用户业务需求动态地管理 HPC 集群规模,实现了

分钟级的扩容,及时响应用户对资源的突发需求,将公共云的弹性和自动运维的功能带给 HPC 用户。 

E-HPC 自动伸缩配置方案与配置界面如图 3-70 所示,有如下功能。

设定扩容时间间隔。

设置集群最大规模和最小规模。

基于队列配置扩容多实例规格和多可用。

带你读《弹性计算—无处不在的算力》第三章:计算产品和技术3.5云上高性能计算(三)

带你读《弹性计算—无处不在的算力》第三章:计算产品和技术3.5云上高性能计算(三)


图 3-70  E-HPC 自动伸缩方案与配置界面

图 3-71 是某基因计算用户在使用 E-HPC 平台进行基因测序时,单个集群一段时间的集群规模自动伸缩曲线图,从图中可以看到:用户的业务对资源的需求波动很大, 而 E-HPC 自动伸缩能很好地满足用户的需求,及时扩容、及时缩容。

带你读《弹性计算—无处不在的算力》第三章:计算产品和技术3.5云上高性能计算(三)

图 3-71  某基因计算用户集群规模自动伸缩曲线图(按天统计) 

HPC 闲时计算(Idle Computing) 

E-HPC 自动伸缩服务结合抢占式实例和HPC 应用的断点续算功能,可以提供 HPC 闲时计算(Idle Computing)方案,闲时计算指随机和脉冲模式的HPC 计算,譬如科研人员在出现“灵感时刻”的即时计算需求。在多用户共享计算资源分时计算及商业用户处理随机的计算需求的情况下,抢占式实例是比按量付费和包年包月更为经济合理的选择。这是公共云上省钱组合拳的典型方案。E-HPC 闲时计算流程如图3-72 所示,为保证在抢占式实例释放前,计算结果能够被保存并支持下一次运算,必须保存应用的断点(Checkpoint)文件,以便应用下一次扩容到新的抢占实例继续完成计算。这种模式要求HPC 应用本身支持断点续算(Checkpoint—Restart)。

以 LAMMPS 和 GROMACS 为例,在用 GROMACS 测试水分子运动的算例中, 在脚本中设置断点,在计算时间增加 13.28% 的情况下, 计算成本降低高达 87.17%, 图3-73 所示为GROMACS 闲时计算作业成本对比,这是非常满足闲时计算要求的性价比,左图表示归一化后的计算成本对比。

带你读《弹性计算—无处不在的算力》第三章:计算产品和技术3.5云上高性能计算(三)

上一篇:【JavaScript】正则表达式


下一篇:【整理】Word OpenXML常用标签