Основные понятия планирования и автомасштабирования в CycleCloud

CycleCloud — это не планировщик, а платформа, которая позволяет пользователям развертывать собственный планировщик в Azure для управления заданиями и их распространения в кластере узлов. Кроме того, CycleCloud предоставляет REST API и библиотеку Python для разработки адаптеров автомасштабирования для планировщиков, что позволяет этим управляемым кластерам уменьшать размер в зависимости от длины очередей заданий и политик управления.

Схема оркестрации

Планировщики

Планировщик — это программное обеспечение, которое принимает список заданий (или задач) и распределяет эти задачи по пулам доступных ресурсов с учетом требований к ресурсам заданий, а также зависимостей и приоритетов между заданиями. Эти списки заданий обычно называют очередями.

CycleCloud поставляется со встроенной поддержкой ряда часто используемых планировщиков (PBS Professional OSS, Slurm, IBM LSF, Grid Engine и HT Condor), предоставляя шаблоны для развертывания этих планировщиков в Azure. Эти шаблоны представляют собой топологии по умолчанию, представляющие рекомендации по созданию кластеров HPC в Azure, использующих уникальные специализированные функции, такие как сеть InfiniBand с низкой задержкой.

Кроме того, проекты создаются для каждого планировщика и используются для установки и инициализации управляющих программ планировщика на головных узлах и вычислительных узлах.

Адаптеры планировщика

Адаптеры, созданные для каждого типа планировщика, выполняют две основные роли: 1) агрегируют требования к ресурсам из очередей планировщика и 2) преобразуют требования к ресурсам в запросы на выделение для наборов размеров виртуальных машин Azure. Эти запросы на выделение создаются с учетом определенных ограничений, например квот виртуальных машин, ограничений на размер кластера и ограничений, накладываемых топологией сети InfiniBand (для соответствующих размеров виртуальных машин). В некоторых аспектах эти адаптеры напоминают брокера, который ведет переговоры о спросе и предложении со стороны нескольких сторон.

Azure Monitor

Монитор — это процесс, который выполняется на сервере приложений CycleCloud и периодически опрашивает службы Azure на наличие ресурсов в подписке Azure. Этот монитор предоставляет эти сведения адаптерам планировщика для брокера спроса.

Распределителя узлов

Распределителя узлов выполняется на сервере приложений CycleCloud. Он получает запрос на выделение от адаптеров планировщика через REST API, подготавливает ресурсы Azure, необходимые для выполнения запроса, и предоставляет подготовленные ресурсы адаптерам планировщика в виде наборов узлов.

Примечание

Хотя описанные выше основные понятия являются общими для планировщиков, сведения о реализации отличаются в разных планировщиках. Дополнительные сведения о каждой реализации см. на страницах отдельных планировщиков.