你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

HTCondor

可以通过修改群集定义的配置部分中的 ,在 CycleCloud 群集上启用 run_list。 HTCondor 群集有三个基本组成部分。 第一个是中央经理,它提供计划和管理守护程序。 第二个组成部分是将作业提交到系统中的一个或多个计划程序。 最终组成部分是一个或多个执行节点,这些节点是执行计算的主机。 简单的 HTCondor 模板可能如下所示:

[cluster htcondor]

  [[node manager]]
  ImageName = cycle.image.centos7
  MachineType = Standard_A4 # 8 cores

      [[[configuration]]]
      run_list = role[central_manager]

  [[node scheduler]]
  ImageName = cycle.image.centos7
  MachineType = Standard_A4 # 8 cores

      [[[configuration]]]
      run_list = role[condor_scheduler_role],role[filer_role],role[scheduler]

  [[nodearray execute]]
  ImageName = cycle.image.centos7
  MachineType = Standard_A1 # 1 core
  Count = 1

      [[[configuration]]]
      run_list = role[usc_execute]

在 CycleCloud 中导入和启动具有此定义的群集时,将获得一个管理器、一个计划程序节点和一个执行节点。 可以使用 命令将执行cyclecloud add_node节点添加到群集。 若要添加 10 个执行节点,请使用以下命令:

cyclecloud add_node htcondor -t execute -c 10

HTCondor 自动缩放

CycleCloud 支持 HTCondor 的自动缩放。 软件会监视队列的状态,并根据需要打开和关闭节点,以最佳时间和成本完成工作。 若要为 HTCondor 启用自动缩放,请将 Autoscale=true 添加到群集定义:

[cluster htcondor]
Autoscale = True

HTCondor 高级用法

如果知道作业的平均运行时,请在作业中定义 average_runtime(以分钟为单位)。 CycleCloud 使用该值启动最小节点数。 例如,如果提交 5 个 10 分钟的作业,并且 average_runtime 设置为 10,CycleCloud 将仅启动一个节点,而不是 5 个节点。

自动缩放 Nodearray

默认情况下,HTCondor 从名为 execute 的 nodearray 请求核心。 如果作业需要不同的节点数组(例如,如果工作流中的某些作业具有较高的内存要求),请为作业指定 slot_type 属性。 例如,添加 +slot_type = "highmemory" 将导致 HTCondor 请求来自 highmemory nodearray 的节点,而不是 execute。(此设置当前需要在 nodearray 的 htcondor.slot_type = "highmemory" 部分中设置 [[[configuration]]])。 此设置不会影响 HTCondor 计划作业的方式,因此你可能希望在作业的 slot_typerequirements 表达式中包含 rank 启动属性。 例如: Requirements = target.slot_type = "highmemory"

提交作业给 HTCondor

将作业提交到 HTCondor 计划程序的最通用方法是命令(从计划程序节点运行):

condor_submit my_job.submit

示例提交文件可能如下所示:

      Universe = vanilla
      Executable = do_science
      Arguments = -v --win-prize=true
      Output = log/$(Cluster).$(Process).out
      Error = log/$(Cluster).$(Process).err
      Should_transfer_files = if_needed
      When_to_transfer_output = On_exit
      +average_runtime = 10
      +slot_type = "highmemory"
      Queue

HTCondor 配置参考

以下特定于 HTCondor 的配置选项自定义功能:

HTCondor 特定的配置选项 DESCRIPTION
htcondor.agent_enabled 如果为 true,请使用 condor_agent 进行作业提交和轮询。 默认值:false
htcondor.agent_version 要使用的“condor_agent”代理版本。 默认值:1.27
htcondor.classad_lifetime classads 的默认生存期(以秒为单位)。 默认值:700
htcondor.condor_owner 拥有 HTCondor 缩减脚本的 Linux 帐户。 默认值:root
htcondor.condor_group 拥有 HTCondor 缩减脚本的 Linux 组。 默认值:root
htcondor.data_dir 日志目录、后台处理目录、执行目录和本地配置文件目录。 默认值:/mnt/condor_data (Linux),C:\All Services\condor_local (Windows)
htcondor.ignore_hyperthreads (仅限 Windows)将 CPU 数设置为检测到的 CPU 的一半以“禁用”超线程。 如果使用自动缩放,请使用 [[node]] 或 [[nodearray]] 部分中的 Cores 配置设置指定非超线程核心计数。 默认值:false
htcondor.install_dir HTCondor 安装到的目录。 默认值:/opt/condor (Linux), C:\condor (Windows)
htcondor.job_start_count 计划程序按周期启动的作业数。 0 是无限的。 默认值:20
htcondor.job_start_delay 每个作业开始间隔之间的秒数。 0 是即时的。 默认值:1
htcondor.max_history_log 作业历史文件的最大大小,单位为字节。 默认值:20971520
htcondor.max_history_rotations 要保留的最大作业历史记录文件数。 默认值:20
htcondor.negotiator_cycle_delay 新协商程序周期开始前的最小秒数。 默认值:20
htcondor.negotiator_interval condor_negotiator 启动谈判周期的频率(以秒为单位)。 默认值:60
htcondor.negotiator_inform_startd 如果为 true,则协商程序在与作业匹配时通知开始。 默认值:true
htcondor.remove_stopped_nodes 如果为 true,则会从 CycleServer 视图中删除停止的执行节点,而不是标记为“down”。
htcondor.running 如果为 true,则 HTCondor 收集器和协商程序守护程序在中央管理器上运行。 否则,仅运行 condor_master。 默认值:true
htcondor.scheduler_dual 如果为 true,调度程序将运行两个计划。 默认值:true
htcondor.single_slot 如果为 true,则将计算机视为单个槽(无论其拥有多少核心)。 默认值:false
htcondor.slot_type 定义用于自动缩放的节点数组的slot_type。 默认值:执行
htcondor.update_interval 开始向收集器发布更新的间隔(以秒为单位)。 默认值:240
htcondor.use_cache_config 如果为 true,请使用 cache_config 让实例轮询 CycleServer 获取配置。 默认值:false
htcondor.version 版本 要安装的 HTCondor 版本。 默认值:8.2.6

HTCondor 自动生成的配置文件

HTCondor 具有大量配置设置,包括用户定义的属性。 CycleCloud 提供使用群集中定义的属性创建自定义配置文件的功能:

特征 DESCRIPTION
htcondor.custom_config.enabled 如果为 true,则使用指定的属性生成配置文件。 默认值:false
htcondor.custom_config.文件名 要写入的文件的名称(放置在 htcondor.data_dir/config 中)。 默认值:ZZZ-custom_config.txt
htcondor.custom_config.settings 要写入自定义配置文件的属性,例如 htcondor.custom_config.settings.max_jobs_running = 5000

注释

不能使用此方法指定包含 . 的 HTCondor 配置属性。 如果需要此类属性,请在指南或随 cluster-init 一起安装的文件中指定它们。

CycleCloud 支持在不同计划程序之间通用的标准自动停止属性集。

特征 DESCRIPTION
cyclecloud.cluster.autoscale.stop_enabled(停止自动扩展已启用) 是否在此节点上启用自动停止? [真/假]
自动缩放集群的作业后空闲时间 节点在完成作业之后进行纵向缩减之前处于空闲状态的时间(以秒为单位)。
自动扩展.集群.作业前的空闲时间 节点在缩减作业之前处于空闲状态的时间(以秒为单位)。