HPC存储-德国尤利希研究中心| 模块化超算环境中的存储加速

发布时间:

2022-02-23 16:33

DDN近期的一次用户峰会于2021超级计算大会(Supercomputing 2021)期间线上举行。来自德国尤利希研究中心(Forschungszentrum Jülich,FZJ)的研究员Sebastian Lührs在会上发表了题为 《模块化HPC环境中的I/O加速》的演讲,他还介绍了FZJ中心使用新的高性能存储系统进行研究的新情况。FZJ中心的高性能存储总吞吐量达2TB/s,它支持该中心三套大型超级计算机,其中一套名为JUWELS Booster Module(增强模块)的系统在2021年11月的TOP500排行榜上名列第8位系统,是欧洲名列前茅的强大超算系统,其LINPACK性能达44.1 Pflop/s。以下为Lührs演讲的精彩摘要。

模块化超级计算意味着什么?

在Jülich,我们遵循模块化的体系结构原则来推进E级计算,并研究在模块化环境中针对一系列应用如何加速I/O。

通常情况下,如果你在本地部署一套系统,往往是某种单一的系统,可能是一套集群或一套侧重于AI处理的系统。在Jülich,每隔几年我们就会构建一套新系统,我们需要将新系统与其他模块连接起来。例如,我们有一套服务于HPC用户的通用GPU集群,但也有一些应用受益于该系统非常高的性能,所以我们称其为“增强”系统,并为它配备了大量GPU。

我们希望用户能够在他们的应用中使用这些模块,而不仅是两个独立的系统借助文件系统来通讯。正如我们今天上午听到的模块化方法,你可以有一个专注于AI的模块,还有一个数据分析模块,或许还有一个并行仿真模块,该模块也连接到集群上。在这种模块化的环境中,一个很重要的模块就是存储设备。当我们考虑计算设备时,可能并不会直接想到数据,但涉及到数据集处理时,存储就是一个很重要的问题。

“数据访问”和“数据管理”需要集成到这种模块化方法中,这也是我们中心运行的JUWELS系统所采用的方式。

HPC和AI工作负载的比较

与HPC工作负载相比,AI工作负载提出了新的要求,这就是为什么我们需要I/O加速来满足用户的一系列需求。我们中心的大多数应用都是经典的HPC仿真工作负载:通常“写” 多于 ”读“,这对于许多HPC应用来说相当典型。这些HPC应用可能涉及的数据操作相对较少(但数据极大)。而且,对于HPC应用来说,数据连续的读访问或写访问都比较常见。

但在过去的几年里,我们也面临着越来越多AI用户的需求,这些用户的需求不同于HPC用户,通常需要数据“读“ 多于 ”写“。

随着数据量的增长,访问模式也切换到更偏重于“读”而非单纯的“写”的模式。另外,我们也不常看到连续的访问模式。对于某些应用程序来说,既有非连续随机访问模式,还有独立共享访问(所有不同计算设备和应用程序均可访问),这使扩展变得更加困难。这也让我们产生一个想法:在存储软件堆栈中引入一个额外设备。我们典型的存储路径(如下图)是这样的:从“归档“ 开始向上是大容量存储分层,可用于需求不同性能水平的应用程序。

我们的想法是在金字塔的顶部引入类似于缓存设备的东西,它的容量很小,具有高带宽,可用作传统HPC应用的突发缓存(burst buffer)。它也可以满足AI用户的需求,所以在工作开始前,我们有一个过程将数据移动到这个缓存。或者,如果你有一些数据处理项目,项目中产生的数据直接进入下一个步骤。数据可以保存在缓存中,便于在不同工作之间效率很高地重复使用,而无需再到金字塔底部取出数据并在工作流中再次备份。

 

这套系统由HPE与DDN共同设计并交付,是Fenix研究基础设施项目的一部分。该系统还为其他感兴趣的研究科学家提供计算服务以提高设备的利用率。高性能存储系统(High Performance Storage System,HPST)中共有110台DDN Burst Buffer 存储系统,可提供2PB的存储空间。

这个HPST系统被我们用作缓存,是模块化HPC环境的一部分,其标称带宽为2TB/s。我们直接将它集成在了连接所有系统的InfiniBand网络中,但我们的模块化并不仅仅局限于单个集群。我们运行两个模块化系统,JUWELS系统和JURECA系统。我们也部署新的集群,服务于特定用户群的不同目的,或服务于测试系统。我们设法连接尽可能多的模块到同一个软件栈,这也是一个相当具有挑战性的工作。我们在DDN研究小组的帮助下,为所有不同的系统创建了一个全局命名空间,不同的系统都连接到同一个HPST系统,也就是说连接到同一个存储集群。

我们正与DDN研究小组直接合作,研究如何改进系统的API来帮助用户有效地使用系统。例如,在AI用户群体中,有很多基于容器的方法,当你有一个专用的API时,基于容器的方法可能更难使用。

用例 | TB级图像分析 – HPC结合深度学习方法构建人脑图谱

一个有趣的用例来自Jülich的神经科学部门的研究小组。他们将真正的人脑切片并进行数字成像,构建一种人脑图谱。为了看到大脑内所有不同的区域,他们开发了一套系统对脑切片进行超高分辨率的成像,并且开发了一种深度学习方法来处理这些高分辨率的图像,以及如何分辨大脑中相互连接的相似区域。

虽然预缓存机制有可能帮助加速数据处理过程,但是由于该深度学习方法数据调用的随机性,无法使用预缓存机制。如果使用传统的大容量存储层,则会降低性能。在这个应用中,节点上的缓存并不能发挥作用,因为计算时立刻需要所有数据集,需要所有计算节点都可访问整个数据空间,并且无法事先预测如何分配数据。在这种情况下,中央HPST存储缓存发挥了作用,它让访问时间成倍地减少了。更重要的是,与我们的大容量存储层相比,它也更加稳定。所以,从用户的角度来看,HPST提供了一个稳定的、低延迟的读性能。

但是人工智能只是我们工作的一部分,我们仍然有传统的HPC仿真。在仿真方面,我们与DDN团队一起侧重于检查点(check pointing)的工作。

EOCOE-2 – 面向能源领域的E级计算卓越中心

在Jülich,我们研究许多不同的科学模型,通常是与高能量和物理学相关的应用。在这个例子中,我们正在研究聚变反应堆内的等离子体模拟。当然,对于这些应用,你通常会在运行一段时间后进行某种应用检查点操作,这通常会浪费时间,我们尝试尽可能地加快此操作的速度。

那么,我们下一步准备做什么?

· 在HPST系统上开始正常的生产运营

· 对跨系统性能进一步评估,示范在一个系统上写入数据并同时在另一个系统上读取数据

· 与SLURM集成,让HPST的预先准备成为工作流程的一部分

 

点击“播放”观看“模块化HPC环境中的I/O加速”的片段

相关新闻