WO2022262167A1 - Cluster resource scheduling method and apparatus, electronic device and storage medium - Google Patents

Cluster resource scheduling method and apparatus, electronic device and storage medium Download PDF

Info

Publication number
WO2022262167A1
WO2022262167A1 PCT/CN2021/126478 CN2021126478W WO2022262167A1 WO 2022262167 A1 WO2022262167 A1 WO 2022262167A1 CN 2021126478 W CN2021126478 W CN 2021126478W WO 2022262167 A1 WO2022262167 A1 WO 2022262167A1
Authority
WO
WIPO (PCT)
Prior art keywords
task
gpu
cluster
scheduling
deep learning
Prior art date
Application number
PCT/CN2021/126478
Other languages
French (fr)
Chinese (zh)
Inventor
孙鹏
梁若凡
颜深根
Original Assignee
上海商汤科技开发有限公司
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by 上海商汤科技开发有限公司 filed Critical 上海商汤科技开发有限公司
Publication of WO2022262167A1 publication Critical patent/WO2022262167A1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/54Indexing scheme relating to G06F9/54
    • G06F2209/548Queue

Definitions

  • the present application relates to the technical field of distributed systems, in particular to a cluster resource scheduling method and device, electronic equipment and storage media.
  • Embodiments of the present application provide a cluster resource scheduling method and device, electronic equipment, and a storage medium. By developing the task scheduling strategy and the resource allocation strategy in the first running environment, it is beneficial to reduce the development cost of the resource scheduling algorithm.
  • the embodiment of the present application provides a cluster resource scheduling method, the method including:
  • the resource scheduling request includes request parameters
  • Adjusting the task scheduling policy and the preset resource allocation policy and deploying the adjusted task scheduling policy and the preset resource allocation policy in the second operating environment.
  • the request parameter includes the task type of the deep learning task
  • the task scheduling policy is executed according to the request parameter to schedule the resource to request the corresponding deep learning task Added to the task queue, including:
  • the request parameters also include the average completion time and average waiting time of historical deep learning tasks
  • the implementation of the preset resource allocation strategy is obtained from the GPU cluster Identify at least one target GPU, including:
  • the target task to be requested by the deep learning task is determined from at least one task partition of the GPU cluster according to the task type of the deep learning task Before partitioning, the method also includes:
  • Nodes are classified according to the switches connected to the nodes in the GPU cluster to obtain at least one network topology.
  • a first preset resource allocation strategy or a second preset resource allocation strategy is executed according to the amount of GPU resources to be requested, so as to determine from the target task partition After obtaining the at least one target GPU, the method also includes:
  • the second operating environment also includes the graphics processing unit GPU cluster, and a cluster manager SLURM is used to monitor the GPU resources in the graphics processing unit GPU cluster
  • the management, deploying the adjusted task scheduling policy and the preset resource allocation policy in the second operating environment includes:
  • the task scheduling strategy includes a combination of one or more of a preemptive scheduling strategy, a non-preemptive scheduling strategy, and a learning scheduling strategy.
  • the obtaining a resource scheduling request for a GPU in a graphics processor GPU cluster includes:
  • the resource scheduling request through the preset interface sacct API provided by the cluster manager SLURM; the resource scheduling request is historical deep learning processed by the graphics processor GPU cluster in the second operating environment
  • the task record for the task Obtain the resource scheduling request through the preset interface sacct API provided by the cluster manager SLURM; the resource scheduling request is historical deep learning processed by the graphics processor GPU cluster in the second operating environment
  • the task record for the task Obtain the resource scheduling request through the preset interface sacct API provided by the cluster manager SLURM; the resource scheduling request is historical deep learning processed by the graphics processor GPU cluster in the second operating environment The task record for the task.
  • the embodiment of the present application provides a cluster resource scheduling device, which includes:
  • a transceiver unit configured to acquire a resource scheduling request for a GPU in a GPU cluster in a first operating environment; the resource scheduling request includes request parameters;
  • the processing unit is configured to execute a task scheduling strategy according to the request parameter, add the deep learning task corresponding to the resource scheduling request to the task queue, and execute a preset resource allocation strategy to determine at least a target GPU;
  • the processing unit is further configured to dispatch the deep learning task to the at least one target GPU for processing
  • the processing unit is further configured to adjust the task scheduling policy and the preset resource allocation policy, and deploy the adjusted task scheduling policy and the preset resource allocation policy in the second running environment.
  • an embodiment of the present application provides an electronic device, including: a processor, the processor is connected to a memory, the memory is used to store a computer program, and the processor is used to execute the computer program stored in the memory , so that the electronic device executes the method described in the first aspect.
  • an embodiment of the present application provides a computer-readable storage medium, where a computer program is stored in the computer-readable storage medium, and the computer program causes a computer to execute the method as described in the first aspect.
  • the embodiment of the present application provides a computer program product, including computer readable codes, or a non-volatile computer readable storage medium carrying computer readable codes, when the computer readable codes are stored in the electronic device
  • the processor in the electronic device executes to implement the method as described in the first aspect.
  • the resource scheduling request for the GPU in the graphics processor GPU cluster can be obtained in the first operating environment, and then the task scheduling policy can add the deep learning task corresponding to the resource scheduling request to the task In the queue, and execute the preset resource allocation strategy to determine at least one target GPU from the graphics processor GPU cluster, then schedule the deep learning task to at least one target GPU for processing, adjust the task scheduling strategy and the preset resource allocation strategy, Deploy the adjusted task scheduling policy and preset resource allocation policy in the second operating environment.
  • the first operating environment is used to test and adjust the task scheduling strategy and resource allocation strategy, and the tested and adjusted task scheduling strategy and resource allocation strategy are deployed in the second operating environment for resource scheduling, which is conducive to reducing the number of resources directly in the second operating environment.
  • the deployment process consumption caused by the testing and adjustment of task scheduling strategy and resource allocation strategy in the environment can reduce the development cost of resource scheduling algorithm.
  • FIG. 1 is a schematic diagram of an application environment provided by an embodiment of the present application
  • FIG. 2 is a schematic diagram of the architecture of a cluster resource scheduling system provided by an embodiment of the present application
  • FIG. 3 is a schematic diagram of a visualization array provided by an embodiment of the present application.
  • FIG. 4 is a schematic flowchart of a cluster resource scheduling method provided by an embodiment of the present application.
  • FIG. 5 is a schematic flowchart of another cluster resource scheduling method provided by the embodiment of the present application.
  • FIG. 6 is a block diagram of functional units of a cluster resource scheduling device provided in an embodiment of the present application.
  • FIG. 7 is a schematic structural diagram of an electronic device provided by an embodiment of the present application.
  • FIG. 1 is a schematic diagram of an application environment provided by an embodiment of the present application.
  • the application environment includes a user terminal, an algorithm node, a resource scheduling node, and a graphics processor GPU cluster.
  • the user terminal includes but not limited to smart phones, tablet computers, desktop computers and other devices
  • the graphics processing unit GPU cluster is a computer cluster, which includes multiple computing nodes, and each computer point is equipped with at least one GPU.
  • the user terminal is used to submit a deep learning task processing request to the algorithm node, such as the training of the neural network model, etc.
  • the algorithm node When the algorithm node receives the deep learning task processing request, it submits the resource scheduling request to the resource scheduling node, and the resource scheduling node Execute resource scheduling algorithms when receiving resource scheduling requests, such as task scheduling policies, resource allocation policies, etc., to search for GPU resources in the graphics processor GPU cluster, and return the found available GPU resources to the algorithm node , and dispatch deep learning tasks to the found available GPU resources for execution or processing.
  • resource scheduling requests such as task scheduling policies, resource allocation policies, etc.
  • the algorithm node may be a device storing an AI (Artificial Intelligence, artificial intelligence) algorithm
  • the device may be a server of a user terminal
  • the algorithm node and the resource scheduling node may be the same device or different devices .
  • the simulator running in the resource scheduling node, which can maintain the nodes in the graphics processor GPU cluster, such as the usage of the GPU in the node, the CPU (central processing unit, central processing unit) Usage, memory usage, list of running tasks in the node, etc.
  • the simulator can support the development of scheduling algorithms, such as testing and adjusting the scheduling algorithm in the simulator, which can reduce the scheduling algorithm directly in the actual cluster Deployment process consumption caused by testing and adjustment, thereby reducing the development cost of resource scheduling algorithms.
  • Figure 2 is a schematic diagram of the architecture of a cluster resource scheduling system provided by the embodiment of this application, as shown in Figure 2, the architecture mainly includes the actual SLURM cluster and cluster simulation
  • the cluster simulator can be a simulator running on a resource scheduling node.
  • the cluster simulator can maintain the usage of each node in the actual SLURM cluster, that is, the same as the actual SLURM cluster, the cluster simulator also uses task partitions- Three-level management model for nodes-resource GPUs.
  • the deep learning tasks executed on the actual SLURM cluster are submitted to the actual scheduler Real Scheduler (scheduler in the actual SLURM cluster), and the actual scheduler Real Scheduler makes resource scheduling requests to the actual SLURM cluster, and the actual SLURM cluster allocates resources to the available nodes , and return to the actual scheduler Real Scheduler, and the actual scheduler Real Scheduler performs task scheduling.
  • the cluster simulator is driven by the configuration file slurm.conf of the cluster manager SLURM for cluster simulation, that is, the cluster simulator maintains the same graphics processor GPU cluster as the actual SLURM cluster, and the scheduling on the cluster simulator is determined by the actual SLURM cluster Driven by the task record trace of the historical deep learning tasks executed on the network, the simulation scheduler Sim Scheduler (the scheduler in the cluster simulator) sends a resource scheduling request to the cluster simulator according to the task record trace.
  • the simulation scheduler Sim Scheduler will Execute the task scheduling strategy to queue the deep learning tasks corresponding to the task record trace, and the cluster simulator will execute the resource allocation strategy to determine the available GPU resources from the graphics processor GPU cluster for resource allocation, and return to the simulation scheduler Sim Scheduler , and the task scheduling is performed by the simulation scheduler Sim Scheduler.
  • the task scheduling strategy in the above system can be first come first service (First Come First Service, FCFS), multi-level feedback queue (Multi-Level Feedback Queue, MLFQ), short job priority (Shortest Job First, SJF) , Reinforcement Learning (Reinforcement Learning, RL), and so on.
  • the resource allocation strategy can be the first-fit algorithm first-fit, the best-fit algorithm best-fit, the computing power platform free-gpu provided by Google, and so on.
  • the simulation scheduler Sim Scheduler also visualizes the simulation results of various scheduling algorithms on the cluster simulator.
  • the GPU usage in the graphics processor GPU cluster can be dynamically displayed in the form of a histogram, or it can also be combined with The array shown in Figure 3 is visualized.
  • each large rectangle represents a node in the graphics processor GPU cluster
  • the numbers in the large rectangle represent node identifiers, such as: 43, 55, 143, etc.
  • the large rectangle represents the GPU usage in that node.
  • the visual display on the cluster simulator may also be presented in other forms, and the histogram and the array are merely examples and do not impose any limitation on the embodiment of the present application.
  • FIG. 4 is a schematic flowchart of a cluster resource scheduling method provided by an embodiment of the present application. This method is applied to resource scheduling nodes. As shown in Figure 4, the method includes the following steps:
  • 401 In a first running environment, acquire a resource scheduling request for a GPU in a GPU cluster; the resource scheduling request includes a request parameter.
  • the first operating environment refers to the cluster simulator, that is, the solution is to test and simulate the resource scheduling algorithm on the cluster simulator.
  • the resource scheduling request is the task record of the historical deep learning tasks processed on the graphics processor GPU cluster in the second operating environment
  • the second operating environment refers to the actual SLURM cluster
  • the cluster simulator and the actual SLURM cluster maintain the same graphics processor GPU cluster (or node), therefore, the resource scheduling on the cluster simulator can be processed on the graphics processor GPU cluster in the actual SLURM cluster
  • the task record trace records the relevant parameters of the historical deep learning task, such as the average completion time, average waiting time, GPU usage, task volume, and task type.
  • the task record trace of the task is used as training data to drive the cluster simulator, which can make the testing and simulation of the scheduling algorithm closer to the actual situation.
  • the resource scheduling request can be obtained through the preset interface sacct API provided by the cluster manager SLURM, that is, the above-mentioned task record trace can be obtained through the preset interface sacct API.
  • the request parameter includes the task type of the deep learning task, for example, the task type may be deep learning model training or online prediction.
  • the above-mentioned execution of the task scheduling strategy according to the request parameters adds the deep learning task corresponding to the resource scheduling request to the task queue, including:
  • the operation of classifying the nodes in the GPU cluster is performed.
  • the nodes are classified according to the task types of the nodes in the GPU cluster to obtain at least one Task partitioning, such as taking the node that performs model training as a task partition, taking the node that performs online prediction as a task partition, and so on.
  • Each task partition has its own independent resource pool and task queue, and each task partition is preset with different task scheduling policies.
  • the nodes are classified according to the switches connected to the nodes in the GPU cluster to obtain at least one network topology.
  • nodes 43, 55, 46, and 52 are connected to a switch, and the four nodes are regarded as a network topology
  • the nodes 94, 97, 100, and 101 are connected to a switch
  • the four nodes are regarded as a network topology, and so on.
  • the operation of classifying the nodes according to the task types of the nodes in the GPU cluster can be completed by calling the configuration file slurm.conf of the cluster manager SLURM or the preset interface sinfo API.
  • the operation of classifying the nodes according to the switches connected to the nodes in the GPU cluster can be completed by calling the preset interface iblinkinfo API of the wireless bandwidth infiniband.
  • the task partition whose task type is the same as the task type of the deep learning task corresponding to the resource scheduling request is used as the target task partition, and the preset task scheduling strategy of the target task partition is executed to make the deep learning task Added to the task queue of the target task partition to wait.
  • the task scheduling strategy includes a combination of one or more of a preemptive scheduling strategy, a non-preemptive scheduling strategy and a learning scheduling strategy.
  • a deep learning task can be executed using only one task scheduling strategy, or it can be executed in parts using different task scheduling strategies.
  • the preemptive scheduling strategy can be MLFQ, etc.
  • This type of task scheduling strategy allows the suspension and recovery of running tasks, which can be realized through the access interface provided by the cluster simulator.
  • developers can also configure different configurations for this type of task scheduling strategy.
  • the non-preemptive scheduling strategy can be FCFS, SJF, etc.
  • the learning scheduling strategy can be based on machine learning, reinforcement learning, reverse reinforcement Learning strategy, the development of this type of task scheduling strategy often requires a large number of task record traces as training data, after multiple decision iterations to achieve a better decision result, which is often difficult to achieve in the actual environment, through the cluster Simulating with a simulator helps to reduce the development difficulty of this type of task scheduling strategy.
  • developers can use various task scheduling strategies for testing and simulation on the cluster simulator, so it is more flexible.
  • the aforementioned implementation of the preset resource allocation strategy determines at least one target GPU from the GPU cluster, including:
  • the amount of GPU resources to be requested refers to how many GPUs are required to execute the deep learning task, such as 4 GPUs with a computing power of 3.7, 8 GPUs with a computing power of 2.5, etc., that is, by recording the parameters in the task trace Learning can calculate the GPU resources required for a deep learning task.
  • a first preset resource allocation strategy or a second preset resource allocation strategy may be executed according to the amount of GPU resources to be requested, wherein the first preset resource allocation strategy may be the first
  • the adaptation algorithm first-fit, the second preset resource allocation strategy can be the best adaptation algorithm best-fit, for example, deep learning tasks that require less GPU resources can use the first adaptation algorithm first-fit, which requires less GPU resources High-level deep learning tasks can use the best-fit algorithm best-fit.
  • the aforementioned idle GPU resources satisfying the calculation conditions refer to meeting the calculation requirements of the best-fit algorithm, that is, finding the best GPU resources.
  • the cluster simulator also allows multiple nodes in the GPU cluster to provide GPU resource support for a single node. For example, a node is performing deep learning tasks, but its GPU performance is low, while other nodes happen to have If there are idle GPU resources, the unexecuted part of the deep learning task can be scheduled to other nodes for execution.
  • the cluster simulator supports operations such as segmentation, migration, and reconstruction of deep learning tasks.
  • the cluster simulator also supports dynamic resource migration and reallocation of resources. For example, two nodes have 8 GPUs, 4 of which are already occupied, and the current task requires 8 GPU resources to execute, then the task It has to be scheduled to execute on the two nodes, that is, the resources of the two nodes are fragmented. In the cluster simulator, for this situation, when the 4 GPU resources of a certain node are released, they can be used to execute another part of the current task. Through such resource migration or reallocation, the existing GPU resources can be reduced. Fragmentation of allocated resources.
  • the method after the first preset resource allocation strategy or the second preset resource allocation strategy is executed according to the amount of GPU resources to be requested to determine the at least one target GPU from the target task partition , the method also includes:
  • the performance of deep learning tasks will be affected by the propensity of GPU resources, for example, the same deep learning task is more likely to be executed on the same node or GPU of the same network topology.
  • the same deep learning task is more likely to be executed on the same node or GPU of the same network topology.
  • At least one target GPU may belong to different nodes or different network topologies.
  • additional communication overhead will be added for deep learning tasks that are not executed on the same node or in the same network topology. , to guarantee its performance.
  • the deep learning tasks waiting in the task queue after at least one target GPU is determined, they can be dispatched to at least one target GPU for processing.
  • the above steps 401-403 are the testing and simulation of the scheduling algorithm (including task scheduling strategy and resource allocation strategy) on the cluster simulator.
  • the task scheduling strategy and preset resource allocation strategy can be adjusted or modified in response to developer input (such as program code or parameters), and the adjusted or modified task scheduling strategy and preset resource allocation strategy can be added to the cluster
  • developer input such as program code or parameters
  • the adjusted or modified task scheduling strategy and preset resource allocation strategy can be added to the cluster
  • the source code modules plugin/select and plugin/sched of the manager SLURM the deployment of the adjusted or modified task scheduling strategy and preset resource allocation strategy in the second operating environment is completed.
  • the resource scheduling request for the GPU in the graphics processor GPU cluster can be obtained, and then the task scheduling policy will assign the depth corresponding to the resource scheduling request to Add the learning task to the task queue, and execute the preset resource allocation strategy to determine at least one target GPU from the graphics processor GPU cluster, then schedule the deep learning task to at least one target GPU for processing, adjust the task scheduling strategy and pre-set A resource allocation policy is set, and the adjusted task scheduling policy and the preset resource allocation policy are deployed in the second operating environment.
  • the first operating environment is used to test and adjust the task scheduling strategy and resource allocation strategy, and the tested and adjusted task scheduling strategy and resource allocation strategy are deployed in the second operating environment for resource scheduling, which is conducive to reducing the number of resources directly in the second operating environment.
  • the deployment process consumption caused by testing and adjusting the task scheduling strategy and resource allocation strategy in the environment, thereby reducing the development cost of the resource scheduling algorithm, reducing the risk of developing the resource scheduling algorithm in the second operating environment, and speeding up the scheduling algorithm development iteration speed.
  • the defects and bottlenecks of the resource scheduling algorithm can be found by testing the resource scheduling algorithm in the first running environment, so as to explore possible solutions for improvement.
  • FIG. 5 is a schematic flowchart of another cluster resource scheduling method provided by the embodiment of the present application. This method is also applied to resource scheduling nodes. As shown in Figure 5, the method includes the following steps:
  • 501 In the first running environment, obtain a resource scheduling request for a GPU in a graphics processor GPU cluster; the resource scheduling request includes a request parameter, and the request parameter includes a task of a deep learning task corresponding to the resource scheduling request Types of;
  • 506 Adjust the task scheduling policy and the preset resource allocation policy, and deploy the adjusted task scheduling policy and the preset resource allocation policy in the second running environment.
  • Fig. 6 is a block diagram of functional units of a cluster resource scheduling device provided by the embodiment of the present application.
  • the cluster resource scheduling apparatus 600 includes: a transceiver unit 601 and a processing unit 602, wherein:
  • the transceiver unit 601 is configured to obtain a resource scheduling request for GPUs in the GPU cluster in the first operating environment; the resource scheduling request includes request parameters;
  • the processing unit 602 is configured to execute a task scheduling strategy according to the request parameter, add the deep learning task corresponding to the resource scheduling request to the task queue, and execute a preset resource allocation strategy determined from the graphics processor GPU cluster. At least one target GPU;
  • the processing unit 602 is further configured to dispatch the deep learning task to the at least one target GPU for processing;
  • the processing unit 602 is further configured to adjust the task scheduling policy and the preset resource allocation policy, and deploy the adjusted task scheduling policy and the preset resource allocation policy in the second running environment.
  • the request parameter includes the task type of the deep learning task, and in terms of executing the task scheduling policy according to the request parameter and adding the deep learning task corresponding to the resource scheduling request to the task queue, the The processing unit 602 is specifically used for:
  • the request parameters also include the average completion time and average waiting time of historical deep learning tasks
  • at least one target GPU is determined from the graphics processor GPU cluster by executing the preset resource allocation strategy , the processing unit 602 is specifically used for:
  • processing unit 602 is specifically further configured to:
  • Nodes are classified according to the switches connected to the nodes in the GPU cluster to obtain at least one network topology.
  • processing unit 602 is specifically further configured to:
  • the second operating environment also includes the graphics processor GPU cluster, and the cluster manager SLURM is used to manage the GPU resources in the graphics processor GPU cluster.
  • the task scheduling policy and the preset resource allocation policy are deployed in the second operating environment, and the processing unit 602 is specifically used for:
  • the task scheduling strategy includes a combination of one or more of a preemptive scheduling strategy, a non-preemptive scheduling strategy, and a learning scheduling strategy.
  • the processing unit 602 is specifically configured to:
  • the resource scheduling request through the preset interface sacct API provided by the cluster manager SLURM; the resource scheduling request is the historical deep learning processed on the graphics processor GPU cluster in the second operating environment
  • the task record for the task is the resource scheduling request through the preset interface sacct API provided by the cluster manager SLURM; the resource scheduling request is the historical deep learning processed on the graphics processor GPU cluster in the second operating environment
  • the task record for the task is the resource scheduling request through the preset interface sacct API provided by the cluster manager SLURM; the resource scheduling request is the historical deep learning processed on the graphics processor GPU cluster in the second operating environment.
  • FIG. 7 is a schematic structural diagram of an electronic device provided in an embodiment of the present application.
  • an electronic device 700 includes a transceiver 701 , a processor 702 and a memory 703 . They are connected through a bus 704 .
  • the memory 703 is used to store computer programs and data, and can transmit the data stored in the storage 503 to the processor 702 .
  • the processor 702 is used to read the computer program in the memory 703 to perform the following operations:
  • the resource scheduling request includes request parameters
  • Adjusting the task scheduling policy and the preset resource allocation policy and deploying the adjusted task scheduling policy and the preset resource allocation policy in the second operating environment.
  • the request parameter includes the task type of the deep learning task
  • the processing The device 702 is specifically configured to perform the following operations:
  • the request parameters also include the average completion time and average waiting time of historical deep learning tasks
  • at least one target GPU is determined from the graphics processor GPU cluster by executing the preset resource allocation strategy
  • the processor 702 is specifically configured to perform the following operations:
  • processor 702 is specifically further configured to perform the following operations:
  • Nodes are classified according to the switches connected to the nodes in the GPU cluster to obtain at least one network topology.
  • processor 702 is specifically further configured to perform the following operations:
  • the second operating environment also includes the graphics processor GPU cluster, and the cluster manager SLURM is used to manage the GPU resources in the graphics processor GPU cluster.
  • the task scheduling policy and the preset resource allocation policy are deployed in the second operating environment, and the processor 702 is specifically configured to perform the following operations:
  • the task scheduling strategy includes a combination of one or more of a preemptive scheduling strategy, a non-preemptive scheduling strategy, and a learning scheduling strategy.
  • the processor 702 is specifically configured to perform the following operations:
  • the resource scheduling request through the preset interface sacct API provided by the cluster manager SLURM; the resource scheduling request is the historical deep learning processed on the graphics processor GPU cluster in the second operating environment
  • the task record for the task is the resource scheduling request through the preset interface sacct API provided by the cluster manager SLURM; the resource scheduling request is the historical deep learning processed on the graphics processor GPU cluster in the second operating environment
  • the task record for the task is the resource scheduling request through the preset interface sacct API provided by the cluster manager SLURM; the resource scheduling request is the historical deep learning processed on the graphics processor GPU cluster in the second operating environment.
  • the above-mentioned transceiver 701 may be the transceiver unit 601 of the cluster resource scheduling device 600 of the embodiment shown in FIG. 6
  • the above-mentioned processor 702 may be the processing unit 602 of the cluster resource scheduling device 600 of the embodiment shown in FIG. 6 .
  • the above-mentioned electronic devices may be independent physical servers, or server clusters or distributed systems, and may also provide cloud services, cloud databases, cloud computing, cloud functions, cloud storage, network services, cloud communications, intermediate Cloud servers for basic cloud computing services such as software services, domain name services, security services, and big data and artificial intelligence platforms.
  • the electronic device includes but is not limited to a transceiver 701 , a processor 702 memory 703 and a bus 704 .
  • a transceiver 701 a processor 702 memory 703 and a bus 704 .
  • the schematic diagram is only an example of the electronic device, and does not constitute a limitation to the electronic device, and may include more or less components than those shown in the figure, or combine certain components, or different components.
  • the processor 702 of the electronic device executes the computer program to implement the steps in the above cluster resource scheduling method
  • the above embodiments of the cluster resource scheduling method are all applicable to the electronic device, and all of them can achieve the same or similar beneficial effect.
  • the embodiment of the present application also provides a computer-readable storage medium (Memory), where the computer-readable storage medium is a memory device in an electronic device, and is used to store programs and data.
  • the computer-readable storage medium here may include a built-in storage medium in the terminal, and of course may also include an extended storage medium supported by the terminal.
  • the computer-readable storage medium provides storage space, and the storage space stores the operating system of the terminal.
  • one or more instructions suitable for being loaded and executed by the processor 702 are also stored in the storage space, and these instructions may be one or more computer programs (including program codes).
  • the computer-readable storage medium here can be a high-speed RAM memory, or a non-volatile memory (non-volatile memory), such as at least one disk memory;
  • the processor 702 can load and execute one or more instructions stored in the computer storage medium, so as to implement the corresponding steps of the cluster resource scheduling method described above.
  • the computer program on the computer-readable storage medium includes computer program code
  • the computer program code may be in the form of source code, object code, executable file or some intermediate form.
  • the computer-readable storage medium may include: any entity or device capable of carrying the computer program code, a recording medium, a USB flash drive, a removable hard disk, a magnetic disk, an optical disk, a computer memory, a read-only memory (ROM, Read-Only Memory) ), Random Access Memory (RAM, Random Access Memory), electrical carrier signal, telecommunication signal, and software distribution medium, etc.
  • a computer readable storage medium may be a volatile storage medium or a nonvolatile storage medium.
  • the embodiment of the present application also provides a computer program product, including computer-readable codes, or a non-volatile computer-readable storage medium carrying computer-readable codes, when the computer-readable codes are stored in a processor of an electronic device During operation, the processor in the electronic device is used to implement the above method.
  • the disclosed device can be implemented in other ways.
  • the device embodiments described above are only illustrative.
  • the division of the units is only a logical function division. In actual implementation, there may be other division methods.
  • multiple units or components can be combined or can be Integrate into another system, or some features may be ignored, or not implemented.
  • the mutual coupling or direct coupling or communication connection shown or discussed may be through some interfaces, and the indirect coupling or communication connection of devices or units may be in electrical 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 may be distributed to multiple network units. Part or all of the units can 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, each unit may exist separately physically, or two or more units may be integrated into one unit.
  • the above-mentioned integrated units can be implemented not only in the form of hardware, but also in the form of software program modules.
  • the integrated units may be stored in a computer-readable memory if implemented in the form of a software program module and sold or used as an independent product.
  • the technical solution of the present application is essentially or part of the contribution to the prior art, or all or part of the technical solution can be embodied in the form of a software product, and the computer software product is stored in a memory.
  • Several instructions are included to make a computer device (which may be a personal computer, server or network device, etc.) execute all or part of the steps of the methods described in the various embodiments of the present application.
  • the aforementioned memory includes: various media capable of storing program codes such as U disk, read-only memory, random access memory, mobile hard disk, magnetic disk or optical disk.

Abstract

Disclosed in embodiments of the present application are a cluster resource scheduling method and apparatus, an electronic device, and a storage medium. The method comprises: in a first operating environment, acquiring a resource scheduling request for Graphics Processing Units (GPUs) in a GPU cluster; executing a task scheduling strategy according to a request parameter to add a deep learning task to a task queue, and executing a preset resource allocation strategy to determine at least one target GPU from the GPU cluster; scheduling the deep learning task to the at least one target GPU for processing; and adjusting the task scheduling strategy and the preset resource allocation strategy, and deploying the adjusted task scheduling strategy and preset resource allocation strategy in a second operating environment. The embodiments of the present application facilitate reducing development costs of a resource scheduling algorithm.

Description

集群资源调度方法及装置、电子设备和存储介质Cluster resource scheduling method and device, electronic device and storage medium
本申请要求2021年06月15日提交、申请号为202110664041.0,发明名称为“集群资源调度方法及装置、电子设备和存储介质”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。This application claims the priority of the Chinese patent application filed on June 15, 2021, with the application number 202110664041.0, and the title of the invention is "cluster resource scheduling method and device, electronic equipment and storage medium", the entire content of which is incorporated by reference in this application middle.
技术领域technical field
本申请涉及分布式系统技术领域,具体涉及一种集群资源调度方法及装置、电子设备和存储介质。The present application relates to the technical field of distributed systems, in particular to a cluster resource scheduling method and device, electronic equipment and storage media.
背景技术Background technique
随着人工智能的发展,深度学习成为研究人员的关注重点,在目标识别、目标检测任务上有着广泛的应用。深度学习算法的实现离不开有效的训练,为了满足其训练对算力的要求,大规模的GPU(graphics processing unit,图形处理器)集群成为了深度学习算法研发工作的支撑。谈及集群就无可避免会涉及到资源管理和任务调度,目前集群中的任务调度多依赖于任务调度算法,而任务调度算法在开发完成后,需要在集群中进行测试,以验证其有效性和可靠性,但就深度学习训练周期长、计算密度大的特点而言,目前的任务调度算法的开发部署流程较为费时费力,这就使得开发成本居高不下。With the development of artificial intelligence, deep learning has become the focus of researchers, and it has a wide range of applications in target recognition and target detection tasks. The implementation of deep learning algorithms is inseparable from effective training. In order to meet the computing power requirements of its training, large-scale GPU (graphics processing unit, graphics processing unit) clusters have become the support for the research and development of deep learning algorithms. When it comes to clusters, it will inevitably involve resource management and task scheduling. At present, task scheduling in clusters mostly depends on task scheduling algorithms. After the task scheduling algorithm is developed, it needs to be tested in the cluster to verify its effectiveness. and reliability, but in terms of the characteristics of long deep learning training cycle and high computing density, the development and deployment process of the current task scheduling algorithm is time-consuming and laborious, which makes the development cost high.
发明内容Contents of the invention
本申请实施例提供了一种集群资源调度方法及装置、电子设备和存储介质。通过在第一运行环境中进行任务调度策略和资源分配策略的开发,有利于降低资源调度算法的开发成本。Embodiments of the present application provide a cluster resource scheduling method and device, electronic equipment, and a storage medium. By developing the task scheduling strategy and the resource allocation strategy in the first running environment, it is beneficial to reduce the development cost of the resource scheduling algorithm.
第一方面,本申请实施例提供一种集群资源调度方法,该方法包括:In the first aspect, the embodiment of the present application provides a cluster resource scheduling method, the method including:
在第一运行环境中,获取对图形处理器GPU集群中GPU的资源调度请求;所述资源调度请求中包括请求参数;In the first operating environment, obtain a resource scheduling request to the GPU in the graphics processor GPU cluster; the resource scheduling request includes request parameters;
根据所述请求参数执行任务调度策略将所述资源调度请求对应的深度学习任务添加到任务队列中,以及执行预设资源分配策略从所述图形处理器GPU集群中确定出至少一个目标GPU;Executing a task scheduling strategy according to the request parameters, adding the deep learning task corresponding to the resource scheduling request to a task queue, and executing a preset resource allocation strategy to determine at least one target GPU from the graphics processor GPU cluster;
将所述深度学习任务调度至所述至少一个目标GPU上进行处理;Scheduling the deep learning task to the at least one target GPU for processing;
调整所述任务调度策略和所述预设资源分配策略,将调整后的所述任务调度策略和所述预设资源分配策略部署在第二运行环境中。Adjusting the task scheduling policy and the preset resource allocation policy, and deploying the adjusted task scheduling policy and the preset resource allocation policy in the second operating environment.
结合第一方面,在一种可能的实施方式中,所述请求参数包括所述深度学习任务的任务类型,所述根据所述请求参数执行任务调度策略将所述资源调度请求对应的深度学习任务添加到任务队列中,包括:With reference to the first aspect, in a possible implementation manner, the request parameter includes the task type of the deep learning task, and the task scheduling policy is executed according to the request parameter to schedule the resource to request the corresponding deep learning task Added to the task queue, including:
根据所述深度学习任务的任务类型从所述图形处理器GPU集群的至少一个任务分区中确定出所述深度学习任务待请求的目标任务分区;Determine the target task partition to be requested by the deep learning task from at least one task partition of the graphics processor GPU cluster according to the task type of the deep learning task;
执行所述目标任务分区对应的所述任务调度策略将所述深度学习任务添加到所述目标任务分区的任务队列中。Execute the task scheduling policy corresponding to the target task partition to add the deep learning task to the task queue of the target task partition.
结合第一方面,在一种可能的实施方式中,所述请求参数还包括历史深度学习任务的平均完成时长和平均等待时长,所述执行预设资源分配策略从所述图形处理器GPU集群中确定出至少一个目标GPU,包括:With reference to the first aspect, in a possible implementation manner, the request parameters also include the average completion time and average waiting time of historical deep learning tasks, and the implementation of the preset resource allocation strategy is obtained from the GPU cluster Identify at least one target GPU, including:
根据所述平均完成时长和所述平均等待时长计算出所述深度学习任务待请求的GPU资源量;Calculate the amount of GPU resources to be requested by the deep learning task according to the average completion time and the average waiting time;
根据所述待请求的GPU资源量执行第一预设资源分配策略或第二预设资源分配策略,以从所述目标任务分区中确定出所述至少一个目标GPU;所述第一预设资源分配策略用于查找到所述目标任务分区中的空闲GPU资源,则将所述空闲GPU资源确定为目标GPU,所述第二预设资源分配策略用于查找到所述目标任务分区中满足计算条件的空闲GPU资源,则将所述满足计算条件的空闲GPU资源确定为目标GPU。Executing a first preset resource allocation strategy or a second preset resource allocation strategy according to the amount of GPU resources to be requested, so as to determine the at least one target GPU from the target task partition; the first preset resource The allocation strategy is used to find an idle GPU resource in the target task partition, then the idle GPU resource is determined as the target GPU, and the second preset resource allocation strategy is used to find the idle GPU resource in the target task partition that satisfies the calculation conditional idle GPU resource, then determine the idle GPU resource satisfying the calculation condition as the target GPU.
结合第一方面,在一种可能的实施方式中,在根据所述深度学习任务的任务类型从所述图形处理器GPU集群的至少一个任务分区中确定出所述深度学习任务待请求的目标任务分区之前,所述方法还包括:With reference to the first aspect, in a possible implementation manner, the target task to be requested by the deep learning task is determined from at least one task partition of the GPU cluster according to the task type of the deep learning task Before partitioning, the method also includes:
按照所述图形处理器GPU集群中节点的任务类型对节点进行分类,得到所述至少一个任务分区;Classify the nodes according to the task types of the nodes in the GPU cluster to obtain the at least one task partition;
按照所述图形处理器GPU集群中节点所连接的交换机对节点进行分类,得到至少一个网络拓扑。Nodes are classified according to the switches connected to the nodes in the GPU cluster to obtain at least one network topology.
结合第一方面,在一种可能的实施方式中,在根据所述待请求的GPU资源量执行第一预设资源分配策略或第二预设资源分配策略,以从所述目标任务分 区中确定出所述至少一个目标GPU之后,所述方法还包括:With reference to the first aspect, in a possible implementation manner, a first preset resource allocation strategy or a second preset resource allocation strategy is executed according to the amount of GPU resources to be requested, so as to determine from the target task partition After obtaining the at least one target GPU, the method also includes:
确定所述至少一个目标GPU所属的节点是否在所述至少一个网络拓扑的不同网络拓扑中;determining whether the node to which the at least one target GPU belongs is in a different network topology of the at least one network topology;
若是,则为所述深度学习任务增加额外的通信开销。If yes, add additional communication overhead for the deep learning task.
结合第一方面,在一种可能的实施方式中,所述第二运行环境中同样包括所述图形处理器GPU集群,并采用集群管理器SLURM对所述图形处理器GPU集群中的GPU资源进行管理,所述将调整后的所述任务调度策略和所述预设资源分配策略部署在第二运行环境中,包括:With reference to the first aspect, in a possible implementation manner, the second operating environment also includes the graphics processing unit GPU cluster, and a cluster manager SLURM is used to monitor the GPU resources in the graphics processing unit GPU cluster The management, deploying the adjusted task scheduling policy and the preset resource allocation policy in the second operating environment includes:
将调整后的所述任务调度策略和所述预设资源分配策略添加到所述集群管理器SLURM的源码模块中,以完成调整后的所述任务调度策略和所述预设资源分配策略在所述第二运行环境中的部署;所述任务调度策略包括抢占式调度策略、非抢占式调度策略和学习型调度策略中的一种或多种的组合。Adding the adjusted task scheduling strategy and the preset resource allocation strategy to the source code module of the cluster manager SLURM, so as to complete the adjusted task scheduling strategy and the preset resource allocation strategy in the The deployment in the second operating environment; the task scheduling strategy includes a combination of one or more of a preemptive scheduling strategy, a non-preemptive scheduling strategy, and a learning scheduling strategy.
结合第一方面,在一种可能的实施方式中,所述获取对图形处理器GPU集群中GPU的资源调度请求,包括:With reference to the first aspect, in a possible implementation manner, the obtaining a resource scheduling request for a GPU in a graphics processor GPU cluster includes:
通过所述集群管理器SLURM提供的预设接口sacct API获取所述资源调度请求;所述资源调度请求为在所述第二运行环境中,由所述图形处理器GPU集群处理过的历史深度学习任务的任务记录。Obtain the resource scheduling request through the preset interface sacct API provided by the cluster manager SLURM; the resource scheduling request is historical deep learning processed by the graphics processor GPU cluster in the second operating environment The task record for the task.
第二方面,本申请实施例提供一种集群资源调度装置,该装置包括:In the second aspect, the embodiment of the present application provides a cluster resource scheduling device, which includes:
收发单元,用于在第一运行环境中,获取对图形处理器GPU集群中GPU的资源调度请求;所述资源调度请求中包括请求参数;A transceiver unit, configured to acquire a resource scheduling request for a GPU in a GPU cluster in a first operating environment; the resource scheduling request includes request parameters;
处理单元,用于根据所述请求参数执行任务调度策略将所述资源调度请求对应的深度学习任务添加到任务队列中,以及执行预设资源分配策略从所述图形处理器GPU集群中确定出至少一个目标GPU;The processing unit is configured to execute a task scheduling strategy according to the request parameter, add the deep learning task corresponding to the resource scheduling request to the task queue, and execute a preset resource allocation strategy to determine at least a target GPU;
所述处理单元,还用于将所述深度学习任务调度至所述至少一个目标GPU上进行处理;The processing unit is further configured to dispatch the deep learning task to the at least one target GPU for processing;
所述处理单元,还用于调整所述任务调度策略和所述预设资源分配策略,将调整后的所述任务调度策略和所述预设资源分配策略部署在第二运行环境中。The processing unit is further configured to adjust the task scheduling policy and the preset resource allocation policy, and deploy the adjusted task scheduling policy and the preset resource allocation policy in the second running environment.
第三方面,本申请实施例提供一种电子设备,包括:处理器,所述处理器与存储器相连,所述存储器用于存储计算机程序,所述处理器用于执行所述存 储器中存储的计算机程序,以使得所述电子设备执行如第一方面所述的方法。In a third aspect, an embodiment of the present application provides an electronic device, including: a processor, the processor is connected to a memory, the memory is used to store a computer program, and the processor is used to execute the computer program stored in the memory , so that the electronic device executes the method described in the first aspect.
第四方面,本申请实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序使得计算机执行如第一方面所述的方法。In a fourth aspect, an embodiment of the present application provides a computer-readable storage medium, where a computer program is stored in the computer-readable storage medium, and the computer program causes a computer to execute the method as described in the first aspect.
第五方面,本申请实施例提供一种计算机程序产品,包括计算机可读代码,或者承载有计算机可读代码的非易失性计算机可读存储介质,当所述计算机可读代码在电子设备的处理器中运行时,所述电子设备中的处理器执行用于实现如第一方面所述的方法。In the fifth aspect, the embodiment of the present application provides a computer program product, including computer readable codes, or a non-volatile computer readable storage medium carrying computer readable codes, when the computer readable codes are stored in the electronic device When running in the processor, the processor in the electronic device executes to implement the method as described in the first aspect.
可以看出,在本申请实施例中,可通过在第一运行环境中,获取对图形处理器GPU集群中GPU的资源调度请求,然后任务调度策略将资源调度请求对应的深度学习任务添加到任务队列中,以及执行预设资源分配策略从图形处理器GPU集群中确定出至少一个目标GPU,接着将深度学习任务调度至至少一个目标GPU上进行处理,调整任务调度策略和预设资源分配策略,将调整后的任务调度策略和预设资源分配策略部署在第二运行环境中。这样采用第一运行环境进行任务调度策略和资源分配策略的测试和调整,将经过测试和调整的任务调度策略和资源分配策略部署在第二运行环境进行资源调度,有利于降低直接在第二运行环境中进行任务调度策略和资源分配策略的测试和调整所带来的部署流程消耗,从而降低资源调度算法的开发成本。It can be seen that in the embodiment of the present application, the resource scheduling request for the GPU in the graphics processor GPU cluster can be obtained in the first operating environment, and then the task scheduling policy can add the deep learning task corresponding to the resource scheduling request to the task In the queue, and execute the preset resource allocation strategy to determine at least one target GPU from the graphics processor GPU cluster, then schedule the deep learning task to at least one target GPU for processing, adjust the task scheduling strategy and the preset resource allocation strategy, Deploy the adjusted task scheduling policy and preset resource allocation policy in the second operating environment. In this way, the first operating environment is used to test and adjust the task scheduling strategy and resource allocation strategy, and the tested and adjusted task scheduling strategy and resource allocation strategy are deployed in the second operating environment for resource scheduling, which is conducive to reducing the number of resources directly in the second operating environment. The deployment process consumption caused by the testing and adjustment of task scheduling strategy and resource allocation strategy in the environment can reduce the development cost of resource scheduling algorithm.
附图说明Description of drawings
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。In order to more clearly illustrate the technical solutions in the embodiments of the present application, the following will briefly introduce the drawings that need to be used in the description of the embodiments. Obviously, the drawings in the following description are some embodiments of the present application. For Those of ordinary skill in the art can also obtain other drawings based on these drawings without making creative efforts.
图1为本申请实施例提供的一种应用环境示意图;FIG. 1 is a schematic diagram of an application environment provided by an embodiment of the present application;
图2为本申请实施例提供的一种集群资源调度系统的架构示意图;FIG. 2 is a schematic diagram of the architecture of a cluster resource scheduling system provided by an embodiment of the present application;
图3为本申请实施例提供的一种可视化阵列的示意图;FIG. 3 is a schematic diagram of a visualization array provided by an embodiment of the present application;
图4为本申请实施例提供的一种集群资源调度方法的流程示意图;FIG. 4 is a schematic flowchart of a cluster resource scheduling method provided by an embodiment of the present application;
图5为本申请实施例提供的另一种集群资源调度方法的流程示意图;FIG. 5 is a schematic flowchart of another cluster resource scheduling method provided by the embodiment of the present application;
图6为本申请实施例提供的一种集群资源调度装置的功能单元组成框图;FIG. 6 is a block diagram of functional units of a cluster resource scheduling device provided in an embodiment of the present application;
图7为本申请实施例提供的一种电子设备的结构示意图。FIG. 7 is a schematic structural diagram of an electronic device provided by an embodiment of the present application.
具体实施方式detailed description
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。The following will clearly and completely describe the technical solutions in the embodiments of the present application with reference to the drawings in the embodiments of the present application. Obviously, the described embodiments are part of the embodiments of the present application, not all of them. Based on the embodiments in this application, all other embodiments obtained by persons of ordinary skill in the art without creative efforts fall within the protection scope of this application.
本申请的说明书和权利要求书及所述附图中的术语“第一”、“第二”、“第三”和“第四”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。The terms "first", "second", "third" and "fourth" in the specification and claims of the present application and the drawings are used to distinguish different objects, rather than to describe a specific order . Furthermore, the terms "include" and "have", as well as any variations thereof, are intended to cover a non-exclusive inclusion. For example, a process, method, system, product or device comprising a series of steps or units is not limited to the listed steps or units, but optionally also includes unlisted steps or units, or optionally further includes For other steps or units inherent in these processes, methods, products or apparatuses.
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结果或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。Reference herein to an "embodiment" means that a particular feature, result, or characteristic described in connection with the embodiment can be included in at least one embodiment of the present application. The occurrences of this phrase in various places in the specification are not necessarily all referring to the same embodiment, nor are separate or alternative embodiments mutually exclusive of other embodiments. It is understood explicitly and implicitly by those skilled in the art that the embodiments described herein can be combined with other embodiments.
参阅图1,图1为本申请实施例提供的一种应用环境示意图,如图1所示,该应用环境包括用户终端、算法节点、资源调度节点和图形处理器GPU集群。其中,用户终端包括但不限于智能手机、平板电脑、台式电脑等设备,图形处理器GPU集群是一个计算机集群,该集群中包括多个计算节点,计算机点中均配备有至少一个GPU。其中,用户终端用于向算法节点提交深度学习任务处理请求,比如神经网络模型的训练等,算法节点在接收到深度学习任务处理请求的情况下,向资源调度节点提交资源调度请求,资源调度节点在接收到资源调度请求的情况下执行资源调度算法,比如任务调度策略、资源分配策略等,以在图形处理器GPU集群中进行GPU资源的查找,并将查找到的可用GPU资源返回到算法节点,以及将深度学习任务调度到查找到的可用GPU资源上进行执行或处理。Referring to FIG. 1, FIG. 1 is a schematic diagram of an application environment provided by an embodiment of the present application. As shown in FIG. 1, the application environment includes a user terminal, an algorithm node, a resource scheduling node, and a graphics processor GPU cluster. Wherein, the user terminal includes but not limited to smart phones, tablet computers, desktop computers and other devices, and the graphics processing unit GPU cluster is a computer cluster, which includes multiple computing nodes, and each computer point is equipped with at least one GPU. Among them, the user terminal is used to submit a deep learning task processing request to the algorithm node, such as the training of the neural network model, etc. When the algorithm node receives the deep learning task processing request, it submits the resource scheduling request to the resource scheduling node, and the resource scheduling node Execute resource scheduling algorithms when receiving resource scheduling requests, such as task scheduling policies, resource allocation policies, etc., to search for GPU resources in the graphics processor GPU cluster, and return the found available GPU resources to the algorithm node , and dispatch deep learning tasks to the found available GPU resources for execution or processing.
在一些场景中,算法节点可以是存储有AI(Artificial Intelligence,人工智 能)算法的装置,该装置可以是用户终端的服务器,算法节点与资源调度节点可以是同一个装置,也可以是不同的装置。在另一些场景中,资源调度节点中运行有模拟器,该模拟器可对图形处理器GPU集群中的节点进行维护,比如节点中GPU的使用情况、CPU(central processing unit,中央处理器)的使用情况、内存的使用情况、节点中运行任务的列表等,该模拟器可支持调度算法的开发,比如在该模拟器中进行调度算法的测试和调整,可以降低直接在实际集群中进行调度算法的测试和调整所带来的部署流程消耗,从而降低资源调度算法的开发成本。In some scenarios, the algorithm node may be a device storing an AI (Artificial Intelligence, artificial intelligence) algorithm, the device may be a server of a user terminal, and the algorithm node and the resource scheduling node may be the same device or different devices . In other scenarios, there is a simulator running in the resource scheduling node, which can maintain the nodes in the graphics processor GPU cluster, such as the usage of the GPU in the node, the CPU (central processing unit, central processing unit) Usage, memory usage, list of running tasks in the node, etc., the simulator can support the development of scheduling algorithms, such as testing and adjusting the scheduling algorithm in the simulator, which can reduce the scheduling algorithm directly in the actual cluster Deployment process consumption caused by testing and adjustment, thereby reducing the development cost of resource scheduling algorithms.
基于图1所示的应用环境,请参阅图2,图2为本申请实施例提供的一种集群资源调度系统的架构示意图,如图2所示,该架构中主要包括实际SLURM集群和集群模拟器,该集群模拟器可以是运行在资源调度节点中的模拟器,集群模拟器可维护实际SLURM集群中每个节点的使用情况,即与实际SLURM集群一样,集群模拟器也采用任务分区partitions-节点nodes-资源GPUs的三层次管理模式。实际SLURM集群上执行的深度学习任务提交到实际调度器Real Scheduler(实际SLURM集群中的调度器),由实际调度器Real Scheduler向实际SLURM集群进行资源调度请求,实际SLURM集群对可用节点进行资源分配,并返回到实际调度器Real Scheduler,由实际调度器Real Scheduler进行任务调度。集群模拟器基于集群管理器SLURM的配置文件slurm.conf驱动,以进行集群模拟,即集群模拟器维护的是与实际SLURM集群相同的图形处理器GPU集群,集群模拟器上的调度由实际SLURM集群上执行过的历史深度学习任务的任务记录trace驱动,由模拟调度器Sim Scheduler(集群模拟器中的调度器)根据任务记录trace向集群模拟器进行资源调度请求,同时,模拟调度器Sim Scheduler会执行任务调度策略对任务记录trace对应的深度学习任务进行排队,而集群模拟器会执行资源分配策略从图形处理器GPU集群确定出可用的GPU资源以进行资源分配,并返回到模拟调度器Sim Scheduler,由模拟调度器Sim Scheduler进行任务调度。Based on the application environment shown in Figure 1, please refer to Figure 2, Figure 2 is a schematic diagram of the architecture of a cluster resource scheduling system provided by the embodiment of this application, as shown in Figure 2, the architecture mainly includes the actual SLURM cluster and cluster simulation The cluster simulator can be a simulator running on a resource scheduling node. The cluster simulator can maintain the usage of each node in the actual SLURM cluster, that is, the same as the actual SLURM cluster, the cluster simulator also uses task partitions- Three-level management model for nodes-resource GPUs. The deep learning tasks executed on the actual SLURM cluster are submitted to the actual scheduler Real Scheduler (scheduler in the actual SLURM cluster), and the actual scheduler Real Scheduler makes resource scheduling requests to the actual SLURM cluster, and the actual SLURM cluster allocates resources to the available nodes , and return to the actual scheduler Real Scheduler, and the actual scheduler Real Scheduler performs task scheduling. The cluster simulator is driven by the configuration file slurm.conf of the cluster manager SLURM for cluster simulation, that is, the cluster simulator maintains the same graphics processor GPU cluster as the actual SLURM cluster, and the scheduling on the cluster simulator is determined by the actual SLURM cluster Driven by the task record trace of the historical deep learning tasks executed on the network, the simulation scheduler Sim Scheduler (the scheduler in the cluster simulator) sends a resource scheduling request to the cluster simulator according to the task record trace. At the same time, the simulation scheduler Sim Scheduler will Execute the task scheduling strategy to queue the deep learning tasks corresponding to the task record trace, and the cluster simulator will execute the resource allocation strategy to determine the available GPU resources from the graphics processor GPU cluster for resource allocation, and return to the simulation scheduler Sim Scheduler , and the task scheduling is performed by the simulation scheduler Sim Scheduler.
示例性的,上述系统中的任务调度策略可以是先来先服务(First Come First Service,FCFS)、多级反馈队列(Multi-Level Feedback Queue,MLFQ)、短作业优先(Shortest Job First,SJF)、强化学习(Reinforcement Learning,RL),等等。资源分配策略可以是首次适应算法first-fit、最佳适应算法best-fit、谷歌 提供的算力平台free-gpu,等等。模拟调度器Sim Scheduler还将各类调度算法在集群模拟器上的模拟结果进行可视化显示,具体可采用柱状图的形式对图形处理器GPU集群中的GPU使用情况进行动态显示,或者还可以结合如图3所示的阵列进行可视化显示,如图3所示,每个大矩形表示图形处理器GPU集群中的节点,大矩形中的数字表示节点标识,比如:43、55、143等,大矩形中的小矩形表示该节点中GPU的使用情况。当然,集群模拟器上的可视化显示还可采用其他形式呈现,柱状图和阵列仅为一种示例,并不对本申请实施例造成任何限定。Exemplary, the task scheduling strategy in the above system can be first come first service (First Come First Service, FCFS), multi-level feedback queue (Multi-Level Feedback Queue, MLFQ), short job priority (Shortest Job First, SJF) , Reinforcement Learning (Reinforcement Learning, RL), and so on. The resource allocation strategy can be the first-fit algorithm first-fit, the best-fit algorithm best-fit, the computing power platform free-gpu provided by Google, and so on. The simulation scheduler Sim Scheduler also visualizes the simulation results of various scheduling algorithms on the cluster simulator. Specifically, the GPU usage in the graphics processor GPU cluster can be dynamically displayed in the form of a histogram, or it can also be combined with The array shown in Figure 3 is visualized. As shown in Figure 3, each large rectangle represents a node in the graphics processor GPU cluster, and the numbers in the large rectangle represent node identifiers, such as: 43, 55, 143, etc., and the large rectangle The small rectangle in represents the GPU usage in that node. Certainly, the visual display on the cluster simulator may also be presented in other forms, and the histogram and the array are merely examples and do not impose any limitation on the embodiment of the present application.
参阅图4,图4为本申请实施例提供的一种集群资源调度方法的流程示意图。该方法应用于资源调度节点。如图4所示,该方法包括以下步骤:Referring to FIG. 4 , FIG. 4 is a schematic flowchart of a cluster resource scheduling method provided by an embodiment of the present application. This method is applied to resource scheduling nodes. As shown in Figure 4, the method includes the following steps:
401:在第一运行环境中,获取对图形处理器GPU集群中GPU的资源调度请求;所述资源调度请求中包括请求参数。401: In a first running environment, acquire a resource scheduling request for a GPU in a GPU cluster; the resource scheduling request includes a request parameter.
本申请实施例中,第一运行环境是指集群模拟器,即本方案是在集群模拟器上进行资源调度算法的测试和模拟。其中,资源调度请求为第二运行环境中,在图形处理器GPU集群上处理过的历史深度学习任务的任务记录,第二运行环境是指实际SLURM集群,基于图2所示的集群资源调度系统架构,集群模拟器与实际SLURM集群维护的是相同的图形处理器GPU集群(或节点),因此,集群模拟器上的资源调度可以由实际SLURM集群中,在图形处理器GPU集群上处理过的历史深度学习任务的任务记录trace来驱动,任务记录trace记录了历史深度学习任务的相关参数,比如平均完成时长、平均等待时长、GPU使用率、任务量和任务类型等历史信息,以历史深度学习任务的任务记录trace作为训练数据驱动集群模拟器能够使调度算法的测试和模拟更接近于实际情况。In the embodiment of the present application, the first operating environment refers to the cluster simulator, that is, the solution is to test and simulate the resource scheduling algorithm on the cluster simulator. Among them, the resource scheduling request is the task record of the historical deep learning tasks processed on the graphics processor GPU cluster in the second operating environment, and the second operating environment refers to the actual SLURM cluster, based on the cluster resource scheduling system shown in Figure 2 Architecture, the cluster simulator and the actual SLURM cluster maintain the same graphics processor GPU cluster (or node), therefore, the resource scheduling on the cluster simulator can be processed on the graphics processor GPU cluster in the actual SLURM cluster Driven by the task record trace of the historical deep learning task, the task record trace records the relevant parameters of the historical deep learning task, such as the average completion time, average waiting time, GPU usage, task volume, and task type. The task record trace of the task is used as training data to drive the cluster simulator, which can make the testing and simulation of the scheduling algorithm closer to the actual situation.
示例性的,资源调度请求可通过集群管理器SLURM提供的预设接口sacct API获取,即上述任务记录trace可由该预设接口sacct API获取。Exemplarily, the resource scheduling request can be obtained through the preset interface sacct API provided by the cluster manager SLURM, that is, the above-mentioned task record trace can be obtained through the preset interface sacct API.
402:根据所述请求参数执行任务调度策略将所述资源调度请求对应的深度学习任务添加到任务队列中,以及执行预设资源分配策略从所述图形处理器GPU集群中确定出至少一个目标GPU。402: Execute a task scheduling strategy according to the request parameter, add the deep learning task corresponding to the resource scheduling request to the task queue, and execute a preset resource allocation strategy to determine at least one target GPU from the graphics processor GPU cluster .
本申请实施例中,请求参数包括深度学习任务的任务类型,比如任务类型可以是深度学习的模型训练或在线预测。In this embodiment of the application, the request parameter includes the task type of the deep learning task, for example, the task type may be deep learning model training or online prediction.
示例性的,上述根据所述请求参数执行任务调度策略将所述资源调度请求 对应的深度学习任务添加到任务队列中,包括:Exemplarily, the above-mentioned execution of the task scheduling strategy according to the request parameters adds the deep learning task corresponding to the resource scheduling request to the task queue, including:
根据所述深度学习任务的任务类型从所述图形处理器GPU集群的至少一个任务分区中确定出所述深度学习任务待请求的目标任务分区;Determine the target task partition to be requested by the deep learning task from at least one task partition of the graphics processor GPU cluster according to the task type of the deep learning task;
执行所述目标任务分区对应的所述任务调度策略将所述深度学习任务添加到所述目标任务分区的任务队列中。Execute the task scheduling policy corresponding to the target task partition to add the deep learning task to the task queue of the target task partition.
具体的,在获取到资源调度请求的情况下,执行对图形处理器GPU集群中的节点进行分类的操作,一方面,按照图形处理器GPU集群中节点的任务类型对节点进行分类,得到至少一个任务分区,比如将执行模型训练的节点作为一个任务分区,将执行在线预测的节点作为一个任务分区,等等。每一个任务分区都有自己独立的资源池和任务队列,且每一个任务分区都预设有不同的任务调度策略。另一方面,按照图形处理器GPU集群中节点所连接的交换机对节点进行分类,得到至少一个网络拓扑,比如节点43、55、46、52连接一个交换机,则将该四个节点作为一个网络拓扑,节点94、97、100、101连接一个交换机,则将该四个节点作为一个网络拓扑,等等。Specifically, when the resource scheduling request is obtained, the operation of classifying the nodes in the GPU cluster is performed. On the one hand, the nodes are classified according to the task types of the nodes in the GPU cluster to obtain at least one Task partitioning, such as taking the node that performs model training as a task partition, taking the node that performs online prediction as a task partition, and so on. Each task partition has its own independent resource pool and task queue, and each task partition is preset with different task scheduling policies. On the other hand, the nodes are classified according to the switches connected to the nodes in the GPU cluster to obtain at least one network topology. For example, nodes 43, 55, 46, and 52 are connected to a switch, and the four nodes are regarded as a network topology , the nodes 94, 97, 100, and 101 are connected to a switch, and the four nodes are regarded as a network topology, and so on.
示例性的,按照图形处理器GPU集群中节点的任务类型对节点进行分类的操作可调用集群管理器SLURM的配置文件slurm.conf或预设接口sinfo API完成。按照图形处理器GPU集群中节点所连接的交换机对节点进行分类的操作可调用无线带宽infiniband的预设接口iblinkinfo API完成。Exemplarily, the operation of classifying the nodes according to the task types of the nodes in the GPU cluster can be completed by calling the configuration file slurm.conf of the cluster manager SLURM or the preset interface sinfo API. The operation of classifying the nodes according to the switches connected to the nodes in the GPU cluster can be completed by calling the preset interface iblinkinfo API of the wireless bandwidth infiniband.
针对分类得到的至少一个任务分区,将其任务类型与资源调度请求对应的深度学习任务的任务类型相同的任务分区作为目标任务分区,执行该目标任务分区预设的任务调度策略将该深度学习任务添加到该目标任务分区的任务队列中,以进行等待。For at least one task partition obtained by classification, the task partition whose task type is the same as the task type of the deep learning task corresponding to the resource scheduling request is used as the target task partition, and the preset task scheduling strategy of the target task partition is executed to make the deep learning task Added to the task queue of the target task partition to wait.
示例性的,任务调度策略包括抢占式调度策略、非抢占式调度策略和学习型调度策略中的一种或多种的组合。比如某个深度学习任务可以仅采用一种任务调度策略执行,也可以分部分采用不同的任务调度策略执行。其中,抢占式调度策略可以是MLFQ等,该类任务调度策略允许运行任务的暂停和恢复,具体可通过集群模拟器提供的访问接口实现,另外,开发人员还可为该类任务调度策略配置不同参数,比如算法的运行时间、层级关系等,以此提高算法的性能;其中,非抢占式调度策略可以是FCFS、SJF等;其中,学习型调度策略可以是基于机器学习、强化学习、颠倒强化学习的策略,该类任务调度策略的开 发往往需要大量的任务记录trace作为训练数据,经历多次的决策迭代才能达到一个较优的决策结果,这在实际环境下往往是难以实现的,通过集群模拟器来模拟进行,有利于降低该类任务调度策略的开发难度。另外,开发者可以在集群模拟器上采用各种任务调度策略进行测试和模拟,因此其灵活性更强。Exemplarily, the task scheduling strategy includes a combination of one or more of a preemptive scheduling strategy, a non-preemptive scheduling strategy and a learning scheduling strategy. For example, a deep learning task can be executed using only one task scheduling strategy, or it can be executed in parts using different task scheduling strategies. Among them, the preemptive scheduling strategy can be MLFQ, etc. This type of task scheduling strategy allows the suspension and recovery of running tasks, which can be realized through the access interface provided by the cluster simulator. In addition, developers can also configure different configurations for this type of task scheduling strategy. Parameters, such as the running time of the algorithm, hierarchical relationship, etc., to improve the performance of the algorithm; Among them, the non-preemptive scheduling strategy can be FCFS, SJF, etc.; Among them, the learning scheduling strategy can be based on machine learning, reinforcement learning, reverse reinforcement Learning strategy, the development of this type of task scheduling strategy often requires a large number of task record traces as training data, after multiple decision iterations to achieve a better decision result, which is often difficult to achieve in the actual environment, through the cluster Simulating with a simulator helps to reduce the development difficulty of this type of task scheduling strategy. In addition, developers can use various task scheduling strategies for testing and simulation on the cluster simulator, so it is more flexible.
示例性的,上述执行预设资源分配策略从所述图形处理器GPU集群中确定出至少一个目标GPU,包括:Exemplarily, the aforementioned implementation of the preset resource allocation strategy determines at least one target GPU from the GPU cluster, including:
根据上述平均完成时长和上述平均等待时长计算出所述深度学习任务待请求的GPU资源量;Calculate the amount of GPU resources to be requested by the deep learning task according to the above-mentioned average completion time and the above-mentioned average waiting time;
根据所述待请求的GPU资源量执行第一预设资源分配策略或第二预设资源分配策略,以从所述目标任务分区中确定出所述至少一个目标GPU;所述第一预设资源分配策略用于查找到所述目标任务分区中的空闲GPU资源,则将所述空闲GPU资源确定为目标GPU,所述第二预设资源分配策略用于查找到所述目标任务分区中满足计算条件的空闲GPU资源,则将所述满足计算条件的空闲GPU资源确定为目标GPU。Executing a first preset resource allocation strategy or a second preset resource allocation strategy according to the amount of GPU resources to be requested, so as to determine the at least one target GPU from the target task partition; the first preset resource The allocation strategy is used to find an idle GPU resource in the target task partition, then the idle GPU resource is determined as the target GPU, and the second preset resource allocation strategy is used to find the idle GPU resource in the target task partition that satisfies the calculation conditional idle GPU resource, then determine the idle GPU resource satisfying the calculation condition as the target GPU.
具体的,待请求的GPU资源量是指深度学习任务需要多少GPU来执行,比如4个算力为3.7的GPU、8个算力为2.5的GPU等,即通过对任务记录trace中的参数的学习,可以计算出一个深度学习任务所需的GPU资源。在确定出待请求的GPU资源量后,可根据待请求的GPU资源量的不同执行第一预设资源分配策略或第二预设资源分配策略,其中,第一预设资源分配策略可以是首次适应算法first-fit,第二预设资源分配策略可以是最佳适应算法best-fit,比如对GPU资源量要求较低的深度学习任务可以采用首次适应算法first-fit,对GPU资源量要求较高的深度学习任务可以采用最佳适应算法best-fit。其中,上述满足计算条件的空闲GPU资源是指满足最佳适应算法best-fit的计算要求,即找到最佳的GPU资源。Specifically, the amount of GPU resources to be requested refers to how many GPUs are required to execute the deep learning task, such as 4 GPUs with a computing power of 3.7, 8 GPUs with a computing power of 2.5, etc., that is, by recording the parameters in the task trace Learning can calculate the GPU resources required for a deep learning task. After the amount of GPU resources to be requested is determined, a first preset resource allocation strategy or a second preset resource allocation strategy may be executed according to the amount of GPU resources to be requested, wherein the first preset resource allocation strategy may be the first The adaptation algorithm first-fit, the second preset resource allocation strategy can be the best adaptation algorithm best-fit, for example, deep learning tasks that require less GPU resources can use the first adaptation algorithm first-fit, which requires less GPU resources High-level deep learning tasks can use the best-fit algorithm best-fit. Wherein, the aforementioned idle GPU resources satisfying the calculation conditions refer to meeting the calculation requirements of the best-fit algorithm, that is, finding the best GPU resources.
进一步的,集群模拟器还允许图形处理器GPU集群中的多个节点为单个节点提供GPU资源支持,比如,某个节点正在执行深度学习任务,但是其GPU的性能较低,而其他节点正好有空闲的GPU资源,则可将该深度学习任务未执行的部分调度到其他节点执行,换言之即是,集群模拟器支持深度学习任务的分割、迁移、重构等操作。Furthermore, the cluster simulator also allows multiple nodes in the GPU cluster to provide GPU resource support for a single node. For example, a node is performing deep learning tasks, but its GPU performance is low, while other nodes happen to have If there are idle GPU resources, the unexecuted part of the deep learning task can be scheduled to other nodes for execution. In other words, the cluster simulator supports operations such as segmentation, migration, and reconstruction of deep learning tasks.
进一步的,集群模拟器还支持动态资源迁移和资源的重新分配,比如2个 节点均有8个GPU,其中的4个均已被占用,而当前任务需要8个GPU资源来执行,那么该任务不得不被调度到该2个节点上执行,即2个节点的资源均被碎片化。在集群模拟器中,针对这种情况,可在某个节点的4个GPU资源被释放的情况下,将其用来执行当前任务的另一部分,通过这样的资源迁移或重新分配,可以减少已分配资源的碎片化程度。Furthermore, the cluster simulator also supports dynamic resource migration and reallocation of resources. For example, two nodes have 8 GPUs, 4 of which are already occupied, and the current task requires 8 GPU resources to execute, then the task It has to be scheduled to execute on the two nodes, that is, the resources of the two nodes are fragmented. In the cluster simulator, for this situation, when the 4 GPU resources of a certain node are released, they can be used to execute another part of the current task. Through such resource migration or reallocation, the existing GPU resources can be reduced. Fragmentation of allocated resources.
403:将所述深度学习任务调度至所述至少一个目标GPU上进行处理。403: Schedule the deep learning task to the at least one target GPU for processing.
本申请实施例中,在根据所述待请求的GPU资源量执行第一预设资源分配策略或第二预设资源分配策略,以从所述目标任务分区中确定出所述至少一个目标GPU之后,所述方法还包括:In the embodiment of the present application, after the first preset resource allocation strategy or the second preset resource allocation strategy is executed according to the amount of GPU resources to be requested to determine the at least one target GPU from the target task partition , the method also includes:
确定所述至少一个目标GPU所属的节点是否在所述至少一个网络拓扑的不同网络拓扑中;determining whether the node to which the at least one target GPU belongs is in a different network topology of the at least one network topology;
若是,则为所述深度学习任务增加额外的通信开销。If yes, add additional communication overhead for the deep learning task.
具体的,考虑到在实际SLURM集群上,深度学习任务的性能会受到GPU资源的倾向性的影响,比如同一深度学习任务更倾向于在同一节点或同一网络拓扑的GPU上执行,对于确定出的至少一个目标GPU,可能会属于不同的节点或不同的网络拓扑,本申请实施例在集群模拟器中,对于不在同一节点或同一网络拓扑中执行的深度学习任务,会为其增加额外的通信开销,以保证其性能。Specifically, considering that on an actual SLURM cluster, the performance of deep learning tasks will be affected by the propensity of GPU resources, for example, the same deep learning task is more likely to be executed on the same node or GPU of the same network topology. For the determined At least one target GPU may belong to different nodes or different network topologies. In the embodiment of this application, in the cluster simulator, additional communication overhead will be added for deep learning tasks that are not executed on the same node or in the same network topology. , to guarantee its performance.
对于在任务队列中等待的深度学习任务,在确定出至少一个目标GPU后,即可将其调度至至少一个目标GPU上进行处理。For the deep learning tasks waiting in the task queue, after at least one target GPU is determined, they can be dispatched to at least one target GPU for processing.
404:调整所述任务调度策略和所述预设资源分配策略,将调整后的所述任务调度策略和所述预设资源分配策略部署在第二运行环境中。404: Adjust the task scheduling policy and the preset resource allocation policy, and deploy the adjusted task scheduling policy and the preset resource allocation policy in a second running environment.
本申请实施例中,上述步骤401-403为调度算法(包括任务调度策略和资源分配策略)在集群模拟器上的测试和模拟,对于效果或性能不符合要求的任务调度策略和资源分配策略,可响应于开发人员的输入(比如程序代码或参数)对任务调度策略和预设资源分配策略进行调整或修改,对于调整或修改后的任务调度策略和预设资源分配策略,将其添加到集群管理器SLURM的源码模块plugin/select和plugin/sched中,以完成调整或修改后的任务调度策略和预设资源分配策略在第二运行环境中的部署。In the embodiment of the present application, the above steps 401-403 are the testing and simulation of the scheduling algorithm (including task scheduling strategy and resource allocation strategy) on the cluster simulator. For task scheduling strategies and resource allocation strategies whose effect or performance does not meet the requirements, The task scheduling strategy and preset resource allocation strategy can be adjusted or modified in response to developer input (such as program code or parameters), and the adjusted or modified task scheduling strategy and preset resource allocation strategy can be added to the cluster In the source code modules plugin/select and plugin/sched of the manager SLURM, the deployment of the adjusted or modified task scheduling strategy and preset resource allocation strategy in the second operating environment is completed.
可以看出,在本申请实施例中,可通过在第一运行环境(集群模拟器)中,获取对图形处理器GPU集群中GPU的资源调度请求,然后任务调度策略将资 源调度请求对应的深度学习任务添加到任务队列中,以及执行预设资源分配策略从图形处理器GPU集群中确定出至少一个目标GPU,接着将深度学习任务调度至至少一个目标GPU上进行处理,调整任务调度策略和预设资源分配策略,将调整后的任务调度策略和预设资源分配策略部署在第二运行环境中。这样采用第一运行环境进行任务调度策略和资源分配策略的测试和调整,将经过测试和调整的任务调度策略和资源分配策略部署在第二运行环境进行资源调度,有利于降低直接在第二运行环境中进行任务调度策略和资源分配策略的测试和调整所带来的部署流程消耗,从而降低资源调度算法的开发成本,以及降低在第二运行环境中进行资源调度算法开发的风险,加快调度算法的开发迭代速度。对于图形处理器GPU集群的管理人员而言,可通过在第一运行环境中测试资源调度算法来发现资源调度算法的缺陷和瓶颈,以探索可改进的方案。It can be seen that in the embodiment of the present application, in the first operating environment (cluster simulator), the resource scheduling request for the GPU in the graphics processor GPU cluster can be obtained, and then the task scheduling policy will assign the depth corresponding to the resource scheduling request to Add the learning task to the task queue, and execute the preset resource allocation strategy to determine at least one target GPU from the graphics processor GPU cluster, then schedule the deep learning task to at least one target GPU for processing, adjust the task scheduling strategy and pre-set A resource allocation policy is set, and the adjusted task scheduling policy and the preset resource allocation policy are deployed in the second operating environment. In this way, the first operating environment is used to test and adjust the task scheduling strategy and resource allocation strategy, and the tested and adjusted task scheduling strategy and resource allocation strategy are deployed in the second operating environment for resource scheduling, which is conducive to reducing the number of resources directly in the second operating environment. The deployment process consumption caused by testing and adjusting the task scheduling strategy and resource allocation strategy in the environment, thereby reducing the development cost of the resource scheduling algorithm, reducing the risk of developing the resource scheduling algorithm in the second operating environment, and speeding up the scheduling algorithm development iteration speed. For the manager of the graphics processing unit GPU cluster, the defects and bottlenecks of the resource scheduling algorithm can be found by testing the resource scheduling algorithm in the first running environment, so as to explore possible solutions for improvement.
参阅图5,图5本申请实施例提供的另一种集群资源调度方法的流程示意图。该方法同样应用于资源调度节点。如图5所示,该方法包括以下步骤:Referring to FIG. 5 , FIG. 5 is a schematic flowchart of another cluster resource scheduling method provided by the embodiment of the present application. This method is also applied to resource scheduling nodes. As shown in Figure 5, the method includes the following steps:
501:在第一运行环境中,获取对图形处理器GPU集群中GPU的资源调度请求;所述资源调度请求中包括请求参数,所述请求参数包括所述资源调度请求对应的深度学习任务的任务类型;501: In the first running environment, obtain a resource scheduling request for a GPU in a graphics processor GPU cluster; the resource scheduling request includes a request parameter, and the request parameter includes a task of a deep learning task corresponding to the resource scheduling request Types of;
502:根据所述深度学习任务的任务类型从所述图形处理器GPU集群的至少一个任务分区中确定出所述深度学习任务待请求的目标任务分区;502: Determine a target task partition to be requested by the deep learning task from at least one task partition of the graphics processor GPU cluster according to the task type of the deep learning task;
503:执行所述目标任务分区对应的所述任务调度策略将所述深度学习任务添加到所述目标任务分区的任务队列中;503: Execute the task scheduling policy corresponding to the target task partition and add the deep learning task to the task queue of the target task partition;
504:执行预设资源分配策略从所述图形处理器GPU集群中确定出至少一个目标GPU;504: Execute a preset resource allocation strategy to determine at least one target GPU from the GPU cluster;
505:将所述深度学习任务调度至所述至少一个目标GPU上进行处理;505: Scheduling the deep learning task to the at least one target GPU for processing;
506:调整所述任务调度策略和所述预设资源分配策略,将调整后的所述任务调度策略和所述预设资源分配策略部署在第二运行环境中。506: Adjust the task scheduling policy and the preset resource allocation policy, and deploy the adjusted task scheduling policy and the preset resource allocation policy in the second running environment.
其中,上述步骤501-506的具体实施方式在图4所示的实施例中已有相关说明,且能达到相同或相似的有益效果,为避免重复,此处不再赘述。Wherein, the specific implementation manners of the above-mentioned steps 501-506 have been described in the embodiment shown in FIG. 4 , and can achieve the same or similar beneficial effects. To avoid repetition, details are not repeated here.
参阅图6,图6本申请实施例提供的一种集群资源调度装置的功能单元组成 框图。集群资源调度装置600包括:收发单元601和处理单元602,其中:Referring to Fig. 6, Fig. 6 is a block diagram of functional units of a cluster resource scheduling device provided by the embodiment of the present application. The cluster resource scheduling apparatus 600 includes: a transceiver unit 601 and a processing unit 602, wherein:
收发单元601,用于在第一运行环境中,获取对图形处理器GPU集群中GPU的资源调度请求;所述资源调度请求中包括请求参数;The transceiver unit 601 is configured to obtain a resource scheduling request for GPUs in the GPU cluster in the first operating environment; the resource scheduling request includes request parameters;
处理单元602,用于根据所述请求参数执行任务调度策略将所述资源调度请求对应的深度学习任务添加到任务队列中,以及执行预设资源分配策略从所述图形处理器GPU集群中确定出至少一个目标GPU;The processing unit 602 is configured to execute a task scheduling strategy according to the request parameter, add the deep learning task corresponding to the resource scheduling request to the task queue, and execute a preset resource allocation strategy determined from the graphics processor GPU cluster. At least one target GPU;
所述处理单元602,还用于将所述深度学习任务调度至所述至少一个目标GPU上进行处理;The processing unit 602 is further configured to dispatch the deep learning task to the at least one target GPU for processing;
所述处理单元602,还用于调整所述任务调度策略和所述预设资源分配策略,将调整后的所述任务调度策略和所述预设资源分配策略部署在第二运行环境中。The processing unit 602 is further configured to adjust the task scheduling policy and the preset resource allocation policy, and deploy the adjusted task scheduling policy and the preset resource allocation policy in the second running environment.
在一些可能的实施方式中,所述请求参数包括所述深度学习任务的任务类型,在根据所述请求参数执行任务调度策略将所述资源调度请求对应的深度学习任务添加到任务队列方面,所述处理单元602,具体用于:In some possible implementation manners, the request parameter includes the task type of the deep learning task, and in terms of executing the task scheduling policy according to the request parameter and adding the deep learning task corresponding to the resource scheduling request to the task queue, the The processing unit 602 is specifically used for:
根据所述深度学习任务的任务类型从所述图形处理器GPU集群的至少一个任务分区中确定出所述深度学习任务待请求的目标任务分区;Determine the target task partition to be requested by the deep learning task from at least one task partition of the graphics processor GPU cluster according to the task type of the deep learning task;
执行所述目标任务分区对应的所述任务调度策略将所述深度学习任务添加到所述目标任务分区的任务队列中。Execute the task scheduling policy corresponding to the target task partition to add the deep learning task to the task queue of the target task partition.
在一些可能的实施方式中,所述请求参数还包括历史深度学习任务的平均完成时长和平均等待时长,在执行预设资源分配策略从所述图形处理器GPU集群中确定出至少一个目标GPU方面,处理单元602,具体用于:In some possible implementations, the request parameters also include the average completion time and average waiting time of historical deep learning tasks, and at least one target GPU is determined from the graphics processor GPU cluster by executing the preset resource allocation strategy , the processing unit 602 is specifically used for:
根据所述平均完成时长和所述平均等待时长计算出所述深度学习任务待请求的GPU资源量;Calculate the amount of GPU resources to be requested by the deep learning task according to the average completion time and the average waiting time;
根据所述待请求的GPU资源量执行第一预设资源分配策略或第二预设资源分配策略,以从所述目标任务分区中确定出所述至少一个目标GPU;所述第一预设资源分配策略用于查找到所述目标任务分区中的空闲GPU资源,则将所述空闲GPU资源确定为目标GPU,所述第二预设资源分配策略用于查找到所述目标任务分区中满足计算条件的空闲GPU资源,则将所述满足计算条件的空闲GPU资源确定为目标GPU。Executing a first preset resource allocation strategy or a second preset resource allocation strategy according to the amount of GPU resources to be requested, so as to determine the at least one target GPU from the target task partition; the first preset resource The allocation strategy is used to find an idle GPU resource in the target task partition, then the idle GPU resource is determined as the target GPU, and the second preset resource allocation strategy is used to find the idle GPU resource in the target task partition that satisfies the calculation conditional idle GPU resource, then determine the idle GPU resource satisfying the calculation condition as the target GPU.
在一些可能的实施方式中,处理单元602,具体还用于:In some possible implementation manners, the processing unit 602 is specifically further configured to:
按照所述图形处理器GPU集群中节点的任务类型对节点进行分类,得到所述至少一个任务分区;Classify the nodes according to the task types of the nodes in the GPU cluster to obtain the at least one task partition;
按照所述图形处理器GPU集群中节点所连接的交换机对节点进行分类,得到至少一个网络拓扑。Nodes are classified according to the switches connected to the nodes in the GPU cluster to obtain at least one network topology.
在一些可能的实施方式中,处理单元602,具体还用于:In some possible implementation manners, the processing unit 602 is specifically further configured to:
确定所述至少一个目标GPU所属的节点是否在所述至少一个网络拓扑的不同网络拓扑中;determining whether the node to which the at least one target GPU belongs is in a different network topology of the at least one network topology;
若是,则为所述深度学习任务增加额外的通信开销。If yes, add additional communication overhead for the deep learning task.
在一些可能的实施方式中,所述第二运行环境中同样包括所述图形处理器GPU集群,并采用集群管理器SLURM对所述图形处理器GPU集群中的GPU资源进行管理,在将调整后的所述任务调度策略和所述预设资源分配策略部署在第二运行环境方面,处理单元602,具体用于:In some possible implementation manners, the second operating environment also includes the graphics processor GPU cluster, and the cluster manager SLURM is used to manage the GPU resources in the graphics processor GPU cluster. The task scheduling policy and the preset resource allocation policy are deployed in the second operating environment, and the processing unit 602 is specifically used for:
将调整后的所述任务调度策略和所述预设资源分配策略添加到所述集群管理器SLURM的源码模块中,以完成调整后的所述任务调度策略和所述预设资源分配策略在所述第二运行环境中的部署;所述任务调度策略包括抢占式调度策略、非抢占式调度策略和学习型调度策略中的一种或多种的组合。Adding the adjusted task scheduling strategy and the preset resource allocation strategy to the source code module of the cluster manager SLURM, so as to complete the adjusted task scheduling strategy and the preset resource allocation strategy in the The deployment in the second operating environment; the task scheduling strategy includes a combination of one or more of a preemptive scheduling strategy, a non-preemptive scheduling strategy, and a learning scheduling strategy.
在一些可能的实施方式中,在获取对图形处理器GPU集群中GPU的资源调度请求方面,处理单元602,具体用于:In some possible implementation manners, in terms of obtaining resource scheduling requests for GPUs in the GPU cluster, the processing unit 602 is specifically configured to:
通过所述集群管理器SLURM提供的预设接口sacct API获取所述资源调度请求;所述资源调度请求为所述第二运行环境中,在所述图形处理器GPU集群上处理过的历史深度学习任务的任务记录。Obtain the resource scheduling request through the preset interface sacct API provided by the cluster manager SLURM; the resource scheduling request is the historical deep learning processed on the graphics processor GPU cluster in the second operating environment The task record for the task.
参阅图7,图7为本申请实施例提供的一种电子设备的结构示意图。如图7所示,电子设备700包括收发器701、处理器702和存储器703。它们之间通过总线704连接。存储器703用于存储计算机程序和数据,并可以将存储503存储的数据传输给处理器702。Referring to FIG. 7, FIG. 7 is a schematic structural diagram of an electronic device provided in an embodiment of the present application. As shown in FIG. 7 , an electronic device 700 includes a transceiver 701 , a processor 702 and a memory 703 . They are connected through a bus 704 . The memory 703 is used to store computer programs and data, and can transmit the data stored in the storage 503 to the processor 702 .
处理器702用于读取存储器703中的计算机程序执行以下操作:The processor 702 is used to read the computer program in the memory 703 to perform the following operations:
在第一运行环境中,获取对图形处理器GPU集群中GPU的资源调度请求;所述资源调度请求中包括请求参数;In the first operating environment, obtain a resource scheduling request to the GPU in the graphics processor GPU cluster; the resource scheduling request includes request parameters;
根据所述请求参数执行任务调度策略将所述资源调度请求对应的深度学习 任务添加到任务队列中,以及执行预设资源分配策略从所述图形处理器GPU集群中确定出至少一个目标GPU;Executing a task scheduling strategy according to the request parameter, adding the deep learning task corresponding to the resource scheduling request to a task queue, and executing a preset resource allocation strategy to determine at least one target GPU from the graphics processor GPU cluster;
将所述深度学习任务调度至所述至少一个目标GPU上进行处理;Scheduling the deep learning task to the at least one target GPU for processing;
调整所述任务调度策略和所述预设资源分配策略,将调整后的所述任务调度策略和所述预设资源分配策略部署在第二运行环境中。Adjusting the task scheduling policy and the preset resource allocation policy, and deploying the adjusted task scheduling policy and the preset resource allocation policy in the second operating environment.
在一些可能的实施方式中,所述请求参数包括所述深度学习任务的任务类型,在根据所述请求参数执行任务调度策略将所述资源调度请求对应的深度学习任务添加到任务队列方面,处理器702,具体用于执行以下操作:In some possible implementation manners, the request parameter includes the task type of the deep learning task, and the processing The device 702 is specifically configured to perform the following operations:
根据所述深度学习任务的任务类型从所述图形处理器GPU集群的至少一个任务分区中确定出所述深度学习任务待请求的目标任务分区;Determine the target task partition to be requested by the deep learning task from at least one task partition of the graphics processor GPU cluster according to the task type of the deep learning task;
执行所述目标任务分区对应的所述任务调度策略将所述深度学习任务添加到所述目标任务分区的任务队列中。Execute the task scheduling policy corresponding to the target task partition to add the deep learning task to the task queue of the target task partition.
在一些可能的实施方式中,所述请求参数还包括历史深度学习任务的平均完成时长和平均等待时长,在执行预设资源分配策略从所述图形处理器GPU集群中确定出至少一个目标GPU方面,处理器702,具体用于执行以下操作:In some possible implementations, the request parameters also include the average completion time and average waiting time of historical deep learning tasks, and at least one target GPU is determined from the graphics processor GPU cluster by executing the preset resource allocation strategy , the processor 702 is specifically configured to perform the following operations:
根据所述平均完成时长和所述平均等待时长计算出所述深度学习任务待请求的GPU资源量;Calculate the amount of GPU resources to be requested by the deep learning task according to the average completion time and the average waiting time;
根据所述待请求的GPU资源量执行第一预设资源分配策略或第二预设资源分配策略,以从所述目标任务分区中确定出所述至少一个目标GPU;所述第一预设资源分配策略用于查找到所述目标任务分区中的空闲GPU资源,则将所述空闲GPU资源确定为目标GPU,所述第二预设资源分配策略用于查找到所述目标任务分区中满足计算条件的空闲GPU资源,则将所述满足计算条件的空闲GPU资源确定为目标GPU。Executing a first preset resource allocation strategy or a second preset resource allocation strategy according to the amount of GPU resources to be requested, so as to determine the at least one target GPU from the target task partition; the first preset resource The allocation strategy is used to find an idle GPU resource in the target task partition, then the idle GPU resource is determined as the target GPU, and the second preset resource allocation strategy is used to find the idle GPU resource in the target task partition that satisfies the calculation conditional idle GPU resource, then determine the idle GPU resource satisfying the calculation condition as the target GPU.
在一些可能的实施方式中,处理器702,具体还用于执行以下操作:In some possible implementation manners, the processor 702 is specifically further configured to perform the following operations:
按照所述图形处理器GPU集群中节点的任务类型对节点进行分类,得到所述至少一个任务分区;Classify the nodes according to the task types of the nodes in the GPU cluster to obtain the at least one task partition;
按照所述图形处理器GPU集群中节点所连接的交换机对节点进行分类,得到至少一个网络拓扑。Nodes are classified according to the switches connected to the nodes in the GPU cluster to obtain at least one network topology.
在一些可能的实施方式中,处理器702,具体还用于执行以下操作:In some possible implementation manners, the processor 702 is specifically further configured to perform the following operations:
确定所述至少一个目标GPU所属的节点是否在所述至少一个网络拓扑的不 同网络拓扑中;determining whether the node to which the at least one target GPU belongs is in a different network topology of the at least one network topology;
若是,则为所述深度学习任务增加额外的通信开销。If yes, add additional communication overhead for the deep learning task.
在一些可能的实施方式中,所述第二运行环境中同样包括所述图形处理器GPU集群,并采用集群管理器SLURM对所述图形处理器GPU集群中的GPU资源进行管理,在将调整后的所述任务调度策略和所述预设资源分配策略部署在第二运行环境方面,处理器702,具体用于执行以下操作:In some possible implementation manners, the second operating environment also includes the graphics processor GPU cluster, and the cluster manager SLURM is used to manage the GPU resources in the graphics processor GPU cluster. The task scheduling policy and the preset resource allocation policy are deployed in the second operating environment, and the processor 702 is specifically configured to perform the following operations:
将调整后的所述任务调度策略和所述预设资源分配策略添加到所述集群管理器SLURM的源码模块中,以完成调整后的所述任务调度策略和所述预设资源分配策略在所述第二运行环境中的部署;所述任务调度策略包括抢占式调度策略、非抢占式调度策略和学习型调度策略中的一种或多种的组合。Adding the adjusted task scheduling strategy and the preset resource allocation strategy to the source code module of the cluster manager SLURM, so as to complete the adjusted task scheduling strategy and the preset resource allocation strategy in the The deployment in the second operating environment; the task scheduling strategy includes a combination of one or more of a preemptive scheduling strategy, a non-preemptive scheduling strategy, and a learning scheduling strategy.
在一些可能的实施方式中,在获取对图形处理器GPU集群中GPU的资源调度请求方面,处理器702,具体用于执行以下操作:In some possible implementation manners, in terms of obtaining a resource scheduling request for a GPU in a GPU cluster, the processor 702 is specifically configured to perform the following operations:
通过所述集群管理器SLURM提供的预设接口sacct API获取所述资源调度请求;所述资源调度请求为所述第二运行环境中,在所述图形处理器GPU集群上处理过的历史深度学习任务的任务记录。Obtain the resource scheduling request through the preset interface sacct API provided by the cluster manager SLURM; the resource scheduling request is the historical deep learning processed on the graphics processor GPU cluster in the second operating environment The task record for the task.
具体地,上述收发器701可为图6所述的实施例的集群资源调度装置600的收发单元601,上述处理器702可以为图6所述的实施例的集群资源调度装置600的处理单元602。Specifically, the above-mentioned transceiver 701 may be the transceiver unit 601 of the cluster resource scheduling device 600 of the embodiment shown in FIG. 6 , and the above-mentioned processor 702 may be the processing unit 602 of the cluster resource scheduling device 600 of the embodiment shown in FIG. 6 .
示例性的,上述电子设备可以是独立的物理服务器,也可以是服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、以及大数据和人工智能平台等基础云计算服务的云服务器。电子设备包括但不仅限于收发器701、处理器702存储器703和总线704。本领域技术人员可以理解,所述示意图仅仅是电子设备的示例,并不构成对电子设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件。Exemplarily, the above-mentioned electronic devices may be independent physical servers, or server clusters or distributed systems, and may also provide cloud services, cloud databases, cloud computing, cloud functions, cloud storage, network services, cloud communications, intermediate Cloud servers for basic cloud computing services such as software services, domain name services, security services, and big data and artificial intelligence platforms. The electronic device includes but is not limited to a transceiver 701 , a processor 702 memory 703 and a bus 704 . Those skilled in the art can understand that the schematic diagram is only an example of the electronic device, and does not constitute a limitation to the electronic device, and may include more or less components than those shown in the figure, or combine certain components, or different components.
需要说明的是,由于电子设备的处理器702执行计算机程序时实现上述的集群资源调度方法中的步骤,因此上述集群资源调度方法的实施例均适用于该电子设备,且均能达到相同或相似的有益效果。It should be noted that, since the processor 702 of the electronic device executes the computer program to implement the steps in the above cluster resource scheduling method, the above embodiments of the cluster resource scheduling method are all applicable to the electronic device, and all of them can achieve the same or similar beneficial effect.
本申请实施例还提供了一种计算机可读存储介质(Memory),所述计算机可读存储介质是电子设备中的记忆设备,用于存放程序和数据。可以理解的是, 此处的计算机可读存储介质既可以包括终端中的内置存储介质,当然也可以包括终端所支持的扩展存储介质。计算机可读存储介质提供存储空间,该存储空间存储了终端的操作系统。并且,在该存储空间中还存放了适于被处理器702加载并执行的一条或多条的指令,这些指令可以是一个或一个以上的计算机程序(包括程序代码)。需要说明的是,此处的计算机可读存储介质可以是高速RAM存储器,也可以是非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器;可选的,还可以是至少一个位于远离前述处理器702的计算机存储介质。在一个实施例中,可由处理器702加载并执行计算机存储介质中存放的一条或多条指令,以实现上述有关集群资源调度方法的相应步骤。The embodiment of the present application also provides a computer-readable storage medium (Memory), where the computer-readable storage medium is a memory device in an electronic device, and is used to store programs and data. It can be understood that the computer-readable storage medium here may include a built-in storage medium in the terminal, and of course may also include an extended storage medium supported by the terminal. The computer-readable storage medium provides storage space, and the storage space stores the operating system of the terminal. Moreover, one or more instructions suitable for being loaded and executed by the processor 702 are also stored in the storage space, and these instructions may be one or more computer programs (including program codes). It should be noted that the computer-readable storage medium here can be a high-speed RAM memory, or a non-volatile memory (non-volatile memory), such as at least one disk memory; The aforementioned computer storage medium for the processor 702. In one embodiment, the processor 702 can load and execute one or more instructions stored in the computer storage medium, so as to implement the corresponding steps of the cluster resource scheduling method described above.
示例性的,计算机可读存储介质的计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读存储介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。Exemplarily, the computer program on the computer-readable storage medium includes computer program code, and the computer program code may be in the form of source code, object code, executable file or some intermediate form. The computer-readable storage medium may include: any entity or device capable of carrying the computer program code, a recording medium, a USB flash drive, a removable hard disk, a magnetic disk, an optical disk, a computer memory, a read-only memory (ROM, Read-Only Memory) ), Random Access Memory (RAM, Random Access Memory), electrical carrier signal, telecommunication signal, and software distribution medium, etc.
需要说明的是,由于计算机可读存储介质的计算机程序被处理器执行时实现上述的集群资源调度方法中的步骤,因此上述集群资源调度方法的所有实施例均适用于该计算机可读存储介质,且均能达到相同或相似的有益效果。计算机可读存储介质可为易失性存储介质或非易失性存储介质。It should be noted that, since the computer program of the computer-readable storage medium is executed by the processor to implement the steps in the above-mentioned cluster resource scheduling method, all embodiments of the above-mentioned cluster resource scheduling method are applicable to the computer-readable storage medium, And all can achieve the same or similar beneficial effects. A computer readable storage medium may be a volatile storage medium or a nonvolatile storage medium.
本申请实施例还提供一种计算机程序产品,包括计算机可读代码,或者承载有计算机可读代码的非易失性计算机可读存储介质,当所述计算机可读代码在电子设备的处理器中运行时,所述电子设备中的处理器用于实现上述方法。The embodiment of the present application also provides a computer program product, including computer-readable codes, or a non-volatile computer-readable storage medium carrying computer-readable codes, when the computer-readable codes are stored in a processor of an electronic device During operation, the processor in the electronic device is used to implement the above method.
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于可选实施例,所涉及的动作和模块并不一定是本申请所必须的。It should be noted that for the foregoing method embodiments, for the sake of simple description, they are expressed as a series of action combinations, but those skilled in the art should know that the present application is not limited by the described action sequence. Depending on the application, certain steps may be performed in other orders or simultaneously. Secondly, those skilled in the art should also know that the embodiments described in the specification are all optional embodiments, and the actions and modules involved are not necessarily required by the application.
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。In the foregoing embodiments, the descriptions of each embodiment have their own emphases, and for parts not described in detail in a certain embodiment, reference may be made to relevant descriptions of other embodiments.
在本申请所提供的几个实施例中,应该理解到,所揭露的装置,可通过其 它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性或其它的形式。In the several embodiments provided in this application, it should be understood that the disclosed device can be implemented in other ways. For example, the device embodiments described above are only illustrative. For example, the division of the units is only a logical function division. In actual implementation, there may be other division methods. For example, multiple units or components can be combined or can be Integrate into another system, or some features may be ignored, or not implemented. In another point, the mutual coupling or direct coupling or communication connection shown or discussed may be through some interfaces, and the indirect coupling or communication connection of devices or units may be in electrical 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 may be distributed to multiple network units. Part or all of the units can be selected according to actual needs to achieve the purpose of the solution of this embodiment.
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件程序模块的形式实现。In addition, each functional unit in each embodiment of the present application may be integrated into one processing unit, each unit may exist separately physically, or two or more units may be integrated into one unit. The above-mentioned integrated units can be implemented not only in the form of hardware, but also in the form of software program modules.
所述集成的单元如果以软件程序模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储器中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储器中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储器包括:U盘、只读存储器、随机存取存储器、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。The integrated units may be stored in a computer-readable memory if implemented in the form of a software program module and sold or used as an independent product. Based on this understanding, the technical solution of the present application is essentially or part of the contribution to the prior art, or all or part of the technical solution can be embodied in the form of a software product, and the computer software product is stored in a memory. Several instructions are included to make a computer device (which may be a personal computer, server or network device, etc.) execute all or part of the steps of the methods described in the various embodiments of the present application. The aforementioned memory includes: various media capable of storing program codes such as U disk, read-only memory, random access memory, mobile hard disk, magnetic disk or optical disk.
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储器中,存储器可以包括:闪存盘、只读存储器、随机存取器、磁盘或光盘等。Those of ordinary skill in the art can understand that all or part of the steps in the various methods of the above-mentioned embodiments can be completed by instructing related hardware through a program, and the program can be stored in a computer-readable memory, and the memory can include: a flash disk , read-only memory, random access device, magnetic disk or optical disk, etc.
以上对本申请实施例进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。The embodiments of the present application have been introduced in detail above, and specific examples have been used in this paper to illustrate the principles and implementation methods of the present application. The descriptions of the above embodiments are only used to help understand the methods and core ideas of the present application; meanwhile, for Those skilled in the art will have changes in specific implementation methods and application scopes based on the ideas of the present application. In summary, the contents of this specification should not be construed as limiting the present application.

Claims (11)

  1. 一种集群资源调度方法,其特征在于,包括:A cluster resource scheduling method, characterized in that, comprising:
    在第一运行环境中,获取对图形处理器GPU集群中GPU的资源调度请求;所述资源调度请求中包括请求参数;In the first operating environment, obtain a resource scheduling request to the GPU in the graphics processor GPU cluster; the resource scheduling request includes request parameters;
    根据所述请求参数执行任务调度策略将所述资源调度请求对应的深度学习任务添加到任务队列中,以及执行预设资源分配策略从所述图形处理器GPU集群中确定出至少一个目标GPU;Executing a task scheduling strategy according to the request parameters, adding the deep learning task corresponding to the resource scheduling request to a task queue, and executing a preset resource allocation strategy to determine at least one target GPU from the graphics processor GPU cluster;
    将所述深度学习任务调度至所述至少一个目标GPU上进行处理;Scheduling the deep learning task to the at least one target GPU for processing;
    调整所述任务调度策略和所述预设资源分配策略,将调整后的所述任务调度策略和所述预设资源分配策略部署在第二运行环境中。Adjusting the task scheduling policy and the preset resource allocation policy, and deploying the adjusted task scheduling policy and the preset resource allocation policy in the second operating environment.
  2. 根据权利要求1所述的方法,其特征在于,所述请求参数包括所述深度学习任务的任务类型,所述根据所述请求参数执行任务调度策略将所述资源调度请求对应的深度学习任务添加到任务队列中,包括:The method according to claim 1, wherein the request parameter includes the task type of the deep learning task, and the task scheduling policy is executed according to the request parameter to add the deep learning task corresponding to the resource scheduling request to the task queue, including:
    根据所述深度学习任务的任务类型从所述图形处理器GPU集群的至少一个任务分区中确定出所述深度学习任务待请求的目标任务分区;Determine the target task partition to be requested by the deep learning task from at least one task partition of the graphics processor GPU cluster according to the task type of the deep learning task;
    执行所述目标任务分区对应的所述任务调度策略将所述深度学习任务添加到所述目标任务分区的任务队列中。Execute the task scheduling policy corresponding to the target task partition to add the deep learning task to the task queue of the target task partition.
  3. 根据权利要求1或2所述的方法,其特征在于,所述请求参数还包括历史深度学习任务的平均完成时长和平均等待时长,所述执行预设资源分配策略从所述图形处理器GPU集群中确定出至少一个目标GPU,包括:The method according to claim 1 or 2, wherein the request parameters also include the average completion time and the average waiting time of historical deep learning tasks, and the implementation of the preset resource allocation strategy is obtained from the graphics processor GPU cluster Identify at least one target GPU, including:
    根据所述平均完成时长和所述平均等待时长计算出所述深度学习任务待请求的GPU资源量;Calculate the amount of GPU resources to be requested by the deep learning task according to the average completion time and the average waiting time;
    根据所述待请求的GPU资源量执行第一预设资源分配策略或第二预设资源分配策略,以从所述目标任务分区中确定出所述至少一个目标GPU;所述第一预设资源分配策略用于查找到所述目标任务分区中的空闲GPU资源,则将所述空闲GPU资源确定为目标GPU,所述第二预设资源分配策略用于查找到所述目标任务分区中满足计算条件的空闲GPU资源,则将所述满足计算条件的空闲GPU资源确定为目标GPU。Executing a first preset resource allocation strategy or a second preset resource allocation strategy according to the amount of GPU resources to be requested, so as to determine the at least one target GPU from the target task partition; the first preset resource The allocation strategy is used to find an idle GPU resource in the target task partition, then the idle GPU resource is determined as the target GPU, and the second preset resource allocation strategy is used to find the idle GPU resource in the target task partition that satisfies the calculation conditional idle GPU resource, then determine the idle GPU resource satisfying the calculation condition as the target GPU.
  4. 根据权利要求2或3所述的方法,其特征在于,在根据所述深度学习任 务的任务类型从所述图形处理器GPU集群的至少一个任务分区中确定出所述深度学习任务待请求的目标任务分区之前,所述方法还包括:The method according to claim 2 or 3, wherein the target to be requested by the deep learning task is determined from at least one task partition of the graphics processor GPU cluster according to the task type of the deep learning task Before task partitioning, the method also includes:
    按照所述图形处理器GPU集群中节点的任务类型对节点进行分类,得到所述至少一个任务分区;Classify the nodes according to the task types of the nodes in the GPU cluster to obtain the at least one task partition;
    按照所述图形处理器GPU集群中节点所连接的交换机对节点进行分类,得到至少一个网络拓扑。Nodes are classified according to the switches connected to the nodes in the GPU cluster to obtain at least one network topology.
  5. 根据权利要求4所述的方法,其特征在于,在根据所述待请求的GPU资源量执行第一预设资源分配策略或第二预设资源分配策略,以从所述目标任务分区中确定出所述至少一个目标GPU之后,所述方法还包括:The method according to claim 4, wherein the first preset resource allocation strategy or the second preset resource allocation strategy is executed according to the amount of GPU resources to be requested, so as to determine the target task partition After the at least one target GPU, the method also includes:
    确定所述至少一个目标GPU所属的节点是否在所述至少一个网络拓扑的不同网络拓扑中;determining whether the node to which the at least one target GPU belongs is in a different network topology of the at least one network topology;
    若是,则为所述深度学习任务增加额外的通信开销。If yes, add additional communication overhead for the deep learning task.
  6. 根据权利要求1-5中任一项所述的方法,其特征在于,所述第二运行环境中同样包括所述图形处理器GPU集群,并采用集群管理器SLURM对所述图形处理器GPU集群中的GPU资源进行管理,所述将调整后的所述任务调度策略和所述预设资源分配策略部署在第二运行环境中,包括:The method according to any one of claims 1-5, wherein the second operating environment also includes the graphics processor GPU cluster, and a cluster manager SLURM is used to manage the graphics processor GPU cluster GPU resources in the system are managed, and the adjusted task scheduling strategy and the preset resource allocation strategy are deployed in the second operating environment, including:
    将调整后的所述任务调度策略和所述预设资源分配策略添加到所述集群管理器SLURM的源码模块中,以完成调整后的所述任务调度策略和所述预设资源分配策略在所述第二运行环境中的部署;所述任务调度策略包括抢占式调度策略、非抢占式调度策略和学习型调度策略中的一种或多种的组合。Adding the adjusted task scheduling strategy and the preset resource allocation strategy to the source code module of the cluster manager SLURM, so as to complete the adjusted task scheduling strategy and the preset resource allocation strategy in the The deployment in the second operating environment; the task scheduling strategy includes a combination of one or more of a preemptive scheduling strategy, a non-preemptive scheduling strategy, and a learning scheduling strategy.
  7. 根据权利要求6所述的方法,其特征在于,所述获取对图形处理器GPU集群中GPU的资源调度请求,包括:The method according to claim 6, wherein said obtaining the resource scheduling request of the GPU in the graphics processing unit (GPU) cluster comprises:
    通过所述集群管理器SLURM提供的预设接口sacct API获取所述资源调度请求;所述资源调度请求为所述第二运行环境中,在所述图形处理器GPU集群上处理过的历史深度学习任务的任务记录。Obtain the resource scheduling request through the preset interface sacct API provided by the cluster manager SLURM; the resource scheduling request is the historical deep learning processed on the graphics processor GPU cluster in the second operating environment The task record for the task.
  8. 一种集群资源调度装置,其特征在于,包括:A cluster resource scheduling device, characterized in that it includes:
    收发单元,用于在第一运行环境中,获取对图形处理器GPU集群中GPU的资源调度请求;所述资源调度请求中包括请求参数;A transceiver unit, configured to acquire a resource scheduling request for a GPU in a GPU cluster in a first operating environment; the resource scheduling request includes request parameters;
    处理单元,用于根据所述请求参数执行任务调度策略将所述资源调度请求对应的深度学习任务添加到任务队列中,以及执行预设资源分配策略从所述图 形处理器GPU集群中确定出至少一个目标GPU;The processing unit is configured to execute a task scheduling strategy according to the request parameter, add the deep learning task corresponding to the resource scheduling request to the task queue, and execute a preset resource allocation strategy to determine at least a target GPU;
    所述处理单元,还用于将所述深度学习任务调度至所述至少一个目标GPU上进行处理;The processing unit is further configured to dispatch the deep learning task to the at least one target GPU for processing;
    所述处理单元,还用于调整所述任务调度策略和所述预设资源分配策略,将调整后的所述任务调度策略和所述预设资源分配策略部署在第二运行环境中。The processing unit is further configured to adjust the task scheduling policy and the preset resource allocation policy, and deploy the adjusted task scheduling policy and the preset resource allocation policy in the second running environment.
  9. 一种电子设备,其特征在于,包括:处理器,所述处理器与存储器相连,所述存储器用于存储计算机程序,所述处理器用于执行所述存储器中存储的计算机程序,以使得所述电子设备执行如权利要求1-7中任一项所述的方法。An electronic device, characterized by comprising: a processor, the processor is connected to a memory, the memory is used to store a computer program, and the processor is used to execute the computer program stored in the memory, so that the The electronic device executes the method according to any one of claims 1-7.
  10. 一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行以实现如权利要求1-7任一项所述的方法。A computer-readable storage medium, wherein the computer-readable storage medium stores a computer program, and the computer program is executed by a processor to implement the method according to any one of claims 1-7.
  11. 一种计算机程序产品,包括计算机可读代码,或者承载有计算机可读代码的非易失性计算机可读存储介质,当所述计算机可读代码在电子设备的处理器中运行时,所述电子设备中的处理器执行用于实现权利要求1-7中的任一权利要求所述的方法。A computer program product, comprising computer readable codes, or a non-volatile computer readable storage medium bearing computer readable codes, when the computer readable codes are run in a processor of an electronic device, the electronic A processor in the device is configured to implement the method of any one of claims 1-7.
PCT/CN2021/126478 2021-06-15 2021-10-26 Cluster resource scheduling method and apparatus, electronic device and storage medium WO2022262167A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202110664041.0 2021-06-15
CN202110664041.0A CN113377540A (en) 2021-06-15 2021-06-15 Cluster resource scheduling method and device, electronic equipment and storage medium

Publications (1)

Publication Number Publication Date
WO2022262167A1 true WO2022262167A1 (en) 2022-12-22

Family

ID=77574472

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2021/126478 WO2022262167A1 (en) 2021-06-15 2021-10-26 Cluster resource scheduling method and apparatus, electronic device and storage medium

Country Status (2)

Country Link
CN (1) CN113377540A (en)
WO (1) WO2022262167A1 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116185645A (en) * 2023-04-28 2023-05-30 联通沃音乐文化有限公司 Cluster resource intelligent scheduling method, system and storage medium based on neural network
CN116542334A (en) * 2023-05-12 2023-08-04 北京大学 Deep neural network reasoning scheduling method and device based on Web browser
CN117155928A (en) * 2023-10-31 2023-12-01 浪潮电子信息产业股份有限公司 Communication task processing method, system, equipment, cluster and readable storage medium

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113377540A (en) * 2021-06-15 2021-09-10 上海商汤科技开发有限公司 Cluster resource scheduling method and device, electronic equipment and storage medium
CN114629906B (en) * 2022-03-14 2023-09-29 浙江大学 Reliable cloud container cluster resource scheduling method and device based on deep reinforcement learning
CN114911612A (en) * 2022-04-29 2022-08-16 中国航空无线电电子研究所 Task scheduling method for CPU-GPU heterogeneous resources
CN117539595A (en) * 2022-08-01 2024-02-09 华为技术有限公司 Cooperative scheduling method and related equipment
CN115080248B (en) * 2022-08-19 2023-01-10 中兴通讯股份有限公司 Scheduling optimization method for scheduling device, and storage medium
CN115525425A (en) * 2022-09-16 2022-12-27 中国电信股份有限公司 Federal learning calculation engine arrangement method and device based on cloud native technology
CN115220921B (en) * 2022-09-19 2023-01-03 浙江大华技术股份有限公司 Resource scheduling method, image processor, image pickup device, and medium
CN115421930B (en) * 2022-11-07 2023-03-24 山东海量信息技术研究院 Task processing method, system, device, equipment and computer readable storage medium
CN116739090B (en) * 2023-05-12 2023-11-28 北京大学 Deep neural network reasoning measurement method and device based on Web browser
CN117032937B (en) * 2023-09-28 2024-01-09 之江实验室 Task scheduling method based on GPU, electronic device and storage medium

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106992901A (en) * 2016-01-20 2017-07-28 阿里巴巴集团控股有限公司 Method and apparatus for scheduling of resource simulated pressure
US20190197655A1 (en) * 2017-04-14 2019-06-27 EMC IP Holding Company LLC Managing access to a resource pool of graphics processing units under fine grain control
CN111159004A (en) * 2018-11-07 2020-05-15 中移(苏州)软件技术有限公司 Hadoop cluster simulation test method and device and storage medium
CN111966484A (en) * 2020-06-23 2020-11-20 北京大学 Cluster resource management and task scheduling method and system based on deep reinforcement learning
CN112416585A (en) * 2020-11-20 2021-02-26 南京大学 GPU resource management and intelligent scheduling method for deep learning
CN113377540A (en) * 2021-06-15 2021-09-10 上海商汤科技开发有限公司 Cluster resource scheduling method and device, electronic equipment and storage medium

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102541640B (en) * 2011-12-28 2014-10-29 厦门市美亚柏科信息股份有限公司 Cluster GPU (graphic processing unit) resource scheduling system and method
CN107291546B (en) * 2016-03-30 2020-07-14 华为技术有限公司 Resource scheduling method and device
CN108733464B (en) * 2017-04-18 2021-09-14 华为技术有限公司 Method and device for determining scheduling scheme of computing task
CN109144716A (en) * 2017-06-28 2019-01-04 中兴通讯股份有限公司 Operating system dispatching method and device, equipment based on machine learning
CN110297699B (en) * 2018-03-23 2021-09-14 华为技术有限公司 Scheduling method, scheduler, storage medium and system
CN109614236B (en) * 2018-12-07 2023-04-18 深圳前海微众银行股份有限公司 Cluster resource dynamic adjustment method, device and equipment and readable storage medium
CN109634748A (en) * 2018-12-12 2019-04-16 深圳前海微众银行股份有限公司 Cluster resource dispatching method, device, equipment and computer readable storage medium
CN111258734B (en) * 2020-01-16 2022-09-23 中国人民解放军国防科技大学 Deep learning task scheduling method based on reinforcement learning
CN111736987B (en) * 2020-05-29 2023-08-04 山东大学 Task scheduling method based on GPU space resource sharing
CN112433819B (en) * 2020-11-30 2024-04-19 中国科学院深圳先进技术研究院 Simulation method and device for heterogeneous cluster scheduling, computer equipment and storage medium
CN112882828B (en) * 2021-01-25 2023-09-05 北京大学 Method for managing and scheduling a processor in a processor-based SLURM operation scheduling system

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106992901A (en) * 2016-01-20 2017-07-28 阿里巴巴集团控股有限公司 Method and apparatus for scheduling of resource simulated pressure
US20190197655A1 (en) * 2017-04-14 2019-06-27 EMC IP Holding Company LLC Managing access to a resource pool of graphics processing units under fine grain control
CN111159004A (en) * 2018-11-07 2020-05-15 中移(苏州)软件技术有限公司 Hadoop cluster simulation test method and device and storage medium
CN111966484A (en) * 2020-06-23 2020-11-20 北京大学 Cluster resource management and task scheduling method and system based on deep reinforcement learning
CN112416585A (en) * 2020-11-20 2021-02-26 南京大学 GPU resource management and intelligent scheduling method for deep learning
CN113377540A (en) * 2021-06-15 2021-09-10 上海商汤科技开发有限公司 Cluster resource scheduling method and device, electronic equipment and storage medium

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116185645A (en) * 2023-04-28 2023-05-30 联通沃音乐文化有限公司 Cluster resource intelligent scheduling method, system and storage medium based on neural network
CN116185645B (en) * 2023-04-28 2023-08-04 联通沃音乐文化有限公司 Cluster resource intelligent scheduling method, system and storage medium based on neural network
CN116542334A (en) * 2023-05-12 2023-08-04 北京大学 Deep neural network reasoning scheduling method and device based on Web browser
CN116542334B (en) * 2023-05-12 2023-10-20 北京大学 Deep neural network reasoning scheduling method and device based on Web browser
CN117155928A (en) * 2023-10-31 2023-12-01 浪潮电子信息产业股份有限公司 Communication task processing method, system, equipment, cluster and readable storage medium
CN117155928B (en) * 2023-10-31 2024-02-09 浪潮电子信息产业股份有限公司 Communication task processing method, system, equipment, cluster and readable storage medium

Also Published As

Publication number Publication date
CN113377540A (en) 2021-09-10

Similar Documents

Publication Publication Date Title
WO2022262167A1 (en) Cluster resource scheduling method and apparatus, electronic device and storage medium
CN110869909B (en) System and method for applying machine learning algorithms to calculate health scores for workload scheduling
CN110301128B (en) Learning-based resource management data center cloud architecture implementation method
US11847554B2 (en) Data processing method and related products
Jyoti et al. Dynamic provisioning of resources based on load balancing and service broker policy in cloud computing
US10217053B2 (en) Provisioning service requests in a computer system
Zhao et al. Locality-aware scheduling for containers in cloud computing
Di et al. Characterizing and modeling cloud applications/jobs on a Google data center
US11429434B2 (en) Elastic execution of machine learning workloads using application based profiling
Patel et al. Survey on resource allocation strategies in cloud computing
TW201820165A (en) Server and cloud computing resource optimization method thereof for cloud big data computing architecture
Shi et al. Energy-aware container consolidation based on PSO in cloud data centers
CN112465146B (en) Quantum and classical hybrid cloud platform and task execution method
Muthusamy et al. Cluster-based task scheduling using K-means clustering for load balancing in cloud datacenters
CN115586961A (en) AI platform computing resource task scheduling method, device and medium
US10853137B2 (en) Efficient resource allocation for concurrent graph workloads
Li et al. Performance optimization of computing task scheduling based on the Hadoop big data platform
CN109582461B (en) Resource deployment method and system for Linux container
Beni et al. Adaptive and reflective middleware for the cloudification of simulation & optimization workflows
CN109117247A (en) A kind of virtual resource management system and method based on heterogeneous polynuclear topology ambiguity
Tang et al. Edge computing energy-efficient resource scheduling based on deep reinforcement learning and imitation learning
Hu et al. Hydro:{Surrogate-Based} Hyperparameter Tuning Service in Datacenters
Pilla Topology-aware load balancing for performance portability over parallel high performance systems
Grozev et al. Dynamic selection of virtual machines for application servers in cloud environments
Lin et al. Dynamic system allocation and application of cloud computing virtual resources based on system architecture

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: 21945747

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE