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

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

ОБЛАСТЬ ТЕХНИКИ

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

УРОВЕНЬ ТЕХНИКИ

[0002] Из уровня техники известны различные решения, направленные на распределение вычислительных ресурсов для предоставления услуг.

[0003] Например, известны способы и системы для предоставления функции как услуги в предсказуемое время, например, в установленный срок или с определенной периодичностью, раскрытые в заявке US 20220357994 А1, опубл. 10.11.2022. В данном документе раскрывается система, содержащая по крайней мере один вычислительный узел, предоставляющий множеству пользователей платформу, включающую множество программно-функциональных сервисов, при этом по крайней мере один вычислительный узел сконфигурирован для: запуска настраиваемого процесса на уровне платформы, привязанной к функции сервиса; вызова функции сервиса для выполнения специализированной функции-исполнителя из настроенного процесса на уровне платформы; выполнения, по крайней мере, первого шага инициализации, включающего выделение вычислительных ресурсов для настраиваемого процесса на уровне платформы; и при срабатывании события, привязанного к функции сервиса: вызова хотя бы одной служебной функции, выполняемой специализированной функцией-исполнителем, для выполнения функции сервиса с использованием выделенных вычислительных ресурсов; получения специализированной функцией-исполнителем обобщенного возвращаемого значения хотя бы от одной служебной функции; и применения обобщенного возвращаемого значения в ответ на событие.

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

РАСКРЫТИЕ ИЗОБРЕТЕНИЯ

[0005] Технической проблемой или задачей, поставленной в данном техническом решении, является создание простого и надежного способа и системы распределения вычислительных ресурсов для обработки запросов пользователей.

[0006] Техническим результатом является повышение скорости выполнения задач пользователя и пропускной способности вычислительных ресурсов.

[0007] Указанный технический результат достигается благодаря осуществлению способа распределения вычислительных ресурсов для обработки запросов пользователей, выполняемого посредством вычислительного устройства, содержащего этапы, на которых:

- получают от устройства пользователя запрос на выполнение задачи (текущей задачи), содержащий параметры задачи;

- извлекают из запроса параметры задачи и на их основе определяют количество вычислительных ресурсов (BP), требуемое для выполнения текущей задачи;

- определяют наличие BP, выделенных для выполнения задач данного типа;

- определяют наличие по меньшей мере одной задачи пользователя в списке задач в очереди к упомянутым выделенным BP;

- определяют прогнозируемое время выполнения текущей задачи с учетом прогнозируемого времени выполнения задачи из очереди;

- сравнивают прогнозируемое время выполнения текущей задачи с допустимыми значениями времени выполнения текущей задачи,

причем если прогнозируемое время выполнения текущей задачи не выходит за границы значений допустимого времени выполнения текущей задачи, то осуществляют постановку текущей задачи в список задач в очереди; если прогнозируемое время выполнения текущей задачи выходит за границы значений допустимого времени выполнения текущей задачи, то выделяют BP для запуска копии ПО для выполнения текущей задачи и направляют команду к упомянутым выделенным BP для выполнения текущей задачи посредством копии ПО.

[0008] В одном частном примере осуществления способа постановка текущей задачи пользователя в список задач в очереди осуществляется с учетом приоритета текущей задачи и/или с учетом значений допустимого времени выполнения текущей задачи и/или значений допустимого времени выполнения задачи в очереди.

[0009] В другом частном примере осуществления способа этап выделения BP для запуска в нем копии ПО для выполнения текущей задачи содержит этап, на котором определяют наличие свободных BP для запуска копии ПО для выполнения текущей задачи.

[0010] В другом частном примере осуществления способа этап выделения BP для запуска в нем копии ПО для выполнения текущей задачи содержит этапы, на которых:

- определяют отсутствие свободных BP для запуска копии ПО для выполнения текущей задачи;

- осуществляют поиска контейнера или виртуальной машины без очереди или с минимальным количеством задач в очереди;

- направляют команду на упомянутый контейнер или виртуальную машину без очереди или с минимальным количеством задач в очереди для остановки его работы и высвобождения BP.

[0011] В другом частном примере осуществления способа дополнительно выполняют этапы, на которых:

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

- направляют команду на упомянутый контейнер или виртуальную машину без очереди или с минимальным количеством задач в очереди для остановки его/ее работы и высвобождения BP, которые были выделены для запуска ПО с использованием данного контейнера или виртуальной машины, с целью запуска задачи первого типа на освободившихся BP.

[0012] В другом частном примере осуществления способа дополнительно выполняют этапы, на которых:

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

[0013] В другом частном примере осуществления способа этап постановки текущей задачи в список задач в очереди дополнительно содержит этапы, на которых:

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

- сравнивают прогнозируемое время выполнения текущей задачи с учетом времени прогнозируемого выполнения задачи из очереди с прогнозированным временем выполнения текущей задачи с использованием копии ПО;

причем постановку текущей задачи в список задач в очереди осуществляют после определения того, что прогнозируемое время выполнения текущей задачи с учетом времени прогнозируемого выполнения задачи из очереди меньше, чем прогнозированное времени выполнения текущей задачи с использованием копии ПО.

[0014] В другом частном примере осуществления способа ПО, посредством которого выполняется задача пользователя, запускается посредством контейнера или экземпляра виртуальной машины с запущенным в нем ПО.

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

КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ

[0016] Признаки и преимущества настоящего технического решения станут очевидными из приводимого ниже подробного описания изобретения и прилагаемых чертежей, на которых:

- на Фиг. 1 представлена общая системы распределения вычислительных ресурсов;

- на Фиг. 2 представлен пример общего вида вычислительного устройства.

ОСУЩЕСТВЛЕНИЕ ИЗОБРЕТЕНИЯ

[0017] Ниже будут описаны понятия и термины, необходимые для понимания данного технического решения.

[0018] В данном техническом решении под системой подразумевается, в том числе компьютерная система (в частности, информационная система, вычислительные комплексы, вычислительные кластеры), ЭВМ (электронно-вычислительная машина), ЧПУ (числовое программное управление), ПЛК (программируемый логический контроллер), компьютеризированные системы управления, специализированные устройства, реализующие вычисления по технологиям FPGA и ASIC, и любые другие устройства, способные выполнять заданную, четко определенную последовательность операций (действий, инструкций).

[0019] Под устройством обработки команд подразумевается электронный блок, вычислительное устройство, либо интегральная схема (микропроцессор), исполняющая машинные инструкции (программы).

[0020] Устройство обработки команд считывает и выполняет машинные инструкции (программы) с одного или более устройств хранения данных. В роли устройства хранения данных могут выступать, но не ограничиваясь, жесткие диски (HDD), флеш-память, ПЗУ (постоянное запоминающее устройство), твердотельные накопители (SSD), оптические приводы.

[0021] Программа - последовательность инструкций, предназначенных для исполнения устройством управления вычислительной машины или устройством обработки команд.

[0022] База данных (БД) - совокупность данных, организованных в соответствии с концептуальной структурой, описывающей характеристики этих данных и взаимоотношения между ними, причем такое собрание данных, которое поддерживает одну или более областей применения (ISO/IEC 2382:2015, 2121423 «database»).

[0023] Сигнал - материальное воплощение сообщения для использования при передаче, переработке и хранении информации.

[0024] Логический элемент - элемент, осуществляющий определенные логические зависимости между входными и выходными сигналами. Логические элементы обычно используются для построения логических схем вычислительных машин, дискретных схем автоматического контроля и управления. Для всех видов логических элементов, независимо от их физической природы, характерны дискретные значения входных и выходных сигналов.

[0025] Автоматизированная система (АС) - организационно-техническая система, обеспечивающая выработку решений на основе автоматизации информационных процессов.

[0026] В соответствии со схемой, приведенной на фиг. 1, система 100 распределения вычислительных ресурсов для обработки запросов пользователей содержит: устройства 10, 11 пользователя, сервер 20 авторизации, устройство 30 управления вычислительными задачами, исполнительное устройство 40. Для соединения упомянутых устройств могут быть использованы широко известные беспроводные и/или проводные каналы передачи данных.

[0027] Устройство (10, 11) пользователя может представлять собой портативный или стационарный компьютер, компьютерный терминал, автоматическое терминальное устройство, программный модуль другой информационной системы или устройства, телефон, смартфон, планшет или прочее вычислительное устройство, оснащенное проводными и/или беспроводными средствами связи.

[0028] Сервер 20 авторизации - это программно-аппаратный комплекс, который выполняет функцию автоматической идентификации пользователей и проверки наличия доступа к услугам, предоставляемым системой 100.

[0029] Устройство 30 управления вычислительными задачами может представлять собой по меньшей мере один сервер и оснащено планировщиком 31 задач, реализованным на базе сервера, оснащенного соответствующим программным обеспечением и выполняющего обработку очереди задач транспортировки. Планировщик 31 задач опрашивает устройства системы 100 о наличии подходящих событий, которые повлекут инициализацию искомых операций.

[0030] Исполнительное устройство 40 может быть реализовано на базе сервера и содержать модуль 41 управления процессом выделения ресурсов, реализованный на базе вычислительного устройства, хранилище 42 моделей, BP 43,44, 45, модуль 46 управления вычислительными задачами, модуль 47 управления последовательностями операций и модуль 49 управления очередью запросов. Для реализации упомянутых модулей могут использоваться широко известные логические элементы на транзисторах, АЦП, ЦАП, генераторы тактовых импульсов и пр.

[0031] В качестве BP могут быть использованы реальные или виртуальные CPU, GPU, FPGA и другие известные вычислительные блоки, оперативная память RAM, память дискового пространства, сетевые ресурсы и пр.

[0032] Пользователь посредством устройства 10 может направить запрос на выполнение задачи с использованием BP. Запрос на выполнение задачи может содержать:

- ID пользователя, например, имя пользователя;

- информацию для авторизации пользователя, например, логин, пароль, токен или пр.;

- ID задачи,

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

- код или имя вычислительного региона или кластера (при отсутствии этого параметра задача выполняется в вычислительном регионе, назначенном по умолчанию);

- запрашиваемые вычислительные ресурсы (при отсутствии этих параметров предоставляется набор вычислительных ресурсов по умолчанию)

- режим работы - синхронный или асинхронный

- параметры, содержащие правила предоставления и отключения вычислительных ресурсов

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

- параметры, описывающие приоритет выполнения конкретного запроса/задачи,

- параметры, описывающие путь получения результатов вычислений, включая передачу результата вычисления в адрес пользователя в виде ответа на запрос пользователя, либо сохранения данных на постоянных хранилищах данных (например, жесткие диски HDD или SSD), либо передачу в адрес внешних программных модулей и систем.

[0033] Направленный запрос на выполнение задачи поступает на сервер 20 авторизации. При поступлении запроса пользователя сервер 20 авторизации известными методами проводит проверку формата запроса, авторизацию пользователя на право запуска и выполнения задачи и вычисления предсказания модели, проверяет и подтверждает права пользователя на выделение и предоставление ресурсов системы и прав запуска задачи и контейнеров для выполнения задачи в соответствии с правами, предоставленными пользователю в системе, и право на получение результатов выполнения вычислений и предсказания модели. В случае подтверждения авторизации пользователя сервер нотификации информирует пользователя об успешной авторизации, либо об отказе в авторизации, либо о существовании ограничений, препятствующих выполнению запроса, либо об ошибке авторизации. Информирование может включать предоставление пользователю кода сообщения, тестового сообщения с описанием результата либо кода сообщения с описанием результата. При необходимости данные пользователя могут быть сохранены в базе данных пользователей, интегрированной с серверами 20 авторизации.

[0034] В случае если авторизация источника запроса не подтверждена, сервер авторизации может в зависимости от параметров настройки информационной безопасности и количества повторных запросов, не прошедших авторизацию:

- отказать от авторизации и направить в адрес источника запроса уведомление об отказе в авторизации без указания причин;

- отказать от авторизации и направить в адрес источника запроса уведомление об отказе в авторизации с указанием причины и/или выдачи кода ошибки;

- отказать от авторизации без направления в адрес источника запроса уведомление об отказе в авторизации;

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

- заблокировать дальнейшее получение запросов от источника запросов;

- заблокировать дальнейшее выполнение запросов от источника запросов.

[0035] Другим способом получения запроса на развертывание вычислительной среды и выполнение вычислительной задачи и вычисление предсказания модели является получение API-вызова, поступающего на шлюз API, сформированного приложением пользователя, внешней автоматической системой либо программным модулем, либо сформированным и переданным пользователем с помощью инструментов для работы в режиме программной строки CLI (утилиты CurI, приложение Postman и другие инструменты). API-вызов должен содержать тот же набор параметров, что и запрос пользователя.

[0036] Соответственно, если авторизация устройства 10 прошла успешно, то запрос на выполнение задачи направляется в устройство 30 управления вычислительными задачами, который далее обрабатывается в зависимости от загрузки системы 100 и очереди задач, предназначенных для выполнения.

[0037] В первом варианте работы системы, при отсутствии очереди задач, устройство 30 извлекает из запроса на выполнение задачи ID и параметры задачи и на основе параметров задачи (например, «наименование выполняемой задачи», «наименование контейнера с выполняемой задачей и моделью», «ID модели», «код вычислительного региона», «запрашиваемые вычислительные ресурсы») определяет количество BP, требуемое для выполнения задачи. Например, для определения упомянутого количества BP устройство 30 может быть оснащено памятью, в которой сохранен список задач, список их параметров, список ПО (например, моделей машинного обучения), которое будет использовано для выполнения задачи в соответствии с параметрами и список BP, которые следует задействовать для запуска каждой модели машинного обучения.

[0038] Например, запрос на выполнение задачи может содержать ID и параметры задачи, в соответствии с которыми необходимо осуществить генерацию текстовых данных на основе указанных ключевых слов (первая задача) или генерацию изображения на основе указанных ключевых слов (вторая задача). Например, запрос на выполнение задачи может содержать ID и параметры задачи, в соответствии с которыми необходимо осуществить генерацию текстовых данных на основе указанных ключевых слов (первый тип задачи) или генерацию изображения на основе указанных ключевых слов (второй тип задача). Параметры задачи первого типа задачи «запрашиваемые вычислительные ресурсы» могут указывать на необходимость задействовать 4 CPU и 32 Гб памяти для запуска модели для генерации текста, а параметры задачи второго типа задачи «запрашиваемые вычислительные ресурсы» могут указывать на необходимость задействовать 16 CPU, 4 GPU и 320 Гб памяти для запуска модели для генерации картинки. Модели машинного обучения могут быть реализованы широко известными методами, например, на базе нейронных сетей глубокого обучения.

[0039] После того, как количество BP, требуемое для выполнения задачи, определено, устройство 30 обращается планировщику 31 BP посредством направления соответствующего запроса для определения наличия выделенных BP или контейнеров с запущенным ПО для выполнения задачи пользователя, в частности выделенных BP с запущенной моделью для генерации текста или моделью для генерации изображения. Если в ответ на запрос от планировщика 31 поступила информация о наличии упомянутых выделенных BP, например, BP 43, то устройство 30 формирует запрос в исполнительное устройство 40 для обработки запроса пользователя на выполнения задачи с помощью выделенных BP 43, после чего результаты выполненной задачи, например, сгенерированный текст или изображение направляется в устройство 10 пользователя, либо перенаправляется в другое целевое место хранения (в виде сохранения на жесткие диски и формирование API-вызова к внешним системам). В альтернативном варианте реализации подставленного решения вместо упомянутого контейнера может использоваться экземпляр вириальной машины с запущенным в нем ПО для выполнения задачи пользователя.

[0040] Во втором варианте работы системы, при отсутствии очереди задач, планировщиком 31 может быть определено, что в памяти отсутствует информация о наличии упомянутых выделенных BP или контейнеров с запущенным ПО для выполнения задачи пользователя, после чего планировщик 31 направляет запрос в исполнительное устройство 40 для определения количества свободных BP, информацию о которых исполнительное устройство 40 направляет в ответ на запрос. Планировщик 31 сравнивает информацию о количестве BP, требуемых для выполнения задачи, с информацией о количестве свободных BP, и если свободных BP достаточно для выполнения задачи или сумма задействованных BP и требуемых BP не превышают установленное пороговое значение, то планировщик 31 направляет в устройство 30 информацию о наличии свободных BP для выполнения задачи, после чего запрос на выполнение задачи направляется устройством 30 в исполнительное устройство 40.

[0041] Соответственно, упомянутый запрос поступает в модуль 46 управления вычислительными задачами, который на основании информации запроса выделяет BP (43, 44 или 45) и известными методами разворачивает контейнер для запуска в нем ПО с помощью выделенных BP, в частности с моделью машинного обучения для выполнения задачи в соответствии с ID задачи.

[0042] После того, как упомянутые BP были выделены, модуль 46 информирует о выделенных BP модуль 47 управления последовательностями операций и модуль 41 управления процессом выделения ресурсов и о готовности к их работе. Также модуль 46 информирует планировщик 31 о выделенных BP с запущенным ПО для сохранения данной информации в памяти и для корректировки информации о свободных BP. Далее модуль 46 направляет команду к выделенным BP для выполнения задачи пользователя посредством ПО, запущенного в контейнере. Таким образом, обеспечивается повышение скорость выполнения задач пользователя и пропускной способности вычислительных ресурсов.

[0043] Результаты выполненной задачи, например, сгенерированный текст или изображение, выделенные BP передают через модуль 46 в устройство 40 для их передачи в устройство 10 пользователя, либо в другое целевое место хранения (в виде сохранения на жесткие диски и формирование API-вызова к внешним системам).

[0044] После того, как задача пользователя выполнена, т.е. модуль 46 получил от выделенных BP результаты выполненной задачи, модуль 46 фиксирует время выполненной задачи и запускает счетчик, которым модуль 46 может быть оснащен, для отслеживания времени нахождения выделенных BP в режиме ожидания. Если по истечению заданного разработчиком интервала времени в модуль 46 не поступила дополнительная задача пользователя для упомянутых BP, то модуль 46 направляет на выделенные BP команду для выключения контейнера с запущенным ПО, после чего BP освобождаются. Информация об освобожденных ресурсах направляется модулем 46 в планировщик 31 для корректировки информации о свободных BP.

[0045] В третьем варианте работы системы, при наличии очереди задач, исполнительное устройство 40 может быть оснащено модулем 49 управления очередью запросов. Соответственно, после определения наличия выделенных BP с запущенным ПО в данном варианте реализации представленного решения устройство 30 формирует запрос в исполнительное устройство 40 для выполнения задачи пользователя с помощью выделенных BP, содержащий ID BP или контейнера с запущенным ПО, который поступает через модуль 46 в модуль 49.

[0046] Далее модуль 49 обращается к списку задач в очереди к контейнеру, предназначенному для выполнения задачи, запущенном при помощи BP, и определяет наличие по меньшей мере одной задачи пользователя в списке задач в очереди, после чего модуль 49 вносит в список информацию о новой задаче в соответствии с полученным от устройства 30 запросом. Дополнительно при постановке в очередь могут учитываться параметры, описывающие приоритет выполнения задачи.

[0047] Соответственно, после того, как задача пользователя из списка выполнена при помощи выделенных BP, информация о выполненной задаче от BP поступает в модуль 49, который исключает информацию о выполненной задаче из списка задач на исполнение, после чего модуль 49 направляет информацию о следующей задаче из упомянутого списка к BP для выполнения задачи с использованием ПО, запущенном в контейнере.

[0048] Дополнительно модуль 49 может быть выполнен с возможностью, после определения наличия по меньшей мере одной или более задач пользователя в списке задач в очереди, направить запрос в планировщик 31 для проверки наличия свободных BP для запуска копии ПО для выполнения задачи пользователя. В альтернативном варианте модуль 49 после определения наличия по меньшей мере одной задачи пользователя в списке задач в очереди может направить запрос в планировщик 31 для определения времени выполнения задачи пользователя. Время выполнения задачи пользователя может быть определено планировщиком 31 широко известным методом, например, посредством анализа ранее выделенных BP при выполнении ими ранее аналогичных задач пользователя.

[0049] На основе полученного от планировщика 31 времени выполнения задачи и времени начала выполнения задачи из очереди, которое также может быть зафиксировано известными методами после начала выполнения упомянутой задачи посредством BP, модуль 49 определяет прогнозируемое время выполнения задачи из очереди, после чего на основе прогнозируемого выполнения задачи из очереди и времени выполнения задачи пользователя, полученного о планировщика 31, модуль 49 определяет прогнозируемое время выполнения задачи пользователя, полученной от исполнительного устройства 40, т.е. текущей задачи. Прогнозируемое время выполнения текущей задачи сравнивается модулем 49 с допустимым временем выполнения текущей задачи, информация о которой может содержаться в полученном ранее запросе на выполнение задачи в соответствии с вводом пользователя.

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

[0051] Если прогнозируемое время выполнения текущей задачи выходит за границы значений допустимого времени выполнения текущей задачи, то модуль 49 направляет запрос в планировщик 31 для проверки наличия свободных BP для запуска копии ПО для выполнения задачи пользователя. Если свободных BP достаточно для запуска копии ПО для выполнения задачи пользователя, то модуль 49 направляет соответствующее уведомление в модуль 46 управления вычислительными задачами, который на основании информации запроса выделяет BP (43, 44 или 45) и известными методами разворачивает контейнер для запуска в нем копии ПО с помощью выделенных BP.

[0052] Далее модуль 49 направляет команду к выделенным BP для выполнения задачи пользователя посредством копии ПО, запущенного в контейнере, а результаты выполненной задачи, выделенные BP передают через модуль 46 в устройство 40 для их передачи в устройство 10 пользователя, либо в другое целевое место хранения (в виде сохранения на жесткие диски и формирование API-вызова к внешним системам). Таким образом, дополнительно повышается скорость выполнения задач пользователя и пропускная способность вычислительных ресурсов.

[0053] После того, как задача пользователя выполнена, т.е. модуль 46 получил от выделенных BP результаты выполненной задачи, модуль 46 фиксирует время выполненной задачи и запускает счетчик, которым модуль 46 может быть оснащен, для отслеживания времени нахождения выделенных BP с запущенной копией ПО в режиме ожидания. Если по истечению заданного разработчиком интервала времени в модуль 46 не поступила дополнительная задача пользователя для упомянутых BP, то модуль 46 направляет на выделенные BP команду для выключения контейнера с запущенной копией ПО, после чего BP освобождаются. Информация об освобожденных ресурсах направляется модулем 46 в планировщик 31 для корректировки информации о свободных BP.

[0054] А альтернативном варианте реализации модуль 49 может быть выполнен с возможностью определения прогнозированного времени выполнения текущей задачи с использованием копии ПО, предназначенной для выполнения упомянутой задачи. Для этого модуль 49 запрашивает у планировщика 31 информацию о времени, которое требуется для развертывания контейнера с приложением с использованием BP. Упомянутое время развертывания контейнера может быть определено планировщиком 31 широко известным методом, например, посредством опроса выделенных BP при развертывании ими контейнера.

[0055] На основе времени развертывания контейнера и времени выполнения задачи модуль 49 определяет прогнозируемое время выполнения текущей задачи с использованием копии ПО. Далее устройство сравнивает упомянутое прогнозируемое время выполнения текущей задачи с полученным ранее прогнозируемым временем выполнения задачи пользователя, определенное с учетом прогнозируемого выполнения задачи из очереди.

[0056] Если прогнозируемое время выполнения задачи пользователя, определенное с учетом времени прогнозируемого выполнения задачи из очереди, меньше, чем прогнозируемое время выполнения текущей задачи с использованием копии ПО, то модуль 49 осуществляет постановку текущей задачи в очередь задач согласно значению приоритета. Если прогнозируемое время выполнения задачи пользователя, определенное с учетом прогнозируемого времени выполнения задачи из очереди, больше, чем прогнозируемое время выполнения текущей задачи с использованием копии ПО, то модуль 49 инициирует развертывание контейнера для запуска в нем копии ПО с помощью выделенных BP и обработки задачи описанным ранее способом.

[0057] Также модулем 49 может быть определено, что прогнозируемое время выполнения текущей задачи, в частности текущей первой задачи, выходит за границы значений допустимого времени выполнения текущей задачи, при этом свободных BP недостаточно для запуска копии ПО для выполнения задачи пользователя. Далее модуль 49 может проанализировать списки очередей к контейнерам с запущенными копиями ПО для выполнения второй задачи для поиска контейнера без очереди или с минимальным количеством задач в очереди, после чего модуль 49 может направить команду на упомянутый контейнер без очереди или с минимальным количеством задач в очереди для остановки его работы и высвобождения BP, которые были выделены для запуска ПО с использованием данного контейнера с целью запуска текущей задачи или другой задачи с использованием этих BP (более приоритетной или выполняемой с большим временем ожидания).

[0058] Дополнительно при постановке задачи в очередь модуль 49 может учитывать значения допустимого времени выполнения задач для того, чтобы все задачи в очереди были выполнены согласно значениям допустимого времени их выполнения.

[0059] В альтернативном варианте реализации модуль 49 может отслеживать количество задач, в частности первых задач, в списке задач в очереди к каждому контейнеру, и если количество задач в списке превысит заданное пороговое значение, то модуль 49 может описанным ранее способом проанализировать списки очередей к контейнерам с запущенными копиями ПО для выполнения второй задачи для поиска контейнера без очереди или с минимальным количеством задач в очереди, после чего модуль 49 может направить команду на упомянутый контейнер без очереди или с минимальным количеством задач в очереди для остановки его работы и высвобождения BP, которые были выделены для запуска ПО с использованием данного контейнера с целью запуска текущей задачи или другой задачи на этих BP (более приоритетной или выполняемой с большим временем ожидания)..

[0060] Соответственно, как только BP освобождаются, модуль 49 инициирует развертывание контейнера для запуска в нем копии ПО с помощью выделенных BP для выполнения текущей задачи описанным ранее способом. Задачи в списке очереди к контейнеру, работа которого была остановлена, могут быть распределены модулем 49 среди других контейнеров. Таким образом, дополнительно повышается скорость выполнения задач пользователя и пропускная способность вычислительных ресурсов.

[0061] В общем виде (см. Фиг. 2) вычислительное устройство (200) содержит объединенные общей шиной информационного обмена один или несколько процессоров (201), включая вычислительные для ускорения вычислений - модули GPU (Графический процессор, Англ. graphics processing unit), TPU (Тензорный процессор, англ. Tensor Processing Unit), IPU (Интегрированное процессорное устройство, англ. Integrated Processing Unit), а также модулей на основе микропроцессоров FPGA и ASIC, средства памяти, такие как ОЗУ (202) и ПЗУ (203), интерфейсы ввода/вывода (204), устройства (средства) ввода/вывода (205), и устройство (средство) для сетевого взаимодействия (206).

[0062] Процессор (201) (или несколько процессоров, многоядерный процессор и т.п.) может быть реализован на базе архитектуры CISC, RISC, ARM и др., и выбираться из ассортимента устройств, широко применяемых в настоящее время, например, таких производителей, как: Intel™, AMD™, Apple™, Samsung Exynos™, MediaTEK™, Qualcomm Snapdragon™, Huawei Kunpeng™ и Nvidia™, IBM™, Байкал™, IVA™ и т.п. Под процессором или одним из используемых процессоров в устройстве (200) также необходимо учитывать ускоритель вычислений, реализованный, например, в виде графического процессора, например, GPU NVIDIA с программной моделью, совместимой с CUDA, Graphcore, TPU (Тензорный процессор, англ. Tensor Processing Unit), IPU (Интегрированное процессорное устройство, англ. Integrated Processing Unit), а также модулей на основе микропроцессоров FPGA и ASIC, тип которых также является пригодным для полного или частичного выполнения способа, а также может применяться для обучения и применения моделей машинного обучения в различных информационных системах.

[0063] ОЗУ (202) представляет собой оперативную память и предназначено для хранения исполняемых процессором (201) машиночитаемых инструкций для выполнения необходимых операций по логической обработке данных. ОЗУ (202), как правило, содержит исполняемые инструкции операционной системы и соответствующих программных компонент (приложения, программные модули и т.п.). При этом, в качестве ОЗУ (202) может выступать доступный объем памяти графической карты, графического процессора или других ускорителей вычислений. [0064] ПЗУ (203) представляет собой одно или более устройств постоянного хранения данных, например, жесткий диск (HDD), твердотельный накопитель данных (SSD), флэш-память (EEPROM, NAND и т.п.), оптические носители информации (CD-R/RW, DVD-R/RW, BlueRay Disc, MD) и др.

[0065] Для организации работы компонентов устройства (200) и организации работы внешних подключаемых устройств применяются различные виды интерфейсов В/В (204). Выбор соответствующих интерфейсов зависит от конкретного исполнения вычислительного устройства, которые могут представлять собой, не ограничиваясь: PCI, AGP, PS/2, IrDa, FireWire, COM, SATA, IDE, USB (2.0, 3.0, 3.1, micro, mini, type C), HDMI, DVI, VGA, RJ45, Ethernet RJ45, одномодовые и многомодовые оптические интерфейсы SC и ST, WiFi, NVLink, InfiniBand, STM, ATM и т.п.

[0066] Для обеспечения взаимодействия пользователя с вычислительным устройством (200) применяются различные средства (205) В/В информации, например, клавиатура, дисплей (монитор), сенсорный дисплей, тач-пад, джойстик, манипулятор мышь, световое перо, стилус, сенсорная панель, трекбол, динамики, микрофон, средства дополненной реальности, оптические сенсоры, планшет, световые индикаторы, проектор, камера, средства биометрической идентификации (сканер сетчатки глаза, сканер отпечатков пальцев, модуль распознавания голоса) и т.п.

[0067] Средство сетевого взаимодействия (206) обеспечивает передачу данных посредством внутренней или внешней вычислительной сети, например, Интранет, Интернет, ЛВС и т.п. В качестве одного или более средств (206) может использоваться, но не ограничиваться: Ethernet карта, одномодовые и многомодовые оптические интерфейсные модули, NVLink, InfiniBand, STM, ATM и др.

[0068] Дополнительно могут применяться также средства спутниковой навигации в составе устройства (200), например, GPS, ГЛОНАСС, BeiDou, Galileo. Также сигналы точного времени, полученные от упомянутых средств спутниковой навигации, могут использоваться для синхронизации работы географически разнесенных устройств.

[0069] Конкретный выбор элементов устройства (200) для реализации различных программно-аппаратных архитектурных решений может варьироваться с сохранением обеспечиваемого требуемого функционала.

[0070] Модификации и улучшения вышеописанных вариантов осуществления настоящего технического решения будут ясны специалистам в данной области техники. Предшествующее описание представлено только в качестве примера и не несет никаких ограничений. Таким образом, объем настоящего технического решения ограничен только объемом прилагаемой формулы изобретения.

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

название год авторы номер документа
СПОСОБ И СИСТЕМА ПЕРЕМЕЩЕНИЯ ДАННЫХ В ОБЛАЧНОЙ СРЕДЕ 2023
  • Борисов Роман Игоревич
  • Третьяков Евгений Сергеевич
  • Жихарев Евгений Александрович
  • Левшинский Владислав Викторович
  • Бузин Павел Владимирович
  • Ларионова Юлия Александровна
  • Винокуров Савелий Алексеевич
RU2822554C1
СИСТЕМА УПРАВЛЕНИЯ И ДИСПЕТЧЕРИЗАЦИИ КОНТЕЙНЕРОВ 2019
  • Синх, Дипак
  • Суарес, Энтони Джозеф
  • Серстон, Уильям Эндрю
  • Айтал, Анирудх Балачандра
  • Гердесмайер, Дэниэл Роберт
  • Кемп, Эуан Скайлер
  • Медури, Киран Кумар
  • Азад, Мухаммад Умер
RU2751576C2
СПОСОБ И СИСТЕМА ЗАПУСКА ПРИЛОЖЕНИЙ В СИМУЛИРУЕМОЙ СРЕДЕ 2023
  • Андреев Руслан Сергеевич
  • Вишняков Артемий Юрьевич
  • Белоусов Александр Юрьевич
RU2818034C1
СИСТЕМА УПРАВЛЕНИЯ И ДИСПЕТЧЕРИЗАЦИИ КОНТЕЙНЕРОВ 2015
  • Синх Дипак
  • Суарес Энтони Джозеф
  • Серстон Уильям Эндрю
  • Айтал Анирудх Балачандра
  • Гердесмайер Дэниэл Роберт
  • Кемп Эуан Скайлер
  • Медури Киран Кумар
  • Азад Мухаммад Умер
RU2704734C2
СПОСОБ И СИСТЕМА УПРАВЛЕНИЯ ОБЪЕКТАМИ И ПРОЦЕССАМИ В ВЫЧИСЛИТЕЛЬНОЙ СРЕДЕ 2023
  • Петров Андрей Алексеевич
  • Новоженов Владимир Алексеевич
  • Журавлев Александр Максимович
  • Барышников Николай Романович
RU2820753C1
СИСТЕМА УПРАВЛЕНИЯ И ДИСПЕТЧЕРИЗАЦИИ КОНТЕЙНЕРОВ 2015
  • Синх Дипак
  • Суарес Энтони Джозеф
  • Серстон Уильям Эндрю
  • Айтал Анирудх Балачандра
  • Гердесмайер Дэниэл Роберт
  • Кемп Эуан Скайлер
  • Медури Киран Кумар
  • Азад Мухаммад Умер
RU2666475C1
АППАРАТНО-ВЫЧИСЛИТЕЛЬНЫЙ КОМПЛЕКС С ПОВЫШЕННЫМИ НАДЕЖНОСТЬЮ И БЕЗОПАСНОСТЬЮ В СРЕДЕ ОБЛАЧНЫХ ВЫЧИСЛЕНИЙ 2013
  • Гаврилов Дмитрий Александрович
  • Щелкунов Николай Николаевич
RU2557476C2
СПОСОБ ФУНКЦИОНИРОВАНИЯ ОПЕРАЦИОННОЙ СИСТЕМЫ ВЫЧИСЛИТЕЛЬНОГО УСТРОЙСТВА ПРОГРАММНО-АППАРАТНОГО КОМПЛЕКСА 2016
  • Моляков Андрей Сергеевич
RU2626350C1
СПОСОБ И УСТРОЙСТВО ДЛЯ ГЕНЕРАЦИИ УДАЛЕННЫХ ВЫЗОВОВ 2023
  • Селютин Дмитрий Сергеевич
  • Ларионов Александр Витальевич
  • Белоусов Александр Юрьевич
RU2814437C1
АППАРАТНО-ВЫЧИЛИСТЕЛЬНЫЙ КОМПЛЕКС ВИРТУАЛИЗАЦИИ И УПРАВЛЕНИЯ РЕСУРСАМИ В СРЕДЕ ОБЛАЧНЫХ ВЫЧИСЛЕНИЙ 2013
  • Гаврилов Дмитрий Александрович
  • Щелкунов Николай Николаевич
RU2543962C2

Иллюстрации к изобретению RU 2 818 490 C1

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

Изобретение относится к области вычислительной техники. Технический результат заключается в повышении скорости выполнения задач пользователя и пропускной способности вычислительных ресурсов. Технический результат достигается за счет этапов, на которых: получают от устройства пользователя запрос на выполнение текущей задачи; извлекают из запроса параметры задачи и на их основе определяют количество вычислительных ресурсов (BP), требуемое для выполнения текущей задачи; определяют наличие BP, выделенных для выполнения задач данного типа; определяют наличие задачи пользователя в списке задач в очереди к упомянутым выделенным BP; определяют прогнозируемое время выполнения текущей задачи с учетом прогнозируемого времени выполнения задачи из очереди; сравнивают прогнозируемое время выполнения текущей задачи с допустимыми значениями времени выполнения текущей задачи, причем если прогнозируемое время выполнения текущей задачи не выходит за границы значений допустимого времени выполнения текущей задачи, то осуществляют постановку текущей задачи в список задач в очереди; если прогнозируемое время выполнения текущей задачи выходит за границы значений допустимого времени выполнения текущей задачи, то выделяют BP для запуска копии ПО для выполнения текущей задачи и направляют команду к упомянутым выделенным BP для выполнения текущей задачи посредством копии ПО. 2 н. и 7 з.п. ф-лы, 2 ил.

Формула изобретения RU 2 818 490 C1

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

- получают от устройства пользователя запрос на выполнение задачи (текущей задачи), содержащий параметры задачи;

- извлекают из запроса параметры задачи и на их основе определяют количество вычислительных ресурсов (BP), требуемое для выполнения текущей задачи;

- определяют наличие BP, выделенных для выполнения задач данного типа;

- определяют наличие по меньшей мере одной задачи пользователя в списке задач в очереди к упомянутым выделенным BP;

- определяют прогнозируемое время выполнения текущей задачи с учетом прогнозируемого времени выполнения задачи из очереди;

- сравнивают прогнозируемое время выполнения текущей задачи с допустимыми значениями времени выполнения текущей задачи,

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

если прогнозируемое время выполнения текущей задачи выходит за границы значений допустимого времени выполнения текущей задачи, то выделяют BP для запуска копии ПО для выполнения текущей задачи и направляют команду к упомянутым выделенным BP для выполнения текущей задачи посредством копии ПО.

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

3. Способ по п. 1, характеризующийся тем, что этап выделения BP для запуска в нем копии ПО для выполнения текущей задачи содержит этап, на котором определяют наличие свободных BP для запуска копии ПО для выполнения текущей задачи.

4. Способ по п. 1, характеризующийся тем, что этап выделения BP для запуска в нем копии ПО для выполнения текущей задачи содержит этапы, на которых:

- определяют отсутствие свободных BP для запуска копии ПО для выполнения текущей задачи;

- осуществляют поиска контейнера или виртуальной машины без очереди или с минимальным количеством задач в очереди;

- направляют команду на упомянутый контейнер или виртуальную машину без очереди или с минимальным количеством задач в очереди для остановки его работы и высвобождения BP.

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

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

- направляют команду на упомянутый контейнер или виртуальную машину без очереди или с минимальным количеством задач в очереди для остановки его/ее работы и высвобождения BP, которые были выделены для запуска ПО с использованием данного контейнера или виртуальной машины, с целью запуска задачи первого типа на освободившихся BP.

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

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

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

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

- сравнивают прогнозируемое время выполнения текущей задачи с учетом времени прогнозируемого выполнения задачи из очереди с прогнозированным временем выполнения текущей задачи с использованием копии ПО;

причем постановку текущей задачи в список задач в очереди осуществляют после определения того, что прогнозируемое время выполнения текущей задачи с учетом времени прогнозируемого выполнения задачи из очереди меньше, чем прогнозированное времени выполнения текущей задачи с использованием копии ПО.

8. Способ по п. 1, характеризующийся тем, что ПО, посредством которого выполняется задача пользователя, запускается посредством контейнера или экземпляра виртуальной машины с запущенным в нем ПО.

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

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

Устройство для закрепления лыж на раме мотоциклов и велосипедов взамен переднего колеса 1924
  • Шапошников Н.П.
SU2015A1
Способ регенерирования сульфо-кислот, употребленных при гидролизе жиров 1924
  • Петров Г.С.
SU2021A1
Станок для придания концам круглых радиаторных трубок шестигранного сечения 1924
  • Гаркин В.А.
SU2019A1
Способ регенерирования сульфо-кислот, употребленных при гидролизе жиров 1924
  • Петров Г.С.
SU2021A1
Система и способ балансировки подключений между клиентами и серверами 2021
  • Влазнев Денис Олегович
  • Буштырев Евгений Владимирович
RU2771444C1
СПОСОБ РАСПРЕДЕЛЕНИЯ НАГРУЗКИ В МНОГОЯДЕРНОЙ СИСТЕМЕ 2017
  • Бриткин Александр Ильич
  • Морозов Вячеслав Викторович
  • Павлов Игорь Владимирович
RU2703188C1

RU 2 818 490 C1

Авторы

Петров Андрей Алексеевич

Барышников Николай Романович

Даты

2024-05-02Публикация

2023-12-28Подача