KR20220002547A - Task Scheduling Method and Apparatus - Google Patents

Task Scheduling Method and Apparatus Download PDF

Info

Publication number
KR20220002547A
KR20220002547A KR1020217038822A KR20217038822A KR20220002547A KR 20220002547 A KR20220002547 A KR 20220002547A KR 1020217038822 A KR1020217038822 A KR 1020217038822A KR 20217038822 A KR20217038822 A KR 20217038822A KR 20220002547 A KR20220002547 A KR 20220002547A
Authority
KR
South Korea
Prior art keywords
task
sub
tasks
subtasks
target node
Prior art date
Application number
KR1020217038822A
Other languages
Korean (ko)
Inventor
즈성 예
쉰 천
바오둥 우
펑 쑨
선건 옌
Original Assignee
상하이 센스타임 인텔리전트 테크놀로지 컴퍼니 리미티드
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from CN202010165543.4A external-priority patent/CN113391886A/en
Priority claimed from CN202010165763.7A external-priority patent/CN113391914A/en
Application filed by 상하이 센스타임 인텔리전트 테크놀로지 컴퍼니 리미티드 filed Critical 상하이 센스타임 인텔리전트 테크놀로지 컴퍼니 리미티드
Publication of KR20220002547A publication Critical patent/KR20220002547A/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/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

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)
  • Debugging And Monitoring (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)

Abstract

본 발명의 실시예는 태스크 스케줄링 방법과 장치를 제공하는바, 당해 방법에 의하면 태스크의 태스크 타입 및 리소스 수요 정보 중 적어도 하나를 포함하는 태스크의 정보를 획득하고; 상기 태스크의 정보에 근거하여 상기 태스크에 포함되는 복수의 서브 태스크 각각에 타깃 노드를 할당할 수 있다.An embodiment of the present invention provides a task scheduling method and apparatus, comprising: acquiring task information including at least one of a task type and resource demand information of the task; A target node may be assigned to each of a plurality of sub-tasks included in the task based on the information on the task.

Description

태스크 스케줄링 방법과 장치Task Scheduling Method and Apparatus

[관련 출원의 상호 참조][Cross-reference to related applications]

본원 발명은 2020년 3월 11일에 중국 특허국에 제출된 출원 번호가202010165543.4이고 발명의 명칭이 "태스크 스케줄링 방법과 장치”인 중국 특허출원 및 2020년 3월 11에 중국 특허국에 제출된 출원 번호가 202010165763.7이고 발명의 명칭이 "태스크 스케줄링 방법과 장치”인 중국 특허출원의 우선권을 주장하며, 상기 중국 특허출원의 모든 내용은 인용의 방식으로 본 명세서에 통합된다.The present invention is a Chinese patent application with the application number 202010165543.4 filed with the Chinese Patent Office on March 11, 2020 and the invention is titled "Task Scheduling Method and Apparatus", and an application filed with the Chinese Patent Office on March 11, 2020 Priority is claimed on the Chinese patent application numbered 202010165763.7 and entitled "Task Scheduling Method and Apparatus", the entire contents of which are incorporated herein by way of reference.

본 발명은 분산 시스템 기술분야에 관한 것으로, 특히 분산 시스템 중의 태스크 스케줄링에 관한 것이다.FIELD OF THE INVENTION The present invention relates to the field of distributed systems, and more particularly to task scheduling in distributed systems.

현재, 점점 더 많은 태스크가 분산 시스템을 사용하여 리소스 할당 계산을 실행하며, 여기서 많은 태스크는 흔히 복수의 서브 태스크를 포함하게 되고, 각 서브 태스크의 콘텐츠 및 필요한 리소스는 완전히 동일하거나 상이할 수 있다. 전통적인 분산 시스템 중의 태스크 스케줄링 방식은 일반적으로 서브 태스크를 단위로 리소스 노드를 할당하므로 클러스터에 대한 리소스 이용률과 태스크의 실행 효율이 모두 비교적 낮다.Currently, more and more tasks use distributed systems to perform resource allocation calculations, where many tasks often include multiple subtasks, and the content and required resources of each subtask may be completely the same or different. The task scheduling method in the traditional distributed system generally allocates resource nodes in units of sub-tasks, so both resource utilization and task execution efficiency for the cluster are relatively low.

본 발명은 태스크 스케줄링 방안을 제공한다.The present invention provides a task scheduling method.

본 발명의 실시예의 제1 양태에 따르면 태스크 스케줄링 방법을 제공하는 바, 상기 방법은, 상기 태스크의 태스크 타입 및 리소스 수요 정보 중 적어도 하나를 포함하는 태스크의 정보를 획득하는 단계; 상기 태스크의 정보에 근거하여 상기 태스크에 포함되는 복수의 서브 태스크 각각에 타깃 노드를 할당하는 단계를 포함한다.According to a first aspect of an embodiment of the present invention, there is provided a task scheduling method, the method comprising: obtaining information on a task including at least one of a task type and resource demand information of the task; and allocating a target node to each of a plurality of sub-tasks included in the task based on the information on the task.

일부 실시예에서, 상기 태스크의 리소스 수요 정보는 상기 태스크가 포함하는 복수의 서브 태스크의 리소스 수요 정보이고; 상기 방법은, 분산 시스템 중의 현재 가용 리소스가 상기 태스크의 복수의 서브 태스크의 리소스 수요 정보에 대응하는 토탈 리소스를 만족시킬 경우, 상기 태스크의 복수의 서브 태스크 각각에 대응하는 타깃 노드를 할당하는 단계를 더 포함한다.In some embodiments, the resource demand information of the task is resource demand information of a plurality of sub-tasks included in the task; The method includes: allocating a target node corresponding to each of the plurality of subtasks of the task when the currently available resources in the distributed system satisfy total resources corresponding to resource demand information of the plurality of subtasks of the task; include more

일부 실시예에서, 상기 방법은, 상기 복수의 서브 태스크의 리소스 수요 정보에 기반하여 상기 태스크의 복수의 서브 태스크를 위해 타깃 노드를 결정하는 단계를 더 포함하고; 상기 분산 시스템 중의 현재 가용 리소스가 상기 태스크의 복수의 서브 태스크의 리소스 수요 정보에 대응하는 토탈 리소스를 만족시킬 경우, 상기 태스크의 복수의 서브 태스크 각각에 대응하는 타깃 노드를 할당하는 단계는, 상기 복수의 서브 태스크 중의 각 서브 태스크를 위해 대응하는 타깃 노드를 성공적으로 결정할 경우, 상기 태스크의 복수의 서브 태스크 각각에 대응하는 타깃 노드를 할당하는 단계를 포함한다.In some embodiments, the method further comprises: determining a target node for a plurality of sub-tasks of the task based on resource demand information of the plurality of sub-tasks; When the currently available resources in the distributed system satisfy the total resources corresponding to the resource demand information of the plurality of subtasks of the task, allocating a target node corresponding to each of the plurality of subtasks of the task includes: and allocating a target node corresponding to each of a plurality of subtasks of the task when a corresponding target node is successfully determined for each subtask of the subtasks.

일부 실시예에서, 상기 분산 시스템의 현재 리소스 상태 정보와 상기 복수의 서브 태스크의 리소스 수요 정보에 기반하여 특정 순서에 따라 순서대로 복수의 서브 태스크에 대응하는 타깃 노드를 결정한다.In some embodiments, the target node corresponding to the plurality of sub-tasks is sequentially determined according to a specific order based on the current resource state information of the distributed system and the resource demand information of the plurality of sub-tasks.

선택적 일 예에서, 상기 복수의 서브 태스크의 리소스 수요 정보는 상기 복수의 서브 태스크 중의 각 서브 태스크의 리소스 수요 정보를 포함하되, 여기서, 상기 리소스 수요 정보는 필요한 리소스 타입과 각 타입의 리소스 수량을 포함하거나 또는 기타 정보를 더 포함할 수 있다. In an optional example, the resource demand information of the plurality of subtasks includes resource demand information of each subtask among the plurality of subtasks, wherein the resource demand information includes a required resource type and a quantity of each type of resource or may further include other information.

선택적 일 예에서, 상기 분산 시스템의 현재 리소스 상태 정보는 상기 분산 시스템 중의 복수의 노드의 현재 상태 정보를 포함할 수 있으며, 여기서, 현재 상태 정보는 리소스의 가용 여부, 가용 리소스의 타입과 수량, 부하 상황, 토폴로지컬 연결 정보 중 적어도 하나를 나타내거나 또는 기타 정보를 더 포함한다.In an optional example, the current resource status information of the distributed system may include current status information of a plurality of nodes in the distributed system, wherein the current status information includes availability of resources, types and quantities of available resources, and loads It indicates at least one of context and topological connection information, or further includes other information.

일부 실시예에서, 매번 하나의 서브 태스크를 위해 타깃 노드를 결정한 후, 분산 시스템의 현재 리소스 상태 정보를 업데이트하고, 업데이트된 후의 현재 리소스 상태 정보에 기반하여 다음 서브 태스크에 대응하는 타깃 노드를 결정한다. In some embodiments, after determining the target node for one subtask each time, 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. .

일부 실시예에서, 상기 복수의 서브 태스크 중 적어도 하나의 서브 태스크를 위해 타깃 노드를 성공적으로 결정하지 못하였을 경우, 상기 분산 시스템의 현재 가용 리소스가 상기 복수의 서브 태스크 중의 각 서브 태스크가 수요하는 리소스를 만족하지 않는다는 것을 결정한다.In some embodiments, when a target node for at least one subtask among the plurality of subtasks is not successfully determined, the currently available resources of the distributed system are the resources required by each subtask among the plurality of subtasks. decides that it is not satisfied.

일부 실시예에서, 상기 복수의 서브 태스크의 타깃 노드의 순차적인 결정 순서는 서브 태스크의 우선순위, 서브 태스크 사이의 의존관계 중 적어도 하나에 기반하여 결정된 것이다.In some embodiments, the sequential determination order of the target nodes of the plurality of sub-tasks is determined based on at least one of a priority of the sub-tasks and a dependency relationship between the sub-tasks.

일부 실시예에서, 상기 분산 시스템의 현재 리소스 상태 정보와 상기 복수의 서브 태스크의 리소스 수요 정보에 기반하여 상기 복수의 서브 태스크를 위해 타깃 노드를 결정하는 단계는, 상기 분산 시스템의 현재 리소스 상태 정보와 상기 복수의 서브 태스크의 리소스 수요 정보에 기반하여 상기 복수의 서브 태스크 중의 각 서브 태스크의 사전 선택 노드 집합을 결정하는 단계; 복수의 서브 태스크 중의 각 서브 태스크의 사전 선택 노드 집합에서 상기 각 서브 태스크의 타깃 노드를 선택하는 단계를 포함한다.In some embodiments, the determining of a target node for the plurality of sub-tasks based on the current resource state information of the distributed system and the resource demand information of the plurality of sub-tasks comprises: the current resource state information of the distributed system and determining a preselection node set of each subtask among the plurality of subtasks based on resource demand information of the plurality of subtasks; and selecting a target node of each sub-task from a set of pre-selection nodes of each sub-task among the plurality of sub-tasks.

여기서, 상이한 서브 태스크의 사전 선택 노드 집합은 동일하거나 상이할 수 있다. 일부 예에서, 복수의 서브 태스크는 동일한 사전 선택 노드 집합을 가질 수 있다.Here, the preselection node sets of different subtasks may be the same or different. In some examples, a plurality of sub-tasks may have the same set of pre-selection nodes.

일부 실시예에서, 상기 분산 시스템의 현재 리소스 상태 정보와 상기 복수의 서브 태스크의 리소스 수요 정보에 기반하여 상기 복수의 서브 태스크 중의 각 서브 태스크의 사전 선택 노드 집합을 결정하는 단계는, 상기 분산 시스템의 현재 리소스 상태 정보와 각 서브 태스크의 리소스 수요 정보에 기반하여 상기 각 서브 태스크의 사전 선택 노드 집합을 결정하는 단계를 포함한다.In some embodiments, the determining of the pre-selection node set of each sub-task among the plurality of sub-tasks based on the current resource state information of the distributed system and the resource demand information of the plurality of sub-tasks comprises: and determining a pre-selection node set of each sub-task based on current resource state information and resource demand information of each sub-task.

복수의 서브 태스크의 사전 선택 노드 집합의 결정은 독립적인 것으로서 서로 의존관계가 존재하지 않을 수 있는 바, 예를 들어, 병렬로 실행되거나 또는 임의의 선후 순서로 실행될 수 있다. 예를 들어, 복수의 서브 태스크의 사전 선택 노드 집합은 동일한 분산 시스템의 현재 리소스 상태 정보에 기반하여 결정된 것인 바, 즉, 분산 시스템의 현재 리소스 상태 정보는 사전 선택 과정에서 업데이트하지 않을 수 있다. 예를 들어, 각 서브 태스크의 사전 선택 노드 집합의 결정은 단지 자신의 리소스 수요 정보와 관련되고 기타 서브 태스크의 리소스 수요 정보와는 무관하다.Determination of the pre-selection node set of the plurality of sub-tasks is independent and may not have a mutual dependency, for example, may be executed in parallel or may be executed in an arbitrary precedence order. For example, the preselection node set of the plurality of subtasks is determined based on the current resource state information of the same distributed system, that is, the current resource state information of the distributed system may not be updated during the preselection process. For example, the determination of the pre-selection node set of each sub-task is only related to its own resource demand information and is independent of the resource demand information of other sub-tasks.

일부 실시예에서, 상기 복수의 서브 태스크 중의 각 서브 태스크의 사전 선택 노드 집합을 결정하는 단계는, 특정 순서에 따라 순서대로 상기 복수의 서브 태스크 중의 각 서브 태스크의 사전 선택 노드 집합을 결정하는 단계를 포함한다.In some embodiments, the determining of the preselection node set of each subtask among the plurality of subtasks comprises: determining the preselection node set of each subtask of the plurality of subtasks sequentially according to a specific order; include

일 예에서, 상기 복수의 서브 태스크 중의 제1 서브 태스크의 사전 선택 노드 집합의 사전 선택 노드는 상기 복수의 서브 태스크 중의 제2 서브 태스크의 사전 선택 노드 집합으로부터 선택된 것이고, 여기서, 상기 제2 서브 태스크의 순서는 상기 제1 서브 태스크의 앞에 위치한다.In one example, a preselection node of a set of preselection nodes of a first subtask of the plurality of subtasks is selected from a set of preselection nodes of a second subtask of the plurality of subtasks, wherein the second subtask The order of is placed before the first sub-task.

다른 일 예에서, 상기 복수의 서브 태스크의 리소스 수요 정보에 기반하여 상기 복수의 서브 태스크 중의 각 서브 태스크의 사전 선택 노드 집합을 결정한다.In another example, a preselection node set of each subtask among the plurality of subtasks is determined based on resource demand information of the plurality of subtasks.

일부 실시예에서, 상기 복수의 서브 태스크 중의 각 서브 태스크의 사전 선택 노드 집합에서 상기 각 서브 태스크의 타깃 노드를 선택하는 단계는, 특정 순서에 따라 순서대로 상기 복수의 서브 태스크 중의 각 서브 태스크의 사전 선택 노드로부터 상기 각 서브 태스크의 타깃 노드를 선택한다.In some embodiments, the step of selecting the target node of each sub-task from the set of pre-selection nodes of each sub-task among the plurality of sub-tasks includes the dictionary of each sub-task among the plurality of sub-tasks in order according to a specific order. A target node of each subtask is selected from the selection node.

선택적 일 예에서, 우선 상기 복수의 서브 태스크 중의 제2 서브 태스크의 타깃 노드를 선택하여 상기 복수의 서브 태스크 중의 제1 서브 태스크의 타깃 노드로 하고, 여기서, 상기 제2 서브 태스크의 순서는 상기 제1 서브 태스크의 앞에 위치한다.In an optional example, first, a target node of a second subtask among the plurality of subtasks is selected to be a target node of a first subtask among the plurality of subtasks, wherein the order of the second subtask is the second subtask 1 It is located in front of the sub task.

일부 실시예에서, 상기 복수의 서브 태스크 중의 각 서브 태스크의 사전 선택 노드 집합에서 상기 각 서브 태스크의 타깃 노드를 선택하는 단계는, 상기 분산 시스템의 현재 리소스 상태 정보에 기반하여 상기 복수의 서브 태스크 중의 제1 서브 태스크의 사전 선택 노드 집합에서 상기 제1 서브 태스크의 타깃 노드를 결정하는 단계; 상기 제1 서브 태스크의 리소스 수요 정보에 기반하여 상기 분산 시스템의 현재 리소스 상태 정보를 업데이트하고, 상기 분산 시스템의 업데이트된 후의 현재 리소스 상태 정보에 기반하여 상기 복수의 서브 태스크 중의 제2 서브 태스크의 사전 선택 노드 집합으로부터 상기 제2 서브 태스크의 타깃 노드를 결정하는 단계를 포함한다.In some embodiments, the selecting of the target node of each sub-task from the pre-selection node set of each sub-task among the plurality of sub-tasks comprises: selecting one of the plurality of sub-tasks based on current resource state information of the distributed system. determining a target node of the first sub-task from a set of pre-selected nodes of the first sub-task; Update the current resource state information of the distributed system according to the resource demand information of the first sub-task, and according to the updated current resource state information of the distributed system, a dictionary of a second sub-task of the plurality of sub-tasks and determining a target node of the second sub-task from the selected node set.

선택적 일 예에서, 제1 서브 태스크의 사전 선택 노드 집합 중의 각 사전 선택 노드의 현재 상태 정보에 기반하여 상기 제1 서브 태스크의 사전 선택 노드 집합에서 상기 제1 서브 태스크의 타깃 노드를 결정하고, 상기 제1 서브 태스크의 필요한 리소스 정보에 기반하여 상기 제1 서브 태스크의 타깃 노드의 현재 상태 정보를 업데이트한다.In an optional example, determining a target node of the first subtask in the preselection node set of the first subtask based on current state information of each preselection node in the preselection node set of the first subtask, and The current state information of the target node of the first sub-task is updated based on the required resource information of the first sub-task.

일부 실시예에서, 상기 복수의 서브 태스크 중의 각 서브 태스크의 사전 선택 노드 집합에서 상기 각 서브 태스크의 타깃 노드를 선택하는 단계는, 상기 태스크의 태스크 타입에 근거하여 각 서브 태스크의 사전 선택 노드 집합에 포함되는 사전 선택 노드의 점수를 결정하는 단계; 각 서브 태스크의 사전 선택 노드 집합에 포함되는 사전 선택 노드의 점수에 기반하여 상기 각 서브 태스크의 사전 선택 노드 집합으로부터 상기 각 서브 태스크의 타깃 노드를 선택하는 단계를 포함한다.In some embodiments, the step of selecting the target node of each subtask from the preselection node set of each subtask among the plurality of subtasks includes adding the preselection node set of each subtask according to the task type of the task. determining a score of included pre-selection nodes; and selecting a target node of each subtask from the preselection node set of each subtask based on the scores of the preselection nodes included in the preselection node set of each subtask.

선택적 일 예에서, 상기 태스크의 태스크 타입에 기반하여 상기 사전 선택 노드 집합 중의 각 사전 선택 노드의 점수 결정 책략을 결정한다.In an optional example, a scoring strategy of each pre-selection node in the set of pre-selection nodes is determined based on the task type of the task.

일부 실시예에서, 상기 태스크의 정보에 근거하여 상기 태스크에 포함되는 복수의 서브 태스크 각각에 타깃 노드를 할당하는 단계는, 상기 태스크의 태스크 타입을 결정하는 단계; 상기 태스크의 태스크 타입에 기반하여 상기 태스크의 복수의 서브 태스크 각각에 대응하는 타깃 노드를 할당하는 단계를 포함한다.In some embodiments, allocating a target node to each of a plurality of sub-tasks included in the task based on the information on the task may include: determining a task type of the task; and allocating a target node corresponding to each of a plurality of sub-tasks of the task based on the task type of the task.

일부 실시예에서, 상기 태스크의 태스크 타입은 계산 집약형 또는 통신 집약형이다.In some embodiments, the task type of the task is computationally intensive or communication intensive.

일부 실시예에서, 상기 태스크의 복수의 서브 태스크 각각에 대응하는 타깃 노드를 할당하는 단계는, 상기 태스크의 복수의 서브 태스크를 적어도 하나의 그룹으로 나누는 단계 - 각 그룹마다 상기 복수의 서브 태스크 중 적어도 하나의 서브 태스크를 포함함 -; 및 상기 적어도 하나의 그룹 중의 각 그룹에게 대응하는 타깃 노드를 할당하는 단계를 포함하되, 동일한 그룹 중의 각 서브 태스크에 동일한 타깃 노드를 할당한다.In some embodiments, allocating a target node corresponding to each of a plurality of subtasks of the task comprises dividing the plurality of subtasks of the task into at least one group - for each group at least one of the plurality of subtasks Contains one sub-task -; and allocating a corresponding target node to each group in the at least one group, wherein the same target node is allocated to each subtask in the same group.

일부 실시예에서, 상기 태스크의 복수의 서브 태스크를 적어도 하나의 그룹으로 나누는 단계는, 상기 태스크의 태스크 타입에 근거하여 상기 태스크의 복수의 서브 태스크를 적어도 하나의 그룹으로 나누는 단계를 포함한다.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.

일부 실시예에서, 상기 태스크의 복수의 서브 태스크를 적어도 하나의 그룹으로 나누는 단계는, 상기 태스크의 태스크 타입이 통신 집약형인 경우, 상기 태스크의 복수의 서브 태스크의 리소스 수요 정보에 근거하여 상기 복수의 서브 태스크에 필요한 토탈 노드 수량을 결정하고, 또한 상기 토탈 노드 수량에 근거하여 상기 태스크의 복수의 서브 태스크를 적어도 하나의 그룹으로 나누는 단계를 포함한다.In some embodiments, the dividing the plurality of subtasks of the task into at least one group includes: when the task type of the task is communication-intensive, based on resource demand information of the plurality of subtasks of the task determining a total node quantity required for the subtask, and dividing the plurality of subtasks of the task into at least one group based on the total node quantity.

일부 실시예에서, 상기 태스크의 복수의 서브 태스크를 적어도 하나의 그룹으로 나누는 단계는, 상기 태스크의 태스크 타입이 계산 집약형인 경우, 상기 복수의 서브 태스크 중의 각 서브 태스크를 하나의 그룹으로 하는 단계를 포함한다.In some embodiments, the dividing the plurality of subtasks into at least one group includes: when the task type of the task is a computationally intensive type, grouping each subtask among the plurality of subtasks into one group include

일부 실시예에서, 상기 적어도 하나의 그룹 중의 각 그룹을 위해 대응하는 타깃 노드를 할당하는 단계는, 상기 적어도 하나의 그룹 중의 각 그룹을 위해 사전 선택 노드 집합을 결정하고, 순서대로 상기 적어도 하나의 그룹 중의 각 그룹의 사전 선택 노드 집합으로부터 상기 그룹의 타깃 노드를 선택하는 단계를 포함한다.In some embodiments, allocating a corresponding target node for each group in the at least one group comprises determining a set of preselected nodes for each group in the at least one group, and in the order the at least one group and selecting a target node of the group from a set of pre-selection nodes of each group in the group.

일부 실시예에서, 상기 태스크의 태스크 타입에 기반하여 상기 태스크의 복수의 서브 태스크 각각에 대응하는 타깃 노드를 할당하는 단계는, 상기 태스크의 태스크 타입에 기반하여 상기 태스크의 복수의 서브 태스크를 위해 타깃 노드를 결정하는 단계; 상기 태스크의 복수의 서브 태스크를 위해 대응하는 타깃 노드를 모두 성공적으로 결정한 경우, 상기 태스크에 포함되는 복수의 서브 태스크를 위해 타깃 노드를 할당하는 단계를 포함한다.In some embodiments, allocating a target node corresponding to each of the plurality of sub-tasks of the task based on the task type of the task comprises: a target for the plurality of sub-tasks of the task based on the task type of the task. determining a node; and allocating target nodes for the plurality of subtasks included in the task when all corresponding target nodes for the plurality of subtasks of the task are successfully determined.

일부 실시예에서, 상기 방법은, 상기 서브 태스크 중 적어도 하나의 서브 태스크를 위해 대응하는 타깃 노드를 성공적으로 결정하지 못하였을 경우, 상기 태스크의 복수의 서브 태스크에 대해 모두 지연 할당을 실행하는 단계를 더 포함한다.In some embodiments, the method includes executing delay allocation for all of a plurality of subtasks of the task when a corresponding target node for at least one of the subtasks is not successfully determined. include more

일부 실시예에서, 상기 방법은, 분산 시스템 중의 현재 가용 리소스가 상기 태스크의 복수의 서브 태스크의 리소스 수요 정보에 대응하는 토탈 리소스를 만족하지 않을 경우, 상기 태스크가 포함하는 복수의 서브 태스크에 대해 모두 지연 할당을 실행하는 단계를 더 포함한다.In some embodiments, the method includes: when the currently available resources in the distributed system do not satisfy the total resources corresponding to the resource demand information of the plurality of subtasks of the task, all of the plurality of subtasks included in the task The method further includes performing lazy allocation.

일부 실시예에서, 상기 방법은, 상기 태스크의 복수의 서브 태스크 각각에 대응하는 타깃 노드를 할당한 다음, 상기 태스크의 복수의 서브 태스크에 대해 동기 스케줄링을 실행하는 단계를 더 포함한다.In some embodiments, the method further comprises allocating a target node corresponding to each of a plurality of subtasks of the task, and then executing synchronous scheduling on the plurality of subtasks of the task.

일부 실시예에서, 상기 방법은 태스크 어레인징 시스템에 응용된다.In some embodiments, the method is applied to a task arranging system.

본 발명의 실시예의 제2 양태에 따르면, 태스크 스케줄링 장치를 제공하는 바, 상기 장치는, 상기 태스크의 태스크 타입 및 리소스 수요 정보 중 적어도 하나를 포함하는 태스크의 정보를 획득하는 획득 모듈; 상기 태스크의 정보에 근거하여 상기 태스크에 포함되는 복수의 서브 태스크 각각에 타깃 노드를 할당하는 제1 할당 모듈을 포함한다.According to a second aspect of an embodiment of the present invention, there is provided an apparatus for scheduling a task, the apparatus comprising: an acquiring module for acquiring information of a task including at least one of a task type and resource demand information of the task; and a first assignment module for allocating a target node to each of a plurality of sub-tasks included in the task based on the information on the task.

본 발명의 실시예의 제3 양태에 따르면, 컴퓨터 프로그램이 저장되는 컴퓨터 판독 가능 저장 매체를 제공하는 바, 당해 프로그램이 프로세서에 의해 실행될 경우, 임의의 한 실시예에 따른 방법을 구현한다.According to a third aspect of the embodiment of the present invention, there is provided a computer-readable storage medium in which a computer program is stored. When the program is executed by a processor, the method according to any one embodiment is implemented.

본 발명의 실시예의 제4 양태에 따르면, 메모리, 프로세서 및 메모리에 저장되어 프로세서에서 실행될 수 있는 컴퓨터 프로그램을 포함하는 컴퓨터 기기를 제공하는 바, 상기 프로세서는 상기 프로그램을 실행할 때 임의의 한 실시예에 따른 방법을 구현한다.According to a fourth aspect of the embodiment of the present invention, there is provided a computer device including a memory, a processor, and a computer program stored in the memory and executable by the processor, wherein the processor performs an operation in any one embodiment when the program is executed. implement the following method.

본 발명의 실시예에서는, 태스크의 태스크 타입 및 리소스 요청 정보 중 적어도 하나를 포함하는 태스크의 정보를 획득하되, 여기서 상기 태스크의 리소스 요청 정보는 상기 태스크가 포함하는 복수의 서브 태스크의 리소스 수요 정보이다. 태스크 타입 또는 태스크의 리소스 수요 정보에 근거하여 타깃 노드의 할당을 실행할 수 있다. 예를 들어, 분산 시스템 중의 현재 가용 리소스가 상기 태스크의 복수의 서브 태스크의 리소스 수요 정보에 대응하는 토탈 리소스를 만족시킬 경우, 상기 태스크의 복수의 서브 태스크 각각에 대응하는 타깃 노드를 할당한다. 이러한 방식으로 전체 태스크의 리소스 수요 상황을 획득할 수 있으며 전체 태스크를 입도로 리소스 할당을 실행하고 클러스터의 리소스 이용률을 향상시킨다.In an embodiment of the present invention, information of a task including at least one of a task type and resource request information of the task is obtained, wherein the resource request information of the task is resource demand information of a plurality of sub-tasks included in the task . Allocation of the target node may be performed based on the task type or resource demand information of the task. For example, when the currently available resources in the distributed system satisfy the total resources corresponding to resource demand information of a plurality of subtasks of the task, a target node corresponding to each of the plurality of subtasks of the task is allocated. In this way, the resource demand situation of the whole task can be obtained, and the resource allocation is executed at the granularity of the whole task, and the resource utilization rate of the cluster is improved.

이상의 일반적인 설명과 후문의 세부적인 설명은 단지 예시적이고 해석적인 것일 뿐 본 발명을 한정하기 위한 것이 아님을 이해해야 한다.It should be understood that the above general description and detailed description in the back are merely illustrative and interpretative and not intended to limit the present invention.

여기에서의 도면들은 명세서에 결부되어 본 명세서의 일부분을 구성하고, 본 발명에 부합되는 실시예를 도시하며, 명세서와 함께 본 발명의 기술적 방안을 해석한다.
도 1은 본 발명의 실시예에 따른 분산 시스템의 모식도이다.
도 2는 본 발명의 실시예에 따른 태스크 스케줄링 방법의 흐름도이다.
도 3a는 본 발명의 실시예에 따른 노드 모의 할당 과정 중의 리소스 변화 모식도이다.
도 3b는 본 발명의 실시예에 따른 노드 모의 할당 과정의 흐름도이다.
도 4는 전통적인 태스크 스케줄링 과정의 모식도이다.
도 5는 본 발명의 실시예에 따른 태스크 스케줄링 과정의 모식도이다.
도 6은 본 발명의 실시예에 따른 스케줄링 로직의 모식도이다.
도 7은 본 발명의 실시예에 따른 태스크 스케줄링 장치의 구조 모식도이다.
도 8은 본 발명의 실시예에 따른 장치의 컴퓨터 기기의 구조 모식도이다.
BRIEF DESCRIPTION OF THE DRAWINGS The drawings herein are attached to and form a part of the present specification, illustrate embodiments consistent with the present invention, and together with the specification interpret the technical solutions of the present invention.
1 is a schematic diagram of a distributed system according to an embodiment of the present invention.
2 is a flowchart of a task scheduling method according to an embodiment of the present invention.
3A is a schematic diagram of resource change during a node mock allocation process according to an embodiment of the present invention.
3B is a flowchart of a simulated node allocation process according to an embodiment of the present invention.
4 is a schematic diagram of a traditional task scheduling process.
5 is a schematic diagram of a task scheduling process according to an embodiment of the present invention.
6 is a schematic diagram of scheduling logic according to an embodiment of the present invention.
7 is a structural schematic diagram of a task scheduling apparatus according to an embodiment of the present invention.
8 is a structural schematic diagram of a computer device of an apparatus according to an embodiment of the present invention.

여기서 예시적인 실시예를 상세히 설명하고 이를 도면에 예시적으로 나타낸다. 아래의 설명이 도면과 관련될 경우, 별도로 나타내지 않는 한 상이한 도면 중의 동일한 숫자는 동일하거나 유사한 요소를 나타낸다. 아래의 예시적인 실시예에서 설명한 실시형태는 본 발명과 일치한 모든 실시형태를 대표하지 않는다. 반대로, 이들은 단지 첨부된 청구범위에서 상세히 설명한 본 발명의 일부 양태와 일치한 장치 및 방법의 예일 뿐이다.Exemplary embodiments are described in detail herein and are exemplarily shown in the drawings. When the following description relates to drawings, like numbers in different drawings refer to the same or similar elements, unless otherwise indicated. The embodiments described in the illustrative examples below are not representative of all embodiments consistent with the present invention. To the contrary, these are merely examples of apparatus and methods consistent with some aspects of the invention detailed in the appended claims.

본 발명에서 사용한 용어는 단지 특정된 실시예를 설명하기 위한 것일 뿐 본 발명을 한정하기 위한 것이 아니다. 본 발명과 첨부된 청구범위에서 사용한 홀수 형태의 "일”, "상기”, "당해”도 앞뒤 문장에서 기타 의미를 뚜렷이 표시하지 않은 한 복수 형태를 포함한다는 것을 말한다. 또한, 본 명세서에서 사용한 "및/또는”이라는 용어는 하나 또는 복수의 연관된 열거 항목의 임의의 또는 모든 가능한 조합을 포함한다는 것을 이해해야 한다.The terminology used in the present invention is only for describing specific embodiments and not for limiting the present invention. It is said that odd-numbered forms of “one,” “the,” and “the same” used in the present invention and the appended claims also include plural forms unless otherwise clearly indicated in the preceding sentence. It should be understood that the term “and/or” includes any or all possible combinations of one or more associated enumerated items.

비록 본 발명에서 "제1", "제2", "제3" 등과 같은 용어를 사용하여 여러 가지 정보를 설명할 수 있으나 이러한 정보는 이러한 용어에 한정되지 말아야 한다는 것을 이해해야 한다. 이러한 용어는 단지 동일한 유형의 정보를 서로 구별하기 위한 것이다. 예를 들어, 본 발명의 범위를 벗어나지 않을 경우, 제1 정보를 제2 정보라고 할 수도 있고, 유사하게, 제2 정보를 제1 정보라고 할 수도 있다. 이는 언어 환경에 의해 결정되는 바, 예를 들어 여기서 사용한 단어 "만약”은 "…할 경우”또는 "…할 때” 또는 "결정에 응답하여”로 해석될 수 있다.Although the present invention may use terms such as "first", "second", "third" and the like to describe various pieces of information, it should be understood that such information should not be limited to these terms. These terms are merely intended to distinguish the same type of information from each other. For example, without departing from the scope of the present invention, the first information may be referred to as second information, and similarly, the second information may be referred to as first information. This is determined by the language environment, for example, the word "if" used here is "... It can be construed as “when” or “when…” or “in response to a decision.”

현재, 점점 더 많은 태스크가 분산 시스템을 사용하여 처리하기 시작하는 바, 이러한 태스크를 분산 태스크라고 한다. 이러한 분산 태스크에는 GPU(Graphics Processing Unit, 그래픽 프로세서), DSP(Digital Signal Processor, 디지털 신호 프로세서), FPGA(Field Programmable Gate Array, 필드 프로그래머블 게이트 어레이) 등과 같은 고성능의 처리 리소스에 대한 절실한 수요가 포함되는 바, 예를 들면 딥 러닝 태스크이다. 도 1에 도시된 바와 같이, 이는 일부 실시예의 분산 시스템으로서, 당해 분산 시스템은 하나 또는 복수의 클러스터를 포함하고, 각 클러스터는 하나 또는 복수의 서버를 포함하며, 각 서버는 하나의 노드(도면에서는 각 흑점으로 도시)로 간주될 수 있고, 각 노드마다 CPU(Central Processing Unit, 중앙 처리 장치), GPU, 메모리, 디스크, 네트워크 포트 등 리소스 중 적어도 하나를 포함한다. 서브 태스크를 노드에 할당한 후, 당해 노드의 리소스를 통해 서브 태스크를 실행할 수 있으며, 각 노드는 하나 또는 복수의 서브 태스크를 실행할 수 있다. 동일한 클러스터 내의 각 노드가 실행하는 서브 태스크는 동일할 수도 있고 상이할 수도 있다. 분산 시스템에서, 태스크 자체이든 태스크의 리소스에 대한 수요이든 모두 전통적인 태스크와 전혀 상이한 바, 따라서, 분산 시스템 중의 태스크 스케줄링 방식을 상응하게 조절하여 분산 시스템 중 클러스터 리소스 사용의 적합성을 향상시키고, 나아가 태스크의 실행 성능과 클러스터의 리소스 이용률을 향상시킨다.Currently, more and more tasks are starting to be processed using distributed systems, and these tasks are called distributed tasks. These distributed tasks include an acute demand for high-performance processing resources such as Graphics Processing Units (GPUs), Digital Signal Processors (DSPs), Field Programmable Gate Arrays (FPGAs), etc. A bar, for example, is a deep learning task. As shown in FIG. 1 , this is a distributed system in some embodiments, wherein the distributed system includes one or a plurality of clusters, each cluster includes one or a plurality of servers, and each server includes one node (in the drawing). each node), and each node contains at least one of resources such as a CPU (Central Processing Unit), GPU, memory, disk, and network port. After allocating a subtask to a node, the subtask can be executed using the node's resources, and each node can execute one or more subtasks. The subtasks executed by each node in the same cluster may be the same or different. In a distributed system, both the task itself and the demand for the resource of the task are completely different from the traditional task. Therefore, the task scheduling method in the distributed system is adjusted accordingly to improve the suitability of the use of cluster resources in the distributed system, and furthermore, the task It improves execution performance and resource utilization of the cluster.

분산 시스템 중의 태스크를 위해 리소스를 할당할 경우, 상이한 할당 방식은 태스크의 실행효율에 영향을 미치게 된다. 예를 들어, 일부 경우, 하나의 태스크 중의 복수의 서브 태스크 사이는 서로 빈번한 통신을 실행해야 하므로 당해 태스크 중의 복수의 서브 태스크는 통신 대가가 작은 노드에 할당되기 적합하며; 다른 일부 경우, 하나의 태스크 중의 복수의 서브 태스크는 실행 과정에서 큰 계산량을 발생하게 되므로 당해 태스크 중의 복수의 서브 태스크는 계산 리소스가 많은 노드에 할당되기 적합하다.When allocating resources for tasks in a distributed system, different allocation methods affect the execution efficiency of tasks. For example, in some cases, since a plurality of subtasks in one task need to perform frequent communication with each other, the plurality of subtasks in the task are suitable to be assigned to a node having a low communication cost; In some other cases, since a plurality of subtasks in one task generate a large amount of computation during execution, the plurality of subtasks in the task are suitable to be allocated to a node having many computational resources.

그리고, 현재 분산 시스템 중의 태스크는 대부분 아래와 같은 특징을 가진다: 하나의 태스크는 흔히 복수의 서브 태스크를 포함하고, 각 서브 태스크의 콘텐츠 및 필요한 리소스는 완전히 동일할 수도 있고 상이할 수도 있으며, 서브 태스크 사이는 빈번한 통신을 실행해야 할 수도 있다. 또한, 일부 경우, 하나의 태스크 중의 복수의 서브 태스크는 함께 스케줄링 되어 실행되어야 하고, 그렇지 않을 경우 태스크는 정상적으로 실행되지 않으며; 다른 일부 경우, 각 서브 태스크의 실행 순서는 전체 태스크의 실행 상황에 일정한 영향을 미치게 되는 바, 예를 들어, 슬레이브(slave) 서브 태스크는 그가 종속된 마스터(master) 서브 태스크가 실행 완료된 후에야 실행될 수 있다.And, most of the tasks in the current distributed system have the following characteristics: One task often includes a plurality of sub-tasks, and the content and required resources of each sub-task may be the same or different, and between sub-tasks may need to perform frequent communication. Also, in some cases, a plurality of sub-tasks in one task must be scheduled and executed together, otherwise the task is not normally executed; In some other cases, the execution order of each subtask has a certain effect on the execution status of the entire task. For example, a slave subtask can be executed only after the master subtask to which it depends is completed. have.

현재 일부 스케줄러(예를 들어, kube-batch)는 아래 방식에 따라 분산 시스템 중의 태스크를 배치 스케줄링 한다: 스케줄러는 순서에 따라 하나의 태스크 중의 각 서브 태스크에 대해 하나씩 스케줄링을 시도하고, 당해 태스크의 각 서브 태스크에 대한 스케줄링 시도를 완성한 후 전체 태스크가 사용자가 예기한 실행 가능한 상태에 부합되는지 여부를 판정한다. 이러한 스케줄링 책략을 gang scheduling(갱 스케줄링)이라고 한다.Currently, some schedulers (eg, kube-batch) batch schedule tasks in a distributed system according to the following method: The scheduler attempts to schedule one for each sub-task of one task in order, and each After completing the scheduling attempt for the sub-task, it is determined whether the entire task meets the user-expected executable state. This scheduling strategy is called gang scheduling.

그러나, 현재의 gang scheduling의 구현 방식은 본질적으로 서브 태스크를 입도로 스케줄링 하는 것이고, 스케줄러는 전체 태스크의 리소스 수요를 획득하지 못한 경우 서브 태스크를 위해 할당한 노드가 최선의 선택이 아닐 수 있음을 초래하여 태스크 실행 효율 및 클러스터에 대한 리소스 이용률이 모두 비교적 낮을 수 있다. 따라서, 클러스터 리소스가 빠듯하거나 또는 태스크 타입이 복잡할 경우, 대량의 스케줄링 실패 현상이 발생하게 된다.However, the current implementation of gang scheduling essentially schedules subtasks at a granular level, and if the scheduler does not obtain the resource demand of the entire task, the node allocated for the subtask may not be the best choice. Therefore, both task execution efficiency and resource utilization for the cluster may be relatively low. Therefore, when cluster resources are tight or task types are complex, a large number of scheduling failures occur.

이를 바탕으로, 본 발명의 실시예는 태스크 스케줄링 방법을 제공한다. 도2에 도시된 바와 같이, 상기 방법은 단계201과 단계202를 포함할 수 있다.Based on this, an embodiment of the present invention provides a task scheduling method. As shown in FIG. 2 , the method may include steps 201 and 202 .

단계201: 상기 태스크의 태스크 타입 및 리소스 수요 정보 중 적어도 하나를 포함하는 태스크의 정보를 획득한다. Step 201: Obtain task information including at least one of a task type and resource demand information of the task.

단계202: 상기 태스크의 정보에 근거하여 상기 태스크의 복수의 서브 태스크를 위해 각각 타깃 노드를 할당한다.Step 202: Allocate a target node for each of the plurality of sub-tasks of the task according to the information of the task.

본 발명의 실시예에 따른 방법은 단말기기 또는 클라우드 서버 등과 같은 임의의 전자기기에 의해 실행될 수 있는 바, 일부 실시예에서, 당해 방법은 프로세서 또는 스케줄러에 의해 실행되고, 여기서, 선택적으로, 상기 프로세서 또는 스케줄러는 Kubernetes 등과 같은 클라우드 플랫폼에서 실행될 수 있으며, 구체적으로는 컨테이너 어레인징 엔진에 설치될 수 있으나 본 발명의 실시예는 이에 한정되지 않는다. 단계 201에서는 하나 또는 복수의 태스크의 정보를 획득할 수 있다.The method according to an embodiment of the present invention may be executed by any electronic device such as a terminal device or a cloud server. In some embodiments, the method is executed by a processor or a scheduler, wherein, optionally, the processor Alternatively, the scheduler may be executed in a cloud platform such as Kubernetes, and specifically, may be installed in a container arranging engine, but the embodiment of the present invention is not limited thereto. In step 201, information on one or a plurality of tasks may be acquired.

상기 태스크에 포함되는 복수의 서브 태스크는 상기 태스크의 모든 서브 태스크 일 수도 있고 상기 태스크 중의 일부 서브 태스크, 예를 들어 리소스 수요량이 큰 서브 태스크 또는 우선순위가 높은 서브 태스크 또는 서로 의존관계를 가지는 서브 태스크, 리소스 수요 타입 또는 수량이 비교적 근접하는 서브 태스크 등 일 수도 있다. 여기서, 서로 의존관계를 가지는 서브 태스크는 서로 의존 관계 또는 마스터슬레이브 관계를 가지는 복수의 서브 태스크를 말하는 바, 예를 들어 서브 태스크A의 실행이 오직 서브 태스크B의 실행이 완료된 후에야 시작될 수 있고, 또 예를 들어, 동일한 타입 또는 적어도 하나의 특정 타입을 가지는 복수의 서브 태스크 등 일 수 있다. 상기 태스크는 신경 네트워크의 트레이닝 태스크, 추정 태스크 일 수도 있고 기타 타입의 딥 러닝 태스크 등 일 수도 있다. 일부 선택적인 실시예에서, 동일한 태스크 중의 각 서브 태스크는 분산 시스템 중의 동일한 클러스터 중의 동일하거나 상이한 노드에 의해 실행될 수 있다. 분산 시스템이 복수의 클러스터를 포함할 경우, 동일한 태스크의 각 서브 태스크는 동일하거나 상이한 클러스터의 노드에 의해 실행될 수 있다. 선택적으로, 먼저 태스크를 어느 한 클러스터에 할당한 다음 다시 당해 클러스터에서 상기 태스크의 복수의 서브 태스크에 사용되는 타깃 노드를 결정할 수 있다. 이런 방식으로, 태스크의 복수의 서브 태스크를 동일한 클러스터에 할당함으로써 통신 오버헤드를 줄이는 데에 유리하고 태스크의 실행 효율을 향상시킨다.The plurality of sub-tasks included in the task may be all sub-tasks of the task, and some sub-tasks of the tasks, for example, a sub-task with a large resource demand, a sub-task with a high priority, or a sub-task having a dependency relationship with each other , a subtask with a relatively close resource demand type or quantity, or the like. Here, the sub-tasks having a mutual dependency relationship refer to a plurality of sub-tasks having a mutual dependency relationship or a master-slave relationship. For example, the execution of the sub task A can be started only after the execution of the sub task B is completed, and For example, it may be a plurality of sub-tasks having the same type or at least one specific type. The task may be a training task of a neural network, an estimation task, or other types of deep learning tasks. In some alternative embodiments, each sub-task of the same task may be executed by the same or different nodes in the same cluster in the distributed system. When a distributed system includes a plurality of clusters, each sub-task of the same task can be executed by nodes in the same or different clusters. Optionally, a task may be assigned to a cluster first, and then target nodes used for a plurality of subtasks of the task may be determined in the cluster again. In this way, by allocating a plurality of sub-tasks of the task to the same cluster, it is advantageous to reduce communication overhead and improve the execution efficiency of the task.

상기 태스크의 정보는 사용자 입력 또는 설정에 기반하여 얻은 것이거나 또는 태스크에 대한 분석에 기반하여 얻은 것 등일 수 있다. 상기 태스크의 정보는 태스크의 태스크 타입 및/또는 리소스 수요 정보를 포함할 수 있다. 여기서, 상기 태스크의 리소스 수요 정보는 구체적으로, 상기 태스크가 포함하는 복수의 서브 태스크의 리소스 수요 정보이다. 일부 실시예에서, 태스크 타입과 리소스 수요 정보 외에 상기 태스크의 정보는 상기 태스크의 우선순위 정보, 상기 태스크가 포함하는 복수의 서브 태스크의 우선순위 정보, 서브 태스크 사이의 의존 정보, 사용자가 제공하는 정보, 과거 정보, 계산량 정보, 통신량 정보 등 중의 하나 또는 복수를 더 포함할 수 있다. The information of the task may be obtained based on a user input or setting, or obtained based on analysis of the task. The information on the task may include task type and/or resource demand information of the task. Here, the resource demand information of the task is specifically, resource demand information of a plurality of sub-tasks included in the task. In some embodiments, the information of the task in addition to the task type and resource demand information includes priority information of the task, priority information of a plurality of sub-tasks included in the task, dependency information between sub-tasks, and information provided by a user. , may further include one or more of past information, calculation amount information, communication amount information, and the like.

여기서, 상기 서브 태스크의 리소스 수요 정보는 당해 서브 태스크를 실행하는 데에 필요한 리소스 타입 및/또는 리소스 수량을 포함할 수 있고, 상기 리소스 타입은 CPU, GPU, DSP, FPGA, 메모리, 디스크, 네트워크 포트 등 리소스 중 적어도 하나를 포함할 수 있으나 이에 한정되지 않는다. Here, the resource demand information of the sub-task may include a resource type and/or resource quantity required to execute the sub-task, and the resource type is CPU, GPU, DSP, FPGA, memory, disk, and network port. It may include at least one of resources, such as, but is not limited thereto.

상기 태스크의 우선순위 정보는 상기 태스크가 스케줄링 되기를 대기하는 시간 길이 및/또는 상기 태스크 중의 상기 복수의 서브 태스크에 필요한 토탈 리소스를 포함할 수 있으나 이에 한정되지 않는다. 스케줄링 되기를 대기하는 시간 길이는 스케줄러가 한 태스크를 수신하는 시각으로부터 당해 태스크가 스케줄링 되는 시각까지의 시간 길이를 가리키는 바, 스케줄링 되기를 대기하는 시간 길이가 비교적 긴 태스크 및 필요한 토탈 리소스가 비교적 많은 태스크의 우선순위를 높게 설정하여 한 태스크가 장기간 스케줄링을 대기하는 상태에 놓이는 것을 방지할 수 있다. The priority information of the task may include, but is not limited to, a length of time waiting for the task to be scheduled and/or a total resource required for the plurality of sub-tasks among the tasks. The length of time waiting to be scheduled indicates the length of time from the time when the scheduler receives a task to the time the task is scheduled. Priority is given to tasks with relatively long waiting to be scheduled and tasks with relatively large required total resources. By setting the priority high, it is possible to prevent a task from being placed in a state waiting for scheduling for a long time.

상기 태스크가 포함하는 복수의 서브 태스크의 우선순위 정보는 상기 태스크가 포함하는 복수의 서브 태스크의 우선순위를 결정하는 데에 사용된다. 일부 실시예에서, 하나의 스케줄링 주기 또는 리소스 할당 프로세스에서, 적어도 각 서브 태스크의 우선순위 정보에 기반하여 서브 태스크의 스케줄링을 실행할 수 있다. Priority information of a plurality of sub-tasks included in the task is used to determine priorities of a plurality of sub-tasks included in the task. In some embodiments, in one scheduling cycle or resource allocation process, scheduling of sub-tasks may be executed based on at least priority information of each sub-task.

상기 서브 태스크 사이의 의존 정보는 상기 태스크가 포함하는 복수의 서브 태스크 사이의 의존 관계 또는 마스터슬레이브 관계를 결정하는 데에 사용되는 바, 만약 서브 태스크B가 오직 서브 태스크A를 실행 완료한 후에야 시작할 수 있다면, 서브 태스크B는 서브 태스크A에 의존하거나 또는 서브 태스크A가 마스터 태스크이고 서브 태스크B가 서브 태스크A의 슬레이브 태스크이다. The dependency information between the sub-tasks is used to determine the dependency relationship or the master-slave relationship between the plurality of sub-tasks included in the task. If so, sub-task B depends on sub-task A, or sub-task A is the master task and sub-task B is a slave task of sub-task A.

상기 사용자가 제공하는 정보는 상기 태스크의 복수의 서브 태스크의 계산량과 통신량을 결정하는 데에 사용된다. The information provided by the user is used to determine the amount of computation and communication of a plurality of sub-tasks of the task.

상기 과거 정보는 과거 스케줄링 정보 및/또는 과거 실행 상황 등을 포함할 수 있다. 상기 과거 정보에 근거하여 과거 스케줄링 과정 중 상기 태스크의 태스크 타입을 결정할 수 있다. The past information may include past scheduling information and/or past execution status. A task type of the task may be determined during a past scheduling process based on the past information.

상기 정보 외에, 실제 애플리케이션 시나리오에 따라 상기 태스크의 정보는 기타 정보를 더 포함할 수 있으며 여기서 더 이상 설명하지 않는다. In addition to the above information, the information of the task may further include other information according to an actual application scenario, which is not further described herein.

일부 실시예에서는, 단계202에서, 상기 태스크의 정보에 근거하여 상기 태스크에 포함되는 복수의 서브 태스크 각각에 타깃 노드를 할당하는 단계는, 분산 시스템 중의 현재 가용 리소스가 상기 태스크의 복수의 서브 태스크의 리소스 수요 정보에 대응하는 토탈 리소스를 만족시킬 경우, 상기 태스크의 복수의 서브 태스크 각각에 대응하는 타깃 노드를 할당하는 단계를 포함한다. 상기 태스크의 복수의 서브 태스크의 리소스 수요 정보에 대응하는 토탈 리소스는 상기 태스크의 복수의 서브 태스크에 필요한 토탈 리소스 일 수 있는 바, 선택적으로, 복수의 서브 태스크가 태스크의 모든 서브 태스크 일 경우, 당해 토탈 리소스는 상기 태스크에 필요한 토탈 리소스 일 수도 있다. 선택적으로, 만약 분산 시스템의 현재 가용 리소스가 상기 복수의 서브 태스크 또는 상기 태스크에 필요한 토탈 리소스를 만족시키면 분산 시스템 중의 현재 가용 리소스가 복수의 서브 태스크의 실행을 지원할 수 있다는 것을 나타낸다. 선택적으로, 만약 분산 시스템의 현재 가용 리소스가 복수의 서브 태스크 또는 태스크에 필요한 토탈 리소스를 만족시키지 않으면 분산 시스템 중의 현재 가용 리소스는 복수의 서브 태스크 중의 일부 태스크의 실행만 지원하고 모든 서브 태스크의 실행을 지원할 수 없다는 것을 나타낸다.In some embodiments, in step 202, allocating a target node to each of the plurality of subtasks included in the task based on the information of the task includes: currently available resources in the distributed system of the plurality of subtasks of the task. and allocating a target node corresponding to each of a plurality of sub-tasks of the task when the total resource corresponding to the resource demand information is satisfied. The total resource corresponding to the resource demand information of the plurality of subtasks of the task may be a total resource required for the plurality of subtasks of the task. Optionally, when the plurality of subtasks are all subtasks of the task, the The total resource may be a total resource required for the task. Optionally, it indicates that currently available resources in the distributed system can support execution of the plurality of subtasks if the currently available resources of the distributed system satisfy the plurality of subtasks or the total resources required for the tasks. Optionally, if the currently available resources of the distributed system do not satisfy the plurality of subtasks or the total resources required for the tasks, the currently available resources of the distributed system support the execution of only some tasks among the plurality of subtasks and delay the execution of all subtasks. Indicates that support is not available.

본 발명의 실시예에서, 분산 시스템 중의 현재 가용 리소스가 상기 태스크의 복수의 서브 태스크에 필요한 토탈 리소스를 만족시킬 경우에만 상기 태스크의 복수의 서브 태스크 각각에 대응하는 타깃 노드를 할당할 수 있다. 이런 방식으로, 태스크를 리소스 할당의 단위로 태스크가 포함하는 복수의 서브 태스크에 대해 함께 노드를 분할함으로써 분산 시스템 중의 현재 가용 리소스가 부족한 경우 태스크 중의 일부 서브 태스크가 성공적으로 리소스를 할당할 수 없어 당해 태스크에서 일부 서브 태스크만 분산 시스템 중의 전체 리소스를 점용하는 경우가 발생하는 것을 방지하여 리소스의 합리적인 이용을 개선하는 데에 유리하게 된다.In an embodiment of the present invention, a target node corresponding to each of the plurality of subtasks of the task may be allocated only when the currently available resources in the distributed system satisfy the total resources required for the plurality of subtasks of the task. In this way, by dividing a node together for a plurality of subtasks included in a task as a unit of resource allocation, when the currently available resources in the distributed system are insufficient, some subtasks of the tasks cannot allocate resources successfully. It is advantageous to improve the rational use of resources by preventing a case where only some subtasks in a task occupy all the resources in the distributed system.

일부 실시예에서는, 분산 시스템의 현재 리소스 상태 정보와 복수의 서브 태스크의 리소스 수요 정보에 기반하여 복수의 서브 태스크에 타깃 노드를 할당할 수 있다. 여기서, 각 서브 태스크에 각자의 리소스 수요를 만족시킬 수 있는 타깃 노드를 할당할 수 있으며, 상이한 서브 태스크의 타깃 노드는 동일하거나 상이할 수 있다.In some embodiments, a target node may be allocated to a plurality of sub-tasks based on current resource state information of the distributed system and resource demand information of the plurality of sub-tasks. Here, target nodes capable of satisfying respective resource demands may be allocated to each sub-task, and target nodes of different sub-tasks may be the same or different.

일부 실시예에서는, 상기 분산 시스템의 현재 리소스 상태 정보와 상기 복수의 서브 태스크의 리소스 수요 정보에 기반하여 상기 복수의 서브 태스크를 위해 타깃 노드를 결정할 수 있고, 상기 복수의 서브 태스크 중의 각 서브 태스크를 위해 대응하는 타깃 노드를 성공적으로 결정할 경우, 상기 태스크의 복수의 서브 태스크 각각에 대응하는 타깃 노드를 할당할 수 있다. 상기 복수의 서브 태스크를 위해 타깃 노드를 결정하는 과정은 모의 할당과정으로서, 모의 할당은 실제로 실행되는 리소스 할당 과정이 아니라 가상의 리소스 할당 과정이고, 상기 모의 할당 과정은 계산을 통해 복수의 서브 태스크가 현재 분산 시스템의 노드를 할당 받을 수 있을지 여부를 결정하는 데에 사용된다. 상기 태스크의 복수의 서브 태스크를 위해 노드의 모의 할당을 실행함으로써 분산 시스템이 현재 당해 복수의 서브 태스크에 필요한 리소스를 만족시키는지 여부를 결정할 수 있다.In some embodiments, a target node may be determined for the plurality of sub-tasks based on current resource state information of the distributed system and resource demand information of the plurality of sub-tasks, and each sub-task among the plurality of sub-tasks may be selected. When a target node corresponding to the target node is successfully determined, a target node corresponding to each of the plurality of sub-tasks of the task may be allocated. The process of determining a target node for the plurality of sub-tasks is a mock allocation process. The mock allocation is a virtual resource allocation process, not an actual resource allocation process. It is used to determine whether a node in the current distributed system can be allocated. By executing the mock assignment of nodes for a plurality of subtasks of the task, it can be determined whether the distributed system currently satisfies the resources required for the plurality of subtasks.

여기서, 분산 시스템의 현재 리소스 상태 정보는 분산 시스템 중의 현재 가용 리소스를 표시하기 위한 것으로, 분산 시스템의 현재 가용 리소스의 수량, 타입 및 분포 중 적어도 하나를 포함하거나, 또는 분산 시스템 중의 복수의 노드의 현재 상태, 예를 들어 가용 여부 또는 가용 리소스 존재 여부, 가용 리소스의 타입 및 수량 등을 포함할 수 있다. 복수의 서브 태스크의 리소스 수요 정보는 복수의 서브 태스크 중의 각 서브 태스크의 리소스 수요 정보, 예를 들어, 필요한 리소스 타입, 어느 한 리소스 타입의 리소스 수량 중 적어도 하나, 예를 들어, 필요한 GPU, DSP, CPU 등 중의 하나 또는 복수를 포함할 수 있으나 본 발명의 실시예는 이에 한정되지 않는다. Here, the current resource status information of the distributed system is for displaying currently available resources in the distributed system, and includes at least one of the quantity, type, and distribution of the currently available resources of the distributed system, or the current status of a plurality of nodes in the distributed system. The status may include, for example, availability or existence of available resources, the type and quantity of available resources, and the like. The resource demand information of the plurality of subtasks includes resource demand information of each subtask among the plurality of subtasks, for example, at least one of a required resource type and a resource quantity of any one resource type, for example, a required GPU, DSP, One or a plurality of CPUs may be included, but embodiments of the present invention are not limited thereto.

일부 실시예에서는, 복수의 서브 태스크의 리소스 수요 정보와 분산 시스템의 현재 리소스 상태 정보에 기반하여 분산 시스템에 복수의 서브 태스크 수요를 만족시키는 타깃 노드가 존재하는지 여부를 결정하거나, 또는 특정 순서에 따라 순서대로 복수의 서브 태스크 중의 각 서브 태스크의 타깃 노드를 결정할 수 있다. 예를 들어, 만약 복수의 서브 태스크 중의 각 서브 태스크가 모두 분산 시스템에서 각각의 수요를 만족시키는 타깃 노드를 찾으면 분산 시스템의 현재 가용 리소스가 복수의 서브 태스크에 필요한 토탈 리소스를 만족시킨다는 것을 결정할 수 있게 된다. 또 예를 들어, 만약 복수의 서브 태스크 중 적어도 하나의 서브 태스크가 분산 시스템에서 이의 수요를 만족시키는 타깃 노드를 찾지 못하면 분산 시스템의 현재 가용 리소스가 복수의 서브 태스크에 필요한 토탈 리소스를 만족시키지 않는다는 것을 결정할 수 있다.In some embodiments, based on the resource demand information of the plurality of sub-tasks and the current resource state information of the distributed system, it is determined whether there is a target node satisfying the demand of the plurality of sub-tasks in the distributed system, or according to a specific order The target node of each subtask among the plurality of subtasks can be determined sequentially. For example, if each sub-task among a plurality of sub-tasks finds a target node that satisfies each demand in the distributed system, it can be determined that the currently available resources of the distributed system satisfy the total resources required for the plurality of sub-tasks. do. Also, for example, if at least one sub-task among the plurality of sub-tasks does not find a target node that satisfies its demand in the distributed system, it means that the currently available resources of the distributed system do not satisfy the total resources required for the plurality of sub-tasks. can decide

전통적인 하나의 서브 태스크의 노드 결정과는 달리, 본 발명의 실시예에서, 복수의 서브 태스크의 타깃 노드는 특정 순서에 따라 순서대로 결정된 것이며, 뒤의 서브 태스크의 타깃 노드의 결정은 앞의 서브 태스크를 위해 결정한 타깃 노드의 영향을 받을 수 있다. 일부 실시예에서는, 매번 그 중의 한 서브 태스크를 위해 대응하는 타깃 노드를 결정한 후, 분산 시스템의 현재 리소스 상태 정보, 예를 들어 결정된 당해 타깃 노드의 현재 상태 정보를 업데이트 한 다음, 업데이트된 후의 현재 리소스 상태 정보에 기반하여 다음 서브 태스크에 대응하는 타깃 노드를 결정함으로써 리소스 충돌을 방지한다.Unlike the traditional determination of the node of one sub-task, in the embodiment of the present invention, the target nodes of the plurality of sub-tasks are sequentially determined according to a specific order, and the determination of the target node of the subsequent sub-task is determined by the previous sub-task. It can be influenced by the target node determined for In some embodiments, after determining a corresponding target node for one subtask each time, the current resource status information of the distributed system, for example, the determined current status information of the target node is updated, and then the updated current resource Resource conflict is prevented by determining a target node corresponding to the next sub-task based on the state information.

설명해야 할 것은, 여기서 언급한 상기 현재 리소스 상태 정보를 업데이트하는 것은 상기 모의 할당 또는 타깃 노드의 결정 과정에 사용되는 것으로서, 진실하지 않은 가상적인 업데이트인 바, 한 차례의 서브 태스크의 노드 모의 할당을 실행하거나 또는 타깃 노드를 결정한 후, 분산 시스템 중의 현재 가용 리소스의 가상 변화 상황을 가리키는 바, 서브 태스크의 실제 할당을 실행하지 않았으므로 분산 시스템 중의 현재 가용 리소스는 사실상 변화가 발생하지 않게 된다. 예를 들어, 하나의 서브 태스크의 타깃 노드를 결정한 후, 당해 타깃 노드를 당해 서브 태스크에 가상적으로 할당하고, 타깃 노드에서 당해 서브 태스크가 수요하는 리소스에 대응하는 일부 리소스를 당해 서브 태스크에 가상적으로 바인딩 한다고 간주할 수 있는 바, 이런 방식으로 가상적으로 바인딩 된 당해 리소스는 기타 서브 태스크에 다시 할당될 수 없게 된다.It should be explained that the updating of the current resource state information mentioned here is used in the mock assignment or target node determination process, and is a hypothetical update that is not true. After execution or determination of the target node, it indicates the virtual change status of the currently available resources in the distributed system. Since the actual allocation of the sub-tasks is not executed, the currently available resources in the distributed system do not actually change. For example, after determining the target node of one subtask, the target node is virtually assigned to the subtask, and some resources corresponding to the resources required by the subtask in the target node are virtually allocated to the subtask. As it can be regarded as binding, the resource virtually bound in this way cannot be re-allocated to other subtasks.

상기 특정 순서는 사전 설정 순서를 가리킬 수 있다. 또는, 일부 예에서, 상기 특정 순서는 상기 복수의 서브 태스크의 우선순위에 따라 결정할 수 있는 바, 예를 들어, 먼저 우선순위가 높은 서브 태스크를 위해 대응하는 타깃 노드를 결정하고 나서 다시 우선순위가 낮은 서브 태스크를 위해 대응하는 타깃 노드를 결정하되, 여기서 당해 우선순위는 서브 태스크 타입, 서브 태스크와 기타 서브 태스크 사이의 의존관계 등 중의 하나 또는 복수의 요소에 의해 결정될 수 있는 바, 예를 들어, 의존 관계 또는 마스터슬레이브 관계가 존재하는 두 개의 서브 태스크에 있어서, 마스터(master) 서브 태스크의 우선순위는 슬레이브(slave) 서브 태스크의 우선순위보다 높지만 본 발명의 실시예는 이에 한정되지 않는다. 또는, 다른 일부 예에서, 상기 특정 순서는 상기 서브 태스크의 의존 관계 또는 마스터슬레이브 관계에 따라 결정할 수 있다. 슬레이브 서브 태스크는 마스터 서브 태스크가 결여한 경우 실행을 시작할 수 없으므로 우선 마스터 서브 태스크에게 대응하는 타깃 노드를 할당하여 전체 태스크의 실행 효율을 향상시키는 데에 유리하도록 한다. 또는, 상기 특정 순서는 기타 요소에 의해 결정될 수도 있으며 본 발명의 실시예는 이에 대해 한정하지 않는다.The specific order may indicate a preset order. Alternatively, in some examples, the specific order may be determined according to the priorities of the plurality of sub-tasks. For example, first a corresponding target node is determined for a sub-task having a high priority, and then the priority is changed again. A corresponding target node is determined for a lower subtask, wherein the priority may be determined by one or more factors such as a subtask type, a dependency relationship between a subtask and other subtasks, and the like, for example, In two sub-tasks in which a dependency relationship or a master-slave relationship exists, the priority of the master sub-task is higher than that of the slave sub-task, but the embodiment of the present invention is not limited thereto. Alternatively, in some other examples, the specific order may be determined according to a dependency relationship or a master-slave relationship of the sub-tasks. Since the slave sub-task cannot start execution when the master sub-task is lacking, a target node corresponding to the master sub-task is first allocated to improve the execution efficiency of the entire task. Alternatively, the specific order may be determined by other factors, and embodiments of the present invention are not limited thereto.

일부 실시예에서는, 분산 시스템에 상기 복수의 서브 태스크 중의 각 서브 태스크에 필요한 리소스의 타깃 노드가 존재할 경우, 분산 시스템 중의 현재 가용 리소스가 상기 태스크 중의 복수의 서브 태스크의 리소스 수요 정보에 대응하는 토탈 리소스를 만족시킨다고 결정하고; 그렇지 않을 경우, 분산 시스템 중의 현재 가용 리소스가 상기 태스크의 복수의 서브 태스크의 리소스 수요 정보에 대응하는 토탈 리소스를 만족시키지 않는다고 결정한다.In some embodiments, when a target node of a resource required for each subtask among the plurality of subtasks exists in the distributed system, the currently available resource in the distributed system is a total resource corresponding to the resource demand information of the plurality of subtasks in the task determines that it satisfies; Otherwise, it is determined that the currently available resources in the distributed system do not satisfy the total resources corresponding to the resource demand information of a plurality of subtasks of the task.

도 3a 및 도 3b에 도시된 예와 같이, 하나의 태스크에 우선순위가 높은 데로부터 낮은 순서로 서브 태스크1, 서브 태스크2 및 서브 태스크3이 포함된다고 가정할 경우, 우선 분산 시스템의 현재 가용 리소스 정보와 서브 태스크1의 리소스 수요 정보에 근거하여 서브 태스크1을 위해 노드를 모의 할당함으로써 서브 태스크1의 타깃 노드를 얻은 다음 분산 시스템 중의 현재 리소스 상태 정보를 업데이트하며; 다시 업데이트된 후의 분산 시스템의 현재 가용 리소스 정보와 서브 태스크2의 리소스 수요 정보에 근거하여 서브 태스크2를 위해 노드를 모의 할당함으로써 서브 태스크2의 타깃 노드를 얻은 다음 분산 시스템 중의 현재 리소스 상태 정보를 업데이트하며; 그 다음, 업데이트된 후의 분산 시스템의 현재 가용 리소스 정보와 서브 태스크3의 리소스 수요 정보에 근거하여 서브 태스크3을 위해 노드를 모의 할당함으로써 서브 태스크3의 타깃 노드를 얻는다.As in the example shown in FIGS. 3A and 3B , if it is assumed that one task includes sub-task 1, sub-task 2, and sub-task 3 in the order of priority from high to low, first, the currently available resources of the distributed system obtain the target node of the sub-task 1 by allocating nodes for the sub-task 1 according to the information and the resource demand information of the sub-task 1, and then update the current resource status information in the distributed system; After being updated again, the target node of sub-task 2 is obtained by mock-allocating nodes for sub-task 2 based on the currently available resource information of the distributed system and the resource demand information of sub-task 2, and then the current resource status information in the distributed system is updated. and; Then, the target node of the sub-task 3 is obtained by mock-allocating the node for the sub-task 3 based on the updated information on the currently available resources of the distributed system and the resource demand information of the sub-task 3.

만약 서브 태스크1, 서브 태스크2 및 서브 태스크3을 위해 모두 성공적으로 노드를 모의 할당하게 되면 상기 분산 시스템의 현재 가용 리소스가 상기 복수의 서브 태스크 중의 각 서브 태스크의 수요, 즉 복수의 서브 태스크에 필요한 토탈 리소스를 만족시킨다고 결정한다. 만약 서브 태스크1, 서브 태스크2 및 서브 태스크3을 위해 노드를 모의 할당하는 것이 실패하게 될 경우, 예를 들어, 분산 시스템에서 이에 필요한 리소스를 만족시키는 타깃 노드를 찾을 수 없을 경우 상기 분산 시스템의 현재 가용 리소스는 상기 복수의 서브 태스크에 필요한 토탈 리소스를 만족시키지 못한다고 결정한다.If all nodes for sub-task 1, sub-task 2 and sub-task 3 are all successfully mock-allocated, the currently available resources of the distributed system are required for the demand of each sub-task among the plurality of sub-tasks, that is, required for the plurality of sub-tasks. It is determined that the total resource is satisfied. If the mock allocation of nodes for sub-task 1, sub-task 2, and sub-task 3 fails, for example, when a target node that satisfies the required resource cannot be found in the distributed system, the current state of the distributed system It is determined that the available resources do not satisfy the total resources required for the plurality of sub-tasks.

상기 모의 할당에 기반하여 상기 분산 시스템의 현재 가용 리소스가 상기 복수의 서브 태스크 중의 각 서브 태스크에 필요한 리소스를 만족시키는 것을 결정할 경우, 상기 모의 할당에서 결정한 각 서브 태스크에 대응하는 타깃 노드를 상기 각 서브 태스크에 할당할 수 있다.When it is determined based on the mock assignment that the currently available resource of the distributed system satisfies the resource required for each subtask among the plurality of subtasks, a target node corresponding to each subtask determined in the mock assignment is assigned to each of the subtasks. It can be assigned to a task.

일부 실시예에서는, 분산 시스템 중의 각 노드의 현재 상태 정보에 기반하여 각 서브 태스크에 대해 타깃 노드를 결정할 수 있는바, 예를 들어, 각 노드의 현재 상태 정보에 기반하여 각 노드를 배열하거나 또는 채점할 수 있고, 또한 특정 순서에 따라 순서대로 복수의 서브 태스크를 위해 배열 순위 또는 채점이 높은 노드를 할당할 수 있다.In some embodiments, a target node may be determined for each sub-task based on current status information of each node in the distributed system, for example, arranging or scoring each node based on the current status information of each node Also, according to a specific order, it is possible to allocate a node with a high arrangement rank or a high score for a plurality of sub-tasks in order.

일부 실시예에서는, 상기 태스크의 복수의 서브 태스크를 위해 타깃 노드를 결정할 경우, 사전 선택 및 최적화 두 개의 과정을 통해 복수의 서브 태스크 각각에 대응하는 타깃 노드를 결정할 수 있다.In some embodiments, when determining a target node for a plurality of subtasks of the task, a target node corresponding to each of the plurality of subtasks may be determined through two processes of preselection and optimization.

여기서, 사전 선택 과정에서, 복수의 서브 태스크의 리소스 수요 정보에 기반하여 복수의 서브 태스크 중의 각 서브 태스크를 위해 각각 분산 시스템에서 이의 수요를 만족시키는 적어도 하나의 사전 선택 노드를 초보적으로 선택하거나, 또는 분산 시스템에서 이의 수요를 만족시킬 수 없는 노드를 제거한다. 예를 들어, 상기 분산 시스템 중의 복수의 노드의 현재 상태 정보와 상기 복수의 서브 태스크의 리소스 수요 정보에 기반하여 상기 복수의 서브 태스크 중의 각 서브 태스크의 사전 선택 노드 집합을 결정하되, 여기서, 각 서브 태스크의 사전 선택 노드 집합은 적어도 하나의 사전 선택 노드를 포함한다. 상이한 서브 태스크의 사전 선택 노드 집합에는 동일하거나 상이한 노드가 포함될 수 있다.Here, in the pre-selection process, based on the resource demand information of the plurality of sub-tasks, for each sub-task among the plurality of sub-tasks, at least one pre-selection node that satisfies its demand in each distributed system is initially selected, or Remove nodes that cannot satisfy their demand in a distributed system. For example, a preselection node set of each subtask among the plurality of subtasks is determined based on current state information of a plurality of nodes in the distributed system and resource demand information of the plurality of subtasks, wherein each subtask The set of preselection nodes of the task includes at least one preselection node. The same or different nodes may be included in the set of preselection nodes of different subtasks.

최적화 과정에서, 각 서브 태스크의 사전 선택 노드 집합에서 상기 각 서브 태스크의 타깃 노드를 선택한다. 예를 들어, 서브 태스크의 사전 선택 노드 집합에서 가장 적합한 하나의 노드를 당해 서브 태스크의 타깃 노드로 선택할 수 있다. 일부 선택적인 예에서는, 서브 태스크의 사전 선택 노드 집합에 포함되는 각 사전 선택 노드의 현재 상태 정보, 예를 들어 현재 부하 상황, 가용 리소스 타입, 가용 리소스 수량, 가용 리소스 분포 및 노드 내부 사이의 토폴로지컬 연결 관계, 기타 노드와의 토폴로지컬 연결 관계 중 적어도 하나에 근거하여 타깃 노드를 결정할 수 있다. 상기 가용 리소스 타입은 통신 포트, 디스크 저장 공간, 메모리, CPU, GPU 등 중 적어도 임의의 하나를 포함하나 이에 한정되지 않는다. 상기 가용 리소스 수량은 CPU 수량, 디스크 잔여 용량, 메모리 잔여 용량 등 일 수 있다. 상기 가용 리소스 분포는 리소스 프래그먼테이션 상황으로도 불리는 바, 즉 현재 가용 리소스의 분포 위치, 예를 들어 디스크 잔여 용량이 몇 개의 디스크에 분포되었는가 하는 것이다. 분산 시스템 중의 각 노드의 토폴로지 구조는 예를 들어 버스형 토폴로지, 스타형 토폴로지, 링형 토폴로지, 트리형 토폴로지 등 일 수 있다.In the optimization process, a target node of each subtask is selected from a set of preselected nodes of each subtask. For example, one most suitable node from the preselection node set of the subtask may be selected as the target node of the subtask. In some optional examples, the current state information of each preselection node included in the preselection node set of the subtask, for example, the current load situation, the available resource type, the available resource quantity, the available resource distribution, and the topology among the nodes. The target node may be determined based on at least one of a connection relationship and a topological connection relationship with other nodes. The available resource type includes, but is not limited to, at least one of a communication port, a disk storage space, a memory, a CPU, a GPU, and the like. The available resource quantity may be a CPU quantity, a remaining disk capacity, a remaining memory capacity, and the like. The available resource distribution is also referred to as a resource fragmentation situation, that is, the current distribution position of available resources, for example, how many disks have the remaining disk capacity distributed. The topological structure of each node in the distributed system may be, for example, a bus-type topology, a star-type topology, a ring-type topology, and a tree-type topology.

일부 실시예에서, 사전 선택 과정 중, 상기 분산 시스템의 현재 리소스 상태 정보와 각 서브 태스크의 리소스 수요 정보에 기반하여 상기 각 서브 태스크의 사전 선택 노드 집합을 결정할 수 있는 바, 즉 상기 태스크의 복수의 서브 태스크 중의 각 서브 태스크의 사전 선택 과정은 서로 간섭하지 않고, 각 서브 태스크의 사전 선택 노드 집합의 선택은 기타 서브 태스크의 리소스 수요 정보에 의존하지 않고 오직 당해 서브 태스크의 리소스 수요 정보와 관련된다. 상응하게, 복수의 서브 태스크의 사전 선택 노드 집합의 결정도 병렬 또는 임의의 선후 순서로 실행될 수 있다. 이런 방식으로, 신속하게 사전 선택 노드의 결정을 실행할 수 있어 모의 할당의 전체적인 효율을 향상시킨다.In some embodiments, during the preselection process, the preselection node set of each subtask may be determined based on the current resource state information of the distributed system and the resource demand information of each subtask, that is, a plurality of The pre-selection process of each sub-task in the sub-task does not interfere with each other, and the selection of the pre-selection node set of each sub-task does not depend on the resource demand information of other sub-tasks, but only relates to the resource demand information of the sub-task. Correspondingly, the determination of the set of preselection nodes of the plurality of subtasks may also be executed in parallel or in any precedence order. In this way, the decision of the preselection node can be executed quickly, improving the overall efficiency of the mock assignment.

예를 들어, 태스크에 우선순위가 높은 데로부터 낮은 순서로 서브 태스크1, 서브 태스크2 및 서브 태스크3이 포함된다고 가정할 경우, 사전 선택 과정에서 아래와 같은 조작을 병행할 수 있다: 서브 태스크1의 리소스 수요 정보와 분산 시스템의 현재 리소스 상태 정보에 근거하여 서브 태스크1의 사전 선택 노드 집합을 결정하고, 서브 태스크2의 리소스 수요 정보와 분산 시스템의 현재 리소스 상태 정보에 근거하여 서브 태스크2의 사전 선택 노드 집합을 결정하며, 서브 태스크3의 리소스 수요 정보와 분산 시스템의 현재 리소스 상태 정보에 근거하여 서브 태스크3의 사전 선택 노드 집합을 결정하고, 서브 태스크1에 대응하는 사전 선택 노드 집합에 {노드1, 노드2, 노드3}이 포함되고, 서브 태스크2에 대응하는 사전 선택 노드 집합이 {노드2, 노드5, 노드6, 노드7}이 포함되며, 서브 태스크3에 대응하는 사전 선택 노드 집합에 {노드6 및 노드7}이 포함되는 것을 얻는다고 가정한다.For example, assuming that a task includes sub-task 1, sub-task 2, and sub-task 3 in the order of priority from high to low, the following operations can be performed in parallel during the pre-selection process: Based on the resource demand information and the current resource status information of the distributed system, the preselection node set of the subtask 1 is determined, and the preselection of the subtask 2 is based on the resource demand information of the subtask 2 and the current resource status information of the distributed system The node set is determined, and the preselection node set of the subtask 3 is determined based on the resource demand information of the subtask 3 and the current resource status information of the distributed system, and the {node1 , node2, node3} are included, the preselection node set corresponding to subtask 2 includes {node2, node5, node6, node7}, and the preselection node set corresponding to subtask3 is Assume that {node6 and node7} gets included.

일부 실시예에서, 사전 선택 과정 중, 특정 순서에 따라 복수의 서브 태스크의 사전 선택 노드 집합을 순서대로 선택할 수 있다. 선택적 일 예에서, 앞의 서브 태스크의 사전 선택 노드 집합에 기반하여 뒤의 서브 태스크의 사전 선택 노드 집합을 결정한다. 예를 들어, 뒤의 서브 태스크의 사전 선택 노드는 앞의 서브 태스크의 사전 선택 노드 집합에서 선택된 것인 바, 여기서, 당해 앞의 서브 태스크의 수량은 하나 또는 둘 이상 일 수 있고, 예를 들어, 당해 앞의 서브 태스크는 당해 뒤의 서브 태스크 이전의 모든 서브 태스크 일 수 있는 바, 당해 앞의 서브 태스크는 뒤의 서브 태스크에 인접되거나 또는 적어도 하나의 서브 태스크를 두고 이격될 수도 있으나 본 발명의 실시예는 이에 한정되지 않는다. In some embodiments, during the preselection process, a preselection node set of a plurality of subtasks may be sequentially selected according to a specific order. In an optional example, the pre-selection node set of the subsequent sub-task is determined based on the pre-selection node set of the previous sub-task. For example, the pre-selection node of the next sub-task is selected from the set of pre-selection nodes of the previous sub-task, where the quantity of the preceding sub-task may be one or two or more, for example, The preceding subtask may be all subtasks before the following subtask, and the preceding subtask may be adjacent to the next subtask or may be spaced apart by at least one subtask. Examples are not limited thereto.

일부 실시예에서, 복수의 서브 태스크의 리소스 수요 정보를 종합적으로 고려하여 복수의 서브 태스크의 사전 선택 노드 집합을 결정할 수도 있는 바, 예를 들어, 상기 복수의 서브 태스크를 위해 공용 사전 선택 노드 집합을 선택하되, 여기서, 당해 공용 사전 선택 노드 집합에 포함되는 사전 선택 노드는 복수의 서브 태스크 중 적어도 두 개의 서브 태스크의 리소스 수요를 만족시킬 수 있다.In some embodiments, the preselection node set of the plurality of subtasks may be determined by comprehensively considering resource demand information of the plurality of subtasks, for example, a common preselection node set for the plurality of subtasks However, the preselection node included in the common preselection node set may satisfy the resource demand of at least two subtasks among the plurality of subtasks.

일부 실시예에서, 최적화 과정 중, 복수의 서브 태스크의 타깃 노드를 병렬로 결정하거나 또는 복수의 서브 태스크의 후보 노드 집합과 결부하여 복수의 서브 태스크의 타깃 노드를 종합적으로 결정할 수 있다. 예를 들어, 복수의 서브 태스크 중 적어도 일부 서브 태스크의 후보 노드 집합의 교집합을 구하여, 당해 적어도 일부 서브 태스크의 타깃 노드를 결정하며 본 발명의 실시예는 이에 한정되지 않는다. In some embodiments, during the optimization process, target nodes of a plurality of sub-tasks may be determined in parallel or a target node of a plurality of sub-tasks may be comprehensively determined in conjunction with a set of candidate nodes of the plurality of sub-tasks. For example, the intersection of candidate node sets of at least some subtasks among a plurality of subtasks is obtained to determine a target node of the at least some subtasks, but the embodiment of the present invention is not limited thereto.

일부 실시예에서는, 특정 순서에 따라, 예를 들어 복수의 서브 태스크의 우선순위에 기반하여 상기 복수의 서브 태스크의 사전 선택 노드 집합에서 순서대로 상기 복수의 서브 태스크에 대응하는 타깃 노드를 결정할 수 있다. 여기서, 선택적 일 예에서, 서브 태스크 각각에 대응하는 타깃 노드를 결정할 때마다 당해 타깃 노드의 현재 상태 정보를 업데이트한다. 예를 들어, 당해 서브 태스크에 대응하는 리소스 수요 정보에 기반하여 당해 타깃 노드의 현재 상태 정보를 업데이트한다. 이런 방식으로, 후속적으로 서브 태스크의 타깃 노드를 결정하는 과정에서, 당해 타깃 노드에서 당해 서브 태스크가 수요로 하는 리소스에 대응하는 부분은 사용할 수 없게 되어 복수의 서브 태스크가 순조롭게 실행되도록 확보할 수 있다. 다른 선택적 일 예에서, 앞의 서브 태스크가 선택한 타깃 노드에 기반하여 뒤의 서브 태스크의 타깃 노드를 선택한다. 예를 들어, 당해 뒤의 서브 태스크의 후보 노드 집합에 당해 타깃 노드가 포함되지 않거나 또는 당해 타깃 노드의 기타 관건적인 요소가 뒤의 서브 태스크의 수요를 만족시키지 않는 한 뒤의 서브 태스크가 우선 앞의 서브 태스크의 타깃 노드를 자신의 타깃 노드로 선택할 수 있으며 본 발명의 실시예는 이에 한정되지 않는다.In some embodiments, a target node corresponding to the plurality of subtasks may be sequentially determined from a set of preselected nodes of the plurality of subtasks according to a specific order, for example, based on the priorities of the plurality of subtasks . Here, in an optional example, whenever a target node corresponding to each sub-task is determined, the current state information of the target node is updated. For example, the current state information of the target node is updated based on the resource demand information corresponding to the subtask. In this way, in the process of subsequently determining the target node of the subtask, the portion of the target node corresponding to the resource required by the subtask becomes unavailable, so that it is possible to ensure that a plurality of subtasks are executed smoothly. have. In another optional example, the target node of the subsequent subtask is selected based on the target node selected by the previous subtask. For example, unless the target node is not included in the set of candidate nodes of the subsequent subtask or other important factors of the target node do not satisfy the demand of the subsequent subtask, the subsequent subtask takes precedence The target node of the sub task may be selected as its own target node, and the embodiment of the present invention is not limited thereto.

동기적으로 복수의 서브 태스크를 위해 리소스 할당을 실행할 경우, 상기 사전 선택과 최적화 과정은 일 모의 할당 과정일 수 있다. 비동기적으로 복수의 서브 태스크를 위해 리소스 할당을 실행할 경우, 상기 사전 선택과 최적화 과정은 실제 노드 할당 과정일 수도 있다. 마찬가지로, 상기 과정에서 언급된 현재 리소스 상태 정보를 업데이트 하는 것은 한 차례의 서브 태스크의 노드 할당을 완료한 후, 분산 시스템 중의 현재 가용 리소스에 변화가 발생하여 실행한 실제 업데이트 과정일 수도 있다.When resource allocation is performed synchronously for a plurality of sub-tasks, the pre-selection and optimization process may be a simulated allocation process. When resource allocation is asynchronously executed for a plurality of subtasks, the preselection and optimization process may be an actual node allocation process. Similarly, the updating of the current resource state information mentioned in the above process may be an actual update process executed by a change in currently available resources in the distributed system after a node assignment of one sub task is completed.

본 발명의 실시예에서, 일정한 책략에 기반하여 사전 선택 노드 집합에서 타깃 노드를 선택할 수 있다. 예를 들어, 분산 시스템의 현재 리소스 상태 정보 또는 각 사전 선택 노드의 현재 상태 정보와 복수의 서브 태스크의 리소스 수요 정보에 기반하여 타깃 노드를 선택할 수 있다. 일부 실시예에서는, 각 서브 태스크의 사전 선택 노드 집합에 포함되는 사전 선택 노드의 점수를 결정할 수 있는 바, 예를 들어, 서브 태스크의 사전 선택 노드 집합 중의 각 사전 선택 노드의 현재 상태 정보와 당해 서브 태스크의 리소스 수요 정보에 기반하여 각 사전 선택 노드의 점수를 결정하고, 각 서브 태스크의 사전 선택 노드 집합에 포함되는 사전 선택 노드의 점수에 기반하여 상기 각 서브 태스크의 사전 선택 노드 집합으로부터 상기 각 서브 태스크의 타깃 노드를 선택할 수 있다. 예를 들어, 사전 선택 노드 집합에 포함되는 적어도 하나의 사전 선택 노드에서 점수가 제일 높은 사전 선택 노드를 타깃 노드로 선택할 수 있다. 또는, 점수와 기타 요소에 기반하여 공동으로 타깃 노드의 선택을 실행할 수 있다.In an embodiment of the present invention, a target node may be selected from a set of pre-selection nodes based on a certain strategy. For example, the target node may be selected based on current resource status information of the distributed system or current status information of each preselection node and resource demand information of a plurality of subtasks. In some embodiments, it is possible to determine the score of the preselection nodes included in the preselection node set of each subtask, for example, current state information of each preselection node in the preselection node set of the subtask and the subtask The score of each preselection node is determined based on the resource demand information of the task, and each subtask is determined from the preselection node set of each subtask based on the score of the preselection node included in the preselection node set of each subtask. You can select the target node of the task. For example, a preselection node having the highest score among at least one preselection node included in the preselection node set may be selected as the target node. Alternatively, the selection of the target node may be jointly executed based on the score and other factors.

앞의 예에 이어서, 태스크 우선순위에 기반하여 복수의 서브 태스크의 타깃 노드를 순서대로 결정하는 것을 예로 들면, 우선 서브 태스크1의 사전 선택 노드 집합 중의 각 사전 선택 노드의 점수를 결정할 수 있는 바, 만약 노드1, 노드2 및 노드3의 점수를 각각 80, 90 및 70이라고 가정할 경우, 노드2를 서브 태스크1의 타깃 노드로 결정하고 노드2의 현재 상태 정보를 업데이트한다. 그 후에, 서브 태스크2의 사전 선택 노드 집합 중의 각 사전 선택 노드의 점수를 결정하되, 여기서, 노드2의 점수는 노드2의 업데이트된 후의 현재 상태 정보에 기반하여 결정된 것이며, 만약 노드2, 노드5, 노드6 및 노드7의 점수를 각각 60, 80, 75 및 70이라고 가정할 경우, 노드5를 서브 태스크2의 타깃 노드로 결정하고 노드5의 현재 상태 정보를 업데이트한다. 마지막으로, 서브 태스크3의 사전 선택 노드 집합 중의 각 사전 선택 노드의 점수를 결정하는바, 만약 노드6과 노드7의 점수를 각각 70과 60이라고 가정할 경우, 노드6을 서브 태스크3의 타깃 노드로 결정한다.Continuing with the previous example, if target nodes of a plurality of sub-tasks are sequentially determined based on task priorities, the score of each pre-selection node in the set of pre-selection nodes of sub-task 1 can be determined first, If it is assumed that the scores of node 1, node 2, and node 3 are 80, 90, and 70, respectively, node 2 is determined as the target node of sub task 1 and the current state information of node 2 is updated. Thereafter, the score of each pre-selection node in the set of pre-selection nodes of sub-task 2 is determined, wherein the score of node 2 is determined based on the updated current state information of node 2, and if node 2 and node 5 , assuming that the scores of node 6 and node 7 are 60, 80, 75, and 70, respectively, node 5 is determined as the target node of sub task 2 and the current state information of node 5 is updated. Finally, the score of each pre-selection node in the set of pre-selection nodes of sub-task 3 is determined. If it is assumed that the scores of nodes 6 and 7 are 70 and 60, respectively, node 6 is the target node of sub-task 3 to be decided by

일부 실시예에서는, 단계201에서 획득한 태스크의 정보에 기반하여 태스크의 태스크 타입을 결정하고 태스크의 태스크 타입에 기반하여 복수의 서브 태스크를 위해 타깃 노드의 할당을 실행할 수 있다. 여기서, 태스크의 태스크 타입에 대하여 실제 상황에 따라 나눌 수 있다. 신경 네트워크 등 딥 러닝 모델의 트레이닝, 추리 등 딥 러닝 태스크에 있어서, 선택적으로 태스크를 통신 집약형 태스크와 계산 집약형 태스크 두 가지로 나눌 수 있다. 여기서, 통신 집약형 태스크는 태스크 처리 과정 중 각 서브 태스크 사이의 통신이 비교적 빈번한 태스크를 말하고, 계산 집약형 태스크는 태스크 처리 과정 중 계산량이 비교적 큰 태스크를 말한다.In some embodiments, the task type of the task may be determined based on the information of the task obtained in step 201, and target nodes may be allocated for a plurality of sub-tasks based on the task type of the task. Here, the task type of the task may be divided according to the actual situation. In deep learning tasks such as training and reasoning of deep learning models such as neural networks, tasks can be selectively divided into communication-intensive tasks and computation-intensive tasks. Here, the communication-intensive task refers to a task in which communication between sub-tasks is relatively frequent during the task processing process, and the calculation-intensive task refers to a task with a relatively large amount of computation during the task processing process.

구체적으로, 태스크의 복수의 서브 태스크의 전체 상황에 기반하여 태스크의 태스크 타입을 결정할 수 있다. 선택적 일 예로서, 상기 태스크의 복수의 서브 태스크의 계산량과 통신량에 기반하여 태스크의 태스크 타입을 결정할 수 있다. 예를 들어, 계산량이 미리 설정된 계산량 임계값보다 클 경우, 당해 태스크를 계산 집약형 태스크로 인정하고; 또 예를 들어, 통신량이 미리 설정된 통신량 임계값보다 클 경우, 당해 태스크를 통신 집약형 태스크로 인정할 수 있다. 또 예를 들어, 만약 계산량과 통신량이 모두 대응하는 사전 설정 임계값을 초과하면 이를 통신 집약형 태스크라고 결정할 수 있다. 다른 선택적 일 예로서, 과거 스케줄링 경험에 기반하여 태스크 타입을 결정할 수도 있다. 어떤 특정된 태스크에 대하여, 만약 스케줄러가 과거 스케줄링 과정 중 당해 태스크를 계산 집약형 태스크로 결정하였을 경우, 당해 태스크를 계산 집약형 태스크로 결정하고; 만약 스케줄러가 과거 스케줄링 과정 중 당해 태스크를 통신 집약형 태스크로 결정하였을 경우, 당해 태스크를 통신 집약형 태스크로 결정한다. 선택적으로, 상기 태스크에 대한 적어도 한 차례의 과거 실행 정보에 기반하여 상기 태스크의 태스크 타입을 결정할 수도 있는 바, 예를 들어, 만약 최근 한 차례 또는 여러 차례의 과거 실행 과정 중, 상기 태스크의 계산에 소요되는 시간 또는 계산 리소스가 많으면 당해 태스크를 계산 집약형 태스크로 결정하고; 또 예를 들어, 만약 최근 한 차례 또는 여러 차례의 과거 실행 과정 중, 상기 태스크의 통신이 차지한 시간 또는 통신 리소스가 많으면 당해 태스크를 통신 집약형 태스크로 결정할 수 있다. 또는, 기타 방식에 기반하여 태스크의 태스크 타입을 결정할 수도 있다. 또는, 사용자가 제공하는 정보, 예를 들어 사용자가 제공하는 태스크 타입 정보 또는 사용자가 제공하는 태스크의 계산량 및/또는 통신량 정보 등에 기반하여 태스크의 태스크 타입을 결정할 수도 있다. 본 발명의 실시예는 태스크 타입을 결정하는 구체적인 구현에 대해 한정하지 않는다.Specifically, the task type of the task may be determined based on the overall status of the plurality of sub-tasks of the task. As an optional example, the task type of the task may be determined based on the amount of computation and the amount of communication of a plurality of sub-tasks of the task. For example, when the amount of calculation is greater than a preset calculation amount threshold, the task is recognized as a calculation-intensive task; Also, for example, when the communication amount is greater than a preset communication amount threshold, the task may be recognized as a communication-intensive task. Also, for example, if both the amount of calculation and the amount of communication exceed a corresponding preset threshold, it may be determined that the task is a communication-intensive task. As another optional example, the task type may be determined based on past scheduling experience. For a specific task, if the scheduler determines the task as a computationally intensive task during the past scheduling process, determines the task as a computationally intensive task; If the scheduler determines that the task is a communication-intensive task during the past scheduling process, it determines the task as a communication-intensive task. Optionally, the task type of the task may be determined based on information on at least one past execution of the task, for example, if, during the recent one or several past executions, the calculation of the task is determining the task as a computationally intensive task when the time required or computational resources are large; Also, for example, if the communication of the task occupies a large amount of time or communication resources during one recent or several past execution processes, the task may be determined as a communication-intensive task. Alternatively, the task type of the task may be determined based on other methods. Alternatively, the task type of the task may be determined based on information provided by the user, for example, task type information provided by the user or information on the amount of computation and/or communication amount of the task provided by the user. Embodiments of the present invention are not limited to the specific implementation for determining the task type.

본 발명의 실시예에서는, 태스크 전체가 고효율적으로 실행되도록 태스크 타입에 기반하여 복수의 서브 태스크의 타깃 노드를 결정할 수 있다. 예를 들어, 통신 집약형 태스크에 있어서, 당해 태스크 중의 복수의 서브 태스크를 가능한 수량이 적은 타깃 노드에 할당함으로써 통신 오버헤드를 줄일 수 있고; 또 예를 들어, 계산 집약형 태스크에 있어서, 선택적으로 타깃 노드의 리소스가 상기 태스크의 복수의 서브 태스크의 수요를 만족시키기만 하면 되거나, 또는 계산 성능이 양호한 노드를 우선적으로 선택하거나, 또는 노드의 조각 리소스(fragmented resource)를 우선적으로 이용하거나, 또는 가능한 계산 리소스가 사용자 수요에 부합되도록 하는 전제 하에 통신 오버헤드를 최적화하는 것 등이다.In an embodiment of the present invention, the target node of the plurality of sub-tasks may be determined based on the task type so that the entire task is efficiently executed. For example, in a communication-intensive task, communication overhead can be reduced by allocating a plurality of sub-tasks in the task to target nodes with a small possible number; Also, for example, in a computationally intensive task, the resource of the target node only needs to satisfy the demand of a plurality of subtasks of the task, or a node with good computational performance is preferentially selected, or a fragment of the node Priority use of fragmented resources, or optimization of communication overhead under the premise that available computational resources meet user demand, and the like.

일부 선택적인 예에서는, 상기 태스크의 태스크 타입에 근거하여 상기 사전 선택 및/또는 최적화 과정을 실행할 수 있다.In some optional examples, the preselection and/or optimization process may be executed based on the task type of the task.

일부 실시예에서는, 태스크의 태스크 타입에 기반하여 상기 사전 선택 과정을 실행하는 바, 예를 들어, 통신 집약형 태스크에 있어서, 가용 리소스 타입 및/또는 가용 리소스 수량이 적은 등 복수의 서브 태스크에서 많은 서브 태스크 수요를 분명히 만족시킬 수 없는 노드를 제거하고, 또 예를 들어, 사전 선택 노드 집합에 포함되는 노드 수량을 일정한 범위 내에 제어하되, 여기서, 리소스 타입이 많거나 및/또는 수량이 많은 노드를 우선 선택하거나, 또는 리소스 타입이 복수의 서브 태스크의 전체 수요 리소스와 비교적 부합되는 노드를 사전 선택 노드로 사용한다. 일부 선택적인 예에서는, 각 서브 태스크를 위해 단독적인 사전 선택 노드 집합을 결정하는 것이 아니라 통신 집약형 태스크의 복수의 서브 태스크 중의 일부 또는 모든 서브 태스크를 위해 하나의 사전 선택 노드 집합을 결정할 수도 있으나 본 발명의 실시예는 이에 한정되지 않는다. In some embodiments, the pre-selection process is executed based on the task type of the task. For example, in a communication-intensive task, a large number of sub-tasks in a plurality of sub-tasks, such as a small amount of available resource types and/or available resources Eliminate nodes that cannot clearly satisfy the task demand, and control, for example, the number of nodes included in the preselection node set within a certain range, wherein nodes having a large number of resource types and/or a large number are prioritized Alternatively, a node whose resource type relatively matches the total demand resources of the plurality of sub-tasks is used as the pre-selection node. In some optional examples, instead of determining a single set of preselection nodes for each subtask, one set of preselection nodes may be determined for some or all subtasks among a plurality of subtasks of the communication-intensive task. The embodiment is not limited thereto.

다른 일부 실시예에서는, 태스크 타입에 기반하여 상기 최적화 과정을 실행한다. 예를 들어, 태스크 타입에 기반하여 타깃 노드를 선택하는 책략을 결정한다. 예를 들어, 하나의 서브 태스크의 타깃 노드를 결정하는 과정에서, 우선 앞의 서브 태스크를 위해 결정한 타깃 노드를 선택한다. 예를 들어, 태스크에 서브 태스크1과 서브 태스크2가 포함되고, 서브 태스크1의 타깃 노드에 노드1과 노드2가 포함되면 서브 태스크2에게 노드1과 노드2를 이들의 타깃 노드로 선택할 수 있다. 일부 선택적인 실시예에서는, 서브 태스크의 사전 선택 노드 집합에 포함되는 각 노드의 현재 상태 정보와 태스크의 태스크 타입에 근거하여 당해 서브 태스크의 사전 선택 노드 집합에 포함되는 각 사전 선택 노드의 점수를 결정할 수 있다. 다른 일부 실시예에서는, 기타 방식에 따라 서브 태스크의 사전 선택 노드 집합에 포함되는 각 사전 선택 노드의 점수를 결정할 수도 있으며 여기서 더 이상 설명하지 않는다.In some other embodiments, the optimization process is executed based on the task type. For example, determine a strategy for selecting a target node based on the task type. For example, in the process of determining the target node of one subtask, the target node determined for the previous subtask is first selected. For example, if sub-task 1 and sub-task 2 are included in a task, and node 1 and node 2 are included in the target node of sub-task 1, sub-task 2 can select node 1 and node 2 as their target nodes. . In some optional embodiments, the score of each pre-selection node included in the pre-selection node set of the sub-task is determined based on the task type and the current state information of each node included in the pre-selection node set of the sub-task. can In some other embodiments, the score of each preselection node included in the preselection node set of the subtask may be determined according to other methods, which will not be described further herein.

하나의 예에서, 통신 집약형 태스크에 대하여, 타깃 노드의 수량을 가능한 감소시켜 서브 태스크 사이의 통신 코스트를 감소시키고자 하므로 통신 집약형 태스크의 서브 태스크에 있어서, 리소스 분포가 집중된 노드의 점수는 일반적으로 리소스 분포가 분산된 노드보다 높다. 예를 들어, 하나의 서브 태스크의 사전 선택 노드1의 사용 가능한 디스크 용량이 두 개의 디스크에 분포되고, 사전 선택 노드2의 사용 가능한 디스크 용량이 하나의 디스크에 분포되어 있으므로, 당해 서브 태스크의 사전 선택 노드2는 사전 선택 노드1보다 점수가 높다. 다른 한 예에서는, 계산 집약형 태스크에 대하여, 계산 능력이 강한 노드의 점수는 일반적으로 계산 능력이 약한 노드의 점수보다 높다. 예를 들어, 하나의 서브 태스크의 사전 선택 노드1의 프로세서는 1개의 프로세서 코어를 포함하고, 당해 서브 태스크의 사전 선택 노드2의 프로세서는 2개의 프로세서 코어를 포함하면 당해 서브 태스크의 사전 선택 노드2는 사전 선택 노드1보다 점수가 높다.In one example, for a communication-intensive task, the number of target nodes is reduced as much as possible to reduce the communication cost between the sub-tasks, so in the sub-task of the communication-intensive task, the score of the node where the resource distribution is concentrated is generally The distribution is higher than the distributed nodes. For example, since the usable disk capacity of the preselection node 1 of one subtask is distributed over two disks, and the usable disk capacity of the preselection node 2 is distributed on one disk, the preselection of the subtask is Node 2 has a higher score than pre-selection Node 1. In another example, for a computationally intensive task, the score of a node with strong computational power is generally higher than that of a node with weak computational capability. For example, if the processor of the preselection node 1 of one subtask includes one processor core, and the processor of the preselection node2 of the subtask includes two processor cores, the preselection node2 of the subtask includes two processor cores. has a higher score than preselection node 1.

상기 프로세스는 서브 태스크를 리소스 할당 오브젝트로 설명한 것이다. 일부 실시예에서는, 또한 상기 태스크의 복수의 서브 태스크를 적어도 하나의 그룹으로 나눌 수 있는바, 여기서, 각 그룹마다 상기 복수의 서브 태스크 중 적어도 하나의 서브 태스크를 포함하고; 상기 태스크의 적어도 하나의 그룹 중의 각 그룹을 위해 각각 대응하는 타깃 노드를 할당하되, 여기서, 동일한 그룹 중의 각 서브 태스크에 동일한 타깃 노드를 할당한다.The above process describes a sub-task as a resource allocation object. In some embodiments, it is also possible to divide a plurality of subtasks of the task into at least one group, wherein each group includes at least one subtask of the plurality of subtasks; Allocate a respective corresponding target node for each group in at least one group of the task, wherein the same target node is allocated to each subtask in the same group.

그룹의 수량은 태스크가 수요하는 노드 수량과 동일한 바, 즉 태스크의 복수의 서브 태스크를 N개의 타깃 노드에 할당할 경우, 당해 태스크의 복수의 서브 태스크를 N개의 그룹으로 나눌 수 있다. 여기서, 각 그룹 중의 서브 태스크의 수량은 동일할 수도 있고 상이할 수도 있다. 예를 들어, 복수의 서브 태스크를 랜덤으로 할당하거나, 또는 우선순위가 비슷한 서브 태스크를 하나의 그룹으로 나누거나, 또는 의존관계를 구비하거나 구비하지 않는 서브 태스크를 하나의 그룹으로 나누거나, 또는 리소스 수요 수량의 차이가 큰 서브 태스크를 하나의 그룹으로 나누거나, 또는 수요되는 리소스 타입이 동일한 서브 태스크를 하나의 그룹으로 나누는 것 등이며, 본 발명의 실시예는 구체적인 그룹 방식에 대해 한정하지 않는다. 이런 방식으로, 그룹을 단위로 타깃 노드를 결정함으로써 태스크의 실행 효율에 뚜렷한 영향을 미치지 않는 전제 하에 리소스 할당 과정의 효율을 향상시킬 수 있다.The number of groups is the same as the number of nodes required by the task. That is, when a plurality of subtasks of a task are allocated to N target nodes, the plurality of subtasks of the task can be divided into N groups. Here, the number of sub-tasks in each group may be the same or different. For example, a plurality of subtasks are randomly assigned, subtasks with similar priorities are divided into one group, or subtasks with or without dependency are divided into one group, or resources A subtask having a large difference in demand quantity is divided into one group, or a subtask having the same requested resource type is divided into one group, etc. The embodiment of the present invention does not limit the specific grouping method. In this way, it is possible to improve the efficiency of the resource allocation process under the premise that the target node is not significantly affected on the execution efficiency of the task by determining the target node for each group.

일부 실시예에서는, 상기 태스크의 태스크 타입에 근거하여 상기 태스크의 복수의 서브 태스크를 적어도 하나의 그룹으로 나눌 수 있다. 예를 들어, 통신 집약형 태스크에 있어서, 상기 태스크의 복수의 서브 태스크를 수량이 적은 타깃 노드에 할당하여 서브 태스크 사이의 통신 코스트를 절감할 수 있는 바, 예를 들어, 복수의 서브 태스크 중의 모든 서브 태스크를 동일한 그룹에 나누어 모든 서브 태스크가 동일한 타깃 노트에서 실행되도록 할 수 있다. 일부 선택적인 예에서, 상기 태스크의 복수의 서브 태스크의 리소스 수요 정보에 근거하여 상기 태스크의 복수의 서브 태스크에 필요한 토탈 노드 수량을 결정할 수 있고; 상기 토탈 노드 수량에 근거하여 상기 태스크의 복수의 서브 태스크를 적어도 하나의 그룹으로 나눌 수 있다. 또 예를 들어, 계산 집약형 태스크에 있어서, 상기 태스크의 복수의 서브 태스크 중의 각 서브 태스크를 하나의 그룹으로 할 수 있는 바, 바꾸어 말하면, 서브 태스크를 단위로 타깃 노드를 결정할 수 있다. In some embodiments, a plurality of sub-tasks of the task may be divided into at least one group based on the task type of the task. For example, in a communication-intensive task, the communication cost between the sub-tasks can be reduced by allocating a plurality of sub-tasks of the task to a target node having a small number, for example, all sub-tasks among the plurality of sub-tasks. You can divide tasks into the same group so that all subtasks run on the same target note. In some optional examples, a total number of nodes required for a plurality of sub-tasks of the task may be determined according to resource demand information of the plurality of sub-tasks of the task; A plurality of sub-tasks of the task may be divided into at least one group based on the total number of nodes. Further, for example, in a computation intensive task, each subtask among a plurality of subtasks of the task can be grouped into one group. In other words, the target node can be determined for each subtask as a unit.

예를 들어, 만약 하나의 태스크에 4개의 서브 태스크가 포함되고, 각 서브 태스크에 하나의 GPU가 수요되며, 분산 시스템 중의 각 노드의 사용 가능한 GPU 수량이 2개라고 가정할 경우, 적어도 2개의 노드를 이용하여 상기 태스크 중의 4개의 서브 태스크를 실행해야 한다. 따라서, 만약 당해 태스크가 통신 집약형 태스크이면이4개의 서브 태스크를 평균적으로 2그룹으로 나누며, 여기서, 그룹은 랜덤으로 실행된 것이거나 또는 서브 태스크의 리소스 수요 정보에 기반하여 실행된 것 등 일 수 있다. 만약 당해 태스크가 계산 집약형 태스크이면이 4개의 서브 태스크를 4개의 그룹으로 나누고, 각 서브 태스크를 하나의 그룹으로 할 수 있다.For example, if one task includes 4 subtasks, each subtask requires one GPU, and it is assumed that the number of GPUs available for each node in the distributed system is 2, then at least 2 nodes 4 subtasks of the above tasks should be executed using . Therefore, if the task is a communication-intensive task, the four sub-tasks are divided into two groups on average, where the group may be randomly executed or executed based on resource demand information of the sub-task, etc. . If the task is a computationally intensive task, these four subtasks can be divided into four groups, and each subtask can be made into one group.

그룹을 나눌 경우, 선택적으로, 서브 태스크의 타깃 노드에 대한 결정도 그룹의 타깃 노드에 대한 결정에 적용될 수 있는 바, 하문에서 상세히 소개한다.When a group is divided, optionally, the determination of the target node of the sub-task can also be applied to the determination of the target node of the group, which will be introduced in detail in Xiamen.

예를 들어, 일부 실시예에서는, 상기 태스크의 적어도 하나의 그룹 중의 각 그룹에 모두 대응하는 타깃 노드가 존재할 경우, 분산 시스템 중의 현재 가용 리소스가 상기 태스크의 복수의 서브 태스크에 필요한 토탈 리소스를 만족시킨다고 결정한다. 다른 일부 실시예에서는, 상기 태스크의 적어도 하나의 그룹에 대응하는 타깃 노드가 존재하지 않을 경우, 분산 시스템 중의 현재 가용 리소스가 상기 태스크의 복수의 서브 태스크에 필요한 토탈 리소스를 만족시키지 않는다고 결정한다.For example, in some embodiments, if there are target nodes all corresponding to each group in at least one group of the task, the currently available resources in the distributed system satisfy the total resources required for a plurality of subtasks of the task. decide In some other embodiments, when a target node corresponding to at least one group of the task does not exist, it is determined that currently available resources in the distributed system do not satisfy the total resources required for a plurality of subtasks of the task.

또 예를 들어, 상기 분산 시스템의 현재 리소스 상태 정보와 상기 적어도 하나의 그룹 중의 각 그룹의 리소스 수요 정보에 기반하여 특정 순서에 따라 순서대로 상기 적어도 하나의 그룹 중의 각 그룹을 위해 타깃 노드를 결정할 수 있다. 그룹의 리소스 수요 정보는 그룹에 포함된 적어도 하나의 서브 태스크의 리소스 수요 정보에 기반하여 결정될 수 있는 바, 예를 들어, 그룹에 수요되는 리소스는 그룹에 포함되는 모든 서브 태스크에 수요되는 동일한 타입의 리소스의 총계 일 수 있다. 여기서, 상기 특정 순서는 선택적으로 상기 복수의 그룹의 우선순위와 의존관계 중 적어도 하나 또는 기타 요소에 따라 결정될 수 있다. 그룹의 우선순위는 그룹에 포함되는 두 개 이상의 서브 태스크의 우선순위에 기반하여 결정될 수 있는 바, 예를 들어, 그룹의 우선순위를 두 개 이상의 서브 태스크의 최고 우선순위로 결정하거나, 또는 그룹의 우선순위를 두 개 이상의 서브 태스크의 평균 우선순위로 결정하는 것 등이다. 그룹 사이의 의존관계는 상이한 그룹에 포함되는 서브 태스크 사이의 의존관계에 기반하여 결정되는 바, 예를 들어, 그룹1 중의 1개의 서브 태스크가 그룹2 중의 1개의 서브 태스크에 의존한다고 가정할 경우, 그룹1이 그룹2에 의존한다고 결정하는 것 등이며, 본 발명의 실시예는 이에 한정되지 않는다. Also, for example, based on the current resource status information of the distributed system and the resource demand information of each group in the at least one group, a target node may be determined for each group of the at least one group in order according to a specific order. have. The resource demand information of the group may be determined based on the resource demand information of at least one subtask included in the group. For example, the resource demanded by the group is the same type of resource demanded by all the subtasks included in the group. It can be the sum of resources. Here, the specific order may be selectively determined according to at least one or other factors among priorities and dependencies of the plurality of groups. The priority of the group may be determined based on the priorities of two or more subtasks included in the group, for example, the priority of the group is determined as the highest priority of the two or more subtasks, or Determining the priority as the average priority of two or more subtasks, and so on. The dependency relationship between groups is determined based on the dependency relationship between sub-tasks included in different groups. For example, if it is assumed that one sub-task in group 1 depends on one sub-task in group 2, Determining that group 1 depends on group 2, etc., the embodiment of the present invention is not limited thereto.

일부 실시예에서, 또한 상기 분산 시스템의 현재 리소스 상태 정보와 각 그룹의 리소스 수요 정보에 기반하여 상기 각 그룹의 사전 선택 노드 집합을 결정하고, 일정한 순서에 따라 순서대로 각 그룹의 사전 선택 노드 집합에서 상기 그룹의 타깃 노드를 결정할 수 있다.In some embodiments, the preselection node set of each group is also determined based on the current resource state information of the distributed system and the resource demand information of each group, and in a predetermined order from the preselection node set of each group in order A target node of the group may be determined.

본 발명의 실시예에서는, 우선 전체 태스크에 대하여 타깃 노드를 결정하는 바, 예를 들어, 상기 사전 선택과 최적화 동작을 실행하여 최종적으로 전체 태스크에 대응하는 타깃 노드의 정보를 획득한 다음, 다시 태스크를 서브 태스크 레벨로 분할하여 한차례 바인딩 하는 바, 즉 서브 태스크를 단위로 타깃 노드를 바인딩한다.In an embodiment of the present invention, a target node is first determined for all tasks. For example, the preselection and optimization operations are executed to finally obtain information on the target node corresponding to the entire task, and then perform the task again. is divided into sub-task level and bound once, that is, the target node is bound by sub-task unit.

일부 실시예에서는, 분산 시스템 중의 현재 가용 리소스가 상기 태스크의 복수의 서브 태스크에 필요한 토탈 리소스를 만족시키지 않는 경우, 또는 상기 복수의 서브 태스크 중 적어도 하나의 서브 태스크를 위해 대응하는 타깃 노드를 결정하는 것이 성공적이지 않을 경우, 상기 태스크가 포함하는 복수의 서브 태스크에 대해 모두 지연 할당을 실행할 수 있다. 상기 지연 할당은, 다음 할당 주기에서 상기 태스크에 포함되는 복수의 서브 태스크에 대해 할당을 실행하는 것일 수 있다. 다음 할당 주기에서, 여전히 분산 시스템 중의 현재 가용 리소스가 상기 태스크의 복수의 서브 태스크에 필요한 토탈 리소스를 만족시키는 경우에만 상기 태스크의 복수의 서브 태스크 각각에 대응하는 타깃 노드를 할당할 수 있다. 만약 다음 할당 주기에서, 분산 시스템 중의 현재 가용 리소스가 여전히 상기 태스크의 복수의 서브 태스크에 필요한 토탈 리소스를 만족시키지 않으면 계속하여 지연 할당을 실행한다.In some embodiments, when the currently available resources in the distributed system do not satisfy the total resources required for a plurality of subtasks of the task, or determining a corresponding target node for at least one subtask of the plurality of subtasks If this is not successful, the delay assignment may be executed for all sub-tasks included in the task. The delayed assignment may be to perform assignment for a plurality of sub-tasks included in the task in a next assignment cycle. In the next allocation period, it is still possible to allocate the target node corresponding to each of the plurality of subtasks of the task only when the currently available resources in the distributed system satisfy the total resources required for the plurality of subtasks of the task. If, in the next allocation period, the currently available resources in the distributed system still do not satisfy the total resources required for a plurality of subtasks of the task, the delayed allocation is continued.

일부 실시예에서, 매번 현재 서브 태스크 또는 그룹에 대응하는 타깃 노드를 결정한 후마다 현재 서브 태스크 또는 그룹에 대응하는 타깃 노드의 가상 할당을 실행하거나, 또는 현재 서브 태스크 또는 현재 그룹에 대응하는 타깃 노드의 리소스의 가상 바인딩을 실행할 수 있다. 분산 시스템 중의 현재 가용 리소스가 상기 태스크의 복수의 서브 태스크에 필요한 토탈 리소스를 만족시키지 않을 경우, 예를 들어, 어떤 서브 태스크를 위해 대응하는 타깃 노드를 찾을 수 없을 경우, 상기 가상 할당 또는 가상 바인딩을 실패로 간주하여 이에 대응하는 타깃 노드와 이의 리소스를 기타 태스크에 할당할 수 있다.In some embodiments, after each determination of the target node corresponding to the current sub-task or group, the virtual allocation of the target node corresponding to the current sub-task or group is executed, or the target node corresponding to the current sub-task or group is executed. Virtual binding of resources can be implemented. When the currently available resources in the distributed system do not satisfy the total resources required for a plurality of subtasks of the task, for example, when a corresponding target node cannot be found for a subtask, the virtual allocation or virtual binding is performed. It can be regarded as a failure and the corresponding target node and its resources can be allocated to other tasks.

일부 실시예에서, 상기 태스크의 복수의 서브 태스크 각각에 대응하는 타깃 노드를 할당한 다음, 상기 태스크의 복수의 서브 태스크에 대해 동기 스케줄링을 실행할 수 있다.In some embodiments, after allocating a target node corresponding to each of the plurality of subtasks of the task, synchronous scheduling may be performed on the plurality of subtasks of the task.

설명해야 할 것은, 본 발명의 실시예에서, 할당이란 서브 태스크를 대응하는 타깃 노드에 배분하는 것을 말하고, 스케줄링이란 서브 태스크를 대응하는 타깃 노드에 배분한 후, 대응하는 타깃 노드가 서브 태스크를 실행하는 것을 말한다.It should be explained that, in the embodiment of the present invention, assignment refers to allocating a subtask to a corresponding target node, and scheduling refers to allocating a subtask to a corresponding target node, and then the corresponding target node executes the subtask say to do

도 4에 도시된 바와 같이, 전통적인 스케줄링 방식에서는 gang scheduling을 구현하기 위하여 스케줄러가 순서에 따라 태스크 중의 복수의 서브 태스크를 처리하고, 하나의 서브 태스크가 스케줄링 될 경우, 즉시 당해 서브 태스크를 대응하는 타깃 노드에 실제로 할당(본 발명의 실시예에 따른 모의 할당이 아님)하며, 또한 타깃 노드의 리소스를 점용하여 당해 서브 태스크에 대해 스케줄링 하도록 한다. 하나의 태스크에 있어서, 당해 태스크 중의 각 서브 태스크가 할당할 때의 현재 가용 리소스는 동적으로 변화하는 바, 점점 적어지고, 이러한 스케줄링 방식은 task by task 스케줄링 방식이라고 한다. 또한, 서브 태스크의 스케줄링을 실행할 경우, 동일한 태스크 중의 복수의 서브 태스크의 스케줄링 상황과 리소스 수요를 전면적으로 고려하지 않아 매번 할당이 모두 독립적인 행위임을 초래하게 된다. 그러나 실제 경우는, 동일한 태스크 중의 복수의 서브 태스크 사이에는 종종 일부 연관이 존재하는 바, 예를 들어, 일부 스케줄링 대기 태스크는 종종 대량의 통신 수요를 수반하게 되는 바, 만약 하나의 태스크의 어떤 서브 태스크가 통신 오버헤드가 아주 큰 복수의 노드에 할당되게 되면 전체 태스크의 실행 효율에 뚜렷한 영향을 미치게 된다.As shown in Fig. 4, in the traditional scheduling method, in order to implement gang scheduling, the scheduler processes a plurality of sub-tasks among tasks in order, and when one sub-task is scheduled, a target corresponding to the sub-task immediately It is actually allocated to a node (not a simulated allocation according to the embodiment of the present invention), and the resource of the target node is occupied and scheduled for the subtask. In one task, the currently available resource when allocated by each subtask in the task is dynamically changed and gradually decreases. This scheduling method is referred to as a task by task scheduling method. In addition, when scheduling of sub-tasks is performed, the scheduling situation and resource demand of a plurality of sub-tasks in the same task are not fully considered, resulting in that all allocations are independent actions each time. However, in a practical case, there is often some association between a plurality of subtasks in the same task. For example, some tasks waiting to be scheduled often involve a large amount of communication demand. If some subtasks of one task If the communication overhead is allocated to a plurality of nodes, it will have a distinct effect on the execution efficiency of the entire task.

본 발명의 실시예에서는 태스크를 입도로 서브 태스크의 할당과 스케줄링을 실행한다. 도 5에 도시된 바와 같이, 우선, 여전히 우선순위에 따라 모든 태스크를 획득하고, 각 태스크에 대하여 전체 태스크를 전면적으로 고려하며, 분산 시스템 중의 현재 가용 리소스가 태스크의 복수의 서브 태스크에 필요한 토탈 리소스를 만족시킬 경우에만 상기 태스크의 복수의 서브 태스크 각각에 대응하는 타깃 노드를 할당하고, 그 다음 상기 복수의 서브 태스크에 대하여 동기 스케줄링을 실행하는 바, 즉 태스크를 단위로 리소스 할당과 스케줄링을 실행한다.In the embodiment of the present invention, sub-task allocation and scheduling are performed at task granularity. As shown in Fig. 5, first, all tasks are still acquired according to the priority, and for each task, the whole task is considered comprehensively, and the currently available resources in the distributed system are the total resources required for a plurality of sub-tasks of the task. A target node corresponding to each of the plurality of sub-tasks of the task is allocated only when . .

상기 서브 태스크의 수요에 따라 task by task 스케줄링 방식을 실행하는 것과는 달리, 본 발명의 실시예는 태스크를 위해 노드를 선택할 때 전체 태스크를 총괄적으로 고려하고, 전체 태스크를 스케줄링의 최소 단위로 함으로써 태스크 내의 각 서브 태스크의 상호 관계와 수요 상황을 더 잘 이용할 수 있으며 전체 태스크를 위해 클러스터에서 더 적합한 스케줄링 노드를 선택하여 태스크의 실행 효율과 클러스터의 리소스 이용 효율을 향상시킨다.Unlike executing the task-by-task scheduling method according to the demand of the sub-task, the embodiment of the present invention considers the entire task as a whole when selecting a node for the task, and considers the entire task as the minimum unit of scheduling. It can better utilize the interrelationship and demand situation of each subtask, and select a more suitable scheduling node in the cluster for the whole task, improving the execution efficiency of the task and the resource utilization efficiency of the cluster.

도 6에 도시된 바와 같이, 이는 본 발명의 일부 실시예에 따른 스케줄링 로직의 모식도이다. 스케줄링의 복잡성을 줄이기 위하여 각 스케줄링 대기 태스크에 대해 아래와 같은 가정을 수행할 수 있다.6 , this is a schematic diagram of scheduling logic according to some embodiments of the present invention. In order to reduce scheduling complexity, the following assumptions may be made for each scheduled waiting task.

(1)각 태스크마다 복수의 서브 태스크를 가진다; (1) Each task has a plurality of sub-tasks;

(2)각 서브 태스크는 리소스 수요에서는 동질적인 바, 즉 리소스에 대한 수요가 동일하다; (2) each sub-task is homogeneous in resource demand, that is, the demand for resources is the same;

(3)각 사용자가 제출한 태스크는 제출할 때 각 서브 태스크의 리소스에 대한 수요량을 지정하고, 전체 태스크 처리 과정에서 서브 태스크의 수량과 각 서브 태스크의 리소스 수요량을 변하지 않고 유지된다.(3) The task submitted by each user specifies the resource demand for each sub-task when submitted, and the quantity of the sub-task and the resource demand for each sub-task remain unchanged during the entire task processing process.

우선, 사전 선택 과정을 실행하여 사용자의 태스크를 만족시키지 못하는 노드를 제거한다. 구체적으로는 아래와 같은 단계를 포함한다.First, a preselection process is executed to remove nodes that do not satisfy the user's task. Specifically, it includes the following steps.

(1)태스크의 각 서브 태스크에 대하여, 상기 분산 시스템의 현재 리소스 상태 정보와 각 서브 태스크의 리소스 수요 정보에 기반하여 당해 서브 태스크의 사전 선택 노드 집합을 각각 결정하고, 당해 서브 태스크의 사전 선택 노드 집합 외의 노드는 필연적으로 당해 서브 태스크가 그 노드에서 실행되는 것을 지원할 수 없다. 여기서, 태스크는 job라고 지칭될 수 있고 서브 태스크는 task라고 지칭될 수 있다. 상이한 서브 태스크의 사전 선택 노드 집합은 동일할 수도 있고 상이할 수도 있다.(1) For each subtask of the task, based on the current resource state information of the distributed system and the resource demand information of each subtask, a set of preselection nodes of the subtask is determined, respectively, and the preselection node of the subtask A node outside the set cannot necessarily support the execution of the subtask on that node. Here, a task may be referred to as a job and a sub-task may be referred to as a task. The set of preselection nodes of different subtasks may be the same or different.

일부 선택적인 예에서는, 앞의 서브 태스크의 사전 선택 노드 집합에서 뒤의 서브 태스크의 사전 선택 노드를 결정할 수 있는바, 여기서, 서브 태스크의 순서는 선택적으로 서브 태스크의 우선순위에 기반하여 결정될 수 있다. 예를 들어, 분산 시스템에 노드1 내지 노드5가 포함되고, 하나의 태스크가 서브 태스크1, 서브 태스크2 및 서브 태스크3을 포함한다고 가정할 경우, 먼저 서브 태스크1을 위해 사전 선택 노드를 결정하여 노드1, 노드2 및 노드3이라고 가정할 수 있으며; 다음, 노드1, 노드2 및 노드3에서 서브 태스크2의 사전 선택 노드를 결정하여 노드2와 노드3이라고 가정하고; 다시 노드2와 노드3에서 서브 태스크3의 사전 선택 노드를 결정하여 노드3이라고 가정할 수 있다. 이러한 사전 선택 노드 집합을 결정하는 방식을 통해 일정량의 통신 수요가 있는 태스크에 대하여, 특히 통신 집약형 태스크에 대해 사전 선택 노드 집합을 결정하는 효율을 향상시키고, 나아가 태스크 할당 효율을 향상시킬 수 있다.In some optional examples, a preselection node of a subsequent subtask may be determined from a set of preselection nodes of a previous subtask, wherein the order of the subtasks may optionally be determined based on the priority of the subtasks . For example, if it is assumed that nodes 1 to 5 are included in the distributed system, and one task includes sub-task 1, sub-task 2, and sub-task 3, first, a preselection node for sub-task 1 is determined and It can be assumed that node1, node2 and node3 are; Next, the pre-selection nodes of the sub-task 2 are determined in the nodes 1, 2 and 3, assuming that they are the nodes 2 and 3; Again, it can be assumed that it is node 3 by determining the pre-selection node of sub task 3 in node 2 and node 3 again. Through such a method of determining the pre-selection node set, it is possible to improve the efficiency of determining the pre-selection node set for a task with a certain amount of communication demand, particularly for a communication-intensive task, and further improve the task allocation efficiency.

(2)사전 선택 노드 집합 중의 각 사전 선택 노드를 검증하여 당해 사전 선택 노드 상의 토탈 리소스가 당해 사전 선택 노드에 할당된 모든 서브 태스크의 토탈 리소스 수요를 만족시키는지 여부를 결정할 수 있다. 만약 만족시키면 최적화 과정을 실행하고, 만족시키지 않으면 사전 선택 과정을 다시 실행한다.(2) it is possible to verify each preselection node in the preselection node set to determine whether the total resource on the preselection node satisfies the total resource demands of all subtasks assigned to the preselection node. If it is satisfied, the optimization process is run; if not, the preselection process is run again.

여기서, 당해 단계는 선택적인 것으로서, 사전 선택 노드의 검증은 전체 태스크 할당의 신뢰도를 향상시킬 수 있다. 사전 선택 과정을 실행하기 전에, 우선 노드 집합 분할을 실행할 수 있는 바, 즉 각 노드를 그룹으로 나눌 경우, 그룹으로 나누는 기준은 노드가 속하는 클러스터일 수 있는 바, 즉 상이한 클러스터 상의 노드를 상이한 그룹으로 나눈다. 노드 집합 분할을 실행하는 것을 통해 상이한 태스크로 하여금 특정된 그룹의 노드에만 할당되도록 할 수 있다.Here, this step is optional, and verification of the pre-selection node can improve the reliability of the overall task assignment. Before executing the pre-selection process, first, node set partitioning can be performed, that is, when each node is divided into groups, the criterion for dividing the group into groups can be the cluster to which the node belongs, that is, nodes on different clusters are divided into different groups. share By performing node set partitioning, different tasks can be assigned only to nodes of a specified group.

다음, 최적화 과정을 실행하는바, 사용자의 태스크에 제일 적합한 타깃 노드를 선택한다. 구체적으로 말하면 아래 단계를 포함할 수 있다.Next, the optimization process is executed, and the target node most suitable for the user's task is selected. Specifically, it may include the following steps.

(1)사용자 태스크 중의 사용자가 제공하는 정보와 스케줄러의 과거 경험에 의해 태스크의 트레이닝 과정 중의 계산량 및 통신량을 획득하고, 계산량 및 통신량에 기반하여 사용자의 태스크가 계산 집약형인지 통신 집약형인지를 판정한다.(1) Acquire the amount of computation and communication during the training process of the task based on the information provided by the user in the user task and the past experience of the scheduler, and determine whether the user's task is of the computation-intensive type or the communication-intensive type based on the amount of computation and communication.

일부 선택적인 예에서, 태스크 타입의 결정은 상기 사전 선택 과정 중 또는 사전 선택 과정 전에 실행될 수도 있으며, 태스크 타입에 기반하여 서브 태스크의 사전 선택 노드 집합을 결정할 수 있다.In some optional examples, the determination of the task type may be performed during or before the preselection process, and the preselection node set of the subtask may be determined based on the task type.

일부 선택적인 예에서는, 태스크 타입에 기반하여 최적화 과정 중에서 복수의 서브 태스크의 타깃 노드를 결정한다. 만약 통신 집약형 태스크이면 당해 태스크를 수량이 제일 적은 물리적 노드(즉 타깃 노드)에 배치(즉 할당)하고, 구체적으로 할당된 물리적 노드의 수량은 노드의 가용 리소스와 태스크에 필요한 리소스가 공동으로 결정하며, 만약 이러한 배치 제약을 만족시킬 수 없으면 태스크 중의 복수의 서브 태스크에 대하여 모두 지연 할당을 실행한다. 만약 계산 집약형 태스크이면 이러한 배치 제약을 완화시켜 제일 적은 물리적 노드를 만족시키지 못하더라도 리소스가 충분한 노드를 선택하여 태스크 수요를 만족시킬 수만 있다면 할당을 실행하고, 그렇지 않으면 할당을 연기한다.In some optional examples, target nodes of the plurality of sub-tasks are determined during the optimization process based on the task type. If it is a communication-intensive task, the task is placed (i.e., allocated) on the physical node with the smallest quantity (i.e., the target node), and the number of specifically allocated physical nodes is jointly determined by the node's available resources and the resources required for the task. , if this arrangement constraint cannot be satisfied, delay assignment is performed for all subtasks in the task. If it is a computationally intensive task, the allocation is executed if it can satisfy the task demand by selecting a node with sufficient resources even if it does not satisfy the fewest physical nodes by relaxing these placement constraints; otherwise, the allocation is postponed.

(2)클러스터 노드에 대하여 잉여 리소스에 따라 큰 것부터 작은 순서로 채점하고 배열하여 사전 선택 노드 집합으로부터 태스크로의 매핑 점수를 얻는 바, 여기서, 사전 선택 노드의 점수는 분산 시스템의 클러스터 중의 노드 부하와 노드 리소스 프래그먼테이션 상황에 따라 결정할 수 있다. 노드 부하는 클러스터 중의 각 노드의 현재 시각의 현재 가용 리소스 총량과 리소스 사용량을 말한다. 리소스 프래그먼테이션 상황은 노드 중의 리소스 분포를 말한다.(2) For the cluster nodes, scoring and arranging them in order from largest to smallest according to surplus resources to obtain a mapping score from the set of pre-selection nodes to tasks, where the score of the pre-selection node is equal to the node load in the cluster of the distributed system It can be decided according to the node resource fragmentation situation. The node load refers to the total amount of resources currently available and resource usage of each node in the cluster at the current time. The resource fragmentation situation refers to resource distribution among nodes.

(3)상기 단계에서 선택된 모든 노드에 대하여, 안착시킬 수 없거나 또는 태스크의 모든 task가 모두 배치될 때까지 높은 점수로부터 낮은 점수 순서대로 태스크의 task를 배치시킨다.(3) For all the nodes selected in the above step, the tasks of the tasks are arranged in order from the highest score to the lowest score until they cannot be settled or all tasks of the task are arranged.

(4)태스크 상태를 검출한다. 만약 태스크에 아직도 잉여 task가 배치되지 않았으면 클러스터 리소스가 부족하여 할당에 실패한 것을 설명하며, 태스크가 점용한 리소스를 방출하여 할당을 연기한다. 만약 job에 잉여 task가 존재하지 않고 또한 태스크 타입이 통신 집약형이면 제일 적은 노드 수요를 만족시키는지 여부를 판정한다. 만약 만족시키면 할당에 성공한 것이고, 만족시키지 않으면 할당에 실패하여 리소스를 방출하여 할당을 연기한다.(4) The task state is detected. If there are still no surplus tasks assigned to the task, it explains that the allocation failed due to insufficient cluster resources, and the allocation is delayed by releasing the resources occupied by the task. If there are no redundant tasks in the job and the task type is communication-intensive, it is determined whether the smallest node demand is satisfied. If it is satisfied, the allocation was successful. If not, the allocation fails and the allocation is delayed by releasing the resource.

본 발명의 실시예에 따른 방법은 태스크 어레인징 시스템 또는 클라우드 플랫폼에 응용될 수 있고, 상기 태스크 어레인징 시스템은 Kubernetes 등 플랫폼에 기반하여 구현될 수 있다.The method according to an embodiment of the present invention may be applied to a task arranging system or a cloud platform, and the task arranging system may be implemented based on a platform such as Kubernetes.

본 기술분야의 통상의 기술자는, 특정 구현의 설명된 방법에서, 각각의 단계의 드래프팅 순서가 엄격하게 실행된 순서가 구현 프로세스에 대한 임의의 제한을 형성한다는 것을 암시하지 않으며, 각각의 단계의 특정 실행 순서는 그것의 기능 및 가능하게는 고유 로직에 의해 결정되어야 한다는 것을 이해할 수 있다.A person of ordinary skill in the art, in the described method of a particular implementation, does not imply that the drafting order of each step is strictly executed, the order in which it is executed forms any limitation on the implementation process, and that the It will be appreciated that the particular execution order should be determined by its function and possibly native logic.

도 7에 도시된 바와 같이, 본 발명의 실시예는 태스크 스케줄링 장치를 더 제공하는 바, 상기 장치는,7, an embodiment of the present invention further provides a task scheduling apparatus, the apparatus comprising:

상기 태스크의 태스크 타입 및 리소스 수요 정보 중 적어도 하나를 포함하는 태스크의 정보를 획득하는 획득 모듈(701); an acquiring module 701 for acquiring information on a task including at least one of a task type and resource demand information of the task;

상기 태스크의 정보에 근거하여 상기 태스크에 포함되는 복수의 서브 태스크 각각에 타깃 노드를 할당하는 제1 할당 모듈(702)을 포함한다.and a first assignment module 702 for allocating a target node to each of a plurality of sub-tasks included in the task based on the information on the task.

일부 실시예에서, 상기 태스크의 리소스 수요 정보는 상기 태스크가 포함하는 복수의 서브 태스크의 리소스 수요 정보이고; 당해 제1 할당 모듈(702)은 또 분산 시스템 중의 현재 가용 리소스가 상기 태스크의 복수의 서브 태스크의 리소스 수요 정보에 대응하는 토탈 리소스를 만족시킬 경우, 상기 태스크의 복수의 서브 태스크 각각에 대응하는 타깃 노드를 할당한다.In some embodiments, the resource demand information of the task is resource demand information of a plurality of sub-tasks included in the task; The first allocation module 702 is further configured to, when the currently available resources in the distributed system satisfy the total resources corresponding to the resource demand information of the plurality of subtasks of the task, a target corresponding to each of the plurality of subtasks of the task Allocate a node.

일부 실시예에서, 상기 장치는, 상기 분산 시스템의 현재 리소스 상태 정보와 상기 복수의 서브 태스크의 리소스 수요 정보에 기반하여 상기 복수의 서브 태스크를 위해 타깃 노드를 결정하기 위한 제1 결정 모듈을 더 포함하고; 상기 제1 할당 모듈은, 상기 복수의 서브 태스크 중의 각 서브 태스크를 위해 대응하는 타깃 노드를 성공적으로 결정할 경우, 상기 태스크의 복수의 서브 태스크 각각에 대응하는 타깃 노드를 할당한다.In some embodiments, the apparatus further comprises a first determining module, configured to determine a target node for the plurality of sub-tasks based on current resource state information of the distributed system and resource demand information of the plurality of sub-tasks do; The first allocation module allocates a target node corresponding to each of the plurality of subtasks of the task when a corresponding target node is successfully determined for each subtask among the plurality of subtasks.

일부 실시예에서, 상기 장치는, 상기 분산 시스템의 현재 리소스 상태 정보와 상기 복수의 서브 태스크의 리소스 수요 정보에 기반하여 상기 복수의 서브 태스크를 위해 타깃 노드를 결정하기 위한 제1 결정 모듈을 더 포함하고; 상기 제1 할당 모듈은, 상기 복수의 서브 태스크 중의 각 서브 태스크를 위해 대응하는 타깃 노드를 성공적으로 결정할 경우, 상기 태스크의 복수의 서브 태스크 각각에 대응하는 타깃 노드를 할당한다.In some embodiments, the apparatus further comprises a first determining module, configured to determine a target node for the plurality of sub-tasks based on current resource state information of the distributed system and resource demand information of the plurality of sub-tasks do; The first allocation module allocates a target node corresponding to each of the plurality of subtasks of the task when a corresponding target node is successfully determined for each subtask among the plurality of subtasks.

일부 실시예에서, 상기 제1 결정 모듈은, 상기 분산 시스템의 현재 리소스 상태 정보와 상기 복수의 서브 태스크의 리소스 수요 정보에 기반하여 특정 순서에 따라 순서대로 복수의 서브 태스크에 대응하는 타깃 노드를 결정한다.In some embodiments, the first determining module determines a target node corresponding to a plurality of sub-tasks in order according to a specific order based on the current resource state information of the distributed system and the resource demand information of the plurality of sub-tasks do.

선택적 일 예에서, 상기 복수의 서브 태스크의 리소스 수요 정보는 상기 복수의 서브 태스크 중의 각 서브 태스크의 리소스 수요 정보를 포함하되, 여기서, 상기 리소스 수요 정보는 필요한 리소스 타입과 각 타입의 리소스 수량을 포함하거나 또는 기타 정보를 더 포함할 수 있다. In an optional example, the resource demand information of the plurality of subtasks includes resource demand information of each subtask among the plurality of subtasks, wherein the resource demand information includes a required resource type and a quantity of each type of resource or may further include other information.

선택적 일 예에서, 상기 분산 시스템의 현재 리소스 상태 정보는 상기 분산 시스템 중의 복수의 노드의 현재 상태 정보를 포함할 수 있으며, 여기서, 현재 상태 정보는 리소스의 가용 여부, 가용 리소스의 타입과 수량, 부하 상황, 토폴로지컬 연결 정보 중 적어도 하나를 나타내거나 또는 기타 정보를 더 포함한다.In an optional example, the current resource status information of the distributed system may include current status information of a plurality of nodes in the distributed system, wherein the current status information includes availability of resources, types and quantities of available resources, and loads It indicates at least one of context and topological connection information, or further includes other information.

일부 실시예에서, 상기 장치는, 매번 하나의 서브 태스크를 위해 타깃 노드를 결정한 후, 분산 시스템의 현재 리소스 상태 정보를 업데이트하고, 업데이트된 후의 현재 리소스 상태 정보에 기반하여 다음 서브 태스크에 대응하는 타깃 노드를 결정하기 위한 업데이트 모듈을 더 포함한다.In some embodiments, the device is configured to: after determining a target node for one sub-task each time, update the current resource status information of the distributed system, and based on the updated current resource status information, the target corresponding to the next sub-task and an update module for determining the node.

일부 실시예에서, 상기 복수의 서브 태스크의 타깃 노드의 순차적인 결정 순서는 서브 태스크의 우선순위, 서브 태스크 사이의 의존관계 중 적어도 하나에 기반하여 결정된 것이다.In some embodiments, the sequential determination order of the target nodes of the plurality of sub-tasks is determined based on at least one of a priority of the sub-tasks and a dependency relationship between the sub-tasks.

일부 실시예에서, 상기 제1 결정 모듈은, 상기 분산 시스템의 현재 리소스 상태 정보와 상기 복수의 서브 태스크의 리소스 수요 정보에 기반하여 상기 복수의 서브 태스크를 위해 순서대로 타깃 노드를 결정하기 위한 제1 결정 유닛; 매번 하나의 서브 태스크의 타깃 노드를 결정한 후, 상기 하나의 서브 태스크의 리소스 수요 정보에 기반하여 상기 분산 시스템의 현재 리소스 상태 정보를 업데이트하기 위한 업데이트 유닛을 포함한다.In some embodiments, the first determining module is configured to sequentially determine a target node for the plurality of sub-tasks based on the current resource state information of the distributed system and the resource demand information of the plurality of sub-tasks. decision unit; an update unit configured to update the current resource state information of the distributed system according to the resource demand information of the one subtask after each time determining the target node of the one subtask.

일부 실시예에서, 상기 장치는, 상기 복수의 서브 태스크 중 적어도 하나의 서브 태스크를 위해 타깃 노드를 성공적으로 결정하지 못하였을 경우, 상기 분산 시스템의 현재 가용 리소스가 상기 복수의 서브 태스크 중의 각 서브 태스크가 수요하는 리소스를 만족하지 않는다는 것을 결정하기 위한 제2 결정 모듈을 더 포함한다.In some embodiments, the device is configured to, when the target node for at least one subtask among the plurality of subtasks is not successfully determined, the currently available resources of the distributed system are allocated to each subtask of the plurality of subtasks. and a second determining module for determining that does not satisfy the required resource.

일부 실시예에서, 상기 제1 결정 유닛은, 상기 분산 시스템의 현재 리소스 상태 정보와 상기 복수의 서브 태스크의 리소스 수요 정보에 기반하여 상기 복수의 서브 태스크 중의 각 서브 태스크의 사전 선택 노드 집합을 결정하기 위한 결정 서브 유닛; 상기 복수의 서브 태스크 중의 각 서브 태스크의 사전 선택 노드 집합에서 상기 각 서브 태스크의 타깃 노드를 선택하기 위한 선택 서브 유닛을 포함한다.In some embodiments, the first determining unit is configured to: determine a preselection node set of each subtask among the plurality of subtasks based on the current resource state information of the distributed system and the resource demand information of the plurality of subtasks a decision sub-unit for; and a selection sub-unit for selecting a target node of each sub-task from a set of pre-selection nodes of each sub-task among the plurality of sub-tasks.

여기서, 상이한 서브 태스크의 사전 선택 노드 집합은 동일하거나 상이할 수 있다. 일부 예에서, 복수의 서브 태스크는 동일한 사전 선택 노드 집합을 가질 수 있다.Here, the preselection node sets of different subtasks may be the same or different. In some examples, a plurality of sub-tasks may have the same set of pre-selection nodes.

일부 실시예에서, 상기 결정 서브 유닛은, 상기 분산 시스템의 현재 리소스 상태 정보와 각 서브 태스크의 리소스 수요 정보에 기반하여 상기 각 서브 태스크의 사전 선택 노드 집합을 결정한다.In some embodiments, the determining sub-unit determines the pre-selection node set of each sub-task based on the current resource state information of the distributed system and the resource demand information of each sub-task.

복수의 서브 태스크의 사전 선택 노드 집합의 결정은 독립적인 것으로서 서로 의존관계가 존재하지 않을 수 있는 바, 예를 들어, 병렬로 실행되거나 또는 임의의 선후 순서로 실행될 수 있다. 예를 들어, 복수의 서브 태스크의 사전 선택 노드 집합은 동일한 분산 시스템의 현재 리소스 상태 정보에 기반하여 결정된 것인 바, 즉, 분산 시스템의 현재 리소스 상태 정보는 사전 선택 과정에서 업데이트하지 않을 수 있다. 예를 들어, 각 서브 태스크의 사전 선택 노드 집합의 결정은 단지 자신의 리소스 수요 정보와 관련되고 기타 서브 태스크의 리소스 수요 정보와는 무관하다.Determination of the pre-selection node set of the plurality of sub-tasks is independent and may not have a mutual dependency, for example, may be executed in parallel or may be executed in an arbitrary precedence order. For example, the preselection node set of the plurality of subtasks is determined based on the current resource state information of the same distributed system, that is, the current resource state information of the distributed system may not be updated during the preselection process. For example, the determination of the pre-selection node set of each sub-task is only related to its own resource demand information and is independent of the resource demand information of other sub-tasks.

일부 실시예에서, 상기 결정 서브 유닛은, 특정 순서에 따라 순서대로 상기 복수의 서브 태스크 중의 각 서브 태스크의 사전 선택 노드 집합을 결정하되, 여기서, 상기 복수의 서브 태스크 중의 제1 서브 태스크의 사전 선택 노드 집합의 사전 선택 노드는 상기 복수의 서브 태스크 중의 제2 서브 태스크의 사전 선택 노드 집합으로부터 선택된 것이고, 여기서, 상기 제2 서브 태스크의 순서는 상기 제1 서브 태스크의 앞에 위치한다.In some embodiments, the determining subunit determines a set of preselection nodes of each subtask among the plurality of subtasks in an order according to a specific order, wherein the preselection of a first subtask among the plurality of subtasks The preselection node of the node set is selected from a preselection node set of a second subtask among the plurality of subtasks, wherein the order of the second subtask is located before the first subtask.

일부 실시예에서, 특정 순서에 따라 순서대로 상기 복수의 서브 태스크 중의 각 서브 태스크의 사전 선택 노드로부터 상기 각 서브 태스크의 타깃 노드를 선택, 여기서, 우선 상기 복수의 서브 태스크 중의 제2 서브 태스크의 타깃 노드를 선택하여 상기 복수의 서브 태스크 중의 제1 서브 태스크의 타깃 노드로 하고, 여기서, 상기 제2 서브 태스크의 순서는 상기 제1 서브 태스크의 앞에 위치한다.In some embodiments, a target node of each subtask is selected from a preselection node of each subtask of the plurality of subtasks in order according to a specific order, wherein first a target of a second subtask of the plurality of subtasks A node is selected as a target node of a first sub-task among the plurality of sub-tasks, wherein the order of the second sub-task is located before the first sub-task.

일부 실시예에서, 상기 선택 서브 유닛은, 상기 분산 시스템의 현재 리소스 상태 정보에 기반하여 상기 복수의 서브 태스크 중의 제1 서브 태스크의 사전 선택 노드 집합에서 상기 제1 서브 태스크의 타깃 노드를 결정하며; 상기 제1 서브 태스크의 리소스 수요 정보에 기반하여 상기 분산 시스템의 현재 리소스 상태 정보를 업데이트하고, 상기 분산 시스템의 업데이트된 후의 현재 리소스 상태 정보에 기반하여 상기 복수의 서브 태스크 중의 제2 서브 태스크의 사전 선택 노드 집합으로부터 상기 제2 서브 태스크의 타깃 노드를 결정한다.In some embodiments, the selection sub-unit is configured to: determine a target node of the first sub-task from a set of pre-selection nodes of a first sub-task among the plurality of sub-tasks based on the current resource state information of the distributed system; Update the current resource state information of the distributed system according to the resource demand information of the first sub-task, and according to the updated current resource state information of the distributed system, a dictionary of a second sub-task of the plurality of sub-tasks A target node of the second sub-task is determined from the selected node set.

선택적 일 예에서, 제1 서브 태스크의 사전 선택 노드 집합 중의 각 사전 선택 노드의 현재 상태 정보에 기반하여 상기 제1 서브 태스크의 사전 선택 노드 집합에서 상기 제1 서브 태스크의 타깃 노드를 결정하고, 상기 제1 서브 태스크의 필요한 리소스 정보에 기반하여 상기 제1 서브 태스크의 타깃 노드의 현재 상태 정보를 업데이트한다.In an optional example, determining a target node of the first subtask in the preselection node set of the first subtask based on current state information of each preselection node in the preselection node set of the first subtask, and The current state information of the target node of the first sub-task is updated based on the required resource information of the first sub-task.

일부 실시예에서, 상기 선택 서브 유닛은, 상기 태스크의 태스크 타입에 근거하여 각 서브 태스크의 사전 선택 노드 집합에 포함되는 사전 선택 노드의 점수를 결정하고; 각 서브 태스크의 사전 선택 노드 집합에 포함되는 사전 선택 노드의 점수에 기반하여 상기 각 서브 태스크의 사전 선택 노드 집합으로부터 상기 각 서브 태스크의 타깃 노드를 선택한다.In some embodiments, the selection sub-unit is configured to: determine a score of a pre-selection node included in a set of pre-selection nodes of each sub-task according to the task type of the task; A target node of each subtask is selected from the set of preselection nodes of each subtask based on the scores of the preselection nodes included in the preselection node set of each subtask.

선택적 일 예에서, 상기 태스크의 태스크 타입에 기반하여 상기 사전 선택 노드 집합 중의 각 사전 선택 노드의 점수 결정 책략을 결정한다.In an optional example, a scoring strategy of each pre-selection node in the set of pre-selection nodes is determined based on the task type of the task.

일부 실시예에서, 상기 장치는, 상기 태스크의 태스크 타입을 결정하는 제3 결정 모듈을 더 포함하되; 여기서, 상기 복수의 서브 태스크에 대응하는 타깃 노드는 상기 태스크의 태스크 타입에 기반하여 결정된다.In some embodiments, the apparatus further comprises: a third determining module for determining a task type of the task; Here, the target node corresponding to the plurality of sub-tasks is determined based on the task type of the task.

일부 실시예에서, 상기 제1 할당 모듈은, 상기 태스크의 복수의 서브 태스크를 적어도 하나의 그룹으로 나누기 위한 그룹 유닛 - 각 그룹마다 상기 복수의 서브 태스크 중 적어도 하나의 서브 태스크를 포함함 -; 및 상기 적어도 하나의 그룹 중의 각 그룹에게 대응하는 타깃 노드를 할당하기 위한 할당 유닛을 포함하되, 여기서, 동일한 그룹 중의 각 서브 태스크에 동일한 타깃 노드를 할당한다.In some embodiments, the first allocation module comprises: a group unit for dividing the plurality of subtasks of the task into at least one group, each group including at least one subtask of the plurality of subtasks; and an allocation unit for allocating a corresponding target node to each group in the at least one group, wherein the same target node is allocated to each subtask in the same group.

일부 실시예에서, 상기 그룹 유닛은, 상기 태스크의 태스크 타입에 근거하여 상기 태스크의 복수의 서브 태스크를 적어도 하나의 그룹으로 나눈다.In some embodiments, the group unit divides the plurality of sub-tasks of the task into at least one group according to the task type of the task.

일부 실시예에서, 상기 태스크의 태스크 타입은 계산 집약형 또는 통신 집약형이다.In some embodiments, the task type of the task is computationally intensive or communication intensive.

일부 실시예에서, 상기 그룹 유닛은, 상기 태스크의 태스크 타입이 통신 집약형인 경우, 상기 태스크의 복수의 서브 태스크의 리소스 수요 정보에 근거하여 상기 복수의 서브 태스크에 필요한 토탈 노드 수량을 결정하고, 또한 상기 토탈 노드 수량에 근거하여 상기 태스크의 복수의 서브 태스크를 적어도 하나의 그룹으로 나눈다.In some embodiments, when the task type of the task is communication-intensive, the group unit determines a total number of nodes required for the plurality of sub-tasks according to resource demand information of the plurality of sub-tasks of the task, and A plurality of sub-tasks of the task are divided into at least one group according to the total number of nodes.

일부 실시예에서, 상기 태스크의 태스크 타입이 계산 집약형인 경우, 상기 복수의 서브 태스크 중의 각 서브 태스크를 하나의 그룹으로 한다.In some embodiments, when the task type of the task is a computation intensive type, each subtask among the plurality of subtasks is set as a group.

일부 실시예에서, 상기 적어도 하나의 그룹 중의 각 그룹을 위해 사전 선택 노드 집합을 결정하고, 순서대로 상기 적어도 하나의 그룹 중의 각 그룹의 사전 선택 노드 집합으로부터 상기 그룹의 타깃 노드를 선택한다.In some embodiments, a set of preselected nodes is determined for each group of the at least one group, and in order, a target node of the group is selected from the set of preselection nodes of each group of the at least one group.

일부 실시예에서, 상기 제1 할당 모듈은 또, 상기 태스크의 태스크 타입에 기반하여 상기 태스크의 복수의 서브 태스크를 위해 타깃 노드를 결정하는 바; 상기 태스크의 복수의 서브 태스크를 위해 대응하는 타깃 노드를 모두 성공적으로 결정한 경우, 상기 태스크에 포함되는 복수의 서브 태스크를 위해 타깃 노드를 할당한다.In some embodiments, the first allocation module is further configured to: determine a target node for a plurality of sub-tasks of the task based on a task type of the task; When all corresponding target nodes for the plurality of subtasks of the task are successfully determined, target nodes are allocated for the plurality of subtasks included in the task.

일부 실시예에서, 상기 장치는, 상기 서브 태스크 중 적어도 하나의 서브 태스크를 위해 대응하는 타깃 노드를 성공적으로 결정하지 못하였을 경우, 상기 태스크의 복수의 서브 태스크에 대해 모두 지연 할당을 실행하는 지연 모듈을 더 포함한다.In some embodiments, the apparatus is a delay module configured to, when not successfully determining a corresponding target node for at least one of the sub-tasks, execute delay assignment for all of the plurality of sub-tasks of the task. further includes

일부 실시예에서, 상기 지연 모듈은 분산 시스템 중의 현재 가용 리소스가 상기 태스크의 복수의 서브 태스크의 리소스 수요 정보에 대응하는 토탈 리소스를 만족하지 않을 경우, 상기 태스크가 포함하는 복수의 서브 태스크에 대해 모두 지연 할당을 실행한다.In some embodiments, when the currently available resources in the distributed system do not satisfy the total resources corresponding to the resource demand information of the plurality of subtasks of the task, the delay module is configured to: Execute lazy assignment.

일부 실시예에서, 상기 장치는, 상기 태스크의 복수의 서브 태스크 각각에 대응하는 타깃 노드를 할당한 다음, 상기 태스크의 복수의 서브 태스크에 대해 동기 스케줄링을 실행하는 스케줄링 모듈을 더 포함한다.In some embodiments, the apparatus further comprises: a scheduling module for allocating a target node corresponding to each of the plurality of subtasks of the task, and then executing synchronous scheduling on the plurality of subtasks of the task.

일부 실시예에서, 상기 장치는 태스크 어레인징 시스템에 응용된다.In some embodiments, the apparatus is applied to a task arranging system.

일부 실시예에서, 본 발명의 실시예에서 제공하는 장치가 구비하는 기능 또는 포함하는 모듈은 상기 방법 실시예에서 설명한 방법을 실행하는 데에 사용될 수 있고, 이의 구체적인 구현은 상기 방법 실시예의 설명을 참조할 수 있는 바, 간결함을 위해 여기서 더 이상 설명하지 않는다.In some embodiments, a function provided by an apparatus provided in an embodiment of the present invention or a module included may be used to execute the method described in the method embodiment, for specific implementations, see the description of the method embodiment All I can do is not explain it further here for the sake of brevity.

전술된 장치 예들은 단지 예시일 뿐이고, 별도의 부재들로서 설명된 모듈들은 물리적으로 분리되거나 분리되지 않을 수 있으며, 모듈들로서 디스플레이 된 부재들은 물리적 유닛들일 수도 있고 아닐 수도 있다, 즉, 한 장소에 위치하거나, 복수의 네트워크 모듈에 분산될 수도 있다. 모듈들의 일부 또는 전체는 본 개시내용의 솔루션들의 목적들을 구현하기 위한 실제 요건들에 따라 선택될 수 있다. 본 기술분야의 통상의 기술자라면, 창작 작업 없이 이들을 이해하고 실행할 수 있다.The device examples described above are merely examples, modules described as separate members may or may not be physically separated, and members displayed as modules may or may not be physical units, that is, located in one place or , may be distributed across a plurality of network modules. Some or all of the modules may be selected according to actual requirements for implementing the objectives of the solutions of the present disclosure. Those of ordinary skill in the art can understand and implement them without creative work.

본 명세서의 장치의 실시예는 서버 또는 단말기기와 같은 컴퓨터 기기에 응용될 수 있다. 장치의 실시예들은 소프트웨어, 하드웨어 또는 이들의 조합에 의해 구현될 수 있다. 소프트웨어에 의해 구현되는 것을 예로서 취하면, 장치가 위치하는 파일을 처리하는 프로세서에 의해 비휘발성 저장 컴포넌트로부터의 대응하는 컴퓨터 프로그램 명령어들을 메모리로 판독하고 다시 메모리에서 프로세스로 판독하여 실행하는 논리 장치를 형성하는 것이다. 하드웨어 관점에서, 도 8에 도시된 바와 같이, 이는 본 명세서의 장치가 위치하는 컴퓨터 기기의 일 하드웨어 구조도로서, 도 8에 도시된 프로세서(801), 메모리(802), 네트워크 인터페이스(803) 및 비휘발성 저장 컴포넌트(804) 외에, 실시예에서 장치가 위치하는 서버 또는 전자기기는 통상 당해 컴퓨터 기기의 실제 기능에 따라 기타 하드웨어를 더 포함할 수도 있으며 이에 대해 더 이상 설명하지 않는다.Embodiments of the apparatus of the present specification may be applied to a computer device such as a server or a terminal device. Embodiments of the apparatus may be implemented by software, hardware, or a combination thereof. Taking as an example implemented by software, a logical device that reads and executes, by a processor that processes a file on which the device resides, corresponding computer program instructions from a non-volatile storage component to memory and back to a process, is read and executed. will form From a hardware point of view, as shown in FIG. 8 , this is a hardware structural diagram of a computer device in which the apparatus of the present specification is located, and the processor 801 , the memory 802 , the network interface 803 and the In addition to the volatile storage component 804 , in an embodiment, a server or electronic device in which the device is located may further include other hardware according to the actual function of the computer device in question, which will not be described further.

상응하게, 본 발명의 실시예는 컴퓨터 프로그램이 저장되는 컴퓨터 저장 매체를 더 제공하는 바 당해 프로그램은 프로세서에 의해 실행될 때 임의의 한 실시예에 따른 방법을 구현한다.Correspondingly, an embodiment of the present invention further provides a computer storage medium in which a computer program is stored, wherein the program implements the method according to any one embodiment when executed by a processor.

상응하게, 본 발명의 실시예는 메모리, 프로세서 및 메모리에 저장되어 프로세서에서 실행할 수 있는 컴퓨터 프로그램을 포함하는 컴퓨터 기기를 더 제공하는 바, 상기 프로세서는 상기 프로그램을 실행할 때 임의의 한 실시예에 따른 방법을 구현한다.Correspondingly, an embodiment of the present invention further provides a computer device comprising a memory, a processor, and a computer program stored in the memory and executable by the processor, wherein the processor executes the program according to any one embodiment implement the method

본 발명은 프로그램 코드를 포함하는 하나 또는 복수의 저장 매체(디스크 메모리, CD-ROM, 광학 메모리 등을 포함하나 이에 한정되지 않음)에서 실시되는 컴퓨터 프로그램 제품의 형식을 사용할 수 있다. 컴퓨터 판독가능 매체는 영구적 및 비영구적, 이동식 및 비이동식 매체를 포함하고, 정보 저장소는 임의의 방법 또는 기술에 의해 실현될 수 있다. 정보는 컴퓨터 판독가능 명령어들, 데이터 구조들, 프로그램 모듈들, 또는 다른 데이터일 수 있다. 컴퓨터 저장 매체의 예들은 상 변화 메모리(phase change memory, PRAM), 정적 랜덤 액세스 메모리(static random access memory, SRAM), 동적 랜덤 액세스 메모리(dynamic random access memory, DRAM), 다른 타입들의 랜덤 액세스 메모리(RAM), 판독 전용 메모리(ROM), 전기적 소거가능 프로그램가능 판독 전용 메모리(EEPROM), 플래시 메모리 또는 다른 메모리 기술, CD-ROM, 디지털 다기능 디스크(DVD) 또는 다른 광 저장, 자기 카세트들, 자기 테이프 저장 또는 다른 자기 저장 디바이스들 또는 임의의 다른 비-송신 매체를 포함하지만, 이에 제한되지 않고, 컴퓨팅 디바이스들에 의해 액세스될 수 있는 정보를 저장하도록 구성될 수 있다.The present invention may use the form of a computer program product implemented in one or more storage media (including but not limited to disk memory, CD-ROM, optical memory, etc.) including program code. Computer-readable media includes permanent and non-persistent, removable and non-removable media, and information storage may be realized by any method or technology. Information may be computer readable instructions, data structures, program modules, or other data. Examples of computer storage media include 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, CD-ROM, digital versatile disk (DVD) or other optical storage, magnetic cassettes, magnetic tape may be configured to store information that can be accessed by computing devices, including, but not limited to, storage or other magnetic storage devices or any other non-transmission medium.

본 개시내용의 다른 구현들은 본 개시내용의 고려 및 여기서의 본 개시내용의 실시로부터 본 기술분야의 통상의 기술자에게 명백할 것이다. 본 개시내용은, 본 개시내용의 일반적인 원리들을 따르고 본 개시내용에서 있지 않은 플로차트가 의도된 관련 기술에서의 통상적인 지식 또는 통상적인 기술 수단을 포함하는 본 개시내용의 임의의 변형, 이용법, 수정 또는 적합화를 포괄하도록 의도한 것이다. 본 개시내용 및 실시예들은 단지 예시적인 것으로 간주되며, 본 개시내용의 진정한 범위 및 사상은 이하의 청구항들에 의해 표시되는 것으로 의도한다.Other implementations of the disclosure will be apparent to those skilled in the art from consideration of the disclosure and practice of the disclosure herein. This disclosure is intended to follow the general principles of the present disclosure and is intended for any variation, usage, modification, or modification of the disclosure including ordinary skill in the relevant art or ordinary skill in the art for which flowcharts not in this disclosure are intended. It is intended to encompass adaptation. It is intended that the present disclosure and embodiments be regarded as illustrative only, with the true scope and spirit of the present disclosure being indicated by the following claims.

본 개시내용은 정확히 전술되고 첨부된 도면들에 도시된 구조로 제한되지 않으며, 그 범위를 벗어나지 않고 다양한 수정 및 변경이 이루어질 수 있다는 것을 이해해야 한다. 본 개시내용의 보호 범위는 첨부된 청구항들에 의해서만 제한된다.It is to be understood that the present disclosure is not limited to the structure precisely described above and shown in the accompanying drawings, and that various modifications and changes may be made thereto without departing from its scope. The protection scope of the present disclosure is limited only by the appended claims.

상기의 설명은 본 개시내용의 바람직한 예들일 뿐이고, 본 개시내용을 제한하려는 의도가 아니며, 본 개시내용의 사상 및 원리들 내에서 이루어진 임의의 수정, 균등물들, 개선들 등은 본 개시내용의 범위에 포함되어야 한다.The above description is only preferred examples of the present disclosure, and is not intended to limit the present disclosure, and any modifications, equivalents, improvements, etc. made within the spirit and principles of the present disclosure are within the scope of the present disclosure. should be included in

Claims (23)

태스크 스케줄링 방법으로서,
상기 태스크의 태스크 타입 및 리소스 수요 정보 중 적어도 하나를 포함하는 태스크의 정보를 획득하는 단계; 및
상기 태스크의 정보에 근거하여 상기 태스크에 포함되는 복수의 서브 태스크 각각에 타깃 노드를 할당하는 단계를 포함하는
것을 특징으로 하는 태스크 스케줄링 방법.
A task scheduling method comprising:
obtaining information on a task including at least one of a task type and resource demand information of the task; and
Allocating a target node to each of a plurality of sub-tasks included in the task based on the information on the task
Task scheduling method, characterized in that.
제1항에 있어서,
상기 태스크의 리소스 수요 정보는 상기 태스크가 포함하는 복수의 서브 태스크의 리소스 수요 정보이고;
상기 태스크의 정보에 근거하여 상기 태스크에 포함되는 복수의 서브 태스크 각각에 타깃 노드를 할당하는 단계는,
분산 시스템 중의 현재 가용 리소스가 상기 태스크의 복수의 서브 태스크의 리소스 수요 정보에 대응하는 토탈 리소스를 만족시킬 경우, 상기 태스크의 복수의 서브 태스크 각각에 대응하는 타깃 노드를 할당하는 단계를 포함하는
것을 특징으로 하는 태스크 스케줄링 방법.
According to claim 1,
the resource demand information of the task is resource demand information of a plurality of sub-tasks included in the task;
Allocating a target node to each of a plurality of sub-tasks included in the task based on the information of the task comprises:
allocating a target node corresponding to each of the plurality of subtasks of the task when the currently available resources in the distributed system satisfy the total resources corresponding to the resource demand information of the plurality of subtasks of the task
Task scheduling method, characterized in that.
제2항에 있어서,
상기 분산 시스템의 현재 리소스 상태 정보와 상기 복수의 서브 태스크의 리소스 수요 정보에 기반하여 상기 복수의 서브 태스크를 위해 타깃 노드를 결정하는 단계를 더 포함하고;
상기 분산 시스템 중의 현재 가용 리소스가 상기 태스크의 복수의 서브 태스크의 리소스 수요 정보에 대응하는 토탈 리소스를 만족시킬 경우, 상기 태스크의 복수의 서브 태스크 각각에 대응하는 타깃 노드를 할당하는 단계는,
상기 복수의 서브 태스크 중의 각 서브 태스크를 위해 대응하는 타깃 노드를 성공적으로 결정할 경우, 상기 태스크의 복수의 서브 태스크 각각에 대응하는 타깃 노드를 할당하는 단계를 포함하는
것을 특징으로 하는 태스크 스케줄링 방법.
3. The method of claim 2,
determining a target node for the plurality of sub-tasks based on the current resource state information of the distributed system and the resource demand information of the plurality of sub-tasks;
allocating a target node corresponding to each of the plurality of subtasks of the task when the currently available resources in the distributed system satisfy total resources corresponding to resource demand information of the plurality of subtasks of the task;
allocating a target node corresponding to each of the plurality of subtasks of the task when a corresponding target node is successfully determined for each subtask of the plurality of subtasks;
Task scheduling method, characterized in that.
제3항에 있어서,
상기 분산 시스템의 현재 리소스 상태 정보와 상기 복수의 서브 태스크의 리소스 수요 정보에 기반하여 상기 복수의 서브 태스크를 위해 타깃 노드를 결정하는 단계는,
상기 분산 시스템의 현재 리소스 상태 정보와 상기 복수의 서브 태스크의 리소스 수요 정보에 기반하여 상기 복수의 서브 태스크를 위해 순서대로 타깃 노드를 결정하는 단계; 및
매번 하나의 서브 태스크의 타깃 노드를 결정한 후, 상기 하나의 서브 태스크의 리소스 수요 정보에 기반하여 상기 분산 시스템의 현재 리소스 상태 정보를 업데이트하는 단계를 포함하는
것을 특징으로 하는 태스크 스케줄링 방법.
4. The method of claim 3,
Determining a target node for the plurality of sub-tasks based on the current resource state information of the distributed system and the resource demand information of the plurality of sub-tasks includes:
determining a target node for the plurality of sub-tasks in order based on the current resource state information of the distributed system and the resource demand information of the plurality of sub-tasks; and
After determining the target node of each sub-task, updating the current resource state information of the distributed system based on the resource demand information of the one sub-task
Task scheduling method, characterized in that.
제3항 또는 제4항에 있어서,
상기 복수의 서브 태스크 중 적어도 하나의 서브 태스크를 위해 타깃 노드를 성공적으로 결정하지 못하였을 경우, 상기 분산 시스템의 현재 가용 리소스가 상기 복수의 서브 태스크 중의 각 서브 태스크가 수요로 하는 리소스를 만족하지 않는다는 것을 결정하는
것을 특징으로 하는 태스크 스케줄링 방법.
5. The method according to claim 3 or 4,
When a target node for at least one subtask among the plurality of subtasks is not successfully determined, it means that the currently available resources of the distributed system do not satisfy the resource demand of each subtask among the plurality of subtasks. to decide
Task scheduling method, characterized in that.
제3항 내지 제5항 중 어느 한 항에 있어서,
상기 분산 시스템의 현재 리소스 상태 정보와 상기 복수의 서브 태스크의 리소스 수요 정보에 기반하여 상기 복수의 서브 태스크를 위해 타깃 노드를 결정하는 단계는,
상기 분산 시스템의 현재 리소스 상태 정보와 상기 복수의 서브 태스크의 리소스 수요 정보에 기반하여 상기 복수의 서브 태스크 중의 각 서브 태스크의 사전 선택 노드 집합을 결정하는 단계; 및
상기 복수의 서브 태스크 중의 각 서브 태스크의 사전 선택 노드 집합에서 상기 각 서브 태스크의 타깃 노드를 선택하는 단계를 포함하는
것을 특징으로 하는 태스크 스케줄링 방법.
6. The method according to any one of claims 3 to 5,
Determining a target node for the plurality of sub-tasks based on the current resource state information of the distributed system and the resource demand information of the plurality of sub-tasks includes:
determining a preselection node set of each subtask among the plurality of subtasks based on the current resource state information of the distributed system and the resource demand information of the plurality of subtasks; and
selecting a target node of each sub-task from a set of pre-selection nodes of each sub-task among the plurality of sub-tasks
Task scheduling method, characterized in that.
제6항에 있어서,
상기 복수의 서브 태스크 중의 각 서브 태스크의 사전 선택 노드 집합을 결정하는 단계는,
특정 순서에 따라 순서대로 상기 복수의 서브 태스크 중의 각 서브 태스크의 사전 선택 노드 집합을 결정하는 것을 포함하되, 상기 복수의 서브 태스크 중의 제1 서브 태스크의 사전 선택 노드 집합의 사전 선택 노드는 상기 복수의 서브 태스크 중의 제2 서브 태스크의 사전 선택 노드 집합으로부터 선택된 것이고, 상기 제2 서브 태스크의 순서는 상기 제1 서브 태스크의 앞에 위치하는
것을 특징으로 하는 태스크 스케줄링 방법.
7. The method of claim 6,
Determining a preselection node set of each subtask among the plurality of subtasks comprises:
determining a preselection node set of each subtask among the plurality of subtasks sequentially according to a specific order, wherein a preselection node of a preselection node set of a first subtask among the plurality of subtasks is selected from the plurality of subtasks. It is selected from the pre-selection node set of the second sub-task among the sub-tasks, and the order of the second sub-task is located before the first sub-task.
Task scheduling method, characterized in that.
제6항 또는 제7항에 있어서,
상기 복수의 서브 태스크 중의 각 서브 태스크의 사전 선택 노드 집합에서 상기 각 서브 태스크의 타깃 노드를 선택하는 단계는,
특정 순서에 따라 순서대로 상기 복수의 서브 태스크 중의 각 서브 태스크의 사전 선택 노드 집합에서 상기 각 서브 태스크의 타깃 노드를 선택하는 것을 포함하되, 우선 상기 복수의 서브 태스크 중의 제2 서브 태스크의 타깃 노드를 선택하여 상기 복수의 서브 태스크 중의 제1 서브 태스크의 타깃 노드로 하고, 상기 제2 서브 태스크의 순서는 상기 제1 서브 태스크의 앞에 위치하는
것을 특징으로 하는 태스크 스케줄링 방법.
8. The method according to claim 6 or 7,
The step of selecting a target node of each sub-task from a set of pre-selection nodes of each sub-task among the plurality of sub-tasks comprises:
selecting a target node of each sub-task from a set of pre-selection nodes of each sub-task among the plurality of sub-tasks in order according to a specific order, wherein first, a target node of a second sub-task of the plurality of sub-tasks is selected as a target node of a first subtask among the plurality of subtasks, and the order of the second subtask is located before the first subtask
Task scheduling method, characterized in that.
제6항 내지 제8항 중 어느 한 항에 있어서,
상기 복수의 서브 태스크 중의 각 서브 태스크의 사전 선택 노드 집합에서 상기 각 서브 태스크의 타깃 노드를 선택하는 단계는,
상기 태스크의 태스크 타입에 근거하여 각 서브 태스크의 사전 선택 노드 집합에 포함되는 사전 선택 노드의 점수를 결정하는 단계; 및
각 서브 태스크의 사전 선택 노드 집합에 포함되는 사전 선택 노드의 점수에 기반하여 상기 각 서브 태스크의 사전 선택 노드 집합으로부터 상기 각 서브 태스크의 타깃 노드를 선택하는 단계를 포함하는
것을 특징으로 하는 태스크 스케줄링 방법.
9. The method according to any one of claims 6 to 8,
The step of selecting a target node of each sub-task from a set of pre-selection nodes of each sub-task among the plurality of sub-tasks comprises:
determining a score of a preselection node included in a preselection node set of each subtask based on the task type of the task; and
selecting a target node of each sub-task from a set of pre-selection nodes of each sub-task based on the scores of pre-selection nodes included in the set of pre-selection nodes of each sub task
Task scheduling method, characterized in that.
제3항 내지 제9항 중 어느 한 항에 있어서,
상기 복수의 서브 태스크가 순서대로 타깃 노드를 결정하는 순서는 서브 태스크의 우선순위, 서브 태스크 사이의 의존관계 중 적어도 하나에 기반하여 결정되는
것을 특징으로 하는 태스크 스케줄링 방법.
10. The method according to any one of claims 3 to 9,
The order in which the plurality of sub-tasks sequentially determines the target node is determined based on at least one of a priority of the sub-task and a dependency relationship between the sub-tasks.
Task scheduling method, characterized in that.
제1항 내지 제10항 중 어느 한 항에 있어서,
상기 태스크의 정보에 근거하여 상기 태스크에 포함되는 복수의 서브 태스크 각각에 타깃 노드를 할당하는 단계는,
상기 태스크의 태스크 타입을 결정하는 단계; 및
상기 태스크의 태스크 타입에 기반하여 상기 태스크의 복수의 서브 태스크 각각에 대응하는 타깃 노드를 할당하는 단계를 포함하는
것을 특징으로 하는 태스크 스케줄링 방법.
11. The method according to any one of claims 1 to 10,
Allocating a target node to each of a plurality of sub-tasks included in the task based on the information of the task comprises:
determining a task type of the task; and
allocating a target node corresponding to each of a plurality of sub-tasks of the task based on the task type of the task
Task scheduling method, characterized in that.
제1항 내지 제11항 중 어느 한 항에 있어서,
상기 태스크의 복수의 서브 태스크 각각에 대응하는 타깃 노드를 할당하는 단계는,
상기 태스크의 복수의 서브 태스크를 적어도 하나의 그룹으로 나누는 단계 - 각 그룹마다 상기 복수의 서브 태스크 중 적어도 하나의 서브 태스크를 포함함 -; 및
상기 적어도 하나의 그룹 중의 각 그룹에게 대응하는 타깃 노드를 할당하는 단계를 포함하되,
동일한 그룹 중의 각 서브 태스크에 동일한 타깃 노드를 할당하는
것을 특징으로 하는 태스크 스케줄링 방법.
12. The method according to any one of claims 1 to 11,
Allocating a target node corresponding to each of the plurality of sub-tasks of the task comprises:
dividing the plurality of subtasks of the task into at least one group, each group including at least one subtask of the plurality of subtasks; and
allocating a corresponding target node to each of the at least one group;
Allocating the same target node to each subtask in the same group
Task scheduling method, characterized in that.
제12항에 있어서,
상기 태스크의 복수의 서브 태스크를 적어도 하나의 그룹으로 나누는 단계는,
상기 태스크의 태스크 타입에 근거하여 상기 태스크의 복수의 서브 태스크를 적어도 하나의 그룹으로 나누는 단계를 포함하는
것을 특징으로 하는 태스크 스케줄링 방법.
13. The method of claim 12,
The step of dividing the plurality of sub-tasks into at least one group includes:
dividing a plurality of sub-tasks of the task into at least one group based on the task type of the task;
Task scheduling method, characterized in that.
제11항 내지 제13항 중 어느 한 항에 있어서,
상기 태스크의 태스크 타입은 계산 집약형 또는 통신 집약형인
것을 특징으로 하는 태스크 스케줄링 방법.
14. The method according to any one of claims 11 to 13,
The task type of the task is a computation intensive type or a communication intensive type.
Task scheduling method, characterized in that.
제12항 내지 제14항 중 어느 한 항에 있어서,
상기 태스크의 복수의 서브 태스크를 적어도 하나의 그룹으로 나누는 단계는,
상기 태스크의 태스크 타입이 통신 집약형인 경우, 상기 태스크의 복수의 서브 태스크의 리소스 수요 정보에 근거하여 상기 복수의 서브 태스크에 필요한 토탈 노드 수량을 결정하고, 또한 상기 토탈 노드 수량에 근거하여 상기 태스크의 복수의 서브 태스크를 적어도 하나의 그룹으로 나누는 단계;
및/또는
상기 태스크의 태스크 타입이 계산 집약형인 경우, 상기 복수의 서브 태스크 중의 각 서브 태스크를 하나의 그룹으로 하는 단계를 포함하는
것을 특징으로 하는 태스크 스케줄링 방법.
15. The method according to any one of claims 12 to 14,
The step of dividing the plurality of sub-tasks into at least one group includes:
When the task type of the task is communication-intensive, the total number of nodes required for the plurality of sub-tasks is determined based on resource demand information of the plurality of sub-tasks of the task, and the number of total nodes of the task is determined based on the total number of nodes. dividing the plurality of sub-tasks into at least one group;
and/or
When the task type of the task is a computation intensive type, grouping each sub-task among the plurality of sub-tasks into one group;
Task scheduling method, characterized in that.
제11항 내지 제15항 중 어느 한 항에 있어서,
상기 태스크의 태스크 타입에 기반하여 상기 태스크의 복수의 서브 태스크 각각에 대응하는 타깃 노드를 할당하는 단계는,
상기 태스크의 태스크 타입에 기반하여 상기 태스크의 복수의 서브 태스크를 위해 타깃 노드를 결정하는 단계; 및
상기 태스크의 복수의 서브 태스크를 위해 대응하는 타깃 노드를 모두 성공적으로 결정한 경우, 상기 태스크에 포함되는 복수의 서브 태스크를 위해 타깃 노드를 할당하는 단계를 포함하는
것을 특징으로 하는 태스크 스케줄링 방법.
16. The method according to any one of claims 11 to 15,
Allocating a target node corresponding to each of the plurality of sub-tasks of the task based on the task type of the task includes:
determining a target node for a plurality of sub-tasks of the task based on the task type of the task; and
allocating target nodes for a plurality of sub-tasks included in the task when all corresponding target nodes for the plurality of sub-tasks of the task are successfully determined
Task scheduling method, characterized in that.
제16항에 있어서,
상기 서브 태스크 중 적어도 하나의 서브 태스크를 위해 대응하는 타깃 노드를 성공적으로 결정하지 못하였을 경우, 상기 태스크의 복수의 서브 태스크에 대해 모두 지연 할당을 실행하는 단계를 더 포함하는
것을 특징으로 하는 태스크 스케줄링 방법.
17. The method of claim 16,
If a corresponding target node is not successfully determined for at least one subtask among the subtasks, the method further comprising the step of executing delay allocation for all of the plurality of subtasks of the task
Task scheduling method, characterized in that.
제2항 내지 제17항 중 어느 한 항에 있어서,
분산 시스템 중의 현재 가용 리소스가 상기 태스크의 복수의 서브 태스크의 리소스 수요 정보에 대응하는 토탈 리소스를 만족하지 않을 경우, 상기 태스크가 포함하는 복수의 서브 태스크에 대해 모두 지연 할당을 실행하는 단계를 더 포함하는
것을 특징으로 하는 태스크 스케줄링 방법.
18. The method according to any one of claims 2 to 17,
When the currently available resources in the distributed system do not satisfy the total resources corresponding to the resource demand information of the plurality of subtasks of the task, the method further includes the step of executing delayed allocation for all the subtasks included in the task. doing
Task scheduling method, characterized in that.
제1항 내지 제18항 중 어느 한 항에 있어서,
상기 태스크의 복수의 서브 태스크 각각에 대응하는 타깃 노드를 할당한 다음, 상기 태스크의 복수의 서브 태스크에 대해 동기 스케줄링을 실행하는 단계를 더 포함하는
것을 특징으로 하는 태스크 스케줄링 방법.
19. The method according to any one of claims 1 to 18,
Allocating a target node corresponding to each of the plurality of subtasks of the task, and then performing synchronous scheduling on the plurality of subtasks of the task
Task scheduling method, characterized in that.
제1항 내지 제19항 중 어느 한 항에 있어서,
상기 방법은 태스크 어레인징 시스템에 응용되는
것을 특징으로 하는 태스크 스케줄링 방법.
20. The method according to any one of claims 1 to 19,
The method is applied to a task arranging system
Task scheduling method, characterized in that.
상기 태스크의 태스크 타입 및 리소스 수요 정보 중 적어도 하나를 포함하는 태스크의 정보를 획득하는 획득 모듈; 및
상기 태스크의 정보에 근거하여 상기 태스크에 포함되는 복수의 서브 태스크 각각에 타깃 노드를 할당하는 제1 할당 모듈을 포함하는
것을 특징으로 하는 태스크 스케줄링 장치.
an acquiring module for acquiring information on a task including at least one of a task type and resource demand information of the task; and
a first allocation module for allocating a target node to each of a plurality of sub-tasks included in the task based on the information on the task;
Task scheduling device, characterized in that.
컴퓨터 프로그램이 저장되는 컴퓨터 판독 가능 저장 매체로서,
상기 프로그램이 프로세서에 의해 실행될 경우, 제1항 내지 제20항 중 어느 한 항에 따른 방법을 구현하는
것을 특징으로 하는 컴퓨터 판독 가능 저장 매체.
A computer-readable storage medium storing a computer program, comprising:
21. Implementing the method according to any one of claims 1 to 20 when the program is executed by a processor.
A computer-readable storage medium, characterized in that.
메모리, 프로세서 및 메모리에 저장되어 프로세서에서 실행될 수 있는 컴퓨터 프로그램을 포함하는 컴퓨터 기기로서,
상기 프로세서가 상기 프로그램을 실행할 때, 제1항 내지 제20항 중 어느 한 항에 따른 방법을 구현하는
것을 특징으로 하는 컴퓨터 기기.

A computer device comprising a memory, a processor and a computer program stored in the memory and executable on the processor, the computer program comprising:
21. Implementing the method according to any one of claims 1 to 20 when the processor executes the program.
Computer device, characterized in that.

KR1020217038822A 2020-03-11 2021-03-09 Task Scheduling Method and Apparatus KR20220002547A (en)

Applications Claiming Priority (5)

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

Publications (1)

Publication Number Publication Date
KR20220002547A true KR20220002547A (en) 2022-01-06

Family

ID=77671227

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020217038822A KR20220002547A (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)

Families Citing this family (6)

* 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
CN114020434A (en) * 2021-11-09 2022-02-08 中国建设银行股份有限公司 Task processing method and device, electronic equipment and storage medium
CN114035931A (en) * 2021-12-22 2022-02-11 北京字节跳动网络技术有限公司 Task scheduling processing method and device
CN114546623B (en) * 2022-03-01 2022-12-27 淮安市第二人民医院 Task scheduling method and system based on big data system
WO2024069843A1 (en) * 2022-09-29 2024-04-04 楽天モバイル株式会社 Distributed deployment control for microservices
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
US20130091210A1 (en) * 2011-10-08 2013-04-11 Broadcom Corporation Social Device Anonymity Via Full, Content Only, and Functionality Access Views
US20130091280A1 (en) * 2011-10-08 2013-04-11 Broadcom Corporation Social Device Resource Management
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

Also Published As

Publication number Publication date
JP2022539955A (en) 2022-09-14
TW202134870A (en) 2021-09-16
WO2021180092A1 (en) 2021-09-16
TWI786564B (en) 2022-12-11

Similar Documents

Publication Publication Date Title
KR20220002547A (en) Task Scheduling Method and Apparatus
Polo et al. Performance-driven task co-scheduling for mapreduce environments
JP6294586B2 (en) Execution management system combining instruction threads and management method
US9442760B2 (en) Job scheduling using expected server performance information
US9430388B2 (en) Scheduler, multi-core processor system, and scheduling method
JP3813056B2 (en) Processing channel subsystem pending I / O work queue based on priority
JP3807916B2 (en) Method and system for managing a group of partitions in a computer environment
US20170024251A1 (en) Scheduling method and apparatus for distributed computing system
CN113391914A (en) Task scheduling method and device
JP2001147824A (en) Method and system for managing logical processor of computer environment and program product
CN113454614A (en) System and method for resource partitioning in distributed computing
JP2001142858A (en) Method and system for managing processing central unit in computer environment, and program product
CN110221920B (en) Deployment method, device, storage medium and system
CN106569887B (en) Fine-grained task scheduling method in cloud environment
US20210390405A1 (en) Microservice-based training systems in heterogeneous graphic processor unit (gpu) cluster and operating method thereof
CN112925616A (en) Task allocation method and device, storage medium and electronic equipment
US20230037293A1 (en) Systems and methods of hybrid centralized distributive scheduling on shared physical hosts
CN114386560A (en) Data processing method and device
CN113225269A (en) Container-based workflow scheduling method, device and system and storage medium
CN111352735A (en) Data acceleration method, device, storage medium and equipment
JP5776813B2 (en) Multi-core processor system, control method and control program for multi-core processor system
CN113391886A (en) Task scheduling method and device
CN112783651B (en) Load balancing scheduling method, medium and device for vGPU of cloud platform
Nzanywayingoma et al. Task scheduling and virtual resource optimising in Hadoop YARN-based cloud computing environment
US20240220794A1 (en) Training systems and operating method thereof

Legal Events

Date Code Title Description
A201 Request for examination
WITB Written withdrawal of application