ВШЭ, ИППИ РАН, [email protected]

Инструментарий для сравнительной оценки алгоритмов планирования заданий

Планирование выполнения заданий в распределенных системах в постановках, представляющих практический интерес, является NP-полной задачей. За последнее десятилетие было предложено множество алгоритмов планирования, основанных на различного рода (мета)эвристиках и ориентированных на различные классы приложений (bag of tasks, parallel job, workflow) и систем. При этом отсутствуют общепризнанные наборы тестов (бенчмарки) и инструменты для сравнения эффективности подобных алгоритмов. В данной работе предлагается реализовать такой инструментарий на базе имитационной модели (симулятора) распределенной системы. В состав инструментария должны войти средства генерации синтетических систем и заданий, средства запуска имитационных экспериментов и анализа их результатов.

Исследование гибридных подходов к планированию заданий

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

Планирование workflow в динамически реконфигурируемой облачной среде

Композитные приложения (workflow) представляют собой графы вычислительных задач, связанные друг с другом зависимостями по данным. Такие приложения часто встречаются при автоматизации многоэтапных расчетов и процессов обработки данных. Задача планирования workflow в распределенной системе состоит в выборе расписания выполнения задач на узлах системы, минимизирующего общее время выполнения графа. Данная задача хорошо изучена для выделенных систем, состоящих из фиксированного набора физических узлов. Облачные среды позволяют гибко управлять конфигурацией системы, добавляя/удаляя физические узлы и разбивая их на виртуальные контейнеры. Это дает новые степени свободы при оптимизации выполнения workflow в такой среде. В работе планируется исследовать существующие и предложить новые подходы к решению данной задачи.

Планирование workflow с большим объемом рабочих данных

Композитные приложения (workflow) представляют собой графы вычислительных задач, связанные друг с другом зависимостями по данным. Такие приложения часто встречаются при автоматизации многоэтапных расчетов и процессов обработки данных. Задача планирования workflow в распределенной системе состоит в выборе расписания выполнения задач на узлах системы, минимизирующего общее время выполнения графа. Данная задача хорошо изучена для случая, когда между задачами передаются небольшие объемы данных и затраты на пересылку данных по сети незначительны. Однако все больше приложений работают с большими данными, что требует явного учёта в алгоритмах планирования с целью минимизации расходов на перемещение промежуточных данных. В работе планируется исследовать существующие и предложить новые подходы к решению данной задачи.

Реализация алгоритмов планирования приложений в рамках платформы Everest

Задача планирования приложения в распределенной системе состоит в выборе расписания выполнения отдельных задач приложения на узлах системы, минимизирующего общее время выполнения. В данной работе требуется реализовать и протестировать в рамках платформы распределенных вычислений Everest подобные алгоритмы для двух часто встречающихся классов приложений. Пакет задач (bag of tasks) - набор из большого числа независимых задач (многовариантные расчеты, обработка данных, рендеринг). Композитные приложения (workflow) - набор задач, связанных друг с другом зависимостями по данным (многоэтапные расчеты и обработка данных). Одной из подзадач в рамках работы является получение оценок априори неизвестных времен выполнения задач и передачи данных, которые необходимы многим алгоритмам.

Исследование алгоритмов управления ресурсами Kubernetes-кластера

Технология Kubernetes позволяет автоматизировать развёртывание, масштабирование и управление контейнеризированными приложениями на единой физической инфраструктуре, такой как кластер. Эффективность использования ресурсов кластера и выполнения приложений на нём определяется выбранными алгоритмами управления ресурсами, такими как алгоритмы планирования заданий и масштабирования кластера (autoscaling). Готовые реализации данных алгоритмов в Kubernetes являются простыми и не поддерживают многие типичные требования. В работе планируется исследовать существующие и предложить новые алгоритмы управления ресурсами. Одной из подзадач в рамках работы является создание имитационной модели (симулятора) кластера для проведения сравнительной оценки различных алгоритмов. Также возможна непосредственная реализация алгоритмов в рамках Kubernetes.

Реализация универсального сервиса для оптимизации чёрного ящика

Оптимизация черного ящика, когда отсутствует аналитическая модель оптимизируемого объекта и невозможно использовать классические методы, встречается в самых различных областях (например, оптимизация параметров технических систем или программ). Оптимизируемая система представлена в виде программного модуля, который принимает на вход параметры и возвращает значение оптимизируемого критерия. В данной работе планируется разработать универсальный многопользовательский сервис для автоматической оптимизации параметров черного ящика на основе известных методов и платформы Everest. Сервис будет принимать на вход ящик и описание параметров, реализовывать параллельный поиск решений с использованием распределенных вычислений и возвращать пользователю найденные решения.

Реализация сервиса по развертыванию вычислительного кластера в облаке

С появлением облаков стало возможным арендовать вычислительные ресурсы, в том числе для проведения сложных расчётов с использованием нескольких машин, объединенных в кластер. Однако, большинство провайдеров не предоставляют готовых решений по развертыванию в облаке полноценной инфраструктуры в виде HPC-кластера из нескольких машин с настроенной системой очередей и установленными вычислительными пакетами. Существуют сторонние решения, однако для их использования требуется локальная установка и определенная квалификация. В данной работе планируется на базе существующих решений реализовать многопользовательский сервис, автоматизирующий развертывание кластеров с заданными параметрами в облаке и поддерживающий несколько провайдеров.

Инструментарий для оптимизации параметров запуска приложения в облаке

С появлением облаков стало возможным арендовать вычислительные ресурсы для выполнения различных приложений, в том числе для проведения сложных расчётов и обработки данных. Скорость выполнения расчёта и его итоговая стоимость существенно зависят от выбранной конфигурации арендуемых ресурсов. Из-за большого разнообразия типов виртуальных машин и их настроек требуются средства, автоматизирующие выбор оптимальной конфигурации по критериям времени выполнения и/или стоимости. В данной работе планируется реализовать программный инструментарий, позволяющий провести поиск оптимальной конфигурации и оценить затраты по запуску заданного приложения в облаке на основе тестовых запусков и исследования производительности виртуальных машин у различных облачных провайдеров.