Проблема распределения связанных между собой задач между исполнителями присутствует во многих областях нашей жизни. В качестве примера можно рассмотреть две такие области: облачные вычисления и энергетика.
Потребность общества в вычислительных ресурсах растет из года в год весьма стремительно, а появление новых технологий только подстегивает взрывной рост. Как пример, рост популярности нейронных сетей привел к появлению запроса на высокопроизводительные вычисления с тензорами, что сильно увеличило спрос на видеокарты (GPU), которые ранее использовались в основном в узкоспециализированных задачах (компьютерная графика, симуляция физики). Нейронные сети внедряются повсеместно, что повлекло за собой внедрению специализированных вычислительных модулей в потребительской электронике, даже в мобильной технике.
Хоть рост вычислительной мощности индивидуальных устройств в целом следует знаменитому закону Мура, приближение к физическим ограничениям технического процесса производства процессоров и кремния как материала, становится очевидно [1], что локальные вычисления далеко не всегда смогут удовлетворять нужды пользователей.
Появление Apache Hadoop в 2006 году позволило популяризировать распределенные вычисления, показав преимущества горизонтальной интеграции и параллельных вычислений. Сейчас рынок облачных (распределенных) вычислений оценивается в 760 миллиардов долларов, и только продолжит расти [2].
При взаимодействии большого числа вычислительных узлов возникает проблема управления: как оптимально распределять связанные между собой вычислительные задачи? На эту проблему можно посмотреть с различных точек зрения: оптимизация по числу единовременно задействованных ресурсов, энергоэффективности, длительности выполнения задачи, затрачиваемым ресурсам, стоимости. Данную проблему в математике решает класс алгоритмов теории расписаний.
Алгоритмы теории расписаний долго применялись в данной области, но развитие нейронных сетей и алгоритмов обучения с подкрепление позволило превзойти классические эвристики [3].
Отдельно можно выделить проблему построения расписания на направленных ациклических графах. Для некоторых вычислительных задач уже заранее может быть известен набор подзадач, связи между ними и последовательность их выполнения, представляющий собой вычислительных граф. К таким задачам относится обучение нейронных сетей, декодирование генома.
Если же рассматривать энергетику, то рост так называемой зеленой экономики способствует к всё более широкому использованию возобновляемых источников энергии. Два наиболее популярных - солнечная и ветряная энергия имеют один существенный недостаток: непостоянство. Энергия ветра, преобразуемая в электричество ветряными электрогенераторами, может быть весьма непредсказуемой - в день с сильным ветром энергии может быть переизбыток, в то время как в штиль энергии может не быть совсем. Солнечная энергия же циклична, нам хорошо известен промежуток времени, когда её возможно генерировать. Но здесь возникает известная в энергетике проблема - что делать при резком скачке спроса на электричество? Освещение и отопление в большей степени требуется ночью, когда солнце уже не светит.
Хранение полученный из таких источников энергии может серьёзно повысить их эффективность и привлекательность для потребителя, даже на уровне отдельного домохозяйства [4]. Баланс между запасанием энергии из нескольких непостоянных источников, продажей её обратно в электросеть (популярно в Европе и США), и расходом сейчас может представлять из себя комплексную оптимизационную задачу.
Как и в случае с распределенными вычислениями, мы можем оптимизировать по уровню использования, энергоэффективности, цене. Возникает задача распределения нагрузки, получаемой из различных источников между потребителями и устройствами хранения. Если же уровень потребления электроэнергии известен заранее или может быть достаточно точно предсказан, можно выстроить граф подзадач потребления энергии и распределять каждую подзадачу на один из генераторов энергии.
Две приведенные выше области, на первый взгляд различные, имеют один и тот же набор оптимизационных задач - распределение связанных между собой задач между исполнителями. Для их решения возможно эффективно применить Reinforcement Learning, который превосходит классические алгоритмы теории расписаний, что и будет показано в данной работе.
Постановка задачи
Пусть задан направленный ациклических граф G= (V, E), где V = v1,...,vn- множество вершин графа, представляющих собой задачи, E - множество ребер графа. Все вершины и ребра имеют веса: вес вершины WVi представляет собой трудозатраты на исполнение задачи, вес ребра Wi;jв свою очередь представляет собой трудозатраты исполнителя при переключении на новую задачу. Каждое ребро (i,j) 2 E представляет собой отношение предшествования, задача не может начать своё выполнение, пока не были выполнены все предшествующие задачи.
Вершина без предшественников называется входной вершиной, без наследников - выходной. Если вершин без предшественников несколько, то все они становятся наследниками псевдо-входной вершины с нулевым весом как самой вершины, так и исходящих из неё рёбер. По аналогии, если выходных вершин несколько, то они все получат единого наследника с нулевым весом вершины и входящих в неё ребер. Данное требование не несет в себе практической цели для данной работы, но было введено с целью согласования с возможными требованиями алгоритмов для данного класса задач, по аналогии с работами
Введем понятие исполнителя - агента, который выполняет задачи. Пусть задано 3 типа исполнителя: small, medium, large.Каждый из исполнителей принадлежит к определенному типу, единственное их отличие будет заключаться в значении их мощности - параметра, характеризующего эффективность исполнителя при выполнении задачи. Пусть P = {Psmaii, Pmedium, Piargeg- множество параметров мощности. Пусть задано множество исполнителей M ={miP, ...,mkP g. Для исключения тривиальных решений будем полагать, что к < п.
Введем pred(vi), succ(vi) - множества непосредственных предшественников и наследников соответственно. Пусть comp(mjP) - множество выполненных исполнителем mjP*. - множество предшественников Vi , которые не были выполнены на машине mjp*. Это означает что, если предшественник задачи был выполнен на данной машине, то затраты на переключение с предшественника на текущую задачу не будет.
Введем понятие относительной длины расписания [5]:
makespan(solution)
Pv.2CPM,N minp.ep W„,
Знаменатель в SLRпредставляет собой нижнюю границу расписания, являясь минимумом вычислительных затрат задач, составляющего критический путь (наиболее длинный путь в смысле весов, т.е. “самый тяжелый” путь), и без учета веса ребер. В [5] показано, что это значение является нижней границей makespan,и, исходя из этого SLR > 1.
Целью работы является построение Reinforcement Learning модели, которая будет добиваться минимизация SLR при заданном графе Gи наборе исполнителей Р.
Поставленная задача выполнена полностью. Были рассмотрены подходы к решению проблемы построения расписания на графах, на основе рассмотренных подходов сделан выбор в пользу методов обучения с подкреплением. Была реализована модель обучения с подкреплением, решающая задачу минимизации относительной длительности расписания на графах. Был выбран алгоритм для сравнения из классических эвристик для построения расписания на графах, сгенерированы данные для тестирования. Проведенное сравнение показало, что построенная в рамках работы модель превосходит классические эвристики. Модель, основанная на обучении с подкреплением выполняет свою задачу и обладает потенциалом к масштабированию.
[1] We’re not prepared for the end of Moore’s Law // 2020 URL:https://www.technologyreview.com/2020/02/24/905789/were-not- prepared-for-the-end-of-moores-law/(дата обращения: 14.02.2021)
[2] Cloud Computing Market Worth // 2020
URL:https://www.globenewswire.com/news-release/2020/10/01/2102033/0/ en/Cloud-Computing-Market-Worth-760-98-Billion-at-18-6-CAGR-Tech- Giants-Such-as-IBM-and-Microsoft-to-Focus-on-Introducing-Advanced- Cloud-Solutions-Fortune-Business-Insights.html
(дата обращения: 14.02.2021)
[3] Shyalika, C., Silva, T. Karunananda, A. Reinforcement Learning in Dynamic Task Scheduling: A Review // SN COMPUT. SCI. 1, 2020, pp. 306.
[4] Fares, R., Webber, M. The impacts of storing solar energy in the home to reduce reliance on the utility // Nat Energy 2, 17001, 2017.
[5] Lin, H., Li, MF., Jia, CF. et al. Degree-of-Node Task Scheduling of Fine¬Grained Parallel Programs on Heterogeneous Systems // J. Comput. Sci. Technol. 34, 2019, pp. 1096-1108.
[6] Topcuouglu H, Hariri S, Wu M Y. Performance-effective and low-complexity task scheduling for heterogeneous computing // IEEE Trans. Parallel Distrib. Syst., 13(3), 2002, pp. 260-274.
[7] Arabnejad H, Barbosa J G. List scheduling algorithm for heterogeneous systems by an optimistic cost table // IEEE Trans. Parallel and Distributed Systems, 25(3), 2014, pp. 682-694.
[8] Bittencourt L F, Sakellariou R, Madeira E R M. DAG scheduling using a lookahead variant of the heterogeneous earliest finish time algorithm // In Proc. the 18th Euromicro Int. Conf. Parallel, Distributed and Network¬Based Processing, 2010, pp.27-34.
[9] M. Divyaprabha, V. Priyadharshni and V. Kalpana, Modified Heft Algorithm for Workflow Scheduling in Cloud Computing Environment // 2018 Second International Conference on Inventive Communication and Computational Technologies (ICICCT), 2018, pp. 812-815.
[10] Fei, Yin, D. Xiaoli, Jiang Chang-jun and Deng Rong., Directed Acyclic Task Graph Scheduling for Heterogeneous Computing Systems by Dynamic Critical Path Duplication Algorithm // Journal of Algorithms and Computational Technology 3, 2009, pp. 247-270.
[11] Bozinovski, S. A self learning system using secondary reinforcement // Cybernetics and Systems Research: Proceedings of the Sixth European Meeting on Cybernetics and Systems Research, 1982, pp. 397-402.
[12] Degris, T., Martha White and R. Sutton. “Off-Policy Actor-Critic.” ArXiv, 2012, abs/1205.4839.
[13] Mnih, V., Kavukcuoglu, K., Silver, D. et al. Human-level control through deep reinforcement learning // Nature 518, 2015, pp. 529-533.
[14] Mnih, V., Adria Puigdomenech Badia, Mehdi Mirza, A. Graves, T. Lillicrap, Tim Harley, D. Silver and K. Kavukcuoglu. // Asynchronous Methods for Deep Reinforcement Learning, ArXiv, 2016, abs/1602.01783.
[15] Baheri, Betis and Qiang Guan, MARS: Multi-Scalable Actor-Critic Reinforcement Learning Scheduler // ArXiv, 2020, abs/2005.01584.
[16] Mao, Hongzi, M. Schwarzkopf, S. Venkatakrishnan, Zili Meng and M. Alizadeh, Learning scheduling algorithms for data processing clusters // Proceedings of the ACM Special Interest Group on Data Communication, 2019.
[17] Silver, D., Huang, A., Maddison, C. et al. Mastering the game of Go with deep neural networks and tree search // Nature 529, 2016, pp. 484-489.
[18] Carastan-Santos, Danilo and R. D. Camargo // Obtaining dynamic scheduling policies with simulation and machine learning, Proceedings of the International Conference for High Performance Computing, Networking, Storage and Analysis, 2017.
[19] Grandl, Robert, Srikanth Kandula, S. Rao, Aditya Akella and Janardhan Kulkarni // GRAPHENE: Packing and Dependency-Aware Scheduling for Data-Parallel Clusters, OSDI, 2016.
[20] Thiam P., Kessler V., Schwenker F. // A Reinforcement Learning Algorithm to Train a Tetris Playing Agent, Lecture Notes in Computer Science, vol 8774. Springer, Cham, 2014.
[21] Sutton R.S., Barto A.G. // Reinforcement Learning: An Introduction, MIT Press, Cambridge, MA, 2018.
[22] Williams, R. J. // Simple Statistical Gradient-Following Algorithms for Connectionist Reinforcement Learning, Machine Learning 8, 1992, pp. 229¬256.
[23] Recht, B., Christopher Re, Stephen J. Wright and Feng Niu. // Hogwild: A Lock-Free Approach to Parallelizing Stochastic Gradient Descent, NIPS, 2011.
[24] Daggen // 2013
URL:https://github.com/frs69wq/daggen/(дата обращения: 09.03.2021)
[25] Guan Wang, Yuxin Wang, Hui Liu, He Guo // HSIP: A Novel Task Scheduling Algorithm for Heterogeneous Computing Scientific Programming, vol. 2016, Article ID 3676149, 2016, pp. 5-8.
[26] Ray // 2021
URL:https://docs.ray.io/en/master/index.html(дата обращения: 24.02.2021)
[27] Liang, Eric, Richard Liaw, P. Moritz, Robert Nishihara, Roy Fox, Ken Goldberg, J. Gonzalez, Michael I. Jordan and I. Stoica // RLlib: A Framework for Distributed Reinforcement Learning, ArXiv, 2017, abs/1712.09381.
[28] Brockman, Greg, Vicki Cheung, Ludwig Pettersson, J. Schneider, John Schulman, Jie Tang and W. Zaremba // OpenAI Gym, ArXiv, 2016, abs/1606.01540.