RU2787958C2 - Динамическое выделение неоднородных вычислительных ресурсов, определяемое во время выполнения приложения - Google Patents

Динамическое выделение неоднородных вычислительных ресурсов, определяемое во время выполнения приложения Download PDF

Info

Publication number
RU2787958C2
RU2787958C2 RU2020123319A RU2020123319A RU2787958C2 RU 2787958 C2 RU2787958 C2 RU 2787958C2 RU 2020123319 A RU2020123319 A RU 2020123319A RU 2020123319 A RU2020123319 A RU 2020123319A RU 2787958 C2 RU2787958 C2 RU 2787958C2
Authority
RU
Russia
Prior art keywords
nodes
computing
accelerator
subtasks
information
Prior art date
Application number
RU2020123319A
Other languages
English (en)
Other versions
RU2020123319A (ru
Inventor
Томас ЛИППЕРТ
Бернхард ФРОВИТТЕР
Original Assignee
Партек Кластер Компитенс Сентер Гмбх
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Партек Кластер Компитенс Сентер Гмбх filed Critical Партек Кластер Компитенс Сентер Гмбх
Priority claimed from PCT/EP2019/051615 external-priority patent/WO2019145354A1/en
Publication of RU2020123319A publication Critical patent/RU2020123319A/ru
Application granted granted Critical
Publication of RU2787958C2 publication Critical patent/RU2787958C2/ru

Links

Images

Abstract

Группа изобретений относится к области вычислительной техники и может быть использована для параллельной обработки вычислительной задачи. Техническим результатом является повышение эффективности вычислений. Способ функционирования неоднородной вычислительной системы, содержащей множество вычислительных узлов и множество ускорительных узлов, при этом по меньшей мере один из множества вычислительных узлов и множества ускорительных узлов выполнен с возможностью вычисления вычислительной задачи, содержащей множество подзадач, при этом способ содержит этапы, на которых: назначают и обрабатывают, с помощью узлов из множества вычислительных узлов и ускорительных узлов, в ходе первой вычислительной итерации, указанное множество подзадач для первого распределения; и используют информацию, относящуюся к обработке указанного множества подзадач с помощью множества вычислительных узлов и ускорительных узлов, для генерирования последующего распределения указанных подзадач по вычислительным узлам и ускорительному узлу для их обработки на последующей вычислительной итерации. 2 н. и 8 з.п. ф-лы, 1 ил.

Description

Настоящее изобретение касается механизма исполнения вычислительных задач в вычислительной среде, в частности, неоднородной вычислительной среде, приспособленной для параллельной обработки вычислительной задачи.
Настоящее изобретение является развитием системы, описанной в более ранней заявке WO 2012/049247 A1, WO '247, в которой описана кластерная компьютерная архитектура, содержащая множество вычислительных узлов и множество ускорителей, соединенных вместе с помощью интерфейса связи. Диспетчер ресурсов отвечает за динамическое назначение друг другу одного или более ускорителей и вычислительных узлов во время выполнения. Пример такого динамического управления обработкой описан в документе «Динамическое управление обработкой с выделением-внутренним совместным планированием по направлению к интерактивным сверхвысокопроизводительным вычислениям», автор Класс (Clauss) и другие, COSH 19 января 2016 года, Прага, Чехия, который включен в настоящий документ посредством ссылки для любых целей. Хотя средство из WO '247 предоставляет гибкое средство для назначения ускорителей для вычислительных узлов, оно не обращается к вопросу распределения задач между вычислительными узлами и ускорителями.
Средство из WO '247 дополнительно описано в документе «Проект DEEP. Альтернативный подход к неоднородным кластерным вычислениям в эру многоядерной архитектуры», автор Эйкер (Eicker) и другие, журнал «Параллелизм и вычисления: практика и опыт» (Concurrency Computat.: Pract. Exper.), 2016; 28:2394-2411. Описанная неоднородная система содержит множество вычислительных узлов и множество ускорительных узлов, соединенных коммутируемой сетью. Для обработки приложения, его «озадачивают», чтобы обеспечить указание, какие задачи могут быть выгружены из вычислительного узла в ускоритель. Это озадачивание достигается благодаря тому, что разработчик приложения снабжает код директивами компилятору, которые указывают зависимости между разными задачами, и, кроме того, снабжает метками, которые указывают высокомасштабируемые части кода, которые должны быть обработаны ускорителем. Масштабируемость в этом контексте означает то, что, когда увеличивается нагрузка на сервис, стабильное и линейное увеличение аппаратного обеспечения может поддержать тот же уровень сервиса на одного пользователя.
В документе US 2017/0262319 A1 в одном аспекте описаны процессы времени выполнения, которые могут полностью или частично автоматизировать распределение данных и сопоставление задач и вычислительных ресурсов. Так называемый эксперт настройки, то есть, человек-оператор, по-прежнему может быть нужен для осуществления действий по сопоставлению на доступные ресурсы. По существу, описано то, как рассматриваемое приложение, требующее вычислений, может быть сопоставлено с заданной вычислительной иерархией.
В настоящем изобретении предложен способ работы неоднородной вычислительной системы, которая содержит множество вычислительных узлов и множество ускорительных узлов, по меньшей мере один из множества вычислительных узлов и множества ускорительных узлов выполнен с возможностью вычисления вычислительной задачи, эта вычислительная задача содержит множество подзадач, при этом в ходе первой вычислительной итерации, множество подзадач назначают и обрабатывают с помощью узлов из множества вычислительных узлов и ускорительных узлов для первого распределения; используют информацию, касающуюся обработки множества подзадач с помощью множества вычислительных узлов и ускорительных узлов, для выработки последующего распределения подзадач по вычислительным узлам и ускорительным узлам для их обработки на последующей вычислительной итерации.
Предпочтительно, чтобы информацию предоставляли соответствующие служебные процессы, работающие в каждом узле из вычислительных и ускорительных узлов. Предоставленная информация позволяет диспетчеру приложений определять, может ли распределение подзадач по вычислительным узлам и ускорительным узлам быть приспособлено или улучшено для последующей вычислительной итерации.
Диспетчер ресурсов может определить назначение задач и подзадач на вычислительные узлы и ускорительные узлы для первой итерации в зависимости от вычислительной задачи и дополнительных параметров. Диспетчер приложений передает информацию на диспетчер ресурсов в качестве входа, так что диспетчер ресурсов динамически изменяет последующие распределения в ходе вычисления вычислительной задачи.
В еще одном аспекте изобретения, диспетчер ресурсов на основе упомянутой информации динамически изменяет назначение друг другу вычислительных узлов и ускорительных узлов в ходе вычисления вычислительной задачи.
Начальное распределение также может быть определено с помощью диспетчера приложений с использованием информации, предоставленной пользователем системы в программном коде, скомпилированном для исполнения системой. В качестве альтернативы, диспетчер приложений может быть выполнен с возможностью выработки такого распределения на основе анализа кода подзадач.
В еще одном аспекте, в изобретении предложена неоднородная вычислительная система, которая содержит множество вычислительных узлов и множество ускорительных узлов для вычисления одной или нескольких задач, которые содержат множество подзадач, интерфейс связи, который соединяет вычислительные узлы друг с другом и ускорительными узлами, при этом система содержит диспетчер ресурсов, который выполнен с возможностью назначения друг другу ускорительных узлов и вычислительных узлов для вычисления задач и при этом система дополнительно содержит диспетчер приложений, диспетчер приложений выполнен с возможностью приема информации от служебных процессов, работающих в вычислительных узлах и ускорительных узлах, для обновления распределения подзадач по вычислительным узлам и ускорительным узлам между первой вычислительной итерацией и последующей вычислительной итерацией.
В еще одном аспекте изобретения, диспетчер ресурсов принимает упомянутую информацию, так что диспетчер ресурсов динамически изменяет назначение друг другу вычислительных узлов и ускорительных узлов в ходе вычисления вычислительной задачи.
Далее, только для примера, будут описаны предпочтительные варианты осуществления настоящего изобретения со ссылками на приложенные чертежи, на которых:
на фиг. 1 схематично показана кластерная вычислительная система, в которой применено изобретение.
На фиг. 1 показано схематичное представление кластерной вычислительной системы 10, в которой применено изобретение. Система 10 содержит некоторое количество вычислительных узлов 20 и некоторое количество ускорительных узлов 22. Вычислительные узлы 20 и ускорительные узлы соединены с помощью инфраструктуры 24 связи, при этом ускорительные узлы соединены с интерфейсом связи через интерфейсы 23 ускорителей. Каждый узел из вычислительных узлов 20 и ускорительных узлов 22 схематично представлен прямоугольником, и каждый из этих узлов при работе содержит по меньшей мере один из соответствующих служебных процессов 26а и 26b, которые схематично показаны квадратом в прямоугольнике соответствующего узла. Служебный процесс из настоящего изобретения представляет собой приложение, которое работает как фоновый процесс и которое способно предоставлять информацию, как описано в настоящем документе. В документе «Динамическое управление обработкой с выделением-внутренним совместным планированием по направлению к интерактивным сверхвысокопроизводительным вычислениям», автор Класс (Clauss) и другие, COSH 19 января 2016 года, Прага, Чехия, описаны служебные процессы, которые рассматриваются в настоящем документе, и содержание указанного документа включено в настоящий документ посредством ссылки и для любой цели.
Система 10 также содержит диспетчер 28 ресурсов, который показан соединенным с инфраструктурой 24 связи, и диспетчер 30 приложений. Каждый элемент из диспетчера 28 ресурсов и диспетчера 30 приложений содержит соответствующий служебный процесс 32 и 34.
Вычислительные узлы 20 могут быть идентичны друг другу или могут обладать разными характеристиками. Каждый вычислительный узел включает в себя один или несколько многоядерных процессоров, таких как процессор Intel XeonE5-2680. Узлы соединены вместе с помощью интерфейса связи, который может быть основан на структуре Mellanox InfiniBand ConnectX, которая способна передавать данные со скоростью в много Гигабит/с. Вычислительные узлы сопрягаются с помощью интерфейса связи с множеством ускорительных узлов, в идеальном варианте с помощью набора интерфейсов 40 ускорителей. Как показано, ускорительные узлы содержат по меньшей мере один процессор ускорительного типа, например, многоядерный процессор Intel Xeon Phi, который способен автономно загружаться и исполняет свою собственную операционную систему. Такая технология описана в упомянутом выше журнале «Concurrency Computat.: Pract. Exper.», 2016; 28:2394-2411.
Далее, система 10 может содержать модульный вычислительный слой абстракции, как описано в неопубликованной заявке PCT/EP2017/075375, которая включена в настоящий документ посредством ссылки для всех целей, при этом указанный слой выполнен для предоставления возможности связи между служебными процессами и диспетчером приложений.
Задание, которое подлежит вычислению с помощью системы, может содержать некоторое количество задач, некоторые из которых или все могут быть повторены некоторое количество раз в ходе исполнения задания. Например, задание может быть моделированием на основе метода «Монте-Карло», при котором действие моделируют с использованием случайного числа, а вычисления последовательно повторяют много раз.
Задачи могут содержать некоторое количество подзадач или ядер. Каждая из этих подзадач может более или менее подходить для обработки с помощью одного или нескольких вычислительных узлов или одного или нескольких ускорителей. В частности, масштабируемость подзадачи может указывать, подходит ли подзадача больше для обработки вычислительным узлом или ускорителем. Система является гибкой во всех направлениях, также предоставляет возможность совместной обработки подзадач всеми упомянутыми в настоящем документе узлами, а также перестановку обработки между узлами.
Если задачу вычисляют с помощью первого разделения подзадач между вычислительным узлом и ускорителем, то возможно, что такое разделение не является оптимальным разделением для вычисления этой задачи. Определенные подзадачи, которые назначены ускорителю на первой итерации, фактически могут не подходить для обработки ускорителем, так что обработка этих подзадач с помощью вычислительного узла, а не с помощью ускорителя, может оптимизировать вычисление задачи в целом. Соответственно, для второй и возможно последующих итераций для задачи, при необходимости, изменение второго и/или последующих распределений для подзадач может улучшить эффективность вычисления задачи.
Соответственно, система 10 содержит некоторый механизм, при этом все вычислительные узлы и кластерные узлы выполнены так, что служебные процессы 26а, 26b и 32 передают служебному процессу 34 информацию, касающуюся обработки подзадач и текущего состояния соответствующего обрабатывающего объекта. Служебный процесс 34 использует информацию, предоставленную служебными процессами 26а, 26b и 32, для определения, может ли распределение подзадач по вычислительным узлам и ускорителям быть отрегулировано для оптимизации или приспособления вычисления задачи для последующей итерации. Диспетчер ресурсов также может изменить назначение друг другу вычислительных узлов и ускорителей, помимо регулировки распределения задач.
Задание, содержащее задачу, для которой оператор оценил показатель масштабируемости для каждой подзадачи, является входными данными для системы. Эту задачу компилируют и скомпилированный код исполняют. При исполнении задачу анализируют с помощью диспетчера приложений, и подзадачи задачи делят на подзадачи, подходящие для вычислительного узла, и подзадачи, подходящие для ускорителя, и эту информацию передают диспетчеру ресурсов для назначения ускорителей для вычислительных узлов. В ходе первой итерации задачи, собирают результаты исполнения подзадач и информацию от служебных процессов, которая касается обработки подзадач и состояния узлов. Далее диспетчер приложений осуществляет изменение назначения подзадач для последующей итерации задачи и передает эту информацию об обновлении назначения диспетчеру ресурсов, который, соответственно, также может отрегулировать назначение ускорителей для узлов.
Для каждой итерации, служебные процессы, работающие в вычислительных узлах и ускорителях, передают информацию о состоянии на диспетчер приложений и диспетчер ресурсов, что позволяет оптимизировать вычисление для следующих итераций путем дополнительных регулировок выделения подзадач вычислительным узлам и ускорителям.
Первое распределение может быть определено на основе рейтинга, предоставленного в исходном коде для каждой подзадачи. Хотя упомянутая выше процедура описана с этапом озадачивания, на котором разработчик кода программы может подать на вход начальный показатель масштабируемости, также возможно, чтобы диспетчер приложений автоматически установил начальный показатель масштабируемости для подзадач, причем эту начальную установку улучшают для последующих итераций. Такой вариант обладает достоинством, которое заключается в том, что кодирование задач осуществляют более прямолинейно, тем самым обеспечивая улучшенную практичность системы для разработчиков кода программ, которые незнакомы с приложениями кластерных вычислений.
Помимо регулировки распределения подзадач между вычислительными узлами и ускорителями на основе масштабируемости подзадачи, на это распределение также может влиять информация, о которой узнали при обработке подзадачи, и любая потребность в вызове любых дополнительных подзадач в ходе обработки. Если первой подзадаче, которую обрабатывает ускоритель, требуются входные данные от второй подзадачи, которую не обрабатывает упомянутый ускоритель, то упомянутая ситуация может приводить к прерыванию обработки первой подзадачи. Соответственно, служебный процесс в ускорителе, который обрабатывает первую подзадачу, может отчитаться об этой ситуации диспетчеру приложений, так что на последующей итерации и первая и вторая подзадачи будут обрабатываться с помощью упомянутого ускорителя. Соответственно, диспетчер приложений выполнен с возможностью использования информации, предоставляемой служебными процессами, работающими в вычислительных узлах и ускорителях, с целью регулировки группировки подзадач при назначении вычислительных узлов и ускорителей.
Хотя вычислительные узлы на фиг. 1 обозначены одинаковой ссылочной позицией, также как и ускорительные узлы, это не подразумевает то, что все вычислительные узлы идентичны друг другу и все ускорительные узлы также идентичны друг другу. В систему 10 могут быть добавлены узлы и/или ускорительные узлы, которые отличаются по характеристикам от других вычислительных/ускорительных узлов. Соответственно, конкретные узлы из вычислительных узлов и/или ускорительных узлов могут особенно подходить для обработки конкретных подзадач. Диспетчер приложений учитывает информацию о структуре и передает такую информацию о назначении на диспетчер ресурсов для обеспечения оптимального распределения подзадач.
Важный аспект изобретения заключается в понимании того, что сопоставление, приспособление вычислительных задач и подзадач к иерархии компьютера может не обеспечить достаточное использование естественной гибкости и адаптивности архитектуры компьютера, что показано в качестве примера в документе WO 2012/049247 A1. Следовательно, настоящее изобретение объединяет наиболее адекватное приспособление задач, аналогично примеру из документа WO 2017/0262319 A1, а также динамическое изменение взаимной конфигурации вычислительных узлов и ускорительных узлов и, в конечном счете, динамически перестраивает сопоставление вычислительных задач при их исполнении на основе информации, предоставленной служебными процессами, относительно эффективности исполнения вычислительной задачи, и динамически изменяет назначение друг другу вычислительных узлов и ускорительных узлов.

Claims (12)

1. Способ функционирования неоднородной вычислительной системы, содержащей множество вычислительных узлов и множество ускорительных узлов, при этом по меньшей мере один из множества вычислительных узлов и множества ускорительных узлов выполнен с возможностью вычисления вычислительной задачи, содержащей множество подзадач, при этом способ содержит этапы, на которых:
назначают и обрабатывают, с помощью узлов из множества вычислительных узлов и ускорительных узлов, в ходе первой вычислительной итерации, указанное множество подзадач для первого распределения; и
используют информацию, относящуюся к обработке указанного множества подзадач с помощью множества вычислительных узлов и ускорительных узлов, для генерирования последующего распределения указанных подзадач по вычислительным узлам и ускорительному узлу для их обработки на последующей вычислительной итерации.
2. Способ по п. 1, в котором прием упомянутой информации и определение последующего распределения выполняются диспетчером приложений.
3. Способ по п. 2, в котором назначение задач и подзадач на вычислительные узлы и ускорительные узлы для первой итерации определяется в зависимости от вычислительной задачи, диспетчером ресурсов, при этом диспетчер приложений выполнен с возможностью приема информации и обработки ее в качестве входа для диспетчера ресурсов, так что диспетчер ресурсов выполнен с возможностью динамического изменения последующего распределения в ходе вычисления вычислительной задачи.
4. Способ по п. 3, в котором диспетчер ресурсов выполнен с возможностью приема упомянутой информации, так что диспетчер ресурсов выполнен с возможностью динамического изменения назначения друг другу вычислительных узлов и ускорительных узлов в ходе вычисления вычислительной задачи.
5. Способ по п. 1 или 2, в котором информация генерируется служебными процессами, функционирующими в вычислительных узлах и ускорительных узлах.
6. Способ по любому из пп. 1-5, в котором первое распределение определяют на основе рейтинга, предоставленного в исходном коде для каждой подзадачи.
7. Способ по любому из пп. 1-6, в котором информацию используют для обеспечения группировки подзадач по меньшей мере в одной итерации из первой и второй итераций.
8. Способ по п. 5, в котором служебный процесс, функционирующий в узле, выполнен с возможностью генерирования меры загрузки узла в ходе обработки подзадачи.
9. Неоднородная вычислительная система, содержащая множество вычислительных узлов и множество ускорительных узлов для вычисления одной или более задач, содержащих множество подзадач, интерфейс связи для соединения вычислительных узлов друг с другом и ускорительными узлами, при этом система содержит диспетчер ресурсов, выполненный с возможностью назначения друг другу ускорительных узлов и вычислительных узлов для вычисления задач, при этом система дополнительно содержит диспетчер приложений, выполненный с возможностью приема информации от служебных процессов, функционирующих в вычислительных узлах и ускорительных узлах, для обновления распределения указанных подзадач по вычислительным узлам и ускорительным узлам для последующей вычислительной итерации.
10. Вычислительная система по п. 9, в которой диспетчер ресурсов выполнен с возможностью приема упомянутой информации, так что диспетчер ресурсов выполнен с возможностью динамического изменения назначения друг другу вычислительных узлов и ускорительных узлов.
RU2020123319A 2018-01-23 2019-01-23 Динамическое выделение неоднородных вычислительных ресурсов, определяемое во время выполнения приложения RU2787958C2 (ru)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP18152903.3 2018-01-23
EP18152903 2018-01-23
PCT/EP2019/051615 WO2019145354A1 (en) 2018-01-23 2019-01-23 Application runtime determined dynamical allocation of heterogeneous compute resources

Publications (2)

Publication Number Publication Date
RU2020123319A RU2020123319A (ru) 2022-01-14
RU2787958C2 true RU2787958C2 (ru) 2023-01-13

Family

ID=

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090217275A1 (en) * 2008-02-22 2009-08-27 International Business Machines Corporation Pipelining hardware accelerators to computer systems
US20120054770A1 (en) * 2010-08-31 2012-03-01 International Business Machines Corporation High throughput computing in a hybrid computing environment
RU2597556C2 (ru) * 2010-10-13 2016-09-10 Партек Кластер Компитенс Сентер Гмбх Структура компьютерного кластера для выполнения вычислительных задач и способ функционирования указанного кластера
US20170102971A1 (en) * 2015-10-12 2017-04-13 Advanced Micro Devices, Inc. Method and Apparatus for Workload Placement on Heterogeneous Systems
RU2630753C2 (ru) * 2012-12-26 2017-09-12 Хуавэй Текнолоджиз Ко., Лтд. Способ обработки для многоядерного процессора и многоядерный процессор

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090217275A1 (en) * 2008-02-22 2009-08-27 International Business Machines Corporation Pipelining hardware accelerators to computer systems
US20120054770A1 (en) * 2010-08-31 2012-03-01 International Business Machines Corporation High throughput computing in a hybrid computing environment
RU2597556C2 (ru) * 2010-10-13 2016-09-10 Партек Кластер Компитенс Сентер Гмбх Структура компьютерного кластера для выполнения вычислительных задач и способ функционирования указанного кластера
RU2630753C2 (ru) * 2012-12-26 2017-09-12 Хуавэй Текнолоджиз Ко., Лтд. Способ обработки для многоядерного процессора и многоядерный процессор
US20170102971A1 (en) * 2015-10-12 2017-04-13 Advanced Micro Devices, Inc. Method and Apparatus for Workload Placement on Heterogeneous Systems

Similar Documents

Publication Publication Date Title
US8255889B2 (en) Method of using parallel processing constructs and dynamically allocating program portions
US8707280B2 (en) Using parallel processing constructs and dynamically allocating program portions
US8239845B2 (en) Media for using parallel processing constructs
KR20130114497A (ko) 분산 처리 시스템, 분산 처리 시스템의 스케줄러 노드 및 스케줄 방법, 및 이를 위한 프로그램 생성 장치
Wang et al. Resource management of distributed virtual machines
JP2024040165A (ja) アプリケーションの実行中に決定される異種コンピューティングリソースの動的な割り当て
Tsuji et al. Multiple-spmd programming environment based on pgas and workflow toward post-petascale computing
RU2787958C2 (ru) Динамическое выделение неоднородных вычислительных ресурсов, определяемое во время выполнения приложения
Utrera et al. Scheduling parallel jobs on multicore clusters using CPU oversubscription
Sant'Ana et al. Plb-hec: A profile-based load-balancing algorithm for heterogeneous cpu-gpu clusters
da Rosa Righi et al. MigPF: Towards on self-organizing process rescheduling of bulk-synchronous parallel applications
Beisel et al. Programming and scheduling model for supporting heterogeneous accelerators in Linux
JP2000315163A (ja) プロセッサ資源の均衡のとれた分配を実行する方法及びそのシステム
Lebedev et al. DDS: The dynamic deployment system
Chung et al. Scheduling across multiple applications using task-based programming models
Dimakopoulos et al. HOMPI: A hybrid programming framework for expressing and deploying task-based parallelism
Ejarque et al. The BioExcel methodology for developing dynamic, scalable, reliable and portable computational biomolecular workflows
EP2297639A2 (en) Method of using parallel processing constructs
US20240211241A1 (en) Method for carrying out a decision for upgrading and/or deploying software on multiple heterogenous devices
Clauss et al. Allocation-internal co-scheduling-interaction and orchestration of multiple concurrent MPI sessions
Glankwamdee et al. MW: A software framework for combinatorial optimization on computational grids
Hunold et al. TGrid-Grid runtime support for hierarchically structured task-parallel programs
Lu et al. Optimizing Communication in 2D Grid-Based MPI Applications at Exascale
Chen et al. Efficient and Economic Large Language Model Inference with Attention Offloading
Finnerty et al. On the Performance of Malleable APGAS Programs and Batch Job Schedulers