WO2022247105A1 - Procédé et appareil de planification de tâche, dispositif informatique et support de stockage - Google Patents
Procédé et appareil de planification de tâche, dispositif informatique et support de stockage Download PDFInfo
- Publication number
- WO2022247105A1 WO2022247105A1 PCT/CN2021/124136 CN2021124136W WO2022247105A1 WO 2022247105 A1 WO2022247105 A1 WO 2022247105A1 CN 2021124136 W CN2021124136 W CN 2021124136W WO 2022247105 A1 WO2022247105 A1 WO 2022247105A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- task
- node server
- resource
- target
- type
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 120
- 238000004891 communication Methods 0.000 claims description 192
- 238000004364 calculation method Methods 0.000 claims description 40
- 238000013468 resource allocation Methods 0.000 claims description 31
- 238000004590 computer program Methods 0.000 claims description 13
- 238000012216 screening Methods 0.000 claims description 9
- 238000010586 diagram Methods 0.000 description 30
- 230000008569 process Effects 0.000 description 11
- 238000013135 deep learning Methods 0.000 description 8
- 238000012545 processing Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 5
- 238000004458 analytical method Methods 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000011160 research Methods 0.000 description 3
- 230000007547 defect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
Definitions
- the present disclosure relates to the field of computer technology, in particular, to a task scheduling method, device, computer equipment and storage medium.
- the task scheduling system In order to meet the different resource requirements corresponding to different deep learning tasks, the task scheduling system is playing an increasingly important role.
- the task scheduling methods applied in the task scheduling system are mostly based on the resource requirements of deep learning tasks. , with the goal of allocating as few node servers as possible to schedule resources for deep learning tasks.
- Embodiments of the present disclosure at least provide a task scheduling method, device, computer equipment, and storage medium.
- an embodiment of the present disclosure provides a task scheduling method, including:
- the task information can reflect information such as the resource demand amount and traffic demand information of the task to be processed, so that based on the task information, the task type matching the task information can be determined.
- the methods of determining the target node server and target resources are different for different task types. Based on the determined task type, the resource determination method matching the task type can be determined, and then, the determined resource determination method can be used as the resource determination method to be processed. Assigning target resources to tasks can improve the rationality of the allocated target resources, and then, using the determined target resources to execute tasks to be processed can improve the speed and efficiency of task execution.
- the determining the task type of the task according to the task information includes:
- the task information determine the resource requirement of the task and the traffic requirement information of the task
- the task type of the task is determined based on the determined resource demand, communication traffic demand information of the task, and resource quantity in the node server.
- the traffic demand information can reflect the demand information of the task for the traffic and calculation volume
- the resource demand can reflect the number of idle resources required to execute the task
- the number of resources in the node server can reflect the maximum idle resources in a node server resource quantity.
- the task type of the task to be processed can be accurately determined based on the resource demand, the communication traffic demand information of the task, and the resource quantity in the node server.
- the determining the target node server for executing the task and the target resource on the target node server based on the task type includes:
- a target node server for executing the task and target resources on the target node server are determined based on the task type of the task, the resource requirement of the task, and the idle resources on the node server.
- tasks of different task types have different resource allocation priorities. For example, tasks of the single-node multi-resource communication type that require high communication traffic have higher resource allocation priorities, so the number of idle resources can be greater than that of resource allocation. Select the target node server from the node server with the required amount. For tasks of the single-node multi-resource computing type with a large amount of calculation, the resource allocation priority is lower than that of the single-node multi-resource communication type. Therefore, the number of idle resources can be Select the target node server from the node servers that are smaller than the resource requirement. In this way, assigning the target node server and the target resources in the target node server to tasks according to different task types can realize the rational allocation of idle resources in the node server to different tasks, thereby improving the speed and efficiency of task scheduling and execution. efficiency.
- target resources including:
- a target node server for executing the task and target resources on the target node server from the at least one initial node server.
- the initial node server that can execute the task to be processed can be selected first, and then the final target for executing the task to be processed can be selected according to the resource demand of the task and the idle resources on the initial node server
- the node server and the target resource thus, the selected target node server and target resource can not only execute the task to be processed, but also have a faster execution speed, thereby improving the speed and efficiency of task execution.
- the task type includes a single-node multi-resource communication type
- the determining the target node server for performing the task from the at least one initial node server includes:
- the initial node server Based on the number of idle resources on the initial node server in the at least one initial node server, select the initial node server whose number of idle resources is greater than or equal to the resource demand as the first node server;
- a target node server for executing the task is determined based on idle resources on the first node server and resource requirements of the task.
- the single-node multi-resource communication type has a high demand for traffic, so select the first node server whose number of idle resources is greater than or equal to the resource demand, instead of waiting for other node servers whose number of idle resources is less than the resource demand Releasing resources, realizing that the initial node server with a large number of idle resources is preferentially allocated to this type of task, so as to meet the traffic demand of this type of task, and then select the target node server for executing the task from the first node server, It can effectively improve the scheduling and execution efficiency of this type of task.
- the determining the target node server for executing the task based on the idle resources on the first node server and the resource requirement of the task includes:
- the first node server having any one of the preset topology structures and the least number of idle resources as the target node server.
- resources with a preset topology have higher communication quality
- the use of the target node server with a preset topology can further increase the speed of executing single-node multi-resource communication tasks.
- selecting the first node server with the least number of idle resources can reduce the splitting of the original topology structure of the idle resources in the first node server with a large number of idle resources, and realize the protection of the optional topology structure and Apply it reasonably to other tasks such as single-node multi-resource communication types.
- determining the target resource on the target node server includes:
- the task type includes a single-node multi-resource computing type
- the determining the target node server for performing the task from the at least one initial node server includes:
- a target node server for executing the task is determined based on idle resources on the second node server and resource requirements of the task.
- the single-node multi-resource computing type has a high demand for calculation volume and a small demand for communication volume. Therefore, selecting a second node server with a number of idle resources smaller than the resource demand can meet the communication requirements of this type of task. It can improve the scheduling and execution efficiency of this type of task to a certain extent. Furthermore, this type of task does not occupy the initial node server whose number of idle resources is greater than the resource demand, and can reserve this type of node server for the task of single-node multi-resource communication type with high resource demand, which realizes the improvement of single-node While the scheduling and execution efficiency of multi-resource computing tasks is improved, the scheduling and execution efficiency of single-node multi-resource communication tasks is improved. Furthermore, this embodiment can reduce the splitting probability of the original topology structure of idle resources in the initial node server with a large number of idle resources, realize the protection of the optional topology structure and rationally apply it to multiple Resource communication types and other tasks.
- the determining the target node server for executing the task based on the idle resources on the second node server and the resource requirement of the task includes:
- resources with a preset topology have higher communication quality, and using the target node server with a preset topology can improve the scheduling and execution efficiency of single-node multi-resource computing tasks.
- the determining the target node server for executing the task based on the idle resources on the second node server and the resource requirement of the task further includes:
- no second node server with any one of the preset topology structures is screened out from the second node servers, after a preset period of time or at least one idle resource on the node server changes, the node server is reacquired and returning to the step of screening the second node server whose number of idle resources is less than or equal to the resource requirement based on the number of idle resources on the initial node server among the at least one initial node server.
- the required idle resources with a preset topology can be allocated to tasks in a timely manner, and further, tasks of the single-node multi-resource computing type can be executed in a timely manner .
- it can also reduce the split probability of the original topology structure of idle resources in the initial node server with a large number of idle resources, realize the protection of optional topology structures and rationally apply it in single-node multi-resource communication type and other tasks.
- the task type includes a multi-node type
- the determining the target node server for performing the task from the at least one initial node server includes:
- the at least one initial node server determine the maximum number of third node servers required to perform the task; wherein, the third node server is an empty initial node server;
- the third node server with the maximum number is used as the target node server.
- idle resources in the unloaded third node server have an optional topology structure, and selecting the third node server with the largest number as the target node server can ensure that the target node servers used to perform multi-node tasks have available
- the selected topology can improve the efficiency of executing multi-node type tasks.
- the determining the target node server for executing the task from the at least one initial node server further includes:
- the difference between the total amount of resources and the resource demand can reflect that in addition to the idle resources included in the unloaded target node server, the task also needs to select target resources on other initial node servers, and then, based on the difference, select The fourth node server can realize the reasonable allocation of idle resources required by the task, thereby improving the speed of executing the task.
- the task type includes a single resource type
- the determining the target node server for performing the task from the at least one initial node server includes:
- the initial node server whose idle resource quantity is equal to the resource requirement is used as the target node server.
- a task of a single resource type can be executed only by one idle resource. Therefore, the task can be executed quickly and efficiently by using the target node server whose number of idle resources is equal to the resource demand.
- it also includes a step of determining a preset topology:
- a preset topology corresponding to any number of idle resources in the node server to be matched is determined.
- the communication waiting time of the topology can represent the waiting time required to execute tasks using the topology, and the preset topology with high task execution efficiency can be screened out by using the communication waiting time, so that the idle time with the preset topology can be used Resource execution tasks can improve the efficiency of task execution.
- the determining a preset topology corresponding to any number of idle resources in the node server to be matched based on the communication waiting time includes:
- the topological structure whose sort order is smaller than the preset order is used as the preset topology structure corresponding to the node server to be matched.
- using the preset order to filter the preset topology can ensure that the communication waiting time of the filtered preset topology is relatively short, and then, using the preset topology to execute tasks can realize task execution at a faster speed.
- the determining a preset topology corresponding to any number of idle resources in the node server to be matched based on the communication waiting time includes
- the topology structure whose communication waiting time is shorter than the preset waiting threshold is taken as the preset topology structure corresponding to the number of idle resources in the node server to be matched.
- using the preset waiting threshold to filter the preset topology can ensure that the communication waiting time of the filtered preset topology is less than the preset waiting threshold, and then, using the preset topology to execute tasks can reasonably reduce the need for task execution. communication waiting time.
- the determining the task type of the task according to the task information includes:
- the task information determine the resource requirement of the task and the traffic requirement information of the task
- the task type of the task is determined based on the target node server executing the task and the target resource on the target node server.
- the target node server and target resource can be determined, and then, the target node server and target resource corresponding to the task type can be directly assigned to the task to be processed, omitting the time for selecting the initial node server, and improving The speed and efficiency of resource scheduling, thereby improving the speed and efficiency of task execution.
- the method also includes:
- the obtained tasks to be processed include multiple tasks, based on the task type of each task, determine the resource allocation priority of each task;
- a target node server for executing the task and target resources on the target node server are determined.
- resources are allocated to different tasks based on resource allocation priorities, so that idle resources in the node server can be reasonably allocated to different tasks.
- the task type includes single-node multi-resource communication type, single-node multi-resource computing type, multi-node type, and single-resource type;
- tasks of the single-node multi-resource communication type have a high demand for communication traffic.
- Setting the task of this task type as the first priority can meet the required communication traffic and increase the speed of executing tasks of this task type.
- Tasks of the single-node multi-resource computing type have high demands on the amount of computation and relatively small demands on communication traffic.
- Setting this type of task as the second priority can meet the required amount of computation and reduce the need for The split probability of the original topology of idle resources in node servers with a large number of idle resources.
- Multi-node tasks require empty node servers and there are relatively few tasks of this task type.
- the task information includes the resource requirement
- the method further includes the step of obtaining the resource requirement:
- the resource requirement is obtained directly from the configuration file, which improves the speed of determining the resource requirement.
- the task information includes the traffic demand information
- the method further includes the step of acquiring the traffic demand information:
- the communication amount requirement information is determined.
- the traffic demand information is determined based on the acquired calculation traffic information and traffic traffic information, which can ensure the accuracy of the determined traffic traffic demand information.
- the acquiring the calculation amount information and the communication amount information of the task to be processed includes:
- the task request includes the calculation volume information and traffic information.
- the calculation amount information and the communication amount information are determined based on the analysis of the configuration file or the task request, and the accuracy of the determined calculation amount information and the communication amount information can be improved.
- the task information includes the traffic demand information
- the method further includes the step of acquiring the traffic demand information:
- the communication traffic requirement information is obtained directly from the configuration file, the step of calculating the information is omitted, and the speed of determining the communication traffic requirement information is improved.
- the determining the task type of the task based on the determined resource demand, task traffic demand information, and resource quantity in the node server includes:
- the task type of the task to be processed is determined based on the number of target node servers corresponding to the task to be processed and the traffic demand information.
- the task type of the task can be accurately determined.
- the task type includes single-node multi-resource communication type, single-node multi-resource computing type, multi-node type, and single-resource type;
- the determining the task type of the task to be processed based on the number of target node servers corresponding to the task to be processed and the traffic demand information includes:
- the number of target node servers corresponding to the task to be processed is equal to 1, the number of target resources corresponding to the task to be processed is greater than 1, and the traffic demand information indicates the traffic demand of the task to be processed
- the task type of the task to be processed is a single-node multi-resource communication type
- the number of target node servers corresponding to the task to be processed is equal to 1, the number of target resources corresponding to the task to be processed is greater than 1, and the traffic demand information indicates the calculation capacity demand of the task to be processed If it is higher than the communication traffic requirement, it is determined that the task type of the task to be processed is a single-node multi-resource computing type;
- the task type of the task to be processed is a single resource type.
- the task type of the task can be accurately determined.
- the embodiment of the present disclosure also provides a task scheduling method applied to a client, including:
- the client first determines the target node server and target resource based on the determined task type, and then sends it to the scheduler.
- the scheduler omits the step of determining the target node server and target resource, and can directly send the target node server and target Resources are allocated to tasks, so that the speed of resource scheduling and the execution speed and efficiency of tasks can be improved.
- the determining the task type of the task to be processed includes:
- the task type of the task is determined based on the determined resource demand, communication traffic demand information of the task, and resource quantity in the node server.
- the traffic demand information can reflect the demand information of the task for the traffic and calculation volume
- the resource demand can reflect the number of idle resources required to execute the task
- the number of resources in the node server can reflect the maximum idle resources in a node server number of resources.
- the task type of the task to be processed can be accurately determined based on the resource demand, the communication traffic demand information of the task, and the resource quantity in the node server.
- the determining the task type of the task to be processed includes:
- a task type of the task is determined based on the at least one target node server and target resources on the target node server.
- determining the task type based on the idle resources can ensure that the currently determined target node server and target resources can be directly used to execute the task.
- the embodiment of the present disclosure also provides a task scheduling device, which is applied to the scheduler side, including:
- An acquisition module configured to acquire task information of tasks to be processed
- a first determining module configured to determine the task type of the task based on the task information
- a second determining module configured to determine a target node server for executing the task and target resources on the target node server based on the task type
- An allocating module configured to allocate the target node server and target resources on the target node server to execute the task.
- the disclosed example also includes a task scheduling device, which is applied to the client, including:
- the third determining module is used to determine the task type of the task to be processed
- a fourth determining module configured to determine a target node server for executing the task and target resources on the target node server based on the task type of the task;
- a sending module configured to send the information of the target node server and the information of the target resource to a scheduler, so that the scheduler allocates the target node server and the target resource to the task to be processed
- an optional implementation manner of the present disclosure further provides a computer device, a processor, and a memory, where the memory stores machine-readable instructions executable by the processor, and the processor is configured to execute the instructions stored in the memory.
- machine-readable instructions when the machine-readable instructions are executed by the processor, when the machine-readable instructions are executed by the processor, the above-mentioned first aspect is executed, or any possible implementation of the first aspect.
- an optional implementation manner of the present disclosure further provides a computer-readable storage medium, on which a computer program is stored, and when the computer program is executed, the above-mentioned first aspect, or any one of the first aspects in the first aspect, may be executed. Steps in a possible implementation manner, or, performing the steps in the above second aspect, or any possible implementation manner in the second aspect.
- an optional implementation manner of the present disclosure further provides a computer program product, including computer-readable codes, or a non-volatile computer-readable storage medium bearing computer-readable codes, when the computer-readable codes are stored in
- the processor in the electronic device executes the above-mentioned first aspect, or the steps in any possible implementation manner of the first aspect, or executes the above-mentioned second aspect, or the second aspect A step in any possible implementation of an aspect.
- FIG. 1 shows a flowchart of a task scheduling method applied to a scheduler provided by an embodiment of the present disclosure
- FIG. 2 shows a schematic structural diagram of a node server provided by an embodiment of the present disclosure
- FIG. 3 shows a flowchart of a method for determining a preset topology provided by an embodiment of the present disclosure
- FIG. 4 shows a schematic diagram of a topology relationship between node servers provided by an embodiment of the present disclosure
- FIG. 5 shows a schematic diagram of a topology structure of a multi-node task provided by an embodiment of the present disclosure
- FIG. 6a shows a schematic diagram of a preset topology structure corresponding to 8 resources provided by an embodiment of the present disclosure
- FIG. 6b shows a schematic diagram of a preset topology structure corresponding to 7 resources provided by an embodiment of the present disclosure
- FIG. 6c shows a schematic diagram of a preset topology structure corresponding to 6 resources provided by an embodiment of the present disclosure
- FIG. 6d shows a schematic diagram of a preset topology structure corresponding to 5 resources provided by an embodiment of the present disclosure
- FIG. 6e shows a schematic diagram of a preset topology structure corresponding to 4 resources provided by an embodiment of the present disclosure
- FIG. 6f shows a schematic diagram of a preset topology structure corresponding to 3 resources provided by an embodiment of the present disclosure
- FIG. 6g shows a schematic diagram of a preset topology structure corresponding to 2 resources provided by an embodiment of the present disclosure
- FIG. 7 shows a schematic diagram of splitting an initial node server including different idle resources provided by an embodiment of the present disclosure
- FIG. 8 shows a flow chart of a task scheduling method applied to a client provided by an embodiment of the present disclosure
- FIG. 9 shows a schematic diagram of a task scheduling device applied to the scheduler end provided by an embodiment of the present disclosure.
- FIG. 10 shows a schematic diagram of a task scheduling device applied to a client provided by an embodiment of the present disclosure
- FIG. 11 shows a schematic structural diagram of a computer device provided by an embodiment of the present disclosure.
- the task scheduling system is playing an increasingly important role.
- the task scheduling methods applied in the task scheduling system are mostly based on deep learning task
- the resource demand is to allocate resources for deep learning tasks with the goal of allocating as few node servers as possible.
- the present disclosure provides a task scheduling method, device, computer equipment, and storage medium.
- the task information can reflect information such as the resource demand and traffic demand information of the task to be processed. Therefore, based on the task information, it is possible to determine The task type that matches the task information.
- the methods of determining the target node server and target resources are different for different task types. Based on the determined task type, the resource determination method matching the task type can be determined, and then, the determined resource determination method can be used as the resource determination method to be processed. Assigning target resources to tasks can improve the rationality of the allocated target resources, and then, using the determined target resources to execute tasks to be processed can improve the speed and efficiency of task execution.
- GPU Graphics Processing Unit
- graphics processor also known as display core, visual processor, display chip
- display core a special graphics processing unit for personal computers, workstations, game consoles and some mobile devices (such as tablets, smartphones, etc.) Microprocessors that work with graphics-related operations;
- CPU Central Processing Unit, the central processing unit, as the computing and control core of the computer system, is the final execution unit for information processing and program operation;
- NIC Network Interface Controller
- network interface controller also known as network interface controller, network adapter, network card, or LAN receiver
- network card also known as network interface controller, network adapter, network card, or LAN receiver
- PCIe peripheral component interconnect express, is a high-speed serial computer expansion bus standard
- QPI Quick Path Interconnect, also known as CSI (Common System Interface) public system interface, is an architecture that can realize direct interconnection between chips;
- NVLink is a bus and its communication protocol developed and launched by Nvidia.
- the execution subject of the task scheduling method provided in the embodiments of the present disclosure is generally a computer device with a certain computing capability.
- the task scheduling method may be implemented by calling a computer-readable instruction stored in a memory by a processor.
- the task scheduling method provided by the embodiments of the present disclosure will be described below by taking the execution subject as a computer device as an example.
- a flowchart of a task scheduling method applied to the scheduler side may include the following steps:
- the task to be processed can be a deep learning task, which is a task obtained by the task scheduling system based on a predefined configuration file submitted by the user on the client.
- the essence of the task scheduling system can be a scheduler for resource scheduling.
- the task scheduling system can include several node servers, and the node servers include a certain number of computing resources and a certain number of CPUs.
- the node servers can be GPU node servers, and the computing resources can be GPUs in the GPU node servers.
- Can use QPI connection to communicate, GPU and CPU in one node server can use PCIe to communicate, CPU in one node server can use NIC to communicate with CPU in other node servers, GPU in one node server can use NVLink connection to communicate.
- FIG. 2 it is a schematic structural diagram of a node server provided by an embodiment of the present disclosure, wherein the node server may include 2 CPU servers (CPU0 and CPU1) and 8 GPUs (V100GPU0, V100GPU1, V100GPU2, V100GPU3 , V100GPU4, V100GPU5, V100GPU6, V100GPU7), PCIe Switches means using PCIe for communication.
- CPU0 and CPU1 CPU servers
- V100GPU1 V100GPU1, V100GPU2, V100GPU3 , V100GPU4, V100GPU5, V100GPU6, V100GPU7
- PCIe Switches means using PCIe for communication.
- the task scheduling system can also obtain task information of the task.
- the task information is a kind of information used to represent the resource requirement and the traffic requirement information of the task to be processed.
- the task type can reflect the number of node servers required by the task, the number of GPU resources, and the traffic requirements, and the number of node servers selected for executing tasks of different task types is different. Different tasks may have different task types. For the same task, if the number of selected node servers is different, the task types of the task are also different.
- the task type of the task may be determined based on information such as resource requirements and communication traffic demand information represented by the acquired task information.
- S103 Based on the task type, determine a target node server for executing the task and target resources on the target node server.
- the ways of determining the target node server and the target resource are different.
- the target node server that can be used to execute the task and the target resource on the target node server can be determined according to the idle resources on the node server and the task type of the task.
- the target resource is an idle resource.
- S104 Allocate the target node server and the target resource on the target node server to execute the task.
- the task scheduling system may allocate the target node server and the target resource on the target node server to the task to execute the task.
- the task information can reflect information such as the resource demand amount and traffic demand information of the task to be processed, so that based on the task information, the task type matching the task information can be determined.
- the methods of determining the target node server and target resources are different for different task types. Based on the determined task type, the resource determination method matching the task type can be determined, and then, the determined resource determination method can be used as the resource determination method to be processed. Assigning target resources to tasks can improve the rationality of the allocated target resources, and then, using the determined target resources to execute tasks to be processed can improve the speed and efficiency of task execution.
- the task type of the task can be determined according to the following steps:
- Step 1 According to the task information, determine the resource demand amount of the task and the traffic demand information of the task.
- the resource requirement of a task may be the number of GPUs required to execute the task.
- the communication volume requirement information is used to represent the ratio between the calculation volume and the communication volume corresponding to the task. After a task is determined, the number of GPUs it needs will also be determined, that is, the resource requirements of the task can be determined. At the same time, after a task is determined, its corresponding traffic demand information will also be determined. Therefore, after a task is determined, the task information used to characterize resource demand and traffic demand information is also determined.
- the task scheduling system can determine the resource requirement and traffic requirement information of the task represented by it according to the acquired task information of the task.
- Step 2 Determine the resource quantity in the node server.
- the number of resources is the number of GPUs.
- the number of resources in the node server is equal to the number of resources in the node server.
- the number of GPUs included in the node servers in the task scheduling system may be different.
- the node servers in the task scheduling system may include 8GPU node servers and 4GPU node servers, which are not limited here.
- Step 3 Determine the task type of the task based on the determined resource demand, the traffic demand information of the task, and the resource quantity in the node server.
- the number of node servers required to execute the task to be processed can be determined based on the resource demand and the number of resources in the node server, that is, the number of target node servers corresponding to the task to be processed can be determined. in, in, Indicates rounding up.
- the task type of the task to be processed may be determined based on the number of target node servers corresponding to the task to be processed and the determined traffic demand information of the task.
- the task types may include single-node multi-resource communication type, single-node multi-resource computing type, multi-node type and single resource type.
- the task can be divided into single-node type task and multi-node type task.
- the single-node type task can be completed by using the resources in one target node server, and the multi-node type task needs at least two The resources in the target node server can be completed; for single-node tasks, based on the resource requirements of the task, it can be divided into single-node multi-resource type tasks and single-resource type tasks, where the single-resource type task means that the task only needs one One idle resource in the target node server can be completed, and a single-node multi-resource task requires multiple idle resources in a target node server to complete; in addition, according to the traffic demand information of the task, the single-node multi-resource Type tasks are divided into single-node multi-resource communication type tasks and single-node multi-resource computing type tasks. Among them, single-node multi-resource communication type tasks indicate that the
- the task type of the task to be processed when it is determined that the number of target node servers corresponding to the task to be processed is equal to 1, the number of target resources corresponding to the task to be processed is greater than 1, and the traffic demand information indicates that the traffic demand of the task to be processed is higher than the calculation In the case of high-volume demand, determine the task type of the task to be processed as a single-node multi-resource communication type.
- the task type of the task to be processed is the single-node multi-resource computing type.
- the resource requirement of the task is 7, the number of resources on the node server is 8, and the ratio between the calculation amount and the communication amount is greater than 1, it can be determined that the number of target node servers required by the task is 1, and then, based on If the ratio is greater than 1 and the number of target node servers is 1, it can be determined that the task type of the task is a single-node multi-resource computing type.
- the target node server for executing the task and the target resource on the target node server are determined.
- the GPUs on the node server can be used independently, and the idle GPUs on the node server are currently unused GPUs.
- the node servers may be divided into different idle resource linked lists according to the number of idle GPUs on the node servers, wherein the idle resource linked list is only composed of node servers including a number of idle GPUs.
- the idle resource linked list may be 1 idle GPU linked list, 2 idle GPU linked list, etc., wherein 1 idle GPU linked list means that all node servers in the linked list have only one idle GUP.
- At least one initial node server matching the task type may be determined based on the task type first.
- the initial node server may be a node server selected from the idle list, and may be a group of multiple node servers or a single node server that can be used to execute tasks to be processed. For example, if a task is a task of single-node multi-resource communication type, and the resource demand is 3, multiple node servers with multiple resources greater than or equal to 3 can be selected from the free list as the initial node server, and multiple groups of nodes server, wherein the number of resources in a group of node servers is greater than or equal to 3.
- the target node server for executing the task and the target resource on the target node server may be determined from at least one initial node server based on the resource requirement of the task and the idle resources on the initial node server.
- a target number of target node servers can be selected from at least one initial node server, and can be determined on the target node server based on the resource demand of the task.
- the target resource chosen to execute the task is the number of target servers determined in the above embodiment.
- the task type of the task is determined to be multi-node type, the resource requirement is 13, and the number of resources on the node server is 8, two target node servers can be selected from the node servers in the task scheduling system, one of which targets The node server is an empty node server, and the number of idle resources included in one target node server is five.
- the target node server for executing the task may be determined from at least one initial node server according to the following steps:
- Step 1 Based on the number of idle resources on the initial node server in at least one initial node server, select the initial node server whose number of idle resources is greater than or equal to the resource requirement as the first node server;
- Step 2 Determine the target node server for executing the task based on the idle resources on the first node server and the resource requirements of the task.
- the first node server whose number of idle resources is greater than or equal to the resource demand of the task can be screened out , in this way, it can be ensured that there is a sufficient number of idle resources in the first node server to meet the traffic demand of the task.
- the selected first node servers may include one or more.
- the target node server for executing the task may be selected from the screened first node servers according to the resource requirement.
- At least one preset topology corresponding to the resource requirement can be determined according to the resource requirement of the task, wherein the preset topology is the number of idle resources required to execute the task.
- the preset topology is the number of idle resources required to execute the task.
- the preset topology corresponding to any idle resource can be determined according to the method shown in FIG. 3 , as shown in FIG.
- a flowchart of the method may include the following steps:
- S301 For idle resources in any node server to be matched, determine a topology structure corresponding to any number of idle resources in the node server to be matched.
- S302 Based on the communication medium between idle resources, determine the communication waiting time of the topology.
- the node server to be matched includes any number of idle resources, and the node server to be matched may be any node server.
- the resource requirements correspond to idle resources, specifically, one resource requirement may correspond to idle resources in at least one node server to be matched.
- the node server to be matched can be a node server with 7 idle resources, or the node server to be matched can be a group of multiple node servers with 7 idle resources, for example, It may be a group of node servers consisting of a node server including 3 idle resources and a node server including 4 idle resources. Therefore, this method is also a method for determining a preset topology corresponding to any resource requirement.
- the quality of communication between different node servers included in the task scheduling system and the GPU and CPU in the same node server is different.
- the common communication methods are as mentioned in the above-mentioned embodiments.
- QPI, PCIe, NIC and NVLink 4 kinds wherein , the communication rate of NVLink is greater than the communication rate of QPI, and the communication rate of QPI is to be greater than the communication rate of PCIe, NIC and network.
- the communication medium may be determined according to the medium corresponding to the communication mode.
- the topology structure corresponding to the idle resource can be determined first, and then the communication waiting time of the topology structure can be determined based on the communication medium between the idle resources in the node server to be matched.
- the topology structure that can be formed by the idle resources in the group of node servers can be determined, and then, based on the communication medium between the node servers and the relationship between the idle resources The communication medium, which determines the communication waiting time of the topology.
- the topological structures may be screened according to the communication waiting time of the topological structures, and the topological structures meeting the preset conditions are screened out as the preset topology structures.
- a priori method can be used to determine the communication waiting time corresponding to a certain amount of idle resources under different topological structures, wherein one amount of idle resources can correspond to multiple topological structures, as shown in Figure 4
- Figure 4 It is a schematic diagram of a topology relationship between node servers provided by an embodiment of the present disclosure, wherein NVLINK/NVSWITCH is used for communication between GPUs, and Network (network) and NIC are used for communication between different node servers .
- the GPU For the topological structure, use the GPU with the topological structure to execute the resource demand task corresponding to the number of idle resources based on the ring allreduce model.
- the GPU In the process of executing tasks based on the ring allreduce model, the GPU needs to communicate sequentially, so , the total communication latency will be limited by the minimum communication bandwidth between GPUs in the topology.
- the waiting time for allreduce communication in a single node server can be determined according to Formula 1:
- T represents the waiting time for communication
- n represents the number of GPUs required
- ⁇ represents the constant delay in establishing communication
- s represents the size of the ring allreduce model (that is, the communication scale)
- BW represents the communication between GPUs under the topology
- a collection of bandwidths, min(BW) represents the minimum communication bandwidth between GPUs in the topology.
- the waiting time for an allreduce communication required to execute the task may include the waiting time for allreduce communication in a single node server and the waiting time for allreduce communication between node servers Allreduce communication waiting time, wherein, the allreduce communication waiting time in a single node server may include a reduce operation in the node server and a broadcast operation in the node server.
- FIG. 5 it is a schematic diagram of a topology structure of a multi-node task provided by an embodiment of the present disclosure, where bw 0 represents the communication bandwidth between GPUs, and bw 1 represents the minimum communication bandwidth between different node servers.
- bw 0 represents the communication bandwidth between GPUs
- bw 1 represents the minimum communication bandwidth between different node servers.
- the four dark-colored GPUs shown in the lower right corner of FIG. 5 may represent the GPUs being used.
- the communication waiting time between a reduce operation in the node server and a broadcast operation in the node server can be determined according to Formula 2:
- the waiting time for allreduce communication between node servers can be determined according to Formula 3:
- m represents the number of node servers used.
- max i 2T(n i , s, bw 0 ) represents the communication waiting time of the node with the highest communication time consumption under multiple node servers when executing multi-node tasks.
- the communication waiting time c i of task j i corresponding to any number of idle resources shown in formula 5 can be determined:
- N ij represents the number of GPUs required by task j i on the jth node server
- M i represents the number of node servers required to execute task j i
- BW ij represents the communication bandwidth between task j i and other node servers on the jth node server
- min j BW ij represents the minimum communication bandwidth between task j i and other node servers on the jth node server
- bw 0 represents the communication bandwidth of task j i in the jth node server
- S i represents the communication volume and computation of task j i The ratio information between the quantities.
- a total of ⁇ j N ij GPUs are needed.
- one GPU needs to spend the communication waiting time of c i .
- the total number of tasks corresponding to the resource demand under this topology can be determined.
- the total communication waiting time under the topology relationship corresponding to the resource demand can be determined.
- the preset topology structure can be selected according to formula 6:
- min ⁇ i ⁇ j (N ij c i ) indicates that the topology structure with the minimum communication waiting time is selected as the preset topology structure.
- the total communication waiting time of the topological relationship under a certain amount of idle resources can be determined, and then the total communication waiting time of the topological relationship can be performed in order from low to high Sorting, and then using the preset order, the topological structure whose sorting order is smaller than the preset order is used as the preset topology structure corresponding to the number of idle resources, that is, as the preset topology structure corresponding to the node server to be matched.
- the preset order can be set according to actual needs, which is not limited here.
- the topological structures are screened using the preset order, and the communication waiting time corresponding to the preset topological structures can meet the time requirements for executing the task corresponding to the resource demand amount of the idle resources, and can also reduce the execution time of the task as much as possible.
- the resource requirement for the time purpose of the task is not limited to the time requirements for executing the task corresponding to the resource demand amount of the idle resources.
- the topology structure whose communication waiting time is less than the preset waiting threshold can be used as the corresponding resource demand
- the preset topology that is, may be the preset topology corresponding to the node server to be matched. In this way, using the preset topology to execute tasks can reasonably reduce the communication waiting time required for task execution, wherein the preset waiting threshold can be set according to actual needs, and is not limited here.
- the communication mode between resources in the optional topology should be NVLink.
- the preset topological structure corresponding to different resource demands on the Internet is a schematic diagram of the preset topology structure corresponding to 8 resources provided by the embodiment of the present disclosure, as shown in Figure 6b, which is the schematic diagram of the preset topology structure provided by the embodiment of the present disclosure
- a schematic diagram of a preset topology structure corresponding to 7 resources as shown in Figure 6c, which is a schematic diagram of a preset topology structure corresponding to 6 resources provided by the embodiment of the present disclosure, as shown in Figure 6d, which is a schematic diagram of a preset topology structure corresponding to 5 resources provided by an embodiment of the present disclosure
- the schematic diagram of the corresponding preset topology structure is a schematic diagram of the preset topology structure corresponding to the
- the first node server with any preset topology can be screened from the first node servers. In this way, using the screening The selected first node server with any preset topology performs this task, which can reduce the communication waiting time, and then, select the number of idle resources from the screened out first node servers with any preset topology
- the least first node server is used as the target node server. In this way, using the first node server with the smallest number of idle resources as the target node server can reduce the number of first node servers with any preset topology and a large number of idle resources.
- the splitting of the original topology realizes the protection of the optional topology and its reasonable application to other tasks such as single-node multi-resource communication.
- the first node server in the process of screening the target node server, if there is a first node server with the number of idle resources equal to the resource demand and having any preset topology, the first node server can be directly used as the target node server.
- FIG. 7 is a schematic diagram of splitting an initial node server including different idle resources provided by an embodiment of the present disclosure, wherein, Slot can represent the initial node server, and it can be seen from Figure 7 that when the number of resources included in an initial node server is 8, the optional topology structure obtained by splitting 6 idle resources is 4 idle resources plus 2 idle resources. The optional topology obtained by splitting 5 idle resources is the mode of 3 idle resources plus 2 idle resources.
- Job can represent a task
- 8GPU jobs can represent a task that requires 8 idle GPUs to complete
- Empty 7 GPU Slot represents a node with 7 idle GPUs. server.
- any one of the first node servers may be randomly selected as the target node server.
- the preset topology of the target node server may be used as the target topology, and then idle resources constituting the target topology in the target node server may be used as the target resource.
- the idle resources therein can be used as the target resource; when it is determined that the number of idle resources in the target node server is greater than the resource demand and the number of idle resources is the smallest
- the split resource with the target topology can be used as the target resource to execute the task.
- the execution of the task needs to be suspended until it is determined that there is a first node that meets the resource requirement and has at least one preset topology server, execute this task again.
- the target node server for executing the task may be determined from at least one initial node server according to the following steps:
- Step 1 Based on the number of idle resources on the initial node server in at least one initial node server, screen the second node server whose idle resource quantity is less than or equal to the resource demand;
- Step 2 Determine the target node server for executing the task based on the idle resources on the second node server and the resource requirements of the task.
- the single-node multi-resource communication task requires more computation than communication, it is possible to filter out the number of idle resources based on the number of idle resources on at least one of the initial node servers.
- a second node server that is less than or equal to the resource requirement.
- At least one preset topology corresponding to the resource demand can be determined, and whether there is a second node server with any preset topology in the second node server is screened, and if so, the second node server is used as the target node server, and use the idle resources in the target node server as the target resources, here, since the number of idle resources of the second node server screened is less than or equal to the resource demand, the screened ones have any preset topology The number of idle resources included in the second node server must be equal to the resource demand.
- the second node server with any preset topology is not screened out from the second node servers, then wait for the execution of the task, and then reacquire idle resources on the node server after a preset period of time, and then re-acquire the idle resources on the node server. Screen out the second node servers whose number of idle resources is less than or equal to the resource demand, and allocate resources for the task until a target node server capable of executing the task can be selected from the second node servers.
- the resources in the node server are often used alone, and the execution speed of single-resource-type tasks is faster, so the node server will There is often a single resource that has just been released, so when it is determined that the number of idle resources on at least one node server has changed, it can be determined whether the existing idle resources on the node server and the single resource that has just been released can form a corresponding resource requirement Any preset topology structure, if yes, the node server is used as the target node server, and the resources in the target node server are used as target resources, and then the target resources in the target node server can be allocated to the task.
- the task type when the task type includes a multi-node type, multiple node servers need to be selected to execute the task of the task type.
- the multi-node type According to the corresponding resource demand and the maximum number of idle resources included on the node server (that is, the number of resources included on the node server), first allocate the maximum number of empty-loaded third tasks from the initial node server node server, and use the empty third node server as the target server. For example, if the resource requirement is 35, and the number of resources included in the node server is 8, then 4 unloaded third node servers are allocated to it first.
- the total amount of resources included in the maximum number of third node servers is less than the resource requirement, it means that the task cannot be completed by using the maximum number of third node servers, and it is necessary to use another initial node server Therefore, it is necessary to first determine the difference between the total amount of resources and the resource demand, where the difference is the number of idle resources included in an initial node server that needs to be used in addition.
- a target node server can be selected for the task of the multi-node type according to the method of allocating resources for the task of the single-node multi-resource computing type.
- filter the fourth node server whose number of idle resources is less than or equal to the difference based on the above-mentioned embodiment
- the target node server is selected from the fourth node server, and then, the selected empty target node server and the target node server can be assigned to the multi-node task.
- the resource requirement of the task type is 1, and only a single resource is required to complete it. Therefore, it can be directly based on the idle resource on the initial node server.
- the initial node server whose number of idle resources is equal to the resource demand is taken as the target node server, if there are multiple initial node servers with the number of idle resources equal to the resource demand, any initial node server can be randomly selected as the target server.
- the task type of the task may also be determined according to the following steps:
- Step 1 Obtain idle resources on the node server.
- idle resources on the node server can be obtained at the same time.
- Step 2 According to the task information, determine the resource demand amount of the task and the traffic demand information of the task.
- Step 3 Determine the target node server for executing the task and the target resource on the target node server based on the idle resources on the node server, the resource demand of the task, and the traffic demand information of the task.
- the task scheduling system can directly determine the target that can meet the traffic demand corresponding to the resource demand and communication demand information based on the resource demand required by the task to be processed, the idle resources on the node server, and the traffic demand information.
- Node server and target resource are optional preset topology.
- Step 4 Determine the task type of the task based on the target node server executing the task and the target resource on the target node server.
- the task type of the task may be determined based on the determined quantity of the target node server, the quantity of the target resource on the target node server, and the traffic requirement information.
- the target node server and target resource can be determined, and then, the target node server and target resource corresponding to the task type can be directly assigned to the task to be processed, omitting the time for selecting the initial node server, and improving The speed and efficiency of resource scheduling, thereby improving the speed and efficiency of task execution.
- the user can also directly mark the task type of the task to be processed in the submitted configuration file, and then the task scheduling system can directly determine the task type of the task from the obtained configuration file, and As the task information obtained for this task.
- tasks of different task types have different resource allocation priorities.
- the task type of each task can be determined first, and then based on the task type of each task Task type, which determines the resource allocation priority for each task.
- the target node server for executing the task and the target resource on the target node server can be determined, so as to allocate resources to the task reasonably.
- the resource allocation priority of single-node multi-resource communication type tasks can be set to the first priority; the resource allocation priority of single-node multi-resource computing type tasks can be set to the second priority; multi-node The resource allocation priority of the type task is set to the third priority; the resource allocation priority of the single resource type task is set to the fourth priority.
- tasks of the single-node multi-resource communication type have a high demand for communication traffic.
- Setting the task of this task type as the first priority can meet the required communication traffic and increase the speed of executing tasks of this task type.
- Tasks of the single-node multi-resource computing type have high demands on the amount of computation and relatively small demands on communication traffic.
- Setting this type of task as the second priority can meet the required amount of computation and reduce the need for The split probability of the original topology of idle resources in node servers with a large number of idle resources.
- Multi-node tasks require empty node servers and there are relatively few tasks of this task type.
- the task information may include the resource requirement, therefore, the resource requirement may be obtained according to the following steps:
- Step 1 Obtain the configuration file of the task to be processed.
- Step 2 obtaining the resource requirement of the task to be processed from the configuration file.
- the resource requirement information of the task to be processed can be directly determined in the configuration file.
- the task scheduling system can directly acquire the resource requirement of the task to be processed from the acquired configuration file, and use it as the acquired task information of the task.
- the resource demand can be obtained without parsing the configuration file, which improves the speed of determining the resource demand.
- the task information may include traffic demand information, therefore, the traffic demand information may be obtained according to the following steps:
- Step 1 Obtain calculation volume information and communication volume information of tasks to be processed.
- the calculation amount information and communication amount information of the task to be processed can be determined based on the analysis of the obtained configuration file of the task to be processed, or based on the analysis of the obtained task request to be processed; wherein, the task request Including calculation amount information and communication amount information, the task request may be a request submitted by a user on the client to allocate resources for the task.
- Step 2 Based on the calculation amount information and the communication amount information, determine the communication amount requirement information.
- a ratio between the calculation amount corresponding to the calculation amount information and the calculation amount corresponding to the communication amount information may be determined, and based on the determined ratio, the communication amount demand information may be determined.
- the traffic demand information may also be obtained according to the following steps:
- Step 1 Obtain the configuration file of the task to be processed
- Step 2 Obtain the communication traffic requirement information of the task to be processed from the configuration file.
- the configuration file submitted by the user may directly include the traffic demand information of the task to be processed.
- the task scheduling system may directly acquire the traffic demand information of the task to be processed from the acquired configuration file, and use it as the acquired task information of the task.
- the configuration file does not need to be parsed to obtain the traffic demand information, the step of calculating the information is omitted, and the speed of determining the traffic demand information is improved.
- an embodiment of the present disclosure provides a task scheduling method applied to a client, as shown in FIG. 8 , which is a flow chart of a task scheduling method applied to a client provided by an embodiment of the present disclosure, which may include the following steps :
- the client can directly determine the task type of the task based on the configuration file.
- S802 Based on the task type of the task, determine the target node server for executing the task and the target resource on the target node server.
- the ways of determining the target node server and the target resource are different.
- the client After determining the task type of the task, the client can determine the target node server that can be used to execute the task and the target resource on the target node server according to the idle resources on the node server and the task type of the task.
- the target resource is an idle resource.
- S803 Send the information of the target node server and the information of the target resource to the scheduler, so that the scheduler allocates the target node server and the target resource to the task to be processed.
- the client may directly send the determined target node server information and target resource information to the scheduler, that is, to the task scheduling system.
- the scheduler can directly determine the target node server and the target resource on the target node server for executing the task to be processed based on the information of the target node server and the target resource, and then, the target node server and the target resource can be Assigned to pending tasks.
- the client first determines the target node server and target resource based on the determined task type, and then sends it to the scheduler.
- the scheduler omits the step of determining the target node server and target resource, and can directly send the target node server and target Resources are allocated to tasks, so that the speed of resource scheduling and the execution speed and efficiency of tasks can be improved.
- the task type may be determined according to the following steps:
- Step 1 Determine the resource requirement of the task, the communication traffic requirement information of the task, and the resource quantity in the node server.
- the client can determine the resource requirement of the task and the communication traffic requirement information of the task based on the analysis of the configuration file.
- the task's resource requirement and the task's traffic requirement information can be obtained directly from the configuration file, which is not limited here.
- the client can determine the resource quantity in the node server in the task scheduling system.
- the number of resources is the number of GPUs.
- Step 2 Determine the task type of the task based on the determined resource demand, the communication traffic demand information of the task, and the resource quantity in the node server.
- the number of node servers required to execute the task to be processed can be determined based on the resource demand and the number of resources in the node server, that is, the number of target node servers corresponding to the task to be processed can be determined. in, in, Indicates rounding up.
- the task type of the task to be processed may be determined based on the number of target node servers corresponding to the task to be processed and the determined traffic demand information of the task.
- the task type may also be determined according to the following steps:
- Step 1 Obtain idle resources on the node server.
- the client After the client obtains the configuration file submitted by the user, it can simultaneously obtain idle resources on the node server.
- Step 2 Determine at least one target node server for executing the task and target resources on the target node server based on idle resources on the node server, resource requirements of the task, and traffic requirements of the task.
- the client can directly determine the target node that can meet the traffic demand corresponding to the resource demand and communication demand information based on the resource demand required by the task to be processed, the idle resources on the node server, and the traffic demand information Server and target resources.
- the target resource in the target node server has an optional preset topology.
- Step 3 Determine the task type of the task based on at least one target node server and target resources on the target node server.
- the task type of the task may be determined based on the determined number of target node servers, the number of target resources on the target node server, and traffic demand information.
- the writing order of each step does not mean a strict execution order and constitutes any limitation on the implementation process.
- the specific execution order of each step should be based on its function and possible
- the inner logic is OK.
- the embodiment of the present disclosure also provides a task scheduling device corresponding to the task scheduling method applied to the scheduler, because the problem-solving principle of the device in the embodiment of the present disclosure is similar to the above-mentioned task scheduling method in the embodiment of the present disclosure , so the implementation of the device can refer to the implementation of the method, and the repetition will not be repeated.
- FIG. 9 it is a schematic diagram of a task scheduling device applied to the scheduler side provided by an embodiment of the present disclosure, including:
- An acquisition module 901, configured to acquire task information of tasks to be processed
- the first determining module 902 is configured to determine the task type of the task based on the task information
- the second determination module 903 is configured to determine the target node server for executing the task and the target resource on the target node server based on the task type;
- An allocating module 904 configured to allocate the target node server and target resources on the target node server to execute the task.
- the first determining module 902 is configured to determine the resource requirement of the task and the traffic requirement information of the task according to the task information;
- the task type of the task is determined based on the determined resource demand, communication traffic demand information of the task, and resource quantity in the node server.
- the second determination module 903 is configured to determine the target node for executing the task based on the task type of the task, the resource demand of the task, and the idle resources on the node server server and the target resource on the target node server.
- the second determining module 903 is configured to determine at least one initial node server matching the task type based on the task type of the task;
- a target node server for executing the task and target resources on the target node server from the at least one initial node server.
- the task type includes a single-node multi-resource communication type
- the second determination module 903 is configured to, based on the number of idle resources on the initial node servers in the at least one initial node server, select the initial node server whose number of idle resources is greater than or equal to the resource requirement as the first node server;
- a target node server for executing the task is determined based on idle resources on the first node server and resource requirements of the task.
- the second determination module 903 is configured to determine at least one preset topology corresponding to the resource requirement
- the first node server having any one of the preset topology structures and the least number of idle resources as the target node server.
- the second determination module 903 is configured to use a preset topology in the target node server as the target topology;
- the task type includes a single-node multi-resource computing type
- the second determining module 903 is configured to, based on the number of idle resources on the initial node servers in the at least one initial node server, screen a second node server whose number of idle resources is less than or equal to the resource requirement;
- a target node server for executing the task is determined based on idle resources on the second node server and resource requirements of the task.
- the second determination module 903 is configured to determine at least one preset topology corresponding to the resource requirement
- the second determining module 903 is further configured to, when no second node server having any one of the preset topology structures is screened out from the second node servers, After a preset period of time or at least one idle resource on the node server changes, reacquire the number of idle resources on the node server, and return based on the number of idle resources on the initial node server among the at least one initial node server, filter A step of the second node server whose number of idle resources is less than or equal to the required amount of resources.
- the task type includes a multi-node type
- the second determination module 903 is configured to determine, from the at least one initial node server, the maximum number of third node servers required to execute the task based on the resource requirement of the task; wherein, the third node The server is an empty initial node server;
- the third node server with the maximum number is used as the target node server.
- the second determination module 903 is further configured to determine the total amount of resources and the difference in resource requirements
- the task type includes a single resource type
- the second determining module 903 is configured to, based on the number of idle resources on the initial node servers in the at least one initial node server, use the initial node server whose number of idle resources is equal to the resource requirement as the target node server.
- the second determination module 903 is further configured to determine a preset topology according to the following steps:
- a preset topology corresponding to any number of idle resources in the node server to be matched is determined.
- the second determining module 903 is configured to sort the topological structures according to the order of the communication waiting time from low to high;
- the topological structure whose sort order is smaller than the preset order is used as the preset topology structure corresponding to the node server to be matched.
- the second determination module 903 is configured to, for any number of idle resources, use the topology structure whose communication waiting time is less than a preset waiting threshold as the The default topology corresponding to the number of idle resources.
- the first determining module 902 is configured to acquire idle resources on the node server
- the task information determine the resource requirement of the task and the traffic requirement information of the task
- the task type of the task is determined based on the target node server executing the task and the target resource on the target node server.
- the second determination module 903 is further configured to determine the resources of each task based on the task type of each task when the obtained tasks to be processed include multiple Assign priority;
- a target node server for executing the task and target resources on the target node server are determined.
- the task type includes single-node multi-resource communication type, single-node multi-resource computing type, multi-node type, and single-resource type;
- the second determination module 903 is configured to set the resource allocation priority of the task of the single-node multi-resource communication type as the first priority
- the task information includes the resource requirement
- the first determining module 902 is further configured to obtain the resource requirement according to the following steps:
- the task information includes the traffic demand information
- the first determining module 902 is further configured to acquire the traffic demand information according to the following steps:
- the communication amount requirement information is determined.
- the first determining module 902 is configured to determine, based on the obtained configuration file of the pending task or the obtained request of the pending task, the Calculation amount information and communication amount information; wherein, the task request includes the calculation amount information and communication amount information.
- the task information includes the traffic demand information
- the first determining module 902 is further configured to acquire the traffic demand information according to the following steps:
- the first determining module 902 is configured to determine the number of target node servers corresponding to the task to be processed based on the resource requirement and the number of resources in the node server;
- the task type of the task to be processed is determined based on the number of target node servers corresponding to the task to be processed and the traffic demand information.
- the task type includes single-node multi-resource communication type, single-node multi-resource computing type, multi-node type, and single-resource type;
- the first determining module 902 is configured to: when the number of target node servers corresponding to the task to be processed is equal to 1, the number of target resources corresponding to the task to be processed is greater than 1, and the traffic demand information indicates When the communication volume requirement of the task to be processed is higher than the calculation volume requirement, determine that the task type of the task to be processed is a single-node multi-resource communication type;
- the number of target node servers corresponding to the task to be processed is equal to 1, the number of target resources corresponding to the task to be processed is greater than 1, and the traffic demand information indicates the calculation capacity demand of the task to be processed If it is higher than the communication traffic requirement, it is determined that the task type of the task to be processed is a single-node multi-resource computing type;
- the task type of the task to be processed is a single resource type.
- the embodiment of the present disclosure also provides a task scheduling device corresponding to the task scheduling method applied to the client. Since the problem-solving principle of the device in the embodiment of the present disclosure is similar to the above-mentioned task scheduling method in the embodiment of the present disclosure, Therefore, the implementation of the device can refer to the implementation of the method, and the repetition will not be repeated.
- FIG. 10 it is a schematic diagram of a task scheduling device applied to a client provided by an embodiment of the present disclosure, including:
- the third determination module 1001 is configured to determine the task type of the task to be processed
- a fourth determining module 1002 configured to determine a target node server for executing the task and target resources on the target node server based on the task type of the task;
- a sending module 1003 configured to send the information of the target node server and the information of the target resource to a scheduler, so that the scheduler allocates the target node server and the target resource to the pending Task
- the third determination module 1001 is configured to determine the resource requirement of the task, the traffic requirement information of the task, and the resource quantity in the node server;
- the task type of the task is determined based on the determined resource demand, communication traffic demand information of the task, and resource quantity in the node server.
- the third determination module 1001 is configured to acquire idle resources on the node server
- a task type of the task is determined based on the at least one target node server and target resources on the target node server.
- FIG. 11 is a schematic structural diagram of a computer device provided by an embodiment of the present disclosure, including:
- Processor 1101 and memory 1102 stores machine-readable instructions executable by the processor 1101, the processor 1101 is used to execute the machine-readable instructions stored in the memory 1102, and the machine-readable instructions are executed by the processor 1101 During execution, the processor 1101 performs the following steps: S101: Obtain the task information of the task to be processed; S102: Determine the task type of the task based on the task information; S103: Determine the target node server and the target node for executing the task based on the task type The target resource on the server and S104: allocate the target node server and the target resource on the target node server to execute the task.
- the above-mentioned memory 1102 includes a memory 1121 and an external memory 1122; the memory 1121 here is also called an internal memory, and is used to temporarily store the calculation data in the processor 1101 and the data exchanged with the external memory 1122 such as a hard disk.
- the external memory 1122 performs data exchange.
- Embodiments of the present disclosure also provide a computer-readable storage medium, on which a computer program is stored, and when the computer program is run by a processor, the steps of the task scheduling method described in the foregoing method embodiments are executed.
- the storage medium may be a volatile or non-volatile computer-readable storage medium.
- the computer program product of the task scheduling method provided by the embodiments of the present disclosure includes a computer-readable storage medium storing program code, and the instructions included in the program code can be used to execute the steps of the task scheduling method described in the above method embodiments
- program code can be used to execute the steps of the task scheduling method described in the above method embodiments
- the computer program product can be specifically realized by means of hardware, software or a combination thereof.
- the computer program product is embodied as a computer storage medium, and in another optional embodiment, the computer program product is embodied as a software product, such as a software development kit (Software Development Kit, SDK) etc. Wait.
- a software development kit Software Development Kit, SDK
- the disclosed devices and methods may be implemented in other ways.
- the device embodiments described above are illustrative.
- the division of the units is a logical function division.
- multiple units or components can be combined, or some Features can be ignored, or not implemented.
- the mutual coupling or direct coupling or communication connection shown or discussed may be through some communication interfaces, and the indirect coupling or communication connection of devices or units may be in electrical, mechanical or other forms.
- the units described as separate components may or may not be physically separated, and the components shown as units may or may not be physical units, that is, they may be located in one place, or 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 disclosure 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 functions are realized in the form of software function units and sold or used as independent products, they can be stored in a non-volatile computer-readable storage medium executable by a processor.
- the technical solution of the present disclosure is essentially or the part that contributes to the prior art or the part of the technical solution can be embodied in the form of a software product, and the computer software product is stored in a storage medium, including Several instructions are used to make a computer device (which may be a personal computer, a server, or a network device, etc.) execute all or part of the steps of the methods described in various embodiments of the present disclosure.
- the aforementioned storage media include: U disk, mobile hard disk, read-only memory (Read-Only Memory, ROM), random access memory (Random Access Memory, RAM), magnetic disk or optical disc and other media that can store program codes. .
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mobile Radio Communication Systems (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Computer And Data Communications (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110586526.2 | 2021-05-27 | ||
CN202110586526.2A CN113238848A (zh) | 2021-05-27 | 2021-05-27 | 一种任务调度方法、装置、计算机设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2022247105A1 true WO2022247105A1 (fr) | 2022-12-01 |
Family
ID=77139282
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/CN2021/124136 WO2022247105A1 (fr) | 2021-05-27 | 2021-10-15 | Procédé et appareil de planification de tâche, dispositif informatique et support de stockage |
Country Status (3)
Country | Link |
---|---|
CN (1) | CN113238848A (fr) |
TW (1) | TW202246977A (fr) |
WO (1) | WO2022247105A1 (fr) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117151433A (zh) * | 2023-10-30 | 2023-12-01 | 浙江大学高端装备研究院 | 一种基于云的智能制造服务供需匹配评估方法和装置 |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113238848A (zh) * | 2021-05-27 | 2021-08-10 | 上海商汤科技开发有限公司 | 一种任务调度方法、装置、计算机设备和存储介质 |
CN113742068A (zh) * | 2021-08-27 | 2021-12-03 | 深圳市商汤科技有限公司 | 任务调度方法、装置、设备、存储介质及计算机程序产品 |
CN113590301A (zh) * | 2021-09-30 | 2021-11-02 | 苏州浪潮智能科技有限公司 | 一种深度学习业务的任务调度方法及相关装置 |
CN114138500B (zh) * | 2022-01-29 | 2022-07-08 | 阿里云计算有限公司 | 资源调度系统及方法 |
CN116302404B (zh) * | 2023-02-16 | 2023-10-03 | 北京大学 | 面向资源解耦合数据中心的服务器无感知计算调度方法 |
CN116756282A (zh) * | 2023-06-16 | 2023-09-15 | 北京百度网讯科技有限公司 | 任务处理方法、服务器、语言预测系统和人机交互系统 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109254842A (zh) * | 2017-07-12 | 2019-01-22 | 腾讯科技(深圳)有限公司 | 分布式流式系统的资源管理方法、装置及可读存储介质 |
US20200104170A1 (en) * | 2018-09-28 | 2020-04-02 | Atlassian Pty Ltd | Systems and methods for scheduling tasks |
CN111190712A (zh) * | 2019-12-25 | 2020-05-22 | 北京推想科技有限公司 | 一种任务调度方法、装置、设备及介质 |
CN111190739A (zh) * | 2019-12-31 | 2020-05-22 | 西安翔腾微电子科技有限公司 | 一种资源分配方法、装置、电子设备及存储介质 |
CN111694649A (zh) * | 2020-06-12 | 2020-09-22 | 北京字节跳动网络技术有限公司 | 资源调度方法、装置、计算机设备和存储介质 |
CN112486648A (zh) * | 2020-11-30 | 2021-03-12 | 北京百度网讯科技有限公司 | 任务调度方法、装置、系统、电子设备和存储介质 |
CN113238848A (zh) * | 2021-05-27 | 2021-08-10 | 上海商汤科技开发有限公司 | 一种任务调度方法、装置、计算机设备和存储介质 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107045456B (zh) * | 2016-02-05 | 2020-03-10 | 华为技术有限公司 | 一种资源分配方法及资源管理器 |
CN109729106B (zh) * | 2017-10-27 | 2021-07-16 | 伊姆西Ip控股有限责任公司 | 处理计算任务的方法、系统和计算机程序产品 |
CN110389824A (zh) * | 2018-04-20 | 2019-10-29 | 伊姆西Ip控股有限责任公司 | 处理计算任务的方法、设备和计算机程序产品 |
CN112148468B (zh) * | 2019-06-28 | 2023-10-10 | 杭州海康威视数字技术股份有限公司 | 一种资源调度方法、装置、电子设备及存储介质 |
US11086742B2 (en) * | 2019-08-28 | 2021-08-10 | The Toronto-Dominion Bank | Task based service management platform |
CN112667376A (zh) * | 2020-12-23 | 2021-04-16 | 数字广东网络建设有限公司 | 任务调度处理方法、装置、计算机设备及存储介质 |
CN112667379B (zh) * | 2020-12-29 | 2024-06-07 | 深圳Tcl新技术有限公司 | 任务调度方法及服务器 |
-
2021
- 2021-05-27 CN CN202110586526.2A patent/CN113238848A/zh active Pending
- 2021-10-15 WO PCT/CN2021/124136 patent/WO2022247105A1/fr active Application Filing
- 2021-12-23 TW TW110148512A patent/TW202246977A/zh unknown
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109254842A (zh) * | 2017-07-12 | 2019-01-22 | 腾讯科技(深圳)有限公司 | 分布式流式系统的资源管理方法、装置及可读存储介质 |
US20200104170A1 (en) * | 2018-09-28 | 2020-04-02 | Atlassian Pty Ltd | Systems and methods for scheduling tasks |
CN111190712A (zh) * | 2019-12-25 | 2020-05-22 | 北京推想科技有限公司 | 一种任务调度方法、装置、设备及介质 |
CN111190739A (zh) * | 2019-12-31 | 2020-05-22 | 西安翔腾微电子科技有限公司 | 一种资源分配方法、装置、电子设备及存储介质 |
CN111694649A (zh) * | 2020-06-12 | 2020-09-22 | 北京字节跳动网络技术有限公司 | 资源调度方法、装置、计算机设备和存储介质 |
CN112486648A (zh) * | 2020-11-30 | 2021-03-12 | 北京百度网讯科技有限公司 | 任务调度方法、装置、系统、电子设备和存储介质 |
CN113238848A (zh) * | 2021-05-27 | 2021-08-10 | 上海商汤科技开发有限公司 | 一种任务调度方法、装置、计算机设备和存储介质 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117151433A (zh) * | 2023-10-30 | 2023-12-01 | 浙江大学高端装备研究院 | 一种基于云的智能制造服务供需匹配评估方法和装置 |
CN117151433B (zh) * | 2023-10-30 | 2024-01-30 | 浙江大学高端装备研究院 | 一种基于云的智能制造服务供需匹配评估方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN113238848A (zh) | 2021-08-10 |
TW202246977A (zh) | 2022-12-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2022247105A1 (fr) | Procédé et appareil de planification de tâche, dispositif informatique et support de stockage | |
CN110796588B (zh) | 同时计算和图形调度 | |
WO2020001320A1 (fr) | Procédé, dispositif et appareil d'attribution de ressources | |
US8893148B2 (en) | Performing setup operations for receiving different amounts of data while processors are performing message passing interface tasks | |
RU2571366C2 (ru) | Виртуальная архитектура неоднородного доступа к памяти для виртуальных машин | |
US8312464B2 (en) | Hardware based dynamic load balancing of message passing interface tasks by modifying tasks | |
US8108876B2 (en) | Modifying an operation of one or more processors executing message passing interface tasks | |
US8127300B2 (en) | Hardware based dynamic load balancing of message passing interface tasks | |
CN109564528B (zh) | 分布式计算中计算资源分配的系统和方法 | |
US20090055831A1 (en) | Allocating Network Adapter Resources Among Logical Partitions | |
US10897428B2 (en) | Method, server system and computer program product for managing resources | |
CN112783659B (zh) | 一种资源分配方法、装置、计算机设备及存储介质 | |
US8516487B2 (en) | Dynamic job relocation in a high performance computing system | |
US20140373020A1 (en) | Methods for managing threads within an application and devices thereof | |
KR20130119285A (ko) | 클러스터 컴퓨팅 환경에서의 자원 할당 장치 및 그 방법 | |
US20090064166A1 (en) | System and Method for Hardware Based Dynamic Load Balancing of Message Passing Interface Tasks | |
US10579416B2 (en) | Thread interrupt offload re-prioritization | |
WO2017185285A1 (fr) | Procédé et dispositif d'attribution de tâche d'unité de traitement graphique | |
CN109840149B (zh) | 任务调度方法、装置、设备及存储介质 | |
US11995016B2 (en) | Input/output command rebalancing in a virtualized computer system | |
CN112181613A (zh) | 异构资源分布式计算平台批量任务调度方法及存储介质 | |
CN114968567A (zh) | 用于分配计算节点的计算资源的方法、装置和介质 | |
CN118210632A (zh) | 内存分配方法、装置、电子设备及存储介质 | |
CN114579323A (zh) | 一种线程处理方法、装置、设备及介质 | |
CN114721818A (zh) | 一种基于Kubernetes集群的GPU分时共享方法和系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
ENP | Entry into the national phase |
Ref document number: 2022532575 Country of ref document: JP Kind code of ref document: A |
|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 21942670 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 21942670 Country of ref document: EP Kind code of ref document: A1 |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 21942670 Country of ref document: EP Kind code of ref document: A1 |