支持高性能计算场景,博云容器云打造智能算力引擎

随着 Kubernetes 做为 AI、大数据和高性能批量计算的下一代基础设施的趋势逐渐清晰,愈来愈多的企业对 Kubernetes 在深度学习、科学计算、高性能渲染等方面提出了更高的要求。算法

项目挑战docker

原生 Kubernetes 做为通用的容器调度方案,仍与高性能计算场景下业务调度诉求存在必定差距,主要体如今:安全

待完善做业视角调度能力网络

Kubernetes 自己是以资源视角进行资源调度,Pod 做为基本的调度单元存在。Kubernetes 采用依次调度的方式实现对每一个容器的调度管理,缺少业务的做业视角进行调度的能力。框架

在大数据、人工智能、高性能计算的应用场景下,每每须要多个容器同时配合执行计算。而 Kubernetes 原生的依次调度方式,彻底没法知足大数据、人工智能场景下的调度需求。运维

例如,某个大数据应用须要跑1个 Driver 容器+10个 Executor 容器。若是容器以顺序的方式一个一个进行调度,在启动最后一个 Executor 容器时,因为资源不足而调度失败,最终形成服务没法启动。虽然,前面建立好的9个 Executor 容器运行正常,但平台没法提供该大数据应用的正常服务,从资源占用上来看也是一种浪费状况。分布式

或者,当同时提交多个做业任务后,可能会由于资源不足而形成死锁,进而致使集群实际资源被占满,最终形成全部做业任务都没法运行的最坏状况。微服务

待实现 GPU 资源共享切分工具

因为开源的 Kubernetes 自己对 GPU 提供的管理能力比较弱,没法实现 GPU共享按需调度的能力要求。oop

每一个容器能够请求一个或多个 GPU,不支持 GPU 的资源切分

K8S 节点必须预装相应的驱动程序

必须预装 nvidia-docker 程序

在容器中,要想调用 NVIDIA 的 GPU ,须要经过 nvidia-docker 调用。nvidia-docker 是一个可使用 GPU 的 docker,它在 docker 上作了一层封装,经过 nvidia - docker - plugin 将 GPU 调用到 docker 上。

从 K8S 1.8版本后,推荐使用 Device - Plugins 方式来调用 GPU 。

待增长大数据等场景基因

Kubernetes 的核心工做负载面向无状态应用、微服务应用等互联网类应用进行设计,对水平伸缩、滚动升级有支持比较好。而到了大数据和高性能计算领域,想直接使用 Kubernetes 完成相应的做业和任务是很是困难。

待完善传统方案资源隔离性

随着 Hadoop 生态崛起后,在资源的隔离方面 Yarn 就开始使用 cgroup 用来实现对 CPU 资源隔离管理,借助 JVM 的内存隔离机制从而实现对内存资源隔离管理;对于磁盘 IO 和网络 IO 的隔离,目前社区还在讨论中;对于文件系统环境的隔离,始终也没法作到完整的文件系统隔离方案。

从总体上看,Yarn 的资源隔离能力比较弱,这就形成了当多个任务运行到同一个工做节点上时,不一样任务之间会存在资源抢占的问题,不一样任务之间相互影响。

待加强弹性 按需扩容

大数据应用的高峰每每有明显的周期性特征。例如,实时计算资源消耗主要在白天。但大数据资源管理平台广泛缺少弹性管理能力,没法按应用所需进行快速扩容,为了应对业务高峰和突发的计算任务,只能经过预留出足够多的资源方式来保证做业任务可以正常运行。

解决方案

从2020年开始,愈来愈多的大数据、高性能计算等业务开始往 K8S 迁移。博云智能算力引擎,经过引入组调度、公平调度等方式,实现了面向做业进行调度,解决原生 K8S 调度器面向 Pod 调度的问题;经过引入CNCF批量计算项目volcano,实现大数据生态做业、队列管理能力;经过引入博云容器云平台,实现了 GPU 调度能力、资源隔离和资源抽象化供给能力。从而,进一步增强容器做为资源平台的能力造成,为大数据、人工智能、高性能计算等场景提升算力服务作好了准备。

 

博云智能算力引擎总体由三部分组成:

业务层:由业务软件来调用博云智能算力引擎的接口,达到做业任务的批量计算和编排调度的管理要求;

调度层:由博云智能算力引擎来提供总体的调度、运算等服务能力;

资源层:由大量物理机或虚拟机为博云的企业级 K8S 集群提供为计算赋能。

 

实现灵活的做业调度算法

基于如下原则对做业进行排队,提高整个集群的资源利用率和做业吞吐量。

集群资源使用状况

做业提交时间

做业资源申请量

做业优先级

做业排他性

做业防饿死

实现 GPU 多维调度能力

平台实现了 GPU 的统一管理、多维隔离、资源共享等调度能力。支持多个节点能够配置不一样数量、不一样类型的 GPU 卡,实现统一 GPU 卡管理;支持租户或namespace 级别的 GPU 资源隔离,支持按照 GPU 卡类型进行隔离;支持多个业务共享 GPU 卡,支持 GPU 显存隔离,提高 GPU 卡资源利用率。

实现基于 MPI 类型做业

通常一个运行的 MPI 做业,由 master/worker 两部分组成,master 负责启动 mpirun 命令,worker 负责执行真正的计算做业。

平台经过对多个 pod 模板定义设置,实现分别对应 master/worker 的定义。借助 gang scheduling,保证做业中的全部 pod 可以同时启动,已实现做业的管理。支持做业生命周期管理功能,当 mpirun 结束时,结束整个任务。

实现基于 Spark 框架做业

自 Spark 2.3版本开始,原生支持在 Kubernetes 中部署。

借助容器的优点,将运行时打包进镜像中,能够加快分发速度并提高可移植性。借助 Kubernetes 的优点,可以实现容器化应用的快速部署、弹性扩容、性能监控、日志收集等管理功能。

实现队列和优先级抢占

将整个集群的资源分配到不一样的队列中,让不一样的用户能够按需配置使用不一样的队列。当某队列中资源空闲时,能够提供给另外一个队列中的做业使用。

当同时运行的做业众多时,平台能够实现高优先级的做业能够抢占低优先级的做业资源,从而实现提早调度管理。同时,平台也可以避免低优先的任务“饿死”,长时间得不到运行。

实现高性能的容器网络

大数据、超算等场景下,须要在短期启动数以千计的计算实例并运行,这就对容器网络性能提出了更高的要求。

博云自研的 BeyondFabric 网络方案,经历了5个版本的迭代,已经在众多客户生产环境中稳定运行。目前,BeyondFabric 网络方案已实现对计算业务中的启动时间、网络带宽、网络就绪时间等指标的高性能支撑。

同时,BeyondFabric 网络可以为 Windows 系统提供更优秀的容器网络性能。

实现用户资源深度隔离

在租户层面,平台提供多租户共享底层物理资源(计算、存储、网络),作到不一样租户的应用、数据、虚拟网络的隔离,对于租户自有的应用,租户能够自由选择隔离或者打通。

在资源层面,Docker 在一台 Linux 上启动多个在独立沙箱内运做的应用,相互不影响。对不一样容器的 CPU、内存、网络、存储、进程等进行隔离。

实现资源弹性按需扩容

弹性伸缩是容器云的一个重要特性,也是实施容器云的一个重要业务场景。借助容器云的弹性能力,实现业务高峰时的资源快速扩容,避免为应对业务高峰预留过多的资源。

应用场景

HPC 高性能计算做为传统分布式计算模式的表明,在工业仿真、视觉渲染、气象环境、石油勘探、科研课题等诸多领域依然有着普遍的应用。

随着云原生技术的爆发,Kubernetes 做为云原生应用编排、管理的工具, 被愈来愈多的应用所接受和选择。众多用户开始但愿能将 HPC 应用迁移到容器中运行,经过 Kubernetes 强大的功能来进行做业管理。

工业仿真

某用户有大量基于 Windows 的 HPC 应用,在迁移到容器环境以前,常常遇到资源占用高,做业没有隔离,维护须要后台手动操做等状况。

伴随 HPC 应用迁移到容器云后,平台经过优化做业任务,实现缩短计算时长;平台提供健全资源隔离,下降了不一样部门因提交做业所形成的数据安全风险,大大提高了运行效率。实现了单次做业提交建立实例数从原来的 300+,提高到如今 1000+,使用内存资源约 15-20T 的规模。

视觉渲染

用户当前渲染业务仍是以单机服务为主,现有软件对批量计算做业调度不够灵活,对集群控制能力也比较差,做业配置、建立、释放还都是以手工操做为主。

经过对业务的容器化改造,实现资源高性能调度、秒级弹性伸缩、GPU 统一管理等能力,轻松应对大规模的渲染需求。

方案优点

博云智能算力引擎解决方案,基于容器技术实现了高性能计算场景的统一调度管理平台,方案为上层各种超算业务提供了大数据、人工智能及云原生做业编排等技术服务。该方案具备以下技术优点:

统一的资源管理

支持 Linux/Windows 计算资源池

支持 GPU 计算

支持批次、节点组管理

提高资源利用率

灵活的调度机制

支持 gang-scheduling 机制

支持主流的调度算法

支持做业防饿死、排他性等机制

提高做业吞吐率

高效的做业提交

支持 HPC、大数据、人工智能等做业

支持 MPI、TensorFlow 快捷提交

经过 DAG 模式支持 ETL 等常规做业

做业以容器运行,提高做业隔离性

多样的排队策略

多队列管理,支持资源抢占

支持设置优先级

支持队列可视化

全面的数据可视

对接 S3 等存储系统

实时在线查看数据

集中的日志告警

在线查看做业日志

在线查看做业监控数据

在线配置告警规则

完善的租户体系

划分租户资源

租户数据隔离

操做权限审计

兼容全信创生态

支持 X8六、海光、ARM 平台

支持中标麒麟、统信等操做系统

已获取主流认证证书

 

总结

经过容器化技术,博云智能算力引擎解决方案充分利用容器化技术,使大数据、人工智能、高性能计算等场景在容器化技术的应用下,进一步提高了资源使用效率和下降运维管理复杂性,使云原生技术价值获得进一步释放,支撑高性能等计算场景下的企业完成数字化转型。

相关文章
相关标签/搜索