作业计划程序配置

高性能计算迁移的一个关键方面是作业计划程序的配置。 作业计划程序负责计划用户作业,即确定应执行作业的位置和时间。 在云的上下文中,作业计划程序与资源业务流程协调程序交互,以按需获取/释放资源,这不同于资源固定且随时完全可用的本地环境。 本指南的这一部分介绍了与作业计划程序关联的需求、工具、服务和最佳做法。

最常见的 HPC 作业计划程序包括 Slurm、OpenPBS、PBSPro 和 LSF。

定义作业计划程序需求

  • Scheduler deployment:

    • 将现有作业计划程序配置迁移到云环境。
    • 利用 CycleCloud 中提供的同一计划程序,或在必要时迁移到其他计划程序。
  • Configuration management:

    • 配置作业计划程序以定义分区/队列、Azure SKU、计算节点主机名和其他参数。
    • 根据资源可用性和作业需求的变化,随时随地自动更新计划程序配置。
  • 作业提交和管理:

    • 允许最终用户根据计划和资源访问策略规则提交作业以供执行。
    • 监视和管理作业队列、资源利用率和作业状态。

HPC 直接迁移体系结构中适用于作业计划程序的最佳做法

  • 高效的计划程序部署:

    • 规划和测试现有作业计划程序配置到云环境的迁移,以确保兼容性、性能和用户体验。
    • 使用 CycleCloud 对计划程序(如 Slurm、OpenPBS、PBSPro 和 LSF)的内置支持,以实现更流畅的部署过程。
  • 优化的配置管理:

    • 要满足不断变化的资源可用性和作业要求,请定期更新计划程序配置(例如计划程序队列/分区)。
    • 使用脚本和工具自动执行配置更改,以最大程度地减少手动干预并降低错误风险。
  • 可靠的作业提交和管理:

    • 实现用于作业提交和管理的用户友好界面,以促进最终用户与计划程序的交互。
    • 要及时识别和解决潜在问题,请持续监视作业队列、资源利用率和作业状态。
  • 可伸缩性和性能:

    • 配置动态缩放策略,以根据作业需求自动调整计算节点数,从而优化资源利用率和成本。
    • 使用性能指标和监视工具持续评估和改进作业计划程序的性能和总体 HPC 环境。

这些最佳做法有助于确保顺利切换到基于云的作业计划,从而维护 HPC 工作负载的效率、可伸缩性和性能。

作业计划程序提交示例

使用 srun 提交 Slurm 交互式作业:

#!/bin/bash

# Submit a job using srun
srun --partition=debug --ntasks=1 --time=00:10:00 --job-name=test_job --output=output.txt my_application

使用 sbatch 提交 Slurm 批处理脚本:

#!/bin/bash

# Create a Slurm batch script
echo "#!/bin/bash
#SBATCH --partition=debug
#SBATCH --ntasks=1
#SBATCH --time=00:10:00
#SBATCH --job-name=test_job
#SBATCH --output=output.txt

# Run the application
my_application" > job_script.sh

# Submit the batch job
sbatch job_script.sh

Resources