你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
可以通过修改群集定义的配置部分中的 ,在 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_type
或 requirements
表达式中包含 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(停止自动扩展已启用) | 是否在此节点上启用自动停止? [真/假] |
自动缩放集群的作业后空闲时间 | 节点在完成作业之后进行纵向缩减之前处于空闲状态的时间(以秒为单位)。 |
自动扩展.集群.作业前的空闲时间 | 节点在缩减作业之前处于空闲状态的时间(以秒为单位)。 |