ClearML 如何帮助团队充分利用 Slurm

2024 年 5 月 8 日

公司积累 GPU 计算能力以构建自己的 AI 计算基础设施并支持日益增长的计算请求是一个相当新的趋势。许多新兴的 AI 工具现在使数据科学家能够无缝地处理数据、运行实验和训练模型,并且能够提交他们的作业并监控其进展。然而,对于许多拥有成熟超级计算能力的组织来说,Slurm 一直是管理计算集群的首选调度工具。

在这篇博客中,我们将探讨 ClearML 如何与 Slurm 协同工作,以及 ClearML 为使用这个强大调度工具的组织带来的益处。

什么是 Slurm?

Slurm 源自 Simple Linux Utility for Resource Management (SLURM),它是一个免费的开源 Linux 原生作业调度器,用于管理计算集群上的 AI 和 HPC 工作负载。 

在模型开发过程中,Slurm 可用于

  • 通过复杂的策略管理为作业分配计算资源。
  • 管理作业队列、装箱优化和集群计算优化。 
  • 提供框架来管理作业在多个节点上的并行启动,包括设置、执行和监控。

想象一下同时登录到所需的最优化机器配置,并在所有这些机器上无缝地并行运行你的作业——这就是 Slurm 的魔力所在。 

Architectural Diagram

Slurm 架构图

使用 Slurm 的原因和用例

作为一款开源的 Linux 原生工具,使用 Slurm 需要大量的编码和脚本编写。然而,与 Kubernetes 不同,Slurm 专为优化处理资源密集型 AI 和 HPC 作业的集群内计算而开发。它是一款高度可扩展、高性能的调度工具,支持公平共享调度、抢占式和组调度、高级预留以及高级策略管理。Slurm 的新版本也支持容器。

Slurm 使 AI 团队能够通过报告 API 管理跨计算集群的多个用户,并提供实时作业分析、预算和功耗信息。它还对作业强制执行严格的时间限制,以防止资源被单个工作负载耗尽。

Slurm 被大量强大的超级计算机(以及全球前十名中的六台)所使用,它是管理运行计算密集型工作负载(如模拟、3D 建模和数字孪生创建)的计算集群 (CPU 或 GPU) 的强大替代方案。使用 Slurm 的公司正在构建引擎、研究蛋白质分子、模拟风洞空气动力学、测试机械和数字设计智慧城市等,还有许多其他用例。想想需要 100 多个 CPU 并行处理单个作业的场景——那就是 Slurm 大放异彩的时候。

使用 Slurm 的挑战

唉,如果听起来好得不像真的,那通常就不是真的。使用 Slurm 并非没有挑战。首先,如前所述,Slurm 需要大量 Bash 脚本(甚至不是 Python)。这对于构建管道或创建自动化来说相当繁琐,因为你需要大量代码来帮助系统做出决策,而且有时会出现问题。

Slurm 无法根据作业需要启动不同的环境,并且管理和确保所有不同的数据连接、容器和驱动程序对用户可用,以及每个元素都具有集群访问权限,这一点非常复杂。作业失败时也没有给出警告。Slurm 的策略管理旨在尽可能高效地促进来自多个用户的工作负载,超出内存配额或运行时间过长的作业将被终止。

最后,也是对 AI 团队最重要的一点,是缺乏对每个集群内部发生情况的可见性。一旦作业发送到 Slurm,就无法重新调整作业的优先级,甚至无法查看它们在队列中的位置。这种缺乏透明度的情况迫使用户只能等待作业完成以获取结果(或被终止)。

ClearML 和 Slurm:工作原理

ClearML 的端到端 AI 基础平台可以整体使用,也可以模块化使用,我们是市场上首个支持 Slurm 的平台。 

开发 AI 模型的数据科学家可以在 ClearML 平台上无缝工作。通过内置功能,可以高效且协作地管理数据集(包括大型、非结构化文件)和训练模型,该功能会自动记录所做的任何更改,支持逻辑驱动的管道,并无需 IT 额外干预即可便捷访问计算资源。

ClearML 的企业级安全功能包括 SSO 认证、RBAC 和 LDAP 集成,用于用户管理,并结合配置库和策略使用,从而对用户可访问的数据、模型和资源进行全面控制。 

通过与 Slurm 集成,作业被放入已映射到 Slurm 模板的队列中。然后在 Slurm 内部,ClearML 使用正确的环境(设置、配置和参数)启动每个作业,并负责管理所需的数据连接和驱动程序。ClearML 还确保作业不会消耗超出允许的内存。对于拥有 GPU 基础设施的组织,ClearML 进一步允许 AI 团队利用我们的分割 GPU 功能在同一计算资源上并行运行多个作业。

ClearML 为 AI 团队提供了对其队列的全面可见性,即使是那些发往 Slurm 的队列。队列中的作业完全可访问,并且在运行前仍可以停止或移除,并且很容易查看每个作业的状态。这种透明度使得监控 Slurm 集群内部发生的情况变得简单。

Slurm + ClearML 为何是致胜组合

除了让你的 AI 团队在统一的 AI 基础平台上协同工作的优势之外,ClearML 还为组织提供了 Slurm 本身不具备的额外功能,例如:

  • 可见性:监控 Slurm 集群内的所有作业,了解每个作业的资源利用情况,并访问聚合结果,能够通过图表和标量比较结果。
  • 自动化:通过管道、任务调度能力,以及无需使用 bash 脚本即可编写自定义自动化的能力。
  • 最大化利用率:通过确保队列满载,防止节点闲置。
  • 云混合:系统支持云溢出,并在 AWS、GCP 或 Azure 上配备自动伸缩器,提供了云混合的可能性。

要了解更多关于 ClearML 的 Slurm 功能,申请演示以了解更多信息。

Facebook
Twitter
LinkedIn
滚动到顶部