WO2024125251A1 - 资源分配的方法及装置 - Google Patents
资源分配的方法及装置 Download PDFInfo
- Publication number
- WO2024125251A1 WO2024125251A1 PCT/CN2023/133357 CN2023133357W WO2024125251A1 WO 2024125251 A1 WO2024125251 A1 WO 2024125251A1 CN 2023133357 W CN2023133357 W CN 2023133357W WO 2024125251 A1 WO2024125251 A1 WO 2024125251A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- task
- resource
- scale
- tasks
- resource allocation
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Ceased
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5038—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5044—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering hardware capabilities
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5066—Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/501—Performance criteria
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5017—Task decomposition
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5019—Workload prediction
Definitions
- Embodiments of the present application relate to the field of data processing technology, and more specifically, to a method and device for resource allocation.
- Computing resource allocation is one of the important factors that affect the performance of a task.
- the computing resource allocation plan is determined based on a general algorithm.
- the general algorithm cannot perceive the characteristics of the task, that is, it cannot allocate computing resources according to the characteristics of different tasks, and it is difficult to achieve the best match between tasks and computing resources.
- the computing resource allocation plan is determined by the user, for example, the user specifies the computing resources required for the task, or the user customizes the computing resource allocation plan for the task.
- the method of manually determining the resource allocation plan has high requirements for the user, and this method is inefficient and difficult to meet the operation requirements.
- the embodiments of the present application provide a method and device for resource allocation, which is conducive to allocating more reasonable computing resources to multiple tasks, thereby improving the overall operating performance of multiple tasks.
- a method for resource allocation comprising: obtaining running performance data of each task among a plurality of tasks, the running performance data of each task among the plurality of tasks including the running performance of each task under a sample resource scale corresponding to each task; determining, based on the running performance data of each task among the plurality of tasks, the running performance of each task among the plurality of tasks when monopolizing a candidate resource scale corresponding to the plurality of tasks; and determining, based on the running performance of each task among the plurality of tasks when monopolizing a candidate resource scale corresponding to each task, a target resource corresponding to each task among the plurality of tasks.
- tasks can be analyzed based on the running performance data of multiple tasks to identify the behavioral characteristics of each task itself, for example, the running performance of each task when it monopolizes resources, and the target resources corresponding to each task in the multiple tasks can be determined based on the behavioral characteristics of the task itself, which is conducive to improving the matching degree between tasks and resources, thereby improving the overall running performance of the multiple tasks.
- the running performance of a task may include the running time of the task, the response delay of the task, the resource utilization of the task, or data collected by a hardware performance monitoring unit (PMU) counter.
- PMU hardware performance monitoring unit
- the running performance of a task under a resource scale may include at least one of the following: the running performance of the task when the resource scale is exclusively occupied; the running performance of the task when the resource scale is not exclusively occupied.
- the sample resource scale corresponding to each task may include one sample resource scale or multiple sample resource scales.
- sample resource sizes corresponding to different tasks can be the same or different.
- the resource may include a process resource.
- One unit resource may be one process.
- the resource scale may be the number of processes.
- the running performance data of at least one task among the multiple tasks includes the running performance of the at least one task under a sample resource scale that is not exclusive to the at least one task.
- the operating performance of the task when it monopolizes resources can be determined based on the operating performance of the task when it does not monopolize resources, reducing the restrictions on the operating performance data of the multiple tasks.
- the operating performance of multiple tasks obtained in the scheme of the embodiment of the present application can include both the operating performance when the task monopolizes resources and the operating performance when the task does not monopolize resources, which increases the amount of data of the acquired operating performance data and lays a data foundation for subsequent processing, thereby facilitating a more accurate analysis of the multiple tasks and achieving reasonable resource allocation.
- the target resource corresponding to each task includes one or more processes corresponding to each task, and the one or more processes are respectively bound to one or more resource slots.
- Slots and processor cores can be one-to-one. One or more processes are bound to one or more slots, which can also be understood as a One or more processes are respectively bound to one or more processor cores.
- the process allocation can be realized globally, that is, the slot allocation can be realized globally, which is conducive to obtaining the optimal resource allocation scheme.
- the scheme of the embodiment of the present application binds the process to the slot, realizes the refined computing power allocation, and does not require the secondary scheduling of the computing power node kernel, that is, there is no need for the computing power node to schedule the processor core for the process, avoiding the overhead caused by the secondary scheduling.
- the multiple processes are multiple continuous processes
- the multiple slots are multiple continuous slots
- the multiple slots being multiple consecutive slots means that the numbers of the multiple slots are consecutive.
- allocating continuous slots to each task is beneficial to reducing the communication cost during the execution of each task and further improving the running performance of the task.
- multiple tasks include a first task
- determining the operating performance of the first task when exclusively occupying a candidate resource scale corresponding to the first task based on the operating performance data of the first task includes: constructing a first performance model of the first task based on the operating performance data of the first task, wherein the first performance model of the first task is used to predict the operating performance of the first task when exclusively occupying a resource scale input into the performance model of the first task; determining the operating performance of the first task when exclusively occupying a first candidate resource scale corresponding to the first task based on the first performance model of the first task, and the candidate resource scale corresponding to the first task includes the first candidate resource scale corresponding to the first task.
- the first task may be any one of the multiple tasks.
- performance modeling of the task is performed through the running performance data of the task, which is conducive to accurate performance analysis of the task, thereby providing a basis for the reasonable allocation of subsequent computing resources.
- the plurality of tasks include a second task, and determining the operating performance of the second task in a case where the candidate resource scale corresponding to the second task is exclusively occupied according to the operating performance data of the second task includes: determining the operating performance of the second task in a case where the second candidate resource scale corresponding to the second task is exclusively occupied according to the fluctuation coefficient model of the second task and the operating performance data of the second task.
- the candidate resource scale corresponding to the second task includes the second candidate resource scale corresponding to the second task.
- the operating performance data of the second task includes the operating performance of the second task under the sample resource allocation scheme corresponding to the second task.
- the second candidate resource scale is the sample resource scale indicated by the sample resource allocation scheme corresponding to the second task.
- the fluctuation coefficient model of the second task is used to predict the fluctuation coefficient of the second task corresponding to the resource allocation scheme input to the fluctuation coefficient model of the second task.
- the fluctuation coefficient of the second task corresponding to the sample resource allocation scheme corresponding to the second task is used to indicate the difference between the operating performance of the second task under the sample resource allocation scheme corresponding to the second task and the operating performance of the second task in a case where the sample resource allocation scheme corresponding to the second task is exclusively occupied.
- the performance inversion of the running performance data of the task under the sample resource allocation scheme is performed based on the fluctuation coefficient of the task to predict the running performance of the task when it monopolizes resources, which is conducive to realizing accurate performance analysis of each task, thereby providing a basis for the subsequent reasonable allocation of computing resources.
- the candidate resource scale corresponding to each task is a partial resource scale among the candidate resource scales corresponding to each task, and the partial resource scale among the candidate resource scales corresponding to each task and the operating performance of each task when exclusively occupying the partial resource scale among all candidate resource scales corresponding to each task meet the first preset condition.
- part of the resource scale can be determined from the candidate resource scale based on the first preset condition, reducing the number of combinations of the candidate resource scales, that is, reducing the search space in the subsequent target resource allocation process, which is conducive to improving the efficiency of resource allocation.
- the part of the resource scale is determined based on the running performance of the task when the task exclusively occupies the resource scale corresponding to the task and the resource scale, which is conducive to avoiding allocating too many resources to the task in the subsequent resource allocation, thereby causing resource waste.
- the first preset condition includes: the ratio of the operating performance of each task when monopolizing part of the resource scale in the candidate resource scale corresponding to each task and the part of the resource scale in the candidate resource scale corresponding to each task is greater than or equal to a first threshold, and the first threshold is the threshold of the task's utilization efficiency of the resource scale.
- the scale of this part of resources can be determined based on the ratio between the running performance of the task when it monopolizes the resource scale corresponding to the task, that is, the resource efficiency of the task, and the candidate resource scale corresponding to the higher resource efficiency is used as the candidate resource scale of this part, so as to avoid allocating too many resources to the task in the subsequent resource allocation, thereby causing resource waste.
- determining the target resource corresponding to each of the multiple tasks according to the running performance of each of the multiple tasks when the target resource scale corresponding to each task is exclusively occupied includes: determining the target candidate resource allocation scheme under multiple resource scale combinations according to the running performance of each of the multiple tasks when the target resource scale corresponding to each task is exclusively occupied by a part of the candidate resource scale corresponding to each task, wherein the multiple resource scale combinations are based on the part of the candidate resource scale corresponding to each task.
- a combination of resource scales is determined, and a target candidate resource allocation scheme under each resource scale combination among multiple resource scale combinations indicates a target candidate resource corresponding to each of multiple tasks under each resource scale combination; a fluctuation coefficient of multiple tasks corresponding to the target candidate resource allocation scheme under each resource scale combination among multiple resource scale combinations is determined, and the fluctuation coefficient of multiple tasks corresponding to the target candidate resource allocation scheme under each resource scale combination is respectively used to indicate the difference between the running performance of multiple tasks executed in parallel under the target candidate resource allocation scheme under each resource scale combination and the running performance of multiple tasks when the resource scale corresponding to each task in each resource scale combination is exclusively occupied; the running performance of multiple tasks executed in parallel under the target candidate resource allocation scheme under each resource scale combination is predicted according to the fluctuation coefficient of multiple tasks corresponding to the target candidate resource allocation scheme under each resource scale combination; and the target resource corresponding to each of multiple tasks is determined from the target candidate resource allocation schemes under the multiple resource scale combinations according to the running performance of multiple tasks executed in parallel under the target candidate resource allocation schemes under the multiple resource scale combinations.
- the target candidate resource allocation scheme under each resource scale combination is determined based on the operating performance when multiple tasks monopolize resources, and the fluctuation coefficient of each task is calculated based on the target candidate resource allocation scheme, so as to determine the operating performance of the multiple tasks when executed in parallel, and then determine the target resource corresponding to each task in the multiple tasks.
- the target candidate resource allocation scheme under each resource scale combination is determined based on the operating performance when multiple tasks monopolize resources, and the fluctuation coefficient of each task is calculated based on the target candidate resource allocation scheme, so as to determine the operating performance of the multiple tasks when executed in parallel, and then determine the target resource corresponding to each task in the multiple tasks.
- the scheme of the embodiment of the present application restores the operating performance of each task when executed in parallel based on the fluctuation coefficient, which is more in line with the actual operating conditions, and is conducive to improving the prediction accuracy of the overall performance, thereby further improving the rationality of resource allocation.
- target candidate resource allocation schemes under multiple resource scale combinations are determined according to the operating performance of each task among the multiple tasks when it exclusively occupies a portion of the resource scale among the candidate resource scales corresponding to each task, including: determining the target candidate resource allocation scheme under each resource scale combination from the candidate resource allocation schemes under each resource scale combination according to the operating performance of each task among the multiple tasks when it exclusively occupies a portion of the resource scale among the candidate resource scales corresponding to each task, the candidate resources corresponding to each task indicated by the candidate resource allocation schemes under each group of resource scale combinations are continuous, and the overall operating performance of the multiple tasks under the target candidate resource allocation scheme under each resource scale combination when they exclusively occupy the resource scale corresponding to each task in each resource scale combination is better than the overall operating performance of the multiple tasks under other candidate resource allocation schemes under each resource scale combination when they exclusively occupy the resource scale corresponding to each task in each resource scale combination.
- the fluctuation coefficients of multiple tasks corresponding to the target candidate resource allocation schemes under each resource scale combination in multiple resource scale combinations are determined, including: constructing fluctuation coefficient models for multiple tasks based on the operating performance data of the multiple tasks, the fluctuation coefficient models for the multiple tasks are respectively used to predict the fluctuation coefficients of the multiple tasks corresponding to the resource allocation schemes input into the fluctuation coefficient models of the multiple tasks; and determining the fluctuation coefficients of the multiple tasks corresponding to the target candidate resource allocation schemes under each resource scale combination in the multiple resource scale combinations according to the fluctuation coefficient models of the multiple tasks.
- the multiple tasks include tasks corresponding to multiple applications, and each application in the multiple applications corresponds to one task.
- the multiple tasks include tasks corresponding to multiple functional modules in an application, and each of the multiple functional modules corresponds to one task.
- a resource allocation device comprising an acquisition unit for acquiring operating performance data of each of a plurality of tasks, wherein the operating performance data of each of the plurality of tasks includes the operating performance of each task under a sample resource scale corresponding to each task; a processing unit for: determining, based on the operating performance data of each of the plurality of tasks, the operating performance of each of the plurality of tasks when the scale of candidate resources corresponding to each task is exclusively occupied; and determining, based on the operating performance of each of the plurality of tasks when the scale of candidate resources corresponding to each task is exclusively occupied, a target resource corresponding to each of the plurality of tasks.
- the target resource corresponding to each task includes one or more processes corresponding to each task, and the one or more processes are respectively bound to one or more slots.
- the multiple processes are multiple continuous processes
- the multiple slots are multiple continuous slots
- the multiple tasks include a first task
- the processing unit is specifically used to: construct a first performance model of the first task based on the running performance data of the first task, wherein the first performance model of the first task is used to predict the running performance of the first task when the resource scale of the performance model of the first task is exclusively input; determine the running performance of the first task when the first candidate resource scale corresponding to the first task is exclusively occupied according to the first performance model of the first task, and the candidate resource scale corresponding to the first task includes the first candidate resource scale corresponding to the first task.
- the processing unit is specifically configured to: the candidate resource scale corresponding to each task is a partial resource scale among all candidate resource scales corresponding to each task, and the partial resource scale among all candidate resource scales corresponding to each task is The running performance of each task in the case of monopolizing a part of the candidate resource scales corresponding to each task satisfies the first preset condition.
- the first preset condition includes: the ratio of the operating performance of each task when monopolizing part of the resource scale in the candidate resource scale corresponding to each task and the part of the resource scale in the candidate resource scale corresponding to each task is greater than or equal to a first threshold, and the first threshold is the threshold of the task's utilization efficiency of the resource scale.
- the processing unit is specifically used to: determine the target candidate resource allocation schemes under multiple resource scale combinations according to the operating performance of each task in the case of monopolizing a portion of the resource scale in the candidate resource scale corresponding to each task, the multiple resource scale combinations are determined based on the combination of the portion of the resource scale in the candidate resource scale corresponding to each task, and the target candidate resource allocation scheme under each resource scale combination in the multiple resource scale combinations indicates the target candidate resource corresponding to each task in the multiple tasks under each resource scale combination; determine the fluctuation coefficients of the multiple tasks corresponding to the target candidate resource allocation schemes under each resource scale combination in the multiple resource scale combinations, and the target candidate resource allocation scheme under each resource scale combination indicates the target candidate resource corresponding to each task in the multiple tasks under each resource scale combination.
- the fluctuation coefficients of the multiple tasks corresponding to the selected resource allocation scheme are respectively used to indicate the difference between the running performance of the multiple tasks executed in parallel under the target candidate resource allocation scheme under each resource scale combination and the running performance of the multiple tasks when the resource scale corresponding to each task in each resource scale combination is exclusively occupied; the running performance of the multiple tasks executed in parallel under the target candidate resource allocation scheme under each resource scale combination is predicted according to the fluctuation coefficients of the multiple tasks corresponding to the target candidate resource allocation scheme under each resource scale combination; the target resource corresponding to each task in the multiple tasks is determined from the target candidate resource allocation schemes under multiple resource scale combinations according to the running performance of the multiple tasks executed in parallel under the target candidate resource allocation schemes under multiple resource scale combinations.
- the processing unit is specifically used to: determine the target candidate resource allocation scheme under each resource scale combination from the candidate resource allocation schemes under each resource scale combination according to the operating performance of each task in the case of exclusively occupying a part of the resource scale among the candidate resource scales corresponding to each task, the candidate resources corresponding to each task indicated by the candidate resource allocation schemes under each group of resource scale combinations are continuous, and the overall operating performance of the multiple tasks in the case of exclusively occupying the resource scale corresponding to each task in each resource scale combination under the target candidate resource allocation scheme under each resource scale combination is better than the overall operating performance of the multiple tasks in the case of exclusively occupying the resource scale corresponding to each task in each resource scale combination under other candidate resource allocation schemes under each resource scale combination.
- the processing unit is specifically used to: construct fluctuation coefficient models for multiple tasks based on the operating performance data of multiple tasks, the fluctuation coefficient models for multiple tasks are respectively used to predict the fluctuation coefficients of multiple tasks corresponding to the resource allocation schemes input into the fluctuation coefficient models of multiple tasks; and determine the fluctuation coefficients of multiple tasks corresponding to the target candidate resource allocation schemes under each resource scale combination in multiple resource scale combinations according to the fluctuation coefficient models of multiple tasks.
- the multiple tasks include tasks corresponding to multiple applications, and each application in the multiple applications corresponds to one task.
- the multiple tasks include tasks corresponding to multiple functional modules in an application, and each of the multiple functional modules corresponds to one task.
- a device for resource allocation comprising a processor and a memory, and optionally, an input/output interface, wherein the processor is used to control the input/output interface to send and receive information, the memory is used to store a computer program, and the processor is used to call and run the computer program from the memory, so that the device executes the method described in the first aspect or any possible implementation of the first aspect.
- the processor may be a general-purpose processor, which may be implemented by hardware or software.
- the processor may be a logic circuit, an integrated circuit, etc.; when implemented by software, the processor may be a general-purpose processor, which is implemented by reading software code stored in a memory, which may be integrated in the processor or located outside the processor and exist independently.
- a computing device cluster comprising at least one computing device, each computing device comprising a processor and a memory.
- the processor of at least one computing device is used to execute instructions stored in the memory of at least one computing device, so that the computing device cluster executes the method in the first aspect and any one of the implementations of the first aspect.
- a computer-readable medium comprising computer program instructions.
- the computing device cluster executes the method in the first aspect and any one of the implementations of the first aspect.
- a computer program product comprising instructions.
- the computing device cluster executes the method in the above-mentioned first aspect and any one of the implementations of the first aspect.
- these computer readable storages include, but are not limited to, one or more of the following: read-only memory (ROM), programmable ROM (PROM), erasable PROM (EPROM), Flash memory, electrically EPROM (EEPROM), and hard drive.
- ROM read-only memory
- PROM programmable ROM
- EPROM erasable PROM
- Flash memory electrically EPROM (EEPROM)
- hard drive electrically EPROM
- the above-mentioned storage medium may specifically be a non-volatile storage medium.
- FIG1 is a schematic diagram of different levels of computing resource allocation.
- FIG. 2 is a schematic diagram of a method for allocating computing resources.
- FIG3 is a schematic diagram of a method for allocating computing resources according to an embodiment of the present application.
- FIG4 is a schematic block diagram of a resource allocation device according to an embodiment of the present application.
- FIG5 is a schematic flowchart of a resource allocation method according to an embodiment of the present application.
- FIG6 is a schematic flowchart of another resource allocation method according to an embodiment of the present application.
- FIG. 7 is a schematic diagram of a processing flow of a performance matrix according to an embodiment of the present application.
- FIG8 is a schematic diagram of a processing flow of a box packing algorithm according to an embodiment of the present application.
- FIG. 9 is a schematic diagram of a resource allocation scheme according to an embodiment of the present application.
- FIG. 10 is a schematic diagram of another resource allocation solution according to an embodiment of the present application.
- FIG. 11 is a schematic block diagram of a resource allocation device according to an embodiment of the present application.
- FIG. 12 is a schematic block diagram of a computing device according to an embodiment of the present application.
- FIG. 13 is a schematic block diagram of a computing device cluster according to an embodiment of the present application.
- FIG. 14 is a schematic block diagram of a connection relationship between computing devices according to an embodiment of the present application.
- references to "one embodiment” or “some embodiments” etc. described in this specification mean that a particular feature, structure or characteristic described in conjunction with the embodiment is included in one or more embodiments of the present application.
- the phrases “in one embodiment”, “in some embodiments”, “in some other embodiments”, “in some other embodiments”, etc. appearing in different places in this specification do not necessarily all refer to the same embodiment, but mean “one or more but not all embodiments", unless otherwise specifically emphasized in other ways.
- the terms “including”, “comprising”, “having” and their variations all mean “including but not limited to”, unless otherwise specifically emphasized in other ways.
- At least one means one or more
- plural means two or more.
- “And/or” describes the association relationship of associated objects, indicating that three relationships may exist.
- a and/or B can mean: including the existence of A alone, the existence of A and B at the same time, and the existence of B alone, where A and B can be singular or plural.
- the character “/” generally indicates that the previous and next associated objects are in an “or” relationship.
- “At least one of the following” or similar expressions refers to any combination of these items, including any combination of single or plural items.
- At least one of a, b, or c can mean: a, b, c, a-b, a-c, b-c, or a-b-c, where a, b, c can be single or multiple.
- Parallel applications refer to the parallel execution of different functional components within an application.
- the component can also be Process different data to achieve parallelism within components.
- Parallel applications are conducive to the rational use of computing resources, thereby improving the operating performance of applications.
- an application can be abstracted into an expanded computational graph, which is clustered into several clusters, or can also be called a functional module.
- Each functional module can be used to implement a certain part of the application's functions. Different functional modules can be executed simultaneously.
- a module may also be referred to as a functional module, a component, a functional component or a component module.
- the communication within the module is relatively close, while the communication between modules is relatively sparse.
- the execution of an application can be abstracted as the allocation of tasks on computing resources and the maintenance of task execution.
- Parallel applications can decompose an application into multiple subtasks, which can be assigned to different processors. Different processors can process the multiple subtasks simultaneously, thereby speeding up the execution of the application.
- the performance matrix of an application can be used to represent the performance of different functional modules in the application under different resource allocation schemes.
- the performance matrix can be used to represent the time required for different functional modules to run under different resource allocation schemes.
- the multiple tasks may be multiple applications.
- the solution of the embodiment of the present application can be used to allocate resources to the multiple applications.
- one or more users can submit multiple job tasks to the computing system, and the system manages and runs these tasks in a unified manner.
- the computing system can be called a batch job processing system or a batch processing system.
- the solution of the embodiment of the present application can be applied to the batch processing system to allocate computing resources to the multiple job tasks.
- multiple users submit multiple job tasks. These multiple job tasks have the characteristics of consuming a lot of computing power, long running time, and high parallelism.
- the multiple job tasks can be deployed to limited computing nodes (such as one computing node) as much as possible.
- the solution of the embodiment of the present application can deploy these multiple job tasks to the specified computing nodes, while optimizing the overall operating performance of the multiple job tasks, for example, the overall running time of the multiple job tasks.
- multiple users submit multiple job tasks.
- the resources that can be allocated to the multiple job tasks in the current system are limited.
- the solution of the embodiment of the present application can allocate corresponding resources to the multiple job tasks from the limited resources, while optimizing the overall performance of the multiple job tasks, for example, the overall running time of the multiple job tasks.
- the multiple tasks may be multiple subtasks of a parallel application.
- the solution of the embodiment of the present application may be applied to a resource allocation scenario of a parallel application, and is used to allocate computing resources to multiple subtasks of a parallel application.
- the solution of the embodiments of the present application can be applied to parallel application scenarios such as scientific computing or high performance computing (HPC).
- HPC high performance computing
- the solution of the embodiments of the present application is particularly suitable for large-scale parallel application scenarios, for example, large-scale scientific computing, big data processing, large-scale graph computing and other parallel application scenarios.
- the community earth system model is one of the applications of high-performance computing and can be used to simulate long-term climate change.
- the system is composed of modules responsible for various subsystems that are coupled to each other.
- the subsystems include atmosphere (ATM), ocean (OCN), sea ice (ICE), land (LND), river runoff (ROF), land ice (GLC), ocean wave (WAV), coupler (CPL), etc.
- Modules can exchange data through multipoint interface (MPI).
- MPI multipoint interface
- the operation performance of the coupled mode is an important indicator for measuring HPC performance.
- Computing resource allocation is an important factor in improving the performance of tasks.
- Figure 1 shows a schematic diagram of different levels of computing resource allocation.
- Computing resource allocation for parallel applications usually considers four levels: application layer, data layer, system execution layer, and hardware computing layer.
- the application layer abstracts multiple functional modules from a functional perspective.
- the multiple functional modules correspond to multiple tasks respectively.
- the multiple tasks can be processed in parallel, that is, task parallelism.
- There may be interactive relationships such as communication, cooperation, and dependence between multiple functional modules.
- the data layer divides the processing data of a single functional module into multiple groups from a data perspective.
- the multiple groups of data can be processed in parallel, that is, data parallelism.
- the system execution layer includes execution abstractions provided by the operating system, such as execution abstractions such as processes or threads, which are used to carry and run specific functional modules to process specific data groups. Multiple processes can be processed in parallel, that is, process parallelism.
- the hardware computing power layer includes hardware units that are specifically responsible for program execution, that is, computing resources, such as the CPU shown in Figure 1.
- computing resources such as the CPU shown in Figure 1.
- One or more execution abstractions in the system execution layer are mapped to computing resources, thereby ultimately completing the allocation of computing power resources.
- the parallelism of the system execution layer is computing power. parallel.
- computing resource allocation strategies are usually determined based on general algorithms or by users.
- general algorithms cannot perceive the characteristics of tasks, that is, they cannot allocate computing resources according to the characteristics of different tasks, making it difficult to achieve the best match between tasks and computing resources.
- the method of manually determining resource allocation solutions has high requirements for users, and this method is inefficient and difficult to meet operational requirements.
- FIG2 shows a schematic flow chart of a method for allocating computing resources.
- the client interface obtains the user's job requirements.
- the computing resource management system generates a waiting queue based on the user's job requirements, and then allocates computing nodes to multiple tasks in the waiting queue.
- the system can determine the computing resource allocation strategy through a general algorithm.
- the user can indicate the computing resource allocation strategy through commands or plug-ins.
- the system executes the computing resource allocation strategy to implement node allocation. For example, the user can specify different computing resource allocation strategies for different applications or customize the computing resource allocation strategy according to different applications, thereby improving the adaptability of the computing resource allocation strategy to the application.
- the system sends multiple task instances to the computing node based on the computing resource allocation strategy, and the operating system (OS) in the computing node implements the scheduling and calculation of each task instance.
- the operating system in the computing node schedules the processor in the computing node to calculate each task instance, or in other words, the operating system in the computing node allocates a processor (such as the CPU in FIG2) to each task instance, thereby implementing the calculation of each task instance.
- the computing resource allocation strategy determined based on the general framework cannot perceive the behavioral characteristics of the application, and it is difficult to achieve the best match between the application and the underlying computing resources. If the running performance of the application is to be further improved, it is necessary to manually specify the computing resource allocation strategy or manually formulate the computing resource allocation strategy, which is inefficient and has high requirements on users.
- an embodiment of the present application provides a method for resource allocation, which is conducive to allocating more reasonable computing resources to multiple tasks, thereby improving the overall operating performance of multiple tasks.
- FIG3 shows a schematic flowchart of a method for allocating computing resources according to an embodiment of the present application.
- the client interface can obtain the user's job requirements.
- the computing resource management system generates a waiting queue based on the user's job requirements, and then allocates resources to multiple tasks in the waiting queue.
- the system performs data collection operations to obtain the operating performance data of multiple tasks. Based on the operating performance data of multiple tasks, the multiple tasks are analyzed for performance, and resource allocation is implemented according to the results of the performance analysis.
- the system can perform resource allocation globally to achieve fine-grained resource allocation, for example, as shown in FIG3, to achieve CPU-level computing power allocation.
- the system can allocate task instances to corresponding processors. Compared with FIG2, there is no need for computing power nodes to schedule processors to implement task instances, avoiding the overhead caused by secondary scheduling.
- the granularity of resource allocation in FIG3 is only an example, and the granularity of resource allocation can also be other granularities.
- the CPU is used as a processor in FIG3 for example only, and does not limit the solution of the embodiment of the present application. In other implementations, other processors can also be used.
- Fig. 4 shows a schematic block diagram of a resource allocation device 400 provided in an embodiment of the present application.
- the resource allocation device 400 can be deployed in the computing power resource management system shown in Fig. 3 .
- the resource allocation apparatus 400 may include an information collector 410 , a data fusion unit 420 , an application analyzer 430 , and a resource allocator 440 .
- a waiting queue may be generated based on the job tasks submitted by the user.
- the resource allocation device 400 may allocate computing resources to multiple tasks in the waiting queue.
- the information collector 410 is used to obtain the information of the multiple tasks and the information of available resources.
- the information collector 410 can also be used to obtain user information.
- the data fusion unit 420 is used to obtain the operating performance data of the multiple tasks.
- the application analyzer 430 is used to analyze the performance characteristics of the multiple tasks based on the running performance data of the multiple tasks.
- the application analyzer 430 may be used to predict the running performance of the multiple tasks when they monopolize resources based on the running performance data of the multiple tasks.
- the resource allocator 440 is used to predict the overall running performance of the multiple tasks under different resource allocation schemes according to the performance characteristics of the multiple tasks, so as to determine a target resource allocation scheme.
- the task instance can be allocated to the corresponding target resource for processing.
- the target resource allocation scheme may be used to indicate processes corresponding to the multiple tasks.
- the processes may be bound to hardware processing units.
- task instances can be assigned to corresponding hardware units.
- the resource allocation device 400 is exemplarily described below by taking the multiple tasks as multiple subtasks of a parallel application as an example.
- a waiting queue may be generated based on the application submitted by the user.
- the multiple tasks in the waiting queue include multiple subtasks corresponding to the application.
- the resource allocation device 400 may allocate computing resources to the multiple tasks in the waiting queue.
- the information collector 410 is used to obtain relevant information of the application, including information of multiple tasks and available resources of the application.
- the information collector 410 can also be used to obtain user information.
- the data fusion unit 420 is used to obtain the operation performance data of the multiple application instances of the application.
- the operation performance data of the multiple application instances includes the operation performance data of the multiple tasks.
- the application analyzer 430 is used to analyze the performance characteristics of the application based on the running performance data of the multiple application instances.
- the application analyzer 430 may be used to predict the running performance of the multiple tasks when they monopolize resources based on the running performance data of the multiple application instances.
- the resource allocator 440 is used to predict the overall operating performance of the application under different resource allocation schemes according to the performance characteristics of the application, so as to determine a target resource allocation scheme.
- the task instance can be allocated to the corresponding target resource for processing.
- Fig. 5 shows a schematic flow chart of a method for resource allocation provided in an embodiment of the present application.
- the method 500 shown in Fig. 5 can be performed by a resource allocation device.
- the method shown in Fig. 5 can be performed by the device 400 shown in Fig. 4.
- method 500 includes the following steps.
- the running performance data of each task in the plurality of tasks includes the running performance of each task under the sample resource scale corresponding to each task.
- step 530 can be understood as determining a target resource allocation scheme according to the running performance of the multiple tasks when the multiple tasks exclusively occupy the candidate resource scales corresponding to the multiple tasks.
- the target resource allocation scheme is used to indicate the target resource corresponding to each of the multiple tasks.
- tasks can be analyzed based on the running performance data of multiple tasks to identify the behavioral characteristics of each task itself, for example, the running performance of each task when it monopolizes resources, and the target resources corresponding to each task in the multiple tasks can be determined based on the behavioral characteristics of the task itself, which is conducive to improving the matching degree between tasks and resources, thereby improving the overall running performance of the multiple tasks.
- method 500 may further include step 501 (not shown in the figure).
- step 501 may be performed by the information collector 410 in FIG. 4 .
- the information of the plurality of tasks may be used to indicate the plurality of tasks or the number of the plurality of tasks.
- the information of available resources may be used to indicate the available resources or the scale of available resources.
- the information of available resources may be represented by hardware parameters.
- the scale of available resources may be the number of available computing nodes.
- the computing power node may be a terminal device.
- the computing power node may be a server.
- the size of the available resources may be the number of available processors.
- the processor may include any one or more of a central processing unit (CPU), a graphics processing unit (GPU), or a digital signal processor (DSP).
- CPU central processing unit
- GPU graphics processing unit
- DSP digital signal processor
- the scale of available resources may be the number of available processor cores.
- a processor is a CPU and a processor core is a CPU core.
- the method 500 may further include: obtaining other information related to resource allocation of the multiple tasks, such as information of users who submitted the multiple tasks.
- the multiple tasks include tasks corresponding to multiple applications.
- the multiple tasks and the multiple applications may correspond one to one, that is, each application may correspond to one task.
- the plurality of applications may be indicated by at least one user.
- the multiple tasks may include a compression task submitted by user #1 and a data processing task and a compression task submitted by user #2, that is, the multiple tasks may include two compression tasks and one data processing task.
- One or more users can submit multiple job tasks to the computing system, and the system will manage and run these tasks.
- the computing system can be called a batch job processing system or a batch processing system.
- the solution of the embodiment of the present application can be applied to the resource allocation scenario of the batch processing system to allocate computing resources to the multiple job tasks.
- the multiple tasks include tasks corresponding to multiple functional modules in an application.
- the multiple tasks may include multiple subtasks of an application.
- Each functional module corresponds to a task.
- the application is a parallel application.
- the multiple tasks may include tasks corresponding to the functional modules responsible for ATM, OCN, and ICE in the CESM.
- a user may submit an application task to a computing system, and the application is a parallel application.
- the solution of the embodiment of the present application may be applied to a resource allocation scenario of a parallel application, and is used to allocate computing resources to multiple subtasks of a parallel application.
- the specific description of the application of the solution of the embodiment of the present application to the resource allocation scenario of a parallel application may refer to method 600 in the following text.
- the multiple tasks may include tasks corresponding to application #1 and tasks corresponding to multiple functional modules in application #2, application #1 may be a non-parallel application, and application #2 may be a parallel application.
- the running performance of a task may include the running time of the task, the response delay of the task, the resource utilization of the task, or data collected by a hardware performance monitoring unit (PMU) counter.
- PMU hardware performance monitoring unit
- the running performance of a task under a resource scale may include at least one of the following: the running performance of the task when the resource scale is exclusively occupied; the running performance of the task when the resource scale is not exclusively occupied.
- the situation where the task exclusively occupies the resource scale refers to the situation where the resources allocated to the task are exclusively occupied by the task.
- the situation that the task does not exclusively occupy the resource scale refers to the situation that at least part of the resources allocated to the task are shared with other tasks, that is, the task is executed in parallel with other tasks that share at least part of the resources with the task.
- a task monopolizes the scale of resources corresponding to the task, which can be understood as only executing the task on the resources corresponding to the task.
- a task does not monopolize the scale of resources corresponding to the task, which can be understood as executing the task and other tasks simultaneously on the resources corresponding to the task.
- the task and other tasks compete for the resources corresponding to the task.
- the scale of resources corresponding to the task that is monopolized by a task is referred to as the task's exclusive resources
- the scale of resources corresponding to the task that is not monopolized by a task is referred to as the task's non-exclusive resources or the task's non-exclusive resources.
- the running performance data of at least one task among the multiple tasks includes the running performance of the at least one task under the condition of non-exclusive sample resource scale corresponding to the at least one task.
- the operating performance of the task when it monopolizes resources can be determined based on the operating performance of the task when it does not monopolize resources, reducing the restrictions on the operating performance data of the multiple tasks.
- the operating performance of multiple tasks obtained in the scheme of the embodiment of the present application can include both the operating performance when the task monopolizes resources and the operating performance when the task does not monopolize resources, which increases the amount of data of the acquired operating performance data and lays a data foundation for subsequent processing, thereby facilitating a more accurate analysis of the multiple tasks and achieving reasonable resource allocation.
- step 510 may include: obtaining operation performance data of multiple application instances of the application.
- the operation performance data of the multiple application instances includes the operation performance data of the multiple tasks.
- the running performance data of each application instance may include running performance data of part or all of the multiple tasks.
- the sample resource scale corresponding to each task may include one sample resource scale or multiple sample resource scales.
- the running performance data of each task includes the running performance of the task under at least one sample resource scale.
- sample resource sizes corresponding to different tasks can be the same or different.
- the following is an exemplary description of a method for determining the sample resource scale corresponding to a task.
- the sample resource scale corresponding to the task may be determined by the user.
- sample resource scale corresponding to the task may be randomly generated.
- the sample resource scale corresponding to the task may be generated based on a default resource scale corresponding to the task.
- the default resource scale corresponding to a task may be a resource scale pre-set for the task.
- the default resource scale corresponding to a task may be determined based on a general algorithm.
- the sample resource scale corresponding to a task may include a default resource scale corresponding to the task and a resource scale selected from resource scales surrounding the default resource scale.
- the resource scale surrounding the default resource scale may be a resource scale whose difference with the default resource scale is less than or equal to a scale threshold. For example, if the default resource scale is 5 processes and the scale threshold is 3, then the resource scale surrounding the default resource scale is a resource scale within the range of [2,8], from which part or all are selected and used together with the default resource scale as the sample resource scale.
- the scale threshold may be a pre-set fixed value. Alternatively, the scale threshold may also be a value determined according to the default resource scale. This is not limited in the embodiments of the present application.
- sample resource scale corresponding to the task can also be determined by other methods.
- the methods for determining the corresponding sample resource scales may be the same or different.
- resources may also be referred to as computing power, computing power resources or computing resources.
- the resource may include a process resource.
- One unit resource may be one process.
- the resource scale may be the number of processes.
- the resource allocation scheme is used to indicate the resources corresponding to the task, that is, the resources allocated to the task.
- the resource allocation schemes are different under different resource scales.
- the running performance data of each task includes the running performance of the task under at least one sample resource scale, which can be understood as follows.
- the running performance data of each task includes the running performance of the task under at least one sample resource allocation scheme, and the resource scale corresponding to the task indicated by the at least one sample resource allocation scheme includes at least one resource scale.
- the resources indicated by the sample resource allocation scheme for the task may be continuous.
- the processes indicated by the sample resource allocation scheme for the task may be continuous.
- the processes allocated to the task may be represented by the ID of the starting process allocated to the task and the ID of the terminating process.
- the processes allocated to the task may be represented by the ID of the starting process allocated to the task and the number of processes allocated to the task.
- the processes allocated to the task may also be represented by other parameters.
- step 510 may be performed by the data fuser 420 in FIG. 4 .
- the following is an exemplary description of a method for obtaining the running performance data of a task.
- the operation performance data of the task is obtained from the historical operation data of the task.
- the operation data under the sample resource scale corresponding to the task is collected from the historical operation data of the task.
- the running performance data of the task is obtained from monitoring data of the running task instance.
- the running performance of the task instance can be obtained from the monitoring data as the running performance data of the task.
- the task is pre-executed at a sample resource scale corresponding to the task.
- Resources are allocated to the task based on the sample resource scale corresponding to the task, the task is pre-executed for a period of time under the resources, and the running performance data of the task is obtained from the monitoring data.
- the running performance data of a task can be obtained by any one of the above methods, or by a combination of the above methods. For example, for different sample resource scales corresponding to a task, the corresponding running performance can be collected by different methods.
- the methods for obtaining the running performance data of different tasks may be the same or different.
- step 520 may be performed by the application analyzer 430 in FIG. 4 .
- step 520 for a task, the running performance of the task in the case of monopolizing the candidate resource scale corresponding to the task can be determined according to the running performance data of the task.
- the sample resource scale corresponding to a task and the candidate resource scale corresponding to the task may be the same or different.
- the candidate resource scale corresponding to each task may include one candidate resource scale or multiple candidate resource scales.
- the corresponding candidate resource sizes may be the same or different.
- the multiple tasks may include task #1 and task #2.
- the candidate resource scales corresponding to task #1 include two unit resources and three unit resources.
- the candidate resource scales corresponding to task #2 include two unit resources.
- the operating performance of task #1 when it monopolizes three unit resources and the operating performance of task #1 when it monopolizes two unit resources can be determined based on the operating performance data of task #1, and the operating performance of task #2 when it monopolizes two unit resources can be determined based on the operating performance data of task #2.
- Step 520 is exemplarily described below with reference to three examples (Example 1, Example 2, and Example 3).
- multiple tasks can be a first task.
- a first performance model of the first task is constructed according to the running performance data of the first task, wherein the first performance model of the first task is used to predict the running performance of the first task when the resource scale input to the first performance model of the first task is exclusive; and the running performance of the first task when the first candidate resource scale corresponding to the first task is exclusive is determined according to the first performance model of the first task.
- the candidate resource scale corresponding to the first task includes the first candidate resource scale corresponding to the first task.
- the first task may be any one of the multiple tasks.
- a first performance model of the task can be constructed according to the running performance of the task.
- the first performance model of the task is used to predict the running performance of the task when the resource scale corresponding to the task is exclusively occupied.
- the input of the first performance model of the task may include the resource scale corresponding to the task, and the output of the first performance model of the task may include the running performance of the task when the resource scale corresponding to the task is exclusively occupied.
- the first performance model of the first task is used to indicate a mapping relationship between the resource scale corresponding to the first task and the operating performance of the first task when the resource scale is exclusively occupied. Based on the mapping relationship and the first candidate resource scale, the operating performance of the first task when the first candidate resource scale corresponding to the first task is exclusively occupied can be determined.
- step 520 may include: constructing a first performance model for each task according to the operating performance data of each task in the multiple tasks; and determining the operating performance of each task in the case of monopolizing the corresponding first candidate resource scale according to the first performance model of each task.
- the resource scales used as inputs of the first performance model of a task can all be used as the first candidate resource scales corresponding to the task.
- the first candidate resource scales may include one or more.
- the corresponding first candidate resource scales may be the same or different.
- the multiple tasks may include task #1 and task #2.
- the candidate resource scale corresponding to task #1 includes two unit resources and three unit resources.
- the candidate resource scale corresponding to task #2 includes two unit resources.
- the first candidate resource scale corresponding to task #1 may be two unit resources.
- the two unit resources may be input into the first performance model of task #1, and the first performance model of task #1 predicts the operating performance of task #1 when it monopolizes the two unit resources.
- the operating performance of task #2 when it monopolizes the two unit resources may be determined by other means.
- the candidate resource scale corresponding to task #2 does not include the first candidate resource corresponding to task #2.
- the first performance model may be an AI model.
- the first performance model may be a neural network model. Constructing the first performance model of the task according to the running performance data of the task may be understood as training with the running performance data of the task as training data to obtain the first performance model of the task.
- the first performance model may also be other models.
- performance modeling of multiple tasks is performed using the running performance data of the multiple tasks, which is conducive to accurate performance analysis of each task, thereby providing a basis for the subsequent reasonable allocation of computing resources.
- method 500 further includes: constructing fluctuation coefficient models for the multiple tasks according to the operation performance data of the multiple tasks.
- the fluctuation coefficient models for the multiple tasks are respectively used to predict fluctuation coefficients of the multiple tasks corresponding to the resource allocation schemes input into the fluctuation coefficient models for the multiple tasks.
- the fluctuation coefficient model of the task can be used to predict the fluctuation coefficient of the task corresponding to the resource allocation scheme input to the fluctuation coefficient model.
- the input of the fluctuation coefficient model is the resource allocation scheme
- the output is the fluctuation coefficient of the task corresponding to the resource allocation scheme, or in other words, the fluctuation coefficient of the task under the resource allocation scheme.
- the fluctuation coefficient model of the task is used to indicate the mapping relationship between the resource allocation scheme and the fluctuation coefficient of the task under the resource allocation scheme.
- the fluctuation coefficient of a task corresponding to a resource allocation scheme is used to indicate the difference between the running performance of the task under the resource allocation scheme and the running performance of the task when the task exclusively occupies the resource scale corresponding to the task.
- the resource scale corresponding to the task is indicated by the resource allocation scheme.
- the fluctuation coefficient of a task corresponding to a resource allocation scheme may be a ratio between the running performance of the task under the resource allocation scheme and the running performance of the task when the task exclusively occupies the resource scale corresponding to the task.
- the resource scale corresponding to the task is indicated by the resource allocation scheme.
- the fluctuation coefficient model may be an AI model.
- the fluctuation coefficient model may be a neural network model. Constructing the fluctuation coefficient model of each task according to the running performance data of each task in the multiple tasks may be understood as training with the running performance data of each task as training data to obtain the fluctuation coefficient model of each task.
- the fluctuation coefficient model may also be other models.
- the plurality of tasks include the second task.
- the operation performance of the second task in the case of exclusively occupying the second candidate resource scale corresponding to the second task is determined according to the fluctuation coefficient model of the second task in the plurality of tasks and the operation performance data of the second task.
- the candidate resource scale corresponding to the second task includes the second candidate resource scale corresponding to the second task.
- the operation performance data of the second task includes the second candidate resource scale corresponding to the second task.
- the second candidate resource scale is the sample resource scale indicated by the sample resource allocation scheme corresponding to the second task.
- the second task may be any one of the multiple tasks.
- a fluctuation coefficient model of the task may be constructed based on the operational performance data of the task.
- the fluctuation coefficient model of the task is used to predict the fluctuation coefficient of the task corresponding to the resource allocation scheme input to the fluctuation coefficient model of the task.
- the resource allocation scheme input to the fluctuation coefficient model of the task is the resource allocation scheme corresponding to the task.
- the input of the fluctuation coefficient model of the task may include the resource allocation scheme
- the output of the fluctuation coefficient model of the task may include the fluctuation coefficient of the task corresponding to the resource allocation scheme, that is, the fluctuation coefficient of the task under the resource allocation scheme.
- the fluctuation coefficient model of the task is used to indicate the mapping relationship between the resource allocation scheme input into the fluctuation coefficient model and the fluctuation coefficient of the task under the resource allocation scheme. Based on the mapping relationship and the resource allocation scheme corresponding to the task, the fluctuation coefficient of the task under the resource allocation scheme corresponding to the task can be determined.
- the sample resource allocation scheme corresponding to the second task can be input into the fluctuation model of the second task, and the fluctuation model of the second task predicts the fluctuation coefficient of the second task under the sample resource allocation scheme. Based on the fluctuation coefficient and the operating performance of the second task under the sample resource allocation scheme, the operating performance of the second task in the case of monopolizing the second candidate resource scale corresponding to the second task can be predicted.
- the second candidate resource scale corresponding to the second task is the sample resource scale indicated by the sample resource allocation scheme.
- the process of determining the running performance of a task under the resource allocation scheme corresponding to the task based on the running performance of the task under the resource allocation scheme corresponding to the task can be called performance inversion.
- step 520 may include: determining the operating performance of each task when the second candidate resource scale corresponding to each task is exclusively occupied according to the fluctuation coefficient model of each task and the operating performance data of each task.
- the operating performance data of each task includes the operating performance of each task under the sample resource allocation scheme corresponding to each task.
- the second candidate resource scale corresponding to each task is the sample resource scale indicated by the sample resource allocation scheme corresponding to each task.
- the candidate resource scale corresponding to each task includes the sample resource scale corresponding to each task.
- the scale of resources indicated by the resource allocation scheme as the input of the fluctuation coefficient model of the task can be used as the second candidate resource scale corresponding to the task.
- the second candidate resource scale can include one or more.
- the corresponding second candidate resource scales can be the same or different.
- the multiple tasks may include task #1 and task #2.
- the candidate resource scale corresponding to task #1 includes two unit resources and three unit resources.
- the candidate resource scale corresponding to task #2 includes two unit resources.
- the scale of resources indicated by the sample resource allocation scheme corresponding to task #1 is three unit resources. That is, the second resource scale corresponding to task #1 can be three unit resources.
- the sample resource allocation scheme corresponding to task #1 can be input into the fluctuation coefficient model of task #1, and the fluctuation coefficient model of task #1 predicts the fluctuation coefficient of task #1 under the sample resource allocation scheme. Based on the fluctuation coefficient, the performance of task #1 under the resource allocation scheme corresponding to task #1 is reversed to obtain the operating performance of task #1 when it monopolizes three unit resources.
- the operating performance of task #2 when it monopolizes two unit resources can be determined by other means.
- the candidate resource scale corresponding to task #2 does not include the second candidate resource scale corresponding to task #2.
- the performance inversion of the running performance data of the task under the sample resource allocation scheme is performed based on the fluctuation coefficient of the task to predict the running performance of the task when it monopolizes resources, which is conducive to realizing accurate performance analysis of each task, thereby providing a basis for the subsequent reasonable allocation of computing resources.
- the running performance data of the multiple tasks acquired in step 510 includes the running performance of a third task in the multiple tasks when the third task exclusively occupies the third candidate resource scale corresponding to the third task.
- the candidate resource scale corresponding to the third task includes the third candidate resource scale corresponding to the third task.
- the third task may be any one of the multiple tasks.
- the scale of the resources exclusively occupied by the task may be used as the scale of the third candidate resources corresponding to the task, and accordingly, the running performance of the task when the task exclusively occupies the resources is the running performance of the task when the task exclusively occupies the scale of the third candidate resources corresponding to the task.
- the third candidate resource scale may include one or more types. For different tasks, the corresponding third candidate resource scales may be the same or different.
- the multiple tasks may include task #1 and task #2.
- the candidate resource scales corresponding to task #1 include two unit resources and three unit resources.
- the candidate resource scales corresponding to task #2 include two unit resources.
- the running performance data of the multiple tasks acquired in step 510 include the running performance of task #2 when it occupies two unit resources.
- the third candidate resource scale corresponding to task #2 is The running performance of task #1 when it occupies two unit resources or three unit resources can be determined by other methods.
- the candidate resource scale corresponding to task #1 does not include the third candidate resource scale corresponding to task #3.
- the first task, the second task and the third task may be the same or different.
- some or all of the above three examples may be used to determine the running performance of the task when the candidate resource scale corresponding to the task is exclusively occupied.
- the candidate resource scale corresponding to the task includes the first candidate resource scale corresponding to the task, the second candidate resource scale corresponding to the task, and the third candidate resource scale corresponding to the task, and the corresponding methods are used to determine the running performance of the task when the candidate resource scale corresponding to the task is exclusively occupied.
- step 520 can also be implemented in other ways.
- step 520 can also be implemented in other ways.
- the running performance of multiple tasks when they exclusively occupy the candidate resource scales corresponding to the multiple tasks can be represented by a performance matrix of the multiple tasks.
- the elements at different positions in the performance matrix of the multiple tasks can be used to represent the running performance of the task corresponding to the position when the task exclusively occupies the resource scale corresponding to the position.
- step 530 may be performed by resource allocator 440 in FIG. 4 .
- Step 530 may include: determining a target resource allocation scheme according to the running performance of the multiple tasks when the multiple tasks exclusively occupy the target candidate resource scales corresponding to the multiple tasks.
- the candidate resource scales corresponding to the multiple tasks include the target candidate resource scales corresponding to the multiple tasks.
- the target candidate resource scale corresponding to each task may include one or more types.
- the corresponding target candidate resource scales may be the same or different, and the corresponding target candidate resource scales may be determined in the same or different ways.
- the target candidate resource scale corresponding to each task may be a partial resource scale among all candidate resource scales corresponding to each task.
- the candidate resource scale corresponding to each task may be a partial resource scale among all candidate resource scales corresponding to each task.
- the partial resource scale is referred to as a target candidate resource scale.
- the embodiment of the present application provides the following scheme to determine the scale of some resources from the candidate resource scales, reducing the number of combinations of resource scales, that is, reducing the search space in the subsequent target resource allocation process, which is conducive to improving the efficiency of resource allocation.
- the operating performance of the fourth task among the multiple tasks when monopolizing the target candidate resource scale corresponding to the fourth task satisfies preset condition #1, the target candidate resource scale corresponding to the fifth task among the multiple tasks satisfies preset condition #2, or, the target candidate resource scale corresponding to the sixth task among the multiple tasks and the operating performance of the sixth task when monopolizing the target candidate resource scale corresponding to the sixth task satisfy preset condition #3 (an example of the first preset condition).
- the fourth task, the fifth task and the sixth task may be the same or different.
- the preset conditions can be set as needed. For different tasks, the preset conditions can be the same or different.
- preset condition #1 may include: the running performance of the fourth task when monopolizing the target candidate resource scale corresponding to the fourth task is greater than or equal to threshold #1.
- the fourth task may be any one of the multiple tasks, and may be the same as or different from the first task, the second task, and the third task.
- threshold #1 may be manually set, or threshold #1 may be preset.
- the candidate resource scale In the candidate resource scales corresponding to a task, if the running performance of the task when occupying a candidate resource scale exclusively is greater than or equal to threshold #1, the candidate resource scale can be used as the target candidate resource scale corresponding to the task.
- the target candidate resource scales corresponding to other tasks among the multiple tasks may also be determined by referring to the target candidate resource scale corresponding to the fourth task.
- the running performance of the multiple tasks when they exclusively occupy the target candidate resource scale corresponding to the multiple tasks is greater than or equal to threshold #1.
- the target candidate resource scale can be determined based on the running performance of the task, and the candidate resource corresponding to the higher running performance can be Selecting the resource scale as the target candidate resource scale is conducive to allocating appropriate resources to the task in the subsequent resource allocation to ensure the running performance of the task.
- preset condition #1 may also be other conditions related to the running performance of the task.
- preset condition #2 may include: the scale of target candidate resources corresponding to the fifth task is greater than or equal to threshold #2.
- the fifth task may be any one of the multiple tasks, and may be the same as or different from the first task, the second task, and the third task.
- the candidate resource scale can be used as the target candidate resource scale corresponding to the task.
- threshold #2 may be manually set, or threshold #2 may be preset.
- the target candidate resource scales corresponding to other tasks among the multiple tasks may also be determined by referring to the target candidate resource scale corresponding to the fifth task.
- the target candidate resource scales corresponding to the multiple tasks are greater than or equal to threshold #2.
- the parallel efficiency of the task is low, affecting the overall performance of the multiple tasks.
- avoiding using too low a candidate resource scale as the target candidate resource scale is conducive to subsequently allocating appropriate resources to the task to ensure the parallel efficiency of the task.
- preset condition #2 may also be other conditions related to the scale of candidate resources.
- preset condition #3 includes: the ratio between the running performance of the sixth task when monopolizing the target candidate resource scale corresponding to the sixth task and the target candidate resource scale corresponding to the sixth task is greater than or equal to threshold #3 (an example of the first threshold).
- the sixth task may be any one of the multiple tasks, and may be the same as or different from the first task, the second task, and the third task.
- the ratio between the running performance of the task and the resource scale when the task exclusively occupies the resource scale corresponding to the task can be called resource efficiency, that is, the efficiency of the task in utilizing the resource scale.
- Threshold #3 can be used as an efficiency threshold, that is, the threshold of the efficiency of the task in utilizing the resource scale.
- the candidate resource scale can be used as the target candidate resource scale corresponding to the task.
- threshold #3 may be manually set, or threshold #3 may be preset.
- the resource efficiency of the task will gradually decrease.
- the resource efficiency before and after the resource efficiency is significantly reduced can be used as the efficiency threshold.
- the target candidate resource scales corresponding to other tasks among the multiple tasks may also be determined by referring to the target candidate resource scale corresponding to the sixth task.
- a ratio of the running performance of each task when monopolizing a portion of the candidate resource scales corresponding to each task to the portion of the candidate resource scales corresponding to each task is greater than or equal to a threshold #3.
- the ratio between the running performance of the multiple tasks when they exclusively occupy the target candidate resource scale corresponding to the multiple tasks and the target candidate resource scale corresponding to the multiple tasks is greater than or equal to the threshold #3.
- the running performance of a task will significantly improve as the scale of resources allocated to the task increases. However, after the scale of resources allocated to the task reaches a certain threshold, the running performance of the task will no longer increase significantly, that is, the resource efficiency of the task decreases. When the resource efficiency is low, it will lead to resource waste.
- the target candidate resource scale is determined based on the running performance of the task when it monopolizes the resource scale corresponding to the task and the resource scale, which is conducive to avoiding allocating too many resources to the task in subsequent resource allocation, thereby causing resource waste.
- the target candidate resource scale can be determined based on the ratio between the running performance of the task when it monopolizes the resource scale corresponding to the task, that is, the resource efficiency of the task, and the candidate resource scale corresponding to the higher resource efficiency is used as the target candidate resource scale, so as to avoid allocating too many resources to the task in subsequent resource allocation, thereby causing resource waste. Waste of resources.
- preset condition #3 may also be other conditions related to the running performance of the task and the scale of candidate resources corresponding to the task.
- step 530 all resource allocation schemes under each resource scale combination in the multiple resource scale combinations may be enumerated, and the overall operating performance of the multiple tasks under all resource allocation schemes may be calculated, thereby obtaining an optimal solution.
- the optimal solution refers to a resource allocation scheme that optimizes the overall operating performance of the multiple tasks, and the optimal solution may be used as a target resource allocation scheme.
- the multiple resource scale combinations are determined based on a combination of target candidate resource scales corresponding to the multiple tasks.
- the embodiment of the present application provides the following solution to determine the target resource allocation solution, which is conducive to obtaining a more reasonable target resource allocation solution in a shorter time, thereby ensuring the overall running performance of the multiple tasks.
- step 530 may be implemented through the following steps.
- Step 531 determining target candidate resource allocation schemes under multiple resource scale combinations according to the operation performance of each task in the multiple tasks when the target candidate resource scale corresponding to each task is exclusively occupied.
- the multiple resource scale combinations are determined based on the combination of target candidate resource scales corresponding to the multiple tasks.
- the target candidate resource allocation scheme under each resource scale combination in the multiple resource scale combinations indicates the target candidate resource corresponding to each task in the multiple tasks under each resource scale combination.
- Step 532 determining the fluctuation coefficients of the multiple tasks corresponding to the target candidate resource allocation scheme under each resource scale combination in the multiple resource scale combinations.
- the fluctuation coefficients of the multiple tasks corresponding to the target candidate resource allocation scheme under each resource scale combination are respectively used to indicate the difference between the running performance of the multiple tasks executed in parallel under the target candidate resource allocation scheme under each resource scale combination and the running performance of the multiple tasks when the resource scale corresponding to each task in each resource scale combination is exclusively occupied.
- the resource scale corresponding to each task in each resource scale combination is, that is, the target candidate resource scale corresponding to each task in each resource scale combination.
- Step 533 predict the running performance of the multiple tasks executed in parallel under the target candidate resource allocation scheme under each resource scale combination according to the fluctuation coefficient of the multiple tasks corresponding to the target candidate resource allocation scheme under each resource scale combination and the running performance of the multiple tasks when monopolizing the target candidate resource scale corresponding to each task in each resource scale combination.
- Step 534 determining a target resource allocation scheme from the target candidate resource allocation schemes under various resource scale combinations according to the running performance of the multiple tasks executed in parallel under the target candidate resource allocation schemes under various resource scale combinations.
- the multiple resource scale combinations include a combination of target candidate resource scales corresponding to the multiple tasks. Selecting a target candidate resource scale from all target candidate resource scales corresponding to each task constitutes a resource scale combination.
- a resource scale combination may include a target candidate resource scale corresponding to each task.
- step 531 target candidate resource allocation schemes under each resource scale combination may be determined respectively.
- Step 531 may include: determining target candidate resource allocation schemes under multiple resource scale combinations from candidate resource allocation schemes under multiple resource scale combinations according to the running performance of each task in the case of exclusively occupying the target candidate resource scale corresponding to each task.
- the overall operating performance of the multiple tasks when they exclusively occupy the target candidate resource scale corresponding to each task in each resource scale combination under the target candidate resource allocation scheme under each resource scale combination is better than the overall operating performance of the multiple tasks when they exclusively occupy the target candidate resource scale corresponding to each task in each resource scale combination under other candidate resource allocation schemes under each resource scale combination.
- a target candidate resource allocation scheme under the resource scale combination can be selected from the candidate resource allocation schemes under the resource scale combination.
- the target candidate resource allocation scheme under the resource scale combination can be the optimal candidate resource allocation scheme among all the candidate resource allocation schemes under the resource scale combination.
- the optimal candidate resource allocation scheme is the candidate resource allocation scheme that makes the overall operating performance of the multiple tasks optimal when they exclusively occupy the target candidate resource scales corresponding to each task in the resource scale combination.
- the candidate resource allocation schemes under a resource scale combination may include all resource allocation schemes that satisfy the resource scale combination.
- the resource scales corresponding to the tasks indicated by the candidate resource allocation schemes under a resource scale combination are consistent with the resource scale combination.
- the target candidate resource allocation scheme under the resource scale combination may be a candidate resource allocation scheme that optimizes the overall operating performance of the multiple tasks when they exclusively occupy resources among all candidate resource allocation schemes under the resource scale combination.
- the candidate resources corresponding to each task indicated by the candidate resource allocation scheme under each group of resource scale combinations are continuous.
- the resources corresponding to each task indicated by the candidate resource allocation scheme may be continuous.
- the resources corresponding to each task It can be indicated by the starting position of the resource corresponding to the task and the scale of the resource corresponding to the task.
- the target candidate resource allocation scheme under each resource scale combination can be determined by a binning algorithm.
- a binning algorithm For a detailed description, please refer to the relevant description in method 600.
- step 531 may be implemented using a binning algorithm.
- method 600 For a detailed description, please refer to method 600.
- step 532 for each resource scale combination, the fluctuation coefficients of multiple tasks corresponding to the target candidate resource allocation scheme under the resource scale combination may be determined respectively.
- the fluctuation coefficients of some tasks corresponding to the target candidate resource allocation scheme under the resource scale combination can be calculated.
- the partial tasks refer to the tasks that share resources with other tasks in the target candidate resource allocation scheme.
- the resources allocated to task #1 include process #1
- the resources allocated to task #2 also include process #1
- the resources allocated to task #3 are not allocated to other tasks.
- the fluctuation coefficients of the corresponding tasks #1 and #2 can be calculated, without calculating the fluctuation coefficient of task #3.
- the fluctuation coefficient of each task is used to indicate the difference between the running performance of the task when it is executed in parallel with other tasks under the target resource allocation scheme and the running performance of the task when it exclusively occupies the target candidate resource scale corresponding to the task in the resource scale combination.
- the fluctuation coefficients of multiple tasks corresponding to the target candidate resource allocation scheme under each resource scale combination are respectively used to indicate the ratio between the running performance of the multiple tasks executed in parallel under the target candidate resource allocation scheme under the resource scale combination and the running performance of the multiple tasks when they exclusively occupy the target candidate resource scale corresponding to the multiple tasks in the resource scale combination.
- the fluctuation coefficient of the task corresponding to the target candidate resource allocation scheme under each resource scale combination is used to indicate the ratio between the running performance of the task when it is executed in parallel with other tasks under the target candidate resource allocation scheme and the running performance of the task when it exclusively occupies the target candidate resource scale corresponding to the task in the resource scale combination.
- step 532 includes: determining, according to a fluctuation coefficient model of the multiple tasks, fluctuation coefficients of the multiple tasks corresponding to the target candidate resource allocation scheme under each resource scale combination in the multiple resource scale combinations.
- the fluctuation coefficient model of the task can be used to predict the fluctuation coefficient of the task corresponding to the resource allocation solution input into the fluctuation coefficient model.
- the target candidate resource allocation scheme under the resource scale combination is input into the fluctuation coefficient models of multiple tasks respectively, so as to obtain the fluctuation coefficients of multiple tasks corresponding to the target candidate resource allocation scheme.
- step 533 may include: determining the operating performance of multiple tasks executed in parallel under the target candidate resource allocation scheme under each resource scale combination based on the fluctuation coefficients of multiple tasks corresponding to the target candidate resource allocation scheme under each resource scale combination and the operating performance of the multiple tasks when exclusively occupying the target candidate resource scale corresponding to each task in each resource scale combination; determining the overall operating performance of the multiple tasks executed in parallel under the target candidate resource allocation schemes corresponding to the multiple resource scale combinations based on the operating performance of the multiple tasks executed in parallel under the target candidate resource allocation schemes under the multiple resource scale combinations.
- the fluctuation coefficient of a task is used to indicate the difference between the running performance of the task when it is executed in parallel with other tasks under the target resource allocation scheme and the running performance of the task when it exclusively occupies the target candidate resource scale corresponding to the task in the resource scale combination.
- the running performance of the task when it is executed in parallel with other tasks under the target resource allocation scheme can be calculated based on the fluctuation coefficient of the task and the running performance of the task when it exclusively occupies the target resource scale corresponding to the task.
- the overall running performance of the multiple tasks executed in parallel under the target resource allocation scheme can be determined based on the running performance of the multiple tasks executed in parallel under the target resource allocation scheme.
- the target candidate resource allocation scheme with the best overall operating performance may be used as the target resource allocation scheme.
- the target resource corresponding to each task includes one or more processes corresponding to each task.
- the one or more processes are respectively bound to one or more slots.
- Slots and processor cores can correspond one to one.
- One or more processes are bound to one or more slots, which can also be understood as one or more processes are bound to one or more processor cores.
- the computing power node can allocate a processor core to the task, thereby realizing the calculation of the task.
- the process is bound to the slot, or in other words, the process is bound to the processor core, so that the process can be allocated on a global scale, that is, the allocation of processor cores on a global scale can be realized, which is conducive to obtaining the optimal resource allocation scheme.
- the scheme of the embodiment of the present application binds the process to the processor core, realizes refined computing power allocation, and does not require computing power nodes.
- the secondary scheduling of the kernel means that there is no need for the computing power node to schedule the processor core for the process, thus avoiding the overhead caused by the secondary scheduling.
- the target resource corresponding to each task includes one or more processes corresponding to each task.
- the multiple processes are respectively bound to multiple continuous slots.
- the multiple slots being multiple consecutive slots means that the numbers of the multiple slots are consecutive.
- the multiple processes are multiple continuous processes.
- the multiple slots are multiple continuous slots.
- allocating continuous slots to each task is beneficial to reducing the communication cost during the execution of each task and further improving the running performance of the task.
- the method 500 further includes: outputting indication information of the target resource allocation solution.
- FIG6 shows a schematic flow chart of a method for resource allocation provided in an embodiment of the present application.
- the method 600 shown in FIG6 can be regarded as a specific implementation of the method 500 described in FIG5 .
- the relevant description can refer to the method 500. To avoid repetition, some descriptions are appropriately omitted when describing the method 600.
- the method 600 can be executed by a resource allocation device.
- the device can be deployed as a module in an application, or deployed outside an application, for example, deployed in a management and control system of computing resources.
- method 600 includes the following steps.
- Step 610 Obtain application related information, including information about multiple functional modules and available resources in the application.
- a user may submit a processing request for an application, and the resource allocation device may obtain relevant information of the application.
- the information of multiple functional modules in an application may be used to indicate the multiple functional modules in the application or the number of functional modules in the application.
- the functional modules in the application refer to the functional modules enabled during the execution of the current application.
- the multiple functional modules in the application correspond to the multiple tasks in the method 500.
- the tasks in the method 500 are replaced with functional modules for description.
- the information of available resources is used to indicate the available resources or the scale of available resources.
- the information of available resources can be represented by hardware parameters.
- the scale of available resources may be the number of available computing nodes.
- the size of the available resources may be the number of available processors.
- the scale of available resources may be the number of available processor cores.
- the application-related information may also include other contents, for example, the application-related information may also include application architecture information.
- the application architecture information may be used to indicate the coupling mode of the functional modules in the application.
- the application-related information may also include user information.
- the relevant information of the CESM may include the number of functional modules enabled in the CESM, the number of available processor cores, and the simulation time of the CESM.
- Step 610 corresponds to step 501 in method 500.
- step 501 for a detailed description, reference may be made to the relevant description of step 501, which will not be repeated here.
- Step 620 Obtain the operation performance data of multiple application instances of the application.
- the operation performance data of the multiple application instances includes the operation performance data of the multiple functional modules.
- the operation performance data of the multiple application instances may include the operation performance data of the multiple application instances under multiple sample resource scale combinations.
- the multiple application instances may be application instances under multiple sample resource scale combinations.
- the sample resource scale combination may include a combination of sample resource scales corresponding to the multiple function modules.
- the resource allocation scheme is used to indicate the resources corresponding to the functional modules, that is, the resources allocated to the functional modules.
- the resource allocation schemes under different resource scale combinations are different.
- the operating performance data of the multiple application instances include the operating performance data of the multiple application instances under multiple sample resource scale combinations, which can also be understood as follows.
- the operating performance data of the multiple application instances may include the performance data of the multiple application instances under multiple resource allocation schemes, and the combination of resource scales corresponding to each functional module indicated by the multiple sample resource allocation schemes includes multiple sample resource scale combinations.
- sample resource allocation scheme may be used to indicate the process allocation status of each functional module.
- the process allocated to each functional module can be continuous.
- the process allocated to each functional module can be represented by the ID of the starting process allocated to the functional module and the ID of the terminating process.
- the process allocated to each functional module can be represented by the ID of the starting process allocated to the functional module and the number of processes allocated to the functional module.
- the process allocated to each functional module can also be represented by other parameters.
- the sample resource scale can be represented by a resource parameter, and accordingly, the sample resource scale combination can be represented by a resource parameter combination. Multiple sample resource scales can be represented by multiple resource parameter combinations.
- the resource parameter combination is used to indicate the parameters of the resources allocated to each functional module.
- the functional modules started by CESM may include ATM and OCN.
- the sample resource scale combination of ATM and OCN may be represented by a combination of parameters for indicating the resources allocated to ATM and OCN.
- the parameter may be the number of processes allocated to the ATM NATM
- the parameter indicating the resources allocated to the OCN may be the number of processes allocated to the OCN NOCN.
- the sample resource size combination may be expressed as a resource parameter combination (NATM, NOCN).
- step 620 may be implemented through the following steps.
- a default resource scale combination of the application is obtained based on the relevant information of the application.
- the multiple sample resource scale combinations are determined based on the default resource scale combination of the application.
- the sample resource scale can be represented by a resource parameter, and accordingly, the sample resource scale combination can be represented by a resource parameter combination.
- the default resource size combination can be used as a baseline and basis for performance analysis.
- a resource scale combination is selected from the neighborhood of the default resource scale combination of the application, and the resource scale combination and the default resource scale combination together constitute the multiple sample resource scale combinations. This process can be called parameter augmentation.
- the default resource scale combination may be specified by a user.
- a user may indicate the default resource scales corresponding to the various functional modules, and the combination of the default resource scales corresponding to the various functional modules may be used as the default scale combination.
- the default resource size combination may be preset.
- the default resource scale combination may also be determined by the resource allocation device based on other related solutions.
- the resource allocation device determines a default resource size combination based on a general algorithm.
- the neighborhood of the default resource scale combination may include a combination of resource scales whose difference with the corresponding default resource scale in the default resource scale combination is less than or equal to z.
- Z is the scale threshold mentioned above. That is, a parameter combination of resource scales whose difference between the default resource scales corresponding to each functional module is within z.
- the resource scale combination may be a combination of the number of processes allocated to each functional module.
- the default resource scale combination is a combination of the default number of processes allocated to each functional module.
- the functional modules started by CESM may include ATM and OCN, and the resource scale combination may be a combination of the number of processes allocated to ATM and OCN.
- the default resource scale combination may be expressed as (5,5), that is, the default number of processes allocated to ATM is 5, and the default number of processes allocated to OCN is 5.
- the neighborhood of the default resource scale combination may include a combination of the number of processes that differs by 3 processes from the default number of processes allocated to each module.
- the resource scale combinations selected from the neighborhood of the default resource scale combination may include (4,7) and (6,3).
- the multiple sample resource scale combinations may include (5,5), (4,7) and (6,3).
- the multiple sample resource size combinations can also be determined in other ways.
- the multiple sample resource size combinations can be randomly determined.
- the multiple sample resource size combinations can be determined by the user.
- the operation performance data of the application instance that meets the sample resource scales in the plurality of sample resource scale combinations is obtained.
- the multiple sample resource scale combinations determined based on step 621 may include (5,5), (4,7) and (6,3).
- step 622 the operation performance data of the application instances that meet the sample resource scales in (5,5), (4,7) and (6,3) may be obtained.
- an application instance to which five processes are allocated to the ATM can serve as one of the multiple application instances.
- step 622 may be implemented in at least one of the following ways:
- the operating performance data of the application instances that meet the combination of the multiple sample resource scales are collected.
- the operating performance data of the application instance can be used as the operating performance data of multiple application instances in step 620.
- the running performance data of the application instances that meet the multiple sample resource scale combinations are collected.
- the resource scale combination used by an application instance belongs to the multiple sample resource scale combinations, its operating performance data can be obtained from the monitoring data of the application instance as the operating performance data of multiple application instances in step 620.
- Resources are allocated to each functional module based on a sample resource scale combination, and pre-executed for a period of time under the resource.
- the operating performance data obtained from the monitoring data can be used as the operating performance data of the application instance under the sample resource scale combination.
- the running performance data of the application instances under some of the sample resource scale combinations in the multiple sample resource scale combinations are obtained from historical data
- the running performance data of the application instances under the remaining sample resource scale combinations are obtained from historical data.
- the running performance data of the instance may be obtained by pre-executing the application under a corresponding sample resource scale combination.
- the performance data of the application instance may include at least one of the following: running time, response delay, or resource utilization, etc.
- running time may include the running time of the application and the running time of each functional module in the application.
- Step 620 corresponds to step 510 in method 500.
- Step 620 corresponds to step 510 in method 500.
- step 510 for a detailed description, please refer to the relevant description of step 510, which will not be repeated here.
- Step 630 Perform performance analysis based on the performance data of the multiple application instances to obtain the operating performance of each functional module under the condition of exclusive resources.
- the behavioral characteristics of an application can also be called the performance characteristics of the application. For example, given the same resources, the operating performance of different applications is different. For another example, when the given resources increase, the operating performance of the application will generally improve, but the degree of improvement in the operating performance of different applications is different.
- the behavioral characteristics of an application can be determined by the performance data of the application instance and the functional logic of the application instance.
- the functional logic of the application instance is the functional module enabled in the application instance.
- step 630 performance modeling can be performed based on the performance data of the multiple application instances to obtain a performance model of the application.
- performance modeling can be performed based on the performance data of the multiple application instances and the functional logic of the multiple application instances to obtain a performance model of the application.
- the performance model of the application can be used to indicate the mapping relationship between the resources of a given application and the operating performance of the application under the resources. That is, in step 630, the relationship between the resources and the operating performance of the application is constructed to analyze the behavioral characteristics of the application.
- step 630 may be implemented through the following steps.
- Step 631 construct an application model.
- the application model is used to indicate the relationship between the overall operating performance of the application and the operating performance of multiple functional modules of the application.
- the application model can be used to predict the overall operating performance of the application.
- the input of the application model can be the operating performance of each functional module under different resource allocation schemes
- the output of the application model is the overall operating performance of the application under the corresponding resource allocation scheme predicted by the application model.
- the comparison between the overall operating performance of the application predicted by the application model and the actual overall operating performance of the application can be used to measure the modeling accuracy of the application model.
- the overall operating performance of an application refers to the overall operating performance of multiple functional modules of the application when they are executed in parallel.
- the application model may satisfy the following formula:
- T tot represents the running time of the application
- Ti represents the running time of the functional module i.
- C represents the set of functional modules.
- Ri represents the ID of the starting process of the functional module i.
- Ni represents the number of processes used by the functional module i.
- Ni is an integer.
- the resources allocated to the functional module i in a single thread may include processes whose IDs belong to [ ri , ri + ni -1].
- N represents the total number of processes that the application needs to call, and j represents the ID of the process.
- Each process may be assigned to one or more functional modules.
- the total number of processes that the application needs to call can satisfy the following formula:
- f(r,n) represents the communication cost function between coupling functions, which is used to determine the communication cost between each functional module under a given resource allocation scheme.
- the function value of f(r,n) is related to the resource allocation scheme, specifically, it is strongly related to the relative position of the resources of each functional module and the coupling module.
- r represents the vector of the starting processes of each functional module
- n represents the vector of the number of processes used by each functional module.
- f(r,n) is usually small.
- ⁇ represents the resource coordination and initialization time of the system after the user submits the application.
- H(x) is the Heaviside step function.
- H(x) can satisfy the following formula:
- Step 632 construct performance models of multiple functional modules of the application and determine interference conditions between the multiple functional modules.
- the performance model of the functional module may be a first performance model of the functional module.
- the first performance model of each functional module may be used to predict the operating performance of the functional module under the condition of exclusively occupying the resource scale input to the first performance model.
- the performance model of the functional module may be the second performance model of the kinetic energy module.
- the second performance model of each functional module may be This is used to predict the operating performance of the functional module when it is executed in parallel with other functional modules under the resource allocation scheme input into the second performance model.
- the interference between the functional modules may be indicated by the fluctuation coefficient of each functional module.
- the interference between the functional modules may be different.
- the fluctuation coefficient of the same functional module may also be different.
- the fluctuation coefficient of each functional module can be determined by a fluctuation coefficient model of each functional module.
- the fluctuation coefficient model of each functional module can be used to indicate the relationship between the resource allocation scheme and the fluctuation coefficient of the functional module.
- the performance model of the application may include an application model, performance models of each module, and a fluctuation coefficient model of each functional module.
- ⁇ i represents the fluctuation coefficient of function module i under a given resource allocation scheme.
- T i,init represents the initialization time.
- T i,comp represents the computing time, and T i,comm represents the communication time.
- the running time T i ' of function module i under the condition of exclusive resources may include three parts: T i,init , T i,comp and T i,comm . Since function module i may compete with other function modules for resources, the running time Ti of function module i needs to consider the fluctuation coefficient ⁇ i , that is, the fluctuation coefficient ⁇ i is multiplied by the running time under the condition of exclusive resources to obtain the running time T i of function module i.
- ⁇ i,1 and ⁇ i,2 are coefficients.
- ⁇ i,1 and ⁇ i,2 indicate that the initialization time consists of a part related to the number of processes used by functional module i and a part that is irrelevant.
- T i,comp can satisfy the following formula:
- Wi represents the total load of functional module i.
- computing tasks can be divided into parallelizable parts and non-parallelizable parts.
- Ai represents the proportion of the parallelizable parts.
- p represents the processor performance, and it can be assumed that the processor performance is consistent here. 0 ⁇ ai ⁇ 1 . Wi >0. p>0.
- ⁇ i represents the communication delay.
- the information transmission within the functional module is mainly completed through global communication, and the tree reduction method is mainly used, and the time complexity is logn i . ⁇ i >0.
- ⁇ i can be determined by the harmonic mean of the function module including the process load. ⁇ i > 1. ⁇ i can satisfy the following formula:
- the above formula can be used as a model for the fluctuation coefficient of functional module i.
- L j can satisfy the following formula:
- Lj represents the load of the jth process.
- the correlation coefficient of the model can be fitted to the above model based on the performance data of the multiple application instances.
- the performance model of the functional module i and the correlation coefficient in the fluctuation coefficient model can be determined based on the acquired running time of each functional module.
- Step 633 predicting the operating performance of the multiple functional modules when they monopolize resources based on the performance models of the multiple functional modules of the application.
- the performance models of the multiple functional modules of the application are used to predict the running performance of the multiple functional modules when the multiple functional modules exclusively occupy the candidate resource scales corresponding to the multiple functional modules.
- step 633 may include predicting the running performance of the multiple functional modules when they monopolize resources based on the first performance model of the multiple functional modules of the application.
- step 634 may include predicting the operating performance of the multiple functional modules when they monopolize resources based on the second performance models of the multiple functional modules of the application and the interference conditions between the multiple functional modules.
- the operating performance of the multiple functional modules when they monopolize resources can be represented by a performance matrix of the multiple functional modules.
- the performance matrix is used to represent the operating performance of different functional modules when they monopolize different resources.
- the dimension of the performance matrix can be
- a row of the performance matrix corresponds to a functional module, and a column in the performance matrix corresponds to a resource scale, for example, the number of processes.
- Each element of the performance matrix represents the operating performance of the functional module corresponding to the row where the element is located when it monopolizes the resource scale corresponding to the column where the element is located.
- the candidate resource scale corresponding to the multiple functional modules is the resource scale in the performance matrix.
- Predicting the operating performance of the multiple functional modules when they exclusively occupy the candidate resource scales corresponding to the multiple functional modules is to predict the elements of the performance matrix of the multiple modules.
- the following is an exemplary description of the method for determining the elements in the performance matrix.
- the running performance data of multiple application instances includes the running performance data of multiple application instances under multiple sample resource scale combinations.
- the running performance data of the multiple application instances include the running performance data of the function module when it exclusively occupies the resource
- the running performance data of the function module when it exclusively occupies the resource can be used as the element at the position indicated by the function module and the resource in the performance matrix. This method corresponds to Example 3 in method 500.
- the running performance data of the multiple application instances include the running performance data of the function module i when it monopolizes n i processes
- the running performance data of the function module i when it monopolizes n i processes can be used as the element at (i, n i ) in the performance matrix.
- the function module i can be used as an example of the third task
- the n i processes can be used as an example of the third candidate resource scale corresponding to the third task.
- the fluctuation coefficient of the functional module can be calculated by the fluctuation coefficient model of the functional module, and the performance inverse solution is performed based on the fluctuation coefficient to predict the operational performance of the functional module when the resources are exclusive.
- the predicted operational performance of the functional module when the resources are exclusive can be used as the element at the position indicated by the functional module and the resource in the performance matrix. This method corresponds to Example 2 in method 500.
- the running performance data of the multiple application instances include the running performance data of the function module i when it non-exclusively occupies n i processes.
- the sample resources corresponding to the function module i are indicated by a sample resource allocation scheme, in which at least one of the n i processes is simultaneously allocated to other function modules.
- the fluctuation coefficient of the function module is calculated based on the sample resource allocation scheme, and the running performance data of the function module i when it non-exclusively occupies n i processes is inversely solved, and the result obtained can be used as the element at (i, n i ) in the performance matrix.
- the function module i can be used as an example of the second task
- the n i processes can be used as an example of the second candidate resource scale corresponding to the second task.
- the performance models of the functional modules can be used to predict the operating performance of the functional modules when they monopolize resources. This approach corresponds to Example 1 in method 500 .
- the performance model of each functional module is obtained by fitting the performance data of multiple application instances under multiple sample resource scale combinations, the accuracy of predicting the operating performance of each functional module under the parameters around the multiple sample resource scale combinations using the performance model of each functional module is higher. Therefore, the operating performance of each functional module under the parameters around the multiple sample resource scale combinations can be predicted based only on the performance model of each module.
- the complete performance matrix can be obtained by solving the following minimization problem.
- X ab represents the value at the position (a, b) observed in the performance matrix
- ⁇ represents the set of positions
- Z represents the original matrix
- * represents the nuclear norm of Z
- Z ab represents the position (a, b) in the original matrix Z
- ⁇ represents a small quantity.
- Step 640 Determine a target resource allocation scheme based on the operating performance of each functional module when the modules exclusively occupy resources.
- the target resource allocation scheme is used to indicate the target resources corresponding to each functional module.
- the target resource allocation scheme is used to indicate the target resources allocated to each functional module.
- step 640 may be implemented through the following steps.
- feasible resource scale combinations may be determined by enumerating all combinations of candidate resource scales in the performance matrix.
- the enumeration space of this method is too large, and it is difficult to efficiently determine the target resource allocation solution from it in the subsequent processing process.
- the embodiment of the present application provides a solution based on search pruning, which can quickly determine a feasible resource scale combination. Specifically, the solution reduces the search space in the subsequent determination of target resource allocation through pruning processing, improves search efficiency, and thus quickly determines the target resource allocation solution.
- a global search is performed for each functional module (i.e., each row element) in the performance matrix to perform a pruning operation. All functional modules are traversed to complete the pruning operation.
- a pruning operation is performed based on the resource module efficiency of the element in the performance matrix.
- the resource module efficiency of the element is lower than the efficiency threshold, the element is pruned.
- the functional module corresponding to the row of the element in the performance matrix after the pruning operation is the sixth task in method 500, and the resource scale corresponding to the column of the element is the target candidate resource scale corresponding to the sixth task.
- the resource module efficiency of an element When the resource module efficiency of an element is lower than the efficiency threshold, it can be considered that the resource utilization efficiency of the module under the current resources is low, resulting in resource waste, and the element can be removed.
- the resource module efficiency of each element is the ratio between the operating performance of the functional module and the scale of the resources.
- a pruning operation is performed based on the resource scale corresponding to the element in the performance matrix.
- the resource scale corresponding to the element is small, the parallel efficiency of the task is low, which affects the overall running performance of the multiple tasks, and the element can be removed.
- the processing flow of the performance matrix is exemplarily described below with reference to FIG. 7 .
- the performance data of application instances under various combinations of sample resource scales are obtained by sampling.
- the fluctuation coefficient of each functional module is calculated, and the performance is inversely solved to obtain the operating performance of each functional module when the corresponding resource is exclusively occupied, which is used as the sampling point on the performance matrix.
- the internal characteristic fitting is applied, that is, the operating performance around the sampling point is predicted by the performance model of each functional module to obtain the fitting point on the performance matrix. Predicting the operating performance around the sampling point can also be called interpolation or extension around the sampling point. As shown in FIG7, interpolation or extension is only performed around the sampling point, which is conducive to ensuring the accuracy of the predicted operating performance.
- the missing elements in the current performance matrix are repaired by matrix completion, that is, the completion points on the performance matrix are obtained.
- the pruning points in the performance matrix are pruned to screen out the target candidate resource scales corresponding to each functional module.
- the pruning points can be determined based on the marginal effect, that is, based on the efficiency threshold.
- the combination of the target candidate resource scales corresponding to each functional module can be used as a feasible resource scale combination.
- step 642 may include: enumerating all resource allocation schemes under feasible resource scale combinations, and determining a target resource allocation scheme therefrom.
- This method is highly complex and takes a long time to run, and it is difficult to efficiently determine the target resource allocation solution.
- the embodiment of the present application provides an allocation method using a binning algorithm, which can achieve efficient allocation of resources.
- the feasible resource scale combinations are traversed.
- the packing algorithm is executed to minimize the overall height of the packing. In this way, the location of the resources corresponding to each functional module can be obtained, so as to determine the optimal resource allocation plan under the resource scale combination.
- the running time of each functional module when non-exclusive resources is restored by the fluctuation coefficient of each functional module to determine the overall running time of the application.
- a fast two-dimension first-fit decreasing height is performed.
- height, 2D-FFDH) box packing algorithm is improved, forward boxing is performed once and then reverse boxing is performed, with two layers as a group, and the complexity is nlogn, where n represents the number of boxes, that is, the number of functional modules in the embodiment of the present application, to minimize the overall height of the box.
- the application may include 5 functional modules.
- the feasible resource scale combination is the combination of target candidate resource scales corresponding to the 5 functional modules in the pruned performance matrix.
- Each functional module is abstracted into a matrix based on the corresponding elements in the performance matrix.
- the width of the matrix corresponds to the resource scale allocated to the functional module in the resource scale combination, and the length of the matrix corresponds to the running time of the functional module when it exclusively occupies the resource scale.
- functional module i is abstracted into a matrix, the width of the matrix corresponds to the number of processes n i allocated to the functional module in the resource scale combination, and the length of the matrix corresponds to the value at (i, n i ) in the performance matrix.
- the matrices corresponding to all functional modules are packed into the resource pool through a packing algorithm to minimize the overall height.
- the width of the resource pool can be the available resource scale.
- Determining the target resource allocation scheme based on the 2D-FFDH bin packing algorithm may include the following steps:
- steps S1 to S4 are respectively executed.
- S1 arrange the functional modules in descending order of running time, and place the functional modules based on the order.
- the five functional modules in FIG. 8 are arranged in descending order of running time, and the resulting order may be: functional module #3, functional module #1, functional module #2, functional module #4, functional module #5.
- the remaining space is greater than or equal to the number of resources corresponding to the functional module, that is, the width of the remaining space is greater than or equal to the width of the matrix corresponding to the functional module.
- the remaining space is less than the number of resources corresponding to the functional module, that is, the width of the remaining space is less than the width of the matrix corresponding to the functional module.
- function module #3 is placed first in the lower layer, and the remaining space on the left side of the lower layer is calculated.
- the function module to be placed after function module #3 is function module #1.
- the remaining space on the right side of the lower layer is greater than the number of resources corresponding to function module #1.
- Function module #1 is placed in the lower layer, and the remaining space on the right side of the lower layer after function module #1 is placed is calculated.
- the function module to be placed after function module #1 is function module #2.
- the remaining space on the right side of the lower layer is less than the number of resources corresponding to function module #2.
- Function module #2 is placed on the rightmost side of the upper layer, and the remaining space on the left side of the upper layer after function module #2 is placed is calculated, and so on.
- step S3 if the remaining space of the lower layer and the remaining space of the upper layer are both smaller than the resources corresponding to the functional modules to be placed, two more layers are enabled to place the functional modules. Repeat step S2 until all functional modules are placed, and obtain the target candidate resource allocation plan under the resource scale combination.
- the fluctuation coefficients of the five functional modules are calculated.
- the resources corresponding to each functional module may be indicated by a starting position of the resources corresponding to the functional module and a scale of the resources corresponding to the functional module.
- the predicted running time of the application may be determined based on the application model in step 631 and the running time of each functional module when non-exclusive resources are occupied.
- Step 640 corresponds to step 530 in method 500.
- Step 640 corresponds to step 530 in method 500.
- step 530 For a detailed description, please refer to the related description of step 530.
- the tasks corresponding to each functional module can be distributed to the processor, and the processor performs the calculation.
- the process can be bound to the processor core.
- the optimal resource allocation solution can be searched globally, avoiding the inability to obtain the optimal resource allocation solution due to the lack of global information inside the computing power node.
- the solution of the embodiment of the present application binds the process to the processor core, realizes refined computing power allocation, and does not require secondary scheduling of the computing power node core, that is, there is no need for the computing power node to schedule the processor core for the process, avoiding the overhead caused by secondary scheduling.
- the method 600 is exemplarily described below using the CESM application as an example.
- the function modules enabled by CESM may include ATM, LND, ICE, ROF, GLC, WAV, OCN and coupling component CPL.
- the scheme of the embodiment of the present application can allocate corresponding process resources to the above function modules. The same process resource is allowed to be allocated to multiple function modules.
- the resource allocation process of CESM may include the following steps.
- CESM Obtain relevant information of CESM, which includes information of multiple functional modules and information of available resource scale.
- the information of the multiple functional modules is used to indicate ATM, LND, ICE, ROF, GLC, WAV, OCN and a coupling component CPL.
- the available resource scale information is used to indicate the available resources of the HPC.
- the multiple sample resource allocation schemes indicate multiple combinations of sample resource scales corresponding to each functional module.
- the fluctuation coefficient of each functional module is calculated respectively.
- the running performance data of multiple application instances are reversed to obtain the running time of each functional module when it monopolizes resources, which is used as the sampling point in the performance matrix.
- the target resource allocation scheme traverses the feasible resource scale combinations, for each feasible resource scale combination, determine the target candidate resource allocation scheme by using the 2D-FFDH fast packing algorithm; calculate the fluctuation coefficient of each functional module based on the target candidate resource allocation scheme; calculate the running time of each functional module when executed in parallel under the target candidate resource allocation scheme by using the fluctuation coefficient of each functional module; predict the overall running time of the application based on the running time when executed in parallel.
- the target candidate resource allocation scheme corresponding to the optimal overall running time obtained after traversal is used as the target resource allocation scheme.
- the target resource allocation scheme can be shown in FIG9 .
- Table 1 shows the performance test results of CESM in the test environment. As shown in Table 1, performance tests were conducted based on the CESM dataset B1850G and the dataset BW1850. The resolution (res) of the scene is f09_g17, the number of threads per process NTHRD is 1, and the experimental simulation time is 5 days.
- the hardware structure used in the test environment is a non-uniform memory access (NUMA) structure node, including: two CPU sockets, 52 cores, and 768GB of random access memory (RAM).
- NUMA non-uniform memory access
- the solution of the embodiment of the present application improves performance by more than 30% compared with the resource layout method of the related solution.
- One or more users can submit multiple job tasks to the computing system, and the system will manage and run these tasks.
- the computing system can be called a batch job processing system or a batch processing system.
- the solution of the embodiment of the present application can be applied to the resource allocation scenario of the batch processing system to allocate computing resources to the multiple job tasks.
- FIG10 shows a resource allocation scheme in a batch processing system with a mixed layout of multiple job tasks.
- the multiple job tasks include a data processing task, a decoding task, an encryption task, a file sorting task, and two compression tasks.
- the multiple job tasks can be used as multiple tasks in method 500.
- the scheme of the embodiment of the present application can allocate computing power resources to the multiple job tasks, while improving the utilization rate of system resources, optimizing the overall operating performance of the multiple job tasks, for example, the overall running time of the multiple tasks.
- Fig. 11 is a schematic block diagram of a device for resource allocation according to an embodiment of the present application.
- the device 1100 shown in Fig. 11 can be used to execute a method for resource allocation according to an embodiment of the present application, for example, method 500 or method 600.
- the device 1100 includes an acquisition unit 1110 and a processing unit 1120 .
- an acquisition unit is used to acquire running performance data of each of a plurality of tasks, wherein the running performance data of each of the plurality of tasks includes the running performance of each task under a sample resource scale corresponding to each task;
- a processing unit is used to: determine, based on the running performance data of each of the plurality of tasks, the running performance of each of the plurality of tasks when the candidate resource scale corresponding to each task is exclusively occupied; and determine the target resource corresponding to each of the plurality of tasks based on the running performance of each of the plurality of tasks when the candidate resource scale corresponding to each task is exclusively occupied.
- the target resource corresponding to each task includes one or more processes corresponding to each task, and the one or more processes are respectively bound to one or more slots.
- the multiple processes are multiple consecutive processes
- the multiple slots are multiple consecutive slots.
- multiple tasks include a first task
- the processing unit is specifically used to: construct a first performance model of the first task based on the running performance data of the first task, wherein the first performance model of the first task is used to predict the running performance of the first task when the resource scale of the performance model of the first task is exclusively input; determine the running performance of the first task when the first candidate resource scale corresponding to the first task is exclusively occupied according to the first performance model of the first task, and the candidate resource scale corresponding to the first task includes the first candidate resource scale corresponding to the first task.
- the candidate resource scale corresponding to each task is a partial resource scale among all candidate resource scales corresponding to each task, and the partial resource scale among the candidate resource scales corresponding to each task and the operating performance of each task when monopolizing the partial resource scale among the candidate resource scales corresponding to each task meet the first preset condition.
- the first preset condition includes: the ratio of the operating performance of each task when monopolizing part of the resource scale in the candidate resource scale corresponding to each task and the part of the resource scale in the candidate resource scale corresponding to each task is greater than or equal to a first threshold, and the first threshold is the threshold of the task's utilization efficiency of the resource scale.
- the processing unit is specifically used to: determine the target candidate resource allocation schemes under multiple resource scale combinations according to the operating performance of each task in the case of monopolizing a part of the resource scale in the candidate resource scale corresponding to each task, the multiple resource scale combinations are determined based on the combination of the part of the resource scale in the candidate resource scale corresponding to each task, and the target candidate resource allocation scheme under each resource scale combination in the multiple resource scale combinations indicates the target candidate resource corresponding to each task in the multiple tasks under each resource scale combination; determine the fluctuation coefficients of the multiple tasks corresponding to the target candidate resource allocation scheme under each resource scale combination in the multiple resource scale combinations, and the target candidate resource allocation scheme under each resource scale combination corresponds to The fluctuation coefficients of the multiple tasks are respectively used to indicate the difference between the running performance of the multiple tasks executed in parallel under the target candidate resource allocation scheme under each resource scale combination and the running performance of the multiple tasks when the resource scale corresponding to each task in each resource scale combination is exclusively occupied; the running performance of the multiple tasks executed in parallel under the target candidate resource allocation scheme under each
- the processing unit is specifically used to: determine a target candidate resource allocation scheme under each resource scale combination from the candidate resource allocation schemes under each resource scale combination according to the operating performance of each task in the case of exclusively occupying a part of the resource scale among the candidate resource scales corresponding to each task, the candidate resources corresponding to each task indicated by the candidate resource allocation schemes under each group of resource scale combinations are continuous, and the overall operating performance of the multiple tasks in the case of exclusively occupying the resource scale corresponding to each task in each resource scale combination under the target candidate resource allocation scheme under each resource scale combination is better than the overall operating performance of the multiple tasks in the case of exclusively occupying the resource scale corresponding to each task in each resource scale combination under other candidate resource allocation schemes under each resource scale combination.
- the processing unit is specifically used to: construct fluctuation coefficient models for multiple tasks based on the operating performance data of multiple tasks, the fluctuation coefficient models for multiple tasks are respectively used to predict the fluctuation coefficients of multiple tasks corresponding to the resource allocation schemes input into the fluctuation coefficient models of multiple tasks; determine the fluctuation coefficients of multiple tasks corresponding to the target candidate resource allocation schemes under each resource scale combination in multiple resource scale combinations according to the fluctuation coefficient models of multiple tasks.
- the multiple tasks include tasks corresponding to multiple applications, and each of the multiple applications corresponds to one task.
- the multiple tasks include tasks corresponding to multiple functional modules in an application, and each of the multiple functional modules corresponds to one task.
- unit herein may be implemented in software and/or hardware form and is not specifically limited thereto.
- a "unit" may be a software program, a hardware circuit, or a combination of the two that implements the above functions.
- the implementation of the processing unit is described below by taking the processing unit as an example.
- the implementation of the acquisition unit and the output unit can refer to the implementation of the processing unit.
- the processing unit may include code running on a computing instance.
- the computing instance may include at least one of a physical host (computing device), a virtual machine, and a container.
- the computing instance may be one or more.
- the processing unit may include code running on multiple hosts/virtual machines/containers. It should be noted that the multiple hosts/virtual machines/containers used to run the code may be distributed in the same region or in different regions. Furthermore, the multiple hosts/virtual machines/containers used to run the code may be distributed in the same availability zone (AZ) or in different AZs, each AZ including one data center or multiple data centers with similar geographical locations. Generally, a region may include multiple AZs.
- AZ availability zone
- VPC virtual private cloud
- multiple hosts/virtual machines/containers used to run the code can be distributed in the same virtual private cloud (VPC) or in multiple VPCs.
- VPC virtual private cloud
- a VPC is set up in a region.
- a communication gateway needs to be set up in each VPC to achieve interconnection between VPCs through the communication gateway.
- the processing unit may include at least one computing device, such as a server, etc.
- the processing unit may also be a device implemented by an application-specific integrated circuit (ASIC) or a programmable logic device (PLD), etc.
- ASIC application-specific integrated circuit
- PLD programmable logic device
- the PLD may be a complex programmable logical device (CPLD), a field-programmable gate array (FPGA), a generic array logic (GAL), or any combination thereof.
- CPLD complex programmable logical device
- FPGA field-programmable gate array
- GAL generic array logic
- the multiple computing devices included in the processing unit can be distributed in the same region or in different regions.
- the multiple computing devices included in the processing unit can be distributed in the same AZ or in different AZs.
- the multiple computing devices included in the processing unit can be distributed in the same VPC or in multiple VPCs.
- the multiple computing devices can be any combination of computing devices such as servers, ASICs, PLDs, CPLDs, FPGAs, and GALs.
- modules of each example described in the embodiments of the present application can be implemented by electronic hardware, or a combination of computer software and electronic hardware. Whether these functions are performed in hardware or software depends on the specific application and design constraints of the technical solution. Professional and technical personnel can use different methods to implement the described functions for each specific application, but such implementation should not be considered to be beyond the scope of the present application.
- the processing unit can be used to execute any step in the resource allocation method
- the acquisition unit can be used to execute any step in the resource allocation method
- the output unit can be used to execute any step in the resource allocation method.
- the steps that the acquisition unit, the processing unit, and the output unit are responsible for implementing can be specified as needed.
- the full functions of the device 1100 are realized by respectively implementing different steps in the resource allocation method by the acquisition unit, the processing unit, and the output unit.
- the present application also provides a computing device 1000.
- the computing device 1000 includes: a bus 1002, a processor 1004, a memory 1006, and a communication interface 1008.
- the processor 1004, the memory 1006, and the communication interface 1008 communicate with each other through the bus 1002.
- the computing device 1000 may be a server or a terminal device. It should be understood that the present application does not limit the number of processors and memories in the computing device 1000.
- the bus 1002 may be a peripheral component interconnect (PCI) bus or an extended industry standard architecture (EISA) bus, etc.
- the bus may be divided into an address bus, a data bus, a control bus, etc.
- FIG. 12 is represented by only one line, but does not mean that there is only one bus or one type of bus.
- the bus 1004 may include a path for transmitting information between various components of the computing device 1000 (e.g., the memory 1006, the processor 1004, and the communication interface 1008).
- Processor 1004 may include any one or more processors such as a central processing unit (CPU), a graphics processing unit (GPU), a microprocessor (MP) or a digital signal processor (DSP).
- processors such as a central processing unit (CPU), a graphics processing unit (GPU), a microprocessor (MP) or a digital signal processor (DSP).
- CPU central processing unit
- GPU graphics processing unit
- MP microprocessor
- DSP digital signal processor
- the memory 1006 may include a volatile memory, such as a random access memory (RAM).
- the processor 1004 may also include a non-volatile memory, such as a read-only memory (ROM), a flash memory, a hard disk drive (HDD), or a solid state drive (SSD).
- ROM read-only memory
- HDD hard disk drive
- SSD solid state drive
- the memory 1006 stores executable program codes, and the processor 1004 executes the executable program codes to respectively implement the functions of the acquisition unit and the unit module, thereby implementing the resource allocation method. That is, the memory 1006 stores instructions for executing the resource allocation method.
- the communication interface 1003 uses a transceiver module such as, but not limited to, a network interface card or a transceiver to implement communication between the computing device 1000 and other devices or a communication network.
- a transceiver module such as, but not limited to, a network interface card or a transceiver to implement communication between the computing device 1000 and other devices or a communication network.
- the embodiment of the present application also provides a computing device cluster.
- the computing device cluster includes at least one computing device.
- the computing device can be a server, such as a central server, an edge server, or a local server in a local data center.
- the computing device can also be a terminal device such as a desktop computer, a laptop computer, or a smart phone.
- the computing device cluster includes at least one computing device 1000.
- the memory 1006 in one or more computing devices 1000 in the computing device cluster may store the same instructions for executing the resource allocation method.
- the memory 1006 of one or more computing devices 1000 in the computing device cluster may also store partial instructions for executing the resource allocation method.
- the combination of one or more computing devices 1000 may jointly execute the instructions for executing the resource allocation method.
- the memory 1006 in different computing devices 1000 in the computing device cluster may store different instructions, which are respectively used to execute part of the functions of the resource allocation apparatus.
- the instructions stored in the memory 1006 in different computing devices 1000 may implement the functions of one or more of the acquisition unit and the processing unit.
- one or more computing devices in the computing device cluster can be connected via a network.
- the network can be a wide area network or a local area network, etc.
- FIG. 14 shows a possible implementation. As shown in FIG. 14 , two computing devices 1000A and 1000B are connected via a network. Specifically, the network is connected via a communication interface in each computing device.
- the memory 1006 in the computing device 1000A stores instructions for executing the functions of the acquisition unit. At the same time, the memory 1006 in the computing device 1000B stores instructions for executing the functions of the processing unit.
- the functions of the computing device 1000A shown in FIG14 may also be completed by multiple computing devices 1000.
- the functions of the computing device 1000B may also be completed by multiple computing devices 1000.
- the present application also provides a computer program product including instructions.
- the computer program product may be software or a program product including instructions that can be run on a computing device or stored in any available medium.
- the computer program product is run on at least one computing device, the at least one computing device executes the method in the present application embodiment.
- the present application embodiment also provides a computer-readable storage medium.
- the computer-readable storage medium can be any available medium that can be stored by a computing device or a data storage device such as a data center containing one or more available media.
- the available medium can be a magnetic medium (e.g., a floppy disk, a hard disk, a tape), an optical medium (e.g., a DVD), or a semiconductor medium (e.g., a solid-state hard disk).
- the computer-readable storage medium includes instructions that instruct a computing device to execute a method in an embodiment of the present application, or instructs a computing device to execute a method in an embodiment of the present application.
- the size of the serial numbers of the above-mentioned processes does not mean the order of execution.
- the execution order of each process should be determined by its function and internal logic, and should not constitute any limitation on the implementation process of the embodiments of the present application.
- the disclosed systems, devices and methods can be implemented in other ways.
- the device embodiments described above are only schematic.
- the division of the units is only a logical function division. There may be other division methods in actual implementation, such as multiple units or components can be combined or integrated into another system, or some features can be ignored or not executed.
- Another point is that the mutual coupling or direct coupling or communication connection shown or discussed can be through some interfaces, indirect coupling or communication connection of devices or units, which can be electrical, mechanical or other forms.
- the units described as separate components may or may not be physically separated, and the components shown as units may or may not be physical units, that is, they may be located in one place or distributed on multiple network units. Some or all of the units may be selected according to actual needs to achieve the purpose of the solution of this embodiment.
- each functional unit in each embodiment of the present application may be integrated into one processing unit, or each unit may exist physically separately, or two or more units may be integrated into one unit.
- the functions are implemented in the form of software functional units and sold or used as independent products, they can be stored in a computer-readable storage medium.
- the technical solution of this application is essentially or partly or partly contributed to the prior art.
- Part of the technical solution can be embodied in the form of a software product, which is stored in a storage medium and includes several instructions for enabling a computer device (which may be a personal computer, a server, or a network device, etc.) to execute all or part of the steps of the method described in each embodiment of the present application.
- the aforementioned storage medium includes: a USB flash drive, a mobile hard disk, a read-only memory (ROM), a random access memory (RAM), a magnetic disk or an optical disk, and other media that can store program codes.
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
Description
Ti=γi(Ti,init+Ti,comp+Ti,comm);
Ti′=Ti,init+Ti,comp+Ti,comm;
Ti,init=αi,1ni+αi,2;
Ti,comm=βilog ni;
Claims (26)
- 一种资源分配的方法,其特征在于,包括:获取多个任务中的每个任务的运行性能数据,所述多个任务中的每个任务的运行性能数据包括所述每个任务在所述每个任务对应的样本资源规模下的运行性能;根据所述多个任务中的每个任务的运行性能数据确定所述多个任务中的每个任务在独占所述每个任务对应的候选资源规模的情况下的运行性能;根据所述多个任务中的每个任务在独占所述每个任务对应的候选资源规模的情况下的运行性能确定所述多个任务中的每个任务对应的目标资源。
- 根据权利要求1所述的方法,其特征在于,所述每个任务对应的目标资源包括所述每个任务对应的一个或多个进程,所述一个或多个进程分别与一个或多个资源槽绑定。
- 根据权利要求2所述的方法,其特征在于,所述多个进程为多个连续的进程,所述多个资源槽为多个连续的资源槽。
- 根据权利要求1至3中任一项所述的方法,其特征在于,所述多个任务包括第一任务,根据所述第一任务的运行性能数据确定所述第一任务在独占所述第一任务对应的候选资源规模的情况下的运行性能,包括:根据所述第一任务的运行性能数据构建所述第一任务的第一性能模型,其中,所述第一任务的第一性能模型用于预测所述第一任务在独占输入至所述第一任务的性能模型的资源规模的情况下的运行性能;根据所述第一任务的第一性能模型确定所述第一任务在独占所述第一任务对应的第一候选资源规模的情况下的运行性能,所述第一任务对应的候选资源规模包括所述第一任务对应的第一候选资源规模。
- 根据权利要求1至4中任一项所述的方法,其特征在于,所述每个任务对应的候选资源规模为所述每个任务对应的所有候选资源规模中的部分资源规模,所述每个任务对应的候选资源规模中的部分资源规模与所述每个任务在独占所述每个任务对应的候选资源规模中的部分资源规模的情况下的运行性能满足第一预设条件。
- 根据权利要求5所述的方法,其特征在于,所述第一预设条件包括:所述每个任务在独占所述每个任务对应的候选资源规模中的部分资源规模的情况下的运行性能与所述每个任务对应的候选资源规模中的部分资源规模之间的比值大于或等于第一阈值,所述第一阈值为任务对资源规模的利用效率的阈值。
- 根据权利要求5或6所述的方法,其特征在于,所述根据所述多个任务中的每个任务在独占所述每个任务对应的候选资源规模的情况下的运行性能确定所述多个任务中的每个任务对应的目标资源,包括:根据所述多个任务中的每个任务在独占所述每个任务对应的候选资源规模中的部分资源规模的情况下的运行性能确定多种资源规模组合下的目标候选资源分配方案,所述多种资源规模组合基于所述每个任务对应的候选资源规模中的部分资源规模的组合确定,所述多种资源规模组合中的每种资源规模组合下的目标候选资源分配方案指示所述每种资源规模组合下所述多个任务中的每个任务对应的目标候选资源;确定所述多种资源规模组合中的每种资源规模组合下的目标候选资源分配方案对应的多个任务的波动系数,所述每种资源规模组合下的目标候选资源分配方案对应的多个任务的波动系数分别用于指示所述多个任务在所述每种资源规模组合下的目标候选资源分配方案下并行执行的运行性能和所述多个任务在独占所述每种资源规模组合中的所述每个任务对应的资源规模的情况下的运行性能之间的差异;根据所述每种资源规模组合下的目标候选资源分配方案对应的多个任务的波动系数预测所述多个任务在所述每种资源规模组合下的目标候选资源分配方案下并行执行的运行性能;根据所述多个任务在所述多种资源规模组合下的目标候选资源分配方案下并行执行的运行性能从所述多种资源规模组合下的目标候选资源分配方案中确定所述多个任务中的每个任务对应的目标资源。
- 根据权利要求7所述的方法,其特征在于,所述根据所述多个任务中的每个任务在独占所述每个任务对应的候选资源规模中的部分资源规模的情况下的运行性能确定多种资源规模组合下的目标候选资源分配方案,包括:根据所述多个任务中的每个任务在独占所述每个任务对应的候选资源规模中的部分资源规模的情况 下的运行性能从所述每种资源规模组合下的候选资源分配方案中确定所述每种资源规模组合下的目标候选资源分配方案,所述每组资源规模组合下的候选资源分配方案所指示的每个任务对应的候选资源连续,所述多个任务在所述每种资源规模组合下的目标候选资源分配方案下独占所述每种资源规模组合中的所述每个任务对应的资源规模的情况下的整体运行性能优于所述多个任务在所述每种资源规模组合下的其他候选资源分配方案下独占所述每种资源规模组合中的所述每个任务对应的资源规模的情况下的整体运行性能。
- 根据权利要求7或8所述的方法,其特征在于,所述确定所述多种资源规模组合中的每种资源规模组合下的目标候选资源分配方案对应的多个任务的波动系数,包括:根据所述多个任务的运行性能数据构建所述多个任务的波动系数模型,所述多个任务的波动系数模型分别用于预测输入至所述多个任务的波动系数模型的资源分配方案对应的多个任务的波动系数;根据所述多个任务的波动系数模型分别确定所述多种资源规模组合中的每种资源规模组合下的目标候选资源分配方案对应的多个任务的波动系数。
- 根据权利要求1至9中任一项所述的方法,其特征在于,所述多个任务包括多个应用对应的任务,所述多个应用中的每个应用对应一个任务。
- 根据权利要求1至9中任一项所述的方法,其特征在于,所述多个任务包括一个应用中的多个功能模块对应的任务,所述多个功能模块中的每个功能模块对应一个任务。
- 一种资源分配的装置,其特征在于,包括:获取单元,用于获取多个任务中的每个任务的运行性能数据,所述多个任务中的每个任务的运行性能数据包括所述每个任务在所述每个任务对应的样本资源规模下的运行性能;处理单元,用于:根据所述多个任务中的每个任务的运行性能数据确定所述多个任务中的每个任务在独占所述每个任务对应的候选资源规模的情况下的运行性能;根据所述多个任务中的每个任务在独占所述每个任务对应的候选资源规模的情况下的运行性能确定所述多个任务中的每个任务对应的目标资源。
- 根据权利要求12所述的装置,其特征在于,所述每个任务对应的目标资源包括所述每个任务对应的一个或多个进程,所述一个或多个进程分别与一个或多个资源槽绑定。
- 根据权利要求13所述的装置,其特征在于,所述多个进程为多个连续的进程,所述多个资源槽为多个连续的资源槽。
- 根据权利要求12至14中任一项所述的装置,其特征在于,所述多个任务包括第一任务,所述处理单元具体用于:根据所述第一任务的运行性能数据构建所述第一任务的第一性能模型,其中,所述第一任务的第一性能模型用于预测所述第一任务在独占输入至所述第一任务的性能模型的资源规模的情况下的运行性能;根据所述第一任务的第一性能模型确定所述第一任务在独占所述第一任务对应的第一候选资源规模的情况下的运行性能,所述第一任务对应的候选资源规模包括所述第一任务对应的第一候选资源规模。
- 根据权利要求12至15中任一项所述的装置,其特征在于,所述每个任务对应的候选资源规模为所述每个任务对应的所有候选资源规模中的部分资源规模,所述每个任务对应的候选资源规模中的部分资源规模与所述每个任务在独占所述每个任务对应的候选资源规模中的部分资源规模的情况下的运行性能满足第一预设条件。
- 根据权利要求16所述的装置,其特征在于,所述第一预设条件包括:所述每个任务在独占所述每个任务对应的候选资源规模中的部分资源规模的情况下的运行性能与所述每个任务对应的候选资源规模中的部分资源规模之间的比值大于或等于第一阈值,所述第一阈值为任务对资源规模的利用效率的阈值。
- 根据权利要求16或17所述的装置,其特征在于,所述处理单元具体用于:根据所述多个任务中的每个任务在独占所述每个任务对应的候选资源规模中的部分资源规模的情况下的运行性能确定多种资源规模组合下的目标候选资源分配方案,所述多种资源规模组合基于所述每个任务对应的候选资源规模中的部分资源规模的组合确定,所述多种资源规模组合中的每种资源规模组合下的目标候选资源分配方案指示所述每种资源规模组合下所述多个任务中的每个任务对应的目标候选资源;确定所述多种资源规模组合中的每种资源规模组合下的目标候选资源分配方案对应的多个任务的波动系数,所述每种资源规模组合下的目标候选资源分配方案对应的多个任务的波动系数分别用于指示所述多个任务在所述每种资源规模组合下的目标候选资源分配方案下并行执行的运行性能和所述多个任务在独占所述每种资源规模组合中的所述每个任务对应的资源规模的情况下的运行性能之间的差异;根据所述每种资源规模组合下的目标候选资源分配方案对应的多个任务的波动系数预测所述多个任务在所述每种资源规模组合下的目标候选资源分配方案下并行执行的运行性能;根据所述多个任务在所述多种资源规模组合下的目标候选资源分配方案下并行执行的运行性能从所述多种资源规模组合下的目标候选资源分配方案中确定所述多个任务中的每个任务对应的目标资源。
- 根据权利要求18所述的装置,其特征在于,所述处理单元具体用于:根据所述多个任务中的每个任务在独占所述每个任务对应的候选资源规模中的部分资源规模的情况下的运行性能从所述每种资源规模组合下的候选资源分配方案中确定所述每种资源规模组合下的目标候选资源分配方案,所述每组资源规模组合下的候选资源分配方案所指示的每个任务对应的候选资源连续,所述多个任务在所述每种资源规模组合下的目标候选资源分配方案下独占所述每种资源规模组合中的所述每个任务对应的资源规模的情况下的整体运行性能优于所述多个任务在所述每种资源规模组合下的其他候选资源分配方案下独占所述每种资源规模组合中的所述每个任务对应的资源规模的情况下的整体运行性能。
- 根据权利要求18或19所述的装置,其特征在于,所述处理单元具体用于:根据所述多个任务的运行性能数据构建所述多个任务的波动系数模型,所述多个任务的波动系数模型分别用于预测输入至所述多个任务的波动系数模型的资源分配方案对应的多个任务的波动系数;根据所述多个任务的波动系数模型分别确定所述多种资源规模组合中的每种资源规模组合下的目标候选资源分配方案对应的多个任务的波动系数。
- 根据权利要求12至20中任一项所述的装置,其特征在于,所述多个任务包括多个应用对应的任务,所述多个应用中的每个应用对应一个任务。
- 根据权利要求12至20中任一项所述的装置,其特征在于,所述多个任务包括一个应用中的多个功能模块对应的任务,所述多个功能模块中的每个功能模块对应一个任务。
- 一种资源分配的装置,其特征在于,包括处理器和存储器,所述处理器用于执行所述存储器中存储的指令,以使得所述装置执行如权利要求1至11中任一项所述的方法。
- 一种计算设备集群,其特征在于,包括至少一个计算设备,每个计算设备包括处理器和存储器;所述至少一个计算设备的处理器用于执行所述至少一个计算设备的存储器中存储的指令,以使得所述计算设备集群执行如权利要求1至11中任一项所述的方法。
- 一种计算机可读存储介质,其特征在于,包括计算机程序指令,当所述计算机程序指令由计算设备集群执行时,所述计算设备集群执行如权利要求1至11中任一项所述的方法。
- 一种包含指令的计算机程序产品,其特征在于,当所述指令被计算设备集群运行时,使得所述计算设备集群执行如权利要求1至11中任一项所述的方法。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| EP23902450.8A EP4625168A4 (en) | 2022-12-16 | 2023-11-22 | METHOD AND APPARATUS FOR RESOURCE ALLOCATION |
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202211624304.6A CN118210615A (zh) | 2022-12-16 | 2022-12-16 | 资源分配的方法及装置 |
| CN202211624304.6 | 2022-12-16 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2024125251A1 true WO2024125251A1 (zh) | 2024-06-20 |
Family
ID=91455292
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/CN2023/133357 Ceased WO2024125251A1 (zh) | 2022-12-16 | 2023-11-22 | 资源分配的方法及装置 |
Country Status (3)
| Country | Link |
|---|---|
| EP (1) | EP4625168A4 (zh) |
| CN (1) | CN118210615A (zh) |
| WO (1) | WO2024125251A1 (zh) |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN119512835A (zh) * | 2024-10-31 | 2025-02-25 | 浪潮云信息技术股份公司 | 云平台自适应适配国产ai加速卡的装置及方法 |
| US20250274401A1 (en) * | 2025-03-24 | 2025-08-28 | Chengdu Qinchuan Iot Technology Co., Ltd. | Methods and systems for dynamic computing resource allocation based on iiot data center |
Families Citing this family (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN119378944A (zh) * | 2024-12-30 | 2025-01-28 | 山东省计算中心(国家超级计算济南中心) | 使用不稳定清洁能源的零碳数据中心资源调度方法及系统 |
| CN120723476A (zh) * | 2025-08-28 | 2025-09-30 | 苏州元脑智能科技有限公司 | 计算资源分配方法、电子设备、存储介质及程序产品 |
Citations (7)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2010160552A (ja) * | 2009-01-06 | 2010-07-22 | Nec Corp | リソース配分装置、その方法及びプログラム |
| CN107045456A (zh) * | 2016-02-05 | 2017-08-15 | 华为技术有限公司 | 一种资源分配方法及资源管理器 |
| CN112328378A (zh) * | 2020-11-05 | 2021-02-05 | 南京星环智能科技有限公司 | 任务调度方法、计算机设备及存储介质 |
| CN113485838A (zh) * | 2021-07-26 | 2021-10-08 | 北京沃东天骏信息技术有限公司 | 服务器分配方法及装置、电子设备和计算机可读存储介质 |
| US20220012089A1 (en) * | 2020-07-13 | 2022-01-13 | Accenture Global Solutions Limited | System for computational resource prediction and subsequent workload provisioning |
| CN114371926A (zh) * | 2022-03-22 | 2022-04-19 | 清华大学 | 一种精细化资源分配方法、装置、电子设备及介质 |
| CN115098257A (zh) * | 2022-06-23 | 2022-09-23 | 中国电信股份有限公司 | 一种资源调度方法、装置、设备以及存储介质 |
Family Cites Families (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| EP3447642B1 (en) * | 2017-08-24 | 2022-03-23 | Tata Consultancy Services Limited | System and method for predicting application performance for large data size on big data cluster |
-
2022
- 2022-12-16 CN CN202211624304.6A patent/CN118210615A/zh active Pending
-
2023
- 2023-11-22 WO PCT/CN2023/133357 patent/WO2024125251A1/zh not_active Ceased
- 2023-11-22 EP EP23902450.8A patent/EP4625168A4/en active Pending
Patent Citations (7)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2010160552A (ja) * | 2009-01-06 | 2010-07-22 | Nec Corp | リソース配分装置、その方法及びプログラム |
| CN107045456A (zh) * | 2016-02-05 | 2017-08-15 | 华为技术有限公司 | 一种资源分配方法及资源管理器 |
| US20220012089A1 (en) * | 2020-07-13 | 2022-01-13 | Accenture Global Solutions Limited | System for computational resource prediction and subsequent workload provisioning |
| CN112328378A (zh) * | 2020-11-05 | 2021-02-05 | 南京星环智能科技有限公司 | 任务调度方法、计算机设备及存储介质 |
| CN113485838A (zh) * | 2021-07-26 | 2021-10-08 | 北京沃东天骏信息技术有限公司 | 服务器分配方法及装置、电子设备和计算机可读存储介质 |
| CN114371926A (zh) * | 2022-03-22 | 2022-04-19 | 清华大学 | 一种精细化资源分配方法、装置、电子设备及介质 |
| CN115098257A (zh) * | 2022-06-23 | 2022-09-23 | 中国电信股份有限公司 | 一种资源调度方法、装置、设备以及存储介质 |
Non-Patent Citations (1)
| Title |
|---|
| See also references of EP4625168A1 |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN119512835A (zh) * | 2024-10-31 | 2025-02-25 | 浪潮云信息技术股份公司 | 云平台自适应适配国产ai加速卡的装置及方法 |
| US20250274401A1 (en) * | 2025-03-24 | 2025-08-28 | Chengdu Qinchuan Iot Technology Co., Ltd. | Methods and systems for dynamic computing resource allocation based on iiot data center |
Also Published As
| Publication number | Publication date |
|---|---|
| EP4625168A4 (en) | 2026-03-18 |
| EP4625168A1 (en) | 2025-10-01 |
| CN118210615A (zh) | 2024-06-18 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| WO2024125251A1 (zh) | 资源分配的方法及装置 | |
| Guo et al. | A survey of FPGA-based neural network accelerator | |
| US8676874B2 (en) | Data structure for tiling and packetizing a sparse matrix | |
| Gautam et al. | A survey on job scheduling algorithms in big data processing | |
| CN110619595A (zh) | 一种基于多fpga加速器互联的图计算优化方法 | |
| US20120210081A1 (en) | Optimizing Output Vector Data Generation Using A Formatted Matrix Data Structure | |
| WO2017124713A1 (zh) | 一种数据模型的确定方法及装置 | |
| US20200073677A1 (en) | Hybrid computing device selection analysis | |
| WO2024245037A1 (zh) | 虚拟计算资源的调度方法及控制面组件 | |
| CN110187969A (zh) | 一种基于gpu的分布式大数据并行计算方法 | |
| US11194623B2 (en) | Resource scheduling method and related apparatus | |
| CN114443236A (zh) | 一种任务处理方法、装置、系统、设备及介质 | |
| Clemente-Castelló et al. | Performance model of mapreduce iterative applications for hybrid cloud bursting | |
| Fujiki et al. | Near-memory data transformation for efficient sparse matrix multi-vector multiplication | |
| JP2012530976A (ja) | 仮想化超並列プログラマブルハードウェアによる正規表現の検索 | |
| Cong et al. | CPU-FPGA coscheduling for big data applications | |
| CN110187970A (zh) | 一种基于Hadoop MapReduce的分布式大数据并行计算方法 | |
| WO2024255174A1 (zh) | 基于异构计算的参数处理方法和装置 | |
| CN110222410B (zh) | 一种基于Hadoop MapReduce的电磁环境仿真方法 | |
| Shepovalov et al. | FPGA and GPU-based acceleration of ML workloads on Amazon cloud-A case study using gradient boosted decision tree library | |
| CN119046022A (zh) | 一种分布式并行方案的确定方法、装置、设备及介质 | |
| CN106155822A (zh) | 一种处理能力评估方法及装置 | |
| Kim et al. | A parallel migration scheme for fast virtual machine relocation on a cloud cluster | |
| CN107493205B (zh) | 一种设备集群扩容性能预测方法及装置 | |
| Dhar et al. | Leveraging dynamic partial reconfiguration with scalable ILP based task scheduling |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| 121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 23902450 Country of ref document: EP Kind code of ref document: A1 |
|
| WWE | Wipo information: entry into national phase |
Ref document number: 2023902450 Country of ref document: EP |
|
| ENP | Entry into the national phase |
Ref document number: 2023902450 Country of ref document: EP Effective date: 20250625 |
|
| NENP | Non-entry into the national phase |
Ref country code: DE |
|
| WWP | Wipo information: published in national office |
Ref document number: 2023902450 Country of ref document: EP |