(57)【特許請求の範囲】
【請求項１】
ストリーム処理コンピュータ・アーキテクチャを実装する方法であって、
プロセッサのスーパーノード・クラスタを形成するステップであって、前記プロセッサのそれぞれは少なくとも１つの物理計算ノードを含むものである、前記スーパーノード・クラスタを形成するステップと、
ローカル相互接続手段を介して、前記スーパーノード・クラスタ内の前記プロセッサの各々を通信可能に結合するステップと、
一つ又は複数の光外部リンクを介して、前記スーパーノード・クラスタを少なくとも一つの光回路スイッチに通信可能に結合するステップであって、前記光回路スイッチは、他のスーパーノード・クラスタからの一つ又は複数の光外部リンクを介して、それぞれ少なくとも１つ他の物理計算ノードを含むプロセッサの少なくとも一つの他のスーパーノード・クラスタに通信可能に結合される、前記結合するステップと、
を含むストリーム・コンピュータ処理システムを形成するステップと、
カーネル及びデータ・ストリームを含むストリーム計算グラフであって、前記カーネルは、対応するカーネルへの入力である一つ又は複数のデータ・ストリームについての計算を行うソフトウエア・コード要素を表す、前記ストリーム計算グラフを生成するステップと、
前記ストリーム計算グラフを前記ストリーム・コンピュータ処理システムにマッピングするステップであって、
前記カーネルを前記スーパーノード・クラスタに、及び各々の前記スーパーノード・クラスタのそれぞれの物理計算ノードに割り当てるステップと、
それぞれの前記データ・ストリームが、同じスーパーノード・クラスタ内の物理計算ノード間にあるとき、前記カーネル間のデータ・ストリーム・トラフィックを前記ローカル相互接続手段に割り当てるステップと、
それぞれの前記データ・ストリームが、異なるスーパーノード・クラスタ内の物理計算ノード間にあるとき、前記カーネル間のデータ・ストリーム・トラフィックを前記光外部リンクに割り当てるステップと、
前記光外部リンクを介して、前記割り当てに対応する前記スーパーノード・クラスタ間に接続性をもたらすように、前記光回路スイッチを構成するステップと、
を含む、前記マッピングするステップと、
前記ストリーム計算グラフに従って前記ストリーム・コンピュータ処理システム上の動作を実行するステップと、
を含む方法。
【請求項２】
前記光回路スイッチを構成するステップは、前記ストリーム計算グラフに対してなされた変更を反映するように、前記光回路スイッチの前記接続性を動的に切り替えるステップを含む、請求項１に記載の方法。
【請求項３】
前記ストリーム計算グラフに対する変更は負荷均衡化作業を反映する、請求項２に記載の方法。
【請求項４】
スーパーノード・クラスタ内の個々のデータ・ストリームは、前記スーパーノード・クラスタの対応するローカル相互接続手段により管理される、請求項１に記載の方法。
【請求項５】
前記ローカル相互接続手段は、
直接接続と、
キャッシュ・コヒーレント対称マルチプロセッサ（ＳＭＰ）ファブリックを介するメモリを通してと、
スイッチと、
のうちの少なくとも一つにより実装される、請求項４に記載の方法。
【請求項６】
前記物理計算ノードはシングルプロセッサである、請求項１に記載の方法。
【請求項７】
前記物理計算ノードはマルチプロセッサである、請求項１に記載の方法。
【請求項８】
前記ストリーム計算グラフは、２分木トポロジーを用いて生成される、請求項１に記載の方法。
【請求項９】
異なるスーパーノード・クラスタの間にあるデータ・ストリームに関する値が閾値に達しない場合には、当該データ・ストリームについては、光回路スイッチを使用することに代えて、パケット切り替えネットワークを使用するステップを更に含む、請求項１に記載の方法。
【請求項１０】
ストリーム処理コンピュータ・アーキテクチャを実装するためのシステムであって、
プロセッサのスーパーノード・クラスタを形成することであって、前記プロセッサのそれぞれは少なくとも１つの物理計算ノードを含むものである、前記スーパーノード・クラスタを形成することと、
ローカル相互接続手段を介して前記スーパーノード・クラスタ内のプロセッサの各々を通信可能に結合することと、
一つ又は複数の光外部リンクを介して、前記スーパーノード・クラスタを少なくとも１つの光回路スイッチに通信可能に結合することであって、前記光回路スイッチは、他のスーパーノード・クラスタからの１つ又は複数の光外部リンクを介して、それぞれ少なくとも１つの他の物理計算ノードを含むプロセッサの少なくとも１つの他のスーパーノード・クラスタに通信可能に結合される、前記結合することと、
によって作成されるストリーム・コンピュータ処理システムと、
カーネル及びデータ・ストリームを含むストリーム計算グラフであって、前記カーネルは、対応するカーネルへの入力である一つ又は複数のデータ・ストリームについての計算を実行するソフトウエア・コード要素を表す、前記ストリーム計算グラフと、
を含み、
前記ストリーム計算グラフは前記ストリーム・コンピュータ処理システムにマッピングされ、
前記マッピングは、
前記カーネルを前記スーパーノード・クラスタに、及び、各々の前記スーパーノード・クラスタのそれぞれの物理計算ノードに割り当てることと、
前記それぞれのデータ・ストリームが、同じスーパーノード・クラスタ内の物理計算ノード間にあるとき、前記カーネル間のデータ・ストリーム・トラフィックを前記ローカル相互接続手段に割り当てることと、
前記それぞれのデータ・ストリームが、異なるスーパーノード・クラスタ内の物理計算ノード間にあるとき、前記カーネル間のデータ・ストリーム・トラフィックを前記光外部リンクに割り当てることと、
前記光外部リンクを介して、前記割り当てに対応するスーパーノード・クラスタ間の接続性をもたらすように前記光回路スイッチを構成することと、
を含み、
前記ストリーム・コンピュータ処理システム上の動作は、前記ストリーム計算グラフに従って実行される、
前記システム。
【請求項１１】
前記光回路スイッチを構成することは、前記ストリーム計算グラフに対してなされた変更を反映するように、前記光回路スイッチの前記接続性を動的に切り替えることを含む、請求項１０に記載のシステム。
【請求項１２】
前記ストリーム計算グラフに対する変更は負荷均衡化作業を反映する、請求項１１に記載のシステム。
【請求項１３】
スーパーノード・クラスタ内の個々のデータ・ストリームは、前記スーパーノード・クラスタの対応するローカル相互接続手段により管理される、請求項１０に記載のシステム。
【請求項１４】
前記ローカル相互接続手段は、
直接接続と、
キャッシュ・コヒーレント対称マルチプロセッサ（ＳＭＰ）ファブリックを介するメモリを通してと、
スイッチと、
のうちの少なくとも一つにより実装される、請求項１３に記載のシステム。
【請求項１５】
前記物理計算ノードはシングルプロセッサである、請求項１０に記載のシステム。
【請求項１６】
前記物理計算ノードはマルチプロセッサである、請求項１０に記載のシステム。
【請求項１７】
前記ストリーム計算グラフは、２分木トポロジーを用いて生成される、請求項１０に記載のシステム。
【請求項１８】
パケット切り替えネットワークを更に含み、異なるスーパーノード・クラスタの間にあるデータ・ストリームに関する値が閾値に達しない場合には、当該データ・ストリームについては、光回路スイッチを使用することに代えて、パケット切り替えネットワークを使用するものである、請求項１０に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はデータ処理システムに関し、より具体的にはストリーム処理コンピュータ・アーキテクチャを実装する方法及びシステムに関する。
【背景技術】
【０００２】
コンピュータ・システムの性能に対する通信の影響は、マクロ・レベル（例えば、ブレード・サーバ及びコンピュータのクラスタ）でも、ミクロ・レベル（例えば、多数のコアを有する単一のプロセッサ・チップ）でも増大し続けている。計算に対する従来の手法は、キャシュメモリの階層を介してメインメモリへのアクセス時間を減らすことに依存するものであり、収穫逓減点に到達しつつある。これは部分的に、処理コアの速度に対するＩ／Ｏデータ伝送の増大する待ち時間、並びに、キャシュメモリ及びグローバル通信線によって要求されるオンチップ電力損失の増加部分（制限される）のために真実である。その一方で、オンチップ電力損失の厳しい制約は多くの主要な半導体企業をマルチ・コア又はチップ・マルチプロセッサ（ＣＭＰ）アーキテクチャに移動させている。ＣＭＰの出現は、今度は、２つの重要な領域における通信インフラに更なる課題を課している。特に、ＣＭＰ内の処理コア数の増大がチップ内通信及びチップ間通信の両方に対する帯域幅要件を激化させている。更に、ＣＭＰアーキテクチャは、従来のシングルコア・プロセッサ・チップに比べて、プログラミングの複雑さ及び最終的生産性を非常に増加させる。
【０００３】
ＣＭＰアーキテクチャ及びソフトウエア管理のキャッシュメモリ編成に基づくシステムに対する代替的計算モデル手法として、ストリーム処理法が最近出現した。多種類の重要なアプリケーション、例えば、ディジタル信号処理及びマルチメディア・アプリケーションは、データベースにおいて典型的な複雑なデータ記録に対するよりランダム化されたアクセスとは対照的に、並列に処理することができる規則的なデータ構造体の長いシーケンスに対するかなり規則的なアクセスを示す。これらのアプリケーションに対して、ストリーム処理と、例えばｎＶｉｄｉａ（登録商標）及びＡＭＤ／ＡＴＩグラフィック処理ユニット（ＧＰＵ）、又はＩＢＭ（登録商標）のセル・ブロードバンド・エンジンなどの特殊用途プロセッサとの組合せが、汎用ＣＭＰアーキテクチャに適用される従来の計算パラダイムよりも高い性能と低電力消費を提供する可能性を有する。
【０００４】
ストリーム計算グラフの例を図１に示す。グラフ１００はカーネル（１０２Ａ，１０２Ｂ，及び１０２Ｃ）と呼ばれる計算ノードから構成され、カーネルは一つのカーネルから別のカーネルへ移動するデータ・ストリームを表すエッジ１０４Ａ／１０４Ｂによって接続される。カーネルはデータ・ストリームについての計算を行うソフトウエア・コード要素を参照する。図１のグラフ１００において、これらのデータ・ストリームは単方向性である。即ち、データは、矢印で示すように図の左側から右側に移動する（流れる）。カーネルは次の３つの型、ソース１０２Ａ（計算グラフへの入力として生成されるデータ・ストリームの源を表す）、シンク１０２Ｂ（一つのストリーム又は複数のストリームの形状をもたらす終点を表す）、及び正規のカーネル１０２Ｃのうちの一つであり得る。カーネル（１０２Ａ−１０２Ｃ）は一つ又は複数の入力ストリーム１０４Ａを有することができ、その特定の計算の結果として一つ又は複数の出力ストリーム１０４Ｂを生成することができる。
【０００５】
典型的にはストリーム計算グラフ（例えばグラフ１００）は、コンピュータ処理問題（例えば、いくつかのイベントの検出、又は入力データ・ストリーム間のパターン及び複雑な関係−株の金融取引、感覚データの相関など）に対する解を表す。グラフは、データ・ストリームが計算カーネルで処理されている間存続し、これは通常非常に長い時間（数時間若しくはそれ以上、又は無期限）となる。したがって、このグラフのトポロジーは固定されていると考えられる。
【０００６】
そのようなストリーム計算グラフを取り扱う際の一つの課題は、計算ノード（例えばカーネル１０２Ａ−１０２Ｃ）を、コンピュータ処理システムの物理計算ノードに割り当てることができるようなグループにどのようにグループ分けするかを決定することである。そのようなグループ分け（スケジューリング、埋め込みとしても知られる、又はグラフ理論において、グラフ縮約として知られるグラフ理論的変換）を行うための多くの可能な方法がある。図１に示すように、影付きのグループ（１１０Ａ−１１０Ｃ）は、一つのグループ（例えばグループ１１８Ｂ）に割り当てられたカーネルが、一つの物理計算ノードの内部又は高速ローカル通信ネットワークにより又はそれを用いて密結合されたノードのクラスタの内部にあることになるようなカーネルのグループ分けを表す。したがって、カーネルの一つのそのようなグループから別のグループへ通過する全体の集合ストリームをグループ間の一つの接続と見なすことができる。グラフ理論の用語では、正規の計算ノード（カーネル）がその内部に折り畳まれたスーパーノードと見なすことができる。この種のグループ分けをストリーム計算グラフ内のすべての計算ノードに対して行うことができる。ストリーム計算グラフのカーネル間のエッジで表されるストリームは、同様に、スーパーノード間を通過する全データ・ストリームの和を表すスーパーエッジ内に折り畳むことができる。
【０００７】
一例として、図１に示すように、スーパーノード１１０Ｃ及び１１０Ｂは、スーパーノード１１０Ｂと１１０Ｃの間を（左から右に）通過する３つのストリームを共有する。それらをここではスーパーノード１１０Ｂと１１０Ｃの間を接続する一つのストリームと見なすことができる。実際には、元のデータ・ストリームがストリーム計算システムの物理通信ファブリックにより集められ、その結果スーパーノード１１０Ｂにおける進入点がカーネルの一グループ（例えばスーパーノード１１０Ｂ内のカーネル）からの３つのストリームを多重化して一つのストリームにすることになり、他方の末端でカーネルのグループ（スーパーノード１１０Ｃ内のカーネル）がこれら３つのストリームを逆多重化して元に戻し、それらを適切なカーネルにローカルに接続して、一つの物理計算ノード又はそのようなノードのクラスタ内にマッピングされるようにすることになる。
【０００８】
このストリーム処理パラダイムを、財務、データ・マイニング、及び計算生物学などの種々の分野における特定の大規模アプリケーションへ拡張する関心が高まっている。この拡張には単一のＧＰＵ類似のプロセッサ上での単一のストリーム・アプリケーションの実行以上のことを行う必要があるが、その代わりに、多くのプロッセサが高速相互接続ネットワークで相互接続される大きな拡張可能なストリーム処理システム（ＳＰＳ）を構築することを含む。しかしながら、大きな拡張可能なストリーム処理システムを構築することは種々の障害、例えば、伝送帯域幅の増大の問題、並びにメモリ内の大きなデータセットへの処理ノードからのアクセス時間の増加等に遭遇する。
【発明の概要】
【発明が解決しようとする課題】
【０００９】
したがって、上記の障害を克服する改良されたストリーム処理アーキテクチャを提供することが望まれる。
【課題を解決するための手段】
【００１０】
本発明の一実施形態によれば、ストリーム処理コンピュータ・アーキテクチャを実装する方法は、ストリーム・コンピュータ処理（ＳＣＰ）システムを作成することを含む。ＳＣＰシステムは、スーパーノード・クラスタ内の物理計算ノードを表すプロセッサのスーパーノード・クラスタを形成し、ローカル相互接続手段を介してスーパーノード・クラスタ内のプロセッサの各々を通信可能に結合し、そして多重光外部リンクを介してスーパーノード・クラスタを光回路スイッチ（ＯＣＳ）に通信可能に結合することによって作成する。ＯＣＳは、他のスーパーノード・クラスタから光回路スイッチへの他の多重外部リンクを介して他の物理計算ノードを表すプロセッサを含む他のスーパーノード・クラスタに、通信可能に結合する。本方法はまた、カーネル及びデータ・ストリームを含むストリーム計算グラフを生成することを含む。本方法はストリーム計算グラフをＳＣＰシステムへマッピングすることを更に含み、このマッピングは、計算のカーネルを各々のスーパーノード・クラスタに、及び各々のスーパーノード・クラスタのそれぞれの物理計算ノードに割り当てることと、データ・ストリームが同じスーパーノード・クラスタ内の物理計算ノード間にあるとき、カーネル間のデータ・ストリーム・トラフィックをローカル相互接続手段に割り当てることと、データ・ストリームが異なるスーパーノード・クラスタ内の物理計算ノード間にあるとき、カーネル間のデータ・ストリーム・トラフィックを光外部リンクに割り当てることとを含む。本方法はまた、割り当てに対応してマッピングされたクラスタ間に接続性をもたらすようにＯＣＳを構成することを含む。
【００１１】
付加的な特徴及び利点が本発明の技術を通して実現される。本発明の他の実施形態及び態様は本明細書で詳細に説明され、特許請求される本発明の一部分と見なされる。これらの利点及び特徴を有する本発明をより良く理解するには、その説明と図面を参照されたい。
【００１２】
本発明と見なされる主題事項は、本明細書の結論部にある特許請求の範囲において特に指摘され明確に特許請求される。本発明の前述並びに他の特徴及び利点は、添付の図面に関連して行われる以下の詳細な説明から明らかとなる。
【図面の簡単な説明】
【００１３】
【図１】ノードのグループ分けを伴う従来のストリーム計算グラフである。
【図２】本発明の例示的な一実施形態によるストリーム・コンピュータ・システムの略図である。
【図３】本発明の例示的な一実施形態におけるストリーム・コンピュータ・システムのストリーム処理アーキテクチャを作成し管理するためのプロセスを説明するフロー図である。
【図４】計算グラフの一例として２分木トポロジーを含むストリーム計算グラフを示し、これは、例示的な実施形態において、そのカーネルがどのようにスーパーノードにグループ分けされるか、及びこれらのスーパーノードがどのように相互接続されるかを示す。
【図５】例示的なストリーム計算グラフがマッピング又は埋め込まれる例示的なストリーム・コンピュータ・システムを示す。
【図６】例示的なストリーム計算グラフを示す。
【発明を実施するための形態】
【００１４】
ストリーム・コンピュータ・システムのための相互接続ストリーム処理アーキテクチャ、及び相互接続アーキテクチャを実装するためのプロセスを、本発明の例示的な実施形態によって開示する。相互接続アーキテクチャは２種類のネットワークから構成され、それらは互いに他方の機能を補完し、密結合された処理ノードのグループ間の接続性に対応する。そのようなグループ又はクラスタは、様々なプロトコル、並びに静的及び動的なネットワーク・トポロジー（例えば、２Ｄ／３Ｄメッシュの階層的に完全に接続されたスイッチ型ファブリック）を用いてローカルに相互接続することができる。ネットワーク及びスイッチの機能をプロセッサ・チップ内に組み込むことができ、その結果、外部スイッチを使わず直接にプロセッサ・チップを互いに相互接続してクラスタを構成することができる。そのような技術及びプロトコルの一例は、ハイパー・トランスポート３（ＨＴ３）である。パッケージ分けの限界、通信速度及び相互接続の許容可能な距離が、全体の電子ファブリックの大きさを制限するので、限られた数のプロセッサだけをクラスタ内で直接接続することができる。超高レベルの性能（例えば、エクサスケール）を達成するには、一つのシステム内に最大１００，０００個の相互接続された次世代型マルチコア・プロセッサ・チップを必要とする可能性がある。一つのクラスタは、一つのラック内部にパッケージされた１００個又はそれ以下のプロセッサ・チップに制限される可能性があると同時に、約１、０００又はそれ以上のそのようなクラスタを相互接続する必要があり得る。例示的な一実施形態において、高帯域幅を有しより長距離に達するクラスタ間接続には光信号伝送を利用することになり、そしてストリーム処理アーキテクチャには微小電気機械システム（ＭＥＮＳ）型のＯＣＳを利用してこれらのクラスタの間を接続する。
【００１５】
多くの大型装置内のノード・スイッチ間の接続性は、必要な帯域幅と距離をもたらすように光学的であるが、大基数の電気スイッチ・ファブリックが用いられている（例えば, インフィニバンド又は１０Ｇイーサーネット・プロトコル及びスイッチ）。これらは、通信が電気的から（プロセッサ・クラスタから）光学的へ、次に電気的（スイッチに対して）へ、次いで光学的（スイッチから出るように）へと変換され、最後に電気的通信に戻される（宛先のクラスタにおいて）ので、一つの経路に対して少なくとも２つの光送信機（Ｔｘ）と２つの受信機（Ｒｘ）を必要とするのに対して、本明細書で説明する例示的な実施形態の光スイッチは一つのＴｘと一つのＲｘのみを必要とし、その理由は、このスイッチがミラーにより光信号を直接屈折させることができるためである。大基数の電気スイッチは、必然的により小さな基数の構成ブロックから構成する必要があり、これは、電気スイッチが大きくなり、電力を必要とする傾向を意味する。光回路スイッチは遥かに大きな単一のスイッチ基数を有することができ、著しく小型で低電力消費となる見込みがある。
【００１６】
例示的な一実施形態において、クラスタを形成する密結合のプロセッサのグループは、ＯＣＳネットワーク及び光トランシーバを用いて、ＳＰＳ内の他のそのようなクラスタに相互接続される。このＯＣＳネットワークはミリ秒オーダーの時間スケールで切り替え可能なフレキシブルな２地点間通信を可能にする。次世代のプロセッサの帯域幅は増大することになるので、ＯＣＳアーキテクチャの使用により、次世代のより高い帯域幅の必要性及びプロトコルを、同じスイッチング・ネットワークでサポートすることが可能となる。ＯＣＳネットワークは、パケット交換ネットワークを通しての経路指定と同じように急速に回路接続性を変更することは必要としない。回路接続の調節は、ノード間の作業負荷を分散するために作業場所を変更するときに行う必要があるだけである。ＳＰＳが行う計算の特質は、それらの通信パターン及び持続時間が、ＯＣＳの比較的長いスイッチング時間（ミリ秒）を償却するのに十分なほど、かなり長時間（例えば、数分又は数時間）安定することである。異なるプロセッサ内で行われる計算に対する負荷分散のための作業配置の調整は、頻繁には起らない動作である（計算自体の高コストと複雑性のため）ので、この例示的なストリーム処理アーキテクチャは、ＯＣＳ相互接続技術の特別な機能に対して必要なＳＰＳの特性の間に、全体の性能に顕著な障害を与えずに一意的に調和する。実際にこのネットワークを用いれば、一旦再構成されると、キューの輻輳も競合も無く、プロトコル及びデータ帯域幅に対する透明性を有するので、より良好な通信待ち時間をもたらすことができる
【００１７】
次に図２を参照して、これから例示的なストリーム処理アーキテクチャを有するストリーム・コンピュータ・システム２００を例示的な実施形態において説明する。ストリーム・コンピュータ・システム２００は、相互に接続されてマルチプロセッサ２０２を形成する個々の物理計算ノード２０１から構成される。多数のこれらプロセッサ２０２は一緒にグループ分けされてスーパーノード・クラスタ２０４（本明細書では「スーパーノード」及び「クラスタ」とも呼ぶ）を形成する。クラスタ２０４内のプロセッサ（及びそれぞれの物理計算ノード）は既知の高速相互接続手段２０６によりローカルに接続され、その接続手段は、クラスタ内のプロセッサ２０２の物理計算ノード間のあるトポロジーを有する直接接続ネットワーク、又はスイッチ、又はキャシュ・コヒーレント・対称マルチプロセッサ（ＳＭＰ）ファブリックを介するメモリを通したもの、又は上記の組合せとすることができる。プロセッサ２０２の各クラスタ２０４は多数の光外部リンク２０８を共有する。これらの外部リンクは超高帯域幅において２地点間接続を最適化するように構成される。この最適化は、使用する物理的実装法において、かかる高帯域幅を容易にするように選ばれたプロトコルにおいて、低遅延のクラスタ間リンクにおいて行うことができ、一つの物理リンク内、又は数個の物理リンクから構成される一つの高帯域幅物理リンクのように見える多重物理リンク内の、多重ストリームの集合体をサポートする能力を有する。これらの外部リンクは、プロトコル、データ又はそのコンテンツを認識しない全て光スイッチにより切り替えられる回路であるので、これらは極めて軽量の通信プロトコルを使用する必要がある。更に、これらの外部リンクの物理特性はＷＤＭ（波長分割マルチプレクサ）内で多重光波長の使用を必要とする可能性があり、それら全ては一つのファイバ又は一つの外部リンク内で結合されるが、両端では分離できる。ミラー型のＭＥＭＳ  ＯＣＳは、これらの外部リンク内の光線を、それらの波長数、プロトコル及び信号速度に関係なく、光学ドメインにおいて屈折する。これらの外部リンクはクラスタ内の全ての計算ノードに共通となり、その結果、クラスタ２０４内のいずれの物理計算ノード２０１も、これら外部リンク２０８の一つ又は全ての上の情報を、直接的に、又はローカルに相互接続されたクラスタ・ファブリック２０６を通過させることにより、伝達することができる。一つの例示的な実施形態において、回路切り替えスイッチ２１０が使用される。回路切り替えスイッチ２１０は頻繁に切り替える必要がないので、遙かに簡単に構築することができ、種々の技術（例えば、すべて光学的なＭＥＭＳミラーに基づく）を用いて複数のクラスタ２０４の間を動的に接続することができる。任意の所与の時間におけるこれらクラスタ２０４間の特定の接続は、所与のストリーム計算グラフに基づいて最適化され、その計算は、物理計算ノード２０１及び接続中のクラスタ２０４によって行われる。
【００１８】
これらの型の外部リンク２０８及び動的な切り換えは、必要に応じて動的に切り替わる超高スループット（高帯域幅）の接続性を可能にする。マルチ・コア処理チップは、それらを他のそのような物理的処理ノード又はメモリ・サブシステムに相互接続するために超高帯域幅ネットワークを必要とするので、本発明の例示的なストリーム処理アーキテクチャは、ストリーム処理計算グラフ及びそれらの比較的一定した性質により、特に機能的に可能となる機構を提供するのに極めて重要な役割を果たす。このことは、パケットを再検査する必要が無く、パケット当たり１パケットの原則に基づいて経路指定を行うので、より効率的な経路指定をもたらす。回路スイッチ２１０の構造はそのような機能に対して最適化することができ、適切な技術（例えば、全て光学的な回路切り替え）によって、大量の情報（ストリーム）を、極めて低電力でコスト効率よく、効率的に処理することができる。
【００１９】
図２に示す略図は、システム内のデータの主コンジットのみを描いていることに留意することも重要である。システム内の全てのクラスタ／計算ノードの間の完全な接続性を与える別のより低速のネットワーク（図示せず）もまた、余り多忙でない接続を取り扱うため、並びに制御及び他の低帯域幅通信のために設けられることを理解されたい。従って、パケット切り替えネットワークは、例えば、最小のデータを伝達するように決定されたデータ・ストリーム（例えば１０４）を転送するのに使用することができる。その決定は閾値関数（例えば、所定の時間内に通過するデータの限定数、又は特定の計算若しくは他のそのようなシステム及び動作関連パラメータに関する優先度の関数）を指定することにより行うことができ、その場合、一旦閾値に達すると、ストリームは回路スイッチ型ネットワークを通して経路指定される。それ故、ストリームの経路指定は全てパケット切り替えネットワークを通過するように割り当てられて開始することができるが、計算が進行して、一つのストリーム内でより高い帯域幅が転送されると、それらは、回路切り替えネットワークを形成する外部リンクを通過すようにリダイレクトされることになる。
【００２０】
次に図３を参照して、ストリーム処理アーキテクチャを実装するプロセスを説明するフロー図を、例示的な実施形態において説明する。図３のフロー図において、ステッ３０２−３０６は例示的なストリーム・コンピュータ処理システムを作成することに向けられる。ステップ３０８は例示的なストリーム計算グラフを生成することに向けられ、ステップ３１０−３１６はストリーム計算グラフをストリーム・コンピュータ処理システムにマッピングすることに向けられ、ステップ３１８は、ストリーム・コンピュータ処理システムに対してストリーム計算グラフを実行することに向けられる。
【００２１】
ここでストリーム・コンピュータ処理システムの作成について説明する。ステップ３０２において、プロセッサ（例えば、図２のプロセッサ２０２）のスーパーノード・クラスタを形成する。ステップ３０４で、既知のローカル相互接続手段（例えば図２のネットワーク２０６）を介してスーパーノード・クラスタ内のプロセッサの各々を通信可能に結合する。この既知のローカル相互接続手段は、例えば、直接接続、又はキャシュ・コヒーレント対称マルチプロセッサ（ＳＭＰ）ファブリックを介するメモリを通して、又はスイッチ、又はそれらの組合せを用いて実装することができる。
【００２２】
ステップ３０６において、一つ又は複数の光外部リンク（例えば、リンク２０８）を介して、スーパーノード・クラスタ（例えば、図２のクラスタ２０４）を一つ又は複数の光回路スイッチ（例えば、図２のスイッチ２１０）に通信可能に接続する。光回路スイッチは、他の物理計算ノードを含むプロセッサの他のスーパーノード・クラスタに、そのスーパーノード・クラスタから光回路スイッチへの光外部リンクを介して、通信可能に結合される。
【００２３】
上記のように、ストリーム計算グラフは、ステップ３０２−３０６において作成されたストリーム計算システムに対して、ステップ３０８において生成される。ストリーム計算グラフはカーネル及びデータ・ストリームを含む。カーネルは、対応するカーネルへ入力する一つ又は複数のデータ・ストリームについての計算を実行するソフトウエア・コード要素を表す。図４は２分木トポロジーを有するストリーム計算グラフ４００を示す。カーネル４０２は他のカーネルにデータ・ストリーム４０４を送る。これらのカーネル４０２は、特定の望ましい特性を有するスーパーノード４１０Ａ及び４１０Ｂのようなスーパーノードにグループ分けされる。
【００２４】
上記のように、ストリーム計算グラフは、これから説明するようにストリーム・コンピュータ処理システムにマッピングされる。ここで図５及び図６を参照すると、ストリーム計算グラフ（例えば、ストリーム計算グラフ５００Ｂ）のカーネル及びデータ・ストリームは、再構成可能な回路切り替え方式で接続されたクラスタ（例えば、ストリーム・コンピュータ・システム５００Ａのクラスタ５０５Ａ）にマッピングされる。ステップ３１０において、カーネルはスーパーノード・クラスタに、及び各々のスーパーノード・クラスタのそれぞれの物理計算ノードに割り当てられる。図６に示すように、カーネル、例えばカーネル５０２Ｂは、図５のシステム５００Ａ上の物理計算ノード（例えば、ノード５０３Ａ）に割り当てられる。スーパーノード（例えば、スーパーノード５１０Ｂ及び５１２Ｂ）を形成し、データ・ストリーム（ストリーム５０４Ｂとして示す）により接続された、図６に示すノードのグループ分けは、それぞれ図５に示す構造体にマッピングされている（接続５０１Ａを参照）。
【００２５】
ステップ３１２において、データ・ストリームが同じスーパーノード・クラスタ内の物理計算ノード間にあるとき、カーネル間のデータ・ストリーム・トラフィックは既知のローカル相互接続手段に割り当てられる。
【００２６】
ステップ３１４において、データ・ストリームが異なるスーパーノード・クラスタ内の物理計算ノード間にあるとき、カーネル間のデータ・ストリーム・トラフィックは光外部リンクに割り当てられる。
【００２７】
ステップ３１６において、光回路スイッチは、外部リンクを介して割り当てに対応するスーパーノード・クラスタ間に接続性をもたらすように構成される（図５及び図６に示すように、回路スイッチ５２０は、これらのマッピングされるスーパーノード（例えば、スーパーノード５１０Ｂ、５１２Ｂ、５１４Ｂ、５１６Ｂ、５１８Ｂ、５２０Ｂ）間に必要な接続性をもたらすように再構成されている）。クラスタ間の接続の設定、すなわち、各クラスタがＯＣＳスイッチを介して特定の他のクラスタに接続されることになる外部リンクの使用は、カーネルを物理処理ノード上へマッピングする最適化プロセスに基づく。このプロセスの最後に、全体として、クラスタ間に入る予約通信の総量が（元のグラフ内の全ストリーム・エッジの集計に基づいて）算出され、各クラスタと全ての他のクラスタとの間の通信に必要な全帯域幅が得られる。次いで、任意のクラスタと全ての他のクラスタとの間のそのような帯域幅をサポートするように、ＯＣＳスイッチを介して適切な外部リンクが構成される。低帯域幅閾値の接続はパケット切り替えネットワークを介して経路指定される（すなわち、これらの接続を通過する極めて低い予想データ量のために、高帯域幅外部リンクを用いてＯＣＳを介する回路を確立するのに値しない接続）。
【００２８】
ステップ３１８において、ストリーム・コンピュータ処理システム上の動作が、クラスタ間の所与の時間における特定の接続が最適化されるように、ストリーム計算グラフに従って実行される。
【００２９】
このように、上記のプロセスは、ストリーム計算グラフ（一つの可能なグラフの例として、２分木として図４に示す）のトポロジーに適合することになり、そしてクラスタ５０５Ａ間の必要な通信パターンに適合するように回路スイッチ５２０を動的に変更することになり、一方個々のデータ・ストリームのローカルな分離はクラスタ内相互接続５０６Ａによりローカルに行われる（図５及び図６に示すように）。
【００３０】
上述の例示的な実施形態から判るように。光通信とストリーム処理パラダイムの組合せが、上述のプログラミング及び帯域幅の課題に対処する。光通信リンクは超高スループットと最小通信遅延、及び、容量とは無関係のままの低動作電力をもたらす。光リンクの容量、透明性、及び本質的に低電力消費であることを利用することができる光回路切り替え相互接続ネットワークは、高基数ＭＥＭＳ（微小電気機械システム）スイッチと組み合わせると、全てが電子的な相互接続では全く不可能なワット当たりの帯域幅を実現することができる。更に、超高帯域幅ＯＣＳ相互接続ネットワークは、計算性能が現在処理中のストリームのＩ／Ｏデータ帯域幅の最大化と、次に処理する、ストリームの大きなＤＭＡ転送の遅延時間の最小化とに直接依存するＳＰＳに対する最適解となる。その上、ＳＰＳは通常、比較的長時間持続するプロセッサ間の接続性を設定するので、ＯＣＳの長い切り替え時間は問題にならない。
【００３１】
更に、光通信はＳＰＳに関するプログラム化可能性の課題に対処するものであり、その理由は、所与のメモリ内にある大きなデータセットへの任意の所与の処理ノードからのアクセス時間を、処理ノードの相対的位置に関係なく最小にするためである。データ・アクセスにおける時間変動の減少は、ストリーム処理システムのモデル化を簡単にするのに役立つ。次に、簡単化された抽象システム段階のモデルは、ＳＰＳアーキテクチャ上での大規模なストリーミング・アプリケーションの均衡のとれた配置を導いて、持続的な処理スループットを最大にする問題の解決を容易にする。そのようなモデルは更に、コンパイル時における全ＳＰＳにわたるデータ転送及びデータ処理の静的な編成、及びＳＰＳ動作中の通信及び計算の動的な再均衡化の両方に対する自動最適化法の開発を可能にすることができる。
【００３２】
本明細書において用いられる用語は、特定の実施形態を説明する目的のためのものにすぎず、発明を限定することを意図するものではない。本明細書において用いられる場合、文脈から明らかにそうでないことが示されていない限り、「ａ」、「ａｎ」及び「ｔｈｅ」の単数形は、複数形も同様に含むことが意図される。「含む（ｃｏｍｐｒｉｓｅｓ）」及び／又は「含んでいる（ｃｏｍｐｒｉｓｉｎｇ）」という用語は、本明細書において用いられる場合、言明された特徴、整数、ステップ、動作、要素、及び／又はコンポーネントの存在を特定するものではあるが、一つ又は複数の他の特徴、整数、ステップ、動作、要素、コンポーネント、及び／又はそれらの群の存在又は付加を排除するものではないこともさらに理解される。
【００３３】
以下の特許請求の範囲における全ての「手段又はステップと機能との組合せ（ミーンズ又はステップ・プラス・ファンクション）」要素の対応する構造、材料、行為及び均等物は、明確に特許請求されているように他の特許請求された要素と組み合わせて実行するための、いかなる構造、材料、又は行為をも含むことが意図される。本発明の説明は、例示及び説明の目的で提示されたものであるが、網羅的であることを意図するものではなく、又は本発明を開示された形態に限定することを意図するものでもない。本発明の範囲及び精神から逸脱することのない多くの変更及び変形が、当業者には明らかであろう。実施形態は、本発明の原理及び実際的な用途を最も良く説明するように、そして当業者が、企図された特定の用途に適する種々の変更を施した種々の実施形態に関して本発明を理解するように選択し説明したものである。
【００３４】
本明細書で示されるフロー図は、単なる例である。本発明の精神から逸脱することなく、この図又は本明細書で説明されるステップ（又は動作）に対する多くの変形が存在する可能性がある。例えば、ステップは、異なる順序で実行することができ、又は、ステップを追加、削除若しくは変更することができる。これらの変形の全ては、特許請求の範囲に記載された発明の一部とみなされる。
【００３５】
本発明の好ましい実施形態について説明してきたが、当業者であれば、現在及び将来の両方において、下記の特許請求の範囲内に入る種々の改善及び強化を行うことができると理解されるであろう。これらの特許請求の範囲は、説明された本発明に対する適切な保護を維持すると解釈されるべきである。
【符号の説明】
【００３６】
１００：ストリーム計算グラフ
１０２Ａ、１０２Ｂ、１０２Ｃ：カーネル
１０４Ａ、１０４Ｂ：ストリーム
１１０Ａ、１１０Ｂ，１１０Ｃ：スーパーノード
２００：ストリーム・コンピュータ・システム
２０１：物理計算ノード
２０２：マルチプロセッサ
２０４：スーパーノード・クラスタ
２０６：ローカル相互接続手段（ローカル相互接続クラスタ・ファブリック）
２０８：光外部リンク
２１０：回路切り替えスイッチ
３０２、３０４、３０６、３０８、３１０、３１２、３１４、３１６、３１８：ステップ
４００：ストリーム計算グラフ
４０２：カーネル
４０４：データ・ストリーム
４１０Ａ、４１０Ｂ；スーパーノード
５００Ａ：ストリーム・コンピュータ・システム
５０１Ａ；光外部リンク
５０３Ａ：物理計算ノード
５０５Ａ：クラスタ
５０６Ａ：クラスタ内相互接続
５２０：回路スイッチ
５００Ｂ：ストリーム計算グラフ
５０２Ｂ：カーネル
５０４Ｂ：データ・ストリーム
５１０Ｂ、５１２Ｂ、５１４Ｂ、５１６Ｂ、５１８Ｂ、５２０Ｂ：スーパーノード
【図１】
0005490120.tif 000002
【図２】
0005490120.tif 000003
【図３】
0005490120.tif 000004
【図４】
0005490120.tif 000005
【図５】
0005490120.tif 000006
【図６】
0005490120.tif 000007