JP5888052B2 - タスク通信方法、情報処理装置およびタスク通信プログラム - Google Patents
タスク通信方法、情報処理装置およびタスク通信プログラム Download PDFInfo
- Publication number
- JP5888052B2 JP5888052B2 JP2012072155A JP2012072155A JP5888052B2 JP 5888052 B2 JP5888052 B2 JP 5888052B2 JP 2012072155 A JP2012072155 A JP 2012072155A JP 2012072155 A JP2012072155 A JP 2012072155A JP 5888052 B2 JP5888052 B2 JP 5888052B2
- Authority
- JP
- Japan
- Prior art keywords
- task
- data
- group
- tasks
- order
- 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
Images
Landscapes
- Multi Processors (AREA)
Description
(a1)タスクBと1対1同期通信
(a2)タスクDと1対1同期通信
(a3)タスクCと1対1同期通信
と決めて、タスクDの受信順序を、
(d1)タスクCと1対1同期通信
(d2)タスクAと1対1同期通信
(d3)タスクBと1対1同期通信
と決めたとする。
本発明は、かかる事情に鑑みてなされたものであり、複数のタスクと同期通信とによって構成された処理におけるタスク間同期通信にデッドロックを発生させずに1対1同期通信APIを用いることが可能なタスク通信方法、情報処理装置およびタスク通信プログラムを提供することを、その目的としている。
本発明の実施形態の説明に先立って、本発明の特徴についてその概要をまず説明する。本発明は、タスク間の通信において、受信処理の後で送信処理を行うという順序則と非循環有向グラフにおけるトポロジカルソート(Topological Sort)による順序則とを組み合せることによって、従来技術において1対1同期通信にて発生する可能性があったデッドロックの発生を確実に回避し、高信頼のタスク通信の仕組みを実現することを主要な特徴としている。
次に、本発明の実施形態について説明する。
まず、本発明の模範的な実施形態における並列処理の概念について説明する。 本発明の実施形態が対象とする並列処理は、何らかの計算を行う複数のタスクが同時並行的に動作し、なおかつ、データ依存関係を有するタスク同士が同期通信を行うことによって、複数のタスクの実行タイミングを調整する。
(1)受信: 入力データの計算完了を待つ。
(2)計算: タスクの計算を実行する。
(3)送信:出力データの計算完了を通知する。
次に、本発明において重要な概念であるトポロジカルソートについて説明する。 トポロジカルソートとは、非循環有向グラフ(Directed Acyclic Graph、DAG)のノード(タスク)とエッジ(データなど何らかの依存関係)との関係に基づいて、各ノード(タスク)の順序付けを行うものであり、順序付けとして、どのノード(タスク)もその出力エッジの先のノード(タスク)よりも前に位置するように並べ替えることである。例えば、トポロジカルソートの典型的な利用例としては、タスクのスケジューリングや、コンパイラにおける命令スケジューリング等がある。
次に、本発明のタスク通信方法の第一の模範的な実施形態について、図2のフローチャートを用いて説明する。図2は、本発明の第一の実施形態のタスク通信方法を示すフローチャートである。第一の実施形態のタスク通信方法は、複数のタスクからなるタスクセットにおけるタスク間の多対1および1対多の通信を、トポロジカルソートによってあらかじめ得られている順序に基づいて、複数の1対1同期通信にて行う場合を示している。
次に、図2に示した第一の実施形態のタスク通信方法の通信に関する具体的な動作について図面を参照しながらさらに詳細に説明する。図3は、非循環有向グラフ(DAG)によって表現されたタスクセットの一例を示す図であり、タスクセットが6個のタスクA〜Fからなっている場合について例示している。ここで、図3に一例を示すタスクセットにおいて、丸で囲まれたノードはそれぞれタスクA〜Fを示し、矢印付きの実線でノード間を結ぶエッジは、タスク間のデータ依存関係を示している。
次に、本発明のタスク通信方法の第二の模範的な実施形態について、図6のフローチャートを用いて説明する。図6は、本発明の第二の実施形態のタスク通信方法を示すフローチャートである。第二の実施形態のタスク通信方法は、異なるイタレーション間のデータ依存関係(イタレーション間データ依存関係)を有する複数のタスクを含むタスクセットを対象として、トポロジカルソートによってあらかじめ得られている順序に基づいて、複数の1対1同期通信にて行う場合を示している。ここで、イタレーションとは、タスクセット全体の一回分の実行を意味するものであり、イタレーション間データ依存関係とは、第N回目(N:正整数)のタスクセットの実行と、第(N+1)回目のタスクセットの実行との間のデータ依存関係を意味している。
次に、図6に示した第二の実施形態のタスク通信方法の通信に関する具体的な動作について図面を参照しながらさらに詳細に説明する。図7は、イタレーション間データ依存関係を有するタスクセットの一例を示す図であり、タスクセットが6個のタスクA〜Fからなっている場合について例示している。
B タスク(ノード)
C タスク(ノード)
D タスク(ノード)
E タスク(ノード)
F タスク(ノード)
Claims (3)
- 複数のタスクが相互に通信しながら同時に動作するように構成したタスクセットにおいてタスク間の通信を行うタスク通信方法であって、
前記タスクが受信処理の後に送信処理を行うように構成し、
前記タスクセットを構成する複数のタスクのうち、少なくとも二つのタスクの間にイタレーション間データ依存関係が存在し、
なおかつ、前記タスクセットの前記イタレーション間データ依存関係を無視して得られる非循環有向グラフをトポロジカルソートして得られる順序番号を前記タスクに付与し、
前記タスクは、当該タスクへ入力データを供給するデータ供給タスクを、イタレーション間データ依存関係をもつ第一グループと、それ以外の第二グループとに分け、まず第一グループの前記データ供給タスクから、次に第二グループの前記データ供給タスクから、そしてグループ内では前記データ供給タスクに付与された前記順序番号の順番にしたがって、前記データ供給タスクから1対1同期受信を行い、
かつ、前記タスクは、当該タスクの出力データを使用するデータ使用タスクを、イタレーション間データ依存関係をもつ第三グループと、それ以外の第四グループとに分け、まず第三グループの前記データ使用タスクへ、次に第四グループの前記データ使用タスクへ、そしてグループ内では前記データ使用タスクに付与された前記順序番号の順番にしたがって、前記データ使用タスクへ1対1同期送信を行う、
ことを特徴とするタスク通信方法。 - 複数のタスクが相互に通信しながら同時に動作するように構成したタスクセットにおいてタスク間の通信を行う情報処理装置であって、
前記タスクが受信処理の後に送信処理を行うように構成し、
なおかつ、前記タスクセットを表す非循環有向グラフをトポロジカルソートして得られる順序番号を前記タスクに付与する手段を備え、
前記タスクは、当該タスクへ入力データを供給するデータ供給タスクに付与された前記順序番号の順番にしたがって、前記データ供給タスクから1対1同期受信を行う手段を備え、
かつ、前記タスクは、当該タスクの出力データを使用するデータ使用タスクに付与された前記順序番号の順番にしたがって、前記データ使用タスクへ1対1同期送信を行う手段を備え、
前記タスクセットを構成する複数のタスクのうち、少なくとも二つのタスクの間にイタレーション間データ依存関係が存在し、
前記順序番号を前記各タスクに付与する前記手段は、前記イタレーション間データ依存関係を無視して得られる非循環有向グラフをトポロジカルソートすることによって、前記順序番号を得て、前記タスクに付与する動作を行い、
さらに、前記データ供給タスクから1対1同期受信を行う前記手段は、前記タスクに関し、当該タスクへ入力データを供給するデータ供給タスクを、イタレーション間データ依存関係をもつ第一グループと、それ以外の第二グループとに分け、まず第一グループの前記データ供給タスクから、次に第二グループの前記データ供給タスクから、そしてグループ内では前記データ供給タスクに付与された前記順序番号にしたがって、前記データ供給タスクから1対1同期受信を行わせ、
かつ、前記データ使用タスクへ1対1同期送信を行う前記手段は、前記タスクに関し、当該タスクの出力データを使用するデータ使用タスクを、イタレーション間データ依存関係をもつ第三グループと、それ以外の第四グループとに分け、まず第三グループの前記データ使用タスクへ、次に第四グループの前記データ使用タスクへ、そしてグループ内では前記データ使用タスクに付与された前記順序番号にしたがって、前記データ使用タスクへ1対1同期送信を行わせる
ことを特徴とする情報処理装置。 - 複数のタスクが相互に通信しながら同時に動作するように構成したタスクセットにおいてタスク間の通信を行うタスク通信方法をコンピュータによって実行可能なプログラムとして実施するタスク通信プログラムであって、
前記タスクが受信処理の後に送信処理を行うように構成し、
なおかつ、前記タスクセットを表す非循環有向グラフをトポロジカルソートして得られる順序番号を前記タスクに付与するステップを有し、
前記タスクは、当該タスクへ入力データを供給するデータ供給タスクに付与された前記順序番号の順番にしたがって、前記データ供給タスクから1対1同期受信を行うステップを有し、
かつ、前記タスクは、当該タスクの出力データを使用するデータ使用タスクに付与された前記順序番号の順番にしたがって、前記データ使用タスクへ1対1同期送信を行うステップを有し、
前記タスクセットを構成する複数のタスクのうち、少なくとも二つのタスクの間にイタレーション間データ依存関係が存在し、
前記順序番号を前記各タスクに付与する前記ステップは、前記イタレーション間データ依存関係を無視して得られる非循環有向グラフを前記トポロジカルソートすることによって、前記順序番号を得て、前記タスクに付与する動作を行い、
さらに、前記データ供給タスクから1対1同期受信を行う前記ステップは、前記タスクに関し、当該タスクへ入力データを供給するデータ供給タスクを、イタレーション間データ依存関係をもつ第一グループと、それ以外の第二グループとに分け、まず第一グループの前記データ供給タスクから、次に第二グループの前記データ供給タスクから、そしてグループ内では前記データ供給タスクに付与された前記順序番号にしたがって、前記データ供給タスクから1対1同期受信を行わせ、
かつ、前記データ使用タスクへ1対1同期送信を行う前記ステップは、前記タスクに関し、当該タスクの出力データを使用するデータ使用タスクを、イタレーション間データ依存関係をもつ第三グループと、それ以外の第四グループとに分け、まず第三グループの前記データ使用タスクへ、次に第四グループの前記データ使用タスクへ、そしてグループ内では前記データ使用タスクに付与された前記順序番号にしたがって、前記データ使用タスクへ1対1同期送信を行わせる
ことを特徴とするタスク通信プログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012072155A JP5888052B2 (ja) | 2012-03-27 | 2012-03-27 | タスク通信方法、情報処理装置およびタスク通信プログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012072155A JP5888052B2 (ja) | 2012-03-27 | 2012-03-27 | タスク通信方法、情報処理装置およびタスク通信プログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2013205966A JP2013205966A (ja) | 2013-10-07 |
JP5888052B2 true JP5888052B2 (ja) | 2016-03-16 |
Family
ID=49525018
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2012072155A Active JP5888052B2 (ja) | 2012-03-27 | 2012-03-27 | タスク通信方法、情報処理装置およびタスク通信プログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5888052B2 (ja) |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008276547A (ja) * | 2007-04-27 | 2008-11-13 | Toshiba Corp | プログラム処理方法及び情報処理装置 |
JP4577422B2 (ja) * | 2008-07-14 | 2010-11-10 | ソニー株式会社 | 情報処理システム及び情報処理方法、ロボットの制御システム及び制御方法、並びコンピュータ・プログラム |
-
2012
- 2012-03-27 JP JP2012072155A patent/JP5888052B2/ja active Active
Also Published As
Publication number | Publication date |
---|---|
JP2013205966A (ja) | 2013-10-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8255884B2 (en) | Optimized scalar promotion with load and splat SIMD instructions | |
JP4781089B2 (ja) | タスク割り当て方法およびタスク割り当て装置 | |
JP2012511204A (ja) | リソースを最適化するためのタスク再編成方法 | |
US20040268335A1 (en) | Modulo scheduling of multiple instruction chains | |
US11507386B2 (en) | Booting tiles of processing units | |
JP2008146503A5 (ja) | ||
US8028291B2 (en) | Method and computer program product for job selection and resource allocation of a massively parallel processor | |
EP4229507A1 (en) | Preemption in a machine learning hardware accelerator | |
WO2015024432A1 (zh) | 一种指令调度方法及装置 | |
US20240036921A1 (en) | Cascading of Graph Streaming Processors | |
Tuncali et al. | Automatic parallelization of Simulink models for multi-core architectures | |
Abasian et al. | Minimizing the total weighted late work in scheduling of identical parallel processors with communication delays | |
JP5888052B2 (ja) | タスク通信方法、情報処理装置およびタスク通信プログラム | |
Manolache et al. | Optimization of soft real-time systems with deadline miss ratio constraints | |
US11928468B2 (en) | Systems and methods for improved mapping of computational loops on reconfigurable architectures | |
JP7424137B2 (ja) | 動作のスケジューリング | |
Ren et al. | Workload-aware harmonic partitioned scheduling for fixed-priority probabilistic real-time tasks on multiprocessors | |
JP2023544911A (ja) | 並列量子コンピューティングのための方法及び装置 | |
Suba | Hierarchical pipelining of nested loops in high-level synthesis | |
Mehiaoui et al. | Optimizing the deployment of tree-shaped functional graphs of real-time system on distributed architectures | |
Simon et al. | Design of real-time periodic control systems through synchronization and fixed priorities | |
Frieb et al. | Employing MPI collectives for timing analysis on embedded multi-cores | |
Haggarty et al. | Distributed response time analysis of GSPN models with MapReduce | |
JP5033745B2 (ja) | ジョブ管理システム及びジョブ管理方法 | |
Hatvani et al. | Adaptive task automata with earliest-deadline-first scheduling |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20150212 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20150824 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20150929 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20151127 |
|
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: 20160119 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20160201 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5888052 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |