1. Scalebox简介

1.1 技术起源

作为新一代云计算技术,容器化广泛应用于互联网行业的大规模云服务部署。在高性能计算/大数据分析等方向上,作为应用封装技术的容器化也得到广泛应用。

当前容器化主要应用于对各类应用服务的封装。与成熟的服务容器化相比,容器化计算正成为一个新的技术方向。基于可编程容器化计算的并行程序,在架构上将复杂计算逻辑分层,分解为算法逻辑和并行逻辑。

  • 算法逻辑对应算法自身,封装于标准化、事件驱动式的容器中。

  • 并行逻辑则处理算法并行执行相关的业务逻辑,包括资源调度、数据分布、任务分配、全局状态管理、底层通信原语、准入控制等。

1.2 Scalebox是什么?

Scalebox是一种可编程容器化计算框架,包括容器化计算的并行编程模型、支持高效数据密集型计算的运行时环境。

Scalebox通过”算子级空间展开 + 本地存储驻留 + 显式数据流编排”,把大量本该发生在节点间互联通信,前移到节点内部完成,从而显著降低对节点间通信带宽和外部存储带宽的依赖。

1.2.1 从传统容器化到可编程容器化

  • 传统应用:应用程序的依赖包及库文件需安装在计算节点上;

  • 容器化应用:将依赖包、库文件与应用程序一起打包到容器中,简化软件部署;统一容器的资源层接口(南向接口)对接底层计算平台。

  • 可编程容器化:在容器化应用基础上,定义标准接口,形成标准模块。接受外部消息驱动模块的运行。在算法容器之上定义统一的应用接口(北向接口)规范。

programmable_container

图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 核心价值

  • 简化并行编程:通过两级编程模型,将复杂的并行逻辑与算法逻辑分离,降低并行程序开发难度。

  • 提升计算效率:通过本地计算优化和多级并行化,显著提升数据密集型应用的运行效率。

  • 增强系统可靠性:内置任务级容错机制,支持在不可靠硬件上实现可信的数据分析。

  • 支持异构环境:跨集群、跨平台部署能力,充分利用分布式异构算力资源。