1. Scalebox简介
1.1 技术起源
作为新一代云计算技术,容器化广泛应用于互联网行业的大规模云服务部署。在高性能计算/大数据分析等方向上,作为应用封装技术的容器化也得到广泛应用。
当前容器化主要应用于对各类应用服务的封装。与成熟的服务容器化相比,容器化计算正成为一个新的技术方向。基于可编程容器化计算的并行程序,在架构上将复杂计算逻辑分层,分解为算法逻辑和并行逻辑。
算法逻辑对应算法自身,封装于标准化、事件驱动式的容器中。
并行逻辑则处理算法并行执行相关的业务逻辑,包括资源调度、数据分布、任务分配、全局状态管理、底层通信原语、准入控制等。
1.2 Scalebox是什么?
Scalebox是一种可编程容器化计算框架,包括容器化计算的并行编程模型、支持高效数据密集型计算的运行时环境。
Scalebox通过”算子级空间展开 + 本地存储驻留 + 显式数据流编排”,把大量本该发生在节点间互联通信,前移到节点内部完成,从而显著降低对节点间通信带宽和外部存储带宽的依赖。
1.2.1 从传统容器化到可编程容器化
传统应用:应用程序的依赖包及库文件需安装在计算节点上;
容器化应用:将依赖包、库文件与应用程序一起打包到容器中,简化软件部署;统一容器的资源层接口(南向接口)对接底层计算平台。
可编程容器化:在容器化应用基础上,定义标准接口,形成标准模块。接受外部消息驱动模块的运行。在算法容器之上定义统一的应用接口(北向接口)规范。
图1 传统容器化 vs 可编程容器化
传统容器化:封装通过统一的容器层向下接口对接底层计算资源,并未对上层应用接口做规范化,外部调用的接口为容器内算法代码自身提供的微服务接口,包括gRPC、REST等不同形式;
可编程容器化:以容器化为基础,在算法代码服务接口基础上,定义消息驱动式的统一容器级编程接口(北向接口)规范,供上层应用调用,以形成可编程驱动的标准化算法容器。
1.2.2 节点级存算一体架构
| 传统HPC架构 | Scalebox |
|---|---|
| HPC并行存储为中心 | 本地SSD/内存缓存 |
| 存储带宽驱动性能 | 结果驱动性能 |
| Runtime调度 | 流水线拓扑优先级调度 |
| 以全局存储为中心的时间复用模型 | 以本地存储/内存缓存 + 空间展开为中心的数据流模型 |
Scalebox以容器化封装算法并提供可编程控制,支持在分布式、跨广域网异构算力集群上的流式计算。计算任务以非冯诺依曼架构的数据流驱动,实现超大规模高效并行。
1.3 Scalebox主要特性
1.3.1 云原生设计
算法实现支持不同程序语言;通过容器化封装实现跨平台部署;基于边车模式实现模块化设计。
1.3.2 非侵入式编程
用户算法无需修改即可容器化封装,通过标准接口与平台交互,实现并行逻辑与算法逻辑分离。
1.3.3 跨集群部署
支持跨广域网异构算力集群的统一调度,实现数据分布和算力分布场景下的高效计算。
1.3.4 本地计算优化
以节点本地存储为中心,减少对全局存储的依赖,通过数据本地化提升I/O效率。
1.3.5 高并行效率
支持多级并行化:模块内算法并行、模块级数据并行、模块间流水线并行。
1.4 核心价值
简化并行编程:通过两级编程模型,将复杂的并行逻辑与算法逻辑分离,降低并行程序开发难度。
提升计算效率:通过本地计算优化和多级并行化,显著提升数据密集型应用的运行效率。
增强系统可靠性:内置任务级容错机制,支持在不可靠硬件上实现可信的数据分析。
支持异构环境:跨集群、跨平台部署能力,充分利用分布式异构算力资源。