你当前正在访问 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
作业 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-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 | 节点在缩减作业之前,) 节点处于空闲状态的时间 (以秒为单位。 |