JP2018528515A - 効率的な並列コンピューティングのための簡略化されたタスクベースランタイムのための方法 - Google Patents
効率的な並列コンピューティングのための簡略化されたタスクベースランタイムのための方法 Download PDFInfo
- Publication number
- JP2018528515A JP2018528515A JP2018503781A JP2018503781A JP2018528515A JP 2018528515 A JP2018528515 A JP 2018528515A JP 2018503781 A JP2018503781 A JP 2018503781A JP 2018503781 A JP2018503781 A JP 2018503781A JP 2018528515 A JP2018528515 A JP 2018528515A
- Authority
- JP
- Japan
- Prior art keywords
- kernel
- simple task
- task
- processor
- pointer
- 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.)
- Ceased
Links
- 238000000034 method Methods 0.000 title claims abstract description 60
- 230000015654 memory Effects 0.000 claims description 187
- 230000004044 response Effects 0.000 claims description 53
- 230000008569 process Effects 0.000 claims description 25
- 238000004891 communication Methods 0.000 description 16
- 238000007726 management method Methods 0.000 description 14
- 230000006870 function Effects 0.000 description 13
- 238000010586 diagram Methods 0.000 description 12
- 230000001413 cellular effect Effects 0.000 description 7
- 238000012545 processing Methods 0.000 description 7
- 230000002093 peripheral effect Effects 0.000 description 6
- 238000004422 calculation algorithm Methods 0.000 description 5
- 230000000712 assembly Effects 0.000 description 2
- 238000000429 assembly Methods 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 235000017060 Arachis glabrata Nutrition 0.000 description 1
- 241001553178 Arachis glabrata Species 0.000 description 1
- 235000010777 Arachis hypogaea Nutrition 0.000 description 1
- 235000018262 Arachis monticola Nutrition 0.000 description 1
- 102100035964 Gastrokine-2 Human genes 0.000 description 1
- 101001075215 Homo sapiens Gastrokine-2 Proteins 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000005266 casting Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000001010 compromised effect Effects 0.000 description 1
- 230000006378 damage Effects 0.000 description 1
- 238000013479 data entry Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000005670 electromagnetic radiation Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 239000002184 metal Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 235000020232 peanut Nutrition 0.000 description 1
- 239000004033 plastic Substances 0.000 description 1
- APTZNLHMIGJTEW-UHFFFAOYSA-N pyraflufen-ethyl Chemical compound C1=C(Cl)C(OCC(=O)OCC)=CC(C=2C(=C(OC(F)F)N(C)N=2)Cl)=C1F APTZNLHMIGJTEW-UHFFFAOYSA-N 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 229910052710 silicon Inorganic materials 0.000 description 1
- 239000010703 silicon Substances 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 238000001228 spectrum Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
- Advance Control (AREA)
- Multi Processors (AREA)
Abstract
Description
本出願は、その内容全体が参照により本明細書に組み込まれる、2015年7月30日に出願した「Method For Simplified Task-based Runtime For Efficient Parallel Computing」と題する米国仮出願第62/198,830号の米国特許法第119条(e)に基づく優先権の利益を主張するものである。
12 SoC
14 プロセッサ
14a CPU
14b GPU
14c APU
16 メモリデバイス
18 通信インターフェース
20 ストレージメモリインターフェース
22 通信構成要素
24 ストレージメモリ
26 アンテナ
28 ネットワークインターフェース
30 ワイヤレスネットワーク
32 ワイヤレス接続
40 インターネット
44 ワイヤード接続
50 リモートコンピューティングデバイス
200 プロセッサコア
204 プロセッサキャッシュメモリコントローラ
206 プロセッサキャッシュメモリ
300 SoCキャッシュメモリコントローラ
302 SoCキャッシュメモリ
304 メインメモリコントローラ
306 メインメモリ
308 ストレージメモリコントローラ
310 通信バス
400 タスクキュー
402 タスクキュースロット
404 タスクキュースロット
500 シンプルタスクテーブル
502 カーネル識別子列
504 カーネルポインタ列
506 カーネルイテレーションカウンタ列
508 エントリ
600 スケジューラ
602 スレッド
604 軽量カーネル
606 タスクキュー
608 シンプルタスクポインタ
610 シンプルタスクポインタ
612 エントリ
614 シンプルタスク
616 メモリロケーション
618 メモリロケーション
620 シンプルタスク
622 シンプルタスク
1000 コンピューティングデバイス
1002 プロセッサ
1004 タッチスクリーンコントローラ
1006 内部メモリ
1008 トランシーバ
1012 タッチスクリーンパネル
1016 セルラーネットワークワイヤレスモデムチップ
1018 周辺デバイス接続インターフェース
1020 ハウジング
1022 電源
1024 物理ボタン
1026 電源ボタン
1100 コンピュータ
1111 プロセッサ
1112 揮発性メモリ
1113 ディスクドライブ
1114 フロッピーディスクドライブ
1115 コンパクトディスクドライブ
1116 ワイヤレスデータリンクおよび/または携帯電話トランシーバ
1117 タッチパッド
1118 キーボード
1119 ディスプレイ
1200 サーバ
1201 プロセッサ、マルチコアプロセッサアセンブリ
1202 揮発性メモリ
1203 ネットワークアクセスポート
1204 ディスクドライブ
1205 ネットワーク
1206 DVDディスクドライブ
Claims (30)
- コンピューティングデバイスにおいて軽量カーネルをスケジュールし実行する方法であって、
タスクキューにおける第1のタスクポインタが軽量カーネルに関するシンプルタスクポインタであるかどうかを判定するステップと、
前記第1のタスクポインタがシンプルタスクポインタであると判定したことに応じて、前記軽量カーネルに関する第1のシンプルタスクを第1のスレッドによって実行されるようにスケジュールするステップと、
シンプルタスクテーブルのエントリから前記軽量カーネルに関するカーネルポインタを取り出すステップであって、前記エントリが前記シンプルタスクポインタに関連する、ステップと、
前記軽量カーネルを前記第1のシンプルタスクとして直ちに実行するステップとを含む方法。 - 前記第1のシンプルタスクの実行を完了するステップと、
前記シンプルタスクテーブルの前記エントリのカーネルイテレーションカウンタのデータを更新するステップとをさらに含む、請求項1に記載の方法。 - 前記軽量カーネルのカーネルイテレーションが分割可能であるかどうかを判定するステップと、
前記軽量カーネルの前記カーネルイテレーションが分割可能であると判定したことに応じて前記軽量カーネルの前記カーネルイテレーションをイテレーション部分に分割するステップとをさらに含み、
前記軽量カーネルに関する第1のシンプルタスクを第1のスレッドによって実行されるようにスケジュールするステップは、前記第1のシンプルタスクに少なくとも1つのイテレーション部分を割り当てるステップを含み、
前記第1のシンプルタスクの実行を完了するステップは、前記第1のシンプルタスクに割り当てられた前記少なくとも1つのイテレーション部分のイテレーションの回数と等しい回数の前記第1のシンプルタスクの実行を完了するステップを含み、
前記シンプルタスクテーブルの前記エントリのカーネルイテレーションカウンタのデータを更新するステップは、前記第1のシンプルタスクに割り当てられた前記少なくとも1つのイテレーション部分の前記回数のイテレーションを完了したことを反映するように前記カーネルイテレーションカウンタの前記データを更新するステップを含む、請求項2に記載の方法。 - 前記第1のシンプルタスクのすべてのイテレーションが完了したかどうかを、前記カーネルイテレーションカウンタの前記データから判定するステップと、
前記第1のシンプルタスクの前記イテレーションのすべてが完了したと判定したことに応じて前記シンプルタスクテーブルの前記エントリを削除するステップとをさらに含む、請求項2に記載の方法。 - 前記軽量カーネルの実行に関する制限を特定するステップであって、前記制限が、メインスレッド、クリティカルスレッド、および非クリティカルスレッドを含む、前記軽量カーネルを実行するための指定されたスレッド、前記軽量カーネルを実行するためのレイテンシ要件、ならびに前記軽量カーネルを記憶するメモリに対する前記第1のスレッドを実行するプロセッサの近接度のうちの1つを含む、ステップをさらに含み、
前記軽量カーネルに関する第1のシンプルタスクを第1のスレッドによって実行されるようにスケジュールするステップは、前記軽量カーネルの実行に関する前記制限に基づいて前記第1のスレッドを選択するステップを含む、請求項1に記載の方法。 - 前記タスクキューにおける第2のタスクポインタが前記軽量カーネルに関する前記シンプルタスクポインタであるかどうかを判定するステップと、
前記第2のタスクポインタが前記シンプルタスクポインタであると判定したことに応じて、前記軽量カーネルに関する第2のシンプルタスクを第2のスレッドによって実行されるようにスケジュールするステップと、
前記シンプルタスクテーブルの前記エントリから前記軽量カーネルに関する前記カーネルポインタを取り出すステップであって、前記エントリが前記シンプルタスクポインタに関連付けられる、ステップと、
前記軽量カーネルを前記第2のシンプルタスクとして直ちに実行するステップとをさらに含む、請求項1に記載の方法。 - 前記第1のシンプルタスクの第1の出力と前記第2のシンプルタスクの第2の出力を組み合わせるステップをさらに含む、請求項6に記載の方法。
- 要求されたプロセスが前記軽量カーネルを含むかどうかを判定するステップと、
前記要求されたプロセスが前記軽量カーネルを含むと判定したことに応じて、前記シンプルタスクテーブルが満杯であるかどうかを判定するステップと、
前記シンプルタスクテーブルが満杯ではないと判定したことに応じて、前記シンプルタスクテーブル内に前記軽量カーネルに関する前記エントリを作成するステップと、
前記エントリに関連する前記シンプルタスクポインタを前記タスクキューに追加するステップと、
前記シンプルタスクテーブルが満杯であると判定したことに応じて、前記軽量カーネルに関連するノーマルタスクポインタを前記タスクキューに追加するステップとをさらに含む、請求項1に記載の方法。 - コンピューティングデバイスであって、
動作を実行するためのプロセッサ実行可能命令を有するように構成された第1のプロセッサを備え、前記動作は、
タスクキューにおける第1のタスクポインタが軽量カーネルに関するシンプルタスクポインタであるかどうかを判定する動作と、
前記第1のタスクポインタがシンプルタスクポインタであると判定したことに応じて、前記軽量カーネルに関する第1のシンプルタスクを第1のスレッドによって実行されるようにスケジュールする動作と、
シンプルタスクテーブルのエントリから前記軽量カーネルに関するカーネルポインタを取り出す動作であって、前記エントリが前記シンプルタスクポインタに関連する、動作と、
前記軽量カーネルを前記第1のシンプルタスクとして直ちに実行する動作とを含むコンピューティングデバイス。 - 前記第1のプロセッサは、動作を実行するためのプロセッサ実行可能命令を有するように構成され、前記動作は、
前記第1のシンプルタスクの実行を完了する動作と、
前記シンプルタスクテーブルの前記エントリのカーネルイテレーションカウンタのデータを更新する動作とをさらに含む、請求項9に記載のコンピューティングデバイス。 - 前記第1のプロセッサは、動作を実行するためのプロセッサ実行可能命令を有するように構成され、前記動作は、
前記軽量カーネルのカーネルイテレーションが分割可能であるかどうかを判定する動作と、
前記軽量カーネルの前記カーネルイテレーションが分割可能であると判定したことに応じて前記軽量カーネルの前記カーネルイテレーションをイテレーション部分に分割する動作とをさらに含み、
前記第1のプロセッサは、
前記軽量カーネルに関する第1のシンプルタスクを第1のスレッドによって実行されるようにスケジュールする動作が、前記第1のシンプルタスクに少なくとも1つのイテレーション部分を割り当てる動作を含み、
前記第1のシンプルタスクの実行を完了する動作が、前記第1のシンプルタスクに割り当てられた前記少なくとも1つのイテレーション部分のイテレーションの回数に等しい回数の前記第1のシンプルタスクの実行を完了する動作を含み、
前記シンプルタスクテーブルの前記エントリのカーネルイテレーションカウンタのデータを更新する動作が、前記第1のシンプルタスクに割り当てられた前記少なくとも1つのイテレーション部分の前記回数のイテレーションを完了したことを反映するように前記カーネルイテレーションカウンタの前記データを更新する動作を含むように動作を実行するためのプロセッサ実行可能命令を有するように構成される、請求項10に記載のコンピューティングデバイス。 - 前記第1のプロセッサは、動作を実行するためのプロセッサ実行可能命令を有するように構成され、前記動作は、
前記第1のシンプルタスクのすべてのイテレーションが完了したかどうかを、前記カーネルイテレーションカウンタの前記データから判定する動作と、
前記第1のシンプルタスクの前記イテレーションのすべてが完了したと判定したことに応じて前記シンプルタスクテーブルの前記エントリを削除する動作とをさらに含む、請求項10に記載のコンピューティングデバイス。 - 前記第1のプロセッサに通信可能に接続されたメモリと、
前記第1のプロセッサに通信可能に接続された第2のプロセッサとをさらに備え、
前記第1のプロセッサは、前記軽量カーネルの実行に関する制限を特定する動作をさらに含む動作を実行するためのプロセッサ実行可能命令を有するように構成され、前記制限は、メインスレッド、クリティカルスレッド、および非クリティカルスレッドを含む、前記軽量カーネルを実行するための指定されたスレッド、前記軽量カーネルを実行するためのレイテンシ要件、ならびに前記軽量カーネルを記憶する前記メモリに対する前記第1のスレッドを実行する前記第2のプロセッサの近接度のうちの1つを含み、
前記第1のプロセッサは、前記軽量カーネルに関する第1のシンプルタスクを第1のスレッドによって実行されるようにスケジュールする動作が、前記軽量カーネルの実行に関する前記制限に基づいて前記第1のスレッドを選択する動作を含むように動作を実行するためのプロセッサ実行可能命令を有するように構成される、請求項9に記載のコンピューティングデバイス。 - 前記第1のプロセッサは、動作を実行するためのプロセッサ実行可能命令を有するように構成され、前記動作は、
前記タスクキューにおける第2のタスクポインタが前記軽量カーネルに関する前記シンプルタスクポインタであるかどうかを判定する動作と、
前記第2のタスクポインタが前記シンプルタスクポインタであると判定したことに応じて、前記軽量カーネルに関する第2のシンプルタスクを第2のスレッドによって実行されるようにスケジュールする動作と、
前記シンプルタスクテーブルの前記エントリから前記軽量カーネルに関する前記カーネルポインタを取り出す動作であって、前記エントリが前記シンプルタスクポインタに関連付けられる、動作と、
前記軽量カーネルを前記第2のシンプルタスクとして直ちに実行する動作とをさらに含む、請求項9に記載のコンピューティングデバイス。 - 前記第1のプロセッサは、動作を実行するためのプロセッサ実行可能命令を有するように構成され、前記動作は、
前記第1のシンプルタスクの第1の出力と前記第2のシンプルタスクの第2の出力を組み合わせる動作をさらに含む、請求項14に記載のコンピューティングデバイス。 - 前記第1のプロセッサは、動作を実行するためのプロセッサ実行可能命令を有するように構成され、前記動作は、
要求されたプロセスが前記軽量カーネルを含むかどうかを判定する動作と、
前記要求されたプロセスが前記軽量カーネルを含むと判定したことに応じて、前記シンプルタスクテーブルが満杯であるかどうかを判定する動作と、
前記シンプルタスクテーブルが満杯ではないと判定したことに応じて、前記シンプルタスクテーブル内に前記軽量カーネルに関する前記エントリを作成する動作と、
前記エントリに関連する前記シンプルタスクポインタを前記タスクキューに追加する動作と、
前記シンプルタスクテーブルが満杯であると判定したことに応じて、前記軽量カーネルに関連するノーマルタスクポインタを前記タスクキューに追加する動作とをさらに含む、請求項9に記載のコンピューティングデバイス。 - コンピューティングデバイスであって、
タスクキューにおける第1のタスクポインタが軽量カーネルに関するシンプルタスクポインタであるかどうかを判定するための手段と、
前記第1のタスクポインタがシンプルタスクポインタであると判定したことに応じて、前記軽量カーネルに関する第1のシンプルタスクを第1のスレッドによって実行されるようにスケジュールするための手段と、
シンプルタスクテーブルのエントリから前記軽量カーネルに関するカーネルポインタを取り出すための手段であって、前記エントリが前記シンプルタスクポインタに関連する、手段と、
前記軽量カーネルを前記第1のシンプルタスクとして直ちに実行するための手段とを備えるコンピューティングデバイス。 - 前記第1のシンプルタスクの実行を完了するための手段と、
前記シンプルタスクテーブルの前記エントリのカーネルイテレーションカウンタのデータを更新するための手段とをさらに備える、請求項17に記載のコンピューティングデバイス。 - 前記軽量カーネルのカーネルイテレーションが分割可能であるかどうかを判定するための手段と、
前記軽量カーネルの前記カーネルイテレーションが分割可能であると判定したことに応じて前記軽量カーネルの前記カーネルイテレーションをイテレーション部分に分割するための手段とをさらに備え、
前記軽量カーネルに関する第1のシンプルタスクを第1のスレッドによって実行されるようにスケジュールするための手段は、前記第1のシンプルタスクに少なくとも1つのイテレーション部分を割り当てるための手段を備え、
前記第1のシンプルタスクの実行を完了するための手段は、前記第1のシンプルタスクに割り当てられた前記少なくとも1つのイテレーション部分のイテレーションの回数と等しい回数の前記第1のシンプルタスクの実行を完了するための手段を備え、
前記シンプルタスクテーブルの前記エントリのカーネルイテレーションカウンタのデータを更新するための手段は、前記第1のシンプルタスクに割り当てられた前記少なくとも1つのイテレーション部分の前記回数のイテレーションを完了したことを反映するように前記カーネルイテレーションカウンタのデータを更新するための手段を備える、請求項18に記載のコンピューティングデバイス。 - 前記第1のシンプルタスクのすべてのイテレーションが完了したかどうかを、前記カーネルイテレーションカウンタのデータから判定するための手段と、
前記第1のシンプルタスクの前記イテレーションのすべてが完了したと判定したことに応じて前記シンプルタスクテーブルの前記エントリを削除するための手段とをさらに備える、請求項18に記載のコンピューティングデバイス。 - 前記軽量カーネルの実行に関する制限を特定するための手段であって、前記制限が、メインスレッド、クリティカルスレッド、および非クリティカルスレッドを含む、前記軽量カーネルを実行するための指定されたスレッド、前記軽量カーネルを実行するためのレイテンシ要件、ならびに前記軽量カーネルを記憶するメモリに対する前記第1のスレッドを実行するプロセッサの近接度のうちの1つを含む手段をさらに備え、
前記軽量カーネルに関する第1のシンプルタスクを第1のスレッドによって実行されるようにスケジュールするための手段は、前記軽量カーネルの実行に関する前記制限に基づいて前記第1のスレッドを選択するための手段を備える、請求項17に記載のコンピューティングデバイス。 - 前記タスクキューにおける第2のタスクポインタが前記軽量カーネルに関する前記シンプルタスクポインタであるかどうかを判定するための手段と、
前記第2のタスクポインタが前記シンプルタスクポインタであると判定したことに応じて、前記軽量カーネルに関する第2のシンプルタスクを第2のスレッドによって実行されるようにスケジュールするための手段と、
前記シンプルタスクテーブルの前記エントリから前記軽量カーネルに関する前記カーネルポインタを取り出すための手段であって、前記エントリが前記シンプルタスクポインタに関連付けられる、手段と、
前記軽量カーネルを前記第2のシンプルタスクとして直ちに実行するための手段と、
前記第1のシンプルタスクの第1の出力と前記第2のシンプルタスクの第2の出力を組み合わせるための手段とをさらに備える、請求項17に記載のコンピューティングデバイス。 - 要求されたプロセスが前記軽量カーネルを含むかどうかを判定するための手段と、
前記要求されたプロセスが前記軽量カーネルを含むと判定したことに応じて、前記シンプルタスクテーブルが満杯であるかどうかを判定するための手段と、
前記シンプルタスクテーブルが満杯ではないと判定したことに応じて、前記シンプルタスクテーブル内に前記軽量カーネルに関する前記エントリを作成するための手段と、
前記エントリに関連する前記シンプルタスクポインタを前記タスクキューに追加するための手段と、
前記シンプルタスクテーブルが満杯であると判定したことに応じて、前記軽量カーネルに関連するノーマルタスクポインタを前記タスクキューに追加するための手段とをさらに備える、請求項17に記載のコンピューティングデバイス。 - コンピューティングデバイスの第1のプロセッサに動作を実行させるように構成されたプロセッサ実行可能命令を記憶した非一時的プロセッサ可読記憶媒体であって、前記動作は、
タスクキューにおける第1のタスクポインタが軽量カーネルに関するシンプルタスクポインタであるかどうかを判定する動作と、
前記第1のタスクポインタがシンプルタスクポインタであると判定したことに応じて、前記軽量カーネルに関する第1のシンプルタスクを第1のスレッドによって実行されるようにスケジュールする動作と、
シンプルタスクテーブルのエントリから前記軽量カーネルに関するカーネルポインタを取り出す動作であって、前記エントリが前記シンプルタスクポインタに関連する、動作と、
前記軽量カーネルを前記第1のシンプルタスクとして直ちに実行する動作とを含む非一時的プロセッサ可読記憶媒体。 - 前記記憶されたプロセッサ実行可能命令は、前記第1のプロセッサに動作を実行させるように構成され、前記動作は、
前記第1のシンプルタスクの実行を完了する動作と、
前記シンプルタスクテーブルの前記エントリのカーネルイテレーションカウンタのデータを更新する動作とをさらに含む、請求項24に記載の非一時的プロセッサ可読記憶媒体。 - 前記記憶されたプロセッサ実行可能命令は、前記第1のプロセッサに動作を実行させるように構成され、前記動作は、
前記軽量カーネルのカーネルイテレーションが分割可能であるかどうかを判定する動作と、
前記軽量カーネルの前記カーネルイテレーションが分割可能であると判定したことに応じて前記軽量カーネルの前記カーネルイテレーションをイテレーション部分に分割する動作とをさらに含み、
前記記憶されたプロセッサ実行可能命令は、
前記軽量カーネルに関する第1のシンプルタスクを第1のスレッドによって実行されるようにスケジュールする動作が、前記第1のシンプルタスクに少なくとも1つのイテレーション部分を割り当てる動作を含み、
前記第1のシンプルタスクの実行を完了する動作が、前記第1のシンプルタスクに割り当てられた前記少なくとも1つのイテレーション部分のイテレーションの回数と等しい回数の前記第1のシンプルタスクの実行を完了する動作を含み、
前記シンプルタスクテーブルの前記エントリのカーネルイテレーションカウンタのデータを更新する動作が、前記第1のシンプルタスクに割り当てられた前記少なくとも1つのイテレーション部分の前記回数のイテレーションを完了したことを反映するように前記カーネルイテレーションカウンタのデータを更新する動作を含むように前記第1のプロセッサに動作を実行させるように構成される、請求項25に記載の非一時的プロセッサ可読記憶媒体。 - 前記記憶されたプロセッサ実行可能命令は、前記第1のプロセッサに動作を実行させるように構成され、前記動作は、
前記第1のシンプルタスクのすべてのイテレーションが完了したかどうかを、前記カーネルイテレーションカウンタの前記データから判定する動作と、
前記第1のシンプルタスクの前記イテレーションのすべてが完了したと判定したことに応じて前記シンプルタスクテーブルの前記エントリを削除する動作とをさらに含む、請求項25に記載の非一時的プロセッサ可読記憶媒体。 - 前記記憶されたプロセッサ実行可能命令は、前記第1のプロセッサに、前記軽量カーネルの実行に関する制限を特定する動作をさらに含む動作を実行させるように構成され、
前記記憶されたプロセッサ実行可能命令は、
前記制限が、メインスレッド、クリティカルスレッド、および非クリティカルスレッドを含む、前記軽量カーネルを実行するための指定されたスレッド、前記軽量カーネルを実行するためのレイテンシ要件、ならびに前記軽量カーネルを記憶するメモリに対する前記第1のスレッドを実行する第2のプロセッサの近接度のうちの1つを含み、
前記軽量カーネルに関する第1のシンプルタスクを第1のスレッドによって実行されるようにスケジュールする動作が、前記軽量カーネルの実行に関する前記制限に基づいて前記第1のスレッドを選択する動作を含むように前記第1のプロセッサに動作を実行させるように構成される、請求項24に記載の非一時的プロセッサ可読記憶媒体。 - 前記記憶されたプロセッサ実行可能命令は、前記第1のプロセッサに動作を実行させるように構成され、前記動作は、
前記タスクキューにおける第2のタスクポインタが前記軽量カーネルに関する前記シンプルタスクポインタであるかどうかを判定する動作と、
前記第2のタスクポインタが前記シンプルタスクポインタであると判定したことに応じて、前記軽量カーネルに関する第2のシンプルタスクを第2のスレッドによって実行されるようにスケジュールする動作と、
前記シンプルタスクテーブルの前記エントリから前記軽量カーネルに関する前記カーネルポインタを取り出す動作であって、前記エントリが前記シンプルタスクポインタに関連付けられる、動作と、
前記軽量カーネルを前記第2のシンプルタスクとして直ちに実行する動作と、
前記第1のシンプルタスクの第1の出力と前記第2のシンプルタスクの第2の出力を組み合わせる動作とをさらに含む、請求項24に記載の非一時的プロセッサ可読記憶媒体。 - 前記記憶されたプロセッサ実行可能命令は、前記第1のプロセッサに動作を実行させるように構成され、前記動作は、
要求されたプロセスが前記軽量カーネルを含むかどうかを判定する動作と、
前記要求されたプロセスが前記軽量カーネルを含むと判定したことに応じて、前記シンプルタスクテーブルが満杯であるかどうかを判定する動作と、
前記シンプルタスクテーブルが満杯ではないと判定したことに応じて、前記シンプルタスクテーブル内に前記軽量カーネルに関する前記エントリを作成する動作と、
前記エントリに関連する前記シンプルタスクポインタを前記タスクキューに追加する動作と、
前記シンプルタスクテーブルが満杯であると判定したことに応じて、前記軽量カーネルに関連するノーマルタスクポインタを前記タスクキューに追加する動作とをさらに含む、請求項24に記載の非一時的プロセッサ可読記憶媒体。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201562198830P | 2015-07-30 | 2015-07-30 | |
US62/198,830 | 2015-07-30 | ||
US14/992,268 | 2016-01-11 | ||
US14/992,268 US10169105B2 (en) | 2015-07-30 | 2016-01-11 | Method for simplified task-based runtime for efficient parallel computing |
PCT/US2016/038925 WO2017019212A1 (en) | 2015-07-30 | 2016-06-23 | Method for simplified task-based runtime for efficient parallel computing |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2018528515A true JP2018528515A (ja) | 2018-09-27 |
JP2018528515A5 JP2018528515A5 (ja) | 2019-07-11 |
Family
ID=57882620
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2018503781A Ceased JP2018528515A (ja) | 2015-07-30 | 2016-06-23 | 効率的な並列コンピューティングのための簡略化されたタスクベースランタイムのための方法 |
Country Status (9)
Country | Link |
---|---|
US (1) | US10169105B2 (ja) |
EP (2) | EP3859523A1 (ja) |
JP (1) | JP2018528515A (ja) |
KR (1) | KR20180034440A (ja) |
CN (1) | CN108431775A (ja) |
BR (1) | BR112018001728A2 (ja) |
CA (1) | CA2989166A1 (ja) |
TW (1) | TWI726899B (ja) |
WO (1) | WO2017019212A1 (ja) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10312459B2 (en) * | 2016-01-27 | 2019-06-04 | Nichem Fine Technology Co., Ltd. | Compound and organic electronic device using the same |
CN107562535A (zh) * | 2017-08-02 | 2018-01-09 | 广东睿江云计算股份有限公司 | 一种基于任务调度的负载均衡方法、*** |
GB2569270B (en) * | 2017-10-20 | 2020-02-19 | Graphcore Ltd | Parallel computing |
CN108364162B (zh) * | 2018-01-31 | 2020-11-27 | 深圳市融壹买信息科技有限公司 | 一种任务界面管理方法、***及终端设备 |
US10387214B1 (en) * | 2018-03-30 | 2019-08-20 | Sas Institute Inc. | Managing data processing in a distributed computing environment |
CN110968404B (zh) * | 2018-09-30 | 2023-04-28 | 阿里巴巴集团控股有限公司 | 一种设备数据处理方法及装置 |
US11803391B2 (en) * | 2020-10-20 | 2023-10-31 | Micron Technology, Inc. | Self-scheduling threads in a programmable atomic unit |
US11989583B2 (en) * | 2021-03-31 | 2024-05-21 | Arm Limited | Circuitry and method |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010182096A (ja) * | 2009-02-05 | 2010-08-19 | Nec Corp | プログラム並列実行システム、マルチコアプロセッサ上のプログラム並列実行方法 |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0403229A1 (en) * | 1989-06-13 | 1990-12-19 | Digital Equipment Corporation | Method and apparatus for scheduling tasks in repeated iterations in a digital data processing system having multiple processors |
US7673304B2 (en) * | 2003-02-18 | 2010-03-02 | Microsoft Corporation | Multithreaded kernel for graphics processing unit |
CN1842770A (zh) * | 2003-08-28 | 2006-10-04 | 美普思科技有限公司 | 一种在处理器中挂起和释放执行过程中计算线程的整体机制 |
CN1922576A (zh) | 2003-09-30 | 2007-02-28 | 扎鲁纳股份有限公司 | 操作*** |
US20080059677A1 (en) | 2006-08-31 | 2008-03-06 | Charles Jens Archer | Fast interrupt disabling and processing in a parallel computing environment |
US8611851B2 (en) * | 2010-02-19 | 2013-12-17 | Alcatel Lucent | Accounting request processing in a communication network |
US9128701B2 (en) * | 2011-04-07 | 2015-09-08 | Via Technologies, Inc. | Generating constant for microinstructions from modified immediate field during instruction translation |
US20130074088A1 (en) * | 2011-09-19 | 2013-03-21 | Timothy John Purcell | Scheduling and management of compute tasks with different execution priority levels |
US9921873B2 (en) * | 2012-01-31 | 2018-03-20 | Nvidia Corporation | Controlling work distribution for processing tasks |
US8918799B2 (en) | 2012-03-30 | 2014-12-23 | International Business Machines Corporation | Method to utilize cores in different operating system partitions |
US8789046B2 (en) | 2012-03-30 | 2014-07-22 | International Business Machines Corporation | Method to embed a light-weight kernel in a full-weight kernel to provide a heterogeneous execution environment |
US9710306B2 (en) | 2012-04-09 | 2017-07-18 | Nvidia Corporation | Methods and apparatus for auto-throttling encapsulated compute tasks |
US9256623B2 (en) * | 2013-05-08 | 2016-02-09 | Nvidia Corporation | System, method, and computer program product for scheduling tasks associated with continuation thread blocks |
US9015422B2 (en) * | 2013-07-16 | 2015-04-21 | Apple Inc. | Access map-pattern match based prefetch unit for a processor |
US9697005B2 (en) * | 2013-12-04 | 2017-07-04 | Analog Devices, Inc. | Thread offset counter |
-
2016
- 2016-01-11 US US14/992,268 patent/US10169105B2/en active Active
- 2016-06-23 JP JP2018503781A patent/JP2018528515A/ja not_active Ceased
- 2016-06-23 CA CA2989166A patent/CA2989166A1/en not_active Abandoned
- 2016-06-23 BR BR112018001728A patent/BR112018001728A2/pt not_active IP Right Cessation
- 2016-06-23 EP EP21165660.8A patent/EP3859523A1/en not_active Withdrawn
- 2016-06-23 EP EP16734136.1A patent/EP3329370A1/en not_active Ceased
- 2016-06-23 WO PCT/US2016/038925 patent/WO2017019212A1/en active Search and Examination
- 2016-06-23 CN CN201680044001.3A patent/CN108431775A/zh active Pending
- 2016-06-23 KR KR1020187002512A patent/KR20180034440A/ko unknown
- 2016-07-26 TW TW105123620A patent/TWI726899B/zh active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010182096A (ja) * | 2009-02-05 | 2010-08-19 | Nec Corp | プログラム並列実行システム、マルチコアプロセッサ上のプログラム並列実行方法 |
Also Published As
Publication number | Publication date |
---|---|
TW201717004A (zh) | 2017-05-16 |
CN108431775A (zh) | 2018-08-21 |
US10169105B2 (en) | 2019-01-01 |
KR20180034440A (ko) | 2018-04-04 |
US20170031728A1 (en) | 2017-02-02 |
EP3329370A1 (en) | 2018-06-06 |
EP3859523A1 (en) | 2021-08-04 |
TWI726899B (zh) | 2021-05-11 |
BR112018001728A2 (pt) | 2018-09-18 |
CA2989166A1 (en) | 2017-02-02 |
WO2017019212A1 (en) | 2017-02-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10169105B2 (en) | Method for simplified task-based runtime for efficient parallel computing | |
CN108139946B (zh) | 用于在冲突存在时进行有效任务调度的方法 | |
EP3362893A1 (en) | Accelerating task subgraphs by remapping synchronization | |
US10503656B2 (en) | Performance by retaining high locality data in higher level cache memory | |
US10152243B2 (en) | Managing data flow in heterogeneous computing | |
US9582329B2 (en) | Process scheduling to improve victim cache mode | |
US9501328B2 (en) | Method for exploiting parallelism in task-based systems using an iteration space splitter | |
JP2017509950A (ja) | 動的言語でのインラインキャッシュのためのハードウェアアクセラレーション | |
US10678705B2 (en) | External paging and swapping for dynamic modules | |
US9405470B2 (en) | Data processing system and data processing method | |
WO2017222746A1 (en) | Iteration synchronization construct for parallel pipelines | |
US11907138B2 (en) | Multimedia compressed frame aware cache replacement policy | |
US10261831B2 (en) | Speculative loop iteration partitioning for heterogeneous execution | |
CN116414555A (zh) | 在多核处理设备中调度缓存预算的方法和执行其的设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20190605 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20190605 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20200529 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20200824 |
|
A045 | Written measure of dismissal of application [lapsed due to lack of payment] |
Free format text: JAPANESE INTERMEDIATE CODE: A045 Effective date: 20210125 |