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 PDFInfo
- 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
Links
- 238000000034 method Methods 0.000 title claims description 37
- 238000012545 processing Methods 0.000 title claims description 18
- 230000008569 process Effects 0.000 claims description 7
- 239000000284 extract Substances 0.000 claims description 3
- 239000000126 substance Substances 0.000 abstract 1
- 238000013475 authorization Methods 0.000 description 21
- 230000006870 function Effects 0.000 description 12
- 238000004364 calculation method Methods 0.000 description 6
- 238000007726 management method Methods 0.000 description 6
- 238000010801 machine learning Methods 0.000 description 5
- 230000003287 optical effect Effects 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 4
- 230000004044 response Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 238000004886 process control Methods 0.000 description 2
- 238000013468 resource allocation Methods 0.000 description 2
- HPTJABJPZMULFH-UHFFFAOYSA-N 12-[(Cyclohexylcarbamoyl)amino]dodecanoic acid Chemical compound OC(=O)CCCCCCCCCCCNC(=O)NC1CCCCC1 HPTJABJPZMULFH-UHFFFAOYSA-N 0.000 description 1
- 241001025261 Neoraja caerulea Species 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 230000003190 augmentative effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 229920005994 diacetyl cellulose Polymers 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 210000001525 retina Anatomy 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000012549 training Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Images
Abstract
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:
[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
[0029] Устройство 30 управления вычислительными задачами может представлять собой по меньшей мере один сервер и оснащено планировщиком 31 задач, реализованным на базе сервера, оснащенного соответствующим программным обеспечением и выполняющего обработку очереди задач транспортировки. Планировщик 31 задач опрашивает устройства системы 100 о наличии подходящих событий, которые повлекут инициализацию искомых операций.[0029] The computing
[0030] Исполнительное устройство 40 может быть реализовано на базе сервера и содержать модуль 41 управления процессом выделения ресурсов, реализованный на базе вычислительного устройства, хранилище 42 моделей, BP 43,44, 45, модуль 46 управления вычислительными задачами, модуль 47 управления последовательностями операций и модуль 49 управления очередью запросов. Для реализации упомянутых модулей могут использоваться широко известные логические элементы на транзисторах, АЦП, ЦАП, генераторы тактовых импульсов и пр.[0030] The
[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
- 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
[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
[0037] В первом варианте работы системы, при отсутствии очереди задач, устройство 30 извлекает из запроса на выполнение задачи ID и параметры задачи и на основе параметров задачи (например, «наименование выполняемой задачи», «наименование контейнера с выполняемой задачей и моделью», «ID модели», «код вычислительного региона», «запрашиваемые вычислительные ресурсы») определяет количество BP, требуемое для выполнения задачи. Например, для определения упомянутого количества BP устройство 30 может быть оснащено памятью, в которой сохранен список задач, список их параметров, список ПО (например, моделей машинного обучения), которое будет использовано для выполнения задачи в соответствии с параметрами и список BP, которые следует задействовать для запуска каждой модели машинного обучения.[0037] In the first embodiment of the system, in the absence of a task queue, the
[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,
[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
[0041] Соответственно, упомянутый запрос поступает в модуль 46 управления вычислительными задачами, который на основании информации запроса выделяет BP (43, 44 или 45) и известными методами разворачивает контейнер для запуска в нем ПО с помощью выделенных BP, в частности с моделью машинного обучения для выполнения задачи в соответствии с ID задачи.[0041] Accordingly, the mentioned request arrives at the computational
[0042] После того, как упомянутые BP были выделены, модуль 46 информирует о выделенных BP модуль 47 управления последовательностями операций и модуль 41 управления процессом выделения ресурсов и о готовности к их работе. Также модуль 46 информирует планировщик 31 о выделенных BP с запущенным ПО для сохранения данной информации в памяти и для корректировки информации о свободных BP. Далее модуль 46 направляет команду к выделенным BP для выполнения задачи пользователя посредством ПО, запущенного в контейнере. Таким образом, обеспечивается повышение скорость выполнения задач пользователя и пропускной способности вычислительных ресурсов.[0042] After the BPs have been allocated, the
[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
[0044] После того, как задача пользователя выполнена, т.е. модуль 46 получил от выделенных BP результаты выполненной задачи, модуль 46 фиксирует время выполненной задачи и запускает счетчик, которым модуль 46 может быть оснащен, для отслеживания времени нахождения выделенных BP в режиме ожидания. Если по истечению заданного разработчиком интервала времени в модуль 46 не поступила дополнительная задача пользователя для упомянутых BP, то модуль 46 направляет на выделенные BP команду для выключения контейнера с запущенным ПО, после чего BP освобождаются. Информация об освобожденных ресурсах направляется модулем 46 в планировщик 31 для корректировки информации о свободных BP.[0044] After the user task is completed, i.e.
[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
[0046] Далее модуль 49 обращается к списку задач в очереди к контейнеру, предназначенному для выполнения задачи, запущенном при помощи BP, и определяет наличие по меньшей мере одной задачи пользователя в списке задач в очереди, после чего модуль 49 вносит в список информацию о новой задаче в соответствии с полученным от устройства 30 запросом. Дополнительно при постановке в очередь могут учитываться параметры, описывающие приоритет выполнения задачи.[0046] Next,
[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
[0048] Дополнительно модуль 49 может быть выполнен с возможностью, после определения наличия по меньшей мере одной или более задач пользователя в списке задач в очереди, направить запрос в планировщик 31 для проверки наличия свободных BP для запуска копии ПО для выполнения задачи пользователя. В альтернативном варианте модуль 49 после определения наличия по меньшей мере одной задачи пользователя в списке задач в очереди может направить запрос в планировщик 31 для определения времени выполнения задачи пользователя. Время выполнения задачи пользователя может быть определено планировщиком 31 широко известным методом, например, посредством анализа ранее выделенных BP при выполнении ими ранее аналогичных задач пользователя.[0048] Additionally,
[0049] На основе полученного от планировщика 31 времени выполнения задачи и времени начала выполнения задачи из очереди, которое также может быть зафиксировано известными методами после начала выполнения упомянутой задачи посредством BP, модуль 49 определяет прогнозируемое время выполнения задачи из очереди, после чего на основе прогнозируемого выполнения задачи из очереди и времени выполнения задачи пользователя, полученного о планировщика 31, модуль 49 определяет прогнозируемое время выполнения задачи пользователя, полученной от исполнительного устройства 40, т.е. текущей задачи. Прогнозируемое время выполнения текущей задачи сравнивается модулем 49 с допустимым временем выполнения текущей задачи, информация о которой может содержаться в полученном ранее запросе на выполнение задачи в соответствии с вводом пользователя.[0049] Based on the task execution time received from the
[0050] Если прогнозируемое время выполнения текущей задачи не выходит за границы значений допустимого времени выполнения текущей задачи, то модуль 49 может поставить текущую задачу в список задач в очереди.[0050] If the predicted execution time of the current task is within the acceptable execution time of the current task, then
[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
[0052] Далее модуль 49 направляет команду к выделенным BP для выполнения задачи пользователя посредством копии ПО, запущенного в контейнере, а результаты выполненной задачи, выделенные BP передают через модуль 46 в устройство 40 для их передачи в устройство 10 пользователя, либо в другое целевое место хранения (в виде сохранения на жесткие диски и формирование API-вызова к внешним системам). Таким образом, дополнительно повышается скорость выполнения задач пользователя и пропускная способность вычислительных ресурсов.[0052] Next,
[0053] После того, как задача пользователя выполнена, т.е. модуль 46 получил от выделенных BP результаты выполненной задачи, модуль 46 фиксирует время выполненной задачи и запускает счетчик, которым модуль 46 может быть оснащен, для отслеживания времени нахождения выделенных BP с запущенной копией ПО в режиме ожидания. Если по истечению заданного разработчиком интервала времени в модуль 46 не поступила дополнительная задача пользователя для упомянутых BP, то модуль 46 направляет на выделенные BP команду для выключения контейнера с запущенной копией ПО, после чего BP освобождаются. Информация об освобожденных ресурсах направляется модулем 46 в планировщик 31 для корректировки информации о свободных BP.[0053] After the user task is completed, i.e.
[0054] А альтернативном варианте реализации модуль 49 может быть выполнен с возможностью определения прогнозированного времени выполнения текущей задачи с использованием копии ПО, предназначенной для выполнения упомянутой задачи. Для этого модуль 49 запрашивает у планировщика 31 информацию о времени, которое требуется для развертывания контейнера с приложением с использованием BP. Упомянутое время развертывания контейнера может быть определено планировщиком 31 широко известным методом, например, посредством опроса выделенных BP при развертывании ими контейнера.[0054] In an alternative embodiment,
[0055] На основе времени развертывания контейнера и времени выполнения задачи модуль 49 определяет прогнозируемое время выполнения текущей задачи с использованием копии ПО. Далее устройство сравнивает упомянутое прогнозируемое время выполнения текущей задачи с полученным ранее прогнозируемым временем выполнения задачи пользователя, определенное с учетом прогнозируемого выполнения задачи из очереди.[0055] Based on the container deployment time and the task execution time,
[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
[0057] Также модулем 49 может быть определено, что прогнозируемое время выполнения текущей задачи, в частности текущей первой задачи, выходит за границы значений допустимого времени выполнения текущей задачи, при этом свободных BP недостаточно для запуска копии ПО для выполнения задачи пользователя. Далее модуль 49 может проанализировать списки очередей к контейнерам с запущенными копиями ПО для выполнения второй задачи для поиска контейнера без очереди или с минимальным количеством задач в очереди, после чего модуль 49 может направить команду на упомянутый контейнер без очереди или с минимальным количеством задач в очереди для остановки его работы и высвобождения BP, которые были выделены для запуска ПО с использованием данного контейнера с целью запуска текущей задачи или другой задачи с использованием этих BP (более приоритетной или выполняемой с большим временем ожидания).[0057] It can also be determined by
[0058] Дополнительно при постановке задачи в очередь модуль 49 может учитывать значения допустимого времени выполнения задач для того, чтобы все задачи в очереди были выполнены согласно значениям допустимого времени их выполнения.[0058] Additionally, when queuing a task,
[0059] В альтернативном варианте реализации модуль 49 может отслеживать количество задач, в частности первых задач, в списке задач в очереди к каждому контейнеру, и если количество задач в списке превысит заданное пороговое значение, то модуль 49 может описанным ранее способом проанализировать списки очередей к контейнерам с запущенными копиями ПО для выполнения второй задачи для поиска контейнера без очереди или с минимальным количеством задач в очереди, после чего модуль 49 может направить команду на упомянутый контейнер без очереди или с минимальным количеством задач в очереди для остановки его работы и высвобождения BP, которые были выделены для запуска ПО с использованием данного контейнера с целью запуска текущей задачи или другой задачи на этих BP (более приоритетной или выполняемой с большим временем ожидания)..[0059] In an alternative implementation,
[0060] Соответственно, как только BP освобождаются, модуль 49 инициирует развертывание контейнера для запуска в нем копии ПО с помощью выделенных BP для выполнения текущей задачи описанным ранее способом. Задачи в списке очереди к контейнеру, работа которого была остановлена, могут быть распределены модулем 49 среди других контейнеров. Таким образом, дополнительно повышается скорость выполнения задач пользователя и пропускная способность вычислительных ресурсов.[0060] Accordingly, as soon as the BPs are released,
[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)
Publications (1)
Publication Number | Publication Date |
---|---|
RU2818490C1 true RU2818490C1 (en) | 2024-05-02 |
Family
ID=
Citations (6)
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)
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 |