JP5450297B2 - デジタルデータ処理操作を分散実行するためのデバイスおよび方法 - Google Patents

デジタルデータ処理操作を分散実行するためのデバイスおよび方法 Download PDF

Info

Publication number
JP5450297B2
JP5450297B2 JP2010157177A JP2010157177A JP5450297B2 JP 5450297 B2 JP5450297 B2 JP 5450297B2 JP 2010157177 A JP2010157177 A JP 2010157177A JP 2010157177 A JP2010157177 A JP 2010157177A JP 5450297 B2 JP5450297 B2 JP 5450297B2
Authority
JP
Japan
Prior art keywords
node
chunk
nodes
link
processing operation
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.)
Expired - Fee Related
Application number
JP2010157177A
Other languages
English (en)
Other versions
JP2011023003A (ja
Inventor
トナール イヴァン
Original Assignee
コミサリアト ア レネルジー アトミクー エ オ エネルジーズ アルタナティヴズ
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by コミサリアト ア レネルジー アトミクー エ オ エネルジーズ アルタナティヴズ filed Critical コミサリアト ア レネルジー アトミクー エ オ エネルジーズ アルタナティヴズ
Publication of JP2011023003A publication Critical patent/JP2011023003A/ja
Application granted granted Critical
Publication of JP5450297B2 publication Critical patent/JP5450297B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5066Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs

Description

本発明は、複数の計算ノードにわたる複数のデータ処理操作の分散実行を使用してデジタルデータを処理するデバイスに関する。それはまた、このようなデバイスの複数の計算ノードに対して複数のデータ処理操作を分散実行する方法に関する。
これは具体的には、並行して処理操作を行うのに適した複数の相互に接続された一体式のマイクロプロセッサを含めた、電子チップ式システムのデータを処理するためのデバイスに適用される。
より正確には本発明は、デバイス上で行われるように決められた各データ処理操作が、計算ノードと、バッファメモリノードと、これらのノード間で少なくとも1つの入力バッファメモリノードから少なくとも1つの出力バッファメモリノードにデータを転送する有向リンクとを含む有向グラフによってモデル化され、ここでは2つの異なる処理操作がリソースを共有することができる、すなわち少なくとも1つの共通の計算ノードを含むことができるデータフロー処理モデルを使用してデジタルデータを処理するデバイスに関する。
本発明の文脈において、「処理操作」とは、基本操作の連続を指しており、この処理操作の実行はデバイス全体に分散されデバイスに明確な機能性を与える。処理操作は、入力データを受信し、該入力データにこの機能性を適用することによって出力データを供給する。それは、そのアーキテクチャをプログラムし直す必要なしに、デバイスリソース間での、すなわちデバイスの入力メモリから出力メモリまでの相互に依存するデータフローのやりとりの最大のセットに相当する。
「計算ノード」は、マイクロプロセッサまたはその一部などの処理操作の所定の機能を実行するだけのための計算機型のデバイスの物的リソースを指している。計算ノードは、潜在的に「多価であり」、すなわちそれは複数の処理操作に使用されてよい。それは、可能性のある処理操作それぞれに関して、1つまたは複数の入力および1つまたは複数の出力を有する。
「バッファメモリノード」は、RAMや他のメモリ領域など処理操作において一時的にデータを格納するだけのためのメモリタイプのデバイスの物的リソースを指している。このようなリソースは一般に「バッファ」と称され、FIFO(先入れ先出し方式)式のロジックに従ってデータで満たされたり空になったりする。バッファメモリノードは「一価」であり、すなわちそれは、1つの処理操作に対してのみ使用することができる。その入出力に課される特定の条件はないが、それでもやはり1つの処理操作を他の処理操作から独立して行うために、バッファメモリノードそれ自体がそのデータを確実に空にすることができることが必要である。実際には、バッファメモリノードは、例えば4つのバッファメモリブロックにグループ分けすることができる。
同様に本発明の文脈において、「データフロー処理モデルデバイス」とは、共有メモリデバイスとは対照的に、データフローによって互いに接続された複数の物的リソースで構成されるアーキテクチャモデルを指す。このモデルによると、情報は共に接続された物的リソースで構成されたネットワーク内を非同期に移動し、それが通過する様々な要素、具体的には計算ノードによって変換される。
したがってこの文脈において、処理操作は実際には、そのピークが計算ノードおよびバッファメモリノードであり、かつその弧がこれらのノード間のデータ転送リンクに当てられる有向グラフによって一義的にモデル化することができる。処理操作は入力データを受信し出力データを供給するため、それを表すグラフは必然的にバッファメモリタイプの1つまたは複数の入力ノードと1つまたは複数の出力ノードとを含む。
さらに処理操作は有利には、この処理操作によって呼び出される計算ノードと共に入力ノードと出力ノードの間に配置されるバッファメモリノードを使用して構造上分解することができる。また処理操作は順次、連続する「セッション」にさらに分割されてよく、各セッションは、操作およびバッファメモリノード間でのデータ転送に十分なセットを形成する。セッションの終わりには処理操作を表すグラフ内の種々のバッファメモリノードは特定の数のデータを送受信しており、このデータが通過していった計算ノードはそれぞれ追加データの転送を必要としない状態であり、1つの処理操作のセッションは、計算ノード間でのそれぞれのデータ転送が、この計算ノードに関する最小処理粒度の倍数であることを保証することによって確定される。
処理操作を表すグラフの計算ノードのレベルでは、処理操作は、この計算ノードで実行されるべき事前に定義された「タスク」として考えられ、タスクは、考察中の計算ノードが全体のグラフレベルで処理操作の実行を成し遂げる必要のある全ての基本操作の連続である。したがって処理操作を順次セッションにさらに分割することによって、それ自体が連続するセッションへと分割される実行されるべきタスクのレベルでこの計算ノードに影響を与える。
上記に記載したタイプのデバイスの主たる問題は、可能な限り最も独立した方法で、それと同時に特定のデバイスリソースを共有して、それぞれ異なる処理操作を同時に行うことができるようにそれらを同期させることである。このような同期化は、その出力データが受信リソースによって常に使用可能でなければならないリソースそれぞれに影響を与える。デバイス内の特定のリソースが複数の入力および/または出力を有することに起因してこれらのリンクを介するデータフローが線形でないことから、同期が処理グラフにおける各リンクのポイントツーポイントを保証することは不可能である。したがって、一般に処理デバイスのそれ専用の要素に対してプログラムされた、リソースによって実行されるタスクの集中制御を行うことが一般的に選択される。
しかしながらこの集中型の同期は、それがデバイスおよびそのリソースの全体のアーキテクチャを最適化せずに使用することに結び付くことからいくつかの問題を提起する。詳細には、特定の計算ノードが処理操作においてイナクティブ(inactive)なままな場合があるのに対して、それらは別の処理操作に相当する新しいセッションを独立して開始することが可能である。
したがって恐らく、この問題を克服するあるいは少なくとも緩和することが可能な複数の処理操作を分散して実行するためのデバイスを提供することが望まれるであろう。
したがって本発明の主題は、デバイス上で行われるように決められた各データ処理操作が、計算ノードと、バッファメモリノードと、これらのノード間で少なくとも1つの入力バッファメモリノードから少なくとも1つの出力バッファメモリノードへデータを転送する有向リンクとによって構成される有向グラフによってモデル化され、ここでは2つの異なる処理操作が少なくとも1つの共通の計算ノードを含むことができるデータフロー処理モデルを使用する複数の計算ノードに対する複数のデータ処理操作の分散実行を使用して、詳細には電子チップ式システムのデジタルデータを処理するためのデバイスであって、この処理デバイスが、その入力ノードおよび出力ノードがマルチグラフのバッファメモリノードであるチャンクと呼ばれる、複数の値付きの有向サブマルチグラフに分割された複数の異なる処理グラフが結合することによって形成される値付きの有向のマルチグラフから各チャンクに関する調整モジュールを特定するための手段を含み、特定されたそれぞれの調整モジュールが、それが関連するチャンク内で実行されるように決められた処理操作の部分を、他のチャンク内で実行されるように決められた処理操作の部分から独立して同期させるように設計されたデバイスである。
デバイス上で実行可能な各処理操作が有向グラフによって表されるため、リソースを共有するこれらの処理操作のセットは、これらの有向グラフを結合する、すなわち値付きの有向マルチグラフによって表すことができる。各リンクが対応する処理操作識別子によって値が付けられた別々の処理操作に対応する複数の値付きのリンクが2つのノードの間に存在し得ることから、これは値付きのマルチグラフである
したがって、集中式ではないが、マルチグラフをサブ部分に分割することから生じるチャンクそれぞれにおいて独立した同期を考慮することによって、複数の処理操作の同期の問題が、使用されるバッファメモリノードによって区切られる全体のシステムのサブ部分に制限されることからリソースの荷重が改善される。処理操作は、所与のチャンク全体にわたって同期化され、これに関して、とりわけ既知の通信プロトコルに従ってセッションの順序付けを確定することができる。次いでそれぞれ異なる処理操作の調整が全体的に分散されかつ局地的に集中化されているとみなすことができる。
任意選択で、各調整モジュールは、それが関連するチャンクの計算ノードの1つである。
同様に任意選択で、それが何であれチャンクのいずれか1つの調整モジュールの特定手段は、前記データ転送リンク以外に調整モジュールとチャンク内の他のノードとの間に確立される、処理されるべきデータを転送せずに情報メッセージを転送するための「仮想」リンクと称される有向リンクを含む。
同様に任意選択で、それが何であれチャンクのいずれか1つの計算ノードはそれぞれ、−それが、そのチャンク内の少なくとも1つの他の所定のノードからこの処理操作に関するグラフの少なくとも1つの有向リンクを介して届く、処理操作のこの部分を開始するための少なくとも1つの情報メッセージをひとたび受信すると、処理操作の一部のみを開始させることが可能であり、
−処理操作のこの部分を開始するとすぐに、それが、そのチャンク内の少なくとも1つの他の所定のノードに、この処理操作に関するグラフの少なくとも1つの有向リンクを介して処理操作のこの部分を開始するための少なくとも1つの情報メッセージを送信することができるように構成される。
本発明の別の主題は、デバイス上で行われるように決められた各データ処理操作が、計算ノードと、バッファメモリノードと、これらのノード間で少なくとも1つの入力バッファメモリノードから少なくとも1つの出力バッファメモリノードへデータを転送する有向リンクとを含む有向グラフによってモデル化され、ここでは2つの異なる処理操作が少なくとも1つの共通の計算ノードを含むことができるデータフロー処理モデルを使用する、詳細には電子チップ上のシステムのデジタルデータを処理するためのデバイスの複数の計算ノードに対して複数のデータ処理操作を分散して実行する方法であって、以下の
−複数の異なる処理グラフを結合することによって形成される値付きの有向マルチグラフから、チャンクと呼ばれる複数の値付きの有向サブマルチグラフにこのマルチグラフを分割するステップであって、各チャンクの入力および出力ノードがバッファメモリノードであるステップと、
−各チャンクに関する調整モジュールを特定するステップと、
−対応する調整モジュールによって、各チャンク内で行われるように決められた処理操作の部分を他のチャンク内で行われように決められた処理操作の部分の同期から独立して同期させるステップとを含む方法である。
この方法は、任意選択で各チャンクに関する調整モジュールを自動的に選択するステップを含んでよい。
チャンクに関する調整モジュールを自動的に選択するステップは同様に任意選択で、以下の
−「ソース一価セット」と称される第1のサブセットが、チャンクの全ての入力ノードと、多価ノードからではなく入力ノードから到達することができるその他の一価ノード全てを含み、「シンク一価セット」と称される第2のサブセットが、チャンクの出力ノード全てと、多価ノードではなくその出力ノードに到達することができる他の全ての一価ノードとを含み、「多価セット」と称される第3のサブセットが、第1のサブセットや第2のサブセットのいずれにも属さないチャンクの全てのノードを含む3つのばらばらのサブセットにチャンクをさらに分割するサブステップと、
−所定の判断基準に従ってソース一価セットから来るデータ転送有向リンクの宛先である多価セットの計算ノードのうちの1つから調整モジュールを選択するサブステップとを含んでよい。
同様に任意選択で、所定の選択の判断基準は、
−ソース一価セットから来る有向リンクの他の宛先ノードに向かって離れていく大半のリンクを呈示するソース一価セットからの有向リンクの宛先計算ノードと、
−ソース一価セットのノードからの大半の入力リンクを受ける、ソース一価セットからの有向リンクの宛先計算ノードとで構成されるセットから選択される1つの要因である。
同様に任意選択で、各チャンクの調整モジュールを特定するためのステップは、前記データ転送リンク以外に、調整モジュールとチャンクの他のノードとの間に、処理されるべきデータを転送せずに情報メッセージを転送する「仮想」リンクと称される有向リンクを確立することを含む。
最後に同様に任意選択で、各チャンクに関して調整モジュールを特定するステップは、ソース一価セットからやって来て多価セットの方に向かう移行リンクと称される有向データ転送リンクそれぞれに対して以下の、
−同一の処理操作に関して、この移行リンクの始まりであるノードと調整モジュールとの間に1つのリンクまたはリンクのセットがそれまで存在していない場合、この移行リンクの始まりであるノードと調整モジュールとの間に新たな仮想リンクが形成されるサブステップと、
−同一の処理操作に関して、調整モジュールと移行リンクが向かうノードとの間にリンクまたはリンクのセットがそれまで存在していない場合、調整モジュールと移行リンクが向かうノードとの間に新たな仮想リンクが形成されるサブステップとを含む。
本発明は、単に一例として示される以下の記載の助けを借り、その一方で添付の図面を参照することによってよりよく理解されるであろう。
本発明の一実施形態によるデータ処理デバイスの全体の機能構造を表す概略図である。 本発明の一実施形態による複数のデータ処理操作に関する分散実行方法の連続するステップを示す図である。 複数の処理操作の特定の例を使用して、図2の方法における特定のステップの動作の詳細を示す図である。 複数の処理操作の特定の例を使用して、図2の方法における特定のステップの動作の詳細を示す図である。 本発明の一実施形態による、図1のデバイスにおける計算ノードの全体の機能構造を表す概略図である。
図1で表されるデジタルデータを処理するためのデバイス10は、複数の処理操作を並行して行うために相互に接続された一体式のマイクロプロセッサを含めた、例えば電子チップ式システムのデータフロー処理モデルデバイスである。それは詳細にはホストプロセッサ12と、このデバイス10上でプログラムされた処理操作を分散実行するのに加担する複数のリソース14から52とを含む。
これらのリソースは、図1では機能的に表されている。それらは、デバイス上で実行可能な処理操作によって呼び出すことができるバッファメモリノードと計算ノードとを含む。この図面に示される簡素であるが非制限的な例において、デバイス10では2つの処理操作が想定されており、そのデータ転送リンクは、2つの処理操作のうちの第1の操作に関しては指標「1」によって、あるいは2つの処理操作のうちの第2の操作に関しては指標「2」によって特定される値が付けられた有向マルチグラフによって表されている。第1の処理操作によって呼び出されるノードは、図1では垂直の縞模様を含む。第2の処理操作によって呼び出されるノードは、水平の縞模様を含む。その結果、両方の処理操作によって呼び出される多価ノードは、垂直と水平両方の縞模様を含む。
値付きの有向のマルチグラフは、第1の処理操作を表す第1の有向グラフと、第2の処理操作を表す第2の有向グラフとが結合した結果である。
第1のグラフは、入力バッファメモリノード14を含み、次いで指標「1」によって表されるデータ転送リンクによって示される第1の処理操作の順に、計算ノード16、計算ノード18、計算ノード20、バッファメモリノード22、計算ノード24、2つの計算ノード26および28、計算ノード30、バッファメモリノード32、計算ノード34、計算ノード36、計算ノード38および出力バッファメモリノード40を含む。第1の処理操作はしたがって、バッファメモリノード22および32によって構造上分解される。
第2のグラフは、入力バッファメモリノード42を含み、次いで、指標「2」によって表されるデータ転送リンクによって示される第2の処理操作の順に、計算ノード16、計算ノード44、計算ノード20、バッファメモリノード46、計算ノード48、2つの計算ノード26および28、計算ノード30、バッファメモリノード50、計算ノード34、計算ノード36、計算ノード38および出力バッファメモリノード52を含む。第2の処理操作はしたがって、バッファメモリノード46および50によって構造上分解される。
計算ノード16、20、26、28、30、34、36および38は、2つの処理操作に共通であり、したがって、これらのノードは多価である。
2つの処理操作が構造上分かれていることから、値付きの有向マルチグラフそれ自体が、その入力ノードおよび出力ノードがマルチグラフのバッファメモリノードであるチャンクと呼ばれる複数の値付きの有向サブマルチグラフに構造上分解される。第1チャンク54は、ノード14、16、18、20、22、42、44および46を含み、そのうちのバッファメモリノード14および42が入力ノードを形成し、バッファメモリノード22および46が出力ノードを形成する。第2チャンク56は、ノード22、24、26、28、30、32、46、48および50を含み、そのうちのバッファメモリノード22および46が入力ノードを形成し、バッファメモリノード32および50が出力ノードを形成する。第3のチャンク58は、ノード32、34、36、38、40、50および52を含み、そのうちのバッファメモリノード32および50が入力ノードを形成し、バッファメモリノード40および52が出力ノードを形成する。
マルチグラフのチャンクへの分割は演繹的に定義されてよく、バッファメモリノードを統合する際、計算ノードを統合する際およびそのそれぞれの機能をデバイス10に統合する際に実施することができる。それはまた、マルチグラフ内のバッファメモリノードの構造機構に基づいて、具体的にはホストプロセッサ12によって自動的に実行されてよい。これは、バッファメモリノードの「依存コーン」が、この依存コーンの極値ノードと呼ばれる、このバッファメモリノードから別のバッファメモリノードへの同一の処理操作の経路上に位置する計算ノードのセットとして定義され、かつ2つのバッファメモリノード間の「干渉関係」が、これらのノードが共通の計算ノードを有する依存コーンの極値であるその時から2つのノード間に確立される関係として定義される場合、この干渉関係に対する同等の階級としてマルチグラフのチャンクを定義することができることを指している。ホストプロセッサ12を適切にプログラミングすることによって自動のチャンクの決定を想定することができる。
「デッドロック」(2つの異なる計算ノードに対して同時に実行される2つのタスクがそれぞれ、他のノードから届くデータを待つときに生じるインターロックを指す)が生じることがないように、処理グラフ、およびしたがって所与のバッファメモリノードにわたってマルチグラフのルーピング(すなわち、有向リンクの閉鎖回路)が存在しないことが好ましいことがわかるであろう。
本発明によると、各チャンク54、56および58に関して1つの調整モジュールが特定される。より具体的には、調整モジュールは、それが関連するチャンク内で実行されるように決められた処理操作の部分を、他のチャンク内で実行されるように決められた処理操作の部分から独立して同期させるように設計されている。処理操作が、連続するセッションに順次分割される際、調整モジュールは、それが関連するチャンク内で異なる処理操作のセッションを同期させるように設計されている。この調整モジュールは、それが関連するチャンクの外にあってもよいし、そのチャンクに属してもよい。
図3から図5を参照してその詳細が示される一つの好ましい、但し非限定的な実施形態において、各チャンクは、その計算ノードの1つから選択される調整モジュールを含む。したがって図1の例において、計算ノード16、26および34を、チャンク54、56および58のそれぞれの調整モジュールとなるように選択することができる。図3から図5を参照してその詳細が示される実施形態では、同様に各チャンクに関する調整モジュールの選択を自動的に行う方法が記載されている。このような自動的に選択する方法は、例えば、その連続するステップを行うためにプログラムコード指示を有するホストプロセッサ12によって実施することができる。
デバイス10は最終的に、各チャンクに関する調整モジュールを特定するための手段を含む。これらの手段は、ホストプロセッサ12それ自体であってよく、これは調整モジュールの独自の識別子を監理する。この場合、処理操作を各チャンク内で同期させる方法を、例えば既知の通信プロトコルに従ってそれぞれ選択され特定された調整モジュールによって実施するコード指示を含むことができるのもホストプロセッサである。あるいは調整モジュールを特定する手段は、チャンク自体の中に明示的に(特定のマーカーを利用して)あるいは非明示的に(その構造を利用して)一体化されてよい。このような変形形態は、図3から図5を参照してその詳細が示される実施形態によって示される。
図2にその連続するステップが示される方法は、デバイス10において実施される処理操作のマルチグラフを体系化し初期化する第1段階と、デバイス10においてこのマルチグラフの処理操作を分散実行する第2段階とを含む。
第1の体系化し初期化する段階は、図1に示される例でのチャンク54、56および58など複数のチャンクにマルチグラフを分割する第1ステップ100を含む。先に述べたようにこの第1の分割ステップは、デバイス10のホストプロセッサ12によって自動的に行うことができる。このステップは、N個のチャンクを特定することによって終了する。
次いで、あらかじめ特定されたN個のチャンクにN個の選択ステップ102(1),…102(i),...102(N)がそれぞれ適用される際、各チャンクに対して調整モジュールが選択される。先に述べたように、各チャンクに関して調整モジュールを自動的に選択するプロシージャは、具体的にはホストプロセッサ12によって実施することができる。選択ステップ102(i)のいずれかの特定の実施形態の詳細が、図3を参照して提供される。
最終的に第1の体系化し初期化するための段階は、必要ならば先に特定されたN個のチャンクに対してそれぞれ適用されるN個の初期化ステップ104(1),...104(i),...104(N)を実行することによって完了する。これらの各ステップにおいて、所定の通信プロトコルに従って、実行されるように決められた処理セッションを同期させることができるように対応するチャンクおよびその調整モジュールが初期化される。この初期化は当然ながら、使用されるプロトコルに左右される。初期化の一例が、図4を参照して、その詳細が図5の助けを借りて示される通信プロトコルの文脈において示されている。この例において、チャンクを初期化することによってその調整モジュールを特定することが可能になる。
第1の体系化し初期化するための段階が終わると、デバイス10は、デバイス10において実施される処理操作を分散実行する第2段階を実施するための準備が整う。
この第2段階は、デバイス10における少なくとも1つの処理操作の開始を待つステップ106を含む。その入力バッファメモリノードの1つによってひとたびデジタルデータが受信されると、処理操作の開始が呼び出される。その結果ステップ106は、処理マルチグラフの少なくとも1つの入力バッファメモリノードによってデジタルデータが受信されると、少なくとも1つの処理操作の開始を検知するものと見なすことができる。
この検知に続いて、デバイス10のN個のチャンク内で複数の処理操作を正しく分散実行するために、所定の通信プロトコルに従って、N個の同期ステップ108(1),...108(i), ...108(N) が、各チャンクに対して互いに独立して行われる。この通信プロトコルは、既知の同期プロトコルの中から選択することができるが、図5を参照してその詳細が示されるものに従うのが恐らく有利である。
各処理操作は、マルチグラフの関連するチャンク内で実行しなければならない複数のセッションに順次さらに分割することができるため、1つのチャンク内での同期は、別々の処理操作からのセッションの実行の調整を含むことに留意されたい。これは、その実行シーケンスが予め決められているため、1つの所与の処理操作の2つのセッションを同期させる問題が生じないことを意味する。
実行される全ての処理操作の全てのセッションが全てのチャンクにおいて終了するとき、処理ステップ110が終了し、次いで例えば少なくとも1つの新たな処理操作の実行を待つために上流のステップ106に戻る。
それが何であれ所与のチャンクに関して調整モジュールを選択するステップ102(i)のいずれかの詳細が、図3を参照して特定の選択実施形態に従って次に示され、これは自動的に行うことができる。この線図では、それが何であれ2つの処理操作T1およびT2に関する任意のマルチグラフの1つのチャンクが示されている。それは、純粋に例示的な非限定的な例として示され、詳細には図1のマルチグラフと特別な関連はない。
このチャンクにおいて、第1の処理操作T1によって呼び出されるノードは、垂直の縞模様を含み、第2の処理操作T2によって呼び出されるノードは、水平の縞模様を含む。その結果、2つの処理操作によって呼び出される多価ノードは、垂直と水平両方の縞模様を含む。明確にする目的で、図3では、図1に関して選択された図解の規則とは異なり、このチャンクに関する値付きの有向のデータ転送リンクの値は示されないが、リンクそれ自体は、それらが第1の処理操作に属するか第2の処理操作に属するかによってそれぞれ異なる矢印によって表されている。この特定の例において、問題のチャンクが5つの入力バッファメモリノードを含み、そのうちの3つが第1の処理操作T1に関連し、2つが第2の処理操作T2に関連しており、加えてそれは、3つの出力バッファメモリノードを含み、そのうちの2つが、第1の処理操作T1に関連し、1つが第2の処理操作T2に関連していることがわかるであろう。
第1の選択準備ステップ200(i)において、チャンクiは、3つの別々のサブセットE1、E2およびE3にさらに分割される。チャンクの「ソース一価セット」と称される第1のサブセットE1は、このチャンクの全ての入力ノードと、多価ノードによってではなく入力ノードから(上述のリンクを介して)到達することができる他の全ての一価ノードとを含む。このチャンクの「シンク一価セット」と称される第2のサブセットE2は、このチャンクの全ての出力ノードと、多価ノードではなく、出力ノードに到達することができるその他の全ての一価ノードとを含む。最後にチャンクの「多価セット」と称される第3のサブセットE3は、E1にもE2にも属していないチャンク内の全てのノードを含む。セットE3は、具体的にはチャンク内の全ての多価ノードを含む。
それ自体が選択ステップである第2のステップ202(i)において、多価セットE3の計算ノードから考察中のチャンクに関する調整モジュールが選択される。より正確には、多価セットE3の「ソース多価境界」Fが、ソース一価セットE1を形成する有向リンクの宛先であるE3のノードのセットとして定義される場合、調整モジュールの選択の判断基準は以下の通りであってよい。ソース多価境界Fの他のノードに対するほとんどの出力リンクを呈示するソース多価境界Fの計算ノードが調整モジュールとして選択される。図3の例では、ステップ202(i)の終わりに黒色で示される計算ノードがそうである。補助的なまたは代替の判断基準として、ソース一価セットE1のノードから大半の入力リンクを受けるソース多価境界Fの計算ノードも同様に、調整モジュールとして選択することができる。
チャンクごとの1つの調整モジュールの選択をオペレータによって予め決めることも可能である。しかしながら先に記載したように、調整モジュールの選択の決定論的定義を使用して、マルチグラフをチャンクにさらに分割するという一般的な知識からステップ102(i)のうちのいずれか1つをデバイス10によって自動的に行うことができる。より正確にはステップ200(i)および202(i)は、例えばホストプロセッサ12によって行うことができ、これらのステップの結果(サブセットE1、E2、E3、Fおよび調整モジュールの特定)は次いでデバイス10のメモリに記憶される。詳細には、まず第1に、具体的には異なる処理操作に関連する少なくとも2つの入力ノードから到達可能なノードを特定することによってこのチャンクの入力ノードの後にくるものを調べることからチャンクの多価計算ノードを探し出し、次にチャンクの一価ノードそれぞれに関して、それらが多価ノードを含むかどうかを判断するためにそれより前にあるものと後ろにあるもので構成されたグラフを調べることによって、アルゴリズム的観点からステップ200(i)を行うことができる。
それが何であれ所与のチャンクiの初期化に関するステップ104(i)のいずれか1つの詳細およびその調整モジュールの詳細が、図4を参照して自動的に行うことができる特定の初期化の実施形態に従って次に示される。簡素化のために図4では、図3でのようにこのチャンクに関する値付きの有向のデータ転送リンクの値は示されていないが、リンク自体は、それらが第1の処理操作に属するか第2の処理操作に属するかによってそれぞれ異なる矢印によって表されている。加えて図4に示されるチャンクは、図3に示されるものと同様である。
ステップ102(i)の終わりでの考察中のチャンクの有向リンクは、実在の一次リンクとして定義されることにあらかじめ留意されたい。
用語「実リンク」とは、2つのノード間で考察中の処理操作に対して使用可能なデータの転送を具現化する有向リンクを指す。反対にリンクが信号データ(例えばセッション開始情報)の転送だけに使用される場合、このリンクは「仮想」であると言える。実リンクは、図4では実線の矢印で表され、仮想リンクは破線の矢印で表されている。
用語「一次リンク」は、それが向かう1つのノードで特定の処理セッションの実行を開始するおよび/またはそれを伝播させる目的で信号メッセージを送信することによって確立されるべき有向リンクを指す。これとは反対に、特定の処理セッションの実行を開始するおよび/またはそれを伝播させる目的で信号メッセージを伝送することによって必ずしもリンクが確立される必要はないが、使用可能なデータの可能な伝送は別として、それが単にこのリンクのソースノードの状態に関する情報を提供する機能を満たすように働くとき、リンクは「二次」リンクと呼ばれる。一次リンクは図4では太いラインの矢印によって表され、二次リンクは細いラインの矢印によって表されている。
第1ステップ300(i)において、選択された調整モジュール以外のソース多価境界Fの1つのノードに向かう有向の実リンクそれぞれに関して、
−このリンクは、二次リンク(細い実線)として再定義され、
−二次リンクとして再定義されたリンクの始まりとなるノ−ドと調整モジュールとの間に、同一の処理操作に関して1つの一次実リンク(太い実線)または一次実リンクのセットがそれまでに存在していない場合、二次リンクとして再定義されたリンクの始まりとなるノ−ドと調整モジュールとの間に新たな一次仮想リンク(太い破線)が形成され、
−調整モジュールと二次リンクとして再定義されたリンクが向かうノードとの間に同一の処理操作に関して1つの一次実リンク(太い実線)または一次リンクのセットがそれまでに存在していない場合、調整モジュールと二次リンクとして再定義されたリンクに向かうノ−ドとの間に新たな一次仮想リンク(太い破線)が形成される。
これらの新たに形成された仮想一次リンクはしたがって、考察中のチャンク内に含まれる、構造的であり非明示的な調整モジュールの特定手段60を形成する。詳細には、調整モジュールに向かう新たに形成された一次仮想リンクによって、考察中のチャンクの処理操作の同期およびより具体的にはセッションの同期が実際に行われる必要があるまさにそのセットである多価セットE3内の全ての入力リンクを調整モジュールが認識することが可能になる。したがってこの仮想一次リンクによって、調整モジュールが正しい同期決定をすることが可能になる。さらに調整モジュール以外のソース多価境界Fの1つのノードに向かう各リンクを二次リンクとして再定義することによって、選択された調整モジュール以外の計算ノードが処理セッションを開始しないようにする。
第2ステップ302(i)において、ここではT1およびT2であるチャンクの各処理操作に関して、多価セットE3内で、これらの全てのノードに信号メッセージを送信することを可能にするこの処理操作に関連するノードに関して最小のスパニングツリーが決定される。この最小のスパニングツリーの中のリンクは一次のままであり、多価セットE3内の考察中の処理に関連する他のリンクは、二次リンク(細線)として再定義される。同様にこのステップにおいて、チャンク内に少なくとも1つの一価ノードのサイクルが存在する場合、このサイクルを閉鎖する一時リンクは、二次リンクとして再定義される。
したがって、処理操作に関連する信号メッセージの伝播においていかなるサイクルも回避される。
最終的に第3のステップ304(i)において、先のステップで確定された最小のスパニングツリーの目的地(すなわちリーフ)に位置するノードは、必要であれば新たな仮想一次リンク(太い破線)を追加することによって共に接続される。より具体的には最小のスパニングツリーの中のリーフの1つが選択され、全ての他のリーフが、1つまたは複数の一次リンク(太線)を介してこのリーフに直接的または間接的に接続されていることが確認される。そうでない場合、必要とされる数の仮想一次リンクが追加され、必要とされる数の実在の二次リンクが実在の一次リンクへと変換され、図4に示される例では、1つの一次仮想リンクが追加され、1つの実在の二次リンクが実在の一次リンクへと変換されている。
同一のステップにおいて、選択されたリーフを考察中のチャンクに関する調整モジュールに接続するために二次仮想リンクが追加される。処理操作ごとに1つの二次仮想リンクが追加される。これらの二次仮想リンクによって、処理操作が使用できるデータが欠如していることによって処理セッションがロックされるリスクを負わずに、処理セッションを考察中のチャンク内の各計算ノードに対していつ支障なく終わらせることできるかを調整モジュールに知らせることが可能になる。
また先に記載したチャンクの初期化をオペレータによって事前に決めることもできる。しかしながら先に記載したように、行うべきステップ300(i)、302(i)および304(i)の決定論的定義を使用して、チャンクに分割されるマルチグラフの一般的な知識からステップ104(i)のいずれか1つをデバイス10によって自動的に行うことができる。より具体的には、これらのステップは、例えばホストプロセッサ12によって行われ、次いでこれらのステップの結果(新たに形成された仮想リンク、改変された実リンク)をデバイス10のメモリに記憶することができる。
それが何であれ所与のチャンクiにおける同期ステップ108(i)のいずれか1つの詳細が、図5を参照して示されており、この図は、計算ノード、および詳細には調整モジュールの全体的な機能構造を概略的に表している。考察中のチャンクのノードの機能構造に対して所定の通信プロトコルを適用することによって同期が実行される。
本発明の好ましい実施形態において、想定される通信プロトコルは、このノードに対してひとたび処理セッションが開始されると、セッションを開始するための情報メッセージが考察中のチャンクの計算ノードのいずれか1つによって送信されることを含む。この情報メッセージは、例えば実際にセッション開始情報メッセージを特定する第1フィールドと、処理操作を特定する第2フィールドと、受信側のノードにこのメッセージを送信するノードを特定する第3のフィールドと、このメッセージに関する宛先ノードを特定する、あるいは同意義となる方法でこのメッセージがその宛先に到達するためにたどらなければならない経路を特定する第4のフィールドとを含む。
この好ましい実施形態において、考察中のチャンク内の各計算ノード62は、データ(使用可能データおよび/または情報メッセージ)を伝送するための少なくとも1つの入力/出力インターフェース64と、処理セッションを実行するための計算機66と、コンテキストを記憶するためのローカルメモリ68と、計算機にコンテキストをロードするためのローダー70とを含む。コンテキストとは、これにより計算ノードがタスクを実行するのを可能にする、すなわち特定の処理セッションの実行に局所的に加担することを可能にするマイクロプログラムである。ローカルメモリ68は、処理ノード62が多価であるとき、複数のコンテキストを記憶することができる。
さらに各計算ノード62は、所定のパラメータのテーブルに関する記憶手段(すなわちローカルメモリ)を含む。一定のこれらのテーブルは静的であり、いわゆる構成テーブルと呼ばれ、それらが含むデータは、所与の処理操作に関するしかじかの動作を行う前に、ノード62が送受信する必要がある情報メッセージを明確にするのに使用される。他のテーブルは動的であり、いわゆる作用テーブルと呼ばれ、それらが含みかつ動的に変化するデータは、所与の処理操作に関していかなる時もノード62が送受信する情報メッセージを特定するのに使用される。想定される実施形態において、計算ノード62は処理操作ごとに6つのテーブルのセットを含む。実際にはそれは、それが行うことが可能なそこに存在する処理操作と同じ数だけこのようなテーブルのセットを含むが、図5には単に簡素化する目的で1つのテーブルのセットが示されている。
それが何であれいかなる処理操作Tに関しても、各ビットが計算ノード62が属するチャンクの潜在的ソースノードに対応している第1のバイナリ構成テーブルTAB1は、「1」のビットを利用して、計算ノード62それ自体がこのセッションを開始することができるようになる前に、計算ノード62が処理操作に関するセッション開始情報メッセージを受信する必要があるノードを特定する。図5に示される例では、N0からN7まで、すなわちテーブルTAB1の右端の1番目の重みの軽いビットからテーブルTAB1の左端の8番目の重いビットまで計算ノード62の潜在的ソースノードが特定され、計算ノード62それ自体がこのセッションを開始することができるようになる前に、計算ノード62が処理操作Tに関するセッション開始情報を受信する必要があるノードは、N0およびN1である。上述した「一次リンク」の定義から、第1バイナリ構成テーブルTAB1で「1」のビットは、必然的に計算ノード62への一次リンクのソースノードに関連する必要があることに留意されたい。任意選択で、メッセージおよび/またはデータの潜在的な伝送器であるノードは、重みの軽い第1nビット(ここではn=4)は使用可能データを送信するのに適した(実リンク)ノードに関連し、他の重いビットは使用可能データを送信するのに適さない(仮想信号リンク)ノードに関連するように配列される。
同一の処理操作Tに関して、ビットがテーブルTAB1と同様のノードに対応する第2バイナリ構成テーブルTAB2が、「1」のビットを利用して、計算ノード62自体がこのセッションに関するそのタスクを実行する際、進行中であるセッションが終了すると判断することができるようになる前に、計算ノード62が処理操作Tに関するセッション開始情報メッセージを受信する必要があるノードを特定する。図5に示される例では、テーブルTAB2で「1」のビットは、ノードN0、N1、N4およびN5に相当する。第1バイナリ構成テーブルTAB1で1であるビットは、第2バイナリ構成テーブルTAB2でも「1」であることに留意されたい。しかしながら、テーブルTAB2は、計算ノード62に対する二次リンクのためのソースノードに関連し得る他の「1」のビットも含んでいる。
同様の処理操作Tに関して、第3のバイナリ構成テーブルTAB3は、計算ノード62が実際にこのセッションを開始した後、計算ノード62が処理操作Tに関するセッション開始情報メッセージを送信する必要があるノードを特定する。このテーブルにおける各ラインは、第3コラムにおける潜在的宛先ノードを特定する。第1コラムは、「1」のビットを使用して、処理操作Tに関してどのノードが実際にこれらのメッセージの宛先ノードとならなければならないかを示す。第2コラムは、第3コラムで特定されたノードのテーブルTAB1およびTAB2におけるノード62の識別子を提供する。第3コラムは、メッセージの宛先ノードを直接特定する、あるいは同意義となるようにその宛先に到達するためにメッセージがたどらなければならない経路を特定する。
さらに処理操作Tに関して、ビットがTAB1およびTAB2と同様のノードに対応する第1バイナリ作用テーブルTAB4が、「1」のビットを利用して、計算ノード62が進行中の処理操作Tのセッションに関するセッション開始情報メッセージを受信したノードを特定する。初期設定において、このテーブル内の全てのビットは「0」である。ビットがTAB4の場合と同様のノードに相当する第2バイナリ作用テーブルTAB5が、「1」のビットを利用して、計算ノード62が処理操作Tのその後に続くセッションに関するセッション開始情報メッセージを受信したノードを特定する。初期設定において、このテーブル内の全てのビットも同様に「0」である。このテーブルは、バッファメモリ機能を満たしている。
最終的に処理操作Tに関して、ビットが第3の構成テーブルTAB3の第1コラムのビットに対応する第3のバイナリ作用テーブルTAB6が、「1」のビットを利用して、計算ノード62が進行中のセッションに関するセッション開始情報メッセージを送信したノードを特定する。初期設定において、このテーブル内のビットも同様に「0」に等しい。
同期ステップ108(i)の開始時に、各処理操作に関して、計算ノード62に対応する作用テーブルTAB4、TAB5およびTAB6の全てのビットは、「0」である。
少なくとも1つの処理操作を実行する際、計算ノード62は、予めおよび/またはステップ300(i)、302(i)および304(i)で確立された一次と二次両方の実リンクまたは仮想リンクを介して宛先としてそれが接続されたノードから届くセッション開始情報メッセージを受信する。
計算ノード62が処理操作Tに関するセッション開始情報メッセージを受信する際、このメッセージが、現在のセッションと称されるこの処理操作の実行を待つセッションに関連する場合、テーブルTAB4の送信側のノードに相当するビットが「1」に変わる。それが次のセッションに関連する場合、テーブルTAB5の送信側のノードに相当するビットが「1」に変わる。デフォルトによって、情報メッセージは、テーブルTAB4の対応するビットがすでに「1」でない限り(その場合、それは次のセッションに関連するものとみなされる)、現在のセッションに関連するものとみなされる。
第1の作用テーブルTAB4が第1の構成テーブルTAB1を含まない限り、換言するとTAB1で「1」である全てのビットがTAB4の「1」と等しくならない限りは、現在のセッションはノード62に対して開始されない。一方この条件が満たされると、ノード62は、第3の構成テーブルTAB3で特定された宛先ノードにそれが現在のセッションを開始していることを知らせるために、それらにセッション開始情報メッセージを送信する。このような情報メッセージがノード62によって送信される度に、第3の作用テーブルTAB6において対応するビットが「1」に変わる。
第3の作用テーブルTAB6が、第3の構成テーブルTAB3の第1コラムに等しいとき、現在のセッションが計算ノード62に対して実際に開始される。従来式であり故にその詳細が示されないデータ交換プロトコルに従って、ノード62は、実リンクを利用して宛先としてそれが接続されるノードから計算データを受信する。具体的には、このデータ交換プロトコルは有利には、宛先ノードに使用可能なデータを受信するのに十分なスペースがある場合、送信側のノードによって処理操作に使用できるデータのみが伝送される。これは、宛先ノードによって送信されたパケットのクレジットを受け取って初めてデータパケットを送信することによって実現することができる。
処理操作Tが実行される間、この処理操作に関連する情報メッセージは引き続き受信されてよい。先に示したように、これが対応するビットがTAB4において既に「1」であるノードに関連するメッセージを含む場合、次のセッションに関連するテーブルTAB5が次いで更新される。そうでなければ、デフォルトによってTAB4が更新される。当然ながら、処理操作Tを実行する際、他の処理操作に関連する情報メッセージを受信することもでき、その際他のテーブルのセットが更新される。
第1の作用テーブルTAB4が第2の構成テーブルTAB2を含むとき、換言するとTAB2で「1」である全てのビットがTAB4での「1」に等しい場合、現在のセッションは、考察中のチャンク内で完全に完了することが可能であるとみなされ、ノード62それ自体が現在のセッションに関するそのタスクを完了するとすぐに、ノード62は、それが同一の処理操作の次に続くセッションにせよあるいは別の処理操作のセッションにせよ、別のセッションを実行するために利用可能であるとみなされる。
したがって、第1の作用テーブルTAB4が第2の構成テーブルTAB2を含み、計算ノード62による現在のセッションの実行が完了する際、計算ノード62は、新たなセッションを開始するためにそれを選択する準備が整う。次いでテーブルTAB4のコンテンツがテーブルTAB5のものと置換えられ、作用テーブルTAB5およびTAB6のコンテンツが「0」に初期化される。ノード62は次いで、進行中の処理操作から最初の処理操作を選択することができ、そのために第1の処理テーブルTAB4は、構成テーブルTAB2を含む。
本発明の上述の実施形態では、各チャンクがステップ300(i)、302(i)および304(i)に従って初期化され、全ての計算ノードが、図5を参照してその詳細が示される方式で作用し、調整ノードとして選択された計算ノードが、他のものと作用が異ならないことが1つの利点である。それは、チャンクのマルチグラフ内に特定の仮想リンク、すなわち
−チャンク多価セットに進入する全ての入力リンクを調整モジュールに向け直す一次仮想リンクと、
−各処理操作に対してチャンクの多価セットに関する最小のスパニングツリーの選択リーフからやって来る、調整モジュールへの二次仮想リンクとが形成されることから、その一般的なチャンク同期機能を満たすだけである。
別の利点は、調整モジュールからのおよび調整モジュールに向かうこれらの仮想リンクを加えることにより、この処理操作のセッションを選択する前に、処理操作に関して使用可能な全てのデータが、実際に全ての入力バッファメモリノードの中に存在していることの確認がなされることが保証されるという点である。あるいは使用可能データの所定の部分のみが入力バッファメモリ内に存在することが要求される場合もあり(例えば最小の32ビット)、それは全て、バッファメモリノードからセッション開始情報メッセージを送信するために選択されるルールに左右される。同様に、この処理操作のセッションを選択する前に、全ての出力バッファメモリノードが、処理操作によって処理されたデータまたは少なくともデータの所定の一部を受信することができることを確認することができる。
この実施の例において、データの伝送の後に、行われるセッションの同期に有効な情報メッセージが続いて伝送され、考察中のチャンク内でそれ自体が徐々に伝播することにも留意されたい。
上記に記載したようなデジタルデータを処理するためのデバイスによって、従来の中央集中型の同期化デバイスに対してリソースのロードを向上させることが可能になることが明らかである。
加えて上記に記載した特定の実装により、処理マルチグラフ内の各チャンクに関する調整モジュールを簡単にかつ非明示的に特定することが可能になる。
さらに、調整モジュールはそれが関連するチャンクの計算ノードから選択され、かつこの調整モジュールへおよび/またはこの調整モジュールからセッション開始情報メッセージの仮想伝送リンクが形成されることにより調整モジュールはその特定の機能を満たすのみであるため、調整モジュールの同期機能は特定のリソースの追加を必要としない。同様の理由で、チャンク内のいかなるノードも、演繹的この調整機能を満たすことが可能である。
本発明は、上記に記載の実施形態に限定されないことにも留意されたい。
既に述べたように、チャンクの調整モジュールは、選択的にチャンクの外にあってよい、あるいは調整機能のみを満たすことが可能である。さらに上記に記載した通信プロトコルが有利であるが、それだけが想定可能なものではない。詳細には選択的に一次リンクと二次リンクの間には宛先が形成されず、一次情報メッセージと二次情報メッセージの間に宛先が形成される場合もある。この場合、各計算ノードの機能構造が変更される。
一般的に、当業者は、まさにここで公開された知識に照らして、上記に記載した実施形態に対して様々な修正を行うことができることを理解するであろう。以下に続くクレームにおいて使用される用語は、クレームを本記載に提示される実施形態に限定するものとみなすべきではなく、クレームは、まさにここで公開された知識を実現するために当業者それぞれの一般的な理解を適用することによって、彼らの能力の範囲内にある各自の系統的論述および予測の結果としてクレームが網羅することを目的とする全ての均等物を含むものと解釈されるべきである。

Claims (9)

  1. デバイス上で行われるように決められた各データ処理操作が、計算ノードと、バッファメモリノードと、これらのノード間で少なくとも1つの入力バッファメモリノード(14,42)から少なくとも1つの出力バッファメモリノード (40,52)へデータを転送する有向リンクと、によって構成される有向グラフによってモデル化され、前記データフロー処理モデルでは、2つの異なる処理操作が少なくとも1つの共通の計算ノード(16,20,26,28,30,34,36,38)を含むことができるデータフロー処理モデルを使用する、複数の計算ノード(16,18,20,24,26,28,30,34,36,38,44,48)に対する複数のデータ処理操作(T1,T2)の分散実行を使用して、詳細には電子チップ式のシステムのデジタルデータを処理するためのデバイスにおいて、前記デバイスが、その入力ノードおよび出力ノードが前記値付きの有向マルチグラフのバッファメモリノードであるチャンクと呼ばれる、複数の値付きの有向サブマルチグラフ(54,56,58)に分割された複数の異なる処理グラフが結合することによって形成される値付きの有向マルチグラフから、各チャンクに関する調整モジュール(16,26,34)を特定するための手段(12;60)を含み、前記特定されたそれぞれの調整モジュールが、前記特定されたそれぞれの調整モジュールが関連する前記チャンク内で実行されるように決められた処理操作の部分を、他のチャンク内で実行されるように決められた処理操作の部分から独立して、互いに同期させるように設計されることを特徴とするデバイス。
  2. 各調整モジュール(16,26,34)が、それが関連する前記チャンクの計算ノードの1つである、請求項1に記載のデジタルデータを処理するためのデバイス。
  3. 前記チャンクのいずれか1つの前記調整モジュールの前記特定手段が、前記データ転送リンク以外に前記調整モジュールと前記チャンク内の他のノードとの間に確立される、処理されるべき前記データを転送せずに、情報メッセージを転送するための「仮想」リンクと称される有向リンク(60)を形成する手段を含む、請求項2に記載のデジタルデータを処理するためのデバイス。
  4. 前記チャンクのいずれか1つの計算ノード(16,18,20,24,26,28,30,34,36,38,44,48)が、それぞれ、
    −前記計算ノードが、それが属するチャンク内の少なくとも1つの他の所定のノードから前記処理操作に関する前記グラフの少なくとも1つの有向リンクを介して届く、前記処理操作の前記部分を開始するための少なくとも1つの情報メッセージをひとたび受信すると、前記処理操作の前記部分のみを開始させることが可能であり、
    −前記処理操作の前記部分を開始するとすぐに、前記計算ノードが、それが属するチャンク内の少なくとも1つの他の所定のノードに、前記処理操作に関する前記グラフの少なくとも1つの有向リンクを介して前記処理操作の前記部分を開始するための少なくとも1つの情報メッセージを送信することができるように構成される、請求項3に記載のデジタルデータを処理するためのデバイス。
  5. デバイス上で行われるように決められた各データ処理操作が、計算ノードと、バッファメモリノードと、これらのノード間で少なくとも1つの入力バッファメモリノード(14,42)から少なくとも1つの出力バッファメモリノード(40,52)へデータを転送する有向リンクと、によって構成される有向グラフによってモデル化され、前記モデル化されたモデルでは、2つの異なる処理操作が少なくとも1つの共通の計算ノード(16,20,26,28,30,34,36,38)を含むことができるデータフロー処理モデルを使用する、詳細には電子チップ上のシステムのデジタルデータを処理するためのデバイス(10)の複数の計算ノード(16,18,20,24,26,28,30,34,36,38,44,48)に対して、複数のデータ処理操作(T1,T2)を分散して実行する方法であって、以下のステップ、即ち、
    −複数の異なる処理グラフを結合することによって形成される値付きの有向マルチグラフから、チャンクと呼ばれる複数の値付きの有向サブマルチグラフに前記有向マルチグラフを分割するステップであって、各チャンクの入力および出力ノードがバッファメモリノードであるステップ(100)と、
    −各チャンクに関する調整モジュールを特定するステップと、
    −対応する調整モジュールによって、各チャンク内で行われるように決められた処理操作の部分を他のチャンク内で行われように決められた処理操作の部分の同期から独立して同期させるステップ(108(1),...,108(i),...108(N))と、を含むことを特徴とする方法。
  6. 各チャンクに関する前記調整モジュールを自動的に選択するステップ(102(1),...,102(i),...102(N))を含む、請求項5に記載の複数の処理操作に対して分散実行する方法。
  7. チャンクに関する前記調整モジュールを自動的に選択するステップ(102(1),...,102(i),...102(N))が、以下のステップ、即ち、
    −「ソース一価セット」と称される第1のサブセット(E1)が、前記チャンクの全ての入力ノードと、多価ノードからではなく前記入力ノードから到達することができるその他の一価ノード全てを含み、「シンク一価セット」と称される第2のサブセット(E2)が、前記チャンクの出力ノード全てと、多価ノードではなく前記出力ノードに到達することができる他の全ての一価ノードと、を含み、「多価セット」(E3)と称される第3のサブセットが、前記第1のサブセットや第2のサブセットのいずれにも属さない前記チャンクの全てのノードを含む3つのばらばらのサブセットに前記チャンクをさらに分割するサブステップ(200(1),...200(i),...200(N))と、
    −所定の判断基準に従って前記ソース一価セットから来るデータ転送有向リンクの宛先である前記多価セットの前記計算ノードのうちの1つから前記調整モジュールを選択するサブステップ(202(1),...202(i),...202(N))と、を含む、請求項6に記載の複数の処理操作に対して分散実行する方法。
  8. 各チャンクの前記調整モジュールを特定するためのステップが、前記データ転送リンク以外に、前記調整モジュールと前記チャンクの他のノードとの間に、処理されるべきデータを転送せずに情報メッセージを転送する「仮想」リンクと称される有向リンクを確立するステップを含む、請求項5からのいずれかに記載の複数の処理操作に対して分散実行する方法。
  9. 各チャンクに関して前記調整モジュールを特定するステップが、前記ソース一価セットからやって来て前記多価セットの方に向かう移行リンクと称される有向データ転送リンクそれぞれに対して以下のサブステップ(300(1),...,300(i),...300(N))、即ち、
    −同一の処理操作に関して、この移行リンクの始まりであるノードと前記調整モジュールとの間に1つのリンクまたはリンクのセットがそれまで存在していない場合、前記移行リンクの始まりであるノードと前記調整モジュールとの間に新たな仮想リンク(60)が形成されるサブステップと、
    −同一の処理操作に関して、前記調整モジュールと前記移行リンクが向かうノードとの間にリンクまたはリンクのセットがそれまで存在していない場合、前記調整モジュールと前記移行リンクが向かうノードとの間に新たな仮想リンク(60)が形成されるサブステップとを含む、請求項8に記載の複数の処理操作に対して分散実行する方法。
JP2010157177A 2009-07-15 2010-07-09 デジタルデータ処理操作を分散実行するためのデバイスおよび方法 Expired - Fee Related JP5450297B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR0954903A FR2948206B1 (fr) 2009-07-15 2009-07-15 Dispositif et procede pour l'execution distribuee de traitements de donnees numeriques
FR0954903 2009-07-15

Publications (2)

Publication Number Publication Date
JP2011023003A JP2011023003A (ja) 2011-02-03
JP5450297B2 true JP5450297B2 (ja) 2014-03-26

Family

ID=42110336

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010157177A Expired - Fee Related JP5450297B2 (ja) 2009-07-15 2010-07-09 デジタルデータ処理操作を分散実行するためのデバイスおよび方法

Country Status (4)

Country Link
US (1) US9569272B2 (ja)
EP (1) EP2278466A1 (ja)
JP (1) JP5450297B2 (ja)
FR (1) FR2948206B1 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130173777A1 (en) * 2011-12-28 2013-07-04 Microsoft Corporation Mining Execution Pattern For System Performance Diagnostics
US9185156B2 (en) * 2012-11-13 2015-11-10 Google Inc. Network-independent programming model for online processing in distributed systems
US10089043B2 (en) * 2013-03-15 2018-10-02 Micron Technology, Inc. Apparatus and methods for a distributed memory system including memory nodes
CN114429051B (zh) * 2022-04-01 2022-07-01 深圳鲲云信息科技有限公司 数据流芯片的建模方法、装置、设备及介质

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007164504A (ja) * 2005-12-14 2007-06-28 Fuji Heavy Ind Ltd ストリームデータ処理方法およびストリームデータ処理装置
US9081609B2 (en) * 2005-12-21 2015-07-14 Xerox Corporation Image processing system and method employing a threaded scheduler
FR2898753B1 (fr) * 2006-03-16 2008-04-18 Commissariat Energie Atomique Systeme sur puce a controle semi-distribue
JP4936517B2 (ja) * 2006-06-06 2012-05-23 学校法人早稲田大学 ヘテロジニアス・マルチプロセッサシステムの制御方法及びマルチグレイン並列化コンパイラ
GB2443277B (en) * 2006-10-24 2011-05-18 Advanced Risc Mach Ltd Performing diagnostics operations upon an asymmetric multiprocessor apparatus
US9996394B2 (en) * 2012-03-01 2018-06-12 Microsoft Technology Licensing, Llc Scheduling accelerator tasks on accelerators using graphs

Also Published As

Publication number Publication date
US9569272B2 (en) 2017-02-14
FR2948206B1 (fr) 2011-08-05
EP2278466A1 (fr) 2011-01-26
US20110016293A1 (en) 2011-01-20
JP2011023003A (ja) 2011-02-03
FR2948206A1 (fr) 2011-01-21

Similar Documents

Publication Publication Date Title
JP5304194B2 (ja) バリア同期装置、バリア同期システム及びバリア同期装置の制御方法
JP4808513B2 (ja) システムオンチップの大域的非同期通信アーキテクチャ
JP4763405B2 (ja) データ・フロー・アプリケーションのためのネットワーク・オン・チップ半自動通信アーキテクチャ
US8572615B2 (en) Parallel computing system, synchronization device, and control method of parallel computing system
US10193705B2 (en) Method, communication network, and control unit for the cyclical transmission of data
JP5450297B2 (ja) デジタルデータ処理操作を分散実行するためのデバイスおよび方法
US7310803B2 (en) Method and system for executing multiple tasks in a task set
CN110419204A (zh) 传输通信信号帧的方法、实体和程序
US20170366286A1 (en) Master/slave negotiation associated with a synchronous ethernet network
CN111752887A (zh) 人工智能芯片和基于人工智能芯片的数据处理方法
Mariño et al. Loopback strategy for TSN-compliant traffic queueing and shaping in automotive gateways
CN104247350A (zh) 实现转换协议,其中用于在第一时间段期间路由由一组交换机接收到的分组的第一规则集被更新到第二规则集
KR102518390B1 (ko) 소프트웨어 정의 네트워크 기반 서비스 기능 체인의 백업 서비스 기능 선택 장치 및 방법
CN111490902A (zh) 664网络消息构建算法
US11907725B2 (en) Communication in a computer having multiple processors
US11625357B2 (en) Control of data transfer between processors
CN113138831B (zh) 一种网络重置方法及基于此的加速分布式训练方法和系统
US20220198249A1 (en) Execution of neural networks
CN107852374A (zh) 用于在中央网络管理实体内管理网络的端到端连接的设备和方法
De Marco et al. A Distributed Message-Optimal Assignment on Rings
CN116527573A (zh) 一种时间敏感网络中的数据流调度方法、装置及介质
CN117472844A (zh) 一种多芯片模组以及数据处理方法
JP2845737B2 (ja) ノード演算パイプライン
WO2009118659A2 (en) Method and apparatus for control in reconfigurable architecture
JPH07235966A (ja) Osiネットワーク管理システム及び方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20101117

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111117

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120912

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20121002

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20121228

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20130108

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20130201

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20130206

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130214

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130226

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20130507

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130827

A911 Transfer of reconsideration by examiner before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20131007

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: 20131126

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20131225

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees