(57)【特許請求の範囲】
【請求項１】
デバイス上で行われるように決められた各データ処理操作が、計算ノードと、バッファメモリノードと、これらのノード間で少なくとも１つの入力バッファメモリノード（１４，４２）から少なくとも１つの出力バッファメモリノード （４０，５２）へデータを転送する有向リンクと、によって構成される有向グラフによってモデル化され、前記データフロー処理モデルでは、２つの異なる処理操作が少なくとも１つの共通の計算ノード（１６，２０，２６，２８，３０，３４，３６，３８）を含むことができるデータフロー処理モデルを使用する、複数の計算ノード（１６，１８，２０，２４，２６，２８，３０，３４，３６，３８，４４，４８）に対する複数のデータ処理操作（Ｔ１，Ｔ２）の分散実行を使用して、詳細には電子チップ式のシステムのデジタルデータを処理するためのデバイスにおいて、前記デバイスが、その入力ノードおよび出力ノードが前記値付きの有向マルチグラフのバッファメモリノードであるチャンクと呼ばれる、複数の値付きの有向サブマルチグラフ（５４，５６，５８）に分割された複数の異なる処理グラフが結合することによって形成される値付きの有向マルチグラフから、各チャンクに関する調整モジュール（１６，２６，３４）を特定するための手段（１２;６０）を含み、前記特定されたそれぞれの調整モジュールが、前記特定されたそれぞれの調整モジュールが関連する前記チャンク内で実行されるように決められた各処理操作の部分を、他のチャンク内で実行されるように決められた各処理操作の部分から独立して、互いに同期させるように設計されることを特徴とするデバイス。
【請求項２】
各調整モジュール（１６，２６，３４）が、それが関連する前記チャンクの計算ノードの１つである、請求項１に記載のデジタルデータを処理するためのデバイス。
【請求項３】
前記チャンクのいずれか１つの前記調整モジュールの前記特定手段が、前記データ転送リンク以外に前記調整モジュールと前記チャンク内の他のノードとの間に確立される、処理されるべき前記データを転送せずに、情報メッセージを転送するための「仮想」リンクと称される有向リンク（６０）を形成する手段を含む、請求項２に記載のデジタルデータを処理するためのデバイス。
【請求項４】
前記チャンクのいずれか１つの計算ノード（１６，１８，２０，２４，２６，２８，３０，３４，３６，３８，４４，４８）が、それぞれ、
−前記計算ノードが、それが属するチャンク内の少なくとも１つの他の所定のノードから前記処理操作に関する前記グラフの少なくとも１つの有向リンクを介して届く、前記処理操作の前記部分を開始するための少なくとも１つの情報メッセージをひとたび受信すると、前記処理操作の前記部分のみを開始させることが可能であり、
−前記処理操作の前記部分を開始するとすぐに、前記計算ノードが、それが属するチャンク内の少なくとも１つの他の所定のノードに、前記処理操作に関する前記グラフの少なくとも１つの有向リンクを介して前記処理操作の前記部分を開始するための少なくとも１つの情報メッセージを送信することができるように構成される、請求項３に記載のデジタルデータを処理するためのデバイス。
【請求項５】
デバイス上で行われるように決められた各データ処理操作が、計算ノードと、バッファメモリノードと、これらのノード間で少なくとも１つの入力バッファメモリノード（１４，４２）から少なくとも１つの出力バッファメモリノード（４０，５２）へデータを転送する有向リンクと、によって構成される有向グラフによってモデル化され、前記モデル化されたモデルでは、２つの異なる処理操作が少なくとも１つの共通の計算ノード（１６，２０，２６，２８，３０，３４，３６，３８）を含むことができるデータフロー処理モデルを使用する、詳細には電子チップ上のシステムのデジタルデータを処理するためのデバイス（１０）の複数の計算ノード（１６，１８，２０，２４，２６，２８，３０，３４，３６，３８，４４，４８）に対して、複数のデータ処理操作（Ｔ１，Ｔ２）を分散して実行する方法であって、以下のステップ、即ち、
−複数の異なる処理グラフを結合することによって形成される値付きの有向マルチグラフから、チャンクと呼ばれる複数の値付きの有向サブマルチグラフに前記有向マルチグラフを分割するステップであって、各チャンクの入力および出力ノードがバッファメモリノードであるステップ（１００）と、
−各チャンクに関する調整モジュールを特定するステップと、
−対応する調整モジュールによって、各チャンク内で行われるように決められた処理操作の部分を他のチャンク内で行われように決められた処理操作の部分の同期から独立して同期させるステップ（１０８（１），．．．，１０８（ｉ），．．．１０８（Ｎ））と、を含むことを特徴とする方法。
【請求項６】
各チャンクに関する前記調整モジュールを自動的に選択するステップ（１０２（１），．．．，１０２（ｉ），．．．１０２（Ｎ））を含む、請求項５に記載の複数の処理操作に対して分散実行する方法。
【請求項７】
チャンクに関する前記調整モジュールを自動的に選択するステップ（１０２（１），．．．，１０２（ｉ），．．．１０２（Ｎ））が、以下のステップ、即ち、
−「ソース一価セット」と称される第１のサブセット（Ｅ１）が、前記チャンクの全ての入力ノードと、多価ノードからではなく前記入力ノードから到達することができるその他の一価ノード全てを含み、「シンク一価セット」と称される第２のサブセット（Ｅ２）が、前記チャンクの出力ノード全てと、多価ノードではなく前記出力ノードに到達することができる他の全ての一価ノードと、を含み、「多価セット」（Ｅ３）と称される第３のサブセットが、前記第１のサブセットや第２のサブセットのいずれにも属さない前記チャンクの全てのノードを含む３つのばらばらのサブセットに前記チャンクをさらに分割するサブステップ（２００（１），．．．２００（ｉ），．．．２００（Ｎ））と、
−所定の判断基準に従って前記ソース一価セットから来るデータ転送有向リンクの宛先である前記多価セットの前記計算ノードのうちの１つから前記調整モジュールを選択するサブステップ（２０２（１），．．．２０２（ｉ），．．．２０２（Ｎ））と、を含む、請求項６に記載の複数の処理操作に対して分散実行する方法。
【請求項８】
各チャンクの前記調整モジュールを特定するためのステップが、前記データ転送リンク以外に、前記調整モジュールと前記チャンクの他のノードとの間に、処理されるべきデータを転送せずに情報メッセージを転送する「仮想」リンクと称される有向リンクを確立するステップを含む、請求項５から７のいずれかに記載の複数の処理操作に対して分散実行する方法。
【請求項９】
各チャンクに関して前記調整モジュールを特定するステップが、前記ソース一価セットからやって来て前記多価セットの方に向かう移行リンクと称される有向データ転送リンクそれぞれに対して以下のサブステップ（３００（１），．．．，３００（ｉ），．．．３００（Ｎ））、即ち、
−同一の処理操作に関して、この移行リンクの始まりであるノードと前記調整モジュールとの間に１つのリンクまたはリンクのセットがそれまで存在していない場合、前記移行リンクの始まりであるノードと前記調整モジュールとの間に新たな仮想リンク（６０）が形成されるサブステップと、
−同一の処理操作に関して、前記調整モジュールと前記移行リンクが向かうノードとの間にリンクまたはリンクのセットがそれまで存在していない場合、前記調整モジュールと前記移行リンクが向かうノードとの間に新たな仮想リンク（６０）が形成されるサブステップとを含む、請求項８に記載の複数の処理操作に対して分散実行する方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の計算ノードにわたる複数のデータ処理操作の分散実行を使用してデジタルデータを処理するデバイスに関する。それはまた、このようなデバイスの複数の計算ノードに対して複数のデータ処理操作を分散実行する方法に関する。
【０００２】
これは具体的には、並行して処理操作を行うのに適した複数の相互に接続された一体式のマイクロプロセッサを含めた、電子チップ式システムのデータを処理するためのデバイスに適用される。
【０００３】
より正確には本発明は、デバイス上で行われるように決められた各データ処理操作が、計算ノードと、バッファメモリノードと、これらのノード間で少なくとも１つの入力バッファメモリノードから少なくとも１つの出力バッファメモリノードにデータを転送する有向リンクとを含む有向グラフによってモデル化され、ここでは２つの異なる処理操作がリソースを共有することができる、すなわち少なくとも１つの共通の計算ノードを含むことができるデータフロー処理モデルを使用してデジタルデータを処理するデバイスに関する。
【背景技術】
【０００４】
本発明の文脈において、「処理操作」とは、基本操作の連続を指しており、この処理操作の実行はデバイス全体に分散されデバイスに明確な機能性を与える。処理操作は、入力データを受信し、該入力データにこの機能性を適用することによって出力データを供給する。それは、そのアーキテクチャをプログラムし直す必要なしに、デバイスリソース間での、すなわちデバイスの入力メモリから出力メモリまでの相互に依存するデータフローのやりとりの最大のセットに相当する。
【０００５】
「計算ノード」は、マイクロプロセッサまたはその一部などの処理操作の所定の機能を実行するだけのための計算機型のデバイスの物的リソースを指している。計算ノードは、潜在的に「多価であり」、すなわちそれは複数の処理操作に使用されてよい。それは、可能性のある処理操作それぞれに関して、１つまたは複数の入力および１つまたは複数の出力を有する。
【０００６】
「バッファメモリノード」は、ＲＡＭや他のメモリ領域など処理操作において一時的にデータを格納するだけのためのメモリタイプのデバイスの物的リソースを指している。このようなリソースは一般に「バッファ」と称され、ＦＩＦＯ（先入れ先出し方式）式のロジックに従ってデータで満たされたり空になったりする。バッファメモリノードは「一価」であり、すなわちそれは、１つの処理操作に対してのみ使用することができる。その入出力に課される特定の条件はないが、それでもやはり１つの処理操作を他の処理操作から独立して行うために、バッファメモリノードそれ自体がそのデータを確実に空にすることができることが必要である。実際には、バッファメモリノードは、例えば４つのバッファメモリブロックにグループ分けすることができる。
【０００７】
同様に本発明の文脈において、「データフロー処理モデルデバイス」とは、共有メモリデバイスとは対照的に、データフローによって互いに接続された複数の物的リソースで構成されるアーキテクチャモデルを指す。このモデルによると、情報は共に接続された物的リソースで構成されたネットワーク内を非同期に移動し、それが通過する様々な要素、具体的には計算ノードによって変換される。
【０００８】
したがってこの文脈において、処理操作は実際には、そのピークが計算ノードおよびバッファメモリノードであり、かつその弧がこれらのノード間のデータ転送リンクに当てられる有向グラフによって一義的にモデル化することができる。処理操作は入力データを受信し出力データを供給するため、それを表すグラフは必然的にバッファメモリタイプの１つまたは複数の入力ノードと１つまたは複数の出力ノードとを含む。
【０００９】
さらに処理操作は有利には、この処理操作によって呼び出される計算ノードと共に入力ノードと出力ノードの間に配置されるバッファメモリノードを使用して構造上分解することができる。また処理操作は順次、連続する「セッション」にさらに分割されてよく、各セッションは、操作およびバッファメモリノード間でのデータ転送に十分なセットを形成する。セッションの終わりには処理操作を表すグラフ内の種々のバッファメモリノードは特定の数のデータを送受信しており、このデータが通過していった計算ノードはそれぞれ追加データの転送を必要としない状態であり、１つの処理操作のセッションは、計算ノード間でのそれぞれのデータ転送が、この計算ノードに関する最小処理粒度の倍数であることを保証することによって確定される。
【００１０】
処理操作を表すグラフの計算ノードのレベルでは、処理操作は、この計算ノードで実行されるべき事前に定義された「タスク」として考えられ、タスクは、考察中の計算ノードが全体のグラフレベルで処理操作の実行を成し遂げる必要のある全ての基本操作の連続である。したがって処理操作を順次セッションにさらに分割することによって、それ自体が連続するセッションへと分割される実行されるべきタスクのレベルでこの計算ノードに影響を与える。
【発明の概要】
【発明が解決しようとする課題】
【００１１】
上記に記載したタイプのデバイスの主たる問題は、可能な限り最も独立した方法で、それと同時に特定のデバイスリソースを共有して、それぞれ異なる処理操作を同時に行うことができるようにそれらを同期させることである。このような同期化は、その出力データが受信リソースによって常に使用可能でなければならないリソースそれぞれに影響を与える。デバイス内の特定のリソースが複数の入力および／または出力を有することに起因してこれらのリンクを介するデータフローが線形でないことから、同期が処理グラフにおける各リンクのポイントツーポイントを保証することは不可能である。したがって、一般に処理デバイスのそれ専用の要素に対してプログラムされた、リソースによって実行されるタスクの集中制御を行うことが一般的に選択される。
【００１２】
しかしながらこの集中型の同期は、それがデバイスおよびそのリソースの全体のアーキテクチャを最適化せずに使用することに結び付くことからいくつかの問題を提起する。詳細には、特定の計算ノードが処理操作においてイナクティブ（ｉｎａｃｔｉｖｅ）なままな場合があるのに対して、それらは別の処理操作に相当する新しいセッションを独立して開始することが可能である。
【００１３】
したがって恐らく、この問題を克服するあるいは少なくとも緩和することが可能な複数の処理操作を分散して実行するためのデバイスを提供することが望まれるであろう。
【課題を解決するための手段】
【００１４】
したがって本発明の主題は、デバイス上で行われるように決められた各データ処理操作が、計算ノードと、バッファメモリノードと、これらのノード間で少なくとも１つの入力バッファメモリノードから少なくとも１つの出力バッファメモリノードへデータを転送する有向リンクとによって構成される有向グラフによってモデル化され、ここでは２つの異なる処理操作が少なくとも１つの共通の計算ノードを含むことができるデータフロー処理モデルを使用する複数の計算ノードに対する複数のデータ処理操作の分散実行を使用して、詳細には電子チップ式システムのデジタルデータを処理するためのデバイスであって、この処理デバイスが、その入力ノードおよび出力ノードがマルチグラフのバッファメモリノードであるチャンクと呼ばれる、複数の値付きの有向サブマルチグラフに分割された複数の異なる処理グラフが結合することによって形成される値付きの有向のマルチグラフから各チャンクに関する調整モジュールを特定するための手段を含み、特定されたそれぞれの調整モジュールが、それが関連するチャンク内で実行されるように決められた処理操作の部分を、他のチャンク内で実行されるように決められた処理操作の部分から独立して同期させるように設計されたデバイスである。
【００１５】
デバイス上で実行可能な各処理操作が有向グラフによって表されるため、リソースを共有するこれらの処理操作のセットは、これらの有向グラフを結合する、すなわち値付きの有向マルチグラフによって表すことができる。各リンクが対応する処理操作識別子によって値が付けられた別々の処理操作に対応する複数の値付きのリンクが２つのノードの間に存在し得ることから、これは値付きのマルチグラフである
したがって、集中式ではないが、マルチグラフをサブ部分に分割することから生じるチャンクそれぞれにおいて独立した同期を考慮することによって、複数の処理操作の同期の問題が、使用されるバッファメモリノードによって区切られる全体のシステムのサブ部分に制限されることからリソースの荷重が改善される。処理操作は、所与のチャンク全体にわたって同期化され、これに関して、とりわけ既知の通信プロトコルに従ってセッションの順序付けを確定することができる。次いでそれぞれ異なる処理操作の調整が全体的に分散されかつ局地的に集中化されているとみなすことができる。
【００１６】
任意選択で、各調整モジュールは、それが関連するチャンクの計算ノードの１つである。
【００１７】
同様に任意選択で、それが何であれチャンクのいずれか１つの調整モジュールの特定手段は、前記データ転送リンク以外に調整モジュールとチャンク内の他のノードとの間に確立される、処理されるべきデータを転送せずに情報メッセージを転送するための「仮想」リンクと称される有向リンクを含む。
【００１８】
同様に任意選択で、それが何であれチャンクのいずれか１つの計算ノードはそれぞれ、−それが、そのチャンク内の少なくとも１つの他の所定のノードからこの処理操作に関するグラフの少なくとも１つの有向リンクを介して届く、処理操作のこの部分を開始するための少なくとも１つの情報メッセージをひとたび受信すると、処理操作の一部のみを開始させることが可能であり、
−処理操作のこの部分を開始するとすぐに、それが、そのチャンク内の少なくとも１つの他の所定のノードに、この処理操作に関するグラフの少なくとも１つの有向リンクを介して処理操作のこの部分を開始するための少なくとも１つの情報メッセージを送信することができるように構成される。
【００１９】
本発明の別の主題は、デバイス上で行われるように決められた各データ処理操作が、計算ノードと、バッファメモリノードと、これらのノード間で少なくとも１つの入力バッファメモリノードから少なくとも１つの出力バッファメモリノードへデータを転送する有向リンクとを含む有向グラフによってモデル化され、ここでは２つの異なる処理操作が少なくとも１つの共通の計算ノードを含むことができるデータフロー処理モデルを使用する、詳細には電子チップ上のシステムのデジタルデータを処理するためのデバイスの複数の計算ノードに対して複数のデータ処理操作を分散して実行する方法であって、以下の
−複数の異なる処理グラフを結合することによって形成される値付きの有向マルチグラフから、チャンクと呼ばれる複数の値付きの有向サブマルチグラフにこのマルチグラフを分割するステップであって、各チャンクの入力および出力ノードがバッファメモリノードであるステップと、
−各チャンクに関する調整モジュールを特定するステップと、
−対応する調整モジュールによって、各チャンク内で行われるように決められた処理操作の部分を他のチャンク内で行われように決められた処理操作の部分の同期から独立して同期させるステップとを含む方法である。
【００２０】
この方法は、任意選択で各チャンクに関する調整モジュールを自動的に選択するステップを含んでよい。
【００２１】
チャンクに関する調整モジュールを自動的に選択するステップは同様に任意選択で、以下の
−「ソース一価セット」と称される第１のサブセットが、チャンクの全ての入力ノードと、多価ノードからではなく入力ノードから到達することができるその他の一価ノード全てを含み、「シンク一価セット」と称される第２のサブセットが、チャンクの出力ノード全てと、多価ノードではなくその出力ノードに到達することができる他の全ての一価ノードとを含み、「多価セット」と称される第３のサブセットが、第１のサブセットや第２のサブセットのいずれにも属さないチャンクの全てのノードを含む３つのばらばらのサブセットにチャンクをさらに分割するサブステップと、
−所定の判断基準に従ってソース一価セットから来るデータ転送有向リンクの宛先である多価セットの計算ノードのうちの１つから調整モジュールを選択するサブステップとを含んでよい。
【００２２】
同様に任意選択で、所定の選択の判断基準は、
−ソース一価セットから来る有向リンクの他の宛先ノードに向かって離れていく大半のリンクを呈示するソース一価セットからの有向リンクの宛先計算ノードと、
−ソース一価セットのノードからの大半の入力リンクを受ける、ソース一価セットからの有向リンクの宛先計算ノードとで構成されるセットから選択される１つの要因である。
【００２３】
同様に任意選択で、各チャンクの調整モジュールを特定するためのステップは、前記データ転送リンク以外に、調整モジュールとチャンクの他のノードとの間に、処理されるべきデータを転送せずに情報メッセージを転送する「仮想」リンクと称される有向リンクを確立することを含む。
【００２４】
最後に同様に任意選択で、各チャンクに関して調整モジュールを特定するステップは、ソース一価セットからやって来て多価セットの方に向かう移行リンクと称される有向データ転送リンクそれぞれに対して以下の、
−同一の処理操作に関して、この移行リンクの始まりであるノードと調整モジュールとの間に１つのリンクまたはリンクのセットがそれまで存在していない場合、この移行リンクの始まりであるノードと調整モジュールとの間に新たな仮想リンクが形成されるサブステップと、
−同一の処理操作に関して、調整モジュールと移行リンクが向かうノードとの間にリンクまたはリンクのセットがそれまで存在していない場合、調整モジュールと移行リンクが向かうノードとの間に新たな仮想リンクが形成されるサブステップとを含む。
【００２５】
本発明は、単に一例として示される以下の記載の助けを借り、その一方で添付の図面を参照することによってよりよく理解されるであろう。
【図面の簡単な説明】
【００２６】
【図１】本発明の一実施形態によるデータ処理デバイスの全体の機能構造を表す概略図である。
【図２】本発明の一実施形態による複数のデータ処理操作に関する分散実行方法の連続するステップを示す図である。
【図３】複数の処理操作の特定の例を使用して、図２の方法における特定のステップの動作の詳細を示す図である。
【図４】複数の処理操作の特定の例を使用して、図２の方法における特定のステップの動作の詳細を示す図である。
【図５】本発明の一実施形態による、図１のデバイスにおける計算ノードの全体の機能構造を表す概略図である。
【発明を実施するための形態】
【００２７】
図１で表されるデジタルデータを処理するためのデバイス１０は、複数の処理操作を並行して行うために相互に接続された一体式のマイクロプロセッサを含めた、例えば電子チップ式システムのデータフロー処理モデルデバイスである。それは詳細にはホストプロセッサ１２と、このデバイス１０上でプログラムされた処理操作を分散実行するのに加担する複数のリソース１４から５２とを含む。
【００２８】
これらのリソースは、図１では機能的に表されている。それらは、デバイス上で実行可能な処理操作によって呼び出すことができるバッファメモリノードと計算ノードとを含む。この図面に示される簡素であるが非制限的な例において、デバイス１０では２つの処理操作が想定されており、そのデータ転送リンクは、２つの処理操作のうちの第１の操作に関しては指標「１」によって、あるいは２つの処理操作のうちの第２の操作に関しては指標「２」によって特定される値が付けられた有向マルチグラフによって表されている。第１の処理操作によって呼び出されるノードは、図１では垂直の縞模様を含む。第２の処理操作によって呼び出されるノードは、水平の縞模様を含む。その結果、両方の処理操作によって呼び出される多価ノードは、垂直と水平両方の縞模様を含む。
【００２９】
値付きの有向のマルチグラフは、第１の処理操作を表す第１の有向グラフと、第２の処理操作を表す第２の有向グラフとが結合した結果である。
【００３０】
第１のグラフは、入力バッファメモリノード１４を含み、次いで指標「１」によって表されるデータ転送リンクによって示される第１の処理操作の順に、計算ノード１６、計算ノード１８、計算ノード２０、バッファメモリノード２２、計算ノード２４、２つの計算ノード２６および２８、計算ノード３０、バッファメモリノード３２、計算ノード３４、計算ノード３６、計算ノード３８および出力バッファメモリノード４０を含む。第１の処理操作はしたがって、バッファメモリノード２２および３２によって構造上分解される。
【００３１】
第２のグラフは、入力バッファメモリノード４２を含み、次いで、指標「２」によって表されるデータ転送リンクによって示される第２の処理操作の順に、計算ノード１６、計算ノード４４、計算ノード２０、バッファメモリノード４６、計算ノード４８、２つの計算ノード２６および２８、計算ノード３０、バッファメモリノード５０、計算ノード３４、計算ノード３６、計算ノード３８および出力バッファメモリノード５２を含む。第２の処理操作はしたがって、バッファメモリノード４６および５０によって構造上分解される。
【００３２】
計算ノード１６、２０、２６、２８、３０、３４、３６および３８は、２つの処理操作に共通であり、したがって、これらのノードは多価である。
【００３３】
２つの処理操作が構造上分かれていることから、値付きの有向マルチグラフそれ自体が、その入力ノードおよび出力ノードがマルチグラフのバッファメモリノードであるチャンクと呼ばれる複数の値付きの有向サブマルチグラフに構造上分解される。第１チャンク５４は、ノード１４、１６、１８、２０、２２、４２、４４および４６を含み、そのうちのバッファメモリノード１４および４２が入力ノードを形成し、バッファメモリノード２２および４６が出力ノードを形成する。第２チャンク５６は、ノード２２、２４、２６、２８、３０、３２、４６、４８および５０を含み、そのうちのバッファメモリノード２２および４６が入力ノードを形成し、バッファメモリノード３２および５０が出力ノードを形成する。第３のチャンク５８は、ノード３２、３４、３６、３８、４０、５０および５２を含み、そのうちのバッファメモリノード３２および５０が入力ノードを形成し、バッファメモリノード４０および５２が出力ノードを形成する。
【００３４】
マルチグラフのチャンクへの分割は演繹的に定義されてよく、バッファメモリノードを統合する際、計算ノードを統合する際およびそのそれぞれの機能をデバイス１０に統合する際に実施することができる。それはまた、マルチグラフ内のバッファメモリノードの構造機構に基づいて、具体的にはホストプロセッサ１２によって自動的に実行されてよい。これは、バッファメモリノードの「依存コーン」が、この依存コーンの極値ノードと呼ばれる、このバッファメモリノードから別のバッファメモリノードへの同一の処理操作の経路上に位置する計算ノードのセットとして定義され、かつ２つのバッファメモリノード間の「干渉関係」が、これらのノードが共通の計算ノードを有する依存コーンの極値であるその時から２つのノード間に確立される関係として定義される場合、この干渉関係に対する同等の階級としてマルチグラフのチャンクを定義することができることを指している。ホストプロセッサ１２を適切にプログラミングすることによって自動のチャンクの決定を想定することができる。
【００３５】
「デッドロック」（２つの異なる計算ノードに対して同時に実行される２つのタスクがそれぞれ、他のノードから届くデータを待つときに生じるインターロックを指す）が生じることがないように、処理グラフ、およびしたがって所与のバッファメモリノードにわたってマルチグラフのルーピング（すなわち、有向リンクの閉鎖回路）が存在しないことが好ましいことがわかるであろう。
【００３６】
本発明によると、各チャンク５４、５６および５８に関して１つの調整モジュールが特定される。より具体的には、調整モジュールは、それが関連するチャンク内で実行されるように決められた処理操作の部分を、他のチャンク内で実行されるように決められた処理操作の部分から独立して同期させるように設計されている。処理操作が、連続するセッションに順次分割される際、調整モジュールは、それが関連するチャンク内で異なる処理操作のセッションを同期させるように設計されている。この調整モジュールは、それが関連するチャンクの外にあってもよいし、そのチャンクに属してもよい。
【００３７】
図３から図５を参照してその詳細が示される一つの好ましい、但し非限定的な実施形態において、各チャンクは、その計算ノードの１つから選択される調整モジュールを含む。したがって図１の例において、計算ノード１６、２６および３４を、チャンク５４、５６および５８のそれぞれの調整モジュールとなるように選択することができる。図３から図５を参照してその詳細が示される実施形態では、同様に各チャンクに関する調整モジュールの選択を自動的に行う方法が記載されている。このような自動的に選択する方法は、例えば、その連続するステップを行うためにプログラムコード指示を有するホストプロセッサ１２によって実施することができる。
【００３８】
デバイス１０は最終的に、各チャンクに関する調整モジュールを特定するための手段を含む。これらの手段は、ホストプロセッサ１２それ自体であってよく、これは調整モジュールの独自の識別子を監理する。この場合、処理操作を各チャンク内で同期させる方法を、例えば既知の通信プロトコルに従ってそれぞれ選択され特定された調整モジュールによって実施するコード指示を含むことができるのもホストプロセッサである。あるいは調整モジュールを特定する手段は、チャンク自体の中に明示的に（特定のマーカーを利用して）あるいは非明示的に（その構造を利用して）一体化されてよい。このような変形形態は、図３から図５を参照してその詳細が示される実施形態によって示される。
【００３９】
図２にその連続するステップが示される方法は、デバイス１０において実施される処理操作のマルチグラフを体系化し初期化する第１段階と、デバイス１０においてこのマルチグラフの処理操作を分散実行する第２段階とを含む。
【００４０】
第１の体系化し初期化する段階は、図１に示される例でのチャンク５４、５６および５８など複数のチャンクにマルチグラフを分割する第１ステップ１００を含む。先に述べたようにこの第１の分割ステップは、デバイス１０のホストプロセッサ１２によって自動的に行うことができる。このステップは、Ｎ個のチャンクを特定することによって終了する。
【００４１】
次いで、あらかじめ特定されたＮ個のチャンクにＮ個の選択ステップ１０２（１），…１０２（ｉ），．．．１０２（Ｎ）がそれぞれ適用される際、各チャンクに対して調整モジュールが選択される。先に述べたように、各チャンクに関して調整モジュールを自動的に選択するプロシージャは、具体的にはホストプロセッサ１２によって実施することができる。選択ステップ１０２（ｉ）のいずれかの特定の実施形態の詳細が、図３を参照して提供される。
【００４２】
最終的に第１の体系化し初期化するための段階は、必要ならば先に特定されたＮ個のチャンクに対してそれぞれ適用されるＮ個の初期化ステップ１０４（１），．．．１０４（ｉ），．．．１０４（Ｎ）を実行することによって完了する。これらの各ステップにおいて、所定の通信プロトコルに従って、実行されるように決められた処理セッションを同期させることができるように対応するチャンクおよびその調整モジュールが初期化される。この初期化は当然ながら、使用されるプロトコルに左右される。初期化の一例が、図４を参照して、その詳細が図５の助けを借りて示される通信プロトコルの文脈において示されている。この例において、チャンクを初期化することによってその調整モジュールを特定することが可能になる。
【００４３】
第１の体系化し初期化するための段階が終わると、デバイス１０は、デバイス１０において実施される処理操作を分散実行する第２段階を実施するための準備が整う。
【００４４】
この第２段階は、デバイス１０における少なくとも１つの処理操作の開始を待つステップ１０６を含む。その入力バッファメモリノードの１つによってひとたびデジタルデータが受信されると、処理操作の開始が呼び出される。その結果ステップ１０６は、処理マルチグラフの少なくとも１つの入力バッファメモリノードによってデジタルデータが受信されると、少なくとも１つの処理操作の開始を検知するものと見なすことができる。
【００４５】
この検知に続いて、デバイス１０のＮ個のチャンク内で複数の処理操作を正しく分散実行するために、所定の通信プロトコルに従って、Ｎ個の同期ステップ１０８（１），．．．１０８（ｉ）， ．．．１０８（Ｎ） が、各チャンクに対して互いに独立して行われる。この通信プロトコルは、既知の同期プロトコルの中から選択することができるが、図５を参照してその詳細が示されるものに従うのが恐らく有利である。
【００４６】
各処理操作は、マルチグラフの関連するチャンク内で実行しなければならない複数のセッションに順次さらに分割することができるため、１つのチャンク内での同期は、別々の処理操作からのセッションの実行の調整を含むことに留意されたい。これは、その実行シーケンスが予め決められているため、１つの所与の処理操作の２つのセッションを同期させる問題が生じないことを意味する。
【００４７】
実行される全ての処理操作の全てのセッションが全てのチャンクにおいて終了するとき、処理ステップ１１０が終了し、次いで例えば少なくとも１つの新たな処理操作の実行を待つために上流のステップ１０６に戻る。
【００４８】
それが何であれ所与のチャンクに関して調整モジュールを選択するステップ１０２（ｉ）のいずれかの詳細が、図３を参照して特定の選択実施形態に従って次に示され、これは自動的に行うことができる。この線図では、それが何であれ２つの処理操作Ｔ１およびＴ２に関する任意のマルチグラフの１つのチャンクが示されている。それは、純粋に例示的な非限定的な例として示され、詳細には図１のマルチグラフと特別な関連はない。
【００４９】
このチャンクにおいて、第１の処理操作Ｔ１によって呼び出されるノードは、垂直の縞模様を含み、第２の処理操作Ｔ２によって呼び出されるノードは、水平の縞模様を含む。その結果、２つの処理操作によって呼び出される多価ノードは、垂直と水平両方の縞模様を含む。明確にする目的で、図３では、図１に関して選択された図解の規則とは異なり、このチャンクに関する値付きの有向のデータ転送リンクの値は示されないが、リンクそれ自体は、それらが第１の処理操作に属するか第２の処理操作に属するかによってそれぞれ異なる矢印によって表されている。この特定の例において、問題のチャンクが５つの入力バッファメモリノードを含み、そのうちの３つが第１の処理操作Ｔ１に関連し、２つが第２の処理操作Ｔ２に関連しており、加えてそれは、３つの出力バッファメモリノードを含み、そのうちの２つが、第１の処理操作Ｔ１に関連し、１つが第２の処理操作Ｔ２に関連していることがわかるであろう。
【００５０】
第１の選択準備ステップ２００（ｉ）において、チャンクｉは、３つの別々のサブセットＥ１、Ｅ２およびＥ３にさらに分割される。チャンクの「ソース一価セット」と称される第１のサブセットＥ１は、このチャンクの全ての入力ノードと、多価ノードによってではなく入力ノードから（上述のリンクを介して）到達することができる他の全ての一価ノードとを含む。このチャンクの「シンク一価セット」と称される第２のサブセットＥ２は、このチャンクの全ての出力ノードと、多価ノードではなく、出力ノードに到達することができるその他の全ての一価ノードとを含む。最後にチャンクの「多価セット」と称される第３のサブセットＥ３は、Ｅ１にもＥ２にも属していないチャンク内の全てのノードを含む。セットＥ３は、具体的にはチャンク内の全ての多価ノードを含む。
【００５１】
それ自体が選択ステップである第２のステップ２０２（ｉ）において、多価セットＥ３の計算ノードから考察中のチャンクに関する調整モジュールが選択される。より正確には、多価セットＥ３の「ソース多価境界」Ｆが、ソース一価セットＥ１を形成する有向リンクの宛先であるＥ３のノードのセットとして定義される場合、調整モジュールの選択の判断基準は以下の通りであってよい。ソース多価境界Ｆの他のノードに対するほとんどの出力リンクを呈示するソース多価境界Ｆの計算ノードが調整モジュールとして選択される。図３の例では、ステップ２０２（ｉ）の終わりに黒色で示される計算ノードがそうである。補助的なまたは代替の判断基準として、ソース一価セットＥ１のノードから大半の入力リンクを受けるソース多価境界Ｆの計算ノードも同様に、調整モジュールとして選択することができる。
【００５２】
チャンクごとの１つの調整モジュールの選択をオペレータによって予め決めることも可能である。しかしながら先に記載したように、調整モジュールの選択の決定論的定義を使用して、マルチグラフをチャンクにさらに分割するという一般的な知識からステップ１０２（ｉ）のうちのいずれか１つをデバイス１０によって自動的に行うことができる。より正確にはステップ２００（ｉ）および２０２（ｉ）は、例えばホストプロセッサ１２によって行うことができ、これらのステップの結果（サブセットＥ１、Ｅ２、Ｅ３、Ｆおよび調整モジュールの特定）は次いでデバイス１０のメモリに記憶される。詳細には、まず第１に、具体的には異なる処理操作に関連する少なくとも２つの入力ノードから到達可能なノードを特定することによってこのチャンクの入力ノードの後にくるものを調べることからチャンクの多価計算ノードを探し出し、次にチャンクの一価ノードそれぞれに関して、それらが多価ノードを含むかどうかを判断するためにそれより前にあるものと後ろにあるもので構成されたグラフを調べることによって、アルゴリズム的観点からステップ２００（ｉ）を行うことができる。
【００５３】
それが何であれ所与のチャンクｉの初期化に関するステップ１０４（ｉ）のいずれか１つの詳細およびその調整モジュールの詳細が、図４を参照して自動的に行うことができる特定の初期化の実施形態に従って次に示される。簡素化のために図４では、図３でのようにこのチャンクに関する値付きの有向のデータ転送リンクの値は示されていないが、リンク自体は、それらが第１の処理操作に属するか第２の処理操作に属するかによってそれぞれ異なる矢印によって表されている。加えて図４に示されるチャンクは、図３に示されるものと同様である。
【００５４】
ステップ１０２（ｉ）の終わりでの考察中のチャンクの有向リンクは、実在の一次リンクとして定義されることにあらかじめ留意されたい。
【００５５】
用語「実リンク」とは、２つのノード間で考察中の処理操作に対して使用可能なデータの転送を具現化する有向リンクを指す。反対にリンクが信号データ（例えばセッション開始情報）の転送だけに使用される場合、このリンクは「仮想」であると言える。実リンクは、図４では実線の矢印で表され、仮想リンクは破線の矢印で表されている。
【００５６】
用語「一次リンク」は、それが向かう１つのノードで特定の処理セッションの実行を開始するおよび／またはそれを伝播させる目的で信号メッセージを送信することによって確立されるべき有向リンクを指す。これとは反対に、特定の処理セッションの実行を開始するおよび／またはそれを伝播させる目的で信号メッセージを伝送することによって必ずしもリンクが確立される必要はないが、使用可能なデータの可能な伝送は別として、それが単にこのリンクのソースノードの状態に関する情報を提供する機能を満たすように働くとき、リンクは「二次」リンクと呼ばれる。一次リンクは図４では太いラインの矢印によって表され、二次リンクは細いラインの矢印によって表されている。
【００５７】
第１ステップ３００（ｉ）において、選択された調整モジュール以外のソース多価境界Ｆの１つのノードに向かう有向の実リンクそれぞれに関して、
−このリンクは、二次リンク（細い実線）として再定義され、
−二次リンクとして再定義されたリンクの始まりとなるノ−ドと調整モジュールとの間に、同一の処理操作に関して１つの一次実リンク（太い実線）または一次実リンクのセットがそれまでに存在していない場合、二次リンクとして再定義されたリンクの始まりとなるノ−ドと調整モジュールとの間に新たな一次仮想リンク（太い破線）が形成され、
−調整モジュールと二次リンクとして再定義されたリンクが向かうノードとの間に同一の処理操作に関して１つの一次実リンク（太い実線）または一次リンクのセットがそれまでに存在していない場合、調整モジュールと二次リンクとして再定義されたリンクに向かうノ−ドとの間に新たな一次仮想リンク（太い破線）が形成される。
【００５８】
これらの新たに形成された仮想一次リンクはしたがって、考察中のチャンク内に含まれる、構造的であり非明示的な調整モジュールの特定手段６０を形成する。詳細には、調整モジュールに向かう新たに形成された一次仮想リンクによって、考察中のチャンクの処理操作の同期およびより具体的にはセッションの同期が実際に行われる必要があるまさにそのセットである多価セットＥ３内の全ての入力リンクを調整モジュールが認識することが可能になる。したがってこの仮想一次リンクによって、調整モジュールが正しい同期決定をすることが可能になる。さらに調整モジュール以外のソース多価境界Ｆの１つのノードに向かう各リンクを二次リンクとして再定義することによって、選択された調整モジュール以外の計算ノードが処理セッションを開始しないようにする。
【００５９】
第２ステップ３０２（ｉ）において、ここではＴ１およびＴ２であるチャンクの各処理操作に関して、多価セットＥ３内で、これらの全てのノードに信号メッセージを送信することを可能にするこの処理操作に関連するノードに関して最小のスパニングツリーが決定される。この最小のスパニングツリーの中のリンクは一次のままであり、多価セットＥ３内の考察中の処理に関連する他のリンクは、二次リンク（細線）として再定義される。同様にこのステップにおいて、チャンク内に少なくとも１つの一価ノードのサイクルが存在する場合、このサイクルを閉鎖する一時リンクは、二次リンクとして再定義される。
【００６０】
したがって、処理操作に関連する信号メッセージの伝播においていかなるサイクルも回避される。
【００６１】
最終的に第３のステップ３０４（ｉ）において、先のステップで確定された最小のスパニングツリーの目的地（すなわちリーフ）に位置するノードは、必要であれば新たな仮想一次リンク（太い破線）を追加することによって共に接続される。より具体的には最小のスパニングツリーの中のリーフの１つが選択され、全ての他のリーフが、１つまたは複数の一次リンク（太線）を介してこのリーフに直接的または間接的に接続されていることが確認される。そうでない場合、必要とされる数の仮想一次リンクが追加され、必要とされる数の実在の二次リンクが実在の一次リンクへと変換され、図４に示される例では、１つの一次仮想リンクが追加され、１つの実在の二次リンクが実在の一次リンクへと変換されている。
【００６２】
同一のステップにおいて、選択されたリーフを考察中のチャンクに関する調整モジュールに接続するために二次仮想リンクが追加される。処理操作ごとに１つの二次仮想リンクが追加される。これらの二次仮想リンクによって、処理操作が使用できるデータが欠如していることによって処理セッションがロックされるリスクを負わずに、処理セッションを考察中のチャンク内の各計算ノードに対していつ支障なく終わらせることできるかを調整モジュールに知らせることが可能になる。
【００６３】
また先に記載したチャンクの初期化をオペレータによって事前に決めることもできる。しかしながら先に記載したように、行うべきステップ３００（ｉ）、３０２（ｉ）および３０４（ｉ）の決定論的定義を使用して、チャンクに分割されるマルチグラフの一般的な知識からステップ１０４（ｉ）のいずれか１つをデバイス１０によって自動的に行うことができる。より具体的には、これらのステップは、例えばホストプロセッサ１２によって行われ、次いでこれらのステップの結果（新たに形成された仮想リンク、改変された実リンク）をデバイス１０のメモリに記憶することができる。
【００６４】
それが何であれ所与のチャンクｉにおける同期ステップ１０８（ｉ）のいずれか１つの詳細が、図５を参照して示されており、この図は、計算ノード、および詳細には調整モジュールの全体的な機能構造を概略的に表している。考察中のチャンクのノードの機能構造に対して所定の通信プロトコルを適用することによって同期が実行される。
【００６５】
本発明の好ましい実施形態において、想定される通信プロトコルは、このノードに対してひとたび処理セッションが開始されると、セッションを開始するための情報メッセージが考察中のチャンクの計算ノードのいずれか１つによって送信されることを含む。この情報メッセージは、例えば実際にセッション開始情報メッセージを特定する第１フィールドと、処理操作を特定する第２フィールドと、受信側のノードにこのメッセージを送信するノードを特定する第３のフィールドと、このメッセージに関する宛先ノードを特定する、あるいは同意義となる方法でこのメッセージがその宛先に到達するためにたどらなければならない経路を特定する第４のフィールドとを含む。
【００６６】
この好ましい実施形態において、考察中のチャンク内の各計算ノード６２は、データ（使用可能データおよび／または情報メッセージ）を伝送するための少なくとも１つの入力／出力インターフェース６４と、処理セッションを実行するための計算機６６と、コンテキストを記憶するためのローカルメモリ６８と、計算機にコンテキストをロードするためのローダー７０とを含む。コンテキストとは、これにより計算ノードがタスクを実行するのを可能にする、すなわち特定の処理セッションの実行に局所的に加担することを可能にするマイクロプログラムである。ローカルメモリ６８は、処理ノード６２が多価であるとき、複数のコンテキストを記憶することができる。
さらに各計算ノード６２は、所定のパラメータのテーブルに関する記憶手段（すなわちローカルメモリ）を含む。一定のこれらのテーブルは静的であり、いわゆる構成テーブルと呼ばれ、それらが含むデータは、所与の処理操作に関するしかじかの動作を行う前に、ノード６２が送受信する必要がある情報メッセージを明確にするのに使用される。他のテーブルは動的であり、いわゆる作用テーブルと呼ばれ、それらが含みかつ動的に変化するデータは、所与の処理操作に関していかなる時もノード６２が送受信する情報メッセージを特定するのに使用される。想定される実施形態において、計算ノード６２は処理操作ごとに６つのテーブルのセットを含む。実際にはそれは、それが行うことが可能なそこに存在する処理操作と同じ数だけこのようなテーブルのセットを含むが、図５には単に簡素化する目的で１つのテーブルのセットが示されている。
【００６７】
それが何であれいかなる処理操作Ｔに関しても、各ビットが計算ノード６２が属するチャンクの潜在的ソースノードに対応している第１のバイナリ構成テーブルＴＡＢ１は、「１」のビットを利用して、計算ノード６２それ自体がこのセッションを開始することができるようになる前に、計算ノード６２が処理操作に関するセッション開始情報メッセージを受信する必要があるノードを特定する。図５に示される例では、Ｎ０からＮ７まで、すなわちテーブルＴＡＢ１の右端の１番目の重みの軽いビットからテーブルＴＡＢ１の左端の８番目の重いビットまで計算ノード６２の潜在的ソースノードが特定され、計算ノード６２それ自体がこのセッションを開始することができるようになる前に、計算ノード６２が処理操作Ｔに関するセッション開始情報を受信する必要があるノードは、Ｎ０およびＮ１である。上述した「一次リンク」の定義から、第１バイナリ構成テーブルＴＡＢ１で「１」のビットは、必然的に計算ノード６２への一次リンクのソースノードに関連する必要があることに留意されたい。任意選択で、メッセージおよび／またはデータの潜在的な伝送器であるノードは、重みの軽い第１ｎビット（ここではｎ＝４）は使用可能データを送信するのに適した（実リンク）ノードに関連し、他の重いビットは使用可能データを送信するのに適さない（仮想信号リンク）ノードに関連するように配列される。
【００６８】
同一の処理操作Ｔに関して、ビットがテーブルＴＡＢ１と同様のノードに対応する第２バイナリ構成テーブルＴＡＢ２が、「１」のビットを利用して、計算ノード６２自体がこのセッションに関するそのタスクを実行する際、進行中であるセッションが終了すると判断することができるようになる前に、計算ノード６２が処理操作Ｔに関するセッション開始情報メッセージを受信する必要があるノードを特定する。図５に示される例では、テーブルＴＡＢ２で「１」のビットは、ノードＮ０、Ｎ１、Ｎ４およびＮ５に相当する。第１バイナリ構成テーブルＴＡＢ１で１であるビットは、第２バイナリ構成テーブルＴＡＢ２でも「１」であることに留意されたい。しかしながら、テーブルＴＡＢ２は、計算ノード６２に対する二次リンクのためのソースノードに関連し得る他の「１」のビットも含んでいる。
【００６９】
同様の処理操作Ｔに関して、第３のバイナリ構成テーブルＴＡＢ３は、計算ノード６２が実際にこのセッションを開始した後、計算ノード６２が処理操作Ｔに関するセッション開始情報メッセージを送信する必要があるノードを特定する。このテーブルにおける各ラインは、第３コラムにおける潜在的宛先ノードを特定する。第１コラムは、「１」のビットを使用して、処理操作Ｔに関してどのノードが実際にこれらのメッセージの宛先ノードとならなければならないかを示す。第２コラムは、第３コラムで特定されたノードのテーブルＴＡＢ１およびＴＡＢ２におけるノード６２の識別子を提供する。第３コラムは、メッセージの宛先ノードを直接特定する、あるいは同意義となるようにその宛先に到達するためにメッセージがたどらなければならない経路を特定する。
【００７０】
さらに処理操作Ｔに関して、ビットがＴＡＢ１およびＴＡＢ２と同様のノードに対応する第１バイナリ作用テーブルＴＡＢ４が、「１」のビットを利用して、計算ノード６２が進行中の処理操作Ｔのセッションに関するセッション開始情報メッセージを受信したノードを特定する。初期設定において、このテーブル内の全てのビットは「０」である。ビットがＴＡＢ４の場合と同様のノードに相当する第２バイナリ作用テーブルＴＡＢ５が、「１」のビットを利用して、計算ノード６２が処理操作Ｔのその後に続くセッションに関するセッション開始情報メッセージを受信したノードを特定する。初期設定において、このテーブル内の全てのビットも同様に「０」である。このテーブルは、バッファメモリ機能を満たしている。
【００７１】
最終的に処理操作Ｔに関して、ビットが第３の構成テーブルＴＡＢ３の第１コラムのビットに対応する第３のバイナリ作用テーブルＴＡＢ６が、「１」のビットを利用して、計算ノード６２が進行中のセッションに関するセッション開始情報メッセージを送信したノードを特定する。初期設定において、このテーブル内のビットも同様に「０」に等しい。
【００７２】
同期ステップ１０８（ｉ）の開始時に、各処理操作に関して、計算ノード６２に対応する作用テーブルＴＡＢ４、ＴＡＢ５およびＴＡＢ６の全てのビットは、「０」である。
【００７３】
少なくとも１つの処理操作を実行する際、計算ノード６２は、予めおよび／またはステップ３００（ｉ）、３０２（ｉ）および３０４（ｉ）で確立された一次と二次両方の実リンクまたは仮想リンクを介して宛先としてそれが接続されたノードから届くセッション開始情報メッセージを受信する。
【００７４】
計算ノード６２が処理操作Ｔに関するセッション開始情報メッセージを受信する際、このメッセージが、現在のセッションと称されるこの処理操作の実行を待つセッションに関連する場合、テーブルＴＡＢ４の送信側のノードに相当するビットが「１」に変わる。それが次のセッションに関連する場合、テーブルＴＡＢ５の送信側のノードに相当するビットが「１」に変わる。デフォルトによって、情報メッセージは、テーブルＴＡＢ４の対応するビットがすでに「１」でない限り（その場合、それは次のセッションに関連するものとみなされる）、現在のセッションに関連するものとみなされる。
【００７５】
第１の作用テーブルＴＡＢ４が第１の構成テーブルＴＡＢ１を含まない限り、換言するとＴＡＢ１で「１」である全てのビットがＴＡＢ４の「１」と等しくならない限りは、現在のセッションはノード６２に対して開始されない。一方この条件が満たされると、ノード６２は、第３の構成テーブルＴＡＢ３で特定された宛先ノードにそれが現在のセッションを開始していることを知らせるために、それらにセッション開始情報メッセージを送信する。このような情報メッセージがノード６２によって送信される度に、第３の作用テーブルＴＡＢ６において対応するビットが「１」に変わる。
【００７６】
第３の作用テーブルＴＡＢ６が、第３の構成テーブルＴＡＢ３の第１コラムに等しいとき、現在のセッションが計算ノード６２に対して実際に開始される。従来式であり故にその詳細が示されないデータ交換プロトコルに従って、ノード６２は、実リンクを利用して宛先としてそれが接続されるノードから計算データを受信する。具体的には、このデータ交換プロトコルは有利には、宛先ノードに使用可能なデータを受信するのに十分なスペースがある場合、送信側のノードによって処理操作に使用できるデータのみが伝送される。これは、宛先ノードによって送信されたパケットのクレジットを受け取って初めてデータパケットを送信することによって実現することができる。
【００７７】
処理操作Ｔが実行される間、この処理操作に関連する情報メッセージは引き続き受信されてよい。先に示したように、これが対応するビットがＴＡＢ４において既に「１」であるノードに関連するメッセージを含む場合、次のセッションに関連するテーブルＴＡＢ５が次いで更新される。そうでなければ、デフォルトによってＴＡＢ４が更新される。当然ながら、処理操作Ｔを実行する際、他の処理操作に関連する情報メッセージを受信することもでき、その際他のテーブルのセットが更新される。
【００７８】
第１の作用テーブルＴＡＢ４が第２の構成テーブルＴＡＢ２を含むとき、換言するとＴＡＢ２で「１」である全てのビットがＴＡＢ４での「１」に等しい場合、現在のセッションは、考察中のチャンク内で完全に完了することが可能であるとみなされ、ノード６２それ自体が現在のセッションに関するそのタスクを完了するとすぐに、ノード６２は、それが同一の処理操作の次に続くセッションにせよあるいは別の処理操作のセッションにせよ、別のセッションを実行するために利用可能であるとみなされる。
【００７９】
したがって、第１の作用テーブルＴＡＢ４が第２の構成テーブルＴＡＢ２を含み、計算ノード６２による現在のセッションの実行が完了する際、計算ノード６２は、新たなセッションを開始するためにそれを選択する準備が整う。次いでテーブルＴＡＢ４のコンテンツがテーブルＴＡＢ５のものと置換えられ、作用テーブルＴＡＢ５およびＴＡＢ６のコンテンツが「０」に初期化される。ノード６２は次いで、進行中の処理操作から最初の処理操作を選択することができ、そのために第１の処理テーブルＴＡＢ４は、構成テーブルＴＡＢ２を含む。
【００８０】
本発明の上述の実施形態では、各チャンクがステップ３００（ｉ）、３０２（ｉ）および３０４（ｉ）に従って初期化され、全ての計算ノードが、図５を参照してその詳細が示される方式で作用し、調整ノードとして選択された計算ノードが、他のものと作用が異ならないことが１つの利点である。それは、チャンクのマルチグラフ内に特定の仮想リンク、すなわち
−チャンク多価セットに進入する全ての入力リンクを調整モジュールに向け直す一次仮想リンクと、
−各処理操作に対してチャンクの多価セットに関する最小のスパニングツリーの選択リーフからやって来る、調整モジュールへの二次仮想リンクとが形成されることから、その一般的なチャンク同期機能を満たすだけである。
【００８１】
別の利点は、調整モジュールからのおよび調整モジュールに向かうこれらの仮想リンクを加えることにより、この処理操作のセッションを選択する前に、処理操作に関して使用可能な全てのデータが、実際に全ての入力バッファメモリノードの中に存在していることの確認がなされることが保証されるという点である。あるいは使用可能データの所定の部分のみが入力バッファメモリ内に存在することが要求される場合もあり（例えば最小の３２ビット）、それは全て、バッファメモリノードからセッション開始情報メッセージを送信するために選択されるルールに左右される。同様に、この処理操作のセッションを選択する前に、全ての出力バッファメモリノードが、処理操作によって処理されたデータまたは少なくともデータの所定の一部を受信することができることを確認することができる。
【００８２】
この実施の例において、データの伝送の後に、行われるセッションの同期に有効な情報メッセージが続いて伝送され、考察中のチャンク内でそれ自体が徐々に伝播することにも留意されたい。
【００８３】
上記に記載したようなデジタルデータを処理するためのデバイスによって、従来の中央集中型の同期化デバイスに対してリソースのロードを向上させることが可能になることが明らかである。
【００８４】
加えて上記に記載した特定の実装により、処理マルチグラフ内の各チャンクに関する調整モジュールを簡単にかつ非明示的に特定することが可能になる。
【００８５】
さらに、調整モジュールはそれが関連するチャンクの計算ノードから選択され、かつこの調整モジュールへおよび／またはこの調整モジュールからセッション開始情報メッセージの仮想伝送リンクが形成されることにより調整モジュールはその特定の機能を満たすのみであるため、調整モジュールの同期機能は特定のリソースの追加を必要としない。同様の理由で、チャンク内のいかなるノードも、演繹的この調整機能を満たすことが可能である。
【００８６】
本発明は、上記に記載の実施形態に限定されないことにも留意されたい。
【００８７】
既に述べたように、チャンクの調整モジュールは、選択的にチャンクの外にあってよい、あるいは調整機能のみを満たすことが可能である。さらに上記に記載した通信プロトコルが有利であるが、それだけが想定可能なものではない。詳細には選択的に一次リンクと二次リンクの間には宛先が形成されず、一次情報メッセージと二次情報メッセージの間に宛先が形成される場合もある。この場合、各計算ノードの機能構造が変更される。
【００８８】
一般的に、当業者は、まさにここで公開された知識に照らして、上記に記載した実施形態に対して様々な修正を行うことができることを理解するであろう。以下に続くクレームにおいて使用される用語は、クレームを本記載に提示される実施形態に限定するものとみなすべきではなく、クレームは、まさにここで公開された知識を実現するために当業者それぞれの一般的な理解を適用することによって、彼らの能力の範囲内にある各自の系統的論述および予測の結果としてクレームが網羅することを目的とする全ての均等物を含むものと解釈されるべきである。
【図１】
0005450297.tif 000002
【図２】
0005450297.tif 000003
【図３】
0005450297.tif 000004
【図４】
0005450297.tif 000005
【図５】
0005450297.tif 000006