Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Вы можете включить 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 использует это значение для запуска минимального количества узлов. Например, если отправлено пять заданий по 10 минут и average_runtime установлено значение 10, CycleCloud запустит только один узел вместо пяти.
Автомасштабирование NodeArray
По умолчанию HTCondor запрашивает ядра из массива узлов с именем execute. Если для задания требуется другой массив узлов (например, если определенные задания в рабочем процессе требуют большого объема памяти), укажите slot_type атрибут для задания. Например, добавление приводит к тому +slot_type = "highmemory" , что HTCondor запрашивает узел из highmemory nodearray вместо execute (этот параметр в настоящее время необходимо htcondor.slot_type = "highmemory" установить в разделе nodearray [[[configuration]]] ). Этот параметр не влияет на то, как HTCondor планирует задания, поэтому может потребоваться включить slot_type атрибут startd в задания 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 | Время жизни classads по умолчанию (в секундах). По умолчанию: 700 |
| htcondor.condor_owner | Учетная запись Linux, которой принадлежат сценарии уменьшения масштаба HTCondor. По умолчанию: root |
| htcondor.condor_group | Группа Linux, которой принадлежат сценарии уменьшения масштаба HTCondor. По умолчанию: root |
| htcondor.data_dir | Каталог для журналов, каталогов спулинга, каталогов выполнения и локального файла конфигурации. По умолчанию: /mnt/condor_data (Linux), C:\All Services\condor_local (Windows) |
| htcondor.ignore_hyperthreads | (Только для Windows) Установите количество процессоров, равное половине обнаруженных процессоров, чтобы «отключить» технологию Hyper-Threading. Если используется автомасштабирование, укажите количество ядер без гиперпотока с помощью параметра Cores конфигурации в разделе [[node]] или [[nodearray]]. Значение по умолчанию: false |
| htcondor.install_dir | Каталог, в который установлен HTCondor. По умолчанию: /opt/condor (Linux), C:\condor (Windows) |
| htcondor.job_start_count | Количество заданий, которые schedd запускает за цикл. 0 не ограничено. По умолчанию: 20 |
| htcondor.job_start_delay | Количество секунд между интервалом запуска каждого задания. 0 — это немедленное значение. По умолчанию: 1 |
| htcondor.max_журнал_истории | Максимальный размер файла истории заданий в байтах. По умолчанию: 20971520 |
| htcondor.max_история_вращений | Максимальное количество хранимых файлов журнала заданий. По умолчанию: 20 |
| htcondor.negotiator_cycle_delay | Минимальное количество секунд до начала нового цикла переговоров. По умолчанию: 20 |
| htcondor.negotiator_interval | Как часто (в секундах) condor_negotiator начинает цикл переговоров. По умолчанию: 60 |
| htcondor.negotiator_inform_startd | Если true, переговорщик информирует стартового партнера, когда он подходит для работы. Значение по умолчанию: true |
| htcondor.remove_stopped_nodes | Если true, остановленные выполняемые узлы удаляются из представления CycleServer, а не помечаются как "неработающие". |
| htcondor.running | Если значение true, демоны сборщика и переговорщика HTCondor работают на центральном менеджере. В противном случае запускается только condor_master. Значение по умолчанию: true |
| htcondor.scheduler_dual | Если значение равно true, планировщики запускают два расписания. Значение по умолчанию: true |
| htcondor.single_slot | Если true, то машина рассматривается как один слот (независимо от количества ядер на машине). Значение по умолчанию: false |
| htcondor.slot_type | Определяет slot_type массива узлов для автоматического масштабирования. По умолчанию: execute |
| htcondor.update_interval | Интервал (в секундах) для начала публикации обновления в сборщике. По умолчанию: 240 |
| htcondor.use_cache_config | Если значение true, используйте cache_config, чтобы экземпляр опрашивал CycleServer для настройки. Значение по умолчанию: false |
| htcondor.версия | Версия HTCondor для установки. По умолчанию: 8.2.6 |
Автоматически сгенерированный конфигурационный файл HTCondor
HTCondor имеет большое количество конфигурационных параметров, в том числе определяемых пользователем атрибутов. CycleCloud предлагает возможность создания пользовательского файла конфигурации с использованием атрибутов, определенных в кластере:
| Свойство | Описание |
|---|---|
| htcondor.custom_config.enabled | Если значение true, то файл конфигурации генерируется с использованием указанных атрибутов. Значение по умолчанию: false |
| htcondor.custom_config.имя_файла | Имя файла (помещается в htcondor.data_dir/config) для записи. По умолчанию: ZZZ-custom_config.txt |
| htcondor.custom_config.настройки | Атрибуты для записи в пользовательский файл конфигурации, такие как htcondor.custom_config.settings.max_jobs_running = 5000 |
Замечание
Вы не можете указать конфигурационные атрибуты HTCondor, содержащие этот метод.. Если вам нужны такие атрибуты, укажите их в кулинарной книге или файле, установленном с помощью cluster-init.
CycleCloud поддерживает стандартный набор атрибутов автоостановки во всех планировщиках.
| Свойство | Описание |
|---|---|
| cyclecloud.cluster.autoscale.остановка_включена | Включает автостоп на этом узле. [истина/ложь] |
| cyclecloud.cluster.autoscale.время_бездействия_после_завершения_задач | Время (в секундах), в течение которого узел остаётся бездействующим после завершения заданий до автоматической остановки. |
| cyclecloud.cluster.autoscale.время_простоя_перед_задачами | Время (в секундах), в течение которого узел простаивает перед выполнением заданий и перед автостопом. |