УДК 004.7
DOI: 10.24412/2071-6168-2022-2-241-246
ПРИМЕНЕНИЕ МАШИННОГО ОБУЧЕНИЯ ПРИ ПЛАНИРОВАНИИ РАБОЧИХ ПРОЦЕССОВ В РАСПРЕДЕЛЕННЫХ ВЫЧИСЛИТЕЛЬНЫХ СИСТЕМАХ
С.А. Семенистый, Н.И. Сельвесюк, Г.А. Платошин
В статье рассмотрены способы применения технологий машинного обучения при решении задачи планирования рабочих процессов в распределенных вычислительных системах, предложенные рядом авторов. Анализ представленных способов показывает наличие возможности для снижения трудоемкости задач планирования рабочих процессов на основе машинного обучения за счет извлечения информации о структуре рабочего процесса из исторических данных. Определены направления дальнейших исследований.
Ключевые слова: распределенные вычисления, машинное обучение, планирование задач, оптимизация размещения, рабочий процесс.
Введение. В настоящее время перед разработчиками распределенных вычислительных систем (суперкомпьютеров, облачных сред) стоит проблема создания систем интеллектуального диспетчерского управления ресурсами ВС, включая возможность их реконфигурации с учетом таких метрик, как:
- минимальное среднее время ожидания - интервал между временем постановки в очередь и началом исполнения прикладной задачи;
- минимальный цикл ответа - среднее время ожидания и время проведения расчетов;
- максимальное использование ресурсов - средняя доля используемых узлов к общему числу узлов вычислительной системы за заданный период времени;
- максимизация отношения энерго-вычислительной эффективности вычислений (Гфлопс/Вт).
Особенно важна задача планирования при использовании вычислительных систем для научных расчетов с большими объемами данных как при работе с такими рабочими процессами как Montage (астрономия), Cybershake (науки о земле), Epigenomics (биоинформатика), SIPHT (биоинформатика) и LIGO (астрофизика).
В общем случае задача планирования - оптимизировать одну или несколько целевых метрик системы за счет правильного распределения задач между вычислительными устройствами (процессорами, серверами, виртуальными машинами). В широком смысле проблема планирования существует в двух формах: статической и динамической.
При статическом планировании характеристики параллельной программы (такие как время обработки задачи, обмен данными, зависимости данных и требования к синхронизации) известны до выполнения программы. Таким образом, параллельная программа может быть представлена ориентированным ациклическим графом (DAG), взвешенным по узлам и ребрам, в котором веса узлов представляют время обработки задачи, а веса ребер представляют зависимости данных, а также время связи. между задачами.
При динамическом планировании можно сделать лишь некоторые предположения о параллельной программе перед ее выполнением, что требует принятия решений о планировании непосредственно в процессе ее выполнения. Таким образом, цель алгоритма динамического планирования включает в себя не только минимизацию времени завершения параллельной программы, но и минимизацию накладных расходов на само планирование, которые могут составлять значительную часть затрат, уплачиваемых за запуск планировщика.
Для большинства архитектур вычислительных систем и видов параллельных программ задача планирования является NP-полной. Исключение составляют только некоторые упрощенные случаи, которые не являются предметом рассмотрения в настоящей работе. В связи с указанным свойством задачи планирования исследователями было предложено множество эвристик со сложностью полиномиального времени. Эти эвристики очень разнообразны с точки зрения их предположений о структуре параллельной программы и целевой параллельной архитектуре, и поэтому их трудно рассматривать в едином контексте.
Для большинства эвристик авторы использует следующий набор допущений:
- единообразное время выполнения задач;
- нулевое время взаимодействия между задачами;
- бесконфликтная связь;
- полная возможность подключения параллельных процессоров;
- доступность неограниченного числа процессоров.
В практических ситуациях эти допущения, как правило, неприменимы.
В частности, трудно рассчитывать, что время выполнения задач будет одинаковым потому, что объем вычислений, выполняемых в задачах, обычно варьируется в широком диапазоне. Также в процессе развития параллельные и распределенные архитектуры вычислительных систем были выделены в различные типы, такие как мультикомпьютеры с распределенной памятью (DMM), мультипроцессоры с общей памятью (SMM), кластеры симметричных мультипроцессоров (SMP) и сети рабочих станций (NOW) [1]. Это сделало необходимым учет их архитектурных характеристик. Например, межзадачное взаимодействие в форме передачи сообщений или доступа к разделяемой памяти неизбежно влечет за собой значительную задержку. Более того, бесконфликтная связь и полное соединение процессоров не могут быть предусмотрены для DMM, SMP или NOW. Таким образом, алгоритмы планирования, основанные на перечисленных допущениях, обычно имеют ограниченную применимость в реальных условиях.
Использование машинного обучения при планировании. Технологии машинного обучения находят широкое применение при решении огромного числа задач, связанных с необходимостью прогнозирования поведения сложных систем на основе набора признаков. Прогнозирование времени выполнения параллельных программ в распределенной вычислительной среде является важнейшей частью любого из методов планирования, что вызвало значительный интерес исследователей к данному направлению. Имеется множество работ, в которых авторы рассматривают применение различных технологий машинного обучения для оценки времени выполнения параллельных программ в распределенных вычислительных системах.
Например, в работе 2007 года [2] авторы (Лю Инбо, Ван Цзяньминь) предложили использование обучения по дереву решений для прогнозирования затрат времени на выполнение параллельной программы.
В работе 2015 года [3] авторы описали подход к планированию на основе машинного обучения для высоконагруженных распределенных систем, которые имеют шаблоны задач, периодически возникающих в параллельной программе. Подход заключается в прогнозировании работы системы на основе исторических данных о предыдущих запусках. Для этого используется иерархическая кластеризация, позволяющая выявить наборы задач, которые впоследствии подвергаются реструктуризации для выявления шаблонов повторяющихся задач. На основе полученных данных выполняется прогнозирование с помощью нейронной сети.
Также в 2015 году был предложен метод [4] оценки времени выполнения задач на основе исторических данных о потреблении ресурсов процессора, дискового пространства, памяти. На основе собранных данных проводится профилирование задач и автоматическое формирование требований к ресурсам на основе их профиля. Метод оценивает время выполнения задачи, потребление дискового пространства, пикового потребления памяти на основе размера входных данных задачи. Метод ищет корреляции между параметрами набора данных, и, если корреляция не обнаружена, набор данных делится на более мелкие подмножества с использованием метода кластеризации. Оценки задач генерируются на основе отношения параметра к размеру входных данных, если они коррелированы, или на основе функции распределения вероятностей параметра. Затем выполняется процесс оценки на основе цикла MAPE-K, в котором отслеживается выполнение задач, а оценки обновляются по мере появления дополнительной информации.
В 2017 году Тхань-Фыонг Фам, Хуан Дж. Дурилло и Томас Фарингер предложили [5] использование двухэтапного подхода в машинном обучении для прогнозирования времени выполнения задач параллельной программы в облаке. На первом этапе происходит предсказание параметров времени выполнения (runtime parameters) на основе предварительно заданных параметров задачи (pre-runtime parameters) и исторических данных о функционировании облака. На втором этапе происходит предсказание времени решения задачи на основе параметров времени выполнения.
В работе [6] 2017 года авторы представили модульную структуру, которая использует машинное обучение для создания точных прогнозов производительности параллельной программы. Основная идея состоит в том, чтобы разделить параллельную программу таким образом, чтобы сделать задачу прогнозирования каждой атомарной единицы управляемой и дать возможность эффективно комбинировать отдельные прогнозы. Метод распознает комбинацию
исполняемого файла и определенного физического ресурса как единый модуль. Это дает возможность охарактеризовать рабочую нагрузку и вычислительную мощность машины как единую единицу прогнозирования. Модульный подход представленной структуры позволяет ей адаптироваться к очень сложным параллельным программам и масштабироваться для новых сценариев. Были представлены результаты оценки производительности независимых модулей параллельной программы, выполняемых на кластере XSEDE SDSC Comet с использованием различных алгоритмов машинного обучения.
В работе [7] 2018 года авторы представили метод инкрементального онлайн-обучения для прогнозирования времени выполнения задач в научных параллельных программах в облаках. Чтобы повысить качество прогнозов, авторы использовали детализированные данные мониторинга ресурсов в виде записей временных рядов об использовании ЦП, использовании памяти и операциях ввода-вывода, которые отражают уникальные характеристики выполнения задачи. Авторы сравнили полученное решение с подходом, который использует данные мониторинга ресурсов на основе метода регрессионного машинного обучения. Согласно экспериментам, предложенная стратегия улучшает качество прогнозов (снижает погрешности) до 29,89% по сравнению с имеющимися на момент публикации решениями.
В работе 2021 [8] авторы предложили службу прогнозирования вычислительных ресурсов и затрат для научных параллельных программ в федеративных облаках (CRCPs -Computational Resource and Cost Prédiction service), которая измеряет пользовательские ресурсы и сообщает о финансовых затратах времени выполнения перед запуском выполнения параллельной программы. Кроме того, CRCP позволяет пользователям выбирать между высокопроизводительным исполнением с низким бюджетом или устанавливать, сколько платить и сколько времени нужно для завершения параллельной программы в автоматическом и прозрачном режиме.
Также в задачах планирования параллельных программ с несколькими ограничениями широко применяются теоретико-игровые модели и методики обучения с подкреплением. Считается, что концепция равновесия в теориях игр и методы многоагентного обучения очень эффективны при решении задач оптимизации с множеством ограничений и множеством целей. Например, в 2014 году Дуан и Продан предложили алгоритм последовательной кооперативной игры для оптимизации затрат и времени выполнения при соблюдении ограничений памяти для планирования крупномасштабных параллельных программ [9].
В работе 2019 [10] года Михаил Мельник и Денис Насонов предложили схему планирования параллельной программы с использованием нейронных сетей и обучения с подкреплением.
В 2019 авторы [11] предложили систему планирования на основе обучения с подкреплением в управлении параллельной программой. Авторы представили WMS (workflow management system), которая использует машинное обучение для прогнозирования времени выполнения элементов параллельной программы и вероятности сбоя при назначении задач сайтам выполнения. Ожидаемое время выполнения элементов параллельной программы можно использовать для аппроксимации веса ветвей графа параллельной программы по отношению к общей рабочей нагрузке параллельной программы, а способность предвидеть сбои отдельных элементов может препятствовать назначению элементов, которые вряд ли будут успешными.
В 2021 году авторы [12] представили ReASSIgN - стратегию планирования инкрементального обучения с подкреплением для научных параллельных программ с интенсивным использованием данных в облаке.
Таким образом, основная часть рассматриваемых работ связана с посвящена динамическому планированию в облачных системах и высокопроизводительных кластерах. Использование динамического планирования вполне объяснимо, так как, для большинства систем данные о вычислительной сложности каждого из программных модулей и потоках данных между ними до начала выполнения параллельной программы недоступны, а без этой информации применение методов статического планирования невозможно.
Также общей чертой методов планирования параллельных программ с использованием машинного обучения является необходимость наличия достаточно большого объема исторических данных о функционировании распределенной системы при выполнении параллельной программы (использование оперативной памяти, сетевых интерфейсов, загрузка процессоров и т.д.). Сбор таких данных обычно осуществляется штатными средствами операционной системы используемых вычислительных узлов или специализированными средствами, входящими в состав планировщика (например, широко используемого SLURM [13]). При этом нужно учиты-
вать, что сам процесс обучения на больших выборках достаточно ресурсоемок и, как упоминалось выше, планировщик на основе машинного обучения может сам по себе «удорожать» запуск параллельной программы.
Возможные пути дальнейших исследований. Если рассматривать собираемые исторические данные с точки зрения их содержания, то в некоторых случаях возможно даже на основании единственного прогона параллельной программы получить сведения о зависимостях программных модулей по данным и определить параметры потребления ими вычислительных ресурсов на узлах распределенной системы. Таким образом, возможно восстановление графа, описывающего выполняемую параллельную программу. Если такой граф будет ациклическим и ориентированным, то, с одной стороны, для него будут применимы известные статические методы планирования, а, с другой стороны, его использование может существенно снизить вычислительную сложность процессов машинного обучения, так как такой граф сам по себе является агрегированным представлением исторических данных.
Для реализации описанной процедуры восстановления графа параллельной программы по историческим данным предполагается решить следующие задачи:
- определить необходимую номенклатуру и объем исторических данных о выполнении параллельной программы;
- определить применимые алгоритмы формирования графа параллельной программы, обеспечивающие выполнение требований по производительности и ресурсоемкости;
- выделить границы применимости восстановленного графа при использовании методов машинного обучения.
Заключение. Проведен анализ ряда методов планирования параллельных программ с использованием машинного обучения. Сделано предположение о возможности снижения ресурсоемкости обучения за счет восстановления графа параллельной программы из исторических данных и применения его в процессе обучения. Определены направления исследований с целью формулирования процесса такого восстановления и выявления его применимости для различных видов параллельных программ и распределенных вычислительных систем.
Список литературы
1. Hwang K., Jotwani N. Advanced computer architecture: parallelism, scalability, pro-grammability. New York: McGraw-Hill, 1993. 794 p.
2. Yingbo L., Jianmin W., Jiaguang S. Using Decision Tree Learning to Predict Workflow Activity Time Consumption //Proceedings of the Ninth International Conference on Enterprise Information Systems (ICEIS 2007). 2007. P. 69-75.
3. Gritsenko A. V., Demurchev N. G., Kopytov V. V., Shulgin A. O. Decomposition analysis and machine learning in a workflow-forecast approach to the task scheduling problem for high-loaded distributed systems //Modern Applied Science. 2015. V. 9 (5). P. 38-49.
4. Da Silva R. F., Juve G., Rynge M., Deelman E., Livny M. Online task resource consumption prediction for scientific workflows //Parallel Processing Letters. 2015. V. 25 (3). P. 1541003.
5. Pham T. P., Durillo J. J., Fahringer T. Predicting workflow task execution time in the cloud using a two-stage machine learning approach //IEEE Transactions on Cloud Computing. 2017. V. 8 (1). P. 256-268.
6. Singh A., Rao A., Purawat S., Altintas I. A machine learning approach for modular workflow performance prediction //Proceedings of the 12th workshop on workflows in support of large-scale science. 2017. P. 1-11.
7. Hilman M. H., Rodriguez M. A., Buyya R. Task runtime prediction in scientific workflows using an online incremental learning approach //2018 IEEE/ACM 11th International Conference on Utility and Cloud Computing (UCC). IEEE, 2018. P. 93-102.
8. Rosa M.J.F., Ralha C. G., Holanda M., Araujo A. P. F. Computational resource and cost prediction service for scientific workflows in federated clouds // Future Generation Computer Systems. 2021. V. 125. P. 844-858.
9. Duan R., Prodan R. Cooperative scheduling of bag-of-tasks workflows on hybrid clouds //2014 IEEE 6th International Conference on Cloud Computing Technology and Science. IEEE, 2014. P. 439-446.
10. Melnik M., Nasonov D. Workflow scheduling using Neural Networks and Reinforcement Learning // Procedia Computer Science. 2019. V. 156. P. 29-36.
244
11. Kintsakis A.M., Psomopoulos F.E., Mitkas P.A. Reinforcement learning based scheduling in a workflow management system // Engineering Applications of Artificial Intelligence. Elsevier, 2019. V. 81. P. 94-106.
12. Nascimento A., Silva V., Paes A., de Oliveira D. An incremental reinforcement learning scheduling strategy for data-intensive scientific workflows in the cloud // Concurrency and Computation: Practice and Experience. 2021. V. 33 (11).
13. Yoo A. B., Jette M. A., Grondona M. Slurm: Simple linux utility for resource management //Workshop on job scheduling strategies for parallel processing. - Springer, Berlin, Heidelberg, 2003. P. 44-60.
Семенистый Сергей Александрович, программист 2-й категории, [email protected], Россия, Таганрог, Научно-исследовательский институт многопроцессорных вычислительных систем имени академика А.В. Каляева Южного федерального университета,
Сельвесюк Николай Иванович, д-р техн. наук, профессор РАН, заместитель Генерального директора, [email protected], Россия, Москва, Государственный научно-исследовательский институт авиационных систем,
Платошин Георгий Александрович, начальник сектора, gaplatoshin@,2100.gosniias.ru, Россия, Москва, Государственный научно-исследовательский институт авиационных систем
APPLYING MACHINE LEARNING TO WORKFLOW SHEDULING IN DISTRIBUTED
COMPUTING SYSTEMS
S.A. Semenistyi, N.I. Selvesiuk, G.A. Platoshin
The article discusses some ways of using machine learning technologies in solving the problem of workflow scheduling in distributed computing systems proposed by a number of authors. The analysis of the presented ways shows that it is possible to reduce the complexity of workflow scheduling tasks based on machine learning by extracting information about the workflow structure from historical data. Directions for further research are determined.
Key words: distributed computing, machine learning, task scheduling, location optimization, workflow.
Sergei Alexandrovich Semenistyi, programmer 2nd cat., semenistyi@,sfedu.ru, Russia, Taganrog, Scientific Research Institute of multiprocessor computing systems,
Selvesiuk Nikolay Ivanovich, doctor of technical sciences, professor of RAS, Deputy General Director, [email protected], Russia, Moscow, State Research Institute of Aviation Systems,
Platoshin Georgy Alexandrovich, head of sector, [email protected], Russia, Moscow, State Research Institute of Aviation Systems