面向对象的计算型存储,加速HPC数据分析(PPT)
演讲者:Jongryool Kim
高性能计算(HPC)不仅能够以高速执行复杂计算,还能够处理海量数据。HPC系统通过将计算节点和存储节点分离,高效地应对这两大挑战。所有的计算操作都在计算节点上执行,而所有数据则存储在存储节点上。为了进行数据分析,计算节点需要从存储节点中读取大量数据,特别是模拟输出的海量数据。计算节点必须具备足够的内存来存储大规模数据集,但存储带宽有时会成为瓶颈。实际上,用于分析的实际数据仅占总数据的一小部分。
解决这一问题的一个方案是采用计算型存储。由于计算型存储仅在数据所在位置进行处理并将结果传输到计算节点,这种方式能够减少数据移动并提升性能。SK海力士与洛斯阿拉莫斯国家实验室(Los Alamos National Laboratory)携手合作,研究计算型存储技术。我们推出了面向对象的计算型存储(OCS,Object based Computational Storage)作为HPC中新型的计算型存储平台。OCS不仅高度可扩展,还具备数据感知特性。数据感知特性使OCS能够自主执行分析,无需计算节点的协助。
我们计划充分利用Apache分析生态系统,包括Arrow和Substrait,通过充分发挥靠近存储进行计算的优势来增强该生态系统。使用Arrow的系统能够使用通用传输格式传输查询结果,而Substrait提供查询计划的标准和开放表示,使得查询的部分能够推送到计算型存储中。
SK海力士的OCS的核心技术是对象计算型存储阵列(OCSA,Object based Computational Storage Array),作为后端存储使用。通过OCSA,OCS将提供灵活的查询推送和分析加速,同时减少软件开销。本次演讲将介绍OCS架构,并讨论我们为何认为OCS是HPC中计算型存储的未来方向。
分析系统的挑战:传统方法
大数据分析系统在运行时,主要的时间消耗在于查询处理的“计算”和“IO”环节。
传统解决方案终致致力于提高“计算”和“IO”的性能
快速“计算”:高速CPU核心、GPU、硬件加速器...
快速“IO”:HDD SATA SSD SAS SSD NVMe SSD Optane SSD...
但在提高设备性能方面存在限制。
分析系统的挑战:一种新的方法
新的系统方法是减少计算的“作业”
分布式计算可以减少单个计算节点中的“作业”
分离式系统可以减少计算节点中的“作业”
只有应用程序的“作业”可以通过解耦合到计算节点中运行,减少“数据移动”
并且减少IO的“数据移动”
查询推送可以减少分析系统之间的“数据移动”
查询推送是通过减少读取和处理的数据量来优化查询的方法
可以通过将查询执行的一些部分移动到数据源附近,节省内存空间、网络带宽,并减少查询执行时间
计算型存储可以减少从存储系统中的“数据移动”
将“计算操作”卸载到存储中,并在数据所在的位置执行“计算操作”
只能从存储系统中提供计算结果
动机:数据感知的计算型存储
目前基于块的“数据类型无关”(data-agnostic)的计算型存储不适用于数据分析
对于内联和流处理(例如压缩、EC、加密等),“数据类型无关”的计算型存储效果良好
但对于分析,它需要从主机系统的文件系统或数据库中获取大量信息
数据感知的计算型存储适用于原地和存储数据处理(例如分析功能)
由于理解数据格式,它可以在无需主机系统帮助的情况下分析数据
数据感知计算型存储:KVCSD
有序键值计算型存储驱动器(KVCSD,Key-Value Computational Storage Drive)
KVCSD支持基本的键值操作,并卸载包括索引和查询处理在内的计算
将主要和次要索引操作都卸载到设备上
KVCSD通过过滤有序的基于行的记录减少数据移动,并加速查询性能
适用于现有的键值存储(例如RockDB和LevelDB),这些存储分析基于行的数据结构。
数据感知计算型存储:KVCSD
关于有序键值计算型存储驱动(KVCSD)的更多信息
KVCSD论文发表于2023年IEEE集群计算大会
在2022年和2023年的Flash Memory Summit上进行演示(与洛斯阿拉莫斯国家实验室合作)
荣获2023年度研发100大奖(R&D 100 Award)
数据感知计算型存储:OCS系统
基于“对象”的计算型存储(OCS,Object-based Computational Storage)
高可扩展性:对象存储适用于大数据。
数据感知:可以在无需应用程序帮助的情况下处理数据 - 不是“块”,而是“对象”。
对象元数据:可以在元数据中添加有关分析的有用信息
“适用于列式数据分析,如Apache Parquet”
OCS系统:架构
OCS系统基本上由OCS前端服务器和OCSA(对象计算型存储阵列)设备组成
通过NVMe over Fabrics分离式存储后端(OCSA)
纵向优化对象I/O和分析- OCSA支持对象接口和分析功能
支持S3 REST API和开放数据格式
支持查询推送接口
通过OCSA执行查询操作
全新接口:基于对象的NVMe I/O和分析命令
加速分析:利用内建分析引擎进行数据过滤或查询处理
充分发挥异构设备的潜力:包括NVMe SSD、CSD、CXL等
关键成功因素:无处不在的对象计算
在任何地方使用相同的视图、相同的接口和相同的方法进行计算
对象使得“分析块”在任何地方(客户端、OCS 前端服务器和 OCSA 设备)都能获得一致的视角。
关键成功因素:具备分析生态的无处不在的计算
在任何地方使用相同的视图、相同的接口和相同的方法进行计算
Apache Arrow和Substrait实现了相同的接口和方法(客户端、OCS 前端服务器和 OCSA 设备)
OCS系统:与分析系统趋势保持一致
标准化工作
减少来自各种接口和数据格式的开销
支持分析列式数据(例如Arrow、Parquet等)
列式数据被广泛使用
非常适合分析(OLAP)应用
充分利用现代硬件架构的并行性(SIMD、GPU等)
由于列式布局,充分利用高效的压缩和编码(I/O)技术
OCS系统:预期的益处
减少主机系统与存储系统之间的数据移动
在数据所在的地方执行数据分析
高效的数据移动提高了数据分析性能
节省主机系统资源
将查询执行推送到OCS系统,可以节省主机CPU和内存资源
高互操作性和灵活性
基于标准数据格式和接口(Apache Arrow 和 Substrait)
摆脱固定和有限的推送功能
开放生态系统
要将新型计算型存储系统应用于行业中,必须制定相关标准并构建相应的生态系统。
我们已经开始努力创建一个开放生态系统。
OCS系统演示
概念验证:OCS演示系统支持关键功能
演示说明
比较“传统分析”与“卸载到 OCS系统”的情况
客户系统的查询执行时间、内存和CPU利用率
数据集
Parquet 格式的对象(例如纽约出租车数据,216MB)
SQL查询
例如:“select * from data.parquet where trip_distance > 29”
测试场景
分析应用程序1:读取对象数据,然后通过自身进行筛选
分析应用程序2:调用“S3_Select API”并从 OCS系统中获取经过筛选的数据
---【本文完】---
近期受欢迎的文章:
我们正处于数十年未见之大机遇中
新技术爆发式发展,催生新产品
然而,颠覆式创新并非简单的技术堆叠
而是异常复杂的系统工程
需要深度洞察
欢迎一起分享思考和见解