JP2022539955A - Task scheduling method and apparatus - Google Patents

Task scheduling method and apparatus Download PDF

Info

Publication number
JP2022539955A
JP2022539955A JP2021570920A JP2021570920A JP2022539955A JP 2022539955 A JP2022539955 A JP 2022539955A JP 2021570920 A JP2021570920 A JP 2021570920A JP 2021570920 A JP2021570920 A JP 2021570920A JP 2022539955 A JP2022539955 A JP 2022539955A
Authority
JP
Japan
Prior art keywords
task
subtasks
subtask
node
information
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
JP2021570920A
Other languages
Japanese (ja)
Inventor
志晟 叶
▲遜▼ ▲陳▼
保▲東▼ ▲呉▼
▲鵬▼ ▲孫▼
深根 ▲顏▼
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai Sensetime Intelligent Technology Co Ltd
Original Assignee
Shanghai Sensetime Intelligent Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from CN202010165763.7A external-priority patent/CN113391914A/en
Priority claimed from CN202010165543.4A external-priority patent/CN113391886A/en
Application filed by Shanghai Sensetime Intelligent Technology Co Ltd filed Critical Shanghai Sensetime Intelligent Technology Co Ltd
Publication of JP2022539955A publication Critical patent/JP2022539955A/en
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5066Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources

Abstract

本開示の実施例はタスクスケジューリング方法及び装置を提供する。当該方法では、タスク情報を取得し、前記タスク情報は前記タスクのタスクタイプ及びリソース要求情報のうちの少なくとも一方を含み、前記タスク情報に基づいて、前記タスクに含まれる複数のサブタスクにそれぞれターゲットノードを割り当てる。【選択図】図2Embodiments of the present disclosure provide a task scheduling method and apparatus. The method includes obtaining task information, the task information including at least one of a task type and resource requirement information of the task, and determining target nodes for each of a plurality of subtasks included in the task based on the task information. assign. [Selection drawing] Fig. 2

Description

本開示は分散システムの技術分野に関し、特に、分散システムにおけるタスクスケジューリングに関する。 The present disclosure relates to the technical field of distributed systems, and more particularly to task scheduling in distributed systems.

<関連出願の相互参照>
本願は2020年3月11日に提出された、出願番号が202010165543.4であり、発明の名称が「タスクスケジューリング方法及び装置」である中国特許出願、及び2020年3月11日に提出された、出願番号が202010165763.7であり、発明の名称が「タスクスケジューリング方法及び装置」である中国特許出願の優先権を主張し、前記中国特許出願の全体が援用で本明細書に組み込まれる。
<Cross reference to related applications>
This application is a Chinese patent application with application number 202010165543.4 and entitled "Task Scheduling Method and Apparatus" filed on March 11, 2020 and filed on March 11, 2020 , No. 202010165763.7 and entitled "Task Scheduling Method and Apparatus", claims priority from a Chinese patent application, which is incorporated herein by reference in its entirety.

現在、リソースの割り当て及び計算のために分散システムを利用し始めるタスクがますます多くなる。複数のサブタスクの内容は全く同じであったり、異なっていたり、複数のサブタスクが必要とするリソースは全く同じであったり、異なっていたりすることがある。従来の分散システムのタスクスケジューリングは一般にサブタスク単位でリソースノードの割り当てを行うため、クラスタのリソース利用率もタスクの実行効率も低かった。 Today, more and more tasks are starting to utilize distributed systems for resource allocation and computation. The content of multiple subtasks may be the same or different, and the resources required by multiple subtasks may be the same or different. Task scheduling in conventional distributed systems generally allocates resource nodes on a per-subtask basis, resulting in low cluster resource utilization and low task execution efficiency.

本開示はタスクスケジューリング方法を提供する。 The present disclosure provides a task scheduling method.

本開示の実施例の第1態様では、タスク情報を取得するステップであって、前記タスク情報は前記タスクのタスクタイプ及び前記タスクのリソース要求情報のうちの少なくとも一方を含むステップと、前記タスク情報に基づいて、前記タスクに含まれる複数のサブタスクに、それぞれ対応するターゲットノードを割り当てるステップとを含む、タスクスケジューリング方法が提供される。 In a first aspect of an embodiment of the present disclosure, obtaining task information, wherein the task information includes at least one of a task type of the task and resource requirement information of the task; assigning respective target nodes to a plurality of sub-tasks included in said task based on .

いくつかの実施例において、前記タスクのリソース要求情報は前記タスクに含まれる複数のサブタスクのリソース要求情報であり、前記方法は、分散システムの現在利用可能なリソースが前記タスクの複数のサブタスクのリソース要求情報に対応する総リソースを満たす場合に、前記タスクに含まれる複数のサブタスクに、それぞれ対応するターゲットノードを割り当てるステップをさらに含む。 In some embodiments, the resource requirement information of the task is resource requirement information of a plurality of subtasks included in the task, and the method comprises determining that currently available resources of a distributed system are resources of a plurality of subtasks of the task. The step of allocating each of the plurality of subtasks included in the task with a corresponding target node if the total resource corresponding to the request information is satisfied.

いくつかの実施例において、前記方法は、前記複数のサブタスクのリソース要求情報に基づいて、前記タスクの複数のサブタスクにターゲットノードを決定するステップをさらに含み、前記分散システムの現在利用可能なリソースが前記タスクの複数のサブタスクのリソース要求情報に対応する総リソースを満たす場合に、前記タスクに含まれる複数のサブタスクに、それぞれ対応するターゲットノードを割り当てるステップは、前記複数のサブタスクの各サブタスクに対応するターゲットノードを決定することに成功した場合に、前記タスクに含まれる複数のサブタスクに、それぞれ対応するターゲットノードを割り当てるステップを含む。 In some embodiments, the method further comprises determining target nodes for a plurality of subtasks of the task based on resource requirement information of the plurality of subtasks, wherein currently available resources of the distributed system are: assigning a respective target node to a plurality of subtasks included in the task when meeting total resources corresponding to resource requirement information of the plurality of subtasks of the task, corresponding to each subtask of the plurality of subtasks. assigning a respective target node to each of a plurality of subtasks included in the task if the target node is successfully determined;

いくつかの実施例において、前記分散システムの現在リソース状態情報と前記複数のサブタスクのリソース要求情報とに基づいて、複数のサブタスクに対応するターゲットノードを特定の順序に従って順次決定する。 In some embodiments, based on the current resource status information of the distributed system and the resource request information of the plurality of subtasks, target nodes corresponding to the plurality of subtasks are sequentially determined according to a specific order.

オプションとして一例において、前記複数のサブタスクのリソース要求情報は前記複数のサブタスクの各サブタスクのリソース要求情報を含み、ただし、前記リソース要求情報は要求するリソースタイプ及び各タイプのリソースの数量を含み、又はさらに他の情報を含む。 Optionally in one example, the resource requirement information of the plurality of sub-tasks comprises resource requirement information of each sub-task of the plurality of sub-tasks, wherein the resource requirement information comprises a requested resource type and quantity of each type of resource, or It also contains other information.

オプションとして一例において、前記分散システムの現在リソース状態情報は前記分散システムの複数のノードの現在状態情報を含み、ただし、現在状態情報はリソースが利用可能かどうか、利用可能なリソースのタイプと数量、負荷状況、トポロジ接続情報のうちの少なくとも1種を示すために用いられ、又はさらに他の情報を含む。 Optionally in one example, the current resource state information of the distributed system includes current state information of a plurality of nodes of the distributed system, wherein the current state information includes whether resources are available, the type and quantity of resources available, It may be used to indicate at least one of load status, topological connectivity information, or may contain other information as well.

いくつかの実施例において、1つのサブタスクに割り当てるターゲットノードが決定するたびに、分散システムの現在リソース状態情報を更新し、更新された現在リソース状態情報に基づいて次のサブタスクに対応するターゲットノードを決定する。 In some embodiments, each time a target node to assign to a subtask is determined, the current resource state information of the distributed system is updated, and the target node corresponding to the next subtask is determined based on the updated current resource state information. decide.

いくつかの実施例において、前記複数のサブタスクの少なくとも1つのサブタスクに対応するターゲットノードを決定することに成功しなかった場合に、前記分散システムの現在利用可能なリソースが前記複数のサブタスクの各サブタスクの要求するリソースを満たさないと決定する。 In some embodiments, if the target node corresponding to at least one subtask of the plurality of subtasks is not successfully determined, currently available resources of the distributed system are used for each subtask of the plurality of subtasks. determines that it does not meet the resource requirements of

いくつかの実施例において、前記複数のサブタスクのターゲットノードを順次決定する順序は、サブタスクの優先度とサブタスク間の依存関係とのうちの少なくとも1つから得る。 In some embodiments, the order of sequentially determining target nodes of the plurality of subtasks is derived from at least one of priority of subtasks and dependencies between subtasks.

いくつかの実施例において、前記分散システムの現在リソース状態情報と前記複数のサブタスクのリソース要求情報とに基づいて、前記複数のサブタスクにターゲットノードを決定するステップは、前記分散システムの現在リソース状態情報と前記複数のサブタスクのリソース要求情報とに基づいて、前記複数のサブタスクの各サブタスクの事前選択ノード集合を決定するステップと、複数のサブタスクの各サブタスクの事前選択ノード集合から前記各サブタスクのターゲットノードを選択するステップとを含む。 In some embodiments, determining target nodes for the plurality of subtasks based on current resource state information of the distributed system and resource requirement information of the plurality of subtasks comprises current resource state information of the distributed system. determining a preselected node set for each subtask of the plurality of subtasks based on the resource requirement information of the plurality of subtasks; and a target node for each subtask from a preselected node set for each subtask of the plurality of subtasks. and selecting.

ただし、異なるサブタスクの事前選択ノード集合は同じであってもよいし、異なってもよい。いくつかの例において、複数のサブタスクは同じ事前選択ノード集合を有する。 However, different subtasks may have the same or different preselected node-sets. In some examples, multiple subtasks have the same preselected node-set.

いくつかの実施例において、前記分散システムの現在リソース状態情報と前記複数のサブタスクのリソース要求情報とに基づいて、前記複数のサブタスクの各サブタスクの事前選択ノード集合を決定するステップは、前記分散システムの現在リソース状態情報と各サブタスクのリソース要求情報とに基づいて、前記各サブタスクの事前選択ノード集合を決定するステップを含む。 In some embodiments, determining a preselected node set for each subtask of the plurality of subtasks based on current resource state information of the distributed system and resource demand information of the plurality of subtasks comprises: determining a preselected node-set for each subtask based on the current resource state information of each subtask and the resource requirement information of each subtask.

複数のサブタスクの事前選択ノード集合の決定は独立的で、互いに依存関係のないものであってもよく、例えば、並行して実行し又は任意の順番で実行する。例えば、複数のサブタスクの事前選択ノード集合は同じ分散システムの現在リソース状態情報に基づいて決定され、つまり、分散システムの現在リソース状態情報は事前選択の過程で更新されない。例えば、各サブタスクの事前選択ノード集合の決定は自らのリソース要求情報にしか関係がなく、他のサブタスクのリソース要求情報とは無関係である。 The determination of preselected node-sets for multiple sub-tasks may be independent and independent of each other, eg, executed in parallel or in any order. For example, the preselection node-sets of multiple subtasks are determined based on the same distributed system's current resource state information, ie, the distributed system's current resource state information is not updated during the preselection process. For example, the determination of each subtask's preselected node set is only related to its own resource requirement information and is independent of the resource requirement information of other subtasks.

いくつかの実施例において、前記複数のサブタスクの各サブタスクの事前選択ノード集合を決定するステップは、前記複数のサブタスクの各サブタスクの事前選択ノード集合を特定の順序に従って順次決定するステップを含む。 In some embodiments, determining a pre-selected node-set for each sub-task of the plurality of sub-tasks includes sequentially determining a pre-selected node-set for each sub-task of the plurality of sub-tasks according to a particular order.

一例において、前記複数のサブタスクの第1サブタスクの事前選択ノード集合の事前選択ノードは前記複数のサブタスクの第2サブタスクの事前選択ノード集合から選択され、ただし、前記第2サブタスクの順序は前記第1サブタスクの前に位置する。 In one example, preselected nodes of a preselected node-set of a first subtask of the plurality of subtasks are selected from a preselected nodeset of a second subtask of the plurality of subtasks, wherein the order of the second subtasks is the first subtask. Positioned before subtasks.

別の例において、前記複数のサブタスクのリソース要求情報に基づいて、前記複数のサブタスクの各サブタスクの事前選択ノード集合を決定する。 In another example, determining a preselected node set for each subtask of the plurality of subtasks based on resource requirement information of the plurality of subtasks.

いくつかの実施例において、前記複数のサブタスクの各サブタスクの事前選択ノード集合から前記各サブタスクのターゲットノードを選択するステップは、前記複数のサブタスクの各サブタスクの事前選択ノードから前記各サブタスクのターゲットノードを特定の順序に従って順次選択するステップを含む。 In some embodiments, selecting a target node for each subtask from a preselected node set for each subtask of the plurality of subtasks comprises selecting a target node for each subtask from a preselected node for each subtask of the plurality of subtasks. sequentially according to a particular order.

オプションとして一例において、前記複数のサブタスクの第2サブタスクのターゲットノードを前記複数のサブタスクの第1サブタスクのターゲットノードとして優先的に選択し、ただし、前記第2サブタスクの順序は前記第1サブタスクの前に位置する。 Optionally in one example, preferentially selecting a target node of a second subtask of said plurality of subtasks as a target node of a first subtask of said plurality of subtasks, wherein said second subtask is ordered before said first subtask. Located in

いくつかの実施例において、前記複数のサブタスクの各サブタスクの事前選択ノード集合から前記各サブタスクのターゲットノードを選択するステップは、前記分散システムの現在リソース状態情報に基づいて、前記複数のサブタスクの第1サブタスクの事前選択ノード集合から前記第1サブタスクのターゲットノードを決定するステップと、前記第1サブタスクのリソース要求情報に基づいて、前記分散システムの現在リソース状態情報を更新し、前記分散システムの更新された現在リソース状態情報に基づいて、前記複数のサブタスクの第2サブタスクの事前選択ノード集合から前記第2サブタスクのターゲットノードを決定するステップとを含む。 In some embodiments, selecting a target node for each subtask from a preselected node set for each subtask of the plurality of subtasks includes selecting a target node for each subtask based on current resource state information for the distributed system. determining a target node of the first subtask from a set of preselected nodes of one subtask; and updating current resource state information of the distributed system based on the resource request information of the first subtask to update the distributed system. determining a target node of the second subtask from a preselected node set of a second subtask of the plurality of subtasks based on the obtained current resource state information.

オプションとして一例において、第1サブタスクの事前選択ノード集合の各事前選択ノードの現在状態情報に基づいて、前記第1サブタスクの事前選択ノード集合から前記第1サブタスクのターゲットノードを決定し、前記第1サブタスクのリソース要求情報に基づいて、前記第1サブタスクのターゲットノードの現在状態情報を更新する。 Optionally in one example, determining a target node of the first subtask from the preselected node-set of the first subtask based on current state information of each preselected node of the preselected nodeset of the first subtask; Update the current state information of the target node of the first subtask according to the resource requirement information of the subtask.

いくつかの実施例において、前記複数のサブタスクの各サブタスクの事前選択ノード集合から前記各サブタスクのターゲットノードを選択するステップは、前記タスクのタスクタイプに基づいて、各サブタスクの事前選択ノード集合に含まれる事前選択ノードのスコアを決定するステップと、各サブタスクの事前選択ノード集合に含まれる事前選択ノードのスコアに基づいて、前記各サブタスクの事前選択ノード集合から前記各サブタスクのターゲットノードを選択するステップとを含む。 In some embodiments, selecting a target node for each subtask from a preselected node-set for each subtask of the plurality of subtasks includes including in each subtask's preselected node-set based on the task type of the task. and selecting a target node for each subtask from each subtask's preselected node-set based on the scores of the preselected nodes included in each subtask's preselected node-set. including.

オプションとして一例において、前記タスクのタスクタイプに基づいて、前記事前選択ノード集合の各事前選択ノードのスコア決定方式を決定する。 Optionally, in one example, determining a scoring scheme for each preselected node of the preselected node-set based on the task type of the task.

いくつかの実施例において、前記タスク情報に基づいて、前記タスクに含まれる複数のサブタスクに、それぞれ対応するターゲットノードを割り当てるステップは、前記タスクのタスクタイプを決定するステップと、前記タスクのタスクタイプに基づいて、前記タスクに含まれる複数のサブタスクに、それぞれ対応するターゲットノードを割り当てるステップとを含む。 In some embodiments, assigning respective target nodes to a plurality of subtasks included in the task based on the task information includes determining a task type of the task; and assigning respective target nodes to a plurality of subtasks included in the task based on.

いくつかの実施例において、前記タスクのタスクタイプは計算集約型又は通信集約型である。 In some embodiments, the task type of the task is computationally intensive or communication intensive.

いくつかの実施例において、前記タスクに含まれる複数のサブタスクに、それぞれ対応するターゲットノードを割り当てるステップは、前記タスクの複数のサブタスクを少なくとも1つのグループに分割するステップであって、各グループは前記複数のサブタスクの少なくとも1つのサブタスクを含むステップと、前記少なくとも1つのグループの各グループに、それぞれ対応するターゲットノードを割り当てるステップであって、同じグループの各サブタスクは同じターゲットノードに割り当てられるステップを含む。 In some embodiments, assigning respective target nodes to a plurality of subtasks of said task comprises dividing a plurality of subtasks of said task into at least one group, each group comprising said including at least one sub-task of a plurality of sub-tasks; and assigning each group of said at least one group a respective corresponding target node, wherein each sub-task of the same group is assigned to the same target node. .

いくつかの実施例において、前記タスクの複数のサブタスクを少なくとも1つのグループに分割するステップは、前記タスクのタスクタイプに基づいて、前記タスクの複数のサブタスクを少なくとも1つのグループに分割するステップを含む。 In some embodiments, dividing the plurality of subtasks of the task into at least one group comprises dividing the plurality of subtasks of the task into at least one group based on a task type of the task. .

いくつかの実施例において、前記タスクの複数のサブタスクを少なくとも1つのグループに分割するステップは、前記タスクのタスクタイプが通信集約型である場合に、前記タスクの複数のサブタスクのリソース要求情報に基づいて、前記複数のサブタスクの要求する総ノード数量を決定し、前記総ノード数量に基づいて、前記タスクの複数のサブタスクを少なくとも1つのグループに分割するステップを含む。 In some embodiments, dividing the plurality of subtasks of the task into at least one group is based on resource requirement information of the plurality of subtasks of the task when the task type of the task is communication intensive. determining a total node quantity required by the plurality of subtasks, and dividing the plurality of subtasks of the task into at least one group based on the total node quantity.

いくつかの実施例において、前記タスクの複数のサブタスクを少なくとも1つのグループに分割するステップは、前記タスクのタスクタイプが計算集約型である場合に、前記複数のサブタスクの各サブタスクを1つのグループとするステップを含む。 In some embodiments, dividing the plurality of subtasks of the task into at least one group includes dividing each subtask of the plurality of subtasks into one group if the task type of the task is computationally intensive. including the step of

いくつかの実施例において、前記少なくとも1つのグループの各グループに、それぞれ対応するターゲットノードを割り当てるステップは、前記少なくとも1つのグループの各グループにそれぞれ事前選択ノード集合を決定し、前記少なくとも1つのグループの各グループの事前選択ノード集合から前記グループのターゲットノードを順次選択するステップを含む。 In some embodiments, assigning respective target nodes to each of said at least one group comprises determining respective pre-selected node sets for each of said at least one group; sequentially selecting a target node of each group from the set of preselected nodes of each group of .

いくつかの実施例において、前記タスクのタスクタイプに基づいて、前記タスクに含まれる複数のサブタスクに、それぞれ対応するターゲットノードを割り当てるステップは、前記タスクのタスクタイプに基づいて、前記タスクの複数のサブタスクにターゲットノードを決定するステップと、前記タスクの複数のサブタスクのそれぞれについて対応するターゲットノードを決定することに成功した場合に、前記タスクに含まれる複数のサブタスクにターゲットノードを割り当てるステップとを含む。 In some embodiments, assigning respective target nodes to a plurality of subtasks included in the task based on a task type of the task includes: determining a target node for a subtask; and assigning target nodes to a plurality of subtasks included in the task upon successfully determining a corresponding target node for each of the plurality of subtasks of the task. .

いくつかの実施例において、前記方法は、前記サブタスクの少なくとも1つのサブタスクに対応するターゲットノードを決定することに成功しなかった場合に、前記タスクの複数のサブタスクの全てに対して遅延割り当てを行うステップをさらに含む。 In some embodiments, the method performs delayed assignment for all of a plurality of subtasks of the task if the target node corresponding to at least one subtask of the subtask is not successfully determined. Further including steps.

いくつかの実施例において、前記方法は、分散システムの現在利用可能なリソースが前記タスクの複数のサブタスクのリソース要求情報に対応する総リソースを満たさない場合に、前記タスクに含まれる複数のサブタスクの全てに対して遅延割り当てを行うステップをさらに含む。 In some embodiments, the method includes: if the currently available resources of the distributed system do not meet the total resources corresponding to the resource requirement information of the subtasks of the task; It further includes the step of performing delayed allocation for all.

いくつかの実施例において、前記方法は、前記タスクに含まれる複数のサブタスクに、それぞれ対応するターゲットノードを割り当てた後、前記タスクの複数のサブタスクを同期的にスケジューリングするステップをさらに含む。 In some embodiments, the method further comprises synchronously scheduling a plurality of subtasks of the task after assigning respective target nodes to the plurality of subtasks included in the task.

いくつかの実施例において、前記方法はタスクスケジューリングシステムに適用される。 In some embodiments, the method is applied to a task scheduling system.

本開示の実施例の第2態様では、タスク情報を取得するための取得モジュールであって、前記タスク情報は前記タスクのタスクタイプ及び前記タスクのリソース要求情報のうちの少なくとも一方を含む取得モジュールと、前記タスク情報に基づいて、前記タスクに含まれる複数のサブタスクに、それぞれ対応するターゲットノードを割り当てるための第1割り当てモジュールとを含むタスクスケジューリング装置が提供される。 In a second aspect of an embodiment of the present disclosure, an obtaining module for obtaining task information, wherein the task information includes at least one of a task type of the task and resource requirement information of the task; , a first assignment module for assigning respective target nodes to a plurality of subtasks included in the task based on the task information.

本開示の実施例の第3態様では、コンピュータプログラムが記憶されており、当該プログラムがプロセッサによって実行されるといずれの実施例に記載の方法が実施されるコンピュータ可読記憶媒体が提供される。 In a third aspect of the embodiments of the present disclosure, there is provided a computer readable storage medium having stored thereon a computer program which, when executed by a processor, implements the method of any embodiment.

本開示の実施例の第4態様では、メモリと、プロセッサと、前記メモリに記憶され前記プロセッサにおいて動作可能なコンピュータプログラムとを含み、前記プロセッサが前記プログラムを実行するといずれの実施例に記載の方法を実施するコンピュータデバイスが提供される。 A fourth aspect of embodiments of the present disclosure includes a memory, a processor, and a computer program stored in said memory and operable on said processor, wherein the method of any embodiment when said processor executes said program. A computing device is provided for implementing

本開示の実施例では、タスク情報を取得し、前記タスク情報は前記タスクのタスクタイプ及び前記タスクのリソース要求情報のうちの少なくとも一方を含み、前記タスクのリソース要求情報は前記タスクに含まれる複数のサブタスクのリソース要求情報である。タスクタイプ又はタスクのリソース要求情報に基づいてターゲットノードの割り当てを行う。例えば、分散システムの現在利用可能なリソースが、前記タスクの複数のサブタスクのリソース要求情報に対応する総リソースを満たす場合に、前記タスクに含まれる複数のサブタスクに、それぞれ対応するターゲットノードを割り当てる。このようにして、タスク全体のリソース要求状況を把握して、タスク全体を粒度としたリソースの割り当てを実現し、クラスタのリソース利用率を向上させることができる。 In an embodiment of the present disclosure, task information is obtained, the task information includes at least one of a task type of the task and resource requirement information of the task, and the resource requirement information of the task is a plurality of tasks included in the task. subtask resource request information. Allocation of target nodes based on task type or task resource requirement information. For example, if the currently available resources of the distributed system satisfy the total resources corresponding to the resource requirement information of the subtasks of the task, the multiple subtasks included in the task are assigned respective target nodes. In this way, it is possible to grasp the resource request status of the entire task, implement resource allocation with the granularity of the entire task, and improve the resource utilization rate of the cluster.

なお、上記の概略的な説明と次の詳細な説明は例示及び解釈のためのもので、本開示への限定ではない。 It should be noted that the foregoing general description and the following detailed description are for purposes of illustration and interpretation and are not limitations on the present disclosure.

ここに示す図面は本明細書の一部として組み込まれ、これらの図面は本開示に合致する実施例を示しており、本明細書と共に本開示の技術的解決手段への説明に供する。
本開示の実施例の分散システムの模式図である。 本開示の実施例のタスクスケジューリング方法のフローチャートである。 本開示の実施例のノードのシミュレーション割り当てのプロセスにおけるリソースの変化の模式図である。 本開示の実施例のノードのシミュレーション割り当てのプロセスのフローチャートである。 従来のタスクスケジューリングのプロセスの模式図である。 本開示の実施例のタスクスケジューリングのプロセスの模式図である。 本開示の実施例のスケジューリングのロジックの模式図である。 本開示の実施例のタスクスケジューリング装置の構造模式図である。 本開示の実施例のコンピュータデバイスの構造模式図である。
The drawings shown here are incorporated as part of the present specification, and the drawings show embodiments consistent with the present disclosure, and together with the present specification serve to explain the technical solutions of the present disclosure.
1 is a schematic diagram of a distributed system according to an embodiment of the present disclosure; FIG. 4 is a flowchart of a task scheduling method according to an embodiment of the present disclosure; FIG. 4 is a schematic diagram of resource changes in the process of node simulation allocation according to an embodiment of the present disclosure; FIG. 4 is a flow chart of a process for simulation assignment of nodes in accordance with an embodiment of the present disclosure; FIG. 1 is a schematic diagram of a conventional task scheduling process; FIG. FIG. 4 is a schematic diagram of the process of task scheduling according to an embodiment of the present disclosure; FIG. 4 is a schematic diagram of the scheduling logic of an embodiment of the present disclosure; 1 is a structural schematic diagram of a task scheduling device according to an embodiment of the present disclosure; FIG. 1 is a structural schematic diagram of a computing device according to an embodiment of the present disclosure; FIG.

以下、例示的な実施例を詳細に説明し、その例を図面に示す。以下の説明で図面が関係する場合に、特段の説明がある場合を除き、異なる図面では同じ数字が同じ又は類似の要素を表す。以下の例示的な実施例で説明する実施形態は本開示に合致する全ての実施形態を表すものではない。むしろ、それらは特許請求の範囲に詳しく記載された本開示のいくつかの態様に合致する装置及び方法の例に過ぎない。 Exemplary embodiments are described in detail below, examples of which are illustrated in the drawings. Where drawings are involved in the following description, the same numbers in different drawings represent the same or similar elements, unless otherwise stated. The embodiments described in the illustrative examples below do not represent all embodiments consistent with this disclosure. Rather, they are merely examples of apparatus and methods consistent with some aspects of this disclosure as recited in the claims.

本開示で使用する用語は特定の実施例を説明するためのもので、本開示への限定ではない。本開示及び特許請求の範囲で使用する単数形の「1種」、「前記」及び「当該」には複数形を含み、ただし文脈の中で他の意味を明確に記載する場合は除く。なお、本明細書で使用する用語「及び/又は」とは1つ又は複数の関連の項目として示すものの任意の又は全ての可能な組み合わせを含むことである。また、本明細書で用語「少なくとも1種」は複数種のうちの任意の1種又は複数種のうちの少なくとも2種の任意の組み合わせを表す。 The terminology used in this disclosure is for the purpose of describing particular embodiments and is not intended to be limiting of the disclosure. As used in this disclosure and claims, the singular forms "a", "said" and "the" include the plural unless the context clearly dictates otherwise. As used herein, the term "and/or" includes any and all possible combinations of one or more of the associated items. In addition, the term "at least one" as used herein represents any one of a plurality of types or any combination of at least two of a plurality of types.

なお、本開示で各種の要素を説明するために第1、第2、第3などの用語が使用されるが、当該要素はこれらの用語に限定されない。当該用語は同じタイプの要素を互いに区別するためのものに過ぎない。例えば、本開示の範囲から逸脱しない限りは、第1要素は第2要素と呼んでもよい。同様に、第2要素は第1要素と呼んでもよい。文脈に応じて、ここに使用する用語「もし」は「…の時」又は「…の場合」又は「決定に応じて」のように解釈することが可能である。 It should be noted that although the terms first, second, third, etc. are used to describe various elements in this disclosure, such elements are not limited to these terms. The terms are only used to distinguish elements of the same type from each other. For example, a first element could be termed a second element without departing from the scope of the present disclosure. Similarly, the second element may be referred to as the first element. Depending on the context, the term "if" as used herein can be interpreted as "when" or "if" or "if determined".

現在、分散システムを用いて処理を行うタスクがますます多くなり、このようなタスクは分散タスクと呼ばれる。このような分散タスクはグラフィックスプロセッシングユニット(Graphics Processing Unit、GPU)、デジタルシグナルプロセッサ(Digital Signal Processor、DSP)、フィールドプログラマブルゲートアレイ(Field Programmable Gate Array、FPGA)などの高性能の処理リソースを特に要求するタスクを含み、例えば、深層学習タスクである。図1はいくつかの実施例の分散システムを示し、当該分散システムは1つ又は複数のクラスタを含み、各クラスタは1つ又は複数のサーバーを含み、各サーバーを1つのノードと見なしてもよい(図における各黒い点で示される)。各ノードは中央処理装置(Central Processing Unit、CPU)、GPU、メモリ、ディスク、ネットワークポートなどのリソースのうちの少なくとも一方を含む。サブタスクがノードに割り当てられた後、当該ノード上のリソースによってサブタスクを実行することができ、各ノードでは1つ又は複数のサブタスクを実行できる。同じクラスタ内の各ノードに実行されるサブタスクは同じであってもよいし、異なってもよい。分散システムでは、タスクそのものもタスクのリソース要求も、従来のタスクと全く異なるため、分散システムのタスクスケジューリング方法について適宜調整を行って、分散システムのクラスタリソースの使用上の合理性を向上させて、タスク実行のパフォーマンスとクラスタのリソース利用率を高める必要がある。 Currently, more and more tasks are processed using distributed systems, and such tasks are called distributed tasks. Such distributed tasks require high performance processing resources such as Graphics Processing Units (GPUs), Digital Signal Processors (DSPs), Field Programmable Gate Arrays (FPGAs) among others. It includes demanding tasks, for example deep learning tasks. FIG. 1 illustrates a distributed system of some embodiments, including one or more clusters, each cluster including one or more servers, each server may be considered a node. (Indicated by each black dot in the figure). Each node includes at least one of resources such as a central processing unit (CPU), GPU, memory, disk, network port, and the like. After subtasks are assigned to nodes, the subtasks can be executed by resources on the node, and each node can execute one or more subtasks. The subtasks performed by each node in the same cluster may be the same or different. In a distributed system, both the tasks themselves and the resource requirements of the tasks are completely different from conventional tasks. You need to increase task execution performance and cluster resource utilization.

分散システムのタスクにリソースを割り当てる場合、割り当て方法によってタスクの実行効率に影響がもたらされる。例えば、場合によっては、タスクの複数のサブタスクの間で頻繁な通信を行う必要があるため、当該タスクの複数のサブタスクを通信コストの低いノードに割り当てるのが好ましい。場合によっては、タスクの複数のサブタスクの実行の過程で大きな計算量が伴うため、当該タスクの複数のサブタスクをコンピューティングリソースの多いノードに割り当てるのが好ましい。 When allocating resources to tasks in a distributed system, the allocation method affects the efficiency of task execution. For example, in some cases frequent communication is required between multiple subtasks of a task, so it is preferable to assign the multiple subtasks of the task to nodes with low communication costs. In some cases, the process of executing multiple subtasks of a task involves a large amount of computation, so it is preferable to assign the multiple subtasks of the task to nodes with more computing resources.

さらに、従来の分散システムのタスクは殆ど次の特徴を有する。1つのタスクは一般に複数のサブタスクを含み、各サブタスクの内容と要求するリソースは全く同じである場合があり異なる場合もあり、サブタスクの間に頻繁な通信を必要とする可能性がある。また、場合によっては、タスクの複数のサブタスクをまとめてスケジューリングして実行する必要があり、そうでなければ、タスクの正常な実行ができない。場合によっては、各サブタスクの実行順番がタスク全体の実行状況にある程度の影響をもたらす。例えば、スレーブ(slave)サブタスクは、それが属するマスター(master)サブタスクの実行が完了しないと実行できない。 Furthermore, most of the tasks in conventional distributed systems have the following characteristics. A task generally includes multiple subtasks, each of which may or may not have exactly the same content and required resources, and may require frequent communication between the subtasks. Also, in some cases, multiple subtasks of a task need to be scheduled and executed together, otherwise the task cannot be executed successfully. In some cases, the execution order of each subtask has some influence on the execution status of the entire task. For example, a slave subtask cannot run until the master subtask to which it belongs has finished running.

現在、次の方式で分散システムのタスクにバッチスケジューリングを行うスケジューラ(例えば、kube-batch)は以下である。スケジューラが順番どおりにタスクの各サブタスクに対して1つずつスケジューリングを試み、当該タスクの各サブタスクのスケジューリングを試みることを完了した後に、タスク全体がユーザーの予想の実行状態に合致するかどうかを判断する。このようなスケジューリング方式をギャングスケジューリング(gang scheduling)と呼ぶ。 Currently, the following schedulers (eg, kube-batch) perform batch scheduling for tasks in distributed systems in the following manner. The scheduler attempts to schedule each subtask of a task one by one in order, and after it has completed attempting to schedule each subtask of that task, determines whether the task as a whole meets the user's expected execution state. do. This scheduling method is called gang scheduling.

しかし、現在のギャングスケジューリング(gang scheduling)の実現形態としては、実質的にはサブタスクを粒度としたスケジューリングを行うことで、スケジューラがタスク全体のリソース要求状況を取得していないため、サブタスクに割り当てるノードは最適な選択でない可能性があり、タスクの実行効率もクラスタのリソース利用率も低かった。そのため、クラスタリソースが不十分で又はタスクタイプが複雑である場合には、スケジューリングの失敗が多発する。 However, in current implementations of gang scheduling, subtasks are practically used as the granularity for scheduling. might not be the best choice, resulting in poor task execution efficiency and cluster resource utilization. Therefore, scheduling failures often occur when cluster resources are insufficient or task types are complex.

これに基づき、本開示の実施例では、タスクスケジューリング方法が提供される。図2に示すように、前記方法はステップ201と202とを含んでもよい。 Based on this, embodiments of the present disclosure provide a task scheduling method. As shown in FIG. 2, the method may include steps 201 and 202. FIG.

ステップ201で、タスク情報を取得し、前記タスク情報は前記タスクのタスクタイプ及び前記タスクのリソース要求情報のうちの少なくとも一方を含む。 In step 201, task information is obtained, the task information including at least one of a task type of the task and resource requirement information of the task.

ステップ202で、前記タスク情報に基づいて、前記タスクに含まれる複数のサブタスクに、それぞれ対応するターゲットノードを割り当てる。 In step 202, a plurality of subtasks included in the task are assigned respective target nodes based on the task information.

本開示の実施例の方法は、端末機器又はクラウドサーバーなどの任意の電子機器によって実行されてもよい。いくつかの実施例において、当該方法はプロセッサ又はスケジューラによって実行される。オプションとして、前記プロセッサ又はスケジューラはクバネティス(Kubernetes)のようなクラウドプラットフォームにおいて実行し、具体的にはコンテナオーケストレーションエンジンに設定することができ、ただし本開示の実施例はそれに限定されない。ステップ201で、1つ又は複数のタスクの情報を取得する。 The method of the embodiments of the present disclosure may be performed by any electronic device such as a terminal device or a cloud server. In some embodiments, the method is performed by a processor or scheduler. Optionally, the processor or scheduler may run on a cloud platform such as Kubernetes, and specifically set in a container orchestration engine, although embodiments of the present disclosure are not so limited. At step 201, information for one or more tasks is obtained.

前記タスクに含まれる複数のサブタスクは前記タスクの全てのサブタスクであってもよいし、前記タスクの一部のサブタスク、例えば、リソースの需要量の大きいサブタスク、優先度の高いサブタスク、又は互いに依存関係のあるサブタスク、要求するリソースタイプもしくは数量が近いサブタスクなどであってもよい。ただし、互いに依存関係のあるサブタスクとは互いに依存関係又はマスタースレーブ関係がある複数のサブタスクを指し、例えば、サブタスクAはサブタスクBの実行が完了しないと実行できない。別の例として、同じタイプを有する、又は少なくとも1つの特定のタイプを有する複数のサブタスク等を指す。前記タスクはニューラルネットワークのトレーニングタスク、推論タスクであってもよいし、他のタイプの深層学習タスクなどであってもよい。オプションとしていくつかの実施例において、同じタスクの各サブタスクは、分散システムの同じクラスタの同じ又は異なるノードによって実行される。分散システムが複数のクラスタを含む場合に、同じタスクの各サブタスクは、同じ又は異なるクラスタのノードによって実行される。オプションとして、タスクを1つのクラスタに割り当て、その後、当該クラスタから前記タスクの複数のサブタスクのためのターゲットノードを決定する。このようにして、タスクの複数のサブタスクを同じクラスタに割り当て実行させることで、通信オーバーヘッドを低減し、タスクの実行効率を向上させることに役立つ。 The plurality of subtasks included in the task may be all subtasks of the task, or some subtasks of the task, such as subtasks with high resource demand, subtasks with high priority, or mutual dependencies. , subtasks with similar resource types or quantities, and so on. However, subtasks having a mutually dependent relationship refer to a plurality of subtasks having a mutually dependent relationship or a master-slave relationship. For example, subtask A cannot be executed until execution of subtask B is completed. Another example refers to multiple subtasks having the same type, or having at least one specific type, and the like. Said tasks may be neural network training tasks, inference tasks, or other types of deep learning tasks. Optionally, in some embodiments, each subtask of the same task is executed by the same or different nodes of the same cluster of the distributed system. When a distributed system includes multiple clusters, each subtask of the same task is executed by nodes of the same or different clusters. Optionally, a task is assigned to a cluster and then target nodes for subtasks of the task are determined from the cluster. In this way, assigning multiple subtasks of a task to the same cluster for execution helps reduce communication overhead and improve task execution efficiency.

前記タスク情報は、ユーザーの入力又は設定に基づいて得てもよいし、又はタスクの分析などに基づいて得てもよい。前記タスク情報はタスクのタスクタイプ及び/又はリソース要求情報を含んでもよい。前記タスクのリソース要求情報は、具体的には、前記タスクに含まれる複数のサブタスクのリソース要求情報である。いくつかの実施例において、前記タスク情報は、タスクタイプ及びリソース要求情報に加えて、前記タスクの優先度情報、前記タスクに含まれる複数のサブタスクの優先度情報、サブタスク間の依存情報、ユーザー提供の情報、履歴情報、計算量情報、通信量情報などのうちの1種又は複数種をさらに含んでもよい。 The task information may be obtained based on user input or settings, or may be obtained based on task analysis or the like. The task information may include the task type and/or resource requirement information of the task. Specifically, the resource request information of the task is resource request information of a plurality of subtasks included in the task. In some embodiments, the task information includes priority information of the task, priority information of multiple subtasks included in the task, dependency information between subtasks, user-provided information, in addition to task type and resource requirement information. information, history information, calculation amount information, communication amount information, and the like.

前記サブタスクのリソース要求情報は、当該サブタスクの実行に必要なリソースタイプ及び/又はリソース数量を含んでもよく、前記リソースタイプは、CPU、GPU、DSP、FPGA、メモリ、ディスク、ネットワークポートなどのリソースのうちの少なくとも一方を含むが、それらに限定されない。 The resource request information of the subtask may include a resource type and/or resource quantity required for execution of the subtask, and the resource type is a resource such as CPU, GPU, DSP, FPGA, memory, disk, network port, etc. including but not limited to at least one of

前記タスクの優先度情報は、前記タスクがスケジューリングされるまでの待ち時間及び/又は前記タスクの前記複数のサブタスクが要求する総リソースを含むが、それらに限定されない。スケジューリングされるまでの待ち時間とは、スケジューラがタスクを受信した時間から当該タスクがスケジューリングされる時間までの期間を指し、スケジューリングされるまでの待ち時間が長い方のタスクと総リソースを多く要求するタスクとの優先度を高く設定することで、タスクが長時間スケジューリング待ちの状態になることを避ける。 The priority information of the task includes, but is not limited to, the waiting time before the task is scheduled and/or the total resources required by the plurality of subtasks of the task. Latency to schedule refers to the period from the time a task is received by the scheduler to the time it is scheduled, and the task with the longer latency to be scheduled is more demanding of total resources. By setting a high priority with the task, the task is prevented from waiting for scheduling for a long time.

前記タスクに含まれる複数のサブタスクの優先度情報は、前記タスクに含まれる複数のサブタスクの優先度を決定するために用いられる。いくつかの実施例において、1つのスケジューリング周期又はリソース割り当てプロセスで、少なくとも各サブタスクの優先度情報に基づいて、サブタスクのスケジューリングを行うことができる。 The priority information of the plurality of subtasks included in the task is used to determine the priority of the plurality of subtasks included in the task. In some embodiments, scheduling of sub-tasks can be performed based at least on the priority information of each sub-task in one scheduling cycle or resource allocation process.

前記サブタスク間の依存情報は、前記タスクに含まれる複数のサブタスク間の依存関係又はマスタースレーブ関係を決定するために用いられ、サブタスクBは、サブタスクAの実行が完了しないと実行できない場合、サブタスクBは、サブタスクAに依存し、又は、サブタスクAは、マスタータスクであり、サブタスクBは、サブタスクAのスレーブタスクである。 The dependency information between the subtasks is used to determine a dependency relationship or a master-slave relationship between a plurality of subtasks included in the task. depends on subtask A, or subtask A is a master task and subtask B is a slave task of subtask A.

前記ユーザー提供の情報は前記タスクの複数のサブタスクの計算量及び通信量を決定するために用いられる。 The user-provided information is used to determine computational and communication costs of subtasks of the task.

前記履歴情報は過去のスケジューリング情報及び/又は過去の実行状況などを含んでもよい。前記履歴情報に基づいて過去のスケジューリングにおける前記タスクのタスクタイプを決定することができる。 The history information may include past scheduling information and/or past execution status. A task type of the task in past scheduling can be determined based on the historical information.

上記の情報に加えて、実際の適用シナリオによって、前記タスク情報は他の情報を含んでもよいが、ここでは繰り返さない。 In addition to the above information, according to the actual application scenario, the task information may contain other information, which will not be repeated here.

いくつかの実施例において、前記タスク情報に基づいて、前記タスクに含まれる複数のサブタスクに、それぞれ対応するターゲットノードを割り当てるステップ202は、分散システムの現在利用可能なリソースが、前記タスクの複数のサブタスクのリソース要求情報に対応する総リソースを満たす場合に、前記タスクに含まれる複数のサブタスクに、それぞれ対応するターゲットノードを割り当てるステップを含む。前記タスクの複数のサブタスクのリソース要求情報に対応する総リソースとは、前記タスクの複数のサブタスクの要求する総リソースであってもよく、オプションとして、複数のサブタスクがタスクの全てのサブタスクである場合に、当該総リソースは、前記タスクが要求する総リソースである。オプションとして、分散システムの現在利用可能なリソースが、前記複数のサブタスク又は前記タスクの要求する総リソースを満たす場合、分散システムの現在利用可能なリソースは、複数のサブタスクの実行をサポートするために十分であることを示す。オプションとして、分散システムの現在利用可能なリソースが、複数のサブタスク又はタスクの要求する総リソースを満たさない場合、分散システムの現在利用可能なリソースは、せいぜい複数のサブタスクの一部のタスクの実行しかサポートできず、全てのサブタスクの実行をサポートすることはできないことを示す。 In some embodiments, assigning 202 respective target nodes to a plurality of subtasks included in the task based on the task information includes the step 202 of assigning respective target nodes to a plurality of subtasks included in the task, wherein the currently available resources of the distributed system are limited to the plurality of subtasks of the task. Allocating a respective target node to each of a plurality of subtasks included in the task if the total resource corresponding to the resource requirement information of the subtask is satisfied. The total resource corresponding to the resource requirement information of the multiple subtasks of the task may be the total resource required of the multiple subtasks of the task, optionally if the multiple subtasks are all subtasks of the task. and the total resource is the total resource required by the task. optionally, the currently available resources of the distributed system are sufficient to support execution of the plurality of sub-tasks if the currently available resources of the distributed system satisfy the plurality of sub-tasks or the total resource requirements of the tasks; indicates that Optionally, if the currently available resources of the distributed system do not meet the total resource requirements of the multiple subtasks or tasks, the currently available resources of the distributed system may at best perform some of the tasks of the multiple subtasks. Not supported, indicating that execution of all subtasks cannot be supported.

本開示の実施例では、分散システムの現在利用可能なリソースが前記タスクの複数のサブタスクの要求する総リソースを満たす場合に限って、前記タスクに含まれる複数のサブタスクに、それぞれ対応するターゲットノードを割り当てる。これにより、タスクをリソース割り当ての単位として、タスクに含まれる複数のサブタスクをまとめてノードの割り当てを行う。したがって、分散システムの現在利用可能なリソースが不十分である場合に、タスクの一部のサブタスクにリソースを割り当てることに成功できないため、当該タスクの一部のサブタスクのみが分散システム内のリソース全体を占用するという状況を回避し、リソースの合理的な利用に役立つ。 In an embodiment of the present disclosure, multiple subtasks included in a task may be assigned corresponding target nodes only if the currently available resources of the distributed system satisfy the total resource requirements of the multiple subtasks of the task. assign. As a result, a task is used as a unit of resource allocation, and a plurality of subtasks included in the task are collectively allocated to nodes. Therefore, if the currently available resources of the distributed system are insufficient, only some of the subtasks of a task cannot successfully allocate resources to some of the subtasks, so that only some of the subtasks of that task can use the entire resources in the distributed system. It helps avoid hogging situations and makes rational use of resources.

いくつかの実施例において、分散システムの現在リソース状態情報と複数のサブタスクのリソース要求情報とに基づいて、複数のサブタスクにターゲットノードを割り当てる。各サブタスクに、そのリソース要求を満たすターゲットノードを割り当ててもよく、異なるサブタスクのターゲットノードは、同じであってもよいし異なってもよい。 In some embodiments, target nodes are assigned to the multiple subtasks based on the current resource state information of the distributed system and the resource requirement information of the multiple subtasks. Each subtask may be assigned a target node that satisfies its resource requirements, and the target nodes for different subtasks may be the same or different.

いくつかの実施例において、前記分散システムの現在リソース状態情報と前記複数のサブタスクのリソース要求情報とに基づいて、前記複数のサブタスクにターゲットノードを決定し、前記複数のサブタスクの各サブタスクに対応するターゲットノードを決定することに成功した場合に、前記タスクに含まれる複数のサブタスクに、それぞれ対応するターゲットノードを割り当てる。前記複数のサブタスクにターゲットノードを決定する上記のプロセスはシミュレーション割り当てのプロセスであり、シミュレーション割り当ては実際に実行するリソース割り当てプロセスではなく、仮想のリソース割り当てプロセスである。前記シミュレーション割り当てのプロセスは、現在、複数のサブタスクを分散システムのノードに割り当てるかどうかを計算して決定するものである。前記タスクの複数のサブタスクについてノードのシミュレーション割り当てを行うことで、分散システムが現在、当該複数のサブタスクの要求するリソースを満たすかどうかを決定することが可能である。 In some embodiments, determining a target node for the plurality of subtasks based on current resource state information of the distributed system and resource requirement information of the plurality of subtasks, corresponding to each subtask of the plurality of subtasks. If the target node is successfully determined, assign a corresponding target node to each of the plurality of subtasks included in the task. The above process of determining target nodes for the plurality of subtasks is a process of simulation allocation, which is a virtual resource allocation process rather than an actual execution resource allocation process. The simulation allocation process currently computes and determines whether to allocate multiple subtasks to nodes of a distributed system. By performing a simulated allocation of nodes for subtasks of the task, it is possible to determine whether the distributed system currently meets the resource requirements of the subtasks.

分散システムの現在リソース状態情報は、分散システムの現在利用可能なリソースを表示するために用いられ、分散システムの現在利用可能なリソースの数量、タイプ及び分布のうちの少なくとも一方を含んでもよいし、又は、分散システムの複数のノードの現在状態を含んでもよく、例えば、利用可能かどうか、利用可能なリソースがあるかどうか、利用可能なリソースのタイプと数量などである。複数のサブタスクのリソース要求情報は、複数のサブタスクの各サブタスクのリソース要求情報を含んでもよく、例えば、要求するリソースタイプ及びあるリソースタイプのリソースの数量のうちの少なくとも1種であり、例えば、要求するGPU、DSP、CPUなどの1種又は複数種であり、本開示の実施例はそれらに限定されない。 the current resource status information of the distributed system is used to display the currently available resources of the distributed system and may include at least one of the quantity, type and distribution of the currently available resources of the distributed system; Or, it may include the current state of multiple nodes of the distributed system, such as availability, whether there are resources available, the type and quantity of resources available, and the like. The resource requirement information of the plurality of subtasks may include resource requirement information of each subtask of the plurality of subtasks, for example, at least one of a requested resource type and a resource quantity of a resource type, for example, a request GPUs, DSPs, CPUs, etc., and embodiments of the present disclosure are not limited thereto.

いくつかの実施例において、複数のサブタスクのリソース要求情報と分散システムの現在リソース状態情報とに基づいて、分散システムには複数のサブタスクの要求を満たすターゲットノードがあるかどうかを決定し、又は、複数のサブタスクの各サブタスクのターゲットノードを特定の順序に従って順次決定する。例えば、複数のサブタスクの各サブタスクが分散システムにその要求を満たすターゲットノードが見つかると、分散システムの現在利用可能なリソースが複数のサブタスクの要求する総リソースを満たすと決定する。一例として、複数のサブタスクの少なくとも1つのサブタスクが分散システムにその要求を満たすターゲットノードが見つからないと、分散システムの現在利用可能なリソースが複数のサブタスクの要求する総リソースを満たさないと決定する。 In some embodiments, determining whether there is a target node in the distributed system to meet the requirements of the subtasks based on the resource request information of the multiple subtasks and the current resource state information of the distributed system; or A target node for each subtask of the plurality of subtasks is sequentially determined according to a specific order. For example, when each subtask of a plurality of subtasks finds a target node in the distributed system that satisfies its requirements, it determines that the currently available resources of the distributed system satisfy the total resource requirements of the plurality of subtasks. As an example, if at least one subtask of the plurality of subtasks cannot find a target node satisfying its requirements in the distributed system, it determines that the currently available resources of the distributed system do not meet the total resource requirements of the plurality of subtasks.

従来の単一のサブタスクのノード決定とは異なり、本開示の実施例では、複数のサブタスクのターゲットノードは特定の順序に従って順次決定され、しかも次のサブタスクのターゲットノードの決定は、前のサブタスクについて決定されたターゲットノードの影響を受ける場合がある。いくつかの実施例において、毎回1つのサブタスクに対応するターゲットノードが決定された後、分散システムの現在リソース状態情報を更新し、例えば、決定された当該ターゲットノードの現在状態情報を更新し、その後、更新された現在リソース状態情報に基づいて次のサブタスクに対応するターゲットノードを決定することで、リソース競合の問題を避ける。 Unlike the conventional node determination of a single subtask, in the embodiments of the present disclosure, the target nodes of multiple subtasks are sequentially determined according to a specific order, and the determination of the target node of the next subtask is based on the previous subtask. May be affected by the determined target node. In some embodiments, after the target node corresponding to one subtask is determined each time, update the current resource state information of the distributed system, for example, update the current state information of the determined target node, and then , avoiding the problem of resource contention by determining the target node corresponding to the next subtask based on the updated current resource state information.

なお、ここで前記現在リソース状態情報を更新するとは、上記のシミュレーション割り当て又はターゲットノードの決定のプロセスに用いられるものであり、実際の更新ではなく仮想の更新であり、サブタスクのノードのシミュレーション割り当て又はターゲットノードの決定を1回実行した後の、分散システムの現在利用可能なリソースの仮想の変化状況であってもよい。サブタスクの実際の割り当てはまだ行われていないため、分散システムの現在利用可能なリソースが実際に変化していない。例えば、1つのサブタスクのターゲットノードが決定した後、当該ターゲットノードが仮想的に当該サブタスクに割り当てられ、ターゲットノード上の当該サブタスクの要求するリソースに対応する一部のリソースを当該サブタスクと仮想的にバインドすると考えてもよい。このように、当該仮想的にバインドされたリソースは、他のサブタスクに割り当てられることはできない。 It should be noted that updating the current resource state information here is used in the above simulation allocation or target node determination process, and is not an actual update but a virtual update, and a subtask node simulation allocation or It may be a virtual change situation of the currently available resources of the distributed system after performing the determination of the target node once. Since the actual assignment of subtasks has not yet taken place, the currently available resources of the distributed system have not actually changed. For example, after the target node of one subtask is determined, the target node is virtually assigned to the subtask, and some resources corresponding to the resources required by the subtask on the target node are virtually allocated to the subtask. You can think of it as binding. As such, the virtually bound resource cannot be assigned to another subtask.

上記の特定の順序は事前に設定された順番であってもよい。又は、いくつかの例において、前記特定の順序は、前記複数のサブタスクの優先度に基づいて決定され、例えば、優先度の高いサブタスクに対応するターゲットノードを決定し、次に、優先度の低いサブタスクに対応するターゲットノードを決定する。当該優先度は、サブタスクのタイプ、サブタスクと他のサブタスクとの間の依存関係などの1種又は複数種の要因に基づいて決定されてもよく、例えば、依存関係又はマスタースレーブ関係のある2つのサブタスクについて、マスター(master)サブタスクの優先度はスレーブ(slave)サブタスクの優先度より高いが、本開示の実施例はそれに限定されない。又は、別のいくつかの例において、前記特定の順序は、前記サブタスクの依存関係又はマスタースレーブ関係に基づいて決定される。スレーブサブタスクはマスターサブタスクがなければ実行できないため、対応するターゲットノードをマスターサブタスクに優先的に割り当てることにより、タスク全体の実行効率の向上に役立つ。又は、前記特定の順序は、他の要因に基づいて決定されてもよいが、本開示の実施例はこれについて限定しない。 The above specific order may be a preset order. Alternatively, in some examples, the particular order is determined based on the priorities of the plurality of subtasks, e.g., determining target nodes corresponding to higher priority subtasks, then lower priority subtasks. Determine the target node corresponding to the subtask. The priority may be determined based on one or more factors such as the type of subtask, the dependencies between the subtasks and other subtasks, e.g. For subtasks, the priority of a master subtask is higher than the priority of a slave subtask, although embodiments of the present disclosure are not so limited. Or, in some other examples, the particular order is determined based on a dependency or master-slave relationship of the subtasks. Since a slave subtask cannot run without a master subtask, preferentially assigning the corresponding target node to the master subtask helps improve the execution efficiency of the overall task. Alternatively, the particular order may be determined based on other factors, although embodiments of the present disclosure are not limited in this respect.

いくつかの実施例において、分散システムには前記複数のサブタスクの各サブタスクの要求するリソースを満たすターゲットノードがある場合に、分散システムの現在利用可能なリソースが前記タスクの複数のサブタスクのリソース要求情報に対応する総リソースを満たすと決定し、そうでなければ、分散システムの現在利用可能なリソースが前記タスクの複数のサブタスクのリソース要求情報に対応する総リソースを満たさないと決定する。 In some embodiments, if the distributed system has a target node that satisfies the resource requirements of each subtask of said plurality of subtasks, the currently available resources of the distributed system contain resource request information of the plurality of subtasks of said task. otherwise, the currently available resources of the distributed system do not meet the total resources corresponding to the resource requirement information of the plurality of subtasks of the task.

図3A及び図3Bに示す例では、タスクが優先度の高い順にサブタスク1、サブタスク2及びサブタスク3を含むと仮定し、まず分散システムの現在利用可能なリソース情報とサブタスク1のリソース要求情報とに基づいて、サブタスク1にノードを割り当てるシミュレーションを行い、サブタスク1のターゲットノードを得、その後、分散システムの現在リソース状態情報を更新し、次に、更新された分散システムの現在利用可能なリソース情報とサブタスク2のリソース要求情報とに基づいて、サブタスク2にノードを割り当てるシミュレーションを行い、サブタスク2のターゲットノードを得、その後、分散システムの現在リソース状態情報を更新し、さらに、再度更新された分散システムの現在利用可能なリソース情報とサブタスク3のリソース要求情報とに基づいて、サブタスク3にノードを割り当てるシミュレーションを行い、サブタスク3のターゲットノードを得る。 In the example shown in FIGS. 3A and 3B, assuming that the task includes subtask 1, subtask 2 and subtask 3 in order of priority, first, the currently available resource information of the distributed system and the resource request information of subtask 1 are based on, perform a simulation of allocating nodes to subtask 1, obtain the target node of subtask 1, then update the current resource state information of the distributed system, and then update the current available resource information of the distributed system and Based on the resource request information of subtask 2, perform a simulation of assigning nodes to subtask 2, obtain the target node of subtask 2, then update the current resource state information of the distributed system, and further update the distributed system again. and the resource requirement information of subtask 3, a simulation of allocating nodes to subtask 3 is performed to obtain the target nodes of subtask 3.

サブタスク1、サブタスク2及びサブタスク3へのノードのシミュレーション割り当てがいずれも成功した場合、前記分散システムの現在利用可能なリソースが前記複数のサブタスクの各サブタスクの要求を満たす、即ち、複数のサブタスクの要求する総リソースを満たすと決定する。サブタスク1、サブタスク2又はサブタスク3へのノードのシミュレーション割り当てが失敗すると、例えば、分散システムにはその要求するリソースを満たすターゲットノードが見つからないと、前記分散システムの現在利用可能なリソースが前記複数のサブタスクの要求する総リソースを満たさないと決定する。 If the simulation allocation of nodes to subtask 1, subtask 2 and subtask 3 are all successful, the currently available resources of the distributed system satisfy the demands of each subtask of the plurality of subtasks, i.e. the demands of the plurality of subtasks. determines that it satisfies the total resources to be used. If the simulated assignment of a node to subtask 1, subtask 2 or subtask 3 fails, e.g., the distributed system cannot find a target node that satisfies its required resources, then the currently available resources of the distributed system may fall short of the plurality of nodes. Determines that the subtask's total resource requirements cannot be met.

前記シミュレーション割り当てにより、前記分散システムの現在利用可能なリソースが前記複数のサブタスクの各サブタスクの要求するリソースを満たすと決定した場合に、前記シミュレーション割り当てで決定された各サブタスクに対応するターゲットノードを、前記各サブタスクに割り当ててもよい。 a target node corresponding to each subtask determined in the simulation allocation when the simulation allocation determines that the currently available resources of the distributed system meet the resource requirements of each subtask of the plurality of subtasks; It may be assigned to each of the subtasks.

いくつかの実施例において、分散システムの各ノードの現在状態情報に基づいて、各サブタスクにターゲットノードを決定してもよく、例えば、各ノードの現在状態情報に基づいて、各ノードをソート又はスコアリングされ、複数のサブタスクに、順序又はスコアの高いノードを特定の順序に従って順次割り当てる。 In some embodiments, the target node for each subtask may be determined based on the current state information of each node of the distributed system, e.g., sorting or scoring each node based on the current state information of each node. The order or score nodes are assigned sequentially to the subtasks according to a specific order.

いくつかの実施例において、前記タスクの複数のサブタスクにターゲットノードを決定するとき、事前選択及び最適選択の2つのプロセスを介して複数のサブタスクのそれぞれに対応するターゲットノードを決定する。 In some embodiments, when determining target nodes for multiple subtasks of the task, the target nodes corresponding to each of the multiple subtasks are determined through two processes of preselection and optimal selection.

事前選択プロセスでは、複数のサブタスクのリソース要求情報に基づいて、複数のサブタスクの各サブタスクについて、それぞれ分散システムからその要求を満たす少なくとも1つの事前選択ノードを初歩的に選択し、又は分散システムからその要求を満たさないノードを排除する。例えば、前記分散システムの複数のノードの現在状態情報と前記複数のサブタスクのリソース要求情報とに基づいて、前記複数のサブタスクの各サブタスクの事前選択ノード集合を決定し、各サブタスクの事前選択ノード集合は、少なくとも1つの事前選択ノードを含む。異なるサブタスクの事前選択ノード集合は、同じノードまたは異なるノードを含んでもよい。 In the pre-selection process, for each sub-task of the plurality of sub-tasks, based on the resource requirement information of the plurality of sub-tasks, each pre-selection node is preliminarily selected from the distributed system to satisfy its requirement, or Eliminate nodes that do not meet the requirements. For example, determining a preselected node set for each subtask of the plurality of subtasks based on the current state information of the plurality of nodes of the distributed system and the resource request information of the plurality of subtasks; contains at least one preselected node. The preselected node-sets for different subtasks may contain the same nodes or different nodes.

最適選択プロセスでは、各サブタスクの事前選択ノード集合から前記各サブタスクのターゲットノードを選択する。例えば、サブタスクの事前選択ノード集合から最適な1つのノードを当該サブタスクのターゲットノードとして選択する。オプションとしていくつかの例において、サブタスクの事前選択ノード集合に含まれる各事前選択ノードの現在状態情報に基づいて、例えば、現在負荷状況、利用可能なリソースのタイプ、利用可能なリソースの数量、利用可能なリソースの分布及びノード同士のトポロジ接続関係、及び他のノードとのトポロジ接続関係のうちの少なくとも一方に基づいて、ターゲットノードを決定する。前記利用可能なリソースのタイプは、通信ポート、ディスクの記憶スペース、メモリ、CPU、GPUなどのうちの少なくとも1つを含むが、それらに限定されない。前記利用可能なリソースの数量はCPUの数量、ディスクの残り容量、メモリの残り容量などであってもよい。前記利用可能なリソースの分布は、リソース断片化(fragmentation)状況とも呼ばれ、即ち現在利用可能なリソースの分布位置であり、例えば、ディスクの残り容量がいくつのディスクに分布するかということである。分散システムの各ノードのトポロジ構造は、例えば、バストポロジ、スタートポロジ、リングトポロジ、ツリートポロジなどである。 The optimal selection process selects a target node for each subtask from each subtask's preselected node set. For example, an optimal node from the subtask's preselected node set is selected as the target node for the subtask. Optionally, in some examples, based on the current state information of each preselected node in the subtask's preselected node-set, e.g., current load situation, type of available resources, quantity of available resources, utilization A target node is determined based on at least one of the distribution of possible resources and topological connectivity between nodes and topological connectivity with other nodes. The types of available resources include, but are not limited to, at least one of communication ports, disk storage space, memory, CPU, GPU, and the like. The quantity of available resources may be the quantity of CPUs, remaining disk capacity, remaining memory capacity, and the like. The distribution of available resources is also called resource fragmentation situation, that is, the distribution position of currently available resources, for example, how many discs the remaining capacity of a disc is distributed over. . The topology structure of each node of the distributed system is, for example, bus topology, star topology, ring topology, tree topology, and the like.

いくつかの実施例において、事前選択プロセスで、前記分散システムの現在リソース状態情報と各サブタスクのリソース要求情報とに基づいて、前記各サブタスクの事前選択ノード集合を決定し、即ち、前記タスクの複数のサブタスクの各サブタスクの事前選択プロセスは互いに干渉せず、各サブタスクの事前選択ノード集合の選択は、他のサブタスクのリソース要求情報に依存せず、当該サブタスクのリソース要求情報にのみ関連する。これに応じて、複数のサブタスクの事前選択ノード集合の決定は、並行して実行してもよいし、又は任意の順番で実行してもよい。このようにして、迅速に事前選択ノードを決定して、シミュレーション割り当ての全体的な効率を向上させることができる。 In some embodiments, the preselection process determines a set of preselected nodes for each of the subtasks based on current resource state information of the distributed system and resource requirement information of each subtask, i.e., a plurality of the tasks. do not interfere with each other, and the selection of the preselection node set of each subtask does not depend on the resource requirement information of other subtasks, but is only related to the resource requirement information of that subtask. Accordingly, determination of preselected node sets for multiple subtasks may be performed in parallel or in any order. In this way, preselected nodes can be quickly determined to improve the overall efficiency of simulation allocation.

例えば、タスクが優先度の高い順にサブタスク1、サブタスク2及びサブタスク3を含むと仮定し、事前選択プロセスでは、次の動作を並行して実行してもよい。サブタスク1のリソース要求情報と分散システムの現在リソース状態情報とに基づいてサブタスク1の事前選択ノード集合を決定し、サブタスク2のリソース要求情報と分散システムの現在リソース状態情報とに基づいてサブタスク2の事前選択ノード集合を決定し、サブタスク3のリソース要求情報と分散システムの現在リソース状態情報とに基づいてサブタスク3の事前選択ノード集合を決定する。例えば、サブタスク1に対応する事前選択ノード集合は、{ノード1,ノード2,ノード3}を含み、サブタスク2に対応する事前選択ノード集合は、{ノード2,ノード5,ノード6,ノード7}を含み、サブタスク3に対応する事前選択ノード集合は、{ノード6,ノード7}を含む。 For example, assuming a task includes subtask 1, subtask 2 and subtask 3 in order of priority, the preselection process may perform the following operations in parallel. determining a preselected node set for subtask 1 based on the resource request information of subtask 1 and the current resource state information of the distributed system; Determining a preselected node-set and determining a preselected node-set for subtask 3 based on the resource requirement information of subtask 3 and the current resource state information of the distributed system. For example, the preselected node-set corresponding to subtask 1 includes {node 1, node 2, node 3}, and the preselected node-set corresponding to subtask 2 includes {node 2, node 5, node 6, node 7}. , and the preselected node-set corresponding to subtask 3 includes {node 6, node 7}.

いくつかの実施例において、事前選択プロセスでは、複数のサブタスクの事前選択ノード集合を特定の順序に従って順次選択する。オプションの例において、前のサブタスクの事前選択ノード集合に基づいて、次のサブタスクの事前選択ノード集合を決定する。例えば、次のサブタスクの事前選択ノードは、前のサブタスクの事前選択ノード集合から選択される。当該前のサブタスクの数量は1つ又は2つ以上であってもよく、例えば、当該前のサブタスクは、当該次のサブタスクの前の全てのサブタスクであり、当該前のサブタスクと次のサブタスクは、隣接してもよく、少なくとも1つのサブタスクを隔ててもよいが、本開示の実施例はそれに限定されない。 In some embodiments, the preselection process sequentially selects preselected node-sets of multiple subtasks according to a particular order. In an optional example, determine the preselected node-set for the next subtask based on the preselected node-set for the previous subtask. For example, the next subtask's preselected nodes are selected from the previous subtask's preselected node set. The number of the previous subtasks may be one or more, for example, the previous subtasks are all subtasks before the next subtask, and the previous subtask and the next subtask are: They may be adjacent or separated by at least one subtask, although embodiments of the present disclosure are not so limited.

いくつかの実施例において、複数のサブタスクのリソース要求情報を総合的に考慮して、複数のサブタスクの事前選択ノード集合を決定し、例えば、前記複数のサブタスクに共通の事前選択ノード集合を選択し、当該共通の事前選択ノード集合に含まれる事前選択ノードは複数のサブタスクの少なくとも2つのサブタスクのリソース要求を満たす。 In some embodiments, resource requirement information of a plurality of subtasks are collectively considered to determine a preselected node-set for a plurality of subtasks, for example, selecting a common preselected node-set for the plurality of subtasks. , the preselected nodes included in the common preselected node set satisfy the resource requirements of at least two subtasks of the plurality of subtasks.

いくつかの実施例において、最適選択プロセスでは、複数のサブタスクのターゲットノードを並行して決定し、又は複数のサブタスクの事前選択ノード集合と結び付けて、複数のサブタスクのターゲットノードを総合的に決定する。例えば、複数のサブタスクの少なくとも一部のサブタスクの事前選択ノード集合について共通部分を求めることにより、当該少なくとも一部のサブタスクのターゲットノードを決定するが、本開示の実施例はそれに限定されない。 In some embodiments, the optimal selection process determines target nodes for multiple subtasks in parallel or combines with preselected node sets for multiple subtasks to jointly determine target nodes for multiple subtasks. . For example, the target nodes of at least some of the subtasks are determined by intersecting preselected node sets of at least some of the subtasks, but embodiments of the present disclosure are not limited thereto.

いくつかの実施例において、特定の順序に従って、例えば、複数のサブタスクの優先度に基づいて、前記複数のサブタスクの事前選択ノード集合から前記複数のサブタスクに対応するターゲットノードを順次決定する。オプションの一例において、サブタスクに対応するターゲットノードが決定するたびに、当該ターゲットノードの現在状態情報を更新する。例えば、当該サブタスクに対応するリソース要求情報に基づいて、当該ターゲットノードの現在状態情報を更新する。このようにして、後続のサブタスクのターゲットノードを決定する過程で、当該ターゲットノード上の当該サブタスクの要求するリソースに対応する部分が利用できなく、複数のサブタスクの順調な実行が保証される。オプションとして別の例において、前のサブタスクによって選択されたターゲットノードに基づいて、次のサブタスクのターゲットノードを選択する。例えば、次のサブタスクの事前選択ノード集合がターゲットノードを含まないか、又は当該ターゲットノードの他の重要な要素が次のサブタスクの要求を満たさない限り、次のサブタスクは、前のサブタスクのターゲットノードを自身のターゲットノードとして優先的に選択するが、本開示の実施例はそれに限定されない。 In some embodiments, target nodes corresponding to the plurality of subtasks are sequentially determined from the preselected node sets of the plurality of subtasks according to a particular order, for example, based on priorities of the plurality of subtasks. In one example option, each time a target node corresponding to a subtask is determined, the current state information of that target node is updated. For example, the current state information of the target node is updated based on the resource requirement information corresponding to the subtask. In this way, in the process of determining the target node of the succeeding subtask, the part corresponding to the resource required by the subtask on the target node is not available, and the smooth execution of the multiple subtasks is guaranteed. Optionally, in another example, the target node for the next subtask is selected based on the target node selected by the previous subtask. For example, unless the next subtask's preselected node-set does not contain the target node or other significant elements of that target node satisfy the next subtask's requirements, the next subtask will be is preferentially selected as its target node, although embodiments of the present disclosure are not so limited.

複数のサブタスクにリソースを同期的に割り当てる場合には、前記事前選択及び最適選択プロセスは、シミュレーション割り当てのプロセスであってもよい。複数のサブタスクにリソースを非同期的に割り当てる場合には、前記事前選択及び最適選択プロセスは、実際のノード割り当てプロセスであってもよい。同様に、前記過程に関わる現在リソース状態情報の更新は、1回のサブタスクへのノード割り当ての実行が完了した後、分散システムの現在利用可能なリソースの変化により実行された実際の更新プロセスであってもよい。 Said pre-selection and optimal selection process may be a process of simulated allocation when resources are allocated to multiple sub-tasks synchronously. Said pre-selection and optimal selection process may be the actual node allocation process when allocating resources to multiple sub-tasks asynchronously. Similarly, the updating of current resource state information involved in the above process is the actual updating process performed due to changes in the currently available resources of the distributed system after the execution of node assignment to subtasks has been completed once. may

本開示の実施例では、所定の方式により事前選択ノード集合からターゲットノードを選択してもよい。例えば、分散システムの現在リソース状態情報又は各事前選択ノードの現在状態情報と複数のサブタスクのリソース要求情報とに基づいてターゲットノードを選択する。いくつかの実施例において、各サブタスクの事前選択ノード集合に含まれる事前選択ノードのスコアを決定し、例えば、サブタスクの事前選択ノード集合の各事前選択ノードの現在状態情報と当該サブタスクのリソース要求情報とに基づいて、各事前選択ノードのスコアを決定し、各サブタスクの事前選択ノード集合に含まれる事前選択ノードのスコアに基づいて、前記各サブタスクの事前選択ノード集合から前記各サブタスクのターゲットノードを選択する。例えば、事前選択ノード集合に含まれる少なくとも1つの事前選択ノードからスコアの最高の事前選択ノードをターゲットノードとして選択する。又は、スコアと他の要素の両方に基づいてターゲットノードを選択する。 Embodiments of the present disclosure may select a target node from a preselected node set according to a predetermined scheme. For example, the target node is selected based on the current resource state information of the distributed system or the current state information of each preselected node and the resource requirement information of the plurality of subtasks. In some embodiments, the score of the preselected nodes in each subtask's preselected node-set is determined, e.g., the current state information of each preselected node in the subtask's preselected node-set and the resource requirement information of the subtask. and determining the score of each preselected node based on and, based on the score of the preselected nodes in each subtask's preselected node set, extracting a target node for each subtask from the preselected node set for each subtask. select. For example, the preselected node with the highest score from at least one preselected node included in the preselected node set is selected as the target node. Alternatively, select target nodes based on both score and other factors.

前例の続きで、タスクの優先度に基づいて複数のサブタスクのターゲットノードを順次決定するのを例として、まずサブタスク1の事前選択ノード集合の各事前選択ノードのスコアを決定し、ノード1のスコアが80、ノード2のスコアが90、ノード3のスコアが70であると仮定すると、ノード2をサブタスク1のターゲットノードとして決定し、ノード2の現在状態情報を更新する。その後、サブタスク2の事前選択ノード集合の各事前選択ノードのスコアを決定し、ここで、ノード2のスコアは、ノード2の更新された現在状態情報に基づいて決定されるものである。ノード2のスコアが60、ノード5のスコアが80、ノード6のスコアが75、ノード7のスコアが70であると仮定すると、ノード5をサブタスク2のターゲットノードとして決定し、ノード5の現在状態情報を更新する。最後に、サブタスク3の事前選択ノード集合の各事前選択ノードのスコアを決定し、ノード6のスコアが70、ノード7のスコアが60であると仮定すると、ノード6をサブタスク3のターゲットノードとして決定する。 Continuing with the previous example, taking the example of sequentially determining the target nodes of multiple subtasks based on the task priority, first determine the score of each preselected node in the preselected node set of subtask 1, and the score of node 1 is 80, the score of node 2 is 90, and the score of node 3 is 70, determine node 2 as the target node for subtask 1 and update the current state information of node 2. Then determine the score for each preselected node in the preselected node set for subtask 2, where the score for node 2 is determined based on the updated current state information for node 2. Assuming that node 2 has a score of 60, node 5 has a score of 80, node 6 has a score of 75, and node 7 has a score of 70, determine node 5 as the target node for subtask 2, and determine node 5's current state Update information. Finally, determine the score of each preselected node in the preselected node set for subtask 3, and assuming node 6 has a score of 70 and node 7 has a score of 60, determine node 6 as the target node for subtask 3. do.

いくつかの実施例において、ステップ201で取得したタスク情報に基づいてタスクのタスクタイプを決定し、タスクのタスクタイプに基づいて、複数のサブタスクにターゲットノードを割り当てる。タスクのタスクタイプについては実際の状況に応じて設定することができる。ニューラルネットワークなどの深層学習モデルのトレーニング、推論などの深層学習タスクの場合は、オプションとして、タスクを通信集約型タスク及び計算集約型タスクの2つのタイプに分ける。通信集約型タスクとはタスクの処理過程で各サブタスク間の通信が頻繁なタスクであり、計算集約型タスクとはタスクの処理過程で計算量が大きいタスクである。 In some embodiments, the task type of the task is determined based on the task information obtained in step 201, and target nodes are assigned to multiple subtasks based on the task type of the task. The task type of the task can be set according to the actual situation. For deep learning tasks such as training deep learning models such as neural networks, inference, etc., the tasks are optionally divided into two types: communication-intensive tasks and computation-intensive tasks. A communication-intensive task is a task in which communication between subtasks is frequent in the process of task processing, and a computation-intensive task is a task with a large amount of calculation in the process of task processing.

具体的には、タスクの複数のサブタスクの全体的な状況に基づいてタスクのタスクタイプを決定することができる。オプションとして一例において、前記タスクの複数のサブタスクの計算量及び通信量に基づいて、タスクのタスクタイプを決定する。例えば、計算量が事前に設定された計算量閾値より大きい場合に、当該タスクを計算集約型タスクと見なす。別の例として、通信量が事前に設定された通信量閾値より大きい場合に、当該タスクを通信集約型タスクと見なす。別の例として、計算量と通信量の両方が事前に設定された対応の閾値を超える場合、通信集約型タスクとして決定してもよい。オプションとして別の例において、過去のスケジューリング経験に基づいてタスクタイプを決定する。ある特定のタスクについて、過去のスケジューリングでスケジューラが当該タスクを計算集約型タスクとして決定したことがあると、当該タスクを計算集約型タスクとして決定し、過去のスケジューリングでスケジューラが当該タスクを通信集約型タスクとして決定したことがあると、当該タスクを通信集約型タスクとして決定する。オプションとして、前記タスクの少なくとも1回の過去の実行の状況に基づいて、前記タスクのタスクタイプを決定し、例えば、直近の1回又は複数回の過去の実行過程で、前記タスクの計算に使用する時間又はコンピューティングリソースが多いと、当該タスクを計算集約型タスクとして決定し、別の例として、直近の1回又は複数回の過去の実行過程で、前記タスクの通信に使用する時間又は通信リソースが多いと、当該タスクを通信集約型タスクとして決定する。又は、他の方式によりタスクのタスクタイプを決定してもよい。又は、ユーザー提供の情報、例えば、ユーザーが提供するタスクタイプ情報、あるいはユーザーが提供するタスクの計算量及び/又は通信量情報などに基づいて、タスクのタスクタイプを決定する。本開示の実施例ではタスクタイプの決定の実現について具体的に限定しない。 Specifically, the task type of a task can be determined based on the overall status of multiple subtasks of the task. Optionally, in one example, determining a task type for a task based on computational and communication complexity of multiple subtasks of the task. For example, if the complexity is greater than a preset complexity threshold, the task is considered computationally intensive. As another example, the task is considered a communication-intensive task if the traffic is greater than a preset traffic threshold. As another example, a task may be determined as a communication-intensive task if both computational complexity and communication complexity exceed corresponding preset thresholds. Optionally, in another example, determine the task type based on past scheduling experience. For a given task, if the scheduler determined the task as a computation-intensive task in past scheduling, the task is determined as a computation-intensive task, and the scheduler determined the task as a communication-intensive task in the past scheduling. Once determined as a task, the task is determined as a communication-intensive task. optionally determining a task type of the task based on the circumstances of at least one past execution of the task, e.g., during the most recent one or more past executions, to be used in the computation of the task; determining the task as a computationally intensive task when there is a large amount of time or computing resources to perform the task; If there are many resources, the task is determined as a communication-intensive task. Alternatively, another method may be used to determine the task type of the task. Alternatively, the task type of the task is determined based on user-provided information, such as user-provided task type information, or user-provided task calculation amount and/or communication amount information. Embodiments of the present disclosure do not specifically limit the implementation of task type determination.

本開示の実施例では、タスクタイプに基づいて複数のサブタスクのターゲットノードを決定することにより、タスク全体を効率的に実行できる。例えば、通信集約型タスクについて、当該タスクの複数のサブタスクを、なるべく数の少ないターゲットノードに割り当てて、通信オーバーヘッドを減らすことができる。別の例として、計算集約型タスクについて、オプションとして、ターゲットノード上のリソースが前記タスクの複数のサブタスクの要求を満たすだけでよく、又は計算性能の優れたノードを優先的に選択し、又はノードの断片化リソースを優先して利用し、又はなるべくコンピューティングリソースがユーザーの要求を満たすことを前提として、通信オーバーヘッドを最適化する、などである。 Embodiments of the present disclosure may efficiently execute the overall task by determining target nodes for multiple subtasks based on the task type. For example, for a communication-intensive task, multiple subtasks of the task can be assigned to as few target nodes as possible to reduce communication overhead. As another example, for a computationally intensive task, optionally the resources on the target node only need to meet the demands of multiple subtasks of said task, or preferentially selecting nodes with superior computational performance, or or to optimize the communication overhead on the premise that the computing resources meet the user's demand as much as possible.

オプションとしていくつかの例において、前記タスクのタスクタイプに基づいて、上記の事前選択及び/又は最適選択プロセスを行う。 Optionally, in some examples, the above pre-selection and/or optimal selection process is performed based on the task type of the task.

いくつかの実施例において、タスクのタスクタイプに基づいて、上記の事前選択プロセスを行い、例えば、通信集約型タスクの場合は、利用可能なリソースのタイプ及び/又は利用可能なリソースの数量が少ないなどのような、明らかに複数のサブタスクの多くのサブタスクの要求を満たさないノードを排除し、別の例として、事前選択ノード集合に含まれるノードの数量を特定の範囲に制限し、ここで、リソースタイプの多い及び/又は数量の多いノード、又はリソースタイプが複数のサブタスク全体の要求するリソースに合致するノードを事前選択ノードとして優先的に選択する。オプションとしていくつかの例において、通信集約型タスクの各サブタスクに個別の事前選択ノード集合を決定する代わりに、複数のサブタスクの一部又は全てのサブタスクに1つの事前選択ノード集合を決定してもよいが、本開示の実施例はそれに限定されない。 In some embodiments, the above pre-selection process is performed based on the task type of the task, e.g., for communication intensive tasks, the type of resources available and/or the quantity of resources available is low. Eliminate nodes that clearly do not satisfy the requirements of many subtasks of multiple subtasks, such as Nodes with many resource types and/or many in quantity, or nodes whose resource types match the resources required by all of the subtasks, are preferentially selected as preselected nodes. Optionally, in some instances, instead of determining separate preselected node-sets for each subtask of a communication-intensive task, one preselected node-set may be determined for some or all subtasks of multiple subtasks. Good, but embodiments of the present disclosure are not so limited.

別のいくつかの実施例において、タスクタイプに基づいて、上記の最適選択プロセスを行う。例えば、タスクタイプに基づいて、ターゲットノードの選択方式を決定する。例えば、1つのサブタスクのターゲットノードを決定する過程で、その前のサブタスクによって決定されたターゲットノードを優先的に選択する。例えば、タスクがサブタスク1及びサブタスク2を含み、サブタスク1のターゲットノードがノード1及びノード2を含む場合に、サブタスク2にノード1及びノード2をターゲットノードとして最適選択してもよい。オプションとしていくつかの例において、サブタスクの事前選択ノード集合に含まれる各ノードの現在状態情報とタスクのタスクタイプとに基づいて、当該サブタスクの事前選択ノード集合に含まれる各事前選択ノードのスコアを決定する。別のいくつかの実施例において、他の方式によりサブタスクの事前選択ノード集合に含まれる各事前選択ノードのスコアを決定してもよく、説明が重複するためここで省略する。 In some other embodiments, the above optimal selection process is performed based on task type. For example, the task type determines the target node selection method. For example, in the process of determining the target node of one subtask, preferentially select the target node determined by the previous subtask. For example, if a task includes subtask 1 and subtask 2, and the target nodes of subtask 1 include node 1 and node 2, subtask 2 may optimally select node 1 and node 2 as target nodes. Optionally, in some examples, based on the current state information of each node in the subtask's preselected node-set and the task type of the task, calculate the score of each preselected node in the subtask's preselected node-set. decide. In some other embodiments, other methods may be used to determine the score of each preselected node included in the preselected node set of the subtask, and the description is omitted here for redundancy.

一例において、通信集約型タスクの場合は、ターゲットノードの数量をなるべく減らしてサブタスク間の通信コストを低減することが望ましいため、通信集約型タスクのサブタスクの場合は、一般に、リソースが集中して分布するノードは、リソースが分散して分布するノードよりスコアが高い。例えば、サブタスクの事前選択ノード1の利用可能なディスク容量が2つのディスクに分布し、事前選択ノード2の利用可能なディスク容量が1つのディスクに分布すると、当該サブタスクの事前選択ノード2は事前選択ノード1よりスコアが高い。別の例において、計算集約型タスクの場合は、一般に、計算性能の高いノードのスコアは、計算性能の弱いノードのスコアより高い。例えば、サブタスクの事前選択ノード1のプロセッサが1つのプロセッサコアを含み、当該サブタスクの事前選択ノード2のプロセッサが2つのプロセッサコアを含むと、当該サブタスクの事前選択ノード2は事前選択ノード1よりスコアが高い。 For example, in the case of a communication-intensive task, it is desirable to reduce the number of target nodes as much as possible to reduce the communication cost between subtasks. Nodes that do have a higher score than nodes with distributed resources. For example, if the available disk capacity of preselected node 1 of a subtask is distributed over two disks and the available disk capacity of preselected node 2 is distributed over one disk, then preselected node 2 of that subtask is preselected Higher score than node 1. In another example, for computationally intensive tasks, nodes with high computational performance generally score higher than those with low computational performance. For example, if the processor of preselection node 1 of the subtask contains one processor core and the processor of preselection node 2 of the subtask contains two processor cores, preselection node 2 of the subtask will score more than preselection node 1. is high.

上記のプロセスではサブタスクをリソース割り当ての対象とする例で説明している。いくつかの実施例において、前記タスクの複数のサブタスクを少なくとも1つのグループに分割してもよく、ただし、各グループは前記複数のサブタスクの少なくとも1つのサブタスクを含み、前記タスクの少なくとも1つのグループの各グループに、それぞれ対応するターゲットノードを割り当て、ただし、同じグループの各サブタスクは同じターゲットノードに割り当てられる。 In the above process, an example is given in which subtasks are subject to resource allocation. In some embodiments, a plurality of sub-tasks of said task may be divided into at least one group, wherein each group includes at least one sub-task of said plurality of sub-tasks; Each group is assigned a corresponding target node, provided that each subtask in the same group is assigned to the same target node.

グループの数量はタスクの要求するノードの数量と同じであってもよく、即ち、タスクの複数のサブタスクをNのターゲットノードに割り当てる場合に、当該タスクの複数のサブタスクをNのグループに分割する。各グループのサブタスクの数量は同じであってよいし、異なってもよい。例えば、複数のサブタスクをランダムに割り当て、又は優先度の近いサブタスクを1つのグループに分割し、又は依存関係があるもしくはないサブタスクを1つのグループに分割し、又は要求するリソース数量の差の大きいサブタスクを1つのグループに分割し、又は要求するリソースタイプが同じサブタスクを1つのグループに分割するなどであり、本開示の実施例ではグループ分割の方式について具体的に限定しない。このようにして、グループを単位としてターゲットノードを決定すると、タスクの実行効率に大きな影響を与えることなく、リソース割り当てプロセスの効率を向上させることができる。 The number of groups may be the same as the number of nodes required by the task, i.e., when assigning multiple subtasks of a task to N target nodes, divide the multiple subtasks of the task into N groups. The number of subtasks in each group can be the same or different. For example, assign multiple subtasks at random, divide subtasks with similar priorities into one group, divide subtasks with or without dependencies into one group, or subtasks with large differences in required resource quantities. are divided into one group, or subtasks that require the same resource type are divided into one group, and the embodiments of the present disclosure do not specifically limit the method of group division. Determining target nodes on a group-by-group basis in this manner can improve the efficiency of the resource allocation process without significantly impacting the efficiency of task execution.

いくつかの実施例において、前記タスクのタスクタイプに基づいて前記タスクの複数のサブタスクを少なくとも1つのグループに分割する。例えば、通信集約型タスクの場合は、前記タスクの複数のサブタスクを最小数のターゲットノードに割り当てることで、サブタスク間の通信コストを低減できる。例えば、複数のサブタスクの全てのサブタスクを同じグループに分割することで、全てのサブタスクは同じターゲットノードにおいて実行される。オプションとしていくつかの例において、前記タスクの複数のサブタスクのリソース要求情報に基づいて、前記タスクの複数のサブタスクの要求する総ノード数量を決定し、前記総ノード数量に基づいて、前記タスクの複数のサブタスクを少なくとも1つのグループに分割する。別の例として、計算集約型タスクの場合は、前記タスクの複数のサブタスクの各サブタスクを1つのグループとして、つまり、サブタスクを単位としてターゲットノードを決定する。 In some embodiments, subtasks of the task are divided into at least one group based on a task type of the task. For example, in the case of a communication-intensive task, subtasks of the task can be assigned to a minimum number of target nodes to reduce communication costs between subtasks. For example, by dividing all subtasks of a plurality of subtasks into the same group, all subtasks are executed on the same target node. Optionally, in some examples, determining a total node quantity required of a plurality of subtasks of the task based on resource requirement information of a plurality of subtasks of the task; subtasks into at least one group. As another example, in the case of a computation-intensive task, each subtask of a plurality of subtasks of the task is grouped into a group, that is, the target node is determined in units of subtasks.

例えば、1つのタスクが4つのサブタスクを含み、各サブタスクは1つのGPUを要求し、分散システムの各ノードの利用可能なGPUの数量は2つであると仮定すると、前記タスクの4つのサブタスクを実行するには少なくとも2つのノードを要求する。したがって、当該タスクが通信集約型タスクであると、当該4つのサブタスクを均等に2つのグループに分割してもよく、ただし、グループ分割をランダムに行ってもよいし、又はサブタスクのリソース要求情報などに基づいて行ってもよい。当該タスクが計算集約型タスクであると、当該4つのサブタスクを4つのグループに分割し、各サブタスクを1つのグループとしてもよい。 For example, assuming that one task contains four subtasks, each subtask requires one GPU, and the quantity of available GPUs in each node of the distributed system is two, then the four subtasks of said task are: Requires at least two nodes to run. Therefore, if the task is a communication-intensive task, the four subtasks may be evenly divided into two groups, but the grouping may be done randomly, or the resource requirement information of the subtasks, etc. can be done on the basis of If the task is a computationally intensive task, the four subtasks may be divided into four groups, each subtask being one group.

グループに分割する場合に、オプションとして、上記のサブタスクのターゲットノードの決定は、グループのターゲットノードの決定にも適用され、以下、詳しく説明する。 In the case of division into groups, optionally, the determination of the target nodes of the subtasks above also applies to the determination of the target nodes of the groups, which will be explained in detail below.

例えば、いくつかの実施例において、前記タスクの少なくとも1つのグループの各グループにいずれも対応するターゲットノードがある場合には、分散システムの現在利用可能なリソースが前記タスクの複数のサブタスクの要求する総リソースを満たすと決定する。別のいくつかの実施例において、前記タスクの少なくとも1つのグループに対応するターゲットノードがない場合には、分散システムの現在利用可能なリソースが前記タスクの複数のサブタスクの要求する総リソースを満たさないと決定する。 For example, in some embodiments, if each group of at least one group of the task has a corresponding target node, the currently available resources of the distributed system demand multiple subtasks of the task. Decide to meet total resources. In some other embodiments, if there are no target nodes corresponding to at least one group of said task, the currently available resources of the distributed system do not meet the total resource requirements of the plurality of subtasks of said task. and decide.

別の例として、前記分散システムの現在リソース状態情報と前記少なくとも1つのグループの各グループのリソース要求情報とに基づいて、特定の順序に従って前記少なくとも1つのグループの各グループにターゲットノードを順次決定する。グループのリソース要求情報は、グループに含まれる少なくとも1つのサブタスクのリソース要求情報に基づいて決定されてもよく、例えば、グループの要求するリソースは、グループに含まれる全てのサブタスクの要求する同じタイプのリソースの和である。オプションとして、前記特定の順序は、前記複数のグループの優先度及び依存関係のうちの少なくとも1つ、又は他の要因に基づいて決定される。グループの優先度はグループに含まれる2つ以上のサブタスクの優先度に基づいて決定されてもよく、例えば、グループの優先度を2つの以上のサブタスクの最高の優先度として決定し、又はグループの優先度を2つ以上のサブタスクの優先度の平均として決定するなどである。グループ間の依存関係は異なるグループに含まれるサブタスク間の依存関係に基づいて決定されてもよく、例えば、グループ1の1つのサブタスクがグループ2の1つのサブタスクに依存すると仮定すると、グループ1がグループ2に依存すると決定する、などであるが、本開示の実施例はそれに限定されない。 As another example, based on current resource status information of the distributed system and resource request information of each group of the at least one group, sequentially determine a target node for each group of the at least one group according to a specific order. . The resource requirement information of the group may be determined based on the resource requirement information of at least one subtask included in the group, for example, the resources required by the group are of the same type required by all subtasks included in the group. sum of resources. Optionally, said particular order is determined based on at least one of priorities and dependencies of said plurality of groups, or other factors. The priority of the group may be determined based on the priorities of the two or more subtasks included in the group, for example determining the priority of the group as the highest priority of the two or more subtasks, or such as determining the priority as the average of the priorities of two or more subtasks. Dependencies between groups may be determined based on dependencies between subtasks included in different groups, e.g., suppose one subtask in group 1 depends on one subtask in group 2, then group 1 is group 2, etc., although embodiments of the present disclosure are not so limited.

いくつかの実施例において、前記分散システムの現在リソース状態情報と各グループのリソース要求情報とに基づいて、前記各グループの事前選択ノード集合を決定し、各グループの事前選択ノード集合から前記グループのターゲットノードを所定の順序に従って順次決定する。 In some embodiments, determining a preselected node set for each group based on current resource status information of the distributed system and resource request information for each group, and determining the preselected node set for each group from the preselected node set for the group. Target nodes are sequentially determined according to a predetermined order.

本開示の実施例では、まずタスク全体に対してターゲットノードを決定し、例えば、上記の事前選択及び最適選択プロセスを実行し、最終的にタスク全体に対応するターゲットノードの情報を得、その後、タスクをサブタスクレベルに分割してバインドさせ、即ちサブタスクを単位としてターゲットノードのバインドを行う。 In an embodiment of the present disclosure, first determine the target node for the entire task, for example, perform the above preselection and optimal selection process, finally obtain the information of the target node corresponding to the entire task, and then Tasks are divided into subtask levels and bound, that is, target nodes are bound on a subtask basis.

いくつかの実施例において、分散システムの現在利用可能なリソースが前記タスクの複数のサブタスクの要求する総リソースを満たさない場合に、又は、前記複数のサブタスクの少なくとも1つのサブタスクに対応するターゲットノードを決定することに成功しなかった場合に、前記タスクに含まれる複数のサブタスクの全てに対して遅延割り当てを行う。前記遅延割り当ては、次の割り当て周期において前記タスクに含まれる複数のサブタスクを割り当てることであってもよい。次の割り当て周期には、分散システムの現在利用可能なリソースが前記タスクの複数のサブタスクの要求する総リソースを満たす場合にのみ、前記タスクに含まれる複数のサブタスクに、それぞれ対応するターゲットノードを割り当てる。次の割り当て周期に分散システムの現在利用可能なリソースがなおも前記タスクの複数のサブタスクの要求する総リソースを満たさない場合、引き続き遅延割り当てを行う。 In some embodiments, the target node corresponding to at least one subtask of the plurality of subtasks, or when the currently available resources of the distributed system do not meet the total resource requirements of the plurality of subtasks of the task. If the determination is unsuccessful, a delayed assignment is made to all of the subtasks included in the task. Said delayed allocation may be to allocate a plurality of subtasks included in said task in the next allocation cycle. In the next allocation cycle, subtasks of said task are assigned respective target nodes only if the currently available resources of the distributed system satisfy the total resource requirements of the subtasks of said task. . If the currently available resources of the distributed system still do not meet the total resource requirements of the multiple subtasks of the task in the next allocation period, then the delayed allocation continues.

いくつかの実施例において、サブタスク又はグループに対応するターゲットノードが決定するたびに、現在のサブタスク又はグループに対応するターゲットノードへの仮想の割り当て、又は現在のサブタスク又はグループに対応するターゲットノード上のリソースへの仮想のバインドを行う。分散システムの現在利用可能なリソースが前記タスクの複数のサブタスクの要求する総リソースを満たさないと決定する場合に、例えば、あるサブタスクに対応するターゲットノードが見つからない場合に、上記の仮想の割り当て又は仮想のバインドを無効と見なし、これによって対応するターゲットノードとそのリソースを他のタスクに割り当てることができる。 In some embodiments, each time a target node corresponding to a subtask or group is determined, a virtual assignment to the target node corresponding to the current subtask or group, or a virtual assignment on the target node corresponding to the current subtask or group Make virtual bindings to resources. The above virtual allocation or A virtual binding is considered invalid, so that the corresponding target node and its resources can be assigned to other tasks.

いくつかの実施例において、前記タスクに含まれる複数のサブタスクに、それぞれ対応するターゲットノードを割り当てた後、前記タスクの複数のサブタスクを同期的にスケジューリングする。 In some embodiments, after assigning respective target nodes to the subtasks of the task, the subtasks of the task are synchronously scheduled.

なお、本開示の実施例では、割り当てとは、サブタスクを対応するターゲットノードに配ることであり、スケジューリングとは、サブタスクを対応するターゲットノードに配った後、対応するターゲットノードがサブタスクを実行することである。 It should be noted that, in the embodiments of the present disclosure, allocation means handing out the subtasks to the corresponding target nodes, and scheduling means that the corresponding target nodes execute the subtasks after handing the subtasks to the corresponding target nodes. is.

図4に示すように、従来のスケジューリング方法で、ギャングスケジューリング(gang scheduling)を実現するために、スケジューラが順番どおりタスクの複数のサブタスクを処理し、1つのサブタスクがスケジューリング(本開示の実施例で説明するシミュレーション割り当てではなく)できると、直ちに当該サブタスクを対応するターゲットノードに実際に割り当て、ターゲットノード上のリソースを使用して当該サブタスクのスケジューリングを行う。1つのタスクについて、当該タスクの各サブタスクを割り当てる時、現在利用可能なリソースが動的に変化し、漸次減少していくもので、このようなスケジューリング方法をタスクバイタスク(task by task)スケジューリング方法と呼ぶ。さらに、サブタスクのスケジューリングを行う時に、同じタスクの複数のサブタスクのスケジューリング状況とリソース要求を総合的に考慮していないため、各回の割り当てが独立的な挙動である。しかし実際には、同じタスク内の複数のサブタスク間に何らかの関連性があることが多く、例えば、スケジューリングすべきタスクには一般に多くの通信が要求され、1つのタスクの一部のサブタスクが通信オーバーヘッドの大きい複数のノードに割り当てられると、タスク全体の実行効率に大きな影響を与えることになる。 As shown in FIG. 4, in the conventional scheduling method, to realize gang scheduling, the scheduler processes multiple subtasks of a task in order, and one subtask is scheduled (in the embodiment of the present disclosure, As soon as possible (rather than simulated assignment as described), the subtask is actually assigned to the corresponding target node and the resources on the target node are used to schedule the subtask. When assigning each subtask of a task to a task, the currently available resources dynamically change and gradually decrease. Such a scheduling method is called a task-by-task scheduling method. call. Moreover, when scheduling subtasks, the scheduling situations and resource requirements of multiple subtasks of the same task are not comprehensively considered, so each assignment is an independent behavior. However, in practice, there is often some relationship between multiple subtasks within the same task. If it is assigned to multiple nodes with large values, it will greatly affect the execution efficiency of the entire task.

本開示の実施例ではタスクを粒度としてサブタスクの割り当て及びスケジューリングを行う。図5に示すように、まずはなおも優先度で全てのタスクを取得し、各タスクについては、タスクの全体を総合的に考慮し、分散システムの現在利用可能なリソースがタスクの複数のサブタスクの要求する総リソースを満たす場合にのみ、前記タスクに含まれる複数のサブタスクに、それぞれ対応するターゲットノードを割り当て、その後、前記複数のサブタスクを同期的にスケジューリングし、即ちタスクを単位としてリソースの割り当て及びスケジューリングを行う。 In the embodiments of the present disclosure, subtasks are assigned and scheduled using tasks as granularity. As shown in FIG. 5, we first get all the tasks still by priority, and for each task we consider the entirety of the task holistically, and determine if the currently available resources of the distributed system are of the multiple subtasks of the task. Allocating each of the sub-tasks in the task to their corresponding target nodes only if the total required resources are met, and then synchronously scheduling the sub-tasks, i.e. resource allocation and task-by-task unit. Do scheduling.

これまでのサブタスクの要求に基づくタスクバイタスク(task by task)スケジューリング方法とは異なり、本開示の実施例ではタスクにノードを選択する際にタスク全体を総合的に考慮しており、タスク全体をスケジューリングの最小単位とすることにより、タスク内の各サブタスクの相互関係及び要求状況をより適切に利用して、タスク全体に対してより適したスケジューリングノードをクラスタから選択することにより、タスクの実行効率とクラスタのリソース利用効率を向上させることができる。 Unlike previous task-by-task scheduling methods based on subtask requirements, embodiments of the present disclosure consider the entire task holistically when selecting nodes for a task. By using the minimum unit of scheduling, the interrelationships and requirements of each subtask within a task can be better utilized, and task execution efficiency can be improved by selecting a more suitable scheduling node for the entire task from the cluster. And can improve the resource utilization efficiency of the cluster.

図6は、本開示のいくつかの実施例のスケジューリングのロジックの模式図を示す。スケジューリングの複雑さを低減するために、スケジューリングすべき各タスクについて以下のとおり仮定する。
(1)各タスクは、複数のサブタスクを含む。
(2)各サブタスクは、リソース要求が同質であり、即ちリソースの要求が同じである。
(3)各ユーザーが提出するタスクは、提出時に各サブタスクのリソースの要求量を指定しており、タスク全体の処理過程でサブタスクの数量と各サブタスクのリソースの要求量は変わらない。
FIG. 6 shows a schematic diagram of the scheduling logic of some embodiments of the present disclosure. To reduce the scheduling complexity, we make the following assumptions for each task to be scheduled.
(1) Each task includes multiple subtasks.
(2) Each subtask is homogeneous in resource requirements, i.e., has the same resource requirements.
(3) When each user submits a task, the requested resource amount of each subtask is specified at the time of submission, and the number of subtasks and the requested resource amount of each subtask do not change during the entire process of task processing.

まず事前選択プロセスを行って、ユーザーのタスクを満たさないノードを排除する。具体的には、以下のステップを含む。
(1)タスクの各サブタスクに対して、前記分散システムの現在リソース状態情報と各サブタスクのリソース要求情報とに基づいて、当該サブタスクの事前選択ノード集合をそれぞれ決定してもよい。当該サブタスクの事前選択ノード集合以外のノードは当然のことで当該サブタスクの実行をサポートすることができない。ここで、タスクをジョブ(job)と、サブタスクをtaskと呼んでもよい。異なるサブタスクの事前選択ノード集合は同じであってもよいし、異なってもよい。
First, a preselection process is performed to eliminate nodes that do not fulfill the user's task. Specifically, it includes the following steps.
(1) For each subtask of a task, based on the current resource state information of the distributed system and the resource requirement information of each subtask, preselected node sets for the subtask may be respectively determined. Nodes outside the pre-selected node-set of the sub-task are of course unable to support the execution of the sub-task. Here, a task may be called a job, and a subtask may be called a task. The preselected node-sets for different subtasks may be the same or different.

オプションとしていくつかの例において、前のサブタスクの事前選択ノード集合から、次のサブタスクの事前選択ノードを決定し、ただし、オプションとしてサブタスクの順番はサブタスクの優先度に基づいて決定される。例えば、分散システムがノード1からノード5を含み、1つのタスクがサブタスク1、サブタスク2及びサブタスク3を含むと仮定すると、サブタスク1に事前選択ノードを決定して、例えば、ノード1、ノード2及びノード3である。その後、ノード1、ノード2及びノード3からサブタスク2の事前選択ノードを決定して、例えば、ノード2及びノード3である。次に、ノード2及びノード3からサブタスク3の事前選択ノードを決定して、例えば、ノード3である。このような事前選択ノード集合の決定方法により、一定の通信量を要求するタスク、とりわけ通信集約型タスクである場合に、事前選択ノード集合の決定効率を向上させ、タスク割り当ての効率を向上させることができる。 Optionally, in some examples, determine the preselected nodes for the next subtask from the set of preselected nodes for the previous subtask, where optionally the order of the subtasks is determined based on the priority of the subtasks. For example, assuming a distributed system includes nodes 1 through 5, and a task includes subtask 1, subtask 2, and subtask 3, determine the preselected nodes for subtask 1, e.g., node 1, node 2, and subtask 3. It is node 3. Then, determine the preselected nodes for subtask 2 from node 1, node 2, and node 3, eg, node 2 and node 3. Next, determine the preselected node for subtask 3 from nodes 2 and 3, for example node 3. To improve the efficiency of determining a preselected node set and the efficiency of task assignment in the case of a task requiring a certain amount of communication, especially a communication-intensive task, by such a method of determining a preselected node set. can be done.

(2)事前選択ノード集合の各事前選択ノードを検証して、当該事前選択ノード上の総リソースが、当該事前選択ノードに割り当てられた全てのサブタスクの総リソース要求を満たすかどうかを決定する。満たす場合に、最適選択プロセスを行い、そうでなければ、改めて事前選択プロセスを行う。 (2) verifying each preselected node of the preselected node-set to determine if the total resources on that preselected node satisfy the total resource requirements of all subtasks assigned to that preselected node; If yes, perform the optimal selection process, otherwise perform the pre-selection process again.

当該ステップはオプションで、事前選択ノードの検証でタスク割り当ての全体的な信頼性を向上させることができる。事前選択プロセスを行う前に、ノード集合の分割を行い、即ち、各ノードをグループに分割してもよく、グループ分割の基準はノードの属するクラスタであってもよく、即ち、異なるクラスタ上のノードを異なるグループに分割する。ノード集合の分割を行うと、異なるタスクは特定のグループのノードに割り当てられる。 This step is optional and verification of preselected nodes can improve the overall reliability of task assignment. Before performing the pre-selection process, the node set may be split, i.e. each node may be split into groups, and the basis for group splitting may be the cluster to which the node belongs, i.e. nodes on different clusters. into different groups. With node-set partitioning, different tasks are assigned to specific groups of nodes.

その後、最適選択プロセスを行って、ユーザーのタスクに最適なターゲットノードを選択する。具体的には、以下のステップを含んでもよい。
(1)ユーザーのタスクにおけるユーザー提供の情報とスケジューラの過去の経験とから、タスクのトレーニング過程の計算量及び通信量を得て、計算量と通信量とに基づいてユーザーのタスクが計算集約型かそれとも通信集約型かを判断する。
A best fit selection process is then performed to select the best target node for the user's task. Specifically, the following steps may be included.
(1) from the information provided by the user and the past experience of the scheduler in the user's task, the computational complexity and communication complexity of the task training process are obtained, and the user's task is computationally intensive based on the computational complexity and communication complexity; or communication-intensive type.

オプションとしていくつかの例において、タスクタイプの決定は上記の事前選択プロセス中に又は事前選択プロセスの前に実行されてもよく、タスクタイプに基づいてサブタスクの事前選択ノード集合を決定する。 Optionally, in some examples, task type determination may be performed during or prior to the preselection process described above, determining a preselected node-set for subtasks based on task type.

オプションとしていくつかの例において、タスクタイプに基づいて、最適選択プロセスで複数のサブタスクのターゲットノードを決定する。通信集約型タスクである場合、当該タスクを最小数の物理ノード(即ちターゲットノード)に配置し(割り当て)、具体的には、割り当てられる物理ノードの数量は、ノードの利用可能なリソースとタスクの要求するリソースとの両方から決定され、上記の配置要件を満たさないと、タスクの複数のサブタスクの全てに対して遅延割り当てを行う。計算集約型タスクである場合、上記の配置制約を緩和して、物理ノードが最も少ないことを満たさなくても、タスクの要求を満たす十分なリソースを持つノードが選択できれば割り当てを行い、そうでなければ遅延割り当てを行う。 Optionally, in some examples, the optimal selection process determines target nodes for multiple subtasks based on task type. If it is a communication-intensive task, place (assign) the task on the minimum number of physical nodes (i.e. target nodes), specifically, the quantity of physical nodes assigned depends on the available resources of the nodes and the task. If the above placement requirements are not met, all of the multiple subtasks of the task are subject to delayed allocation. If it is a computationally intensive task, relax the above placement constraint to allocate if a node with sufficient resources to satisfy the task request can be selected without meeting the fewest physical nodes, otherwise lazy allocation.

(2)クラスタノードを余剰のリソースに応じて大から小までにスコアリングしてソートし、事前選択ノード集合からタスクへのマッピングのスコアを得、事前選択ノードのスコアは分散システムのクラスタのノード負荷とノードリソース断片化状況とに基づいて決定されてもよい。ノード負荷とは、クラスタの各ノードにおける、現時点で利用可能なリソース総量とリソースの使用量である。リソース断片化状況とは、ノード上のリソースの分布である。 (2) Scoring and sorting the cluster nodes from large to small according to the surplus resources to obtain the score of the mapping from the set of preselected nodes to the task, and the score of the preselected nodes is the node of the cluster of the distributed system. It may be determined based on load and node resource fragmentation conditions. The node load is the total amount of available resources and the amount of resource usage at each node of the cluster at present. A resource fragmentation situation is the distribution of resources on a node.

(3)前記ステップで選択した全てのノードについて、配置できないか、又はジョブ内の全てのタスクが配置されるまで、スコアの高い順(高スコアから低スコアの順)にジョブのtaskを順次配置する。 (3) For all the nodes selected in the above step, sequentially place the tasks of the job in descending order of score (from high score to low score) until they cannot be placed or all tasks in the job are placed. do.

(4)タスクの状態をチェックする。ジョブには配置されていない余剰のtaskがある場合、クラスタリソースが不十分であり、割り当てに失敗することを示す。タスクが占有しているリソースを解放して、遅延割り当てを行う。ジョブ(job)に余剰のtaskがなく、しかもタスクタイプが通信集約型である場合、最小ノード数の要求を満たすかどうかを判断する。満たすと、割り当てに成功し、満たさないと、割り当てに失敗し、リソースを解放して遅延割り当てを行う。 (4) Check the state of the task. If a job has extra tasks that are not placed, it indicates insufficient cluster resources and failed allocation. Release the resource occupied by the task and perform delayed allocation. If there are no surplus tasks in the job (job) and the task type is communication-intensive, it is determined whether the minimum number of nodes is satisfied. If satisfied, the allocation succeeds; if not satisfied, the allocation fails, frees the resource and performs a delayed allocation.

本開示の実施例の方法はタスクスケジューリングシステム又はクラウドプラットフォームに適用され、前記タスクスケジューリングシステムはクバネティス(Kubernetes)などのプラットフォームに基づいて実現されてもよい。 The methods of embodiments of the present disclosure are applied to task scheduling systems or cloud platforms, and the task scheduling systems may be implemented based on platforms such as Kubernetes.

当業者が理解できるように、前記方法の具体的な実施形態では、各ステップが特定の順序に記載されているものの、当該順番での実行が必須で実施が限定されるものではなく、各ステップの実行の順番はその機能及び内部のロジックによって決定される。 As can be appreciated by those skilled in the art, in specific embodiments of the method, although the steps are described in a particular order, execution in that order is not essential and is not limiting, and each step is determined by its function and internal logic.

図7に示すように、本開示の実施例では、
タスク情報を取得するための取得モジュールであって、前記タスク情報は前記タスクのタスクタイプ及び前記タスクのリソース要求情報のうちの少なくとも一方を含む取得モジュール701と、
前記タスク情報に基づいて、前記タスクに含まれる複数のサブタスクに、それぞれ対応するターゲットノードを割り当てるための第1割り当てモジュール702とを含むタスクスケジューリング装置がさらに提供される。
As shown in FIG. 7, in an embodiment of the present disclosure,
an obtaining module 701 for obtaining task information, the task information including at least one of a task type of the task and resource requirement information of the task;
A task scheduling apparatus is further provided comprising a first allocation module 702 for allocating respective target nodes to a plurality of subtasks included in the task based on the task information.

いくつかの実施例において、前記タスクのリソース要求情報は前記タスクに含まれる複数のサブタスクのリソース要求情報であり、当該第1割り当てモジュール702は、さらに、分散システムの現在利用可能なリソースが前記タスクの複数のサブタスクのリソース要求情報に対応する総リソースを満たす場合に、前記タスクに含まれる複数のサブタスクに、それぞれ対応するターゲットノードを割り当てるために用いられる。 In some embodiments, the resource requirement information of the task is resource requirement information of a plurality of subtasks included in the task, and the first allocation module 702 further determines that the currently available resources of the distributed system are the task is used to allocate corresponding target nodes to a plurality of sub-tasks included in the task, respectively, if the total resource corresponding to the resource requirement information of the plurality of sub-tasks in the task is satisfied.

いくつかの実施例において、前記装置は、前記分散システムの現在リソース状態情報と前記複数のサブタスクのリソース要求情報とに基づいて、前記複数のサブタスクにターゲットノードを決定するための第1決定モジュールをさらに含み、前記第1割り当てモジュールは、前記複数のサブタスクの各サブタスクに対応するターゲットノードを決定することに成功した場合に、前記タスクに含まれる複数のサブタスクに、それぞれ対応するターゲットノードを割り当てるために用いられる。 In some embodiments, the apparatus comprises a first determining module for determining target nodes for the plurality of subtasks based on current resource state information of the distributed system and resource request information of the plurality of subtasks. Further comprising, the first assignment module for assigning a respective target node to a plurality of subtasks included in the task if successfully determining a target node corresponding to each subtask of the plurality of subtasks. used for

いくつかの実施例において、前記装置は、前記分散システムの現在リソース状態情報と前記複数のサブタスクのリソース要求情報とに基づいて、前記複数のサブタスクにターゲットノードを決定するための第1決定モジュールをさらに含み、前記第1割り当てモジュールは、前記複数のサブタスクの各サブタスクに対応するターゲットノードを決定することに成功した場合に、前記タスクに含まれる複数のサブタスクに、それぞれ対応するターゲットノードを割り当てるために用いられる。 In some embodiments, the apparatus comprises a first determining module for determining target nodes for the plurality of subtasks based on current resource state information of the distributed system and resource request information of the plurality of subtasks. Further comprising, the first assignment module for assigning a respective target node to a plurality of subtasks included in the task if successfully determining a target node corresponding to each subtask of the plurality of subtasks. used for

いくつかの実施例において、前記第1決定モジュールは、前記分散システムの現在リソース状態情報と前記複数のサブタスクのリソース要求情報とに基づいて、複数のサブタスクに対応するターゲットノードを特定の順序に従って順次決定するために用いられる。 In some embodiments, the first determining module sequentially selects target nodes corresponding to a plurality of subtasks according to a specific order based on current resource state information of the distributed system and resource request information of the plurality of subtasks. used to determine

オプションとして一例において、前記複数のサブタスクのリソース要求情報は前記複数のサブタスクの各サブタスクのリソース要求情報を含み、ただし、前記リソース要求情報は要求するリソースタイプ及び各タイプのリソースの数量を含み、又はさらに他の情報を含む。 Optionally in one example, the resource requirement information of the plurality of sub-tasks comprises resource requirement information of each sub-task of the plurality of sub-tasks, wherein the resource requirement information comprises a requested resource type and quantity of each type of resource, or It also contains other information.

オプションとして一例において、前記分散システムの現在リソース状態情報は前記分散システムの複数のノードの現在状態情報を含み、ただし、現在状態情報はリソースが利用可能かどうか、利用可能なリソースのタイプと数量、負荷状況、トポロジ接続情報のうちの少なくとも1種を示すために用いられ、又はさらに他の情報を含む。 Optionally in one example, the current resource state information of the distributed system includes current state information of a plurality of nodes of the distributed system, wherein the current state information includes whether resources are available, the type and quantity of resources available, It may be used to indicate at least one of load status, topological connection information, or may contain other information as well.

いくつかの実施例において、前記装置は、1つのサブタスクに割り当てるターゲットノードが決定するたびに、分散システムの現在リソース状態情報を更新し、更新された現在リソース状態情報に基づいて次のサブタスクに対応するターゲットノードを決定するための更新モジュールをさらに含む。 In some embodiments, the apparatus updates current resource state information of the distributed system each time a target node to assign to a subtask is determined, and responds to the next subtask based on the updated current resource state information. further comprising an update module for determining target nodes to be updated.

いくつかの実施例において、前記複数のサブタスクのターゲットノードを順次決定する順序は、サブタスクの優先度とサブタスク間の依存関係とのうちの少なくとも1つから得られる。 In some embodiments, the order of sequentially determining target nodes of the plurality of subtasks is derived from at least one of priority of subtasks and dependencies between subtasks.

いくつかの実施例において、前記第1決定モジュールは、前記分散システムの現在リソース状態情報と前記複数のサブタスクのリソース要求情報とに基づいて、前記複数のサブタスクにターゲットノードを順次決定するための第1決定ユニットと、1つのサブタスクのターゲットノードが決定するたびに、前記1つのサブタスクのリソース要求情報に基づいて、前記分散システムの現在リソース状態情報を更新するための更新ユニットとを含む。 In some embodiments, the first determining module is configured to sequentially determine target nodes for the plurality of subtasks based on current resource state information of the distributed system and resource request information of the plurality of subtasks. a determining unit; and an updating unit for updating current resource state information of the distributed system based on the resource requirement information of the one subtask each time the target node of the one subtask is determined.

いくつかの実施例において、前記装置は、前記複数のサブタスクの少なくとも1つのサブタスクに対応するターゲットノードを決定することに成功しなかった場合に、前記分散システムの現在利用可能なリソースが前記複数のサブタスクの各サブタスクの要求するリソースを満たさないと決定するための第2決定モジュールをさらに含む。 In some embodiments, if the apparatus fails to successfully determine a target node corresponding to at least one subtask of the plurality of subtasks, the currently available resources of the distributed system are reduced to the plurality of subtasks. Further comprising a second decision module for determining that the resource requirements of each subtask of the subtasks are not met.

いくつかの実施例において、前記第1決定ユニットは、前記分散システムの現在リソース状態情報と前記複数のサブタスクのリソース要求情報とに基づいて、前記複数のサブタスクの各サブタスクの事前選択ノード集合を決定するための決定サブユニットと、前記複数のサブタスクの各サブタスクの事前選択ノード集合から前記各サブタスクのターゲットノードを選択するための選択サブユニットとを含む。 In some embodiments, the first determining unit determines a preselected node set for each subtask of the plurality of subtasks based on current resource state information of the distributed system and resource request information of the plurality of subtasks. and a selection subunit for selecting a target node for each subtask from a preselected node set for each subtask of the plurality of subtasks.

異なるサブタスクの事前選択ノード集合は同じであってもよいし、異なってもよい。いくつかの例において、複数のサブタスクは同じ事前選択ノード集合を有する。 The preselected node-sets for different subtasks may be the same or different. In some examples, multiple subtasks have the same preselected node-set.

いくつかの実施例において、前記決定サブユニットは、前記分散システムの現在リソース状態情報と各サブタスクのリソース要求情報とに基づいて、前記各サブタスクの事前選択ノード集合を決定するために用いられる。 In some embodiments, the determining subunit is used to determine a preselected node set for each subtask based on current resource status information of the distributed system and resource requirement information for each subtask.

複数のサブタスクの事前選択ノード集合の決定は独立的で、互いに依存関係のないものであってもよく、例えば、並行して実行し又は任意の順番で実行する。例えば、複数のサブタスクの事前選択ノード集合は同じ分散システムの現在リソース状態情報に基づいて決定され、つまり、分散システムの現在リソース状態情報は事前選択の過程で更新されない。例えば、各サブタスクの事前選択ノード集合の決定は自らのリソース要求情報にしか関係がなく、他のサブタスクのリソース要求情報とは無関係である。 The determination of preselected node-sets for multiple sub-tasks may be independent and independent of each other, eg, executed in parallel or in any order. For example, the preselection node-sets of multiple subtasks are determined based on the same distributed system's current resource state information, ie, the distributed system's current resource state information is not updated during the preselection process. For example, the determination of each subtask's preselected node set is only related to its own resource requirement information and is independent of the resource requirement information of other subtasks.

いくつかの実施例において、前記決定サブユニットは、前記複数のサブタスクの各サブタスクの事前選択ノード集合を特定の順序に従って順次決定するために用いられ、ただし、前記複数のサブタスクの第1サブタスクの事前選択ノード集合の事前選択ノードは前記複数のサブタスクの第2サブタスクの事前選択ノード集合から選択され、ただし、前記第2サブタスクの順位は前記第1サブタスクの前に位置する。 In some embodiments, the determining subunit is used to sequentially determine a preselected node set for each subtask of the plurality of subtasks according to a specific order, provided that the preselected node set for a first subtask of the plurality of subtasks is determined sequentially. A pre-selected node of a selected node-set is selected from a pre-selected node-set of a second sub-task of said plurality of sub-tasks, wherein said second sub-task precedes said first sub-task in rank.

いくつかの実施例において、前記複数のサブタスクの各サブタスクの事前選択ノードから前記各サブタスクのターゲットノードを特定の順序に従って順次選択し、ただし、前記複数のサブタスクの第2サブタスクのターゲットノードを前記複数のサブタスクの第1サブタスクのターゲットノードとして優先的に選択し、ただし、前記第2サブタスクの順位は前記第1サブタスクの前に位置する。 In some embodiments, sequentially selecting a target node of each of said sub-tasks from a pre-selected node of each sub-task of said plurality of sub-tasks according to a specific order, provided that a target node of a second sub-task of said plurality of sub-tasks is selected from said plurality of sub-tasks. is preferentially selected as the target node of the first subtask of the subtask of , but the rank of said second subtask is positioned before said first subtask.

いくつかの実施例において、前記選択サブユニットは、前記分散システムの現在リソース状態情報に基づいて、前記複数のサブタスクの第1サブタスクの事前選択ノード集合から前記第1サブタスクのターゲットノードを決定し、前記第1サブタスクのリソース要求情報に基づいて、前記分散システムの現在リソース状態情報を更新し、前記分散システムの更新された現在リソース状態情報に基づいて、前記複数のサブタスクの第2サブタスクの事前選択ノード集合から前記第2サブタスクのターゲットノードを決定するために用いられる。 In some embodiments, the selection subunit determines a target node of the first subtask from a preselected node set of a first subtask of the plurality of subtasks based on current resource state information of the distributed system; updating current resource state information of the distributed system based on the resource request information of the first subtask; and preselecting a second subtask of the plurality of subtasks based on the updated current resource state information of the distributed system. It is used to determine the target node of the second subtask from the node set.

オプションとして一例において、第1サブタスクの事前選択ノード集合の各事前選択ノードの現在状態情報に基づいて、前記第1サブタスクの事前選択ノード集合から前記第1サブタスクのターゲットノードを決定し、前記第1サブタスクのリソース要求情報に基づいて、前記第1サブタスクのターゲットノードの現在状態情報を更新する。 Optionally in one example, determining a target node of the first subtask from the preselected node-set of the first subtask based on current state information of each preselected node of the preselected nodeset of the first subtask; Update the current state information of the target node of the first subtask according to the resource requirement information of the subtask.

いくつかの実施例において、前記選択サブユニットは、前記タスクのタスクタイプに基づいて、各サブタスクの事前選択ノード集合に含まれる事前選択ノードのスコアを決定し、各サブタスクの事前選択ノード集合に含まれる事前選択ノードのスコアに基づいて、前記各サブタスクの事前選択ノード集合から前記各サブタスクのターゲットノードを選択するために用いられる。 In some embodiments, the selection subunit determines a score of preselected nodes included in each subtask's preselected node-set based on the task type of the task; is used to select a target node for each subtask from a set of preselected nodes for each subtask based on the score of the preselected nodes.

オプションとして一例において、前記タスクのタスクタイプに基づいて、前記事前選択ノード集合の各事前選択ノードのスコア決定方式を決定する。 Optionally, in one example, determining a scoring scheme for each preselected node of the preselected node-set based on the task type of the task.

いくつかの実施例において、前記装置は、前記タスクのタスクタイプを決定するための第3決定モジュールをさらに含み、ただし、前記複数のサブタスクに対応するターゲットノードは前記タスクのタスクタイプに基づいて決定される。 In some embodiments, the apparatus further includes a third determining module for determining a task type of the task, wherein target nodes corresponding to the plurality of subtasks are determined based on the task type of the task. be done.

いくつかの実施例において、前記第1割り当てモジュールは、前記タスクの複数のサブタスクを少なくとも1つのグループに分割するためのグループ分割ユニットであって、各グループは前記複数のサブタスクの少なくとも1つのサブタスクを含むグループ分割ユニットと、前記少なくとも1つのグループの各グループに、それぞれ対応するターゲットノードを割り当てるための割り当てユニットであって、同じグループの各サブタスクは同じターゲットノードに割り当てられる割り当てユニットとを含む。 In some embodiments, the first allocation module is a group dividing unit for dividing a plurality of subtasks of the task into at least one group, each group dividing at least one subtask of the plurality of subtasks. and an allocation unit for allocating each group of the at least one group with a respective target node, wherein each subtask of the same group is allocated to the same target node.

いくつかの実施例において、前記グループ分割ユニットは、前記タスクのタスクタイプに基づいて、前記タスクの複数のサブタスクを少なくとも1つのグループに分割するために用いられる。 In some embodiments, the group dividing unit is used to divide a plurality of subtasks of the task into at least one group based on a task type of the task.

いくつかの実施例において、前記タスクのタスクタイプは計算集約型又は通信集約型である。 In some embodiments, the task type of the task is computationally intensive or communication intensive.

いくつかの実施例において、前記グループ分割ユニットは、前記タスクのタスクタイプが通信集約型である場合に、前記タスクの複数のサブタスクのリソース要求情報に基づいて、前記複数のサブタスクの要求する総ノード数量を決定し、前記総ノード数量に基づいて、前記タスクの複数のサブタスクを少なくとも1つのグループに分割するために用いられる。 In some embodiments, when the task type of the task is a communication-intensive type, the grouping unit, based on resource request information of the plurality of subtasks of the task, A quantity is determined and used to divide a plurality of subtasks of the task into at least one group based on the total node quantity.

いくつかの実施例において、前記タスクのタスクタイプが計算集約型である場合に、前記複数のサブタスクの各サブタスクを1つのグループとする。 In some embodiments, each subtask of the plurality of subtasks is a group if the task type of the task is computationally intensive.

いくつかの実施例において、前記少なくとも1つのグループの各グループにそれぞれ事前選択ノード集合を決定し、前記少なくとも1つのグループの各グループの事前選択ノード集合から前記グループのターゲットノードを順次選択する。 In some embodiments, determining a respective preselected node-set for each group of said at least one group, and sequentially selecting target nodes for said group from the preselected node-set for each group of said at least one group.

いくつかの実施例において、前記第1割り当てモジュールは、前記タスクのタスクタイプに基づいて、前記タスクの複数のサブタスクにターゲットノードを決定し、前記タスクの複数のサブタスクのそれぞれについて対応するターゲットノードを決定することに成功した場合に、前記タスクに含まれる複数のサブタスクにターゲットノードを割り当てるためにも用いられる。 In some embodiments, the first assignment module determines target nodes for multiple subtasks of the task based on a task type of the task, and assigns corresponding target nodes for each of the multiple subtasks of the task. It is also used to assign target nodes to sub-tasks included in said task if the determination is successful.

いくつかの実施例において、前記装置は、前記サブタスクの少なくとも1つのサブタスクに対応するターゲットノードを決定することに成功しなかった場合に、前記タスクの複数のサブタスクの全てに対して遅延割り当てを行うための遅延モジュールをさらに含む。 In some embodiments, the apparatus performs delayed assignment for all of a plurality of subtasks of the task if it fails to successfully determine a target node corresponding to at least one subtask of the subtask. further includes a delay module for

いくつかの実施例において、前記遅延モジュールは分散システムの現在利用可能なリソースが前記タスクの複数のサブタスクのリソース要求情報に対応する総リソースを満たさない場合に、前記タスクに含まれる複数のサブタスクの全てに対して遅延割り当てを行う。 In some embodiments, the delay module delays the execution of multiple subtasks of the task when the currently available resources of the distributed system do not meet the total resources corresponding to the resource requirement information of the multiple subtasks of the task. Lazy allocation for all.

いくつかの実施例において、前記装置は、前記タスクに含まれる複数のサブタスクに、それぞれ対応するターゲットノードを割り当てた後、前記タスクの複数のサブタスクを同期的にスケジューリングするためのスケジューリングモジュールをさらに含む。 In some embodiments, the apparatus further includes a scheduling module for synchronously scheduling a plurality of subtasks of the task after allocating respective target nodes corresponding to the plurality of subtasks included in the task. .

いくつかの実施例において、前記装置はタスクスケジューリングシステムに適用される。 In some embodiments, the apparatus is applied in a task scheduling system.

いくつかの実施例において、本開示の実施例に係る装置の備える機能又はモジュールは上記の方法実施例で説明した方法を実行するために用いることができ、その実現の詳細は上記の方法実施例の説明を参照することができ、ここで簡素化のために説明を省略する。 In some embodiments, the functions or modules provided by the apparatus according to the embodiments of the present disclosure can be used to perform the methods described in the above method embodiments, the implementation details of which are described in the above method embodiments. , and the description is omitted here for the sake of simplicity.

上記で説明した装置実施例は例示的なもので、分離するコンポーネントとして説明される前記モジュールは物理的に分離するものであってもよいし、そうでないものでもよく、モジュールとして表示するコンポーネントは物理的なモジュールであってもよいし、そうでなくてもよく、即ち同じ場所に位置してもよいし、又は複数のネットワークモジュールに分散してもよい。実際のニーズに応じて前記モジュールの一部又は全てを選択して本明細書の技術案の目的を達成することができる。当業者は新規性のある作業をしなくても、これを理解及び実施することができる。 The apparatus embodiments described above are exemplary, and the modules described as separate components may or may not be physically separate, and the components shown as modules may be physically separate. modules may or may not be static, i.e. co-located, or distributed over multiple network modules. Some or all of the modules can be selected according to actual needs to achieve the objectives of the technical solution herein. A person skilled in the art can understand and implement this without any novelty.

本明細書の装置実施例は、例えば、サーバー又は端末機器などのコンピュータデバイスに用いることができる。装置実施例はソフトウェアによって実施することができ、ハードウェア又はソフトウェアとハードウェアの組み合わせで実施することができる。ソフトウェアによる実施を例とすると、ロジック的に成り立つ装置としては、それが位置するファイルを処理するプロセッサによって不揮発性メモリ中の対応するコンピュータプログラム命令をメモリに読み取って、メモリからプロセッサに読み取って動作させることで構成される。ハードウェアレベルからみると、図8に示すように、本明細書の装置を含むコンピュータデバイスのハードウェア構造図であり、図8に示すプロセッサ801、メモリ802、ネットワークインタフェース803、及び不揮発性メモリ804の他にも、実施例の装置の位置するサーバー又は電子機器には、一般に当該コンピュータデバイスの実際の機能によって、他のハードウェアを含んでもよく、ここでその方の説明を省略する。 Apparatus embodiments herein may be used, for example, in computing devices such as servers or terminal equipment. Apparatus embodiments can be implemented in software, and can be implemented in hardware or a combination of software and hardware. Taking a software implementation as an example, a logically valid device reads into memory corresponding computer program instructions in non-volatile memory by the processor processing the file in which it resides, and causes the processor to read them from memory and act on them. It consists of From the hardware level, as shown in FIG. 8, which is a hardware structural diagram of a computer device including the apparatus of the present specification, processor 801, memory 802, network interface 803, and non-volatile memory 804 shown in FIG. In addition, the server or electronic device where the device of the embodiment is located may generally include other hardware, depending on the actual function of the computer device, and will not be described here.

そして、本開示の実施例では、コンピュータプログラムが記憶されており、当該プログラムがプロセッサによって実行されるといずれの実施例に記載の方法が実現されるコンピュータ記憶媒体がさらに提供される。 Further, embodiments of the present disclosure further provide a computer storage medium storing a computer program, which implements the method of any embodiment when the program is executed by a processor.

そして、本開示の実施例では、メモリと、プロセッサと、メモリに記憶されプロセッサにおいて動作可能なコンピュータプログラムとを含み、前記プロセッサが前記プログラムを実行するといずれの実施例に記載の方法を実施するコンピュータデバイスがさらに提供される。 And, in embodiments of the present disclosure, a computer comprising a memory, a processor, and a computer program stored in the memory and operable on the processor, wherein the processor executes the method of any embodiment when the program is executed. A device is further provided.

本開示は、プログラムコードを含む1つ又は複数の記憶媒体(ディスク型記憶装置、CD-ROM、光学記憶装置などを含み、ただしそれらに限定されない)において実施するコンピュータプログラム製品とすることができる。コンピュータ可読記憶媒体は、任意の方法又は技術で情報の記憶を実現できる永久の及び一時的な、移動可能な及び移動できない媒体を含む。情報はコンピュータ可読命令、データ構造、プログラムモジュール又は他のデータであってもよい。コンピュータの記憶媒体の例は、相変化メモリ(PRAM)、静的ランダムアクセスメモリ(SRAM)、動的ランダムアクセスメモリ(DRAM)、他のタイプのランダムアクセスメモリ(RAM)、読み取り専用メモリ(ROM)、電気的に消去可能なプログラム可能な読み取り専用メモリ(EEPROM)、フラッシュメモリ又は他のメモリ技術、光ディスク(CD-ROM)、デジタル多用途ディスク(DVD)又は他の光学記憶装置、磁気カセット、磁気テープストレージ又は他の磁気記憶機器、又は任意の他の非送信用媒体を含み、ただしそれらに限定されず、計算機器がアクセスできる情報を記憶するために用いられる。 The present disclosure can be a computer program product embodied in one or more storage media (including but not limited to disk storage devices, CD-ROMs, optical storage devices, etc.) containing program code. Computer-readable storage media includes permanent and temporary, removable and non-removable media that can be used to store information in any manner or technology. Information may be computer readable instructions, data structures, program modules, or other data. Examples of computer storage media are phase change memory (PRAM), static random access memory (SRAM), dynamic random access memory (DRAM), other types of random access memory (RAM), read only memory (ROM) , electrically erasable programmable read-only memory (EEPROM), flash memory or other memory technology, optical disc (CD-ROM), digital versatile disc (DVD) or other optical storage device, magnetic cassette, magnetic Including, but not limited to, tape storage or other magnetic storage device, or any other non-transmission medium, used to store information accessible by a computing device.

当業者がここに開示する明細書を読んでこれを実施すると、本開示の他の実施形態に想到しやすい。本開示にはその任意の変形、用途又は適応的な変更を含み、これらの変形、用途又は適応的な変更は本開示の趣旨に合致するもので、本開示には開示されていない本技術分野の周知の常識又は通常の技術的手段を含む。本明細書及び実施例は例示的なもので、本開示の範囲と趣旨は特許請求の範囲によって限定される。 Other embodiments of the present disclosure will readily occur to those skilled in the art upon reading and practicing the specification disclosed herein. The present disclosure includes any variations, uses, or adaptive changes thereof, and these variations, uses, or adaptive changes are consistent with the spirit of the present disclosure, and technical fields not disclosed in the present disclosure. well-known common sense or ordinary technical means. It is intended that the specification and examples be considered exemplary, with the scope and spirit of the disclosure being limited by the claims.

なお、本開示は上記で説明し図面に示す正確な構造には限定されず、その範囲を逸脱しなければ様々な補正と変更を行うことができる。本開示の範囲を限定するのは特許請求の範囲である。 It should be noted that this disclosure is not limited to the precise structures described above and shown in the drawings, and various modifications and changes may be made without departing from its scope. It is the claims that define the scope of the disclosure.

上記したのが本開示の好ましい実施例に過ぎず、本開示の限定にならない。本開示の趣旨を逸脱することなく任意の補正、同等な置き換え、改善などを行う場合は、そのいずれも本開示の保護範囲に含まれる。 The above are merely preferred embodiments of the present disclosure and are not intended to be limiting of the present disclosure. Any amendment, equivalent replacement, improvement, etc. without departing from the spirit of the present disclosure shall fall within the protection scope of the present disclosure.

Claims (23)

タスク情報を取得するステップであって、前記タスク情報は前記タスクのタスクタイプ及び前記タスクのリソース要求情報のうちの少なくとも一方を含むステップと、
前記タスク情報に基づいて、前記タスクに含まれる複数のサブタスクに、それぞれ対応するターゲットノードを割り当てるステップと、を含む
ことを特徴とするタスクスケジューリング方法。
obtaining task information, the task information including at least one of a task type of the task and resource requirement information of the task;
A task scheduling method, comprising: allocating respective target nodes corresponding to a plurality of subtasks included in the task based on the task information.
前記タスクのリソース要求情報は前記タスクに含まれる複数のサブタスクのリソース要求情報であり、
前記タスク情報に基づいて、前記タスクに含まれる複数のサブタスクに、それぞれ対応するターゲットノードを割り当てるステップは、
分散システムの現在利用可能なリソースが、前記タスクの複数のサブタスクのリソース要求情報に対応する総リソースを満たす場合に、前記タスクに含まれる複数のサブタスクに、それぞれ対応するターゲットノードを割り当てるステップを含む
ことを特徴とする請求項1に記載の方法。
the resource request information of the task is resource request information of a plurality of subtasks included in the task;
assigning target nodes corresponding to each of a plurality of subtasks included in the task based on the task information;
assigning respective target nodes to a plurality of subtasks included in the task when the currently available resources of the distributed system satisfy the total resources corresponding to the resource requirement information of the plurality of subtasks of the task. 2. The method of claim 1, wherein:
前記分散システムの現在リソース状態情報と前記複数のサブタスクのリソース要求情報とに基づいて、前記複数のサブタスクにターゲットノードを決定するステップをさらに含み、
前記分散システムの現在利用可能なリソースが、前記タスクの複数のサブタスクのリソース要求情報に対応する総リソースを満たす場合に、前記タスクに含まれる複数のサブタスクに、それぞれ対応するターゲットノードを割り当てるステップは、
前記複数のサブタスクの各サブタスクに対応するターゲットノードを決定することに成功した場合に、前記タスクに含まれる複数のサブタスクに、それぞれ対応するターゲットノードを割り当てるステップを含む
ことを特徴とする請求項2に記載の方法。
determining target nodes for the plurality of subtasks based on current resource state information of the distributed system and resource requirement information of the plurality of subtasks;
assigning respective target nodes to a plurality of subtasks included in the task when the currently available resources of the distributed system satisfy the total resources corresponding to the resource requirement information of the plurality of subtasks of the task; ,
3. The step of allocating respective target nodes to a plurality of subtasks included in the task when determining a target node corresponding to each subtask of the plurality of subtasks is successful. The method described in .
前記分散システムの現在リソース状態情報と前記複数のサブタスクのリソース要求情報とに基づいて、前記複数のサブタスクにターゲットノードを決定するステップは、
前記分散システムの現在リソース状態情報と前記複数のサブタスクのリソース要求情報とに基づいて、前記複数のサブタスクにターゲットノードを順次決定するステップと、
1つのサブタスクのターゲットノードが決定するたびに、前記1つのサブタスクのリソース要求情報に基づいて、前記分散システムの現在リソース状態情報を更新するステップと、を含む
ことを特徴とする請求項3に記載の方法。
determining target nodes for the plurality of subtasks based on current resource state information of the distributed system and resource requirement information of the plurality of subtasks;
sequentially determining target nodes for the plurality of subtasks based on current resource state information of the distributed system and resource request information of the plurality of subtasks;
updating current resource state information of the distributed system based on the resource requirement information of the one subtask each time a target node of a subtask is determined. the method of.
前記複数のサブタスクの少なくとも1つのサブタスクに対応するターゲットノードを決定することに成功しなかった場合に、前記分散システムの現在利用可能なリソースが前記複数のサブタスクの各サブタスクの要求するリソースを満たさないと決定する
ことを特徴とする請求項3又は4に記載の方法。
If the target node corresponding to at least one subtask of the plurality of subtasks is not successfully determined, the currently available resources of the distributed system do not meet the resource requirements of each subtask of the plurality of subtasks. 5. A method according to claim 3 or 4, characterized in that it determines that
前記分散システムの現在リソース状態情報と前記複数のサブタスクのリソース要求情報とに基づいて、前記複数のサブタスクにターゲットノードを決定するステップは、
前記分散システムの現在リソース状態情報と前記複数のサブタスクのリソース要求情報とに基づいて、前記複数のサブタスクの各サブタスクの事前選択ノード集合を決定するステップと、
前記複数のサブタスクの各サブタスクの事前選択ノード集合から前記各サブタスクのターゲットノードを選択するステップと、を含む
ことを特徴とする請求項3から5のいずれか1項に記載の方法。
determining target nodes for the plurality of subtasks based on current resource state information of the distributed system and resource requirement information of the plurality of subtasks;
determining a preselected node-set for each subtask of the plurality of subtasks based on current resource state information of the distributed system and resource requirement information of the plurality of subtasks;
selecting a target node for each subtask from a preselected node set for each subtask of the plurality of subtasks.
前記複数のサブタスクの各サブタスクの事前選択ノード集合を決定するステップは、
前記複数のサブタスクの各サブタスクの事前選択ノード集合を特定の順序に従って順次決定するステップであって、前記複数のサブタスクの第1サブタスクの事前選択ノード集合の事前選択ノードは前記複数のサブタスクの第2サブタスクの事前選択ノード集合から選択され、前記第2サブタスクの順序は前記第1サブタスクの前に位置するステップを含む
ことを特徴とする請求項6に記載の方法。
determining a preselected node-set for each subtask of the plurality of subtasks,
sequentially determining a preselected node set of each subtask of the plurality of subtasks according to a specific order, wherein the preselected node set of the first subtask of the plurality of subtasks is the preselected node of the second subtask of the plurality of subtasks; 7. The method of claim 6, comprising the step of selecting from a preselected node set of subtasks, wherein the order of the second subtask precedes the first subtask.
前記複数のサブタスクの各サブタスクの事前選択ノード集合から前記各サブタスクのターゲットノードを選択するステップは、
前記複数のサブタスクの各サブタスクの事前選択ノード集合から前記各サブタスクのターゲットノードを特定の順序に従って順次選択するステップであって、前記複数のサブタスクの第2サブタスクのターゲットノードを前記複数のサブタスクの第1サブタスクのターゲットノードとして優先的に選択し、前記第2サブタスクの順序は前記第1サブタスクの前に位置するステップを含む
ことを特徴とする請求項6又は7に記載の方法。
selecting a target node for each subtask from a preselected node set for each subtask of the plurality of subtasks,
sequentially selecting a target node of each subtask from a preselected node set of each subtask of the plurality of subtasks according to a specific order, wherein a target node of a second subtask of the plurality of subtasks is selected as a target node of a second subtask of the plurality of subtasks; 8. A method according to claim 6 or 7, comprising the step of preferentially selecting as a target node of one subtask, the order of said second subtask being positioned before said first subtask.
前記複数のサブタスクの各サブタスクの事前選択ノード集合から前記各サブタスクのターゲットノードを選択するステップは、
前記タスクのタスクタイプに基づいて、各サブタスクの事前選択ノード集合に含まれる事前選択ノードのスコアを決定するステップと、
前記各サブタスクの事前選択ノード集合に含まれる事前選択ノードのスコアに基づいて、前記各サブタスクの事前選択ノード集合から前記各サブタスクのターゲットノードを選択するステップと、を含む
ことを特徴とする請求項6から8のいずれか1項に記載の方法。
selecting a target node for each subtask from a preselected node set for each subtask of the plurality of subtasks,
determining scores for preselected nodes in a preselected node set for each subtask based on the task type of the task;
selecting a target node for each sub-task from the pre-selected node set for each sub-task based on scores of the pre-selected nodes included in the pre-selected node set for each sub-task. 9. The method of any one of 6-8.
前記複数のサブタスクにターゲットノードを順次決定する順序は、サブタスクの優先度とサブタスク間の依存関係とのうちの少なくとも1つに基づいて決定される
ことを特徴とする請求項3から9のいずれか1項に記載の方法。
10. The order of sequentially determining target nodes for the plurality of subtasks is determined based on at least one of priority of the subtasks and dependency between the subtasks. 1. The method according to item 1.
前記タスク情報に基づいて、前記タスクに含まれる複数のサブタスクに、それぞれ対応するターゲットノードを割り当てるステップは、
前記タスクのタスクタイプを決定するステップと、
前記タスクのタスクタイプに基づいて、前記タスクに含まれる複数のサブタスクに、それぞれ対応するターゲットノードを割り当てるステップと、を含む
ことを特徴とする請求項1から10のいずれか1項に記載の方法。
assigning target nodes corresponding to each of a plurality of subtasks included in the task based on the task information;
determining a task type for the task;
11. A method according to any one of claims 1 to 10, comprising assigning respective target nodes to a plurality of sub-tasks included in said task based on the task type of said task. .
前記タスクの複数に含まれるサブタスクに、それぞれ対応するターゲットノードを割り当てるステップは、
前記タスクの複数のサブタスクを少なくとも1つのグループに分割するステップであって、各グループは前記複数のサブタスクの少なくとも1つのサブタスクを含むステップと、
前記少なくとも1つのグループの各グループに、それぞれ対応するターゲットノードを割り当てるステップであって、同じグループの各サブタスクは同じターゲットノードに割り当てられるステップと、を含む
ことを特徴とする請求項1から11のいずれか1項に記載の方法。
assigning respective target nodes to subtasks of a plurality of said tasks,
dividing a plurality of subtasks of said task into at least one group, each group comprising at least one subtask of said plurality of subtasks;
assigning each group of the at least one group a respective target node, wherein each sub-task of the same group is assigned to the same target node. A method according to any one of paragraphs.
前記タスクの複数のサブタスクを少なくとも1つのグループに分割するステップは、
前記タスクのタスクタイプに基づいて、前記タスクの複数のサブタスクを少なくとも1つのグループに分割するステップを含む
ことを特徴とする請求項12に記載の方法。
dividing a plurality of subtasks of the task into at least one group;
13. The method of claim 12, comprising dividing a plurality of subtasks of the task into at least one group based on a task type of the task.
前記タスクのタスクタイプは、計算集約型又は通信集約型であることを特徴とする請求項11から13のいずれか1項に記載の方法。 14. A method as claimed in any one of claims 11 to 13, wherein the task type of the task is computationally intensive or communication intensive. 前記タスクの複数のサブタスクを少なくとも1つのグループに分割するステップは、
前記タスクのタスクタイプが通信集約型である場合に、前記タスクの複数のサブタスクのリソース要求情報に基づいて、前記複数のサブタスクの要求する総ノード数量を決定し、前記総ノード数量に基づいて、前記タスクの複数のサブタスクを少なくとも1つのグループに分割するステップ、
及び/又は、
前記タスクのタスクタイプが計算集約型である場合に、前記複数のサブタスクの各サブタスクを1つのグループとするステップ、を含む
ことを特徴とする請求項12から14のいずれか1項に記載の方法。
dividing a plurality of subtasks of the task into at least one group;
when the task type of the task is communication-intensive, determining the total number of nodes required by the plurality of subtasks based on the resource request information of the plurality of subtasks of the task; and based on the total number of nodes, dividing a plurality of subtasks of said task into at least one group;
and/or
15. A method according to any one of claims 12 to 14, comprising grouping each subtask of said plurality of subtasks if the task type of said task is computationally intensive. .
前記タスクのタスクタイプに基づいて、前記タスクに含まれる複数のサブタスクに、それぞれ対応するターゲットノードを割り当てるステップは、
前記タスクのタスクタイプに基づいて、前記タスクの複数のサブタスクにターゲットノードを決定するステップと、
前記タスクの複数のサブタスクのそれぞれについて対応するターゲットノードを決定することに成功した場合に、前記タスクに含まれる複数のサブタスクにターゲットノードを割り当てるステップと、を含む
ことを特徴とする請求項11から15のいずれか1項に記載の方法。
assigning respective target nodes to a plurality of subtasks included in the task based on a task type of the task,
determining target nodes for a plurality of subtasks of the task based on a task type of the task;
and assigning a target node to a plurality of subtasks included in the task upon successfully determining a corresponding target node for each of the plurality of subtasks of the task. 16. The method of any one of 15.
前記サブタスクの少なくとも1つのサブタスクについて対応するターゲットノードを決定することに成功しなかった場合に、前記タスクに含まれる複数のサブタスクの全てに対して遅延割り当てを行うステップをさらに含む
ことを特徴とする請求項16に記載の方法。
further comprising performing delayed assignment for all of a plurality of subtasks included in the task if a corresponding target node for at least one subtask of the subtask is not successfully determined. 17. The method of claim 16.
分散システムの現在利用可能なリソースが、前記タスクの複数のサブタスクのリソース要求情報に対応する総リソースを満たさない場合に、前記タスクに含まれる複数のサブタスクの全てに対して遅延割り当てを行うステップをさらに含む
ことを特徴とする請求項2から17のいずれか1項に記載の方法。
performing delayed allocation for all of the plurality of subtasks included in the task when the currently available resources of the distributed system do not meet the total resources corresponding to the resource requirement information of the plurality of subtasks of the task. 18. The method of any one of claims 2-17, further comprising:
前記タスクに含まれる複数のサブタスクに、それぞれ対応するターゲットノードを割り当てた後、前記タスクの複数のサブタスクを同期的にスケジューリングするステップをさらに含む
ことを特徴とする請求項1から18のいずれか1項に記載の方法。
19. The method of any one of claims 1 to 18, further comprising synchronously scheduling a plurality of subtasks of the task after assigning respective target nodes to the plurality of subtasks included in the task. The method described in section.
タスクスケジューリングシステムに適用されることを特徴とする請求項1から19のいずれか1項に記載の方法。 20. A method according to any preceding claim, applied to a task scheduling system. タスク情報を取得するための取得モジュールであって、前記タスク情報は前記タスクのタスクタイプ及び前記タスクのリソース要求情報のうちの少なくとも一方を含む取得モジュールと、
前記タスク情報に基づいて、前記タスクに含まれる複数のサブタスクに、それぞれ対応するターゲットノードを割り当てるための第1割り当てモジュールと、を含む
ことを特徴とするタスクスケジューリング装置。
an acquisition module for acquiring task information, wherein the task information includes at least one of a task type of the task and resource requirement information of the task;
A task scheduling device, comprising: a first allocation module for allocating respective target nodes to a plurality of subtasks included in the task based on the task information.
コンピュータプログラムが記憶されているコンピュータ可読記憶媒体であって、前記プログラムがプロセッサによって実行されると請求項1から20のいずれか1項に記載の方法が実施される
ことを特徴とするコンピュータ可読記憶媒体。
21. A computer readable storage medium having stored thereon a computer program, the method according to any one of claims 1 to 20 being implemented when said program is executed by a processor. medium.
メモリと、プロセッサと、前記メモリに記憶され前記プロセッサにおいて動作可能なコンピュータプログラムとを含むコンピュータデバイスであって、前記プロセッサが前記プログラムを実行すると請求項1から20のいずれか1項に記載の方法を実施する
ことを特徴とするコンピュータデバイス。
A computer device comprising a memory, a processor, and a computer program stored in said memory and operable on said processor, the method of any one of claims 1 to 20 when said processor executes said program. A computing device for implementing
JP2021570920A 2020-03-11 2021-03-09 Task scheduling method and apparatus Withdrawn JP2022539955A (en)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
CN202010165543.4 2020-03-11
CN202010165763.7A CN113391914A (en) 2020-03-11 2020-03-11 Task scheduling method and device
CN202010165543.4A CN113391886A (en) 2020-03-11 2020-03-11 Task scheduling method and device
CN202010165763.7 2020-03-11
PCT/CN2021/079810 WO2021180092A1 (en) 2020-03-11 2021-03-09 Task dispatching method and apparatus

Publications (1)

Publication Number Publication Date
JP2022539955A true JP2022539955A (en) 2022-09-14

Family

ID=77671227

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021570920A Withdrawn JP2022539955A (en) 2020-03-11 2021-03-09 Task scheduling method and apparatus

Country Status (4)

Country Link
JP (1) JP2022539955A (en)
KR (1) KR20220002547A (en)
TW (1) TWI786564B (en)
WO (1) WO2021180092A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024069843A1 (en) * 2022-09-29 2024-04-04 楽天モバイル株式会社 Distributed deployment control for microservices

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113961328B (en) * 2021-10-26 2022-07-19 深圳大学 Task processing method and device, storage medium and electronic equipment
CN114546623B (en) * 2022-03-01 2022-12-27 淮安市第二人民医院 Task scheduling method and system based on big data system
CN115658271B (en) * 2022-11-01 2023-07-21 中科雨辰科技有限公司 Method for acquiring target task object based on target task list

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130091280A1 (en) * 2011-10-08 2013-04-11 Broadcom Corporation Social Device Resource Management
US20130091210A1 (en) * 2011-10-08 2013-04-11 Broadcom Corporation Social Device Anonymity Via Full, Content Only, and Functionality Access Views
CN104253850A (en) * 2014-01-07 2014-12-31 深圳市华傲数据技术有限公司 Distributed task scheduling method and system
CN106502791B (en) * 2016-10-14 2019-06-25 浪潮电子信息产业股份有限公司 A kind of method for allocating tasks and device
US10439890B2 (en) * 2016-10-19 2019-10-08 Tata Consultancy Services Limited Optimal deployment of fog computations in IoT environments
CN107135257A (en) * 2017-04-28 2017-09-05 东方网力科技股份有限公司 Task is distributed in a kind of node cluster method, node and system
CN107291545B (en) * 2017-08-07 2019-12-10 星环信息科技(上海)有限公司 Task scheduling method and device for multiple users in computing cluster
CN110187960A (en) * 2019-04-23 2019-08-30 广东省智能制造研究所 A kind of distributed resource scheduling method and device

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024069843A1 (en) * 2022-09-29 2024-04-04 楽天モバイル株式会社 Distributed deployment control for microservices

Also Published As

Publication number Publication date
KR20220002547A (en) 2022-01-06
TW202134870A (en) 2021-09-16
TWI786564B (en) 2022-12-11
WO2021180092A1 (en) 2021-09-16

Similar Documents

Publication Publication Date Title
JP2022539955A (en) Task scheduling method and apparatus
Polo et al. Performance-driven task co-scheduling for mapreduce environments
US20190324819A1 (en) Distributed-system task assignment method and apparatus
CN108268317B (en) Resource allocation method and device
US20210191765A1 (en) Method for static scheduling of artificial neural networks for a processor
WO2016078178A1 (en) Virtual cpu scheduling method
JP2001142854A (en) Processing of channel subsystem holding input/output work queue based on priority
CN110221920B (en) Deployment method, device, storage medium and system
CN112416585B (en) Deep learning-oriented GPU resource management and intelligent scheduling method
CN110990154B (en) Big data application optimization method, device and storage medium
CN113391914A (en) Task scheduling method and device
CN114356543A (en) Kubernetes-based multi-tenant machine learning task resource scheduling method
CN113342477A (en) Container group deployment method, device, equipment and storage medium
Arabnejad et al. Fair resource sharing for dynamic scheduling of workflows on heterogeneous systems
CN114386560A (en) Data processing method and device
CN112925616A (en) Task allocation method and device, storage medium and electronic equipment
CN111597044A (en) Task scheduling method and device, storage medium and electronic equipment
CN114625500A (en) Method and application for scheduling micro-service application based on topology perception in cloud environment
US20210390405A1 (en) Microservice-based training systems in heterogeneous graphic processor unit (gpu) cluster and operating method thereof
CN112860383A (en) Cluster resource scheduling method, device, equipment and storage medium
Li et al. On scheduling of high-throughput scientific workflows under budget constraints in multi-cloud environments
CN116302327A (en) Resource scheduling method and related equipment
CN114461356A (en) Control method for number of processes of scheduler and IaaS cloud platform scheduling system
CN116157778A (en) System and method for hybrid centralized and distributed scheduling on shared physical hosts
Nzanywayingoma et al. Task scheduling and virtual resource optimising in Hadoop YARN-based cloud computing environment

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220125

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220125

A761 Written withdrawal of application

Free format text: JAPANESE INTERMEDIATE CODE: A761

Effective date: 20221223