Burst Buffer是什么技术,它跟HPC有什么关系?首先我们一起来了解一个美国超算中心NERSC(国家能源研究科学计算中心),然后通过NERSC超算系统对Burst Buffer的应用来说说Burst Buffer技术。
NERSC一直与Cray(克雷)合作,为Cori (Cori 是 NERSC最新的大型计算系统) 的用户带来Burst Buffer技术。 NERSC Burst Buffer是采用Cray DataWarp技术,使用闪存或SSD(固态驱动器)技术来显着提高Cori的I/O性能。
NERSC致力于通过高性能计算和数据分析加速美国能源部科学探索,并向科学办公室提供高性能计算服务。NERSC的使命是实现规模的计算科学,需要大量计算和广泛建模。包括光合作用建模,全球气候建模,燃烧建模,磁性融合,天体物理学,计算生物学等等,这些场景都存在浪涌型IO高性能诉求。
为什么需要Burst Buffer
NERSC为了满足用户对更好的I/O性能的要求,已经在两个计算系统采用了Burst缓冲区技术。采用Burst Buffer,可以改进两个场景和组件的I/O性能。
1.应用程序可用的总带宽。带宽越高,优化良好的应用程序可以读取/写入大量数据的速度越快。
2.文件系统的IOPS。许多应用程序执行大量的小型I/ O操作,在这种情况下IOPS成为性能的限制因素。
另外,改进后的I/O性能可以帮助许多科学提升效率,在计算业务上,如通过更快的checkpoint restart提高应用程序可靠性;加快了小块传输和分析的I/O性能;为核心外部应用程序提供快速临时空间;为需要持久快速存储的大量文件输入或耦合模拟分析作业创建暂存区域。
Burst Buffer架构
下图说明了Burst Buffer的概念架构。Burst Buffer在物理位置上是处于计算和存储节点之间的一层Flash层,在Cray DataWarp中它驻留专门的XC40节点上,它是I/O计算节点系统(采用Aries互联)和存储Fabric的桥梁。SSD安装在Burst Buffer节点中,通过Scheduler和DataWarp软件堆栈来支持HPC计算作业。
具有SSD的DataWarp PCIe连接I/O刀片插入到计算刀片的XC40中,并通过Aries HPC互连连接。DataWarp支持Lustre、GPFS和PanFS并行文件系统,给出FS提供一个全局的Flash缓存层,通过智能调度算法来从并行文件系统预取计算数据。
Cray DataWarp的闪存磁盘连接到CX40节点。每个Brust Buffer节点包含一个至强处理器64 GB DDR3内存,以及两个3.2 TB NAND闪存SSD模块,连接在两个PCIe gen3 x8接口上。 每个突发缓冲区节点通过PCIe gen3 x16接口连接到Cray Aries网络互连。 每个突发缓冲区节点提供大约6.4 TB的可用容量和大约5.7 GB /秒的顺序读写带宽的峰值。
DataWarp的软件堆栈包括创建挂载点服务、LVM卷,XFS和DataWarp文件系统。DataWarp中的多个SSD设备通过LVM管理起来,然后在创建Brust Buffer时创建XFS组成Brust Buffer空间,DataWarp File System (DWFS)配合安装在计算节点的Client来协调数据在Brust Buffer上换入换出,并且向计算节点提供统一命名空间来进行数据访问。
这种架构提供了许多适合NERSC的科学Workload的特性。在技术上主要体现在以下几个方面。
调度程序集成。对Burst Buffer资源的访问与系统的调度程序集成。 调度程序提供了调配一组用户或作业共享的BurstBuffer资源的功能。它还可以处理自动数据迁移到BurstBuffer,或从BurstBuffer存储迁移到后端存储。
缓存模式。BurstBuffer还可以提供缓存模式,其中闪存资源用作大型Lustre文件系统的缓存层。这种模式对用户程序代码是透明的,无需修改代码便可提供高性能I / O。
过滤分析。允许在BurstBuffer节点上处理和过滤数据。
NERSC的Burst Buffer路标
Burst Buffer软件堆栈预计将分四个阶段交付,如下所示。 Burst Buffer软件的第一阶段是在2015年秋季与Cori系统的第一阶段一起交付的。在2015年8月完成了对Burst Buffer Early Access计划的建议征集,可以在这里找到成功的应用程序。
DataWarp软件在第1阶段提供了使用Burst Buffer的API。用户通常通过批处理系统(即slurm)与此接口以定义突发缓冲区分配,例如大小和访问模式(条带化),并指定预留是否应该是持久的。Burst缓冲区可用于所有Cori用户,BurstBuffer在Cori系统上,可以提供大约1.7 TB/秒的峰值I/O性能,具有28M IOP和大约1.8PB的存储容量。
Cray的HPC方案
Cray也是HPC领域的领头羊,他和DDN、Xyrate和PanaSas等并驾齐驱。Cray的XC40和CS400超级计算机使用Haswell处理器和DataWarp BurstBuffer技术,采用并NVIDIA Tesla GPU加速器和英特尔至强融核协处理器,以带来更强的图形处理能力。
Cray XC系列计算服务器包含XC40计算、XC50 GPU节点和XC40-AC制冷系统,XC40基于Intel Aries ASIC系统连接XC40基本刀片上的计算和I / O节点,使用PCIe Gen3主机接口,所有处理器采用Aries网络都彼此相连。
XC40可以扩展到超过一百万个内核。该架构针对每个计算节点实现两个处理器引擎,每个刀片具有四个计算节点。刀片以8对(16个机箱)堆叠,每个机柜最多可以安装三个机箱,每个机柜384个插座。
CS400集群超级计算机使用行业标准刀片式或机架式服务器,并分别在CS400-AC和CS400-LC系统上提供空气或液体冷却。它们可扩展到11,000个计算节点和40个峰值Peta Float/s。
Cray CS400集群提供两个关键的能力,即可定制的HPC集群软件堆栈和Cray的高级集群引擎(ACE)系统管理软件。
HPC群集软件堆栈包括经过验证和测试的软件工具、操作系统、中间件应用程序和HPC编程工具。这些工具与大多数开源和商业编译器,调试器,调度程序和库兼容。Cray编程环境,Cray科学和数学库以及Cray性能测量和分析工具也可作为软件堆栈的一部分。
Cray Sonexion 3000 scale-out Lustre存储系统提供了Scrach存储空间,用来存储大量初始数据和计算结果数据,DataWarp Brust Buffer是一个应用程序IO加速器,使用PCIe闪存直接连接到XC40计算节点。它从存储中获取数据,满足最糟糕的数据I/O浪涌临时高速缓存需求。
其他的Burst Buffer产品
除了Cray外,DataDirect NetWorks和EMC都在研究Burst Buffer技术。DDN的IME Burst Buffer技术请参考文章:全面解析DDN存储和HPC解决方案。关于EMC,我们知道Isilon一直活跃在HPC和大数据处理领域,推出Isilon All-Flash节点作为其他节点的高速缓存,针对一般的HPC计算已经游刃有余。
EMC的Burst Buffer方案采用专用硬件设备,叫做Active Burst Buffer Appliance(aBBa),从EMC的测试来看,采用Burst Buffer后,不但均衡分担了系统性能,而且在整体计算性能上可以提升30%。aBBa支持的并行文件系统比较广泛,包括了Lustre, Isilon, PanFS, HDFS和VNX等。
EMC Burst Buffer架构(Fast Forward IO)和Cray DataWarp以及DDN的IME在架构上类似,服务器计算节点安装IO Forwarding Client和aBBa交互,智能的根据算法加速或预取数据,并存储临时计算数据;在aBBa上IO Dispatcher处理数据分布,并且把aBBa上的NVMe磁盘进行管理,由IO Forwarding Server统一呈现给IO Forwarding Client。
在aBBa上需要安装Lustre客户端用来读取并行文件系统上的数据,并根据数据模型和预取算法把数据加速到aBBa,或淘汰数据到后端并行文件系统。
针对浪涌型计算业务,Burst Buffer更好的平衡存储投入成本和性能要求,采用较少的SSD提供高峰时的计算性能,当业务在波谷时,则可以由并行文件系统来提供带宽服务。随着SSD NAS在HPC行业的大规模使用,也预示着SSD除了在OLAP、OLTP数据库、VDI等IOPS型关键业务应用外,也在迅速的渗透到其他水平行业,如带宽型业务,标志着SSD未来在大容量和高性能(IOPS、OPS和带宽等)NAS应用有着广阔的前景。搜索“ICT_Architect”或扫一扫二维码加入微信公众号“架构师技术联盟”获取更多精彩内容。