JP7820565B2 - Method and apparatus for task scheduling across heterogeneous chips based on sequence generation - Google Patents
Method and apparatus for task scheduling across heterogeneous chips based on sequence generationInfo
- Publication number
- JP7820565B2 JP7820565B2 JP2024561692A JP2024561692A JP7820565B2 JP 7820565 B2 JP7820565 B2 JP 7820565B2 JP 2024561692 A JP2024561692 A JP 2024561692A JP 2024561692 A JP2024561692 A JP 2024561692A JP 7820565 B2 JP7820565 B2 JP 7820565B2
- Authority
- JP
- Japan
- Prior art keywords
- task
- scheduled
- tasks
- scheduling
- chip
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5038—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Description
本発明はコンピュータ技術分野に関し、特にシーケンス生成に基づく異種チップのタスクスケジューリング方法及び装置に関する。 The present invention relates to the field of computer technology, and in particular to a method and apparatus for task scheduling across heterogeneous chips based on sequence generation.
現在、コンピュータ技術の急速な発展に伴い、人々の生活における異種チップの応用が徐々に広がっている。ここで、異種チップは、同一の電子デバイス内の異なるタイプのチップであってもよいし、同一の電子デバイス内の同じタイプに属するが異なる型番のチップであってもよい。 Currently, with the rapid development of computer technology, the application of heterogeneous chips in people's lives is gradually expanding. Here, heterogeneous chips can refer to different types of chips within the same electronic device, or to chips of the same type but with different model numbers within the same electronic device.
従来技術において、一般的に使用されている異種チップのスケジューリング方法は、同一の電子デバイス又はコンピューティングクラスタ内の各チップを同じタイプのチップとみなし、手動で該電子デバイスにおけるスケジューリングすべきタスクに優先度を割り当てることである。あるチップがアイドルである場合、スケジューリングすべきタスクの優先度に基づいて、割り当てられていないスケジューリングすべきタスクから、優先度が最も高いスケジューリングすべきタスクを選択して該チップに割り当てる。該チップは、自身に割り当てられたスケジューリングすべきタスクを実行することができる。 In the prior art, a commonly used method for scheduling heterogeneous chips is to treat each chip in the same electronic device or computing cluster as a chip of the same type and manually assign priorities to tasks to be scheduled on the electronic device. When a chip is idle, the highest priority task to be scheduled is selected from the unassigned tasks to be scheduled based on the priority of the tasks to be scheduled and assigned to the chip. The chip can then execute the tasks to be scheduled that have been assigned to it.
しかし、各チップのタイプが異なり、型番が異なり、処理能力が異なる場合、該チップに不適切なタスクが割り当てられる可能性があり、その結果、該チップがこのタスクを完了するのに長い時間がかかり、それにより、該チップに対応するコンピューティングクラスタの利用率が低くなる。 However, if each chip is a different type, model number, and processing power, it may be assigned an inappropriate task, causing the chip to take a long time to complete the task, thereby resulting in low utilization of the computing cluster corresponding to the chip.
これに基づいて、本発明は、シーケンス生成に基づく異種チップのタスクスケジューリング方法を提供する。 Based on this, the present invention provides a task scheduling method for heterogeneous chips based on sequence generation.
本発明は、従来技術に存在する上記問題点を解決するために、シーケンス生成に基づく異種チップのタスクスケジューリング方法及び装置を提供する。 The present invention provides a method and apparatus for task scheduling across heterogeneous chips based on sequence generation to solve the above-mentioned problems present in the prior art.
本発明で採用される技術案は以下の通りである。 The technical ideas adopted in this invention are as follows:
本発明は、コンピューティングクラスタ内のスケジューリングノードに適用されるシーケンス生成に基づく異種チップのタスクスケジューリング方法であって、前記コンピューティングクラスタは前記スケジューリングノードと複数のチップとを含み、各チップのコンピューティングリソースは完全に同じではなく、
複数のスケジューリングすべきタスクのそれぞれについて、該スケジューリングすべきタスクのタスク情報に基づいて、該スケジューリングすべきタスクに対応する実行時間データを決定するステップであって、前記実行時間データは、前記複数のチップが該スケジューリングすべきタスクを実行するために必要な各実行時間を含む、ステップと、
前記複数のチップのそれぞれに対応するアイドル時刻を決定するステップと、
スケジューリング要求に応答して、前記複数のスケジューリングすべきタスクのそれぞれのタスク情報、前記複数のチップのそれぞれに対応するアイドル時刻、及び前記複数のスケジューリングすべきタスクのそれぞれに対応する実行時間データに基づいて、スケジューリングシーケンスを生成するステップであって、前記スケジューリングシーケンスには、指定数のスケジューリングすべきタスク、前記指定数のスケジューリングすべきタスクのそれぞれに対応するスケジューリング順序、及び前記指定数のスケジューリングすべきタスクのそれぞれに対応するチップが含まれる、ステップと、
前記スケジューリングシーケンスに基づいて、前記指定数のスケジューリングすべきタスクのうちの各スケジューリングすべきタスクを対応するチップにスケジューリングして実行させるステップと、を含む、シーケンス生成に基づく異種チップのタスクスケジューリング方法を提供する。
The present invention provides a heterogeneous chip task scheduling method based on sequence generation, which is applied to a scheduling node in a computing cluster, wherein the computing cluster includes the scheduling node and multiple chips, and the computing resources of each chip are not completely the same;
determining, for each of a plurality of tasks to be scheduled, execution time data corresponding to the task to be scheduled based on task information of the task to be scheduled, the execution time data including respective execution times required for the plurality of chips to execute the task to be scheduled;
determining an idle time corresponding to each of the plurality of chips;
generating a scheduling sequence in response to a scheduling request based on task information for each of the plurality of tasks to be scheduled, idle times corresponding to each of the plurality of chips, and execution time data corresponding to each of the plurality of tasks to be scheduled, wherein the scheduling sequence includes a specified number of tasks to be scheduled, a scheduling order corresponding to each of the specified number of tasks to be scheduled, and chips corresponding to each of the specified number of tasks to be scheduled;
and scheduling each task to be scheduled of the specified number of tasks to be scheduled to a corresponding chip based on the scheduling sequence for execution.
オプションとして、該スケジューリングすべきタスクのタスク情報に基づいて、該スケジューリングすべきタスクに対応する実行時間データを決定するステップは、
該スケジューリングすべきタスクのタイムアウト時刻、該スケジューリングすべきタスクの優先度、該スケジューリングすべきタスクのタスクデータのデータ長、該スケジューリングすべきタスクのタスクタイプのうちの少なくとも1つを、該スケジューリングすべきタスクのタスク情報として決定するステップと、
前記複数のチップのそれぞれについて、該チップのチップ情報と、該スケジューリングすべきタスクのタスク情報とを組み合わせ、組み合わせ結果を予め訓練された予測モデルに入力し、前記予測モデルによって出力された、該チップが該スケジューリングすべきタスクを実行するために必要な実行時間を得るステップと、を含む。
Optionally, the step of determining execution time data corresponding to the task to be scheduled based on task information of the task to be scheduled comprises:
determining at least one of a timeout time of the task to be scheduled, a priority of the task to be scheduled, a data length of task data of the task to be scheduled, and a task type of the task to be scheduled as task information of the task to be scheduled;
The method includes a step of combining, for each of the plurality of chips, chip information of the chip with task information of the task to be scheduled, inputting the combined result into a pre-trained prediction model, and obtaining the execution time required for the chip to execute the task to be scheduled, output by the prediction model.
オプションとして、前記複数のスケジューリングすべきタスクのそれぞれのタスク情報、前記複数のチップのそれぞれに対応するアイドル時刻、及び前記複数のスケジューリングすべきタスクのそれぞれに対応する実行時間データに基づいて、スケジューリングシーケンスを生成するステップは、
前記複数のスケジューリングすべきタスクの第1の指定属性及び第2の指定属性を決定するステップであって、前記第1の指定属性及び前記第2の指定属性は、スケジューリングすべきタスクの実行時間及びスケジューリングすべきタスクのタスク情報から選択され、前記タスク情報は、タイムアウト時刻、優先度、タスクデータのデータ長、タスクタイプのうちの少なくとも1つを含む、ステップと、
前記複数のチップのそれぞれに対応するアイドル時刻に基づいて、目標チップを決定し、前記複数のスケジューリングすべきタスクのそれぞれに対応する第1の指定属性及び第2の指定属性に基づいて、前記複数のスケジューリングすべきタスクと前記目標チップとの相関度を決定し、前記相関度に基づいて、前記目標チップによって実行される特定数の目標タスクを特定数の初期タスクとして決定し、前記特定数の初期タスクのそれぞれについて、前記目標チップのアイドル時刻を更新するステップと、
各初期タスクについて、
前記複数のチップに割り当てられたタスクの数が前記指定数に達するまで、更新された前記目標チップのアイドル時刻及び前記複数のチップのうちの他のチップのそれぞれに対応するアイドル時刻に基づいて、前記目標チップを再決定し、前記複数のスケジューリングすべきタスクのそれぞれに対応する第1の指定属性及び第2の指定属性に基づいて、前記複数のスケジューリングすべきタスクのうちの残りのスケジューリングすべきタスクと前記目標チップとの相関度を決定し、前記相関度に基づいて、前記残りのスケジューリングすべきタスクから1つの目標タスクを再決定して前記目標チップのアイドル時刻を更新し、
該初期タスクと、該初期タスクの後に再決定された全ての目標タスクとに基づいて、該初期タスクに対応する候補シーケンスを生成するステップと、
前記特定数の初期タスクのそれぞれに対応する候補シーケンスに基づいて、前記スケジューリングシーケンスを決定するステップと、を含む。
Optionally, generating a scheduling sequence based on task information of each of the plurality of tasks to be scheduled, idle times corresponding to each of the plurality of chips, and execution time data corresponding to each of the plurality of tasks to be scheduled comprises:
determining first and second designated attributes of the plurality of tasks to be scheduled, wherein the first and second designated attributes are selected from execution times of the tasks to be scheduled and task information of the tasks to be scheduled, the task information including at least one of a timeout time, a priority, a data length of task data, and a task type;
determining a target chip based on idle times corresponding to each of the plurality of chips; determining a correlation between the plurality of tasks to be scheduled and the target chip based on a first designated attribute and a second designated attribute corresponding to each of the plurality of tasks to be scheduled; determining a specific number of target tasks to be executed by the target chip as a specific number of initial tasks based on the correlation; and updating the idle times of the target chip for each of the specific number of initial tasks;
For each initial task,
re-determine a target chip based on the idle time of the updated target chip and idle times corresponding to each of the other chips among the plurality of chips until the number of tasks assigned to the plurality of chips reaches the specified number; determine a correlation between the remaining tasks to be scheduled among the plurality of tasks to be scheduled and the target chip based on a first specified attribute and a second specified attribute corresponding to each of the plurality of tasks to be scheduled; re-determine a target task from the remaining tasks to be scheduled based on the correlation, and update the idle time of the target chip;
generating a candidate sequence corresponding to the initial task based on the initial task and all target tasks redetermined after the initial task;
determining the scheduling sequence based on candidate sequences corresponding to each of the specified number of initial tasks.
オプションとして、前記相関度に基づいて、前記目標チップによって実行される特定数の目標タスクを特定数の初期タスクとして決定するステップは、
前記相関度に基づいて、前記複数のスケジューリングすべきタスクをソートし、ソート結果から、前記特定数の目標タスクを前記特定数の初期タスクとして決定するステップを含み、
前記相関度に基づいて、前記残りのスケジューリングすべきタスクから1つの目標タスクを再決定するステップは、
前記相関度に基づいて、前記残りのスケジューリングすべきタスクから、前記目標チップとの相関度が最も高いスケジューリングすべきタスクを前記目標タスクとして決定するステップを含む。
Optionally, the step of determining a specific number of target tasks to be executed by the target chip as a specific number of initial tasks based on the degree of correlation comprises:
sorting the plurality of tasks to be scheduled based on the correlation degree, and determining the specific number of target tasks as the specific number of initial tasks from the sorting result;
The step of re-determining one target task from the remaining tasks to be scheduled based on the correlation degree includes:
The method includes a step of determining, from the remaining tasks to be scheduled, a task to be scheduled that has the highest correlation with the target chip as the target task based on the correlation.
オプションとして、前記特定数の初期タスクのそれぞれに対応する候補シーケンスに基づいて、前記スケジューリングシーケンスを決定するステップは、
前記特定数の初期タスクのそれぞれに対応する候補シーケンスから、タイムアウトタスクを含まない候補シーケンスを決定し、前記タイムアウトタスクを含まない候補シーケンスから、実行時間が最も短い候補シーケンスを前記スケジューリングシーケンスとして決定するステップを含む。
Optionally, determining the scheduling sequence based on candidate sequences corresponding to each of the specified number of initial tasks comprises:
The method includes a step of determining a candidate sequence that does not include a timeout task from candidate sequences corresponding to each of the specific number of initial tasks, and determining the candidate sequence that does not include a timeout task, from the candidate sequences that do not include the timeout task, as the scheduling sequence.
オプションとして、前記スケジューリングノードは、クラスタ状態検知ユニット、情報記憶ユニット、スケジューリングシーケンス生成ユニット、及びタスク割り当てユニットを含み、
前記クラスタ状態検知ユニットは、前記コンピューティングクラスタ内の前記複数のチップのそれぞれに対応するアイドル時刻を決定するために用いられ、
前記情報記憶ユニットは、前記複数のスケジューリングすべきタスクのそれぞれに対応するタスク情報及び前記複数のスケジューリングすべきタスクのそれぞれに対応する実行時間データを決定して記憶するために用いられ、
前記スケジューリングシーケンス生成ユニットは、前記スケジューリングシーケンスを生成するために用いられ、
前記タスク割り当てユニットは、前記スケジューリングシーケンスに基づいて、前記指定数のスケジューリングすべきタスクのうちの各スケジューリングすべきタスクを対応するチップに割り当てるために用いられる。
Optionally, the scheduling node includes: a cluster state detection unit, an information storage unit, a scheduling sequence generation unit, and a task allocation unit;
the cluster state detection unit is used to determine an idle time corresponding to each of the plurality of chips in the computing cluster;
the information storage unit is used for determining and storing task information corresponding to each of the plurality of tasks to be scheduled and execution time data corresponding to each of the plurality of tasks to be scheduled;
the scheduling sequence generation unit is used to generate the scheduling sequence;
The task allocation unit is used to allocate each task to be scheduled among the specified number of tasks to be scheduled to a corresponding chip based on the scheduling sequence.
本発明は、コンピューティングクラスタ内のスケジューリングノードに適用されるシーケンス生成に基づく異種チップのタスクスケジューリング装置であって、前記コンピューティングクラスタは前記スケジューリングノードと複数のチップとを含み、各チップのコンピューティングリソースは完全に同じではなく、
複数のスケジューリングすべきタスクのそれぞれについて、該スケジューリングすべきタスクのタスク情報に基づいて、該スケジューリングすべきタスクに対応する実行時間データを決定するためのタスク情報決定モジュールであって、前記実行時間データは、前記複数のチップが該スケジューリングすべきタスクを実行するために必要な各実行時間を含む、タスク情報決定モジュールと、
前記複数のチップのそれぞれに対応するアイドル時刻を決定するためのチップ状態決定モジュールと、
スケジューリング要求に応答して、前記複数のスケジューリングすべきタスクのそれぞれのタスク情報、前記複数のチップのそれぞれに対応するアイドル時刻、及び前記複数のスケジューリングすべきタスクのそれぞれに対応する実行時間データに基づいて、スケジューリングシーケンスを生成するためのスケジューリングシーケンス生成モジュールであって、前記スケジューリングシーケンスには、指定数のスケジューリングすべきタスク、前記指定数のスケジューリングすべきタスクのそれぞれに対応するスケジューリング順序、及び前記指定数のスケジューリングすべきタスクのそれぞれに対応するチップが含まれる、スケジューリングシーケンス生成モジュールと、
前記スケジューリングシーケンスに基づいて、前記指定数のスケジューリングすべきタスクのうちの各スケジューリングすべきタスクを対応するチップにスケジューリングして実行させるためのスケジューリングモジュールと、を含む、シーケンス生成に基づく異種チップのタスクスケジューリング装置を提供する。
The present invention provides a task scheduling apparatus for heterogeneous chips based on sequence generation applied to a scheduling node in a computing cluster, wherein the computing cluster includes the scheduling node and a plurality of chips, and the computing resources of each chip are not completely the same;
a task information determination module for determining, for each of a plurality of tasks to be scheduled, execution time data corresponding to the task to be scheduled based on task information of the task to be scheduled, the execution time data including respective execution times required for the plurality of chips to execute the task to be scheduled;
a chip state determination module for determining an idle time corresponding to each of the plurality of chips;
a scheduling sequence generation module for generating a scheduling sequence in response to a scheduling request based on task information of each of the plurality of tasks to be scheduled, idle times corresponding to each of the plurality of chips, and execution time data corresponding to each of the plurality of tasks to be scheduled, wherein the scheduling sequence includes a specified number of tasks to be scheduled, a scheduling order corresponding to each of the specified number of tasks to be scheduled, and chips corresponding to each of the specified number of tasks to be scheduled;
and a scheduling module for scheduling each task to be scheduled among the specified number of tasks to be scheduled to a corresponding chip based on the scheduling sequence, for execution.
本発明は、コンピュータプログラムが記憶されているコンピュータ可読記憶媒体であって、前記コンピュータプログラムがプロセッサによって実行されると、上記のシーケンス生成に基づく異種チップのタスクスケジューリング方法が実施される、コンピュータ可読記憶媒体を提供する。 The present invention provides a computer-readable storage medium on which a computer program is stored, which, when executed by a processor, implements the above-described heterogeneous chip task scheduling method based on sequence generation.
本発明は、メモリと、プロセッサと、メモリに記憶され、プロセッサ上で実行可能なコンピュータプログラムとを含む電子デバイスであって、前記プロセッサが前記コンピュータプログラムを実行すると、上記のシーケンス生成に基づく異種チップのタスクスケジューリング方法を実施する、電子デバイスを提供する。 The present invention provides an electronic device including a memory, a processor, and a computer program stored in the memory and executable on the processor, which, when executed by the processor, implements the above-described heterogeneous chip task scheduling method based on sequence generation.
本発明で採用される上記の少なくとも1つの技術案は、以下の有益な効果を達成することができる。 At least one of the above technical solutions adopted in the present invention can achieve the following beneficial effects:
スケジューリングノードの複数のスケジューリングすべきタスクのそれぞれについて、該スケジューリングすべきタスクのタスク情報に基づいて、該スケジューリングすべきタスクに対応する実行時間データを決定し、複数のチップのそれぞれに対応するアイドル時刻を決定し、スケジューリング要求に応答して、複数のスケジューリングすべきタスクのそれぞれのタスク情報、複数のチップのそれぞれに対応するアイドル時刻、複数のスケジューリングすべきタスクのそれぞれに対応する実行時間データに基づいて、スケジューリングシーケンスを生成し、スケジューリングシーケンスに基づいて、スケジューリングシーケンス内の各スケジューリングすべきタスクを対応するチップにスケジューリングして実行させる。このように、異種チップを含むコンピューティングクラスタにアイドル状態にあるチップが存在する場合、できるだけ該アイドル状態にあるチップに適切なタスクを割り当て、タスク実行効率を保証する。 For each of the multiple tasks to be scheduled in the scheduling node, the system determines execution time data corresponding to the task based on task information for the task, determines idle times corresponding to each of the multiple chips, and, in response to a scheduling request, generates a scheduling sequence based on the task information for each of the multiple tasks to be scheduled, the idle times corresponding to each of the multiple chips, and the execution time data corresponding to each of the multiple tasks to be scheduled. Based on the scheduling sequence, each task to be scheduled in the scheduling sequence is scheduled to the corresponding chip for execution. In this way, if there is an idle chip in a computing cluster containing heterogeneous chips, appropriate tasks are assigned to the idle chip as much as possible, ensuring task execution efficiency.
ここで説明される図面は、本発明のさらなる理解を提供するためのものであり、本明細書の一部を構成し、本明細書の概略的な実施例及びその説明は、本発明を解釈するためのものであり、本発明の不当な限定を構成するものではない。
本発明の目的、技術案及び利点をより明確にするために、以下、本発明の具体的な実施例及び対応する図面を参照しながら本発明の技術案を明確且つ完全に説明する。明らかに、説明された実施例は、本発明の一部の実施例に過ぎず、全ての実施例ではない。本明細書に記載の実施例に基づいて、当業者が創作的な労力を要することなく得られた全ての他の実施例は、いずれも本発明の保護範囲に属する。 In order to clarify the objectives, technical solutions, and advantages of the present invention, the technical solutions of the present invention will be clearly and completely described below with reference to specific embodiments of the present invention and corresponding drawings. Obviously, the described embodiments are only some of the embodiments of the present invention, and do not represent all of the embodiments. All other embodiments that can be obtained by those skilled in the art based on the embodiments described in this specification without requiring any creative effort fall within the scope of protection of the present invention.
以下、図面を参照しながら、本発明の各実施例によって提供される技術案を詳細に説明する。 The technical solutions provided by each embodiment of the present invention are described in detail below with reference to the drawings.
現在、コンピュータ技術の急速な発展に伴い、人々の生活における異種チップの応用が徐々に広がっている。ここで、異種チップは、同一の電子デバイス内の異なるタイプのチップ、例えば、同一のサーバ内の中央処理装置(Central Processing Unit、CPU)、画像処理装置(Graphics Processing Unit、GPU)、テンソル処理装置(Tensor Processing Unit、TPU)などであってもよい。又は、異種チップは、例えば、同一の電子デバイス内の異なる型番のCPUなど、同一の電子デバイス内の同じタイプに属するが異なる型番のチップであってもよい。 Currently, with the rapid development of computer technology, the application of heterogeneous chips in people's lives is gradually expanding. Here, heterogeneous chips may be chips of different types within the same electronic device, such as a central processing unit (CPU), a graphics processing unit (GPU), or a tensor processing unit (TPU) within the same server. Alternatively, heterogeneous chips may be chips of the same type but with different model numbers within the same electronic device, such as CPUs with different model numbers within the same electronic device.
異なるチップが同一のタスクを処理する際に必要な実行時間が異なる。スケジューリングすべきタスクが畳み込みタスクの場合、GPUに必要な実行時間は、通常、CPUに必要な実行時間より短い。したがって、スケジューリングすべきタスクを受信した後、如何にコンピューティングクラスタ内の各チップに基づいて、各スケジューリングすべきタスクを処理し、処理プロセスにおいて各チップの高い利用率を保証するかは、現在解決すべき技術的問題の1つとなっている。 Different chips require different execution times to process the same task. If the task to be scheduled is a convolution task, the execution time required by the GPU is usually shorter than the execution time required by the CPU. Therefore, one of the technical problems currently being solved is how to process each task to be scheduled based on each chip in the computing cluster after receiving the task to be scheduled, and ensure high utilization of each chip in the processing process.
一般的に使用されているスケジューリング方法は、同一の電子デバイス又は同一のコンピューティングクラスタ内の各チップを同じタイプのチップとみなし、手動で該電子デバイスにおけるスケジューリングすべきタスクに優先度を割り当てることである。あるチップがアイドルである場合、スケジューリングすべきタスクの優先度に基づいて、割り当てられていないスケジューリングすべきタスクから、優先度が最も高いスケジューリングすべきタスクを選択して該チップに割り当てる。該チップは、自身に割り当てられたスケジューリングすべきタスクを実行することができる。 A commonly used scheduling method is to treat each chip in the same electronic device or computing cluster as the same type of chip and manually assign priorities to tasks to be scheduled in the electronic device. When a chip is idle, the highest priority task to be scheduled is selected from the unassigned tasks to be scheduled based on the priority of the tasks to be scheduled and assigned to the chip. The chip can then execute the tasks to be scheduled that have been assigned to it.
しかし、各チップのタイプが異なり、型番が異なり、処理能力が異なる場合、該チップに不適切なタスクが割り当てられる可能性があり、その結果、該チップがこのタスクを完了するのに長い時間がかかり、それにより、該コンピューティングクラスタの利用率が低くなる。 However, if each chip is a different type, model number, and processing power, the chip may be assigned an inappropriate task, causing it to take a long time to complete the task, thereby resulting in low utilization of the computing cluster.
これに基づいて、本発明は、シーケンス生成に基づく異種チップのタスクスケジューリング方法を提供する。 Based on this, the present invention provides a task scheduling method for heterogeneous chips based on sequence generation.
図1は、本発明によって提供されるシーケンス生成に基づく異種チップのタスクスケジューリング方法であり、前記方法は、コンピューティングクラスタ内のスケジューリングノードに適用され、前記コンピューティングクラスタは前記スケジューリングノードと複数のチップとを含み、各チップのコンピューティングリソースは完全に同じではない。前記方法は、以下のステップを含む。 Figure 1 shows a heterogeneous chip task scheduling method based on sequence generation provided by the present invention. The method is applied to a scheduling node in a computing cluster. The computing cluster includes the scheduling node and multiple chips, and the computing resources of each chip are not completely identical. The method includes the following steps:
S100:複数のスケジューリングすべきタスクのそれぞれについて、該スケジューリングすべきタスクのタスク情報に基づいて、該スケジューリングすべきタスクに対応する実行時間データを決定し、実行時間データは、前記複数のチップが該スケジューリングすべきタスクを実行するために必要な各実行時間を含む。 S100: For each of a plurality of tasks to be scheduled, execution time data corresponding to the task to be scheduled is determined based on task information for the task to be scheduled, and the execution time data includes the execution times required for each of the plurality of chips to execute the task to be scheduled.
本発明によって提供される該シーケンス生成に基づく異種チップのタスクスケジューリング方法の上記の簡単な説明に基づいて、本発明によって提供される該シーケンス生成に基づく異種チップのタスクスケジューリング方法は、コンピューティングクラスタ内のスケジューリングノードによって実行され得る。該スケジューリングノードは、サーバ、端末、スマートデバイス、電子デバイスなどであってもよい。該コンピューティングクラスタはスケジューリングノードと複数のチップとを含む。即ち、本発明によって提供されるチップのタスクスケジューリング方法は、実質的に、スケジューリングすべきタスクを処理するためにチップを呼び出す方法である。該コンピューティングクラスタは、内部に複数のチップと、タスクスケジューリングのためのスケジューリングユニットとが配置された電子デバイスであってもよいし、スケジューリングノードと、複数のチップが配置されたコンピューティングノードとからなるクラスタであってもよい。 Based on the above brief description of the heterogeneous chip task scheduling method based on sequence generation provided by the present invention, the heterogeneous chip task scheduling method based on sequence generation provided by the present invention can be executed by a scheduling node in a computing cluster. The scheduling node may be a server, a terminal, a smart device, an electronic device, etc. The computing cluster includes a scheduling node and multiple chips. That is, the chip task scheduling method provided by the present invention is essentially a method of calling a chip to process a task to be scheduled. The computing cluster may be an electronic device in which multiple chips and a scheduling unit for task scheduling are arranged, or may be a cluster consisting of a scheduling node and a computing node in which multiple chips are arranged.
具体的に、各スケジューリングすべきタスクについて、該スケジューリングすべきタスクの各チップでの実行時間は完全に同じではない。したがって、該スケジューリングノードは、各スケジューリングすべきタスクについて、該スケジューリングすべきタスクのタスク情報を決定し、該タスク情報を予め訓練された予測モデルに入力して、該予測モデルによって出力された、該スケジューリングすべきタスクに対応する実行時間データを得てもよく、実行時間データは、該複数のチップが該スケジューリングすべきタスクを実行するために必要な各実行時間を含む。ここで、各スケジューリングすべきタスクについて、該スケジューリングすべきタスクのタスク情報は、該スケジューリングすべきタスクのタイムアウト時刻、該スケジューリングすべきタスクの優先度、該スケジューリングすべきタスクのタスクデータのデータ長、該スケジューリングすべきタスクのタスクタイプのうちの少なくとも1つであってもよい。 Specifically, for each task to be scheduled, the execution time of the task to be scheduled on each chip is not exactly the same. Therefore, the scheduling node may determine task information for each task to be scheduled, input the task information into a pre-trained prediction model, and obtain execution time data corresponding to the task to be scheduled output by the prediction model, where the execution time data includes the execution times required for the multiple chips to execute the task to be scheduled. Here, for each task to be scheduled, the task information for the task to be scheduled may be at least one of the timeout time of the task to be scheduled, the priority of the task to be scheduled, the data length of the task data of the task to be scheduled, and the task type of the task to be scheduled.
もちろん、実行時間とチップとの間の対応関係を容易に決定するために、実行時間を決定する時、該スケジューリングノードは、各チップについて、該チップのチップ情報と該スケジューリングすべきタスクのタスク情報とを組み合わせ、組み合わせ結果を予測モデルの入力データとして、該予測モデルによって出力された、該チップが該スケジューリングすべきタスクを実行するために必要な実行時間を得てもよい。その後、該予測モデルによって出力された、該複数のチップが該スケジューリングすべきタスクを実行するために必要な各実行時間を、該スケジューリングすべきタスクに対応する実行時間データとして決定する。 Of course, to easily determine the correspondence between execution time and chips, when determining execution time, the scheduling node may combine, for each chip, the chip information of that chip with the task information of the task to be scheduled, and use the combined result as input data for the prediction model to obtain the execution time required for that chip to execute the task to be scheduled, output by the prediction model. Then, the execution times required for the multiple chips to execute the task to be scheduled, output by the prediction model, are determined as execution time data corresponding to the task to be scheduled.
一実施例では、該スケジューリングノードは、過去に実行されたスケジューリングすべきタスクを履歴タスクとして決定し、複数の履歴タスクのそれぞれに対応するチップ及び複数の履歴タスクのそれぞれに対応する実行時間を決定してもよい。ここで、各履歴タスクについて、該履歴タスクに対応するチップは、該履歴タスクを実行するチップである。 In one embodiment, the scheduling node may determine tasks to be scheduled that were executed in the past as historical tasks, and determine chips corresponding to each of the multiple historical tasks and execution times corresponding to each of the multiple historical tasks. Here, for each historical task, the chip corresponding to the historical task is the chip that executes the historical task.
次に、該スケジューリングノードは、各スケジューリングすべきタスクについて、該スケジューリングすべきタスクと各履歴タスクとの間の類似度を決定し、各履歴タスクについて、該スケジューリングすべきタスクと該履歴タスクとの間の類似度を、該履歴タスクの重みとしてもよい。 The scheduling node may then determine, for each task to be scheduled, the similarity between the task to be scheduled and each historical task, and, for each historical task, use the similarity between the task to be scheduled and the historical task as the weight of the historical task.
最後に、複数の履歴タスクのそれぞれに対応するチップ、複数の履歴タスクのそれぞれに対応する実行時間、及び複数の履歴タスクのそれぞれに対応する重みに基づいて、該スケジューリングすべきタスクに対応する実行時間データを決定し、実行時間データは、該複数のチップが該スケジューリングすべきタスクを実行するために必要な各実行時間を含む。 Finally, execution time data corresponding to the task to be scheduled is determined based on the chips corresponding to each of the multiple history tasks, the execution times corresponding to each of the multiple history tasks, and the weights corresponding to each of the multiple history tasks, and the execution time data includes the execution times required for each of the multiple chips to execute the task to be scheduled.
上記の2つの方式は、スケジューリングすべきタスクに対応する実行時間データを決定するための例に過ぎず、該スケジューリングすべきタスクに対応する実行時間データは、他の方式に基づいて設定されてもよく、本発明はこれについて限定しない。 The above two methods are merely examples for determining the execution time data corresponding to the task to be scheduled. The execution time data corresponding to the task to be scheduled may be set based on other methods; the present invention is not limited to these.
S102:前記複数のチップのそれぞれに対応するアイドル時刻を決定する。 S102: Determine the idle time corresponding to each of the multiple chips.
本発明によって提供される1つ又は複数の実施例では、各スケジューリングすべきタスクについて、該スケジューリングすべきタスクは、チップがアイドル状態の時にのみ実行できるため、該スケジューリングノードは、該複数のチップのそれぞれに対応するアイドル時刻を決定して、該複数のチップのそれぞれに対応するアイドル時刻に基づいて、該複数のチップのそれぞれに割り当てるスケジューリングすべきタスクを決定してもよい。 In one or more embodiments provided by the present invention, for each task to be scheduled, the scheduling node may determine an idle time corresponding to each of the plurality of chips, since the task to be scheduled can only be executed when the chip is idle, and may determine a task to be scheduled to be assigned to each of the plurality of chips based on the idle time corresponding to each of the plurality of chips.
具体的に、該スケジューリングノードは、各チップについて、該チップによって実行されている現在のタスク、及び該現在のタスクに対応する残りの実行時間を決定してもよい。次に、該スケジューリングノードは、該現在のタスクに対応する残りの実行時間に基づいて、該チップのアイドル時刻を決定してもよい。該アイドル時刻は、該アイドル時刻に達した時に該チップがアイドル状態にあることを示すために用いられる。 Specifically, the scheduling node may determine, for each chip, the current task being executed by the chip and the remaining execution time corresponding to the current task. The scheduling node may then determine an idle time for the chip based on the remaining execution time corresponding to the current task. The idle time is used to indicate that the chip is in an idle state when the idle time is reached.
ここで、該アイドル時刻は、具体的な時刻であってもよいし、「残りの実行時間は10sである」など、アイドル時刻と現在の時刻との差を表すためのテキストであってもよい。 Here, the idle time may be a specific time, or it may be text that indicates the difference between the idle time and the current time, such as "remaining execution time is 10 seconds."
もちろん、上記の該複数のチップのそれぞれに対応するアイドル時刻は、各チップにタスクが割り当てられた後に決定されてもよいし、予め設定された時間間隔に従って決定されてもよいし、スケジューリング要求が受信された時に決定されてもよい。各チップのそれぞれに対応するアイドル時刻を具体的にいつ決定するかは、必要に応じて設定されてもよく、本発明はこれについて限定しない。 Of course, the idle time corresponding to each of the above-mentioned multiple chips may be determined after a task is assigned to each chip, may be determined according to a preset time interval, or may be determined when a scheduling request is received. The specific time at which the idle time corresponding to each chip is determined may be set as needed, and the present invention is not limited thereto.
S104:スケジューリング要求に応答して、前記複数のスケジューリングすべきタスクのそれぞれのタスク情報、前記複数のチップのそれぞれに対応するアイドル時刻、及び前記複数のスケジューリングすべきタスクのそれぞれに対応する実行時間データに基づいて、スケジューリングシーケンスを生成し、前記スケジューリングシーケンスには、指定数のスケジューリングすべきタスク、前記指定数のスケジューリングすべきタスクのそれぞれに対応するスケジューリング順序、及び前記指定数のスケジューリングすべきタスクのそれぞれに対応するチップが含まれる。 S104: In response to a scheduling request, a scheduling sequence is generated based on task information for each of the plurality of tasks to be scheduled, idle times corresponding to each of the plurality of chips, and execution time data corresponding to each of the plurality of tasks to be scheduled, wherein the scheduling sequence includes a specified number of tasks to be scheduled, a scheduling order corresponding to each of the specified number of tasks to be scheduled, and a chip corresponding to each of the specified number of tasks to be scheduled.
本発明によって提供される1つ又は複数の実施例では、前述のように、該スケジューリングノードは、該複数のスケジューリングすべきタスクのそれぞれのタスク情報、該複数のチップのそれぞれに対応するアイドル時刻、及び該複数のスケジューリングすべきタスクのそれぞれに対応する実行時間データに基づいて、できるだけ各チップに適切なタスクを割り当て、それに基づいてスケジューリングシーケンスを生成してもよい。 In one or more embodiments provided by the present invention, as described above, the scheduling node may assign appropriate tasks to each chip as much as possible based on the task information for each of the multiple tasks to be scheduled, the idle time corresponding to each of the multiple chips, and the execution time data corresponding to each of the multiple tasks to be scheduled, and generate a scheduling sequence based thereon.
具体的に、該スケジューリングノードは、スケジューリング要求を受信することができ、該スケジューリング要求は、スケジューリングシーケンスを生成するために用いられ、該スケジューリング要求には、指定数を示す情報が含まれる。 Specifically, the scheduling node can receive a scheduling request, which is used to generate a scheduling sequence, and the scheduling request includes information indicating the specified number.
したがって、該スケジューリングノードは、該スケジューリング要求を解析して、該スケジューリング要求における該指定数を決定してもよい。 The scheduling node may therefore analyze the scheduling request to determine the specified number in the scheduling request.
次に、該スケジューリングノードは、該複数のスケジューリングすべきタスクのそれぞれのタスク情報、該複数のチップのそれぞれに対応するアイドル時刻、及び該複数のスケジューリングすべきタスクのそれぞれに対応する実行時間データに基づいて、該複数のスケジューリングすべきタスクから、指定数のスケジューリングすべきタスクを決定してもよい。 The scheduling node may then determine a specified number of tasks to be scheduled from the plurality of tasks to be scheduled based on task information for each of the plurality of tasks to be scheduled, idle times corresponding to each of the plurality of chips, and execution time data corresponding to each of the plurality of tasks to be scheduled.
最後に、該スケジューリングノードは、決定された指定数のスケジューリングすべきタスクに基づいてスケジューリングシーケンスを生成してもよい。 Finally, the scheduling node may generate a scheduling sequence based on the determined specified number of tasks to be scheduled.
ここで、該複数のスケジューリングすべきタスクのそれぞれに対応するタスク情報がタイムアウト時刻を含むことを例とする。該スケジューリングノードは、該複数のスケジューリングすべきタスクのそれぞれに対応するタイムアウト時刻に基づいて各スケジューリングすべきタスクをソートし、決定されたソートに基づいて、タイムアウト時刻が比較的早い指定数のスケジューリングすべきタスクを指定数のスケジューリングすべきタスクとして決定してもよい。その後、該スケジューリングノードは、該指定数のスケジューリングすべきタスクから、タイムアウト時刻が最も早いスケジューリングすべきタスクを決定し、該複数のスケジューリングすべきタスクに対応する実行時間データ、及び該複数のチップのそれぞれに対応するアイドル時刻に基づいて、該タイムアウト時刻が最も早いスケジューリングすべきタスクを対応するチップに割り当ててもよい。該指定数のスケジューリングすべきタスクがいずれも対応するチップに割り当てられるまで、上記の割り当てプロセスを繰り返す。最後に、該スケジューリングノードは、該指定数のスケジューリングすべきタスクのそれぞれに対応するチップ、及び該指定数のスケジューリングすべきタスクのそれぞれに対応する実行順序に基づいて、スケジューリングシーケンスを生成してもよい。 Here, for example, assume that the task information corresponding to each of the multiple tasks to be scheduled includes a timeout time. The scheduling node may sort each of the multiple tasks to be scheduled based on the timeout time corresponding to each of the multiple tasks to be scheduled, and based on the determined sorting, determine a designated number of tasks to be scheduled that have relatively early timeout times. The scheduling node may then determine the task to be scheduled with the earliest timeout time from the designated number of tasks to be scheduled, and assign the task to be scheduled with the earliest timeout time to the corresponding chip based on the execution time data corresponding to the multiple tasks to be scheduled and the idle time corresponding to each of the multiple chips. The above assignment process may be repeated until all of the designated number of tasks to be scheduled have been assigned to the corresponding chips. Finally, the scheduling node may generate a scheduling sequence based on the chips corresponding to each of the designated number of tasks to be scheduled and the execution order corresponding to each of the designated number of tasks to be scheduled.
S106:前記スケジューリングシーケンスに基づいて、前記指定数のスケジューリングすべきタスクのうちの各スケジューリングすべきタスクを対応するチップにスケジューリングして実行させる。 S106: Based on the scheduling sequence, each task to be scheduled among the specified number of tasks to be scheduled is scheduled to the corresponding chip for execution.
本発明によって提供される1つ又は複数の実施例では、スケジューリングシーケンスが生成された後、該スケジューリングノードは、該スケジューリングシーケンス内の各タスクを該タスクに対応するチップにスケジューリングして処理させてもよい。 In one or more embodiments provided by the present invention, after a scheduling sequence is generated, the scheduling node may schedule each task in the scheduling sequence to a chip corresponding to the task for processing.
具体的に、該スケジューリングシーケンスには、指定数のスケジューリングすべきタスクのそれぞれに対応するチップ、及び指定数のスケジューリングすべきタスクのそれぞれに対応するスケジューリング順序が含まれる。 Specifically, the scheduling sequence includes chips corresponding to each of the specified number of tasks to be scheduled, and a scheduling order corresponding to each of the specified number of tasks to be scheduled.
したがって、該スケジューリングノードは、該スケジューリングシーケンスに基づいて、各チップについて、該チップがアイドル状態にある時、該スケジューリングシーケンス内の、該チップに対応するスケジューリングすべきタスクを該チップに割り当ててもよい。 Therefore, for each chip, based on the scheduling sequence, the scheduling node may assign to the chip a task to be scheduled that corresponds to the chip in the scheduling sequence when the chip is in an idle state.
該チップは、該スケジューリングノードによって割り当てられたスケジューリングすべきタスクを受信して処理し、処理結果を提出することができる。 The chip can receive and process tasks to be scheduled assigned by the scheduling node and submit the processing results.
さらに、該チップに対応するスケジューリングすべきタスクは複数であってもよい。したがって、該スケジューリングノードは、該スケジューリングシーケンスに基づいて、該チップに対応するスケジューリングすべきタスクのスケジューリング順序を決定してもよい。したがって、該スケジューリングノードは、該チップに対応するスケジューリングすべきタスクのスケジューリング順序に基づいて、該チップに対応するスケジューリングすべきタスクを該チップに順次割り当ててもよい。 Furthermore, there may be multiple tasks to be scheduled corresponding to the chip. Therefore, the scheduling node may determine the scheduling order of the tasks to be scheduled corresponding to the chip based on the scheduling sequence. Therefore, the scheduling node may sequentially assign the tasks to be scheduled corresponding to the chip to the chip based on the scheduling order of the tasks to be scheduled corresponding to the chip.
現在、スケジューリングすべきタスクの優先度のみに基づいて、コンピューティングクラスタ内の各チップにタスクを割り当てることにより、コンピューティングクラスタの処理効率が低い方法とは異なり、本発明は、図1に示すシーケンス生成に基づく異種チップのタスクスケジューリング方法を提供する。スケジューリングノードの複数のスケジューリングすべきタスクのそれぞれについて、該スケジューリングすべきタスクに対応する実行時間データを決定し、複数のチップのそれぞれに対応するアイドル時刻を決定し、スケジューリング要求に応答して、複数のスケジューリングすべきタスクのそれぞれのタスク情報、複数のチップのそれぞれに対応するアイドル時刻、複数のスケジューリングすべきタスクのそれぞれに対応する実行時間データに基づいて、スケジューリングシーケンスを生成し、スケジューリングシーケンスに基づいて、スケジューリングシーケンス内の各スケジューリングすべきタスクを対応するチップにスケジューリングして実行させる。このように、異種チップを含むコンピューティングクラスタにアイドル状態にあるチップが存在する場合、できるだけ該アイドル状態にあるチップに適切なタスクを割り当て、タスク実行効率を保証する。 Unlike current methods that assign tasks to each chip in a computing cluster based solely on the priority of the task to be scheduled, resulting in low processing efficiency of the computing cluster, the present invention provides a task scheduling method for heterogeneous chips based on sequence generation, as shown in Figure 1. For each of multiple tasks to be scheduled in a scheduling node, execution time data corresponding to the task to be scheduled is determined, and idle times corresponding to each of multiple chips are determined. In response to a scheduling request, a scheduling sequence is generated based on the task information for each of the multiple tasks to be scheduled, the idle times corresponding to each of the multiple chips, and the execution time data corresponding to each of the multiple tasks to be scheduled. Each task to be scheduled in the scheduling sequence is scheduled to the corresponding chip for execution based on the scheduling sequence. In this way, if there is an idle chip in a computing cluster containing heterogeneous chips, appropriate tasks are assigned to the idle chip as much as possible, ensuring task execution efficiency.
さらに、スケジューリングすべきタスクのタスク情報は、複数のタスク属性のそれぞれに対応するデータを含んでもよい。したがって、該スケジューリングノードは、該複数のスケジューリングすべきタスクのそれぞれに対応するタスク情報、該複数のチップのそれぞれに対応するアイドル時刻、及び該複数のスケジューリングすべきタスクのそれぞれに対応する実行時間データに基づいて、該指定数のスケジューリングすべきタスクを決定してもよい。 Furthermore, the task information for the tasks to be scheduled may include data corresponding to each of a plurality of task attributes. Therefore, the scheduling node may determine the specified number of tasks to be scheduled based on the task information corresponding to each of the plurality of tasks to be scheduled, the idle time corresponding to each of the plurality of chips, and the execution time data corresponding to each of the plurality of tasks to be scheduled.
具体的に、該スケジューリングノードは、該複数のスケジューリングすべきタスクの第1の指定属性及び第2の指定属性を決定し、該第1の指定属性及び該第2の指定属性は、スケジューリングすべきタスクの実行時間及びスケジューリングすべきタスクのタスク情報から選択され、該タスク情報は、タイムアウト時刻、優先度、タスクデータのデータ長、タスクタイプのうちの少なくとも1つを含む。 Specifically, the scheduling node determines first and second designated attributes of the plurality of tasks to be scheduled, where the first and second designated attributes are selected from the execution times of the tasks to be scheduled and task information of the tasks to be scheduled, and the task information includes at least one of a timeout time, priority, data length of task data, and task type.
次に、該スケジューリングノードは、該複数のチップのそれぞれに対応するアイドル時刻に基づいて、該複数のチップから、最も早くアイドル状態に入るチップ、即ち、現在のスケジューリングプロセスにおけるスケジューリングすべきタスクを最も早く実行可能なチップを目標チップとして決定してもよい。 The scheduling node may then determine, based on the idle times corresponding to each of the plurality of chips, the chip that will enter the idle state earliest from the plurality of chips, i.e., the chip that can execute the task to be scheduled in the current scheduling process earliest, as the target chip.
次に、該スケジューリングノードは、該複数のスケジューリングすべきタスクのそれぞれに対応する第1の指定属性及び第2の指定属性に基づいて、該複数のスケジューリングすべきタスクと該目標チップとの相関度を決定し、該相関度に基づいて、該目標チップによって実行される特定数の目標タスクを特定数の初期タスクとして決定し、特定数の初期タスクのそれぞれについて、該目標チップのアイドル時刻を更新してもよい。 The scheduling node may then determine a degree of correlation between the plurality of tasks to be scheduled and the target chip based on a first specified attribute and a second specified attribute corresponding to each of the plurality of tasks to be scheduled, determine a specific number of target tasks to be executed by the target chip as a specific number of initial tasks based on the degree of correlation, and update the idle time of the target chip for each of the specific number of initial tasks.
その後、該スケジューリングノードは、各初期タスクについて、該初期タスクに対応する候補シーケンスを生成してもよい。具体的に、各初期タスクについて、該初期タスクに対応する候補シーケンスを生成するステップは、該複数のチップに割り当てられたタスクの数が該指定数に達するまで、更新された該目標チップのアイドル時刻及び該複数のチップのうちの他のチップのそれぞれに対応するアイドル時刻に基づいて、該目標チップを再決定し、該複数のスケジューリングすべきタスクのそれぞれに対応する第1の指定属性及び第2の指定属性に基づいて、該複数のスケジューリングすべきタスクのうちの残りのスケジューリングすべきタスクと該目標チップとの相関度を決定し、該相関度に基づいて、前記残りのスケジューリングすべきタスクから1つの目標タスクを再決定して前記目標チップのアイドル時刻を更新するステップと、該初期タスクと、該初期タスクの後に再決定された全ての目標タスクとに基づいて、該初期タスクに対応する候補シーケンスを生成するステップと、を含む。 Then, the scheduling node may generate, for each initial task, a candidate sequence corresponding to the initial task. Specifically, for each initial task, generating a candidate sequence corresponding to the initial task includes: redetermining a target chip based on the idle time of the updated target chip and idle times corresponding to each of the other chips among the plurality of chips until the number of tasks assigned to the plurality of chips reaches the specified number; determining a correlation between the target chip and the remaining tasks to be scheduled among the plurality of tasks to be scheduled based on a first specified attribute and a second specified attribute corresponding to each of the plurality of tasks to be scheduled; redetermining a target task from the remaining tasks to be scheduled based on the correlation and updating the idle time of the target chip; and generating a candidate sequence corresponding to the initial task based on the initial task and all target tasks redetermined after the initial task.
最後に、該スケジューリングノードは、該特定数の初期タスクのそれぞれに対応する候補シーケンスに基づいて、該スケジューリングシーケンスを決定してもよい。 Finally, the scheduling node may determine the scheduling sequence based on the candidate sequences corresponding to each of the specified number of initial tasks.
ここで、該相関度に基づいて、該目標チップによって実行される特定数の目標タスクを特定数の初期タスクとして決定するステップは、具体的に、該相関度に基づいて、該複数のスケジューリングすべきタスクをソートし、ソート結果から、該特定数の目標タスクを該特定数の初期タスクとして決定するステップを含み、該相関度に基づいて、該残りのスケジューリングすべきタスクから1つの目標タスクを再決定するステップは、該相関度に基づいて、該残りのスケジューリングすべきタスクから、該目標チップとの相関度が最も高いスケジューリングすべきタスクを該目標タスクとして決定するステップを含む。 Here, the step of determining a specific number of target tasks to be executed by the target chip as a specific number of initial tasks based on the degree of correlation specifically includes a step of sorting the plurality of tasks to be scheduled based on the degree of correlation and determining the specific number of target tasks as the specific number of initial tasks from the sorting result, and the step of re-determining one target task from the remaining tasks to be scheduled based on the degree of correlation includes a step of determining, from the remaining tasks to be scheduled, the task to be scheduled that has the highest degree of correlation with the target chip based on the degree of correlation as the target task.
以下、図2を参照して、スケジューリングノードが1つの初期タスク(即ち、特定数が1である)を決定することを例として詳細に説明する。 Below, with reference to Figure 2, we will explain in detail an example in which the scheduling node determines one initial task (i.e., the specific number is 1).
図2は、本発明によって提供される目標タスクを決定するフローを示す概略図である。図において、実線の矩形はタスクがチップxに割り当てられて実行されることを表し、破線の矩形はタスクがチップyに割り当てられて実行されることを表し、太線の矩形はタスクがチップzに割り当てられて実行されることを表す。異なるタスクの異なるチップでの実行時間及び各タスクに対応する残り時間を表1に示すものと仮定する。
表1に示すように、該コンピューティングクラスタにはチップx、チップy、及びチップzの3つのチップが含まれ、該スケジューリングノードには5つのスケジューリングすべきタスク、即ちタスクA、B、C、D、Eがあり、実行時間は各チップが各タスクを実行するために必要な時間であり、残り時間は現在の時刻から該タスクのタイムアウト時刻までの時間を表すために用いられる。 As shown in Table 1, the computing cluster includes three chips: chip x, chip y, and chip z, and the scheduling node has five tasks to be scheduled, namely tasks A, B, C, D, and E. The execution time is the time required for each chip to execute each task, and the remaining time is used to represent the time from the current time until the timeout time of the task.
チップxが現在アイドル状態にあり、チップyのアイドル時刻が3s後であり、チップzのアイドル時刻が5s後であるとすると、該スケジューリングノードは、チップx、y、zのそれぞれに対応するアイドル時刻に基づいて、目標チップがチップxであると決定してもよい。 If chip x is currently idle, chip y's idle time is 3 seconds from now, and chip z's idle time is 5 seconds from now, the scheduling node may determine that the target chip is chip x based on the idle times corresponding to chips x, y, and z.
次に、該スケジューリングノードは、該複数のスケジューリングすべきタスクの第1の指定属性及び第2の指定属性に基づいて、各スケジューリングすべきタスクと該目標チップとの相関度を決定してもよい。以下では、該第1の指定属性がタイムアウト時刻(残り時間で表す)であり、第2の指定属性が実行時間であることを例とする。 The scheduling node may then determine the degree of correlation between each task to be scheduled and the target chip based on the first and second specified attributes of the tasks to be scheduled. In the following example, the first specified attribute is the timeout time (expressed as remaining time) and the second specified attribute is the execution time.
該スケジューリングノードは、タスクA、B、C、D、Eのそれぞれに対応する残り時間に基づいて、残り時間が最も短いN個の候補目標タスクを決定してもよく、Nは2以上であり、上記指定数未満である。Nが2であるとすると、2つの候補目標タスクはタスクAとタスクCである。 The scheduling node may determine N candidate target tasks with the shortest remaining times based on the remaining times corresponding to each of tasks A, B, C, D, and E, where N is greater than or equal to 2 and less than the specified number. If N is 2, the two candidate target tasks are task A and task C.
その後、該スケジューリングノードは、N個の候補目標タスクから1つの目標タスクを初期タスクとして選択してもよい。引き続きNが2であることを例として、該スケジューリングノードは、タスクA、Cのチップxでの実行時間に基づいて、実行時間が最も短いタスクCを目標タスクとして決定し、それを初期タスクとして、チップxのアイドル時刻を8s後に更新してもよい。 The scheduling node may then select one target task from the N candidate target tasks as the initial task. Continuing with the example where N is 2, the scheduling node may determine task C, which has the shortest execution time, as the target task based on the execution times of tasks A and C on chip x, and update the idle time of chip x to 8 seconds later with it as the initial task.
その後、該スケジューリングノードは、チップx、y、zのそれぞれに対応するアイドル時刻に基づいて、目標チップを再決定し、残りのタスクA、B、D、Eのそれぞれに対応する第1の指定属性及び第2の指定属性に基づいて、目標タスクを再決定してもよい。決定された目標タスクの数が指定数に達するまで、上記のプロセスを繰り返す。 The scheduling node may then re-determine target chips based on the idle times corresponding to chips x, y, and z, and re-determine target tasks based on the first and second specified attributes corresponding to the remaining tasks A, B, D, and E, respectively. The above process is repeated until the number of determined target tasks reaches the specified number.
具体的に、図2において、該スケジューリングノードは、チップx、y、zのアイドル時刻がそれぞれ8s後、3s後、5s後であることに基づいて、チップyが目標チップであると決定し、第1の指定属性(残り時間)に基づいて、タスクA、B、D、Eから、タスクAとタスクDが候補目標タスクであると決定し、第2の指定属性(実行時間)に基づいて、タスクAが目標タスクであると決定し、チップyのアイドル時刻を7s後に更新してもよい。次の繰り返しでは、該スケジューリングノードは、チップx、y、zのアイドル時刻がそれぞれ8s後、7s後、5s後であることに基づいて、チップzが目標チップであると決定し、残り時間に基づいて、タスクB、D、Eから、タスクDとタスクBが候補目標タスクであると決定し、実行時間に基づいて、タスクDが目標タスクであると決定し、チップzのアイドル時刻を10s後に更新してもよい。次の繰り返しでは、該スケジューリングノードは、チップx、y、zのアイドル時刻がそれぞれ8s後、7s後、10s後であることに基づいて、チップyが目標チップであると決定し、タスクBとタスクEが候補目標タスクであると決定し、実行時間に基づいて、タスクEが目標タスクであると決定し、チップyのアイドル時刻を15s後に更新してもよい。最後に、最後の繰り返しでは、該スケジューリングノードは、チップx、y、zのアイドル時刻がそれぞれ8s後、15s後、10s後であることに基づいて、チップxが目標チップであると決定し、タスクBが目標タスクであると決定し、チップxのアイドル時刻を17s後に更新してもよい。 Specifically, in FIG. 2, the scheduling node may determine that chip y is the target chip based on the idle times of chips x, y, and z being 8 seconds, 3 seconds, and 5 seconds, respectively; determine that tasks A and D are candidate target tasks from tasks A, B, D, and E based on the first specified attribute (remaining time); determine that task A is the target task based on the second specified attribute (execution time); and update the idle time of chip y to 7 seconds. In the next iteration, the scheduling node may determine that chip z is the target chip based on the idle times of chips x, y, and z being 8 seconds, 7 seconds, and 5 seconds, respectively; determine that tasks D and B are candidate target tasks from tasks B, D, and E based on the remaining time; determine that task D is the target task based on the execution time; and update the idle time of chip z to 10 seconds. In the next iteration, the scheduling node may determine that chip y is the target chip based on the idle times of chips x, y, and z being 8 seconds, 7 seconds, and 10 seconds later, respectively, determine that task B and task E are candidate target tasks, determine that task E is the target task based on their execution times, and update chip y's idle time to 15 seconds later. Finally, in the final iteration, the scheduling node may determine that chip x is the target chip based on the idle times of chips x, y, and z being 8 seconds, 15 seconds, and 10 seconds later, respectively, determine that task B is the target task, and update chip x's idle time to 17 seconds later.
なお、図では、該スケジューリングノードに5つのスケジューリングすべきタスクがあり、スケジューリングシーケンスに含まれるスケジューリングすべきタスクの数が5つ以上であることを例として説明する。最後にタスクBに対応するチップを決定する際に、現在アイドル状態にあるチップ、及びタスクBのチップx、y、zでの実行時間に基づいて、タスクBに対応するチップがチップxであると決定する。その後、該スケジューリングノードは、初期タスク(タスクC)及び該初期タスクの後に再決定された全ての目標タスク(タスクA、D、E、B)に基づいて、候補シーケンスを生成してもよい。該候補シーケンスを、スケジューリングシーケンスとして直接決定する。上記の目標チップ及び目標タスクを決定する方式は示に過ぎず、他の方式に基づいて決定してもよく、本発明はこれについて限定しない。 In the figure, the scheduling node has five tasks to schedule, and the scheduling sequence includes five or more tasks to schedule. Finally, when determining the chip corresponding to task B, the scheduling node determines that the chip corresponding to task B is chip x based on the currently idle chips and the execution time of task B on chips x, y, and z. The scheduling node may then generate a candidate sequence based on the initial task (task C) and all target tasks (tasks A, D, E, and B) redetermined after the initial task. The candidate sequence is then directly determined as the scheduling sequence. The above method for determining the target chips and target tasks is merely illustrative, and other methods may also be used; the present invention is not limited to these.
また、決定されたシーケンスが局所的に最適であることを避けるために、該スケジューリングノードは、複数の候補シーケンスを決定し、候補シーケンスからスケジューリングシーケンスを決定してもよい。以下、図3を参照して、スケジューリングノードが2つの初期タスク(即ち、特定数が2である)を決定することを例として詳細に説明する。この場合、該スケジューリングノードは、2つの候補シーケンスを決定することができる。 In addition, to avoid the determined sequence being locally optimal, the scheduling node may determine multiple candidate sequences and determine a scheduling sequence from the candidate sequences. Below, with reference to FIG. 3, a detailed description will be given of an example in which the scheduling node determines two initial tasks (i.e., the specific number is 2). In this case, the scheduling node can determine two candidate sequences.
図3は、本発明によって提供されるスケジューリングシーケンスを決定するフローを示す概略図である。図2と同様に、実線の矩形はタスクがチップxに割り当てられて実行されることを表し、破線の矩形はタスクがチップyに割り当てられて実行されることを表し、太線の矩形はタスクがチップzに割り当てられて実行されることを表す。該コンピューティングクラスタにはチップx、チップy、及びチップzの3つのチップが含まれ、該スケジューリングノードには5つのスケジューリングすべきタスク、即ちタスクA、B、C、D、Eがあり、実行時間は各チップが各タスクを実行するために必要な時間であり、残り時間は現在の時刻から該タスクのタイムアウト時刻までの時間を表すために用いられる。 Figure 3 is a schematic diagram showing the flow for determining a scheduling sequence provided by the present invention. As in Figure 2, solid rectangles represent tasks assigned to chip x for execution, dashed rectangles represent tasks assigned to chip y for execution, and bold rectangles represent tasks assigned to chip z for execution. The computing cluster includes three chips: chip x, chip y, and chip z. The scheduling node has five tasks to be scheduled, namely tasks A, B, C, D, and E. The execution time is the time required for each chip to execute each task, and the remaining time is used to represent the time from the current time until the timeout time of the task.
チップxが現在アイドル状態にあり、チップyのアイドル時刻が3s後であり、チップzのアイドル時刻が5s後であるとすると、該スケジューリングノードは、チップx、y、zのそれぞれに対応するアイドル時刻に基づいて、目標チップがチップxであると決定してもよい。 If chip x is currently idle, chip y's idle time is 3 seconds from now, and chip z's idle time is 5 seconds from now, the scheduling node may determine that the target chip is chip x based on the idle times corresponding to chips x, y, and z.
次に、該スケジューリングノードは、該複数のスケジューリングすべきタスクの第1の指定属性及び第2の指定属性に基づいて、各スケジューリングすべきタスクと該目標チップとの相関度を決定してもよい。以下では、該第1の指定属性がタイムアウト時刻(残り時間で表す)であり、第2の指定属性が実行時間であることを例とする。 The scheduling node may then determine the degree of correlation between each task to be scheduled and the target chip based on the first and second specified attributes of the tasks to be scheduled. In the following example, the first specified attribute is the timeout time (expressed as remaining time) and the second specified attribute is the execution time.
該スケジューリングノードは、タスクA、B、C、D、Eのそれぞれに対応する残り時間に基づいて、残り時間が最も短いN個の候補目標タスクを決定してもよい。Nが2であるとすると、2つの候補目標タスクはタスクAとタスクCである。 The scheduling node may determine N candidate target tasks with the shortest remaining times based on the remaining times corresponding to tasks A, B, C, D, and E. If N is 2, the two candidate target tasks are task A and task C.
その後、該スケジューリングノードは、N個の候補目標タスクから2つの目標タスクを初期タスクとして選択してもよい。引き続きNが2であることを例として、該スケジューリングノードは、直接にタスクA、Cを目標タスクとし、それを初期タスクとしてもよい。タスクCについて、チップxのアイドル時刻を8s後に更新し、タスクAについて、チップxのアイドル時刻を9s後に更新する。 Then, the scheduling node may select two target tasks from the N candidate target tasks as initial tasks. Continuing with the example where N is 2, the scheduling node may directly select tasks A and C as target tasks and set them as initial tasks. For task C, the idle time of chip x is updated to 8 seconds later, and for task A, the idle time of chip x is updated to 9 seconds later.
該スケジューリングノードが最初に目標タスクを決定する時、該スケジューリングノードは、タスクAとタスクCの両方を初期タスクとして決定し、各初期タスクについて、該初期タスクに対応する候補シーケンスを生成する。 When the scheduling node first determines the target tasks, it determines both task A and task C as initial tasks and, for each initial task, generates a candidate sequence corresponding to the initial task.
タスクCを初期タスクとする候補シーケンスの決定プロセスは、図2の関連説明において説明されており、ここでは説明を省略する。以下、図3を参照して、タスクAを初期タスクとする候補シーケンスの決定プロセスについて詳細に説明する。 The process for determining candidate sequences with task C as the initial task is explained in the related explanation for Figure 2, and will not be explained here. Below, we will explain in detail the process for determining candidate sequences with task A as the initial task, with reference to Figure 3.
上記のように、該スケジューリングノードは、タスクAを初期タスクとして決定し、チップxのアイドル時刻を9s後に更新する。その後、該スケジューリングノードは、チップx、y、zのアイドル時刻がそれぞれ9s後、3s後、5s後であることに基づいて、チップyが目標チップであると決定し、第1の指定属性(残り時間)に基づいて、タスクB、C、D、Eから、タスクCとタスクDが候補目標タスクであると決定し、第2の指定属性(実行時間)に基づいて、タスクDが目標タスクである決定し、チップyのアイドル時刻を8s後に更新してもよい。次の繰り返しでは、該スケジューリングノードは、チップx、y、zのアイドル時刻がそれぞれ9s後、8s後、5s後であることに基づいて、チップzが目標チップであると決定し、残り時間に基づいて、タスクB、C、Eから、タスクCとタスクBが候補目標タスクであると決定し、実行時間に基づいて、タスクCが目標タスクであると決定し、チップzのアイドル時刻を8s後に更新してもよい。次の繰り返しでは、該スケジューリングノードは、チップx、y、zのアイドル時刻がそれぞれ9s後、8s後、8s後であることに基づいて、チップyが目標チップであると決定し(チップのアイドル時刻が同じである場合、ランダムに1つ目標チップを選択する)、タスクBとタスクEが候補目標タスクであると決定し、実行時間に基づいて、タスクEが目標タスクであると決定し、チップyのアイドル時刻を16s後に更新してもよい。最後に、最後の繰り返しでは、該スケジューリングノードは、チップx、y、zのアイドル時刻がそれぞれ9s後、16s後、8s後であることに基づいて、チップzが目標チップであると決定し、タスクBが目標タスクであると決定し、チップzのアイドル時刻を16s後に更新してもよい。 As described above, the scheduling node may determine task A as the initial task and update the idle time of chip x to 9 seconds later. Thereafter, the scheduling node may determine chip y to be the target chip based on the idle times of chips x, y, and z being 9 seconds, 3 seconds, and 5 seconds later, respectively. Based on the first specified attribute (remaining time), the scheduling node may determine tasks C and D from tasks B, C, D, and E to be candidate target tasks. Based on the second specified attribute (execution time), the scheduling node may determine task D to be the target task, and update the idle time of chip y to 8 seconds later. In the next iteration, the scheduling node may determine chip z to be the target chip based on the idle times of chips x, y, and z being 9 seconds, 8 seconds, and 5 seconds later, respectively. Based on the remaining time, the scheduling node may determine tasks C and B from tasks B, C, and E to be candidate target tasks. Based on the execution time, the scheduling node may determine task C to be the target task, and update the idle time of chip z to 8 seconds later. In the next iteration, the scheduling node may determine that chip y is the target chip based on the idle times of chips x, y, and z being 9 seconds, 8 seconds, and 8 seconds later, respectively (if the idle times of chips are the same, it may randomly select one target chip), determine that tasks B and E are candidate target tasks, determine that task E is the target task based on its execution time, and update chip y's idle time to 16 seconds later. Finally, in the final iteration, the scheduling node may determine that chip z is the target chip based on the idle times of chips x, y, and z being 9 seconds, 16 seconds, and 8 seconds later, respectively, determine that task B is the target task, and update chip z's idle time to 16 seconds later.
その後、該スケジューリングノードは、初期タスク(タスクA)及び該初期タスクの後に再決定された全ての目標タスク(タスクD、C、E、B)に基づいて、候補シーケンスを生成してもよい。 The scheduling node may then generate candidate sequences based on the initial task (task A) and all target tasks (tasks D, C, E, and B) that are re-determined after the initial task.
図3に対応する実施例では、該スケジューリングノードは、タスクCを初期タスクとする候補シーケンス、及びタスクAを初期タスクとする候補シーケンスを生成した。その後、該スケジューリングノードは、上記の2つの候補シーケンスに基づいて、スケジューリングシーケンスを決定してもよい。 In the example corresponding to FIG. 3, the scheduling node generates a candidate sequence with task C as the initial task and a candidate sequence with task A as the initial task. The scheduling node may then determine a scheduling sequence based on the two candidate sequences.
さらに、コンピューティングクラスタにとって、タイムアウトタスクの数は重要な評価指標の1つである。したがって、タスクがタイムアウトする前に該タスクを実行することがますます重要になっている。したがって、該スケジューリングノードは、タイムアウトタスクを含まない候補シーケンスからスケジューリングシーケンスを決定してもよい。 Furthermore, for computing clusters, the number of timed-out tasks is one of the important evaluation indicators. Therefore, it is increasingly important to execute tasks before they time out. Therefore, the scheduling node may determine a scheduling sequence from candidate sequences that do not include timed-out tasks.
具体的に、該スケジューリングノードは、該特定数の初期タスクのそれぞれに対応する候補シーケンスから、タイムアウトタスクを含まない候補シーケンスを決定してもよい。 Specifically, the scheduling node may determine a candidate sequence that does not include a timeout task from the candidate sequences corresponding to each of the specified number of initial tasks.
次に、タイムアウトタスクを含まない候補シーケンスから、実行時間が最も短い候補シーケンスをスケジューリングシーケンスとして決定する。 Next, from the candidate sequences that do not include timeout tasks, the candidate sequence with the shortest execution time is determined as the scheduling sequence.
該スケジューリングノードは、該特定数の初期タスクのそれぞれに対応する候補シーケンスのいずれにもタイムアウトタスクが存在すると決定した場合、タイムアウトタスクの数が最も少ない候補シーケンスをスケジューリングシーケンスとして決定する。 If the scheduling node determines that a timeout task exists in any of the candidate sequences corresponding to the specified number of initial tasks, it determines the candidate sequence with the fewest number of timeout tasks as the scheduling sequence.
同じ考えに基づいて、本発明は、図4に示すように、スケジューリングノードの構造を示す概略図を提供する。 Based on the same idea, the present invention provides a schematic diagram showing the structure of a scheduling node, as shown in Figure 4.
図4は、本発明によって提供されるスケジューリングノードの構造を示す概略図であり、前記スケジューリングノードは、クラスタ状態検知ユニット、情報記憶ユニット、スケジューリングシーケンス生成ユニット、及びタスク割り当てユニットを含む。 Figure 4 is a schematic diagram showing the structure of a scheduling node provided by the present invention, which includes a cluster state detection unit, an information storage unit, a scheduling sequence generation unit, and a task allocation unit.
ここで、前記クラスタ状態検知ユニットは、前記コンピューティングクラスタ内の前記複数のチップのそれぞれに対応するアイドル時刻を決定するために用いられる。前記情報記憶ユニットは、前記複数のスケジューリングすべきタスクのそれぞれに対応するタスク情報及び前記複数のスケジューリングすべきタスクのそれぞれに対応する実行時間データを決定して記憶するために用いられる。前記スケジューリングシーケンス生成ユニットは、前記スケジューリングシーケンスを生成するために用いられる。前記タスク割り当てユニットは、前記スケジューリングシーケンスに基づいて、前記指定数のスケジューリングすべきタスクのうちの各スケジューリングすべきタスクを対応するチップに割り当てるために用いられる。 Here, the cluster state detection unit is used to determine idle times corresponding to each of the plurality of chips in the computing cluster. The information storage unit is used to determine and store task information corresponding to each of the plurality of tasks to be scheduled and execution time data corresponding to each of the plurality of tasks to be scheduled. The scheduling sequence generation unit is used to generate the scheduling sequence. The task allocation unit is used to allocate each task to be scheduled of the specified number of tasks to be scheduled to a corresponding chip based on the scheduling sequence.
なお、該スケジューリングノード内の各スケジューリングすべきタスクについて、該スケジューリングすべきタスクは、該スケジューリングノードが前回のスケジューリングプロセスにおいてスケジューリングしていないタスクであってもよい。即ち、該スケジューリングすべきタスクの受信時刻は、該スケジューリングノードが前回のスケジューリング要求を受信する前である。該スケジューリングすべきタスクの受信時刻は、該スケジューリングノードが今回のスケジューリング要求を受信した時刻と、前回受信したスケジューリング要求に対応する時刻との間であってもよい。該スケジューリングノードがスケジューリングすべきタスクを具体的にいつ受信するかは、必要に応じて設定されてもよく、本発明はこれについて限定しない。もちろん、各スケジューリングすべきタスクについて、該スケジューリングすべきタスクに対応するタイムアウト時刻があり、現在の時刻が該スケジューリングすべきタスクのタイムアウト時刻に達したが、該スケジューリングすべきタスクがまだ実行されていない場合、該スケジューリングセンターは、該スケジューリングすべきタスクをタイムアウトタスクとし、該タイムアウトタスクの識別子に基づいて、該タイムアウトタスクを送信するユーザに通知メッセージを送信してもよい。ここで、該通知メッセージは、該タスクがタイムアウトしたことをユーザに知らせるために用いられる。 Note that for each task to be scheduled within the scheduling node, the task to be scheduled may be a task that the scheduling node did not schedule in the previous scheduling process. That is, the reception time of the task to be scheduled may be before the scheduling node received the previous scheduling request. The reception time of the task to be scheduled may be between the time the scheduling node received the current scheduling request and the time corresponding to the previously received scheduling request. The specific time at which the scheduling node receives the task to be scheduled may be set as needed, and the present invention is not limited thereto. Of course, for each task to be scheduled, there is a timeout time corresponding to the task to be scheduled. If the current time reaches the timeout time of the task to be scheduled but the task to be scheduled has not yet been executed, the scheduling center may mark the task to be scheduled as a timeout task and send a notification message to the user who sent the timeout task based on the identifier of the timeout task. Here, the notification message is used to inform the user that the task has timed out.
同じ考えに基づいて、本発明はさらに、図5に示すように、シーケンス生成に基づく異種チップのタスクスケジューリング装置を提供する。 Based on the same idea, the present invention further provides a task scheduling device for heterogeneous chips based on sequence generation, as shown in Figure 5.
図5は、本発明によって提供されるシーケンス生成に基づく異種チップのタスクスケジューリング装置であり、前記装置は、コンピューティングクラスタ内のスケジューリングノードに適用され、前記コンピューティングクラスタは前記スケジューリングノードと複数のチップとを含み、各チップのコンピューティングリソースは完全に同じではない。 Figure 5 shows a task scheduling device for heterogeneous chips based on sequence generation provided by the present invention, which is applied to a scheduling node in a computing cluster, where the computing cluster includes the scheduling node and multiple chips, and the computing resources of each chip are not completely the same.
タスク情報決定モジュール200は、複数のスケジューリングすべきタスクのそれぞれについて、該スケジューリングすべきタスクのタスク情報に基づいて、該スケジューリングすべきタスクに対応する実行時間データを決定するために用いられ、前記実行時間データは、前記複数のチップが該スケジューリングすべきタスクを実行するために必要な各実行時間を含む。 The task information determination module 200 is used to determine, for each of a plurality of tasks to be scheduled, execution time data corresponding to the task to be scheduled based on the task information of the task to be scheduled, and the execution time data includes the execution times required for the plurality of chips to execute the task to be scheduled.
チップ状態決定モジュール202は、前記複数のチップのそれぞれに対応するアイドル時刻を決定するために用いられる。 The chip state determination module 202 is used to determine the idle time corresponding to each of the plurality of chips.
シーケンス生成モジュール204は、スケジューリング要求に応答して、前記複数のスケジューリングすべきタスクのそれぞれのタスク情報、前記複数のチップのそれぞれに対応するアイドル時刻、及び前記複数のスケジューリングすべきタスクのそれぞれに対応する実行時間データに基づいて、スケジューリングシーケンスを生成するために用いられ、前記スケジューリングシーケンスには、指定数のスケジューリングすべきタスク、前記指定数のスケジューリングすべきタスクのそれぞれに対応するスケジューリング順序、及び前記指定数のスケジューリングすべきタスクのそれぞれに対応するチップが含まれる。 The sequence generation module 204 is used to generate a scheduling sequence in response to a scheduling request based on task information for each of the plurality of tasks to be scheduled, idle times corresponding to each of the plurality of chips, and execution time data corresponding to each of the plurality of tasks to be scheduled, wherein the scheduling sequence includes a specified number of tasks to be scheduled, a scheduling order corresponding to each of the specified number of tasks to be scheduled, and chips corresponding to each of the specified number of tasks to be scheduled.
スケジューリングモジュール206は、前記スケジューリングシーケンスに基づいて、前記指定数のスケジューリングすべきタスクのうちの各スケジューリングすべきタスクを対応するチップにスケジューリングして実行させるために用いられる。 The scheduling module 206 is used to schedule and execute each task among the specified number of tasks to be scheduled on the corresponding chip based on the scheduling sequence.
オプションとして、タスク情報決定モジュール200は、具体的に、
該スケジューリングすべきタスクのタイムアウト時刻、該スケジューリングすべきタスクの優先度、該スケジューリングすべきタスクのタスクデータのデータ長、該スケジューリングすべきタスクのタスクタイプのうちの少なくとも1つを、該スケジューリングすべきタスクのタスク情報として決定し、
前記複数のチップのそれぞれについて、該チップのチップ情報と、該スケジューリングすべきタスクのタスク情報とを組み合わせ、組み合わせ結果を予め訓練された予測モデルに入力し、前記予測モデルによって出力された、該チップが該スケジューリングすべきタスクを実行するために必要な実行時間を得るために用いられる。
Optionally, the task information determination module 200 specifically:
determining at least one of a timeout time of the task to be scheduled, a priority of the task to be scheduled, a data length of task data of the task to be scheduled, and a task type of the task to be scheduled as task information of the task to be scheduled;
For each of the plurality of chips, the chip information of the chip is combined with the task information of the task to be scheduled, and the combined result is input into a pre-trained prediction model, which is used to obtain the execution time required for the chip to execute the task to be scheduled, output by the prediction model.
オプションとして、シーケンス生成モジュール204は、具体的に、
前記複数のスケジューリングすべきタスクの第1の指定属性及び第2の指定属性を決定し、前記第1の指定属性及び前記第2の指定属性は、スケジューリングすべきタスクの実行時間及びスケジューリングすべきタスクのタスク情報から選択され、前記タスク情報は、タイムアウト時刻、優先度、タスクデータのデータ長、タスクタイプのうちの少なくとも1つを含み、
前記複数のチップのそれぞれに対応するアイドル時刻に基づいて、目標チップを決定し、前記複数のスケジューリングすべきタスクのそれぞれに対応する第1の指定属性及び第2の指定属性に基づいて、前記複数のスケジューリングすべきタスクと前記目標チップとの相関度を決定し、前記相関度に基づいて、前記目標チップによって実行される特定数の目標タスクを特定数の初期タスクとして決定し、前記特定数の初期タスクのそれぞれについて、前記目標チップのアイドル時刻を更新し、
各初期タスクについて、
前記複数のチップに割り当てられたタスクの数が前記指定数に達するまで、更新された前記目標チップのアイドル時刻及び前記複数のチップのうちの他のチップのそれぞれに対応するアイドル時刻に基づいて、前記目標チップを再決定し、前記複数のスケジューリングすべきタスクのそれぞれに対応する第1の指定属性及び第2の指定属性に基づいて、前記複数のスケジューリングすべきタスクのうちの残りのスケジューリングすべきタスクと前記目標チップとの相関度を決定し、前記相関度に基づいて、前記残りのスケジューリングすべきタスクから1つの目標タスクを再決定して前記目標チップのアイドル時刻を更新し、
該初期タスクと、該初期タスクの後に再決定された全ての目標タスクとに基づいて、該初期タスクに対応する候補シーケンスを生成し、
前記特定数の初期タスクのそれぞれに対応する候補シーケンスに基づいて、前記スケジューリングシーケンスを決定するために用いられる。
Optionally, the sequence generation module 204 specifically:
determining first and second designated attributes of the plurality of tasks to be scheduled, the first and second designated attributes being selected from execution times of the tasks to be scheduled and task information of the tasks to be scheduled, the task information including at least one of a timeout time, a priority, a data length of task data, and a task type;
determining a target chip based on idle times corresponding to each of the plurality of chips; determining a correlation between the plurality of tasks to be scheduled and the target chip based on a first designated attribute and a second designated attribute corresponding to each of the plurality of tasks to be scheduled; determining a specific number of target tasks to be executed by the target chip as a specific number of initial tasks based on the correlation; and updating the idle times of the target chip for each of the specific number of initial tasks;
For each initial task,
re-determine a target chip based on the idle time of the updated target chip and idle times corresponding to each of the other chips among the plurality of chips until the number of tasks assigned to the plurality of chips reaches the specified number; determine a correlation between the remaining tasks to be scheduled among the plurality of tasks to be scheduled and the target chip based on a first specified attribute and a second specified attribute corresponding to each of the plurality of tasks to be scheduled; re-determine a target task from the remaining tasks to be scheduled based on the correlation, and update the idle time of the target chip;
generating a candidate sequence corresponding to the initial task based on the initial task and all target tasks redetermined after the initial task;
The scheduling sequence is determined based on candidate sequences corresponding to each of the specified number of initial tasks.
オプションとして、シーケンス生成モジュール204は、具体的に、
前記相関度に基づいて、前記複数のスケジューリングすべきタスクをソートし、ソート結果から、前記特定数の目標タスクを前記特定数の初期タスクとして決定し、
前記相関度に基づいて、前記残りのスケジューリングすべきタスクから、前記目標チップとの相関度が最も高いスケジューリングすべきタスクを前記目標タスクとして決定するために用いられる。
Optionally, the sequence generation module 204 specifically:
sorting the plurality of tasks to be scheduled based on the correlation degree, and determining the specific number of target tasks as the specific number of initial tasks from the sorting result;
Based on the correlation, a task to be scheduled that has the highest correlation with the target chip is determined as the target task from the remaining tasks to be scheduled.
オプションとして、シーケンス生成モジュール204は、具体的に、
前記特定数の初期タスクのそれぞれに対応する候補シーケンスから、タイムアウトタスクを含まない候補シーケンスを決定し、前記タイムアウトタスクを含まない候補シーケンスから、実行時間が最も短い候補シーケンスを前記スケジューリングシーケンスとして決定するために用いられる。
Optionally, the sequence generation module 204 specifically:
From the candidate sequences corresponding to each of the specified number of initial tasks, a candidate sequence that does not include a timeout task is determined, and from the candidate sequences that do not include a timeout task, the candidate sequence that has the shortest execution time is used to determine as the scheduling sequence.
オプションとして、前記スケジューリングノードは、クラスタ状態検知ユニット、情報記憶ユニット、スケジューリングシーケンス生成ユニット、及びタスク割り当てユニットを含み、
前記クラスタ状態検知ユニットは、前記コンピューティングクラスタ内の前記複数のチップのそれぞれに対応するアイドル時刻を決定するために用いられ、
前記情報記憶ユニットは、前記複数のスケジューリングすべきタスクのそれぞれに対応するタスク情報及び前記複数のスケジューリングすべきタスクのそれぞれに対応する実行時間データを決定して記憶するために用いられ、
前記スケジューリングシーケンス生成ユニットは、前記スケジューリングシーケンスを生成するために用いられ、
前記タスク割り当てユニットは、前記スケジューリングシーケンスに基づいて、前記指定数のスケジューリングすべきタスクのうちの各スケジューリングすべきタスクを対応するチップに割り当てるために用いられる。
Optionally, the scheduling node includes: a cluster state detection unit, an information storage unit, a scheduling sequence generation unit, and a task allocation unit;
the cluster state detection unit is used to determine an idle time corresponding to each of the plurality of chips in the computing cluster;
the information storage unit is used for determining and storing task information corresponding to each of the plurality of tasks to be scheduled and execution time data corresponding to each of the plurality of tasks to be scheduled;
the scheduling sequence generation unit is used to generate the scheduling sequence;
The task allocation unit is used to allocate each task to be scheduled among the specified number of tasks to be scheduled to a corresponding chip based on the scheduling sequence.
本発明はさらに、コンピュータプログラムが記憶されているコンピュータ可読記憶媒体を提供し、コンピュータプログラムは、上記の図1によって提供されるシーケンス生成に基づく異種チップのタスクスケジューリング方法を実行するために用いることができる。 The present invention further provides a computer-readable storage medium having a computer program stored thereon, which can be used to execute the task scheduling method for heterogeneous chips based on the sequence generation provided by FIG. 1 above.
本発明は、さらに、図6に示す電子デバイスの構造を示す図を提供する。図6に示すように、ハードウェアレベルでは、該電子デバイスは、プロセッサ、内部バス、ネットワークインタフェース、内部メモリ、及び不揮発性メモリを含み、もちろん、他の動作に必要なハードウェアも含み得る。プロセッサは、不揮発性メモリから対応するコンピュータプログラムを内部メモリに読み込んで実行し、上記図1に記載のシーケンス生成に基づく異種チップのタスクスケジューリング方法を実現する。もちろん、ソフトウェアによる実現の他に、本発明は、論理デバイスやハードウェアとソフトウェアの組み合わせなど、他の実現方式を排除するものではなく、つまり、以下の処理プロセスの実行主体は、各の論理ユニットに限定されず、ハードウェアや論理デバイスであってもよい。 The present invention further provides a diagram showing the structure of an electronic device, as shown in Figure 6. As shown in Figure 6, at the hardware level, the electronic device includes a processor, an internal bus, a network interface, internal memory, and non-volatile memory, and may also include hardware necessary for other operations. The processor loads the corresponding computer program from the non-volatile memory into the internal memory and executes it, thereby realizing the heterogeneous chip task scheduling method based on sequence generation described in Figure 1 above. Of course, in addition to software realization, the present invention does not exclude other realization methods, such as logical devices or a combination of hardware and software. In other words, the execution entity of the following processing process is not limited to each logical unit, but may also be hardware or a logical device.
1990年代には、ある技術の改良は、ハードウェアの改良(ダイオード、トランジスタ、スイッチなどの回路構造の改良など)とソフトウェアの改良(方法フローの改良)に明確に区別することができる。しかし、技術の発展に伴い、現在の方法フローの改良の多くは、ハードウェア回路構造に対する直接的な改良と見なすことができるようになった。設計者は、改良された方法フローをハードウェア回路にプログラミングすることで、対応するハードウェア回路構造を得ることがほとんどである。したがって、方法フローの改良がハードウェア物理モジュールにより実現できないとは言い切れない。例えば、プログラマブルロジックデバイス(Programmable Logic Device、PLD)(例えばフィールドプログラマブルゲートアレイ(Field Programmable Gate Array、FPGA))はこのような集積回路であり、その論理機能がデバイスのユーザによるプログラミングによって決定される。チップメーカーが専用の集積回路チップを設計・製造する代わりに、設計者がプログラミングしてデジタルシステムを1枚のPLD上に「集積」する。そして、現在では、集積回路チップを手作りする代わりに、このプログラミングは「論理コンパイラ(logic compiler)」というソフトウェアを使って実現されることがほとんどであり、これは、プログラムを書く時に使うソフトウェアコンパイラと類似し、前のオリジナルコードをコンパイルするためには、特定のプログラミング言語で書く必要があり、これはハードウェア記述言語(Hardware Description Language、HDL)と呼ばれ、HDLは1種類だけではなく、ABEL(Advanced Boolean Expression Language)、AHDL(Altera Hardware Description Language)、Confluence、CUPL(Cornell University Programming Language)、HDCal、JHDL(Java Hardware Description Language)、Lava、Lola、MyHDL、PALASM、RHDL(Ruby Hardware Description Language)など、多くの種類があり、現在最もよく使われているのはVHDL(Very-High-Speed Integrated Circuit Hardware Description Language)とVerilogである。方法フローを、上記のハードウェア記述言語のいくつかでちょっと論理的にプログラミングして集積回路にプログラミングするだけで、該論理的な方法フローを実現するハードウェア回路は簡単に得られることは、当業者には明らかであろう。 In the 1990s, technological improvements could be clearly divided into hardware improvements (such as improvements to circuit structures like diodes, transistors, and switches) and software improvements (such as improvements to method flow). However, with technological advances, many current method flow improvements can be considered direct improvements to hardware circuit structures. Designers often obtain the corresponding hardware circuit structure by programming the improved method flow into the hardware circuit. Therefore, it cannot be said that method flow improvements cannot be realized using physical hardware modules. For example, programmable logic devices (PLDs) (e.g., field programmable gate arrays (FPGAs)) are such integrated circuits, whose logical functions are determined by user programming of the device. Instead of chip manufacturers designing and manufacturing dedicated integrated circuit chips, designers program and "integrate" digital systems onto a single PLD. Nowadays, instead of handcrafting integrated circuit chips, this programming is mostly achieved using software called a "logic compiler," which is similar to a software compiler used when writing a program. In order to compile the original code, it must be written in a specific programming language, called a Hardware Description Language (HDL). There is not just one type of HDL; there are several: ABEL (Advanced Boolean Expression Language), AHDL (Altera Hardware Description Language), Confluence, CUPL (Cornell University Programming Language), HDCal, and JHDL (Java Hardware Description Language). There are many types of hardware description languages, including RHDL (Ruby Hardware Description Language), Lava, Lola, MyHDL, PALASM, and RHDL (Ruby Hardware Description Language), but the most commonly used currently are VHDL (Very-High-Speed Integrated Circuit Hardware Description Language) and Verilog. It will be clear to those skilled in the art that by simply logically programming a method flow in one of the above hardware description languages and programming it into an integrated circuit, a hardware circuit that implements the logical method flow can be easily obtained.
コントローラは、任意の適切な方法で実現されてもよく、例えば、コントローラはマイクロプロセッサ又はプロセッサと、該(マイクロ)プロセッサによって実行可能なコンピュータ可読プログラムコード(例えば、ソフトウェア又はファームウェア)を記憶するコンピュータ可読記憶媒体と、論理ゲート、スイッチ、特定用途向け集積回路(Application Specific Integrated Circuit、ASIC)、プログラマブルロジックコントローラ及び埋め込みマイクロコントローラの形態を採用してもよく、コントローラの例として、ARC 625D、Atmel AT91SAM、Microchip PIC18F26K20、Silicone Labs C8051F320などのマイクロコントローラを含むが、これらに限定されず、メモリコントローラはさらに、メモリの制御ロジックの一部として実現されることも可能である。また、純粋なコンピュータ可読プログラムコードでコントローラを実現することに加えて、方法ステップを論理的にプログラミングすることで、コントローラに、論理ゲート、スイッチ、特定用途向け集積回路、プログラマブルロジックコントローラ及び埋め込みマイクロコントローラなどの形態で同じ機能を実行させることも完全に可能であることは、当業者には明らかであろう。したがって、このようなコントローラを、ハードウェアコンポーネントとみなしてもよく、様々な機能を実現するためのその中に含まれる装置も、ハードウェアコンポーネント内の構造とみなしてもよい。又は、さらに、様々な機能を実現するための装置を、方法を実現するソフトウェアモジュールであってもよいし、ハードウェアコンポーネント内の構造であってもよいと、みなしてもよい。 The controller may be implemented in any suitable manner, for example, a microprocessor or processor and a computer-readable storage medium storing computer-readable program code (e.g., software or firmware) executable by the (micro)processor, and may take the form of logic gates, switches, application specific integrated circuits (ASICs), programmable logic controllers, and embedded microcontrollers. Examples of controllers include, but are not limited to, microcontrollers such as the ARC 625D, Atmel AT91SAM, Microchip PIC18F26K20, and Silicone Labs C8051F320. The memory controller may also be implemented as part of the control logic of the memory. It will also be apparent to those skilled in the art that in addition to implementing a controller purely with computer-readable program code, it is entirely possible to logically program method steps to cause a controller to perform the same functions in the form of logic gates, switches, application-specific integrated circuits, programmable logic controllers, embedded microcontrollers, and the like. Therefore, such a controller may be considered a hardware component, and the devices included therein for implementing various functions may also be considered structures within the hardware component. Alternatively, the devices for implementing various functions may also be considered to be software modules that implement a method, or structures within the hardware component.
上記実施例で説明したシステム、装置、モジュール又はユニットは、具体的に、コンピュータチップ、エンティティ、又は何らかの機能を有する製品によって実現されてもよい。典型的な実現デバイスはコンピュータである。具体的に、コンピュータは例えば、パーソナルコンピュータ、ラップトップコンピュータ、携帯電話、カメラ付き電話、スマートフォン、パーソナルデジタルアシスタント、メディアプレーヤ、ナビゲーションデバイス、電子メールデバイス、ゲーム機、タブレット、ウェアラブルデバイス、又はこれらのデバイスの任意のいくつかの組み合わせであってもよい。 The systems, devices, modules, or units described in the above embodiments may be specifically realized by a computer chip, entity, or product having some functionality. A typical realizing device is a computer. Specifically, the computer may be, for example, a personal computer, a laptop computer, a mobile phone, a camera phone, a smartphone, a personal digital assistant, a media player, a navigation device, an email device, a game console, a tablet, a wearable device, or any combination of these devices.
なお、説明の便宜上、上記の装置を説明する時に機能によって様々なユニットに分けてそれぞれ説明する。もちろん、本発明を実施する際に、各ユニットの機能を同一又は複数のソフトウェア及び/又はハードウェアで実現することも可能である。 For ease of explanation, the above device will be described by dividing it into various units according to their functions. Of course, when implementing the present invention, it is also possible to realize the functions of each unit using the same or multiple pieces of software and/or hardware.
当業者であれば分かるように、本発明の実施例が、方法、システム、又はコンピュータプログラム製品として提供されてもよい。したがって、本発明は、ハードウェアだけからなる実施例、ソフトウェアだけからなる実施例、又はソフトウェアとハードウェアを組み合わせた実施例なる形態を用いてもよい。さらに、本発明は、コンピュータで使用可能なプログラムコードを含む1つ又は複数のコンピュータで使用可能な記憶媒体(磁気ディスクメモリ、CD-ROM、光学メモリなどを含むが、これらに限定されない)において実施されるコンピュータプログラム製品の形態であってもよい。 As will be appreciated by those skilled in the art, embodiments of the present invention may be provided as a method, system, or computer program product. Accordingly, the present invention may take the form of an embodiment consisting entirely of hardware, an embodiment consisting entirely of software, or an embodiment combining software and hardware. Furthermore, the present invention may take the form of a computer program product embodied in one or more computer-usable storage media (including, but not limited to, magnetic disk memory, CD-ROM, optical memory, etc.) containing computer-usable program code.
本発明は、本発明の実施例による方法、デバイス(システム)、及びコンピュータプログラム製品のフローチャート及び/又はブロック図を参照して説明される。フローチャート及び/又はブロック図における各フロー及び/又はブロック、並びにフローチャート及び/又はブロック図におけるフロー及び/又はブロックの組み合わせは、コンピュータプログラム命令によって実現されてもよいことが理解されるべきである。これらのコンピュータプログラム命令は、マシンを生成するために、汎用コンピュータ、専用コンピュータ、埋め込みプロセッサ、又は他のプログラム可能なデータ処理デバイスのプロセッサに提供されてもよく、それにより、コンピュータ又は他のプログラム可能なデータ処理デバイスのプロセッサによって実行される命令により、フローチャートの1つ又は複数のフロー、及び/又はブロック図の1つ又は複数のブロックにおいて指定される機能を実現するための装置が生成される。 The present invention will be described with reference to flowcharts and/or block diagrams of methods, devices (systems), and computer program products according to embodiments of the present invention. It should be understood that each flow and/or block in the flowcharts and/or block diagrams, and combinations of flows and/or blocks in the flowcharts and/or block diagrams, may be implemented by computer program instructions. These computer program instructions may be provided to a processor of a general-purpose computer, a special-purpose computer, an embedded processor, or other programmable data processing device to generate a machine, whereby the instructions, executed by the processor of the computer or other programmable data processing device, generate an apparatus for implementing the functions specified in one or more flows in the flowcharts and/or one or more blocks in the block diagrams.
これらのコンピュータプログラム命令は、コンピュータ又は他のプログラム可能なデータ処理デバイスに特定の方法で作業するように指示することができるコンピュータ可読メモリに記憶されてもよく、その結果、該コンピュータ可読メモリに記憶されている命令により、フローチャートの1つ又は複数のフロー及び/又はブロック図の1つ又は複数のブロックにおいて指定される機能を実現する命令装置を含む製品が生成される。 These computer program instructions may be stored in a computer-readable memory that can direct a computer or other programmable data processing device to operate in a particular manner, resulting in an article of manufacture that includes an instruction apparatus that implements the functions specified in one or more flows of the flowcharts and/or one or more blocks of the block diagrams, as a result of the instructions stored in the computer-readable memory.
これらのコンピュータプログラム命令は、コンピュータ又は他のプログラム可能なデータ処理デバイスにロードしてもよく、それにより、一連の動作ステップがコンピュータ又は他のプログラム可能なデバイス上で実行されることで、コンピュータにより実施される処理が生成され、それにより、コンピュータ又は他のプログラム可能なデバイス上で実行される命令により、フローチャートの1つ又は複数のフロー、及び/又はブロック図の1つ又は複数のブロック内で指定される機能を実現するためのステップが提供される。 These computer program instructions may be loaded into a computer or other programmable data processing device, and a series of operational steps executed on the computer or other programmable device to generate computer-implemented processes, whereby the instructions executed on the computer or other programmable device provide steps for implementing the functions specified in one or more flows of the flowcharts and/or one or more blocks of the block diagrams.
典型的な構成では、コンピューティングデバイスは、1つ以上のプロセッサ(CPU)、入力/出力インタフェース、ネットワークインタフェース、及びメモリを含む。 In a typical configuration, a computing device includes one or more processors (CPUs), input/output interfaces, network interfaces, and memory.
メモリは、コンピュータ可読記憶媒体のうちの揮発性メモリ、ランダムアクセスメモリ(RAM)及び/又は不揮発性メモリなどの形態を含み得、例えば、読み出し専用メモリ(ROM)又はフラッシュメモリ(flash RAM)である。メモリは、コンピュータ可読記憶媒体の一例である。 Memory may include computer-readable storage media in the form of volatile memory, random access memory (RAM), and/or non-volatile memory, such as read-only memory (ROM) or flash memory (flash RAM). Memory is one example of a computer-readable storage medium.
コンピュータ可読記憶媒体は不揮発性及び揮発性媒体、移動可能及び非移動可能な媒体を含み、任意の方法又は技術により情報記憶を実現し得る。情報はコンピュータ可読命令、データ構造、プログラムモジュール又は他のデータであってもよい。コンピュータの記憶媒体は、相変化メモリ(Phase Change RAM、PRAM)、スタティックランダムアクセスメモリ(Static Random-Access Memory、SRAM)、ダイナミックランダムアクセスメモリ(Dynamic Random Access Memory、DRAM)、他のタイプのランダムアクセスメモリ(RAM)、読み出し専用メモリ(ROM)、電気的消去可能プログラマブル読み出し専用メモリ(Electrically Erasable Programmable Read Only Memory、EEPROM)、フラッシュメモリ(flash Memory)又は他のメモリ技術、コンパクトディスク読み出し専用メモリ(Compact Disc Read Only Memory、CD-ROM)、デジタル多用途ディスク(Digital Versatile Disc、DVD)又は他の光学記憶、磁気カセットテープ、磁気テープ磁気ディスク記憶又は他の磁気記憶デバイス、又はコンピューティングデバイスからアクセス可能な情報を記憶するために使用され得る任意の他の非伝送媒体を含むがそれらに限定されない。本明細書の定義によれば、コンピュータ可読記憶媒体は一時記憶コンピュータ可読記憶媒体(transitory Media)、例えば変調されたデータ信号及びキャリアを含まない。 Computer-readable storage media include non-volatile and volatile media, removable and non-removable media, and may implement information storage using any method or technology. Information may be computer-readable instructions, data structures, program modules, or other data. Computer storage media may be 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 technologies, Compact Disc Read Only Memory (CD-ROM), Digital Versatile Disk (DV), or other memory technologies. This includes, but is not limited to, digital Versatile Disc (DVD) or other optical storage, magnetic cassette tape, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other non-transmission medium that can be used to store information accessible by a computing device. As defined herein, computer-readable storage media does not include transient computer-readable storage media, such as modulated data signals and carriers.
また、用語「含む」、「含有」又はそのいずれかの他の変形は、非排他的な含有を含むことを意図し、それにより一連の要素を含むプロセス、方法、物品又はデバイスはそれらの要素を含むだけでなく、また明確に列挙されていない他の要素も含み、又はこのようなプロセス、方法、物品又はデバイスの固有の要素も含む。より多くの制限がない場合、文「1つの…を含む」により限定された要素は、前記要素を含むプロセス、方法、物品又はデバイスにさらに他の同じ要素が存在することを排除するものではない。 Additionally, the terms "comprise," "contain," or any other variation thereof, are intended to include a non-exclusive inclusion, whereby a process, method, article, or device that includes a set of elements not only includes those elements, but also includes other elements not expressly listed, or includes the inherent elements of such process, method, article, or device. Absent more limitations, elements qualified by the phrase "comprise..." do not exclude the presence of additional identical elements in a process, method, article, or device that includes said elements.
当業者であれば分かるように、本発明の実施例が、方法、システム、又はコンピュータプログラム製品として提供されてもよい。したがって、本発明は、ハードウェアだけからなる実施例、ソフトウェアだけからなる実施例、又はソフトウェアとハードウェアを組み合わせた実施例なる形態を用いてもよい。さらに、本発明は、コンピュータで使用可能なプログラムコードを含む1つ又は複数のコンピュータで使用可能な記憶媒体(磁気ディスクメモリ、CD-ROM、光学メモリなどを含むが、これらに限定されない)において実施されるコンピュータプログラム製品の形態であってもよい。 As will be appreciated by those skilled in the art, embodiments of the present invention may be provided as a method, system, or computer program product. Accordingly, the present invention may take the form of an embodiment consisting entirely of hardware, an embodiment consisting entirely of software, or an embodiment combining software and hardware. Furthermore, the present invention may take the form of a computer program product embodied in one or more computer-usable storage media (including, but not limited to, magnetic disk memory, CD-ROM, optical memory, etc.) containing computer-usable program code.
本発明は、プログラムモジュールのようなコンピュータによって実行されるコンピュータ実行可能命令の一般的な文脈で記述され得る。一般的に、プログラムモジュールは、特定のタスクを実行する、又は特定の抽象データ型を実現するルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを含む。本発明は、通信ネットワークを介して接続されたリモート処理デバイスによってタスクが実行される分散コンピューティング環境においても実施され得る。分散コンピューティング環境において、プログラムモジュールは、記憶デバイスを含むローカル及びリモートコンピュータ記憶媒体に配置され得る。 The invention may be described in the general context of computer-executable instructions, such as program modules, being executed by a computer. Generally, program modules include routines, programs, objects, components, data structures, etc. that perform particular tasks or implement particular abstract data types. The invention may also be practiced in distributed computing environments where tasks are performed by remote processing devices that are linked through a communications network. In a distributed computing environment, program modules may be located in both local and remote computer storage media, including storage devices.
本発明における各実施例はいずれも漸進の方式で説明され、各実施例の間の同じ又は類似する部分は互いに参照すればよく、各実施例の重点的に説明されたのは他の実施例との相違点である。特に、システムの実施例に対して、それは基本的に方法の実施例と類似するため、簡単に説明し、関連する部分は方法の実施例の一部の説明を参照すればよい。 Each embodiment of the present invention will be described in a step-by-step manner, and the same or similar parts between the embodiments may be referred to. The emphasis in the description of each embodiment will be on the differences from other embodiments. In particular, the system embodiments will be described briefly, as they are essentially similar to the method embodiments, and relevant parts may be referred to in the description of some of the method embodiments.
上記は、本発明の実施例に過ぎず、本発明を限定するためのものではない。当業者にとって、本発明は、様々な変更及び変更が可能である。本発明の精神及び原理の範囲内で行われたいかなる変更、同等な置換、改良などは、いずれも本発明の特許請求の範囲内に含まれるものとする。 The above is merely an example of the present invention and is not intended to limit the present invention. Those skilled in the art will appreciate that the present invention may undergo various modifications and variations. Any modifications, equivalent replacements, improvements, etc. made within the spirit and principles of the present invention are intended to be included within the scope of the claims of the present invention.
Claims (8)
複数のスケジューリングすべきタスクのそれぞれについて、該スケジューリングすべきタスクのタスク情報に基づいて、該スケジューリングすべきタスクに対応する実行時間データを決定するステップであって、前記実行時間データは、前記複数のチップが該スケジューリングすべきタスクを実行するために必要な各実行時間を含む、ステップと、
前記複数のチップのそれぞれに対応するアイドル時刻を決定するステップと、
スケジューリング要求に応答して、前記複数のスケジューリングすべきタスクのそれぞれのタスク情報、前記複数のチップのそれぞれに対応するアイドル時刻、及び前記複数のスケジューリングすべきタスクのそれぞれに対応する実行時間データに基づいて、スケジューリングシーケンスを生成するステップであって、前記スケジューリングシーケンスには、指定数のスケジューリングすべきタスク、前記指定数のスケジューリングすべきタスクのそれぞれに対応するスケジューリング順序、及び前記指定数のスケジューリングすべきタスクのそれぞれに対応するチップが含まれる、ステップと、
前記スケジューリングシーケンスに基づいて、前記指定数のスケジューリングすべきタスクのうちの各スケジューリングすべきタスクを対応するチップにスケジューリングして実行させるステップと、を含み、
前記複数のスケジューリングすべきタスクのそれぞれのタスク情報、前記複数のチップのそれぞれに対応するアイドル時刻、及び前記複数のスケジューリングすべきタスクのそれぞれに対応する実行時間データに基づいて、スケジューリングシーケンスを生成するステップは、
前記複数のスケジューリングすべきタスクの第1の指定属性及び第2の指定属性を決定するステップであって、前記第1の指定属性及び前記第2の指定属性は、スケジューリングすべきタスクの実行時間及びスケジューリングすべきタスクのタスク情報から選択され、前記タスク情報は、タイムアウト時刻、優先度、タスクデータのデータ長、タスクタイプのうちの少なくとも1つを含む、ステップと、
前記複数のチップのそれぞれに対応するアイドル時刻に基づいて、目標チップを決定し、前記複数のスケジューリングすべきタスクのそれぞれに対応する第1の指定属性及び第2の指定属性に基づいて、前記複数のスケジューリングすべきタスクと前記目標チップとの相関度を決定し、前記相関度に基づいて、前記目標チップによって実行される特定数の目標タスクを特定数の初期タスクとして決定し、前記特定数の初期タスクのそれぞれについて、前記目標チップのアイドル時刻を更新するステップと、
各初期タスクについて、
前記複数のチップに割り当てられたタスクの数が前記指定数に達するまで、更新された前記目標チップのアイドル時刻及び前記複数のチップのうちの他のチップのそれぞれに対応するアイドル時刻に基づいて、前記目標チップを再決定し、前記複数のスケジューリングすべきタスクのそれぞれに対応する第1の指定属性及び第2の指定属性に基づいて、前記複数のスケジューリングすべきタスクのうちの残りのスケジューリングすべきタスクと前記目標チップとの相関度を決定し、前記相関度に基づいて、前記残りのスケジューリングすべきタスクから1つの目標タスクを再決定して前記目標チップのアイドル時刻を更新し、
該初期タスクと、該初期タスクの後に再決定された全ての目標タスクとに基づいて、該初期タスクに対応する候補シーケンスを生成するステップと、
前記特定数の初期タスクのそれぞれに対応する候補シーケンスに基づいて、前記スケジューリングシーケンスを決定するステップと、を含む、
ことを特徴とするシーケンス生成に基づく異種チップのタスクスケジューリング方法。 A task scheduling method for heterogeneous chips based on sequence generation executed by a scheduling node in a computing cluster, wherein the computing cluster includes the scheduling node and multiple chips, and the computing resources of each chip are not completely the same;
determining, for each of a plurality of tasks to be scheduled, execution time data corresponding to the task to be scheduled based on task information of the task to be scheduled, the execution time data including respective execution times required for the plurality of chips to execute the task to be scheduled;
determining an idle time corresponding to each of the plurality of chips;
generating a scheduling sequence in response to a scheduling request based on task information for each of the plurality of tasks to be scheduled, idle times corresponding to each of the plurality of chips, and execution time data corresponding to each of the plurality of tasks to be scheduled, wherein the scheduling sequence includes a specified number of tasks to be scheduled, a scheduling order corresponding to each of the specified number of tasks to be scheduled, and chips corresponding to each of the specified number of tasks to be scheduled;
scheduling and executing each task to be scheduled among the designated number of tasks to be scheduled on a corresponding chip based on the scheduling sequence;
generating a scheduling sequence based on task information of each of the plurality of tasks to be scheduled, idle times corresponding to each of the plurality of chips, and execution time data corresponding to each of the plurality of tasks to be scheduled,
determining first and second designated attributes of the plurality of tasks to be scheduled, wherein the first and second designated attributes are selected from execution times of the tasks to be scheduled and task information of the tasks to be scheduled, the task information including at least one of a timeout time, a priority, a data length of task data, and a task type;
determining a target chip based on idle times corresponding to each of the plurality of chips; determining a correlation between the plurality of tasks to be scheduled and the target chip based on a first designated attribute and a second designated attribute corresponding to each of the plurality of tasks to be scheduled; determining a specific number of target tasks to be executed by the target chip as a specific number of initial tasks based on the correlation; and updating the idle times of the target chip for each of the specific number of initial tasks;
For each initial task,
re-determine a target chip based on the idle time of the updated target chip and idle times corresponding to each of the other chips among the plurality of chips until the number of tasks assigned to the plurality of chips reaches the specified number; determine a correlation between the remaining tasks to be scheduled among the plurality of tasks to be scheduled and the target chip based on a first specified attribute and a second specified attribute corresponding to each of the plurality of tasks to be scheduled; re-determine a target task from the remaining tasks to be scheduled based on the correlation, and update the idle time of the target chip;
generating a candidate sequence corresponding to the initial task based on the initial task and all target tasks redetermined after the initial task;
determining the scheduling sequence based on candidate sequences corresponding to each of the specified number of initial tasks;
A heterogeneous chip task scheduling method based on sequence generation, characterized in that:
該スケジューリングすべきタスクのタイムアウト時刻、該スケジューリングすべきタスクの優先度、該スケジューリングすべきタスクのタスクデータのデータ長、該スケジューリングすべきタスクのタスクタイプのうちの少なくとも1つを、該スケジューリングすべきタスクのタスク情報として決定するステップと、
前記複数のチップのそれぞれについて、該チップのチップ情報と、該スケジューリングすべきタスクのタスク情報とを組み合わせ、組み合わせ結果を予め訓練された予測モデルに入力し、前記予測モデルによって出力された、該チップが該スケジューリングすべきタスクを実行するために必要な実行時間を得るステップと、を含む、
ことを特徴とする請求項1に記載の方法。 The step of determining execution time data corresponding to the task to be scheduled based on task information of the task to be scheduled includes:
determining at least one of a timeout time of the task to be scheduled, a priority of the task to be scheduled, a data length of task data of the task to be scheduled, and a task type of the task to be scheduled as task information of the task to be scheduled;
For each of the plurality of chips, combining chip information of the chip with task information of the task to be scheduled, inputting the combined result into a pre-trained prediction model, and obtaining an execution time required for the chip to execute the task to be scheduled, output by the prediction model.
2. The method of claim 1 .
前記相関度に基づいて、前記複数のスケジューリングすべきタスクをソートし、ソート結果から、前記特定数の目標タスクを前記特定数の初期タスクとして決定するステップを含み、
前記相関度に基づいて、前記残りのスケジューリングすべきタスクから1つの目標タスクを再決定するステップは、
前記相関度に基づいて、前記残りのスケジューリングすべきタスクから、前記目標チップとの相関度が最も高いスケジューリングすべきタスクを前記目標タスクとして決定するステップを含む、
ことを特徴とする請求項1に記載の方法。 determining a specific number of target tasks to be executed by the target chip as a specific number of initial tasks based on the correlation degree,
sorting the plurality of tasks to be scheduled based on the correlation degree, and determining the specific number of target tasks as the specific number of initial tasks from the sorting result;
The step of re-determining one target task from the remaining tasks to be scheduled based on the correlation degree includes:
determining, as the target task, a task to be scheduled that has the highest correlation with the target chip from among the remaining tasks to be scheduled based on the correlation;
2. The method of claim 1 .
前記特定数の初期タスクのそれぞれに対応する候補シーケンスから、タイムアウトタスクを含まない候補シーケンスを決定し、前記タイムアウトタスクを含まない候補シーケンスから、実行時間が最も短い候補シーケンスを前記スケジューリングシーケンスとして決定するステップを含む、
ことを特徴とする請求項1に記載の方法。 determining the scheduling sequence based on candidate sequences corresponding to each of the specified number of initial tasks,
determining a candidate sequence that does not include a timeout task from candidate sequences corresponding to each of the specific number of initial tasks, and determining a candidate sequence that has the shortest execution time from the candidate sequences that do not include a timeout task as the scheduling sequence;
2. The method of claim 1 .
前記クラスタ状態検知ユニットは、前記コンピューティングクラスタ内の前記複数のチップのそれぞれに対応するアイドル時刻を決定するために用いられ、
前記情報記憶ユニットは、前記複数のスケジューリングすべきタスクのそれぞれに対応するタスク情報及び前記複数のスケジューリングすべきタスクのそれぞれに対応する実行時間データを決定して記憶するために用いられ、
前記スケジューリングシーケンス生成ユニットは、前記スケジューリングシーケンスを生成するために用いられ、
前記タスク割り当てユニットは、前記スケジューリングシーケンスに基づいて、前記指定数のスケジューリングすべきタスクのうちの各スケジューリングすべきタスクを対応するチップに割り当てるために用いられる、
ことを特徴とする請求項1に記載の方法。 The scheduling node includes a cluster state detection unit, an information storage unit, a scheduling sequence generation unit, and a task allocation unit;
the cluster state detection unit is used to determine an idle time corresponding to each of the plurality of chips in the computing cluster;
the information storage unit is used for determining and storing task information corresponding to each of the plurality of tasks to be scheduled and execution time data corresponding to each of the plurality of tasks to be scheduled;
the scheduling sequence generation unit is used to generate the scheduling sequence;
the task allocation unit is used to allocate each task to be scheduled among the specified number of tasks to be scheduled to a corresponding chip based on the scheduling sequence;
2. The method of claim 1 .
複数のスケジューリングすべきタスクのそれぞれについて、該スケジューリングすべきタスクのタスク情報に基づいて、該スケジューリングすべきタスクに対応する実行時間データを決定するためのタスク情報決定モジュールであって、前記実行時間データは、前記複数のチップが該スケジューリングすべきタスクを実行するために必要な各実行時間を含む、タスク情報決定モジュールと、
前記複数のチップのそれぞれに対応するアイドル時刻を決定するためのチップ状態決定モジュールと、
スケジューリング要求に応答して、前記複数のスケジューリングすべきタスクのそれぞれのタスク情報、前記複数のチップのそれぞれに対応するアイドル時刻、及び前記複数のスケジューリングすべきタスクのそれぞれに対応する実行時間データに基づいて、スケジューリングシーケンスを生成するためのスケジューリングシーケンス生成モジュールであって、前記スケジューリングシーケンスには、指定数のスケジューリングすべきタスク、前記指定数のスケジューリングすべきタスクのそれぞれに対応するスケジューリング順序、及び前記指定数のスケジューリングすべきタスクのそれぞれに対応するチップが含まれる、スケジューリングシーケンス生成モジュールと、
前記スケジューリングシーケンスに基づいて、前記指定数のスケジューリングすべきタスクのうちの各スケジューリングすべきタスクを対応するチップにスケジューリングして実行させるためのスケジューリングモジュールと、を含み、
前記シーケンス生成モジュールは、具体的に、
前記複数のスケジューリングすべきタスクの第1の指定属性及び第2の指定属性を決定し、前記第1の指定属性及び前記第2の指定属性は、スケジューリングすべきタスクの実行時間及びスケジューリングすべきタスクのタスク情報から選択され、前記タスク情報は、タイムアウト時刻、優先度、タスクデータのデータ長、タスクタイプのうちの少なくとも1つを含み、
前記複数のチップのそれぞれに対応するアイドル時刻に基づいて、目標チップを決定し、前記複数のスケジューリングすべきタスクのそれぞれに対応する第1の指定属性及び第2の指定属性に基づいて、前記複数のスケジューリングすべきタスクと前記目標チップとの相関度を決定し、前記相関度に基づいて、前記目標チップによって実行される特定数の目標タスクを特定数の初期タスクとして決定し、前記特定数の初期タスクのそれぞれについて、前記目標チップのアイドル時刻を更新し、
各初期タスクについて、
前記複数のチップに割り当てられたタスクの数が前記指定数に達するまで、更新された前記目標チップのアイドル時刻及び前記複数のチップのうちの他のチップのそれぞれに対応するアイドル時刻に基づいて、前記目標チップを再決定し、前記複数のスケジューリングすべきタスクのそれぞれに対応する第1の指定属性及び第2の指定属性に基づいて、前記複数のスケジューリングすべきタスクのうちの残りのスケジューリングすべきタスクと前記目標チップとの相関度を決定し、前記相関度に基づいて、前記残りのスケジューリングすべきタスクから1つの目標タスクを再決定して前記目標チップのアイドル時刻を更新し、
該初期タスクと、該初期タスクの後に再決定された全ての目標タスクとに基づいて、該初期タスクに対応する候補シーケンスを生成し、
前記特定数の初期タスクのそれぞれに対応する候補シーケンスに基づいて、前記スケジューリングシーケンスを決定するために用いられる、
ことを特徴とするシーケンス生成に基づく異種チップのタスクスケジューリング装置。 A task scheduling apparatus for heterogeneous chips based on sequence generation applied to a scheduling node in a computing cluster, wherein the computing cluster includes the scheduling node and a plurality of chips, and the computing resources of each chip are not completely the same;
a task information determination module for determining, for each of a plurality of tasks to be scheduled, execution time data corresponding to the task to be scheduled based on task information of the task to be scheduled, the execution time data including respective execution times required for the plurality of chips to execute the task to be scheduled;
a chip state determination module for determining an idle time corresponding to each of the plurality of chips;
a scheduling sequence generation module for generating a scheduling sequence in response to a scheduling request based on task information of each of the plurality of tasks to be scheduled, idle times corresponding to each of the plurality of chips, and execution time data corresponding to each of the plurality of tasks to be scheduled, wherein the scheduling sequence includes a specified number of tasks to be scheduled, a scheduling order corresponding to each of the specified number of tasks to be scheduled, and chips corresponding to each of the specified number of tasks to be scheduled;
a scheduling module for scheduling and executing each task to be scheduled among the specified number of tasks to be scheduled on a corresponding chip based on the scheduling sequence;
The sequence generation module specifically includes:
determining first and second designated attributes of the plurality of tasks to be scheduled, the first and second designated attributes being selected from execution times of the tasks to be scheduled and task information of the tasks to be scheduled, the task information including at least one of a timeout time, a priority, a data length of task data, and a task type;
determining a target chip based on idle times corresponding to each of the plurality of chips; determining a correlation between the plurality of tasks to be scheduled and the target chip based on a first designated attribute and a second designated attribute corresponding to each of the plurality of tasks to be scheduled; determining a specific number of target tasks to be executed by the target chip as a specific number of initial tasks based on the correlation; and updating the idle times of the target chip for each of the specific number of initial tasks;
For each initial task,
re-determine a target chip based on the idle time of the updated target chip and idle times corresponding to each of the other chips among the plurality of chips until the number of tasks assigned to the plurality of chips reaches the specified number; determine a correlation between the remaining tasks to be scheduled among the plurality of tasks to be scheduled and the target chip based on a first specified attribute and a second specified attribute corresponding to each of the plurality of tasks to be scheduled; re-determine a target task from the remaining tasks to be scheduled based on the correlation, and update the idle time of the target chip;
generating a candidate sequence corresponding to the initial task based on the initial task and all target tasks redetermined after the initial task;
used to determine the scheduling sequence based on candidate sequences corresponding to each of the specified number of initial tasks .
A task scheduling device for heterogeneous chips based on sequence generation, characterized in that:
ことを特徴とするコンピュータ可読記憶媒体。 A computer-readable storage medium having stored thereon a computer program, the computer program being executed by a processor to perform the method of any one of claims 1 to 5.
A computer-readable storage medium comprising:
ことを特徴とする電子デバイス。 An electronic device comprising a memory, a processor and a computer program stored in the memory and executable on the processor, the electronic device performing the method of any one of claims 1 to 5 when the processor executes the computer program.
An electronic device characterized by:
Applications Claiming Priority (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202311208268.X | 2023-09-19 | ||
| CN202311208268.XA CN116932175B (en) | 2023-09-19 | 2023-09-19 | Heterogeneous chip task scheduling method and device based on sequence generation |
| PCT/CN2023/142622 WO2024250650A1 (en) | 2023-09-19 | 2023-12-28 | Heterogeneous chip task scheduling method and apparatus based on sequence generation |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JP2025525276A JP2025525276A (en) | 2025-08-05 |
| JP7820565B2 true JP7820565B2 (en) | 2026-02-25 |
Family
ID=88390143
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2024561692A Active JP7820565B2 (en) | 2023-09-19 | 2023-12-28 | Method and apparatus for task scheduling across heterogeneous chips based on sequence generation |
Country Status (3)
| Country | Link |
|---|---|
| JP (1) | JP7820565B2 (en) |
| CN (1) | CN116932175B (en) |
| WO (1) | WO2024250650A1 (en) |
Families Citing this family (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN116932175B (en) * | 2023-09-19 | 2024-01-09 | 之江实验室 | Heterogeneous chip task scheduling method and device based on sequence generation |
| CN117271100B (en) * | 2023-11-21 | 2024-02-06 | 北京国科天迅科技股份有限公司 | Algorithm chip cluster scheduling method, device, computer equipment and storage medium |
| CN120429070A (en) * | 2024-01-26 | 2025-08-05 | 荣耀终端股份有限公司 | A task migration method and related device |
| CN119248459A (en) * | 2024-12-05 | 2025-01-03 | 太初(无锡)电子科技有限公司 | A task scheduling method, device, equipment and medium |
| CN121481178A (en) * | 2026-01-07 | 2026-02-06 | 北京机械工业自动化研究所有限公司 | A production task scheduling method, apparatus, storage medium, and electronic device. |
Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2011096176A (en) | 2009-11-02 | 2011-05-12 | Panasonic Corp | Information processor, control method and control program |
| JP2011100338A (en) | 2009-11-06 | 2011-05-19 | Hitachi Automotive Systems Ltd | Onboard multiple application execution apparatus |
| CN115562852A (en) | 2022-09-13 | 2023-01-03 | 广东明创软件科技有限公司 | Sleep lock optimization method and device, electronic equipment and storage medium |
| CN115601222A (en) | 2022-12-12 | 2023-01-13 | 南京芯驰半导体科技有限公司(Cn) | Multi-system GPU sharing method and system based on multi-core chip |
| WO2024166168A1 (en) | 2023-02-06 | 2024-08-15 | 日本電信電話株式会社 | CPU idle FUNCTION CONTROL DEVICE, INTRA-SERVER OPERATING SYSTEM, CPU idle FUNCTION CONTROL METHOD, AND PROGRAM |
Family Cites Families (12)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN105260237B (en) * | 2015-09-29 | 2018-08-31 | 中南大学 | The task scheduling system and its dispatching method of heterogeneous polynuclear platform |
| CN109376012A (en) * | 2018-10-10 | 2019-02-22 | 电子科技大学 | A Spark-based Adaptive Task Scheduling Method for Heterogeneous Environment |
| CN109960576B (en) * | 2019-03-29 | 2021-04-16 | 北京工业大学 | A low-energy task scheduling strategy for CPU-GPU heterogeneity |
| CN113296874B (en) * | 2020-05-29 | 2022-06-21 | 阿里巴巴集团控股有限公司 | Task scheduling method, computing device and storage medium |
| CN113127173B (en) * | 2021-04-21 | 2021-09-24 | 浙江大学 | A heterogeneous-aware cluster scheduling method and device |
| KR20230021495A (en) * | 2021-08-05 | 2023-02-14 | 삼성전자주식회사 | Method and apparatus for scheduling tasks in multi-core processor |
| CN116982028A (en) * | 2022-02-28 | 2023-10-31 | 华为技术有限公司 | A task scheduling method, NPU, chip, electronic device and readable medium |
| CN114864069A (en) * | 2022-04-14 | 2022-08-05 | 深圳大学 | Method and device for scheduling tasks |
| CN115756793A (en) * | 2022-11-17 | 2023-03-07 | 南京地平线集成电路有限公司 | Processing method and device for task scheduling, electronic equipment and storage medium |
| CN115858122A (en) * | 2022-12-15 | 2023-03-28 | 山西大学 | An optimal allocation method for heterogeneous multi-core processors based on EDF algorithm |
| CN116185596B (en) * | 2023-04-24 | 2023-08-01 | 之江实验室 | Method and device for improving task execution efficiency of wide-area multi-cluster distributed system |
| CN116932175B (en) * | 2023-09-19 | 2024-01-09 | 之江实验室 | Heterogeneous chip task scheduling method and device based on sequence generation |
-
2023
- 2023-09-19 CN CN202311208268.XA patent/CN116932175B/en active Active
- 2023-12-28 WO PCT/CN2023/142622 patent/WO2024250650A1/en active Pending
- 2023-12-28 JP JP2024561692A patent/JP7820565B2/en active Active
Patent Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2011096176A (en) | 2009-11-02 | 2011-05-12 | Panasonic Corp | Information processor, control method and control program |
| JP2011100338A (en) | 2009-11-06 | 2011-05-19 | Hitachi Automotive Systems Ltd | Onboard multiple application execution apparatus |
| CN115562852A (en) | 2022-09-13 | 2023-01-03 | 广东明创软件科技有限公司 | Sleep lock optimization method and device, electronic equipment and storage medium |
| CN115601222A (en) | 2022-12-12 | 2023-01-13 | 南京芯驰半导体科技有限公司(Cn) | Multi-system GPU sharing method and system based on multi-core chip |
| WO2024166168A1 (en) | 2023-02-06 | 2024-08-15 | 日本電信電話株式会社 | CPU idle FUNCTION CONTROL DEVICE, INTRA-SERVER OPERATING SYSTEM, CPU idle FUNCTION CONTROL METHOD, AND PROGRAM |
Also Published As
| Publication number | Publication date |
|---|---|
| JP2025525276A (en) | 2025-08-05 |
| WO2024250650A1 (en) | 2024-12-12 |
| CN116932175B (en) | 2024-01-09 |
| CN116932175A (en) | 2023-10-24 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP7820565B2 (en) | Method and apparatus for task scheduling across heterogeneous chips based on sequence generation | |
| US10545794B2 (en) | Blockchain-based data processing method and equipment | |
| JP7644247B2 (en) | Task execution method, apparatus, storage medium and electronic device | |
| EP3547129A1 (en) | Block chain consensus method and device | |
| EP3547168A1 (en) | Block chain based data processing method and device | |
| CN116306856B (en) | Deep learning model deployment method and device based on search | |
| TWI679581B (en) | Method and device for task execution | |
| WO2025044317A1 (en) | Method and apparatus for accelerating model training, storage medium, and electronic device | |
| CN108920183B (en) | Service decision method, device and equipment | |
| TWI674014B (en) | Geofence generation method and device thereof | |
| CN116185532B (en) | A task execution system, method, storage medium and electronic device | |
| CN110032433A (en) | A kind of task executing method, device, equipment and medium | |
| CN116384505B (en) | Data processing method and device, storage medium and electronic equipment | |
| CN114676132B (en) | Data table association method, device, storage medium and electronic device | |
| CN116304212B (en) | A hardware acceleration device and method for graph structure-aware graph neural networks | |
| CN117891600A (en) | A method, device, storage medium and electronic device for task scheduling | |
| CN119003118A (en) | Task execution method and device, storage medium and electronic equipment | |
| CN116384472B (en) | A data processing system, method, apparatus and storage medium | |
| CN114118798A (en) | Task processing method and device of industrial internet platform and industrial internet platform | |
| CN116340004B (en) | Task execution method and device, storage medium and electronic equipment | |
| CN116319774B (en) | A request allocation method, device, equipment and storage medium | |
| CN119002830B (en) | An equidistant gate superposition method, device and medium based on FPGA | |
| CN114241147B (en) | A data display method, device, equipment and medium | |
| CN116126464B (en) | Virtual machine management methods, devices and systems | |
| CN120276821A (en) | Data processing method, device and equipment |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20241017 |
|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20241017 |
|
| A871 | Explanation of circumstances concerning accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A871 Effective date: 20241223 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20250814 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20251113 |
|
| TRDD | Decision of grant or rejection written | ||
| A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20260121 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20260212 |
|
| R150 | Certificate of patent or registration of utility model |
Ref document number: 7820565 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |