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

HTCondor

通过修改群集定义的配置部分中的“run_list”,可以轻松地在 CycleCloud 群集上启用 HTCondor。 HTCondor 群集有三个基本组件。 第一个是“中央经理”,它提供计划和管理守护程序。 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 的自动缩放,这意味着软件将监视队列的状态,并根据需要打开和关闭节点,以最佳时间/成本完成工作。 可以通过添加到 Autoscale=true 群集定义来为 HTCondor 启用自动缩放:

[cluster htcondor]
Autoscale = True

HTCondor 高级用法

如果知道作业的平均运行时,则可以在作业中) 几分钟内定义 average_runtime (。 CycleCloud 将使用该函数启动最小节点数 (例如,5 个 10 分钟的作业将仅启动单个节点,而不是 5 个节点(设置为 average_runtime 10) )。

自动缩放 Nodearray

默认情况下,HTCondor 将从名为“execute”的 nodearray 请求核心。 如果作业需要不同的节点数组 (例如,如果工作流中的某些作业具有较高的内存要求) ,则可以指定 slot_type 作业的属性。 例如,添加 +slot_type = "highmemory" 将导致 HTCondor 从“highmemory”nodearray 请求节点,而不是“execute” (请注意,这当前需要在 htcondor.slot_type = "highmemory" nodearray 的 [[[configuration]]] 节) 中设置。 这不会影响 HTCondor 计划作业的方式,因此你可能希望在 slot_type 作业 requirementsrank 表达式中包含起始属性。 例如: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-Specific配置选项 说明
htcondor.agent_enabled 如果为 true,请使用condor_agent进行作业提交和轮询。 默认值:false
htcondor.agent_version 要使用的condor_agent版本。 默认值:1.27
htcondor.classad_lifetime 类 (的默认生存期(以秒为单位)) 。 默认值: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 数设置为“禁用”超线程的一半。 如果使用自动缩放,请使用 [[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”。
tcondor.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
tcondor.version 要安装的 HTCondor 版本。 默认值:8.2.6

HTCondor 自动生成的配置文件

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

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

注意

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

CycleCloud 支持跨计划程序的标准自动停止属性集:

属性 说明
cyclecloud.cluster.autoscale.stop_enabled 是否在此节点上启用自动停止? [true/false]
cyclecloud.cluster.autoscale.idle_time_after_jobs 节点在完成作业后,在缩减作业之前, (以秒为单位的时间量) 。
cyclecloud.cluster.autoscale.idle_time_before_jobs 节点在缩减作业之前,) 节点处于空闲状态的时间 (以秒为单位。