RU2818490C1 - Method and system for distributing system resources for processing user requests - Google Patents

Method and system for distributing system resources for processing user requests Download PDF

Info

Publication number
RU2818490C1
RU2818490C1 RU2023135800A RU2023135800A RU2818490C1 RU 2818490 C1 RU2818490 C1 RU 2818490C1 RU 2023135800 A RU2023135800 A RU 2023135800A RU 2023135800 A RU2023135800 A RU 2023135800A RU 2818490 C1 RU2818490 C1 RU 2818490C1
Authority
RU
Russia
Prior art keywords
task
current task
queue
execution time
software
Prior art date
Application number
RU2023135800A
Other languages
Russian (ru)
Inventor
Андрей Алексеевич Петров
Николай Романович Барышников
Original Assignee
Общество с ограниченной ответственностью "Облачные технологии" (ООО "Облачные технологии")
Filing date
Publication date
Application filed by Общество с ограниченной ответственностью "Облачные технологии" (ООО "Облачные технологии") filed Critical Общество с ограниченной ответственностью "Облачные технологии" (ООО "Облачные технологии")
Application granted granted Critical
Publication of RU2818490C1 publication Critical patent/RU2818490C1/en

Links

Images

Abstract

FIELD: computer engineering.
SUBSTANCE: invention relates to computer engineering. Result is achieved by steps of: receiving a request from a user device to perform a current task; extracting task parameters from the request and determining the amount of system resources (SR) required to perform the current task; determining availability of SRs allocated to perform tasks of this type; determining the presence of a user task in the list of tasks in the queue to said dedicated SRs; determining the predicted execution time of the current task based on the predicted execution time of the task from the queue; comparing the predicted execution time of the current task with the allowable values of the execution time of the current task, wherein if the predicted execution time of the current task does not go beyond the values of the allowable execution time of the current task, then the current task is put into the list of tasks in the queue; if the predicted execution time of the current task exceeds the limits of the allowable time for executing the current task, then an SR is selected to launch a copy of the software for executing the current task and a command is sent to said dedicated SRs for executing the current task through the copy of the software.
EFFECT: high speed of executing user tasks and bandwidth of system resources.
9 cl, 2 dwg

Description

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

[0001] Изобретение относится, в общем, к вычислительной технике, а в частности к способу и системе распределения вычислительных ресурсов для обработки запросов пользователей, в том числе в облачной среде.[0001] The invention relates, in general, to computer technology, and in particular to a method and system for distributing computing resources for processing user requests, including in a cloud environment.

УРОВЕНЬ ТЕХНИКИBACKGROUND OF THE ART

[0002] Из уровня техники известны различные решения, направленные на распределение вычислительных ресурсов для предоставления услуг.[0002] Various solutions are known in the prior art aimed at allocating computing resources to provide services.

[0003] Например, известны способы и системы для предоставления функции как услуги в предсказуемое время, например, в установленный срок или с определенной периодичностью, раскрытые в заявке US 20220357994 А1, опубл. 10.11.2022. В данном документе раскрывается система, содержащая по крайней мере один вычислительный узел, предоставляющий множеству пользователей платформу, включающую множество программно-функциональных сервисов, при этом по крайней мере один вычислительный узел сконфигурирован для: запуска настраиваемого процесса на уровне платформы, привязанной к функции сервиса; вызова функции сервиса для выполнения специализированной функции-исполнителя из настроенного процесса на уровне платформы; выполнения, по крайней мере, первого шага инициализации, включающего выделение вычислительных ресурсов для настраиваемого процесса на уровне платформы; и при срабатывании события, привязанного к функции сервиса: вызова хотя бы одной служебной функции, выполняемой специализированной функцией-исполнителем, для выполнения функции сервиса с использованием выделенных вычислительных ресурсов; получения специализированной функцией-исполнителем обобщенного возвращаемого значения хотя бы от одной служебной функции; и применения обобщенного возвращаемого значения в ответ на событие.[0003] For example, methods and systems for providing a function as a service at predictable times, for example, on a set date or at a certain frequency, are known in the application US 20220357994 A1, publ. 11/10/2022. Disclosed herein is a system comprising at least one computing node providing a platform including a plurality of software-functional services to a plurality of users, wherein the at least one computing node is configured to: run a custom platform-level process associated with a service function; calling a service function to execute a specialized executor function from a configured process at the platform level; performing at least a first initialization step including allocating computing resources to the custom process at the platform level; and when an event associated with a service function is triggered: calling at least one service function performed by a specialized executor function to perform the service function using allocated computing resources; receiving by a specialized executor function a generalized return value from at least one service function; and applying a generic return value in response to the event.

[0004] Недостатком известного решения является отсутствие инструментов, позволяющих сбалансировать нагрузку на вычислительные ресурсы, в частности управлять количеством копии контейнеров с выполняемыми приложениями.[0004] The disadvantage of the known solution is the lack of tools to balance the load on computing resources, in particular to control the number of copies of containers with running applications.

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

[0005] Технической проблемой или задачей, поставленной в данном техническом решении, является создание простого и надежного способа и системы распределения вычислительных ресурсов для обработки запросов пользователей.[0005] The technical problem or task posed in this technical solution is to create a simple and reliable method and system for allocating computing resources for processing user requests.

[0006] Техническим результатом является повышение скорости выполнения задач пользователя и пропускной способности вычислительных ресурсов.[0006] The technical result is to increase the speed of performing user tasks and the throughput of computing resources.

[0007] Указанный технический результат достигается благодаря осуществлению способа распределения вычислительных ресурсов для обработки запросов пользователей, выполняемого посредством вычислительного устройства, содержащего этапы, на которых:[0007] This technical result is achieved by implementing a method for allocating computing resources for processing user requests, performed by means of a computing device, containing the stages of:

- получают от устройства пользователя запрос на выполнение задачи (текущей задачи), содержащий параметры задачи;- receive a request from the user’s device to perform a task (current task), containing task parameters;

- извлекают из запроса параметры задачи и на их основе определяют количество вычислительных ресурсов (BP), требуемое для выполнения текущей задачи;- extract task parameters from the request and, based on them, determine the amount of computing resources (BP) required to complete the current task;

- определяют наличие BP, выделенных для выполнения задач данного типа;- determine the availability of BP allocated to perform tasks of this type;

- определяют наличие по меньшей мере одной задачи пользователя в списке задач в очереди к упомянутым выделенным BP;- determining the presence of at least one user task in the list of tasks in the queue to the mentioned allocated BPs;

- определяют прогнозируемое время выполнения текущей задачи с учетом прогнозируемого времени выполнения задачи из очереди;- determine the predicted execution time of the current task, taking into account the predicted execution time of the task from the queue;

- сравнивают прогнозируемое время выполнения текущей задачи с допустимыми значениями времени выполнения текущей задачи,- compare the predicted execution time of the current task with the acceptable values of the current task execution time,

причем если прогнозируемое время выполнения текущей задачи не выходит за границы значений допустимого времени выполнения текущей задачи, то осуществляют постановку текущей задачи в список задач в очереди; если прогнозируемое время выполнения текущей задачи выходит за границы значений допустимого времени выполнения текущей задачи, то выделяют BP для запуска копии ПО для выполнения текущей задачи и направляют команду к упомянутым выделенным BP для выполнения текущей задачи посредством копии ПО.moreover, if the predicted execution time of the current task does not go beyond the limits of the permissible execution time of the current task, then the current task is placed in the list of tasks in the queue; if the predicted execution time of the current task goes beyond the limits of the permissible execution time of the current task, then a BP is allocated to launch a copy of the software to perform the current task and a command is sent to said allocated BPs to perform the current task through the copy of the software.

[0008] В одном частном примере осуществления способа постановка текущей задачи пользователя в список задач в очереди осуществляется с учетом приоритета текущей задачи и/или с учетом значений допустимого времени выполнения текущей задачи и/или значений допустимого времени выполнения задачи в очереди.[0008] In one particular example of the implementation of the method, the placement of the user's current task in the list of tasks in the queue is carried out taking into account the priority of the current task and/or taking into account the values of the allowable execution time of the current task and/or the values of the allowable execution time of the task in the queue.

[0009] В другом частном примере осуществления способа этап выделения BP для запуска в нем копии ПО для выполнения текущей задачи содержит этап, на котором определяют наличие свободных BP для запуска копии ПО для выполнения текущей задачи.[0009] In another particular example of the implementation of the method, the stage of allocating a BP to run a copy of the software in it to perform the current task contains a stage at which it is determined whether there are free BPs to run a copy of the software to perform the current task.

[0010] В другом частном примере осуществления способа этап выделения BP для запуска в нем копии ПО для выполнения текущей задачи содержит этапы, на которых:[0010] In another particular example of the method, the stage of allocating a BP to run a copy of the software in it to perform the current task contains stages in which:

- определяют отсутствие свободных BP для запуска копии ПО для выполнения текущей задачи;- determine the lack of free BP to launch a copy of the software to perform the current task;

- осуществляют поиска контейнера или виртуальной машины без очереди или с минимальным количеством задач в очереди;- search for a container or virtual machine without a queue or with a minimum number of tasks in the queue;

- направляют команду на упомянутый контейнер или виртуальную машину без очереди или с минимальным количеством задач в очереди для остановки его работы и высвобождения BP.- send a command to the said container or virtual machine without a queue or with a minimum number of tasks in the queue to stop its operation and release BP.

[0011] В другом частном примере осуществления способа дополнительно выполняют этапы, на которых:[0011] In another particular example of the method, the steps are additionally performed in which:

- отслеживают количество задач первого типа в списке задач в очереди к каждому контейнеру или виртуальной машине, причем если количество задач первого типа в списке превышает заданное пороговое значение, то осуществляют поиск контейнера или виртуальной машины без очереди или с минимальным количеством задач второго типа в очереди;- they monitor the number of tasks of the first type in the list of tasks in the queue for each container or virtual machine, and if the number of tasks of the first type in the list exceeds a specified threshold value, then they search for a container or virtual machine without a queue or with a minimum number of tasks of the second type in the queue;

- направляют команду на упомянутый контейнер или виртуальную машину без очереди или с минимальным количеством задач в очереди для остановки его/ее работы и высвобождения BP, которые были выделены для запуска ПО с использованием данного контейнера или виртуальной машины, с целью запуска задачи первого типа на освободившихся BP.- send a command to the said container or virtual machine without a queue or with a minimum number of tasks in the queue to stop his/her work and release the BPs that were allocated to run software using this container or virtual machine, with the aim of running a task of the first type on the freed ones B.P.

[0012] В другом частном примере осуществления способа дополнительно выполняют этапы, на которых:[0012] In another particular example of the method, the steps are additionally performed in which:

- отслеживают время нахождения выделенных BP с запущенной копией ПО в режиме ожидания, причем если по истечению заданного разработчиком интервала времени не поступила дополнительная задача пользователя для упомянутых BP, то направляют на выделенные BP команду для выключения контейнера или виртуальной машины с запущенной копией ПО, после чего BP освобождаются.- monitor the time spent by dedicated BPs with a running copy of the software in standby mode, and if, after the time interval specified by the developer, no additional user task has been received for the mentioned BPs, then a command is sent to the dedicated BPs to shut down the container or virtual machine with the running copy of the software, after which BP are released.

[0013] В другом частном примере осуществления способа этап постановки текущей задачи в список задач в очереди дополнительно содержит этапы, на которых:[0013] In another particular example of the method, the stage of placing the current task in the list of tasks in the queue additionally contains stages in which:

- определяют прогнозированное времени выполнения текущей задачи с использованием копии ПО с учетом времени, которое требуется для развертывания контейнера или виртуальной машины с приложением с использованием BP;- determine the predicted execution time of the current task using a copy of the software, taking into account the time required to deploy a container or virtual machine with an application using BP;

- сравнивают прогнозируемое время выполнения текущей задачи с учетом времени прогнозируемого выполнения задачи из очереди с прогнозированным временем выполнения текущей задачи с использованием копии ПО;- compare the predicted execution time of the current task, taking into account the time of the predicted execution of the task from the queue, with the predicted execution time of the current task using a copy of the software;

причем постановку текущей задачи в список задач в очереди осуществляют после определения того, что прогнозируемое время выполнения текущей задачи с учетом времени прогнозируемого выполнения задачи из очереди меньше, чем прогнозированное времени выполнения текущей задачи с использованием копии ПО.wherein the placement of the current task into the list of tasks in the queue is carried out after determining that the predicted execution time of the current task, taking into account the time of the predicted execution of the task from the queue, is less than the predicted execution time of the current task using a copy of the software.

[0014] В другом частном примере осуществления способа ПО, посредством которого выполняется задача пользователя, запускается посредством контейнера или экземпляра виртуальной машины с запущенным в нем ПО.[0014] In another particular example of the implementation of the method, the software through which the user's task is performed is launched through a container or virtual machine instance with the software running in it.

[0015] В другом предпочтительном варианте осуществления заявленного решения представлена система распределения вычислительных ресурсов для обработки запросов пользователей, содержащая по меньшей мере одно вычислительное устройство и по меньшей мере одно устройство памяти, содержащее машиночитаемые инструкции, которые при их исполнении по меньшей мере одним вычислительным устройством выполняют вышеуказанный способ.[0015] In another preferred embodiment of the claimed solution, a system for distributing computing resources for processing user requests is provided, comprising at least one computing device and at least one memory device containing computer-readable instructions that, when executed by at least one computing device, perform the above method.

КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙBRIEF DESCRIPTION OF THE DRAWINGS

[0016] Признаки и преимущества настоящего технического решения станут очевидными из приводимого ниже подробного описания изобретения и прилагаемых чертежей, на которых:[0016] The features and advantages of the present technical solution will become apparent from the following detailed description of the invention and the accompanying drawings, in which:

- на Фиг. 1 представлена общая системы распределения вычислительных ресурсов;- in Fig. 1 shows the general system for distributing computing resources;

- на Фиг. 2 представлен пример общего вида вычислительного устройства.- in Fig. Figure 2 shows an example of a general view of a computing device.

ОСУЩЕСТВЛЕНИЕ ИЗОБРЕТЕНИЯIMPLEMENTATION OF THE INVENTION

[0017] Ниже будут описаны понятия и термины, необходимые для понимания данного технического решения.[0017] The concepts and terms necessary to understand this technical solution will be described below.

[0018] В данном техническом решении под системой подразумевается, в том числе компьютерная система (в частности, информационная система, вычислительные комплексы, вычислительные кластеры), ЭВМ (электронно-вычислительная машина), ЧПУ (числовое программное управление), ПЛК (программируемый логический контроллер), компьютеризированные системы управления, специализированные устройства, реализующие вычисления по технологиям FPGA и ASIC, и любые другие устройства, способные выполнять заданную, четко определенную последовательность операций (действий, инструкций).[0018] In this technical solution, a system means, including, a computer system (in particular, an information system, computing systems, computing clusters), a computer (electronic computer), CNC (computer numerical control), PLC (programmable logic controller ), computerized control systems, specialized devices that implement calculations using FPGA and ASIC technologies, and any other devices capable of performing a given, clearly defined sequence of operations (actions, instructions).

[0019] Под устройством обработки команд подразумевается электронный блок, вычислительное устройство, либо интегральная схема (микропроцессор), исполняющая машинные инструкции (программы).[0019] By command processing device is meant an electronic unit, a computing device, or an integrated circuit (microprocessor) that executes machine instructions (programs).

[0020] Устройство обработки команд считывает и выполняет машинные инструкции (программы) с одного или более устройств хранения данных. В роли устройства хранения данных могут выступать, но не ограничиваясь, жесткие диски (HDD), флеш-память, ПЗУ (постоянное запоминающее устройство), твердотельные накопители (SSD), оптические приводы.[0020] An instruction processing device reads and executes machine instructions (programs) from one or more storage devices. Storage devices can include, but are not limited to, hard drives (HDD), flash memory, ROM (read-only memory), solid-state drives (SSD), and optical drives.

[0021] Программа - последовательность инструкций, предназначенных для исполнения устройством управления вычислительной машины или устройством обработки команд.[0021] Program - a sequence of instructions intended for execution by a computer control device or command processing device.

[0022] База данных (БД) - совокупность данных, организованных в соответствии с концептуальной структурой, описывающей характеристики этих данных и взаимоотношения между ними, причем такое собрание данных, которое поддерживает одну или более областей применения (ISO/IEC 2382:2015, 2121423 «database»).[0022] Database (DB) - a collection of data organized in accordance with a conceptual structure that describes the characteristics of that data and the relationships between them, and such a collection of data that supports one or more areas of application (ISO/IEC 2382:2015, 2121423 " database").

[0023] Сигнал - материальное воплощение сообщения для использования при передаче, переработке и хранении информации.[0023] A signal is a material embodiment of a message for use in the transmission, processing and storage of information.

[0024] Логический элемент - элемент, осуществляющий определенные логические зависимости между входными и выходными сигналами. Логические элементы обычно используются для построения логических схем вычислительных машин, дискретных схем автоматического контроля и управления. Для всех видов логических элементов, независимо от их физической природы, характерны дискретные значения входных и выходных сигналов.[0024] Logical element - an element that implements certain logical dependencies between input and output signals. Logic elements are usually used to construct logical circuits of computers and discrete automatic monitoring and control circuits. All types of logical elements, regardless of their physical nature, are characterized by discrete values of input and output signals.

[0025] Автоматизированная система (АС) - организационно-техническая система, обеспечивающая выработку решений на основе автоматизации информационных процессов.[0025] Automated system (AS) is an organizational and technical system that ensures the development of solutions based on the automation of information processes.

[0026] В соответствии со схемой, приведенной на фиг. 1, система 100 распределения вычислительных ресурсов для обработки запросов пользователей содержит: устройства 10, 11 пользователя, сервер 20 авторизации, устройство 30 управления вычислительными задачами, исполнительное устройство 40. Для соединения упомянутых устройств могут быть использованы широко известные беспроводные и/или проводные каналы передачи данных.[0026] According to the diagram shown in FIG. 1, the system 100 for distributing computing resources for processing user requests contains: user devices 10, 11, authorization server 20, computing task management device 30, executive device 40. To connect the mentioned devices, well-known wireless and/or wired data transmission channels can be used .

[0027] Устройство (10, 11) пользователя может представлять собой портативный или стационарный компьютер, компьютерный терминал, автоматическое терминальное устройство, программный модуль другой информационной системы или устройства, телефон, смартфон, планшет или прочее вычислительное устройство, оснащенное проводными и/или беспроводными средствами связи.[0027] The user device (10, 11) may be a laptop or desktop computer, a computer terminal, an automatic terminal device, a software module of another information system or device, a telephone, a smartphone, a tablet, or other computing device equipped with wired and/or wireless means communications.

[0028] Сервер 20 авторизации - это программно-аппаратный комплекс, который выполняет функцию автоматической идентификации пользователей и проверки наличия доступа к услугам, предоставляемым системой 100.[0028] The authorization server 20 is a hardware and software complex that performs the function of automatically identifying users and checking for access to services provided by the system 100.

[0029] Устройство 30 управления вычислительными задачами может представлять собой по меньшей мере один сервер и оснащено планировщиком 31 задач, реализованным на базе сервера, оснащенного соответствующим программным обеспечением и выполняющего обработку очереди задач транспортировки. Планировщик 31 задач опрашивает устройства системы 100 о наличии подходящих событий, которые повлекут инициализацию искомых операций.[0029] The computing task management device 30 may be at least one server and is equipped with a task scheduler 31 implemented on a server equipped with appropriate software and processing a queue of transport tasks. The task scheduler 31 polls the devices of the system 100 for the presence of suitable events that will trigger the initialization of the desired operations.

[0030] Исполнительное устройство 40 может быть реализовано на базе сервера и содержать модуль 41 управления процессом выделения ресурсов, реализованный на базе вычислительного устройства, хранилище 42 моделей, BP 43,44, 45, модуль 46 управления вычислительными задачами, модуль 47 управления последовательностями операций и модуль 49 управления очередью запросов. Для реализации упомянутых модулей могут использоваться широко известные логические элементы на транзисторах, АЦП, ЦАП, генераторы тактовых импульсов и пр.[0030] The execution device 40 can be implemented on a server and contains a resource allocation process control module 41 implemented on the basis of a computing device, a model storage 42, BP 43,44, 45, a computing task control module 46, a sequence control module 47, and module 49 for managing the request queue. To implement the mentioned modules, well-known logic elements on transistors, ADCs, DACs, clock generators, etc. can be used.

[0031] В качестве BP могут быть использованы реальные или виртуальные CPU, GPU, FPGA и другие известные вычислительные блоки, оперативная память RAM, память дискового пространства, сетевые ресурсы и пр.[0031] Real or virtual CPUs, GPUs, FPGAs and other known computing units, RAM, disk space memory, network resources, etc. can be used as BP.

[0032] Пользователь посредством устройства 10 может направить запрос на выполнение задачи с использованием BP. Запрос на выполнение задачи может содержать:[0032] The user, through the device 10, can submit a request to perform a task using the BP. A task request may contain:

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

- информацию для авторизации пользователя, например, логин, пароль, токен или пр.;- information for user authorization, for example, login, password, token, etc.;

- ID задачи,- task ID,

- параметры задачи, которые могут включать: наименование выполняемой задачи, наименование контейнера с выполняемой задачей и моделью, ID модели, наименование виртуальной машины с исполняемым вычислительным программным кодом, адрес размещения образа в реестре контейнеров или виртуальных машин, и пр.;- task parameters, which may include: the name of the task being performed, the name of the container with the task being performed and the model, model ID, the name of the virtual machine with the executable computing program code, the address where the image is placed in the registry of containers or virtual machines, etc.;

- код или имя вычислительного региона или кластера (при отсутствии этого параметра задача выполняется в вычислительном регионе, назначенном по умолчанию);- code or name of the computing region or cluster (if this parameter is absent, the task is executed in the default computing region);

- запрашиваемые вычислительные ресурсы (при отсутствии этих параметров предоставляется набор вычислительных ресурсов по умолчанию)- requested computing resources (if these parameters are missing, a default set of computing resources is provided)

- режим работы - синхронный или асинхронный- operating mode - synchronous or asynchronous

- параметры, содержащие правила предоставления и отключения вычислительных ресурсов- parameters containing rules for provisioning and disabling computing resources

- набор параметров, инициализирующих вычислительную задачу (аргументы вычисляемой функции либо датасет с данными для выполнения вычислений, например, граничные условия при решении системы дифференциальных уравнений) и получение предсказания модели (датасет, prompt или seed запрос), также набор параметров может быть пустым,- a set of parameters that initialize a computational task (arguments of a calculated function or a dataset with data for performing calculations, for example, boundary conditions when solving a system of differential equations) and obtaining a model prediction (dataset, prompt or seed request), also the set of parameters can be empty,

- параметры, описывающие приоритет выполнения конкретного запроса/задачи,- parameters describing the priority of executing a specific request/task,

- параметры, описывающие путь получения результатов вычислений, включая передачу результата вычисления в адрес пользователя в виде ответа на запрос пользователя, либо сохранения данных на постоянных хранилищах данных (например, жесткие диски HDD или SSD), либо передачу в адрес внешних программных модулей и систем.- parameters describing the way to obtain calculation results, including transfer of the calculation result to the user in the form of a response to the user’s request, or saving data on permanent data storage (for example, HDD or SSD hard drives), or transfer to external program modules and systems.

[0033] Направленный запрос на выполнение задачи поступает на сервер 20 авторизации. При поступлении запроса пользователя сервер 20 авторизации известными методами проводит проверку формата запроса, авторизацию пользователя на право запуска и выполнения задачи и вычисления предсказания модели, проверяет и подтверждает права пользователя на выделение и предоставление ресурсов системы и прав запуска задачи и контейнеров для выполнения задачи в соответствии с правами, предоставленными пользователю в системе, и право на получение результатов выполнения вычислений и предсказания модели. В случае подтверждения авторизации пользователя сервер нотификации информирует пользователя об успешной авторизации, либо об отказе в авторизации, либо о существовании ограничений, препятствующих выполнению запроса, либо об ошибке авторизации. Информирование может включать предоставление пользователю кода сообщения, тестового сообщения с описанием результата либо кода сообщения с описанием результата. При необходимости данные пользователя могут быть сохранены в базе данных пользователей, интегрированной с серверами 20 авторизации.[0033] A directed request to perform a task arrives at the authorization server 20. When a user request is received, the authorization server 20, using known methods, checks the request format, authorizes the user for the right to launch and execute a task and calculate the model prediction, checks and confirms the user’s rights to allocate and provide system resources and the rights to launch a task and containers to complete the task in accordance with rights granted to the user in the system, and the right to obtain the results of calculations and model predictions. If the user's authorization is confirmed, the notification server informs the user about successful authorization, or about refusal of authorization, or about the existence of restrictions that prevent the request from being completed, or about an authorization error. Information may include providing the user with a message code, a test message describing the result, or a message code describing the result. If necessary, user data can be stored in a user database integrated with the authorization servers 20.

[0034] В случае если авторизация источника запроса не подтверждена, сервер авторизации может в зависимости от параметров настройки информационной безопасности и количества повторных запросов, не прошедших авторизацию:[0034] If the authorization of the request source is not confirmed, the authorization server may, depending on the information security settings and the number of repeated requests that fail authorization:

- отказать от авторизации и направить в адрес источника запроса уведомление об отказе в авторизации без указания причин;- refuse authorization and send a notice of refusal of authorization to the source of the request without specifying the reasons;

- отказать от авторизации и направить в адрес источника запроса уведомление об отказе в авторизации с указанием причины и/или выдачи кода ошибки;- refuse authorization and send to the source of the request a notification of refusal of authorization indicating the reason and/or issuance of an error code;

- отказать от авторизации без направления в адрес источника запроса уведомление об отказе в авторизации;- refuse authorization without sending a notification of refusal of authorization to the source of the request;

- ограничить последующее число попыток авторизации с уведомлением источника запроса либо без такого уведомления;- limit the subsequent number of authorization attempts with or without notification to the source of the request;

- заблокировать дальнейшее получение запросов от источника запросов;- block further receipt of requests from the request source;

- заблокировать дальнейшее выполнение запросов от источника запросов.- block further execution of requests from the request source.

[0035] Другим способом получения запроса на развертывание вычислительной среды и выполнение вычислительной задачи и вычисление предсказания модели является получение API-вызова, поступающего на шлюз API, сформированного приложением пользователя, внешней автоматической системой либо программным модулем, либо сформированным и переданным пользователем с помощью инструментов для работы в режиме программной строки CLI (утилиты CurI, приложение Postman и другие инструменты). API-вызов должен содержать тот же набор параметров, что и запрос пользователя.[0035] Another way to receive a request to deploy a computing environment and perform a computing task and compute a model prediction is to receive an API call arriving at an API gateway generated by a user application, an external automated system or software module, or generated and submitted by a user using tools for work in CLI program line mode (CurI utilities, Postman application and other tools). The API call must contain the same set of parameters as the user request.

[0036] Соответственно, если авторизация устройства 10 прошла успешно, то запрос на выполнение задачи направляется в устройство 30 управления вычислительными задачами, который далее обрабатывается в зависимости от загрузки системы 100 и очереди задач, предназначенных для выполнения.[0036] Accordingly, if the authorization of the device 10 is successful, then a request to execute a task is sent to the computing task management device 30, which is further processed depending on the load of the system 100 and the queue of tasks to be executed.

[0037] В первом варианте работы системы, при отсутствии очереди задач, устройство 30 извлекает из запроса на выполнение задачи ID и параметры задачи и на основе параметров задачи (например, «наименование выполняемой задачи», «наименование контейнера с выполняемой задачей и моделью», «ID модели», «код вычислительного региона», «запрашиваемые вычислительные ресурсы») определяет количество BP, требуемое для выполнения задачи. Например, для определения упомянутого количества BP устройство 30 может быть оснащено памятью, в которой сохранен список задач, список их параметров, список ПО (например, моделей машинного обучения), которое будет использовано для выполнения задачи в соответствии с параметрами и список BP, которые следует задействовать для запуска каждой модели машинного обучения.[0037] In the first embodiment of the system, in the absence of a task queue, the device 30 extracts the ID and parameters of the task from the request to execute the task and based on the task parameters (for example, “name of the task being performed”, “name of the container with the task being performed and model”, "Model ID", "computing region code", "requested computing resources") determines the number of BPs required to complete the task. For example, to determine said number of BPs, device 30 may be equipped with a memory that stores a list of tasks, a list of their parameters, a list of software (e.g., machine learning models) that will be used to perform the task according to the parameters, and a list of BPs that should be use to run each machine learning model.

[0038] Например, запрос на выполнение задачи может содержать ID и параметры задачи, в соответствии с которыми необходимо осуществить генерацию текстовых данных на основе указанных ключевых слов (первая задача) или генерацию изображения на основе указанных ключевых слов (вторая задача). Например, запрос на выполнение задачи может содержать ID и параметры задачи, в соответствии с которыми необходимо осуществить генерацию текстовых данных на основе указанных ключевых слов (первый тип задачи) или генерацию изображения на основе указанных ключевых слов (второй тип задача). Параметры задачи первого типа задачи «запрашиваемые вычислительные ресурсы» могут указывать на необходимость задействовать 4 CPU и 32 Гб памяти для запуска модели для генерации текста, а параметры задачи второго типа задачи «запрашиваемые вычислительные ресурсы» могут указывать на необходимость задействовать 16 CPU, 4 GPU и 320 Гб памяти для запуска модели для генерации картинки. Модели машинного обучения могут быть реализованы широко известными методами, например, на базе нейронных сетей глубокого обучения.[0038] For example, a task request may contain task ID and parameters that require generating text data based on specified keywords (first task) or generating an image based on specified keywords (second task). For example, a request to perform a task may contain ID and task parameters, according to which it is necessary to generate text data based on specified keywords (first type of task) or generate an image based on specified keywords (second type of task). The parameters of the first task type of the "requested computing resources" task may indicate the need to use 4 CPUs and 32 GB of memory to run the model for text generation, and the parameters of the second task type of the "requested computing resources" task may indicate the need to use 16 CPUs, 4 GPUs and 320 GB of memory to run the model to generate the image. Machine learning models can be implemented using well-known methods, for example, based on deep learning neural networks.

[0039] После того, как количество BP, требуемое для выполнения задачи, определено, устройство 30 обращается планировщику 31 BP посредством направления соответствующего запроса для определения наличия выделенных BP или контейнеров с запущенным ПО для выполнения задачи пользователя, в частности выделенных BP с запущенной моделью для генерации текста или моделью для генерации изображения. Если в ответ на запрос от планировщика 31 поступила информация о наличии упомянутых выделенных BP, например, BP 43, то устройство 30 формирует запрос в исполнительное устройство 40 для обработки запроса пользователя на выполнения задачи с помощью выделенных BP 43, после чего результаты выполненной задачи, например, сгенерированный текст или изображение направляется в устройство 10 пользователя, либо перенаправляется в другое целевое место хранения (в виде сохранения на жесткие диски и формирование API-вызова к внешним системам). В альтернативном варианте реализации подставленного решения вместо упомянутого контейнера может использоваться экземпляр вириальной машины с запущенным в нем ПО для выполнения задачи пользователя.[0039] Once the number of BPs required to perform a task has been determined, device 30 contacts BP scheduler 31 by sending an appropriate request to determine the availability of dedicated BPs or containers running software to perform the user's task, in particular dedicated BPs running a model for text generation or a model for image generation. If, in response to a request from the scheduler 31, information is received about the presence of the mentioned dedicated BPs, for example, BP 43, then the device 30 generates a request to the execution device 40 to process the user request to perform a task using the dedicated BPs 43, after which the results of the completed task, for example , the generated text or image is sent to the user's device 10, or redirected to another target storage location (in the form of saving to hard drives and generating an API call to external systems). In an alternative implementation of the substituted solution, instead of the mentioned container, an instance of a virtual machine with software running in it can be used to perform the user’s task.

[0040] Во втором варианте работы системы, при отсутствии очереди задач, планировщиком 31 может быть определено, что в памяти отсутствует информация о наличии упомянутых выделенных BP или контейнеров с запущенным ПО для выполнения задачи пользователя, после чего планировщик 31 направляет запрос в исполнительное устройство 40 для определения количества свободных BP, информацию о которых исполнительное устройство 40 направляет в ответ на запрос. Планировщик 31 сравнивает информацию о количестве BP, требуемых для выполнения задачи, с информацией о количестве свободных BP, и если свободных BP достаточно для выполнения задачи или сумма задействованных BP и требуемых BP не превышают установленное пороговое значение, то планировщик 31 направляет в устройство 30 информацию о наличии свободных BP для выполнения задачи, после чего запрос на выполнение задачи направляется устройством 30 в исполнительное устройство 40.[0040] In the second version of the system operation, in the absence of a task queue, the scheduler 31 can determine that there is no information in memory about the presence of the mentioned allocated BPs or containers with running software to perform the user's task, after which the scheduler 31 sends a request to the actuator 40 to determine the number of free BPs, information about which the actuator 40 sends in response to the request. The scheduler 31 compares information about the number of BPs required to complete a task with information about the number of free BPs, and if there are enough free BPs to complete the task or the sum of the involved BPs and the required BPs does not exceed a set threshold, then the scheduler 31 sends information about availability of free BPs to perform the task, after which the request to perform the task is sent by the device 30 to the actuator 40.

[0041] Соответственно, упомянутый запрос поступает в модуль 46 управления вычислительными задачами, который на основании информации запроса выделяет BP (43, 44 или 45) и известными методами разворачивает контейнер для запуска в нем ПО с помощью выделенных BP, в частности с моделью машинного обучения для выполнения задачи в соответствии с ID задачи.[0041] Accordingly, the mentioned request arrives at the computational task management module 46, which, based on the request information, allocates BPs (43, 44 or 45) and, using known methods, deploys a container to run software in it using the allocated BPs, in particular with a machine learning model to execute a task according to the task ID.

[0042] После того, как упомянутые BP были выделены, модуль 46 информирует о выделенных BP модуль 47 управления последовательностями операций и модуль 41 управления процессом выделения ресурсов и о готовности к их работе. Также модуль 46 информирует планировщик 31 о выделенных BP с запущенным ПО для сохранения данной информации в памяти и для корректировки информации о свободных BP. Далее модуль 46 направляет команду к выделенным BP для выполнения задачи пользователя посредством ПО, запущенного в контейнере. Таким образом, обеспечивается повышение скорость выполнения задач пользователя и пропускной способности вычислительных ресурсов.[0042] After the BPs have been allocated, the module 46 informs the flow control module 47 and the resource allocation process control module 41 about the allocated BPs and their readiness for operation. Also, module 46 informs scheduler 31 about allocated BPs with running software for storing this information in memory and for updating information about free BPs. Next, module 46 sends a command to the dedicated BPs to perform the user's task through software running in the container. This ensures an increase in the speed of completing user tasks and the throughput of computing resources.

[0043] Результаты выполненной задачи, например, сгенерированный текст или изображение, выделенные BP передают через модуль 46 в устройство 40 для их передачи в устройство 10 пользователя, либо в другое целевое место хранения (в виде сохранения на жесткие диски и формирование API-вызова к внешним системам).[0043] The results of the completed task, for example, generated text or image, allocated by BP are transmitted through module 46 to device 40 for transfer to user device 10, or to another target storage location (in the form of saving to hard drives and generating an API call to external systems).

[0044] После того, как задача пользователя выполнена, т.е. модуль 46 получил от выделенных BP результаты выполненной задачи, модуль 46 фиксирует время выполненной задачи и запускает счетчик, которым модуль 46 может быть оснащен, для отслеживания времени нахождения выделенных BP в режиме ожидания. Если по истечению заданного разработчиком интервала времени в модуль 46 не поступила дополнительная задача пользователя для упомянутых BP, то модуль 46 направляет на выделенные BP команду для выключения контейнера с запущенным ПО, после чего BP освобождаются. Информация об освобожденных ресурсах направляется модулем 46 в планировщик 31 для корректировки информации о свободных BP.[0044] After the user task is completed, i.e. module 46 received the results of the completed task from the allocated BPs, module 46 records the time of the completed task and starts a counter with which module 46 can be equipped to track the time spent by the allocated BPs in idle mode. If, after a time interval specified by the developer, module 46 has not received an additional user task for the mentioned BPs, then module 46 sends a command to the allocated BPs to shut down the container with the running software, after which the BPs are released. Information about freed resources is sent by module 46 to scheduler 31 to update information about free BPs.

[0045] В третьем варианте работы системы, при наличии очереди задач, исполнительное устройство 40 может быть оснащено модулем 49 управления очередью запросов. Соответственно, после определения наличия выделенных BP с запущенным ПО в данном варианте реализации представленного решения устройство 30 формирует запрос в исполнительное устройство 40 для выполнения задачи пользователя с помощью выделенных BP, содержащий ID BP или контейнера с запущенным ПО, который поступает через модуль 46 в модуль 49.[0045] In the third embodiment of the system, if there is a task queue, the actuator 40 can be equipped with a request queue management module 49. Accordingly, after determining the presence of dedicated BPs running software in this embodiment of the presented solution, device 30 generates a request to execution device 40 to perform a user task using dedicated BPs, containing the ID of the BP or container running software, which is sent through module 46 to module 49 .

[0046] Далее модуль 49 обращается к списку задач в очереди к контейнеру, предназначенному для выполнения задачи, запущенном при помощи BP, и определяет наличие по меньшей мере одной задачи пользователя в списке задач в очереди, после чего модуль 49 вносит в список информацию о новой задаче в соответствии с полученным от устройства 30 запросом. Дополнительно при постановке в очередь могут учитываться параметры, описывающие приоритет выполнения задачи.[0046] Next, module 49 accesses the list of tasks in the queue for the container intended to perform the task launched by BP and determines the presence of at least one user task in the list of tasks in the queue, after which module 49 enters information about the new one into the list. task in accordance with the request received from the device 30. Additionally, when queuing, parameters that describe the priority of task execution can be taken into account.

[0047] Соответственно, после того, как задача пользователя из списка выполнена при помощи выделенных BP, информация о выполненной задаче от BP поступает в модуль 49, который исключает информацию о выполненной задаче из списка задач на исполнение, после чего модуль 49 направляет информацию о следующей задаче из упомянутого списка к BP для выполнения задачи с использованием ПО, запущенном в контейнере.[0047] Accordingly, after the user's task from the list is completed using the allocated BPs, information about the completed task from the BP is sent to module 49, which excludes information about the completed task from the list of tasks for execution, after which module 49 sends information about the next task from the mentioned list to BP to perform the task using software running in the container.

[0048] Дополнительно модуль 49 может быть выполнен с возможностью, после определения наличия по меньшей мере одной или более задач пользователя в списке задач в очереди, направить запрос в планировщик 31 для проверки наличия свободных BP для запуска копии ПО для выполнения задачи пользователя. В альтернативном варианте модуль 49 после определения наличия по меньшей мере одной задачи пользователя в списке задач в очереди может направить запрос в планировщик 31 для определения времени выполнения задачи пользователя. Время выполнения задачи пользователя может быть определено планировщиком 31 широко известным методом, например, посредством анализа ранее выделенных BP при выполнении ими ранее аналогичных задач пользователя.[0048] Additionally, module 49 may be configured, after determining the presence of at least one or more user tasks in the queued task list, to send a request to scheduler 31 to check for free BPs to run a copy of the software to perform the user task. Alternatively, module 49, after determining the presence of at least one user task in the queued task list, may send a request to scheduler 31 to determine when to complete the user task. The execution time of a user's task can be determined by the scheduler 31 by a well-known method, for example, by analyzing previously allocated BPs when they previously performed similar user tasks.

[0049] На основе полученного от планировщика 31 времени выполнения задачи и времени начала выполнения задачи из очереди, которое также может быть зафиксировано известными методами после начала выполнения упомянутой задачи посредством BP, модуль 49 определяет прогнозируемое время выполнения задачи из очереди, после чего на основе прогнозируемого выполнения задачи из очереди и времени выполнения задачи пользователя, полученного о планировщика 31, модуль 49 определяет прогнозируемое время выполнения задачи пользователя, полученной от исполнительного устройства 40, т.е. текущей задачи. Прогнозируемое время выполнения текущей задачи сравнивается модулем 49 с допустимым временем выполнения текущей задачи, информация о которой может содержаться в полученном ранее запросе на выполнение задачи в соответствии с вводом пользователя.[0049] Based on the task execution time received from the scheduler 31 and the start time of the task execution from the queue, which can also be recorded by known methods after the start of execution of the said task by means of BP, module 49 determines the predicted execution time of the task from the queue, and then, based on the predicted execution of the task from the queue and the execution time of the user task received from the scheduler 31, module 49 determines the predicted execution time of the user task received from the execution device 40, i.e. current task. The predicted execution time of the current task is compared by module 49 with the acceptable execution time of the current task, information about which may be contained in a previously received request to perform the task in accordance with user input.

[0050] Если прогнозируемое время выполнения текущей задачи не выходит за границы значений допустимого времени выполнения текущей задачи, то модуль 49 может поставить текущую задачу в список задач в очереди.[0050] If the predicted execution time of the current task is within the acceptable execution time of the current task, then module 49 may place the current task in the list of tasks in the queue.

[0051] Если прогнозируемое время выполнения текущей задачи выходит за границы значений допустимого времени выполнения текущей задачи, то модуль 49 направляет запрос в планировщик 31 для проверки наличия свободных BP для запуска копии ПО для выполнения задачи пользователя. Если свободных BP достаточно для запуска копии ПО для выполнения задачи пользователя, то модуль 49 направляет соответствующее уведомление в модуль 46 управления вычислительными задачами, который на основании информации запроса выделяет BP (43, 44 или 45) и известными методами разворачивает контейнер для запуска в нем копии ПО с помощью выделенных BP.[0051] If the predicted execution time of the current task is outside the acceptable execution time of the current task, then module 49 sends a request to scheduler 31 to check whether there are free BPs to run a copy of the software to complete the user's task. If there are enough free BPs to launch a copy of the software to complete the user’s task, then module 49 sends a corresponding notification to the computational task management module 46, which, based on the request information, allocates BPs (43, 44 or 45) and, using known methods, deploys a container to run a copy in it Software using dedicated BPs.

[0052] Далее модуль 49 направляет команду к выделенным BP для выполнения задачи пользователя посредством копии ПО, запущенного в контейнере, а результаты выполненной задачи, выделенные BP передают через модуль 46 в устройство 40 для их передачи в устройство 10 пользователя, либо в другое целевое место хранения (в виде сохранения на жесткие диски и формирование API-вызова к внешним системам). Таким образом, дополнительно повышается скорость выполнения задач пользователя и пропускная способность вычислительных ресурсов.[0052] Next, module 49 sends a command to the allocated BPs to perform the user's task through a copy of the software running in the container, and the results of the completed task, the allocated BPs are transmitted through module 46 to device 40 for transmission to user device 10, or to another target location storage (in the form of saving to hard drives and generating an API call to external systems). Thus, the speed of completing user tasks and the throughput of computing resources are further increased.

[0053] После того, как задача пользователя выполнена, т.е. модуль 46 получил от выделенных BP результаты выполненной задачи, модуль 46 фиксирует время выполненной задачи и запускает счетчик, которым модуль 46 может быть оснащен, для отслеживания времени нахождения выделенных BP с запущенной копией ПО в режиме ожидания. Если по истечению заданного разработчиком интервала времени в модуль 46 не поступила дополнительная задача пользователя для упомянутых BP, то модуль 46 направляет на выделенные BP команду для выключения контейнера с запущенной копией ПО, после чего BP освобождаются. Информация об освобожденных ресурсах направляется модулем 46 в планировщик 31 для корректировки информации о свободных BP.[0053] After the user task is completed, i.e. module 46 received the results of the completed task from the allocated BPs, module 46 records the time of the completed task and starts a counter with which module 46 can be equipped to track the time spent by the allocated BPs running a copy of the software in standby mode. If, after a time interval specified by the developer, module 46 has not received an additional user task for the mentioned BPs, then module 46 sends a command to the allocated BPs to shut down the container with the running copy of the software, after which the BPs are released. Information about freed resources is sent by module 46 to scheduler 31 to update information about free BPs.

[0054] А альтернативном варианте реализации модуль 49 может быть выполнен с возможностью определения прогнозированного времени выполнения текущей задачи с использованием копии ПО, предназначенной для выполнения упомянутой задачи. Для этого модуль 49 запрашивает у планировщика 31 информацию о времени, которое требуется для развертывания контейнера с приложением с использованием BP. Упомянутое время развертывания контейнера может быть определено планировщиком 31 широко известным методом, например, посредством опроса выделенных BP при развертывании ими контейнера.[0054] In an alternative embodiment, module 49 may be configured to determine the predicted completion time of a current task using a copy of the software designed to perform said task. To do this, module 49 requests information from scheduler 31 about the time it takes to deploy the application container using BP. Said container deployment time can be determined by the scheduler 31 by a well-known method, for example by polling allocated BPs when they deploy the container.

[0055] На основе времени развертывания контейнера и времени выполнения задачи модуль 49 определяет прогнозируемое время выполнения текущей задачи с использованием копии ПО. Далее устройство сравнивает упомянутое прогнозируемое время выполнения текущей задачи с полученным ранее прогнозируемым временем выполнения задачи пользователя, определенное с учетом прогнозируемого выполнения задачи из очереди.[0055] Based on the container deployment time and the task execution time, module 49 determines the predicted execution time of the current task using the copy of the software. Next, the device compares said predicted execution time of the current task with the previously obtained predicted execution time of the user's task, determined taking into account the predicted execution of the task from the queue.

[0056] Если прогнозируемое время выполнения задачи пользователя, определенное с учетом времени прогнозируемого выполнения задачи из очереди, меньше, чем прогнозируемое время выполнения текущей задачи с использованием копии ПО, то модуль 49 осуществляет постановку текущей задачи в очередь задач согласно значению приоритета. Если прогнозируемое время выполнения задачи пользователя, определенное с учетом прогнозируемого времени выполнения задачи из очереди, больше, чем прогнозируемое время выполнения текущей задачи с использованием копии ПО, то модуль 49 инициирует развертывание контейнера для запуска в нем копии ПО с помощью выделенных BP и обработки задачи описанным ранее способом.[0056] If the predicted execution time of the user's task, determined taking into account the predicted execution time of the task from the queue, is less than the predicted execution time of the current task using the software copy, then the module 49 puts the current task into the task queue according to the priority value. If the predicted execution time of a user's task, determined taking into account the predicted execution time of a task from the queue, is greater than the predicted execution time of the current task using a copy of the software, then module 49 initiates the deployment of a container to run a copy of the software in it using dedicated BPs and process the task as described earlier way.

[0057] Также модулем 49 может быть определено, что прогнозируемое время выполнения текущей задачи, в частности текущей первой задачи, выходит за границы значений допустимого времени выполнения текущей задачи, при этом свободных BP недостаточно для запуска копии ПО для выполнения задачи пользователя. Далее модуль 49 может проанализировать списки очередей к контейнерам с запущенными копиями ПО для выполнения второй задачи для поиска контейнера без очереди или с минимальным количеством задач в очереди, после чего модуль 49 может направить команду на упомянутый контейнер без очереди или с минимальным количеством задач в очереди для остановки его работы и высвобождения BP, которые были выделены для запуска ПО с использованием данного контейнера с целью запуска текущей задачи или другой задачи с использованием этих BP (более приоритетной или выполняемой с большим временем ожидания).[0057] It can also be determined by module 49 that the predicted execution time of the current task, in particular the current first task, is beyond the acceptable execution time of the current task, and there are not enough free BPs to run a copy of the software to complete the user's task. Next, module 49 can analyze lists of queues for containers with running copies of the software to perform a second task to find a container without a queue or with a minimum number of tasks in the queue, after which module 49 can send a command to said container without a queue or with a minimum number of tasks in the queue to stopping its operation and freeing BPs that were allocated to run software using this container in order to run the current task or another task using these BPs (higher priority or running with a long latency).

[0058] Дополнительно при постановке задачи в очередь модуль 49 может учитывать значения допустимого времени выполнения задач для того, чтобы все задачи в очереди были выполнены согласно значениям допустимого времени их выполнения.[0058] Additionally, when queuing a task, module 49 may take into account the task execution time values so that all tasks in the queue are completed according to their execution time values.

[0059] В альтернативном варианте реализации модуль 49 может отслеживать количество задач, в частности первых задач, в списке задач в очереди к каждому контейнеру, и если количество задач в списке превысит заданное пороговое значение, то модуль 49 может описанным ранее способом проанализировать списки очередей к контейнерам с запущенными копиями ПО для выполнения второй задачи для поиска контейнера без очереди или с минимальным количеством задач в очереди, после чего модуль 49 может направить команду на упомянутый контейнер без очереди или с минимальным количеством задач в очереди для остановки его работы и высвобождения BP, которые были выделены для запуска ПО с использованием данного контейнера с целью запуска текущей задачи или другой задачи на этих BP (более приоритетной или выполняемой с большим временем ожидания)..[0059] In an alternative implementation, module 49 may monitor the number of tasks, in particular the first tasks, in the task list in the queue for each container, and if the number of tasks in the list exceeds a predetermined threshold, then module 49 can analyze the queue lists to containers with running copies of the software to perform a second task to search for a container without a queue or with a minimum number of tasks in the queue, after which module 49 can send a command to said container without a queue or with a minimum number of tasks in the queue to stop its operation and release the BPs that were allocated to run software using this container in order to run the current task or another task on these BPs (higher priority or running with a long latency)..

[0060] Соответственно, как только BP освобождаются, модуль 49 инициирует развертывание контейнера для запуска в нем копии ПО с помощью выделенных BP для выполнения текущей задачи описанным ранее способом. Задачи в списке очереди к контейнеру, работа которого была остановлена, могут быть распределены модулем 49 среди других контейнеров. Таким образом, дополнительно повышается скорость выполнения задач пользователя и пропускная способность вычислительных ресурсов.[0060] Accordingly, as soon as the BPs are released, module 49 initiates the deployment of a container to run a copy of the software in it using the allocated BPs to perform the current task in the manner previously described. Tasks in the queue list for a container whose operation has been stopped can be distributed by module 49 among other containers. Thus, the speed of completing user tasks and the throughput of computing resources are further increased.

[0061] В общем виде (см. Фиг. 2) вычислительное устройство (200) содержит объединенные общей шиной информационного обмена один или несколько процессоров (201), включая вычислительные для ускорения вычислений - модули GPU (Графический процессор, Англ. graphics processing unit), TPU (Тензорный процессор, англ. Tensor Processing Unit), IPU (Интегрированное процессорное устройство, англ. Integrated Processing Unit), а также модулей на основе микропроцессоров FPGA и ASIC, средства памяти, такие как ОЗУ (202) и ПЗУ (203), интерфейсы ввода/вывода (204), устройства (средства) ввода/вывода (205), и устройство (средство) для сетевого взаимодействия (206).[0061] In general (see Fig. 2), the computing device (200) contains one or more processors (201), united by a common information exchange bus, including computing ones for accelerating calculations - GPU modules (Graphics Processing Unit). , TPU (Tensor Processing Unit), IPU (Integrated Processing Unit), as well as modules based on FPGA and ASIC microprocessors, memory devices such as RAM (202) and ROM (203) , input/output interfaces (204), input/output devices (205), and network communication devices (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, тип которых также является пригодным для полного или частичного выполнения способа, а также может применяться для обучения и применения моделей машинного обучения в различных информационных системах.[0062] The processor (201) (or multiple processors, multi-core processor, etc.) may be implemented based on a CISC, RISC, ARM, etc. architecture, and be selected from a variety of devices commonly used today, such as manufacturers such as: Intel™, AMD™, Apple™, Samsung Exynos™, MediaTEK™, Qualcomm Snapdragon™, Huawei Kunpeng™ and Nvidia™, IBM™, Baikal™, IVA™, etc. The processor or one of the used processors in the device (200) must also take into account a computational accelerator implemented, for example, in the form of a graphics processor, for example an NVIDIA GPU with a programming model compatible with CUDA, Graphcore, TPU (Tensor Processing Unit), IPU (Integrated Processing Unit), as well as modules based on FPGA and ASIC microprocessors, the type of which is also suitable for full or partial implementation of the method, and can also be used for training and applying machine learning models in various information systems.

[0063] ОЗУ (202) представляет собой оперативную память и предназначено для хранения исполняемых процессором (201) машиночитаемых инструкций для выполнения необходимых операций по логической обработке данных. ОЗУ (202), как правило, содержит исполняемые инструкции операционной системы и соответствующих программных компонент (приложения, программные модули и т.п.). При этом, в качестве ОЗУ (202) может выступать доступный объем памяти графической карты, графического процессора или других ускорителей вычислений. [0064] ПЗУ (203) представляет собой одно или более устройств постоянного хранения данных, например, жесткий диск (HDD), твердотельный накопитель данных (SSD), флэш-память (EEPROM, NAND и т.п.), оптические носители информации (CD-R/RW, DVD-R/RW, BlueRay Disc, MD) и др.[0063] RAM (202) is a random access memory and is designed to store machine-readable instructions executed by the processor (201) to perform the necessary logical data processing operations. The RAM (202) typically contains executable operating system instructions and associated software components (applications, program modules, etc.). In this case, the available memory capacity of a graphics card, graphics processor, or other computing accelerators can act as RAM (202). [0064] The ROM (203) is one or more permanent storage devices, such as a hard disk drive (HDD), a solid state drive (SSD), flash memory (EEPROM, NAND, etc.), optical storage media ( CD-R/RW, DVD-R/RW, BlueRay Disc, MD), etc.

[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 и т.п.[0065] To organize the operation of device components (200) and organize the operation of external connected devices, various types of I/O interfaces (204) are used. The choice of appropriate interfaces depends on the specific design of the computing device, which can be, but is not limited to: 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, single-mode and multimode optical interfaces SC and ST, WiFi, NVLink, InfiniBand, STM, ATM, etc.

[0066] Для обеспечения взаимодействия пользователя с вычислительным устройством (200) применяются различные средства (205) В/В информации, например, клавиатура, дисплей (монитор), сенсорный дисплей, тач-пад, джойстик, манипулятор мышь, световое перо, стилус, сенсорная панель, трекбол, динамики, микрофон, средства дополненной реальности, оптические сенсоры, планшет, световые индикаторы, проектор, камера, средства биометрической идентификации (сканер сетчатки глаза, сканер отпечатков пальцев, модуль распознавания голоса) и т.п.[0066] To ensure user interaction with the computing device (200), various means (205) of I/O information are used, for example, a keyboard, a display (monitor), a touch display, a touch pad, a joystick, a mouse, a light pen, a stylus, touch panel, trackball, speakers, microphone, augmented reality tools, optical sensors, tablet, light indicators, projector, camera, biometric identification tools (retina scanner, fingerprint scanner, voice recognition module), etc.

[0067] Средство сетевого взаимодействия (206) обеспечивает передачу данных посредством внутренней или внешней вычислительной сети, например, Интранет, Интернет, ЛВС и т.п. В качестве одного или более средств (206) может использоваться, но не ограничиваться: Ethernet карта, одномодовые и многомодовые оптические интерфейсные модули, NVLink, InfiniBand, STM, ATM и др.[0067] The network communication means (206) provides data transmission via an internal or external computer network, for example, an Intranet, the Internet, a LAN, etc. One or more means (206) may include, but are not limited to: Ethernet card, single-mode and multimode optical interface modules, NVLink, InfiniBand, STM, ATM, etc.

[0068] Дополнительно могут применяться также средства спутниковой навигации в составе устройства (200), например, GPS, ГЛОНАСС, BeiDou, Galileo. Также сигналы точного времени, полученные от упомянутых средств спутниковой навигации, могут использоваться для синхронизации работы географически разнесенных устройств.[0068] Additionally, satellite navigation tools can also be used as part of the device (200), for example, GPS, GLONASS, BeiDou, Galileo. Also, precise time signals received from the above-mentioned satellite navigation devices can be used to synchronize the operation of geographically dispersed devices.

[0069] Конкретный выбор элементов устройства (200) для реализации различных программно-аппаратных архитектурных решений может варьироваться с сохранением обеспечиваемого требуемого функционала.[0069] The specific selection of device elements (200) for implementing various software and hardware architectural solutions may vary while maintaining the required functionality provided.

[0070] Модификации и улучшения вышеописанных вариантов осуществления настоящего технического решения будут ясны специалистам в данной области техники. Предшествующее описание представлено только в качестве примера и не несет никаких ограничений. Таким образом, объем настоящего технического решения ограничен только объемом прилагаемой формулы изобретения.[0070] Modifications and improvements to the above-described embodiments of the present technical solution will be apparent to those skilled in the art. The foregoing description is provided by way of example only and is not intended to be limiting. Thus, the scope of the present technical solution is limited only by the scope of the attached claims.

Claims (26)

1. Способ распределения вычислительных ресурсов для обработки запросов пользователей, выполняемый посредством вычислительного устройства, содержащий этапы, на которых:1. A method for distributing computing resources to process user requests, performed by means of a computing device, containing the steps of: - получают от устройства пользователя запрос на выполнение задачи (текущей задачи), содержащий параметры задачи;- receive a request from the user’s device to perform a task (current task), containing task parameters; - извлекают из запроса параметры задачи и на их основе определяют количество вычислительных ресурсов (BP), требуемое для выполнения текущей задачи;- extract task parameters from the request and, based on them, determine the amount of computing resources (BP) required to complete the current task; - определяют наличие BP, выделенных для выполнения задач данного типа;- determine the availability of BP allocated to perform tasks of this type; - определяют наличие по меньшей мере одной задачи пользователя в списке задач в очереди к упомянутым выделенным BP;- determining the presence of at least one user task in the list of tasks in the queue to the mentioned allocated BPs; - определяют прогнозируемое время выполнения текущей задачи с учетом прогнозируемого времени выполнения задачи из очереди;- determine the predicted execution time of the current task, taking into account the predicted execution time of the task from the queue; - сравнивают прогнозируемое время выполнения текущей задачи с допустимыми значениями времени выполнения текущей задачи,- compare the predicted execution time of the current task with the acceptable values of the current task execution time, причем если прогнозируемое время выполнения текущей задачи не выходит за границы значений допустимого времени выполнения текущей задачи, то осуществляют постановку текущей задачи в список задач в очереди;moreover, if the predicted execution time of the current task does not go beyond the limits of the permissible execution time of the current task, then the current task is placed in the list of tasks in the queue; если прогнозируемое время выполнения текущей задачи выходит за границы значений допустимого времени выполнения текущей задачи, то выделяют BP для запуска копии ПО для выполнения текущей задачи и направляют команду к упомянутым выделенным BP для выполнения текущей задачи посредством копии ПО.if the predicted execution time of the current task goes beyond the limits of the permissible execution time of the current task, then a BP is allocated to launch a copy of the software to perform the current task and a command is sent to said allocated BPs to perform the current task through the copy of the software. 2. Способ по п. 1, характеризующийся тем, что постановка текущей задачи пользователя в список задач в очереди осуществляется с учетом приоритета текущей задачи и/или с учетом значений допустимого времени выполнения текущей задачи и/или значений допустимого времени выполнения задачи в очереди.2. The method according to claim 1, characterized in that the placement of the user’s current task in the list of tasks in the queue is carried out taking into account the priority of the current task and/or taking into account the values of the allowable execution time of the current task and/or the values of the allowable execution time of the task in the queue. 3. Способ по п. 1, характеризующийся тем, что этап выделения BP для запуска в нем копии ПО для выполнения текущей задачи содержит этап, на котором определяют наличие свободных BP для запуска копии ПО для выполнения текущей задачи.3. The method according to claim 1, characterized in that the stage of allocating a BP to run a copy of the software in it to perform the current task contains a stage at which the availability of free BP to run a copy of the software to perform the current task is determined. 4. Способ по п. 1, характеризующийся тем, что этап выделения BP для запуска в нем копии ПО для выполнения текущей задачи содержит этапы, на которых:4. The method according to claim 1, characterized in that the stage of allocating a BP to run a copy of the software in it to perform the current task contains stages in which: - определяют отсутствие свободных BP для запуска копии ПО для выполнения текущей задачи;- determine the lack of free BP to launch a copy of the software to perform the current task; - осуществляют поиска контейнера или виртуальной машины без очереди или с минимальным количеством задач в очереди;- search for a container or virtual machine without a queue or with a minimum number of tasks in the queue; - направляют команду на упомянутый контейнер или виртуальную машину без очереди или с минимальным количеством задач в очереди для остановки его работы и высвобождения BP.- send a command to the said container or virtual machine without a queue or with a minimum number of tasks in the queue to stop its operation and release BP. 5. Способ по п. 1, характеризующийся тем, что дополнительно выполняют этапы, на которых:5. The method according to claim 1, characterized in that additional steps are performed in which: - отслеживают количество задач первого типа в списке задач в очереди к каждому контейнеру или виртуальной машине, причем если количество задач первого типа в списке превышает заданное пороговое значение, то осуществляют поиск контейнера или виртуальной машины без очереди или с минимальным количеством задач второго типа в очереди;- they monitor the number of tasks of the first type in the list of tasks in the queue for each container or virtual machine, and if the number of tasks of the first type in the list exceeds a specified threshold value, then they search for a container or virtual machine without a queue or with a minimum number of tasks of the second type in the queue; - направляют команду на упомянутый контейнер или виртуальную машину без очереди или с минимальным количеством задач в очереди для остановки его/ее работы и высвобождения BP, которые были выделены для запуска ПО с использованием данного контейнера или виртуальной машины, с целью запуска задачи первого типа на освободившихся BP.- send a command to the said container or virtual machine without a queue or with a minimum number of tasks in the queue to stop his/her work and release the BPs that were allocated to run software using this container or virtual machine, with the aim of running a task of the first type on the freed ones B.P. 6. Способ по п. 1, характеризующийся тем, что дополнительно выполняют этапы, на которых:6. The method according to claim 1, characterized in that additional steps are performed in which: - отслеживают время нахождения выделенных BP с запущенной копией ПО в режиме ожидания, причем если по истечению заданного разработчиком интервала времени не поступила дополнительная задача пользователя для упомянутых BP, то направляют на выделенные BP команду для выключения контейнера или виртуальной машины с запущенной копией ПО, после чего BP освобождаются.- monitor the time spent by dedicated BPs with a running copy of the software in standby mode, and if, after the time interval specified by the developer, no additional user task has been received for the mentioned BPs, then a command is sent to the dedicated BPs to shut down the container or virtual machine with the running copy of the software, after which BP are released. 7. Способ по п. 1, характеризующийся тем, что этап постановки текущей задачи в список задач в очереди дополнительно содержит этапы, на которых:7. The method according to claim 1, characterized in that the stage of placing the current task in the list of tasks in the queue additionally contains stages in which: - определяют прогнозированное времени выполнения текущей задачи с использованием копии ПО с учетом времени, которое требуется для развертывания контейнера или виртуальной машины с приложением с использованием BP;- determine the predicted execution time of the current task using a copy of the software, taking into account the time required to deploy a container or virtual machine with an application using BP; - сравнивают прогнозируемое время выполнения текущей задачи с учетом времени прогнозируемого выполнения задачи из очереди с прогнозированным временем выполнения текущей задачи с использованием копии ПО;- compare the predicted execution time of the current task, taking into account the time of the predicted execution of the task from the queue, with the predicted execution time of the current task using a copy of the software; причем постановку текущей задачи в список задач в очереди осуществляют после определения того, что прогнозируемое время выполнения текущей задачи с учетом времени прогнозируемого выполнения задачи из очереди меньше, чем прогнозированное времени выполнения текущей задачи с использованием копии ПО.wherein the placement of the current task into the list of tasks in the queue is carried out after determining that the predicted execution time of the current task, taking into account the time of the predicted execution of the task from the queue, is less than the predicted execution time of the current task using a copy of the software. 8. Способ по п. 1, характеризующийся тем, что ПО, посредством которого выполняется задача пользователя, запускается посредством контейнера или экземпляра виртуальной машины с запущенным в нем ПО.8. The method according to claim 1, characterized in that the software through which the user’s task is performed is launched through a container or a virtual machine instance with the software running in it. 9. Система распределения вычислительных ресурсов для обработки запросов пользователей, содержащая по меньшей мере одно вычислительное устройство и по меньшей мере одно устройство памяти, содержащее машиночитаемые инструкции, которые при их исполнении по меньшей мере одним вычислительным устройством выполняют способ по любому из пп. 1-8.9. A system for distributing computing resources for processing user requests, comprising at least one computing device and at least one memory device containing machine-readable instructions, which, when executed by at least one computing device, perform the method according to any one of claims. 1-8.
RU2023135800A 2023-12-28 Method and system for distributing system resources for processing user requests RU2818490C1 (en)

Publications (1)

Publication Number Publication Date
RU2818490C1 true RU2818490C1 (en) 2024-05-02

Family

ID=

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150106424A1 (en) * 2009-06-30 2015-04-16 Citrix Systems, Inc. Methods and systems for load balancing using forecasting and overbooking techniques
US20190171491A1 (en) * 2011-09-14 2019-06-06 Microsoft Technology Licensing, Llc Load balancing by endpoints
RU2703188C1 (en) * 2017-10-05 2019-10-15 НФВаре, Инц Load distribution method for a multi-core system
US20210081492A1 (en) * 2019-09-16 2021-03-18 Oracle International Corporation Time-Series Analysis for Forecasting Computational Workloads
US20210373967A1 (en) * 2020-05-27 2021-12-02 Citrix Systems, Inc. Load balancing of computing sessions with load patterns
RU2771444C1 (en) * 2021-05-13 2022-05-04 Акционерное общество "Лаборатория Касперского" System and method for balancing connections between clients and servers

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150106424A1 (en) * 2009-06-30 2015-04-16 Citrix Systems, Inc. Methods and systems for load balancing using forecasting and overbooking techniques
US20190171491A1 (en) * 2011-09-14 2019-06-06 Microsoft Technology Licensing, Llc Load balancing by endpoints
RU2703188C1 (en) * 2017-10-05 2019-10-15 НФВаре, Инц Load distribution method for a multi-core system
US20210081492A1 (en) * 2019-09-16 2021-03-18 Oracle International Corporation Time-Series Analysis for Forecasting Computational Workloads
US20210373967A1 (en) * 2020-05-27 2021-12-02 Citrix Systems, Inc. Load balancing of computing sessions with load patterns
RU2771444C1 (en) * 2021-05-13 2022-05-04 Акционерное общество "Лаборатория Касперского" System and method for balancing connections between clients and servers

Similar Documents

Publication Publication Date Title
US11188392B2 (en) Scheduling system for computational work on heterogeneous hardware
US10664348B2 (en) Fault recovery management in a cloud computing environment
Huang et al. ShuffleDog: characterizing and adapting user-perceived latency of android apps
JP2022520005A (en) Patch management in a hybrid computing environment
US11755337B2 (en) Techniques for managing dependencies of an orchestration service
US11924117B2 (en) Automated local scaling of compute instances
US11115348B2 (en) Virtual resource allocation for processing an event queue
US11252149B1 (en) Resource management techniques for dialog-driven applications
US10467052B2 (en) Cluster topology aware container scheduling for efficient data transfer
KR101751515B1 (en) Apparatus, method, and computer program for testing
US11645098B2 (en) Systems and methods to pre-provision sockets for serverless functions
CN112256414A (en) Method and system for connecting multiple computing storage engines
US11817091B1 (en) Fault-tolerance techniques for dialog-driven applications
US20240264886A1 (en) Customized configuration of multimodal interactions for dialog-driven applications
Harichane et al. KubeSC‐RTP: Smart scheduler for Kubernetes platform on CPU‐GPU heterogeneous systems
RU2818490C1 (en) Method and system for distributing system resources for processing user requests
CN112181599A (en) Model training method, device and storage medium
Ben Hafaiedh et al. A model-based approach for formal verification and performance analysis of dynamic load-balancing protocols in cloud environment
CN111241540A (en) Service processing method and device
US20220114023A1 (en) Infrastructure as code deployment mechanism
US20220276901A1 (en) Batch processing management
RU2820753C1 (en) Method and system for controlling objects and processes in computing environment
US20180196736A1 (en) Controlling debug processing
CN117472516B (en) Virtual resource scheduling method, device, cluster system, electronic equipment and medium
CN114217950B (en) Node scheduling state control method and system