ДИНАМИЧЕСКОЕ ВЫДЕЛЕНИЕ НЕОДНОРОДНЫХ ВЫЧИСЛИТЕЛЬНЫХ РЕСУРСОВ, ОПРЕДЕЛЯЕМОЕ ВО ВРЕМЯ ВЫПОЛНЕНИЯ ПРИЛОЖЕНИЯ Российский патент 2023 года по МПК G06F9/50 

Описание патента на изобретение RU2787958C2

Настоящее изобретение касается механизма исполнения вычислительных задач в вычислительной среде, в частности, неоднородной вычислительной среде, приспособленной для параллельной обработки вычислительной задачи.

Настоящее изобретение является развитием системы, описанной в более ранней заявке 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, а также динамическое изменение взаимной конфигурации вычислительных узлов и ускорительных узлов и, в конечном счете, динамически перестраивает сопоставление вычислительных задач при их исполнении на основе информации, предоставленной служебными процессами, относительно эффективности исполнения вычислительной задачи, и динамически изменяет назначение друг другу вычислительных узлов и ускорительных узлов.

Похожие патенты RU2787958C2

название год авторы номер документа
СТРУКТУРА КОМПЬЮТЕРНОГО КЛАСТЕРА ДЛЯ ВЫПОЛНЕНИЯ ВЫЧИСЛИТЕЛЬНЫХ ЗАДАЧ И СПОСОБ ФУНКЦИОНИРОВАНИЯ УКАЗАННОГО КЛАСТЕРА 2011
  • Липперт Томас
RU2597556C2
ВЫСОКОПРОИЗВОДИТЕЛЬНАЯ КОМПЬЮТЕРНАЯ СИСТЕМА И СПОСОБ 2017
  • Липперт, Томас
RU2733058C1
СПОСОБ ПОСТРОЕНИЯ ИЕРАРХИЧЕСКОЙ СИСТЕМЫ СЕТЕВОГО ВЗАИМОДЕЙСТВИЯ ВИРТУАЛЬНЫХ РАБОЧИХ МЕСТ 2011
  • Пильщиков Дмитрий Евгеньевич
  • Борисов Владимир Владимирович
  • Завьялов Георгий Евгеньевич
  • Дудаков Андрей Михайлович
  • Жосану Алексей Михайлович
RU2486584C2
СПОСОБ ПОСТРОЕНИЯ СИСТЕМЫ СООБЩЕНИЙ МНОГОУРОВНЕВОЙ НЕСИММЕТРИЧНОЙ ТРАНСПОРТНОЙ СИСТЕМЫ 2011
  • Пильщиков Дмитрий Евгеньевич
  • Борисов Владимир Владимирович
  • Завьялов Георгий Евгеньевич
  • Дудаков Андрей Михайлович
  • Жосану Алексей Михайлович
RU2486578C2
СПОСОБ И СИСТЕМА ИНТЕГРАЦИИ ИНФОРМАЦИОННЫХ РЕСУРСОВ ПРЕДПРИЯТИЯ 2019
  • Михайлов Александр Робертович
  • Апполонов Сергей Владимирович
  • Еньшин Юрий Анатольевич
  • Кирилычева Марина Владимировна
  • Крезов Дмитрий Александрович
  • Марусин Сергей Александрович
  • Обрегон Саенс Людмила Сергеевна
  • Салтанов Андрей Вадимович
  • Ступакова Жанна Алексеевна
  • Творогова Нина Александровна
  • Моисеева Юлия Вячеславовна
  • Николаев Евгений Николаевич
RU2744566C1
SMB2-МАСШТАБИРОВАНИЕ 2012
  • Крус Дэвид М.
  • Ловинджер Дэниел Э.
  • Джолли Томас И.
  • Пинкертон Джеймс Т.
  • Джордж Мэтью
  • Баттепати Рупеш К.
  • Шан Миндун
RU2613040C2
СПОСОБ РАСПРЕДЕЛЕНИЯ ЗАДАЧ СЕРВЕРОМ ВЫЧИСЛИТЕЛЬНОЙ СИСТЕМЫ, МАШИНОЧИТАЕМЫЙ НОСИТЕЛЬ ИНФОРМАЦИИ И СИСТЕМА ДЛЯ РЕАЛИЗАЦИИ СПОСОБА 2013
  • Мацкевич Степан Евгеньевич
  • Даниэлян Татьяна Владимировна
RU2538920C2
МАСШТАБИРУЕМЫЕ ПУЛЫ ХРАНЕНИЯ ДАННЫХ 2015
  • Вентура Эшли П.
  • Рамани Тарун
  • Мехра Каран
  • Раджпал Шив Кумар
  • Хавевала Сарош К.
RU2702268C2
СИСТЕМА И СПОСОБ ЗОНИРОВАНИЯ В ПРОГРАММНО ОПРЕДЕЛЯЕМЫХ СЕТЯХ 2015
  • Ли Сюй
  • Джукич Петар
  • Чжан Хан
RU2648610C2
Компьютерная система 2021
  • Шен, Юши
  • Ру, Кончонг
  • Яо, Женбин
  • Ма, Чуанджун
RU2800966C1

Иллюстрации к изобретению RU 2 787 958 C2

Реферат патента 2023 года ДИНАМИЧЕСКОЕ ВЫДЕЛЕНИЕ НЕОДНОРОДНЫХ ВЫЧИСЛИТЕЛЬНЫХ РЕСУРСОВ, ОПРЕДЕЛЯЕМОЕ ВО ВРЕМЯ ВЫПОЛНЕНИЯ ПРИЛОЖЕНИЯ

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

Формула изобретения RU 2 787 958 C2

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

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

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

2. Способ по п. 1, в котором прием упомянутой информации и определение последующего распределения выполняются диспетчером приложений.

3. Способ по п. 2, в котором назначение задач и подзадач на вычислительные узлы и ускорительные узлы для первой итерации определяется в зависимости от вычислительной задачи, диспетчером ресурсов, при этом диспетчер приложений выполнен с возможностью приема информации и обработки ее в качестве входа для диспетчера ресурсов, так что диспетчер ресурсов выполнен с возможностью динамического изменения последующего распределения в ходе вычисления вычислительной задачи.

4. Способ по п. 3, в котором диспетчер ресурсов выполнен с возможностью приема упомянутой информации, так что диспетчер ресурсов выполнен с возможностью динамического изменения назначения друг другу вычислительных узлов и ускорительных узлов в ходе вычисления вычислительной задачи.

5. Способ по п. 1 или 2, в котором информация генерируется служебными процессами, функционирующими в вычислительных узлах и ускорительных узлах.

6. Способ по любому из пп. 1-5, в котором первое распределение определяют на основе рейтинга, предоставленного в исходном коде для каждой подзадачи.

7. Способ по любому из пп. 1-6, в котором информацию используют для обеспечения группировки подзадач по меньшей мере в одной итерации из первой и второй итераций.

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

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

10. Вычислительная система по п. 9, в которой диспетчер ресурсов выполнен с возможностью приема упомянутой информации, так что диспетчер ресурсов выполнен с возможностью динамического изменения назначения друг другу вычислительных узлов и ускорительных узлов.

Документы, цитированные в отчете о поиске Патент 2023 года RU2787958C2

СТРУКТУРА КОМПЬЮТЕРНОГО КЛАСТЕРА ДЛЯ ВЫПОЛНЕНИЯ ВЫЧИСЛИТЕЛЬНЫХ ЗАДАЧ И СПОСОБ ФУНКЦИОНИРОВАНИЯ УКАЗАННОГО КЛАСТЕРА 2011
  • Липперт Томас
RU2597556C2
СПОСОБ ОБРАБОТКИ ДЛЯ МНОГОЯДЕРНОГО ПРОЦЕССОРА И МНОГОЯДЕРНЫЙ ПРОЦЕССОР 2012
  • Левин Михаил Петрович
  • Филиппов Александр Николаевич
  • Янь Юлян
RU2630753C2
US 20090217275 A1, 27.08.2009
US 20120054770 A1, 01.03.2012
US 20170102971 A1, 13.04.2017.

RU 2 787 958 C2

Авторы

Липперт, Томас

Фровиттер, Бернхард

Даты

2023-01-13Публикация

2019-01-23Подача