説明

ストリーム処理コンピュータ・アーキテクチャを実装する方法及びシステム

【課題】 ストリーム処理コンピュータ・アーキテクチャを実装する方法及びシステムを提供する。
【解決手段】 ストリーム処理コンピュータ・アーキテクチャを実装する方法は、物理計算ノード(「ノード」)を表すプロセッサのスーパーノード・クラスタを形成することと、ローカル相互接続手段(「相互接続」)を介してプロセッサを通信可能に結合することと、光外部リンク(「リンク」)を介して、クラスタを光回路スイッチ(OCS)に通信可能に接続することとによって、ストリーム・コンピュータ処理(SCP)システムを作成することを含む。OCSは、リンクを介して別のプロセッサのクラスタに通信可能に結合される。本方法はさらに、カーネル及びデータ・ストリームを含むストリーム計算グラフを生成することと、SCPシステムにグラフをマッピングすることとを含み、ここでマッピングすることは、カーネルをクラスタ及びそれぞれのノードに割り当てることと、データ・ストリームが同じクラスタ内のノード間にあるとき、カーネル間のデータ・ストリーム・トラフィックを相互接続に割り当てることと、データ・ストリームが異なるクラスタ内のノード間にあるとき、カーネル間のトラフィックをリンクに割り当てることとを含む。本方法はさらに、マッピングされたクラスタ間の接続性をもたらすようにOCSを構成することを含む。

【発明の詳細な説明】
【技術分野】
【0001】
本発明はデータ処理システムに関し、より具体的にはストリーム処理コンピュータ・アーキテクチャを実装する方法及びシステムに関する。
【背景技術】
【0002】
コンピュータ・システムの性能に対する通信の影響は、マクロ・レベル(例えば、ブレード・サーバ及びコンピュータのクラスタ)でも、ミクロ・レベル(例えば、多数のコアを有する単一のプロセッサ・チップ)でも増大し続けている。計算に対する従来の手法は、キャシュメモリの階層を介してメインメモリへのアクセス時間を減らすことに依存するものであり、収穫逓減点に到達しつつある。これは部分的に、処理コアの速度に対するI/Oデータ伝送の増大する待ち時間、並びに、キャシュメモリ及びグローバル通信線によって要求されるオンチップ電力損失の増加部分(制限される)のために真実である。その一方で、オンチップ電力損失の厳しい制約は多くの主要な半導体企業をマルチ・コア又はチップ・マルチプロセッサ(CMP)アーキテクチャに移動させている。CMPの出現は、今度は、2つの重要な領域における通信インフラに更なる課題を課している。特に、CMP内の処理コア数の増大がチップ内通信及びチップ間通信の両方に対する帯域幅要件を激化させている。更に、CMPアーキテクチャは、従来のシングルコア・プロセッサ・チップに比べて、プログラミングの複雑さ及び最終的生産性を非常に増加させる。
【0003】
CMPアーキテクチャ及びソフトウエア管理のキャッシュメモリ編成に基づくシステムに対する代替的計算モデル手法として、ストリーム処理法が最近出現した。多種類の重要なアプリケーション、例えば、ディジタル信号処理及びマルチメディア・アプリケーションは、データベースにおいて典型的な複雑なデータ記録に対するよりランダム化されたアクセスとは対照的に、並列に処理することができる規則的なデータ構造体の長いシーケンスに対するかなり規則的なアクセスを示す。これらのアプリケーションに対して、ストリーム処理と、例えばnVidia(登録商標)及びAMD/ATIグラフィック処理ユニット(GPU)、又はIBM(登録商標)のセル・ブロードバンド・エンジンなどの特殊用途プロセッサとの組合せが、汎用CMPアーキテクチャに適用される従来の計算パラダイムよりも高い性能と低電力消費を提供する可能性を有する。
【0004】
ストリーム計算グラフの例を図1に示す。グラフ100はカーネル(102A,102B,及び102C)と呼ばれる計算ノードから構成され、カーネルは一つのカーネルから別のカーネルへ移動するデータ・ストリームを表すエッジ104A/104Bによって接続される。カーネルはデータ・ストリームについての計算を行うソフトウエア・コード要素を参照する。図1のグラフ100において、これらのデータ・ストリームは単方向性である。即ち、データは、矢印で示すように図の左側から右側に移動する(流れる)。カーネルは次の3つの型、ソース102A(計算グラフへの入力として生成されるデータ・ストリームの源を表す)、シンク102B(一つのストリーム又は複数のストリームの形状をもたらす終点を表す)、及び正規のカーネル102Cのうちの一つであり得る。カーネル(102A−102C)は一つ又は複数の入力ストリーム104Aを有することができ、その特定の計算の結果として一つ又は複数の出力ストリーム104Bを生成することができる。
【0005】
典型的にはストリーム計算グラフ(例えばグラフ100)は、コンピュータ処理問題(例えば、いくつかのイベントの検出、又は入力データ・ストリーム間のパターン及び複雑な関係−株の金融取引、感覚データの相関など)に対する解を表す。グラフは、データ・ストリームが計算カーネルで処理されている間存続し、これは通常非常に長い時間(数時間若しくはそれ以上、又は無期限)となる。したがって、このグラフのトポロジーは固定されていると考えられる。
【0006】
そのようなストリーム計算グラフを取り扱う際の一つの課題は、計算ノード(例えばカーネル102A−102C)を、コンピュータ処理システムの物理計算ノードに割り当てることができるようなグループにどのようにグループ分けするかを決定することである。そのようなグループ分け(スケジューリング、埋め込みとしても知られる、又はグラフ理論において、グラフ縮約として知られるグラフ理論的変換)を行うための多くの可能な方法がある。図1に示すように、影付きのグループ(110A−110C)は、一つのグループ(例えばグループ118B)に割り当てられたカーネルが、一つの物理計算ノードの内部又は高速ローカル通信ネットワークにより又はそれを用いて密結合されたノードのクラスタの内部にあることになるようなカーネルのグループ分けを表す。したがって、カーネルの一つのそのようなグループから別のグループへ通過する全体の集合ストリームをグループ間の一つの接続と見なすことができる。グラフ理論の用語では、正規の計算ノード(カーネル)がその内部に折り畳まれたスーパーノードと見なすことができる。この種のグループ分けをストリーム計算グラフ内のすべての計算ノードに対して行うことができる。ストリーム計算グラフのカーネル間のエッジで表されるストリームは、同様に、スーパーノード間を通過する全データ・ストリームの和を表すスーパーエッジ内に折り畳むことができる。
【0007】
一例として、図1に示すように、スーパーノード110C及び110Bは、スーパーノード110Bと110Cの間を(左から右に)通過する3つのストリームを共有する。それらをここではスーパーノード110Bと110Cの間を接続する一つのストリームと見なすことができる。実際には、元のデータ・ストリームがストリーム計算システムの物理通信ファブリックにより集められ、その結果スーパーノード110Bにおける進入点がカーネルの一グループ(例えばスーパーノード110B内のカーネル)からの3つのストリームを多重化して一つのストリームにすることになり、他方の末端でカーネルのグループ(スーパーノード110C内のカーネル)がこれら3つのストリームを逆多重化して元に戻し、それらを適切なカーネルにローカルに接続して、一つの物理計算ノード又はそのようなノードのクラスタ内にマッピングされるようにすることになる。
【0008】
このストリーム処理パラダイムを、財務、データ・マイニング、及び計算生物学などの種々の分野における特定の大規模アプリケーションへ拡張する関心が高まっている。この拡張には単一のGPU類似のプロセッサ上での単一のストリーム・アプリケーションの実行以上のことを行う必要があるが、その代わりに、多くのプロッセサが高速相互接続ネットワークで相互接続される大きな拡張可能なストリーム処理システム(SPS)を構築することを含む。しかしながら、大きな拡張可能なストリーム処理システムを構築することは種々の障害、例えば、伝送帯域幅の増大の問題、並びにメモリ内の大きなデータセットへの処理ノードからのアクセス時間の増加等に遭遇する。
【発明の概要】
【発明が解決しようとする課題】
【0009】
したがって、上記の障害を克服する改良されたストリーム処理アーキテクチャを提供することが望まれる。
【課題を解決するための手段】
【0010】
本発明の一実施形態によれば、ストリーム処理コンピュータ・アーキテクチャを実装する方法は、ストリーム・コンピュータ処理(SCP)システムを作成することを含む。SCPシステムは、スーパーノード・クラスタ内の物理計算ノードを表すプロセッサのスーパーノード・クラスタを形成し、ローカル相互接続手段を介してスーパーノード・クラスタ内のプロセッサの各々を通信可能に結合し、そして多重光外部リンクを介してスーパーノード・クラスタを光回路スイッチ(OCS)に通信可能に結合することによって作成する。OCSは、他のスーパーノード・クラスタから光回路スイッチへの他の多重外部リンクを介して他の物理計算ノードを表すプロセッサを含む他のスーパーノード・クラスタに、通信可能に結合する。本方法はまた、カーネル及びデータ・ストリームを含むストリーム計算グラフを生成することを含む。本方法はストリーム計算グラフをSCPシステムへマッピングすることを更に含み、このマッピングは、計算のカーネルを各々のスーパーノード・クラスタに、及び各々のスーパーノード・クラスタのそれぞれの物理計算ノードに割り当てることと、データ・ストリームが同じスーパーノード・クラスタ内の物理計算ノード間にあるとき、カーネル間のデータ・ストリーム・トラフィックをローカル相互接続手段に割り当てることと、データ・ストリームが異なるスーパーノード・クラスタ内の物理計算ノード間にあるとき、カーネル間のデータ・ストリーム・トラフィックを光外部リンクに割り当てることとを含む。本方法はまた、割り当てに対応してマッピングされたクラスタ間に接続性をもたらすようにOCSを構成することを含む。
【0011】
付加的な特徴及び利点が本発明の技術を通して実現される。本発明の他の実施形態及び態様は本明細書で詳細に説明され、特許請求される本発明の一部分と見なされる。これらの利点及び特徴を有する本発明をより良く理解するには、その説明と図面を参照されたい。
【0012】
本発明と見なされる主題事項は、本明細書の結論部にある特許請求の範囲において特に指摘され明確に特許請求される。本発明の前述並びに他の特徴及び利点は、添付の図面に関連して行われる以下の詳細な説明から明らかとなる。
【図面の簡単な説明】
【0013】
【図1】ノードのグループ分けを伴う従来のストリーム計算グラフである。
【図2】本発明の例示的な一実施形態によるストリーム・コンピュータ・システムの略図である。
【図3】本発明の例示的な一実施形態におけるストリーム・コンピュータ・システムのストリーム処理アーキテクチャを作成し管理するためのプロセスを説明するフロー図である。
【図4】計算グラフの一例として2分木トポロジーを含むストリーム計算グラフを示し、これは、例示的な実施形態において、そのカーネルがどのようにスーパーノードにグループ分けされるか、及びこれらのスーパーノードがどのように相互接続されるかを示す。
【図5】例示的なストリーム計算グラフがマッピング又は埋め込まれる例示的なストリーム・コンピュータ・システムを示す。
【図6】例示的なストリーム計算グラフを示す。
【発明を実施するための形態】
【0014】
ストリーム・コンピュータ・システムのための相互接続ストリーム処理アーキテクチャ、及び相互接続アーキテクチャを実装するためのプロセスを、本発明の例示的な実施形態によって開示する。相互接続アーキテクチャは2種類のネットワークから構成され、それらは互いに他方の機能を補完し、密結合された処理ノードのグループ間の接続性に対応する。そのようなグループ又はクラスタは、様々なプロトコル、並びに静的及び動的なネットワーク・トポロジー(例えば、2D/3Dメッシュの階層的に完全に接続されたスイッチ型ファブリック)を用いてローカルに相互接続することができる。ネットワーク及びスイッチの機能をプロセッサ・チップ内に組み込むことができ、その結果、外部スイッチを使わず直接にプロセッサ・チップを互いに相互接続してクラスタを構成することができる。そのような技術及びプロトコルの一例は、ハイパー・トランスポート3(HT3)である。パッケージ分けの限界、通信速度及び相互接続の許容可能な距離が、全体の電子ファブリックの大きさを制限するので、限られた数のプロセッサだけをクラスタ内で直接接続することができる。超高レベルの性能(例えば、エクサスケール)を達成するには、一つのシステム内に最大100,000個の相互接続された次世代型マルチコア・プロセッサ・チップを必要とする可能性がある。一つのクラスタは、一つのラック内部にパッケージされた100個又はそれ以下のプロセッサ・チップに制限される可能性があると同時に、約1、000又はそれ以上のそのようなクラスタを相互接続する必要があり得る。例示的な一実施形態において、高帯域幅を有しより長距離に達するクラスタ間接続には光信号伝送を利用することになり、そしてストリーム処理アーキテクチャには微小電気機械システム(MENS)型のOCSを利用してこれらのクラスタの間を接続する。
【0015】
多くの大型装置内のノード・スイッチ間の接続性は、必要な帯域幅と距離をもたらすように光学的であるが、大基数の電気スイッチ・ファブリックが用いられている(例えば, インフィニバンド又は10Gイーサーネット・プロトコル及びスイッチ)。これらは、通信が電気的から(プロセッサ・クラスタから)光学的へ、次に電気的(スイッチに対して)へ、次いで光学的(スイッチから出るように)へと変換され、最後に電気的通信に戻される(宛先のクラスタにおいて)ので、一つの経路に対して少なくとも2つの光送信機(Tx)と2つの受信機(Rx)を必要とするのに対して、本明細書で説明する例示的な実施形態の光スイッチは一つのTxと一つのRxのみを必要とし、その理由は、このスイッチがミラーにより光信号を直接屈折させることができるためである。大基数の電気スイッチは、必然的により小さな基数の構成ブロックから構成する必要があり、これは、電気スイッチが大きくなり、電力を必要とする傾向を意味する。光回路スイッチは遥かに大きな単一のスイッチ基数を有することができ、著しく小型で低電力消費となる見込みがある。
【0016】
例示的な一実施形態において、クラスタを形成する密結合のプロセッサのグループは、OCSネットワーク及び光トランシーバを用いて、SPS内の他のそのようなクラスタに相互接続される。このOCSネットワークはミリ秒オーダーの時間スケールで切り替え可能なフレキシブルな2地点間通信を可能にする。次世代のプロセッサの帯域幅は増大することになるので、OCSアーキテクチャの使用により、次世代のより高い帯域幅の必要性及びプロトコルを、同じスイッチング・ネットワークでサポートすることが可能となる。OCSネットワークは、パケット交換ネットワークを通しての経路指定と同じように急速に回路接続性を変更することは必要としない。回路接続の調節は、ノード間の作業負荷を分散するために作業場所を変更するときに行う必要があるだけである。SPSが行う計算の特質は、それらの通信パターン及び持続時間が、OCSの比較的長いスイッチング時間(ミリ秒)を償却するのに十分なほど、かなり長時間(例えば、数分又は数時間)安定することである。異なるプロセッサ内で行われる計算に対する負荷分散のための作業配置の調整は、頻繁には起らない動作である(計算自体の高コストと複雑性のため)ので、この例示的なストリーム処理アーキテクチャは、OCS相互接続技術の特別な機能に対して必要なSPSの特性の間に、全体の性能に顕著な障害を与えずに一意的に調和する。実際にこのネットワークを用いれば、一旦再構成されると、キューの輻輳も競合も無く、プロトコル及びデータ帯域幅に対する透明性を有するので、より良好な通信待ち時間をもたらすことができる
【0017】
次に図2を参照して、これから例示的なストリーム処理アーキテクチャを有するストリーム・コンピュータ・システム200を例示的な実施形態において説明する。ストリーム・コンピュータ・システム200は、相互に接続されてマルチプロセッサ202を形成する個々の物理計算ノード201から構成される。多数のこれらプロセッサ202は一緒にグループ分けされてスーパーノード・クラスタ204(本明細書では「スーパーノード」及び「クラスタ」とも呼ぶ)を形成する。クラスタ204内のプロセッサ(及びそれぞれの物理計算ノード)は既知の高速相互接続手段206によりローカルに接続され、その接続手段は、クラスタ内のプロセッサ202の物理計算ノード間のあるトポロジーを有する直接接続ネットワーク、又はスイッチ、又はキャシュ・コヒーレント・対称マルチプロセッサ(SMP)ファブリックを介するメモリを通したもの、又は上記の組合せとすることができる。プロセッサ202の各クラスタ204は多数の光外部リンク208を共有する。これらの外部リンクは超高帯域幅において2地点間接続を最適化するように構成される。この最適化は、使用する物理的実装法において、かかる高帯域幅を容易にするように選ばれたプロトコルにおいて、低遅延のクラスタ間リンクにおいて行うことができ、一つの物理リンク内、又は数個の物理リンクから構成される一つの高帯域幅物理リンクのように見える多重物理リンク内の、多重ストリームの集合体をサポートする能力を有する。これらの外部リンクは、プロトコル、データ又はそのコンテンツを認識しない全て光スイッチにより切り替えられる回路であるので、これらは極めて軽量の通信プロトコルを使用する必要がある。更に、これらの外部リンクの物理特性はWDM(波長分割マルチプレクサ)内で多重光波長の使用を必要とする可能性があり、それら全ては一つのファイバ又は一つの外部リンク内で結合されるが、両端では分離できる。ミラー型のMEMS OCSは、これらの外部リンク内の光線を、それらの波長数、プロトコル及び信号速度に関係なく、光学ドメインにおいて屈折する。これらの外部リンクはクラスタ内の全ての計算ノードに共通となり、その結果、クラスタ204内のいずれの物理計算ノード201も、これら外部リンク208の一つ又は全ての上の情報を、直接的に、又はローカルに相互接続されたクラスタ・ファブリック206を通過させることにより、伝達することができる。一つの例示的な実施形態において、回路切り替えスイッチ210が使用される。回路切り替えスイッチ210は頻繁に切り替える必要がないので、遙かに簡単に構築することができ、種々の技術(例えば、すべて光学的なMEMSミラーに基づく)を用いて複数のクラスタ204の間を動的に接続することができる。任意の所与の時間におけるこれらクラスタ204間の特定の接続は、所与のストリーム計算グラフに基づいて最適化され、その計算は、物理計算ノード201及び接続中のクラスタ204によって行われる。
【0018】
これらの型の外部リンク208及び動的な切り換えは、必要に応じて動的に切り替わる超高スループット(高帯域幅)の接続性を可能にする。マルチ・コア処理チップは、それらを他のそのような物理的処理ノード又はメモリ・サブシステムに相互接続するために超高帯域幅ネットワークを必要とするので、本発明の例示的なストリーム処理アーキテクチャは、ストリーム処理計算グラフ及びそれらの比較的一定した性質により、特に機能的に可能となる機構を提供するのに極めて重要な役割を果たす。このことは、パケットを再検査する必要が無く、パケット当たり1パケットの原則に基づいて経路指定を行うので、より効率的な経路指定をもたらす。回路スイッチ210の構造はそのような機能に対して最適化することができ、適切な技術(例えば、全て光学的な回路切り替え)によって、大量の情報(ストリーム)を、極めて低電力でコスト効率よく、効率的に処理することができる。
【0019】
図2に示す略図は、システム内のデータの主コンジットのみを描いていることに留意することも重要である。システム内の全てのクラスタ/計算ノードの間の完全な接続性を与える別のより低速のネットワーク(図示せず)もまた、余り多忙でない接続を取り扱うため、並びに制御及び他の低帯域幅通信のために設けられることを理解されたい。従って、パケット切り替えネットワークは、例えば、最小のデータを伝達するように決定されたデータ・ストリーム(例えば104)を転送するのに使用することができる。その決定は閾値関数(例えば、所定の時間内に通過するデータの限定数、又は特定の計算若しくは他のそのようなシステム及び動作関連パラメータに関する優先度の関数)を指定することにより行うことができ、その場合、一旦閾値に達すると、ストリームは回路スイッチ型ネットワークを通して経路指定される。それ故、ストリームの経路指定は全てパケット切り替えネットワークを通過するように割り当てられて開始することができるが、計算が進行して、一つのストリーム内でより高い帯域幅が転送されると、それらは、回路切り替えネットワークを形成する外部リンクを通過すようにリダイレクトされることになる。
【0020】
次に図3を参照して、ストリーム処理アーキテクチャを実装するプロセスを説明するフロー図を、例示的な実施形態において説明する。図3のフロー図において、ステッ302−306は例示的なストリーム・コンピュータ処理システムを作成することに向けられる。ステップ308は例示的なストリーム計算グラフを生成することに向けられ、ステップ310−316はストリーム計算グラフをストリーム・コンピュータ処理システムにマッピングすることに向けられ、ステップ318は、ストリーム・コンピュータ処理システムに対してストリーム計算グラフを実行することに向けられる。
【0021】
ここでストリーム・コンピュータ処理システムの作成について説明する。ステップ302において、プロセッサ(例えば、図2のプロセッサ202)のスーパーノード・クラスタを形成する。ステップ304で、既知のローカル相互接続手段(例えば図2のネットワーク206)を介してスーパーノード・クラスタ内のプロセッサの各々を通信可能に結合する。この既知のローカル相互接続手段は、例えば、直接接続、又はキャシュ・コヒーレント対称マルチプロセッサ(SMP)ファブリックを介するメモリを通して、又はスイッチ、又はそれらの組合せを用いて実装することができる。
【0022】
ステップ306において、一つ又は複数の光外部リンク(例えば、リンク208)を介して、スーパーノード・クラスタ(例えば、図2のクラスタ204)を一つ又は複数の光回路スイッチ(例えば、図2のスイッチ210)に通信可能に接続する。光回路スイッチは、他の物理計算ノードを含むプロセッサの他のスーパーノード・クラスタに、そのスーパーノード・クラスタから光回路スイッチへの光外部リンクを介して、通信可能に結合される。
【0023】
上記のように、ストリーム計算グラフは、ステップ302−306において作成されたストリーム計算システムに対して、ステップ308において生成される。ストリーム計算グラフはカーネル及びデータ・ストリームを含む。カーネルは、対応するカーネルへ入力する一つ又は複数のデータ・ストリームについての計算を実行するソフトウエア・コード要素を表す。図4は2分木トポロジーを有するストリーム計算グラフ400を示す。カーネル402は他のカーネルにデータ・ストリーム404を送る。これらのカーネル402は、特定の望ましい特性を有するスーパーノード410A及び410Bのようなスーパーノードにグループ分けされる。
【0024】
上記のように、ストリーム計算グラフは、これから説明するようにストリーム・コンピュータ処理システムにマッピングされる。ここで図5及び図6を参照すると、ストリーム計算グラフ(例えば、ストリーム計算グラフ500B)のカーネル及びデータ・ストリームは、再構成可能な回路切り替え方式で接続されたクラスタ(例えば、ストリーム・コンピュータ・システム500Aのクラスタ505A)にマッピングされる。ステップ310において、カーネルはスーパーノード・クラスタに、及び各々のスーパーノード・クラスタのそれぞれの物理計算ノードに割り当てられる。図6に示すように、カーネル、例えばカーネル502Bは、図5のシステム500A上の物理計算ノード(例えば、ノード503A)に割り当てられる。スーパーノード(例えば、スーパーノード510B及び512B)を形成し、データ・ストリーム(ストリーム504Bとして示す)により接続された、図6に示すノードのグループ分けは、それぞれ図5に示す構造体にマッピングされている(接続501Aを参照)。
【0025】
ステップ312において、データ・ストリームが同じスーパーノード・クラスタ内の物理計算ノード間にあるとき、カーネル間のデータ・ストリーム・トラフィックは既知のローカル相互接続手段に割り当てられる。
【0026】
ステップ314において、データ・ストリームが異なるスーパーノード・クラスタ内の物理計算ノード間にあるとき、カーネル間のデータ・ストリーム・トラフィックは光外部リンクに割り当てられる。
【0027】
ステップ316において、光回路スイッチは、外部リンクを介して割り当てに対応するスーパーノード・クラスタ間に接続性をもたらすように構成される(図5及び図6に示すように、回路スイッチ520は、これらのマッピングされるスーパーノード(例えば、スーパーノード510B、512B、514B、516B、518B、520B)間に必要な接続性をもたらすように再構成されている)。クラスタ間の接続の設定、すなわち、各クラスタがOCSスイッチを介して特定の他のクラスタに接続されることになる外部リンクの使用は、カーネルを物理処理ノード上へマッピングする最適化プロセスに基づく。このプロセスの最後に、全体として、クラスタ間に入る予約通信の総量が(元のグラフ内の全ストリーム・エッジの集計に基づいて)算出され、各クラスタと全ての他のクラスタとの間の通信に必要な全帯域幅が得られる。次いで、任意のクラスタと全ての他のクラスタとの間のそのような帯域幅をサポートするように、OCSスイッチを介して適切な外部リンクが構成される。低帯域幅閾値の接続はパケット切り替えネットワークを介して経路指定される(すなわち、これらの接続を通過する極めて低い予想データ量のために、高帯域幅外部リンクを用いてOCSを介する回路を確立するのに値しない接続)。
【0028】
ステップ318において、ストリーム・コンピュータ処理システム上の動作が、クラスタ間の所与の時間における特定の接続が最適化されるように、ストリーム計算グラフに従って実行される。
【0029】
このように、上記のプロセスは、ストリーム計算グラフ(一つの可能なグラフの例として、2分木として図4に示す)のトポロジーに適合することになり、そしてクラスタ505A間の必要な通信パターンに適合するように回路スイッチ520を動的に変更することになり、一方個々のデータ・ストリームのローカルな分離はクラスタ内相互接続506Aによりローカルに行われる(図5及び図6に示すように)。
【0030】
上述の例示的な実施形態から判るように。光通信とストリーム処理パラダイムの組合せが、上述のプログラミング及び帯域幅の課題に対処する。光通信リンクは超高スループットと最小通信遅延、及び、容量とは無関係のままの低動作電力をもたらす。光リンクの容量、透明性、及び本質的に低電力消費であることを利用することができる光回路切り替え相互接続ネットワークは、高基数MEMS(微小電気機械システム)スイッチと組み合わせると、全てが電子的な相互接続では全く不可能なワット当たりの帯域幅を実現することができる。更に、超高帯域幅OCS相互接続ネットワークは、計算性能が現在処理中のストリームのI/Oデータ帯域幅の最大化と、次に処理する、ストリームの大きなDMA転送の遅延時間の最小化とに直接依存するSPSに対する最適解となる。その上、SPSは通常、比較的長時間持続するプロセッサ間の接続性を設定するので、OCSの長い切り替え時間は問題にならない。
【0031】
更に、光通信はSPSに関するプログラム化可能性の課題に対処するものであり、その理由は、所与のメモリ内にある大きなデータセットへの任意の所与の処理ノードからのアクセス時間を、処理ノードの相対的位置に関係なく最小にするためである。データ・アクセスにおける時間変動の減少は、ストリーム処理システムのモデル化を簡単にするのに役立つ。次に、簡単化された抽象システム段階のモデルは、SPSアーキテクチャ上での大規模なストリーミング・アプリケーションの均衡のとれた配置を導いて、持続的な処理スループットを最大にする問題の解決を容易にする。そのようなモデルは更に、コンパイル時における全SPSにわたるデータ転送及びデータ処理の静的な編成、及びSPS動作中の通信及び計算の動的な再均衡化の両方に対する自動最適化法の開発を可能にすることができる。
【0032】
本明細書において用いられる用語は、特定の実施形態を説明する目的のためのものにすぎず、発明を限定することを意図するものではない。本明細書において用いられる場合、文脈から明らかにそうでないことが示されていない限り、「a」、「an」及び「the」の単数形は、複数形も同様に含むことが意図される。「含む(comprises)」及び/又は「含んでいる(comprising)」という用語は、本明細書において用いられる場合、言明された特徴、整数、ステップ、動作、要素、及び/又はコンポーネントの存在を特定するものではあるが、一つ又は複数の他の特徴、整数、ステップ、動作、要素、コンポーネント、及び/又はそれらの群の存在又は付加を排除するものではないこともさらに理解される。
【0033】
以下の特許請求の範囲における全ての「手段又はステップと機能との組合せ(ミーンズ又はステップ・プラス・ファンクション)」要素の対応する構造、材料、行為及び均等物は、明確に特許請求されているように他の特許請求された要素と組み合わせて実行するための、いかなる構造、材料、又は行為をも含むことが意図される。本発明の説明は、例示及び説明の目的で提示されたものであるが、網羅的であることを意図するものではなく、又は本発明を開示された形態に限定することを意図するものでもない。本発明の範囲及び精神から逸脱することのない多くの変更及び変形が、当業者には明らかであろう。実施形態は、本発明の原理及び実際的な用途を最も良く説明するように、そして当業者が、企図された特定の用途に適する種々の変更を施した種々の実施形態に関して本発明を理解するように選択し説明したものである。
【0034】
本明細書で示されるフロー図は、単なる例である。本発明の精神から逸脱することなく、この図又は本明細書で説明されるステップ(又は動作)に対する多くの変形が存在する可能性がある。例えば、ステップは、異なる順序で実行することができ、又は、ステップを追加、削除若しくは変更することができる。これらの変形の全ては、特許請求の範囲に記載された発明の一部とみなされる。
【0035】
本発明の好ましい実施形態について説明してきたが、当業者であれば、現在及び将来の両方において、下記の特許請求の範囲内に入る種々の改善及び強化を行うことができると理解されるであろう。これらの特許請求の範囲は、説明された本発明に対する適切な保護を維持すると解釈されるべきである。
【符号の説明】
【0036】
100:ストリーム計算グラフ
102A、102B、102C:カーネル
104A、104B:ストリーム
110A、110B,110C:スーパーノード
200:ストリーム・コンピュータ・システム
201:物理計算ノード
202:マルチプロセッサ
204:スーパーノード・クラスタ
206:ローカル相互接続手段(ローカル相互接続クラスタ・ファブリック)
208:光外部リンク
210:回路切り替えスイッチ
302、304、306、308、310、312、314、316、318:ステップ
400:ストリーム計算グラフ
402:カーネル
404:データ・ストリーム
410A、410B;スーパーノード
500A:ストリーム・コンピュータ・システム
501A;光外部リンク
503A:物理計算ノード
505A:クラスタ
506A:クラスタ内相互接続
520:回路スイッチ
500B:ストリーム計算グラフ
502B:カーネル
504B:データ・ストリーム
510B、512B、514B、516B、518B、520B:スーパーノード

【特許請求の範囲】
【請求項1】
ストリーム処理コンピュータ・アーキテクチャを実装する方法であって、
各々が、スーパーノード・クラスタ内に少なくとも1つの物理計算ノードを含むプロセッサのスーパーノード・クラスタを形成するステップと、
ローカル相互接続手段を介して、前記スーパーノード・クラスタ内の前記プロセッサの各々を通信可能に結合するステップと、
一つ又は複数の光外部リンクを介して、前記スーパーノード・クラスタを少なくとも一つの光回路スイッチに通信可能に結合するステップであって、前記光回路スイッチは、他のスーパーノード・クラスタからの一つ又は複数の光外部リンクを介して、それぞれ少なくとも1つ他の物理計算ノードを含むプロセッサの少なくとも一つの他のスーパーノード・クラスタに通信可能に結合される、前記結合するステップと、
を含むストリーム・コンピュータ処理システムを形成するステップと、
カーネル及びデータ・ストリームを含むストリーム計算グラフであって、前記カーネルは、対応するカーネルへの入力である一つ又は複数のデータ・ストリームについての計算を行うソフトウエア・コード要素を表す、前記ストリーム計算グラフを生成するステップと、
前記ストリーム計算グラフを前記ストリーム・コンピュータ処理システムにマッピングするステップであって、
前記カーネルを前記スーパーノード・クラスタに、及び各々の前記スーパーノード・クラスタのそれぞれの物理計算ノードに割り当てるステップと、
それぞれの前記データ・ストリームが、同じスーパーノード内の物理計算ノード間にあるとき、前記カーネル間のデータ・ストリーム・トラフィックを前記ローカル相互接続手段に割り当てるステップと、
それぞれの前記データ・ストリームが、異なるスーパーノード内の物理計算ノード間にあるとき、前記カーネル間のデータ・ストリーム・トラフィックを前記光外部リンクに割り当てるステップと、
前記光外部リンクを介して、前記割り当てに対応する前記スーパーノード・クラスタ間に接続性をもたらすように、前記光回路スイッチを構成するステップと、
を含む、前記マッピングするステップと、
前記ストリーム計算グラフに従って前記ストリーム・コンピュータ処理システム上の動作を実行するステップと、
を含む方法。
【請求項2】
前記光回路スイッチを構成するステップは、前記ストリーム計算グラフに対してなされた変更を反映するように、前記光回路スイッチの前記接続性を動的に切り替えるステップを含む、請求項1に記載の方法。
【請求項3】
前記ストリーム計算グラフに対する変更は負荷均衡化作業を反映する、請求項2に記載の方法。
【請求項4】
スーパーノード・クラスタ内の個々のデータ・ストリームは、前記スーパーノード・クラスタの対応するローカル相互接続手段により管理される、請求項1に記載の方法。
【請求項5】
前記ローカル相互接続手段は、
直接接続と、
キャシュ・コヒーレント対称マルチプロセッサ(SMP)ファブリックを介するメモリを通してと、
スイッチと、
のうちの少なくとも一つにより実装される、請求項4に記載の方法。
【請求項6】
前記物理計算ノードはシングルプロセッサである、請求項1に記載の方法。
【請求項7】
前記物理計算ノードはマルチプロセッサである、請求項1に記載の方法。
【請求項8】
前記ストリーム計算グラフは、2分木トポロジーを用いて生成される、請求項1に記載の方法。
【請求項9】
最小のデータ受け渡しに出会うように閾値関数を用いて決定された、カーネル間のデータ・ストリームを転送するためのパケット切り替えネットワークを使用するステップを更に含む、請求項1に記載の方法。
【請求項10】
ストリーム処理コンピュータ・アーキテクチャを実装するためのシステムであって、
各々が、スーパーノード・クラスタ内に少なくとも1つの物理計算ノードを含むプロセッサのスーパーノード・クラスタを形成することと、
ローカル相互接続手段を介して前記スーパーノード・クラスタ内のプロセッサの各々を通信可能に結合することと、
一つ又は複数の光外部リンクを介して、前記スーパーノード・クラスタを少なくとも1つの光回路スイッチに通信可能に結合することであって、前記光回路スイッチは、他のスーパーノード・クラスタからの1つ又は複数の光外部リンクを介して、それぞれ少なくとも1つの他の物理計算ノードを含むプロセッサの少なくとも1つの他のスーパーノード・クラスタに通信可能に結合される、前記結合することと、
によって作成されるストリーム・コンピュータ処理システムと、
カーネル及びデータ・ストリームを含むストリーム計算グラフであって、前記カーネルは、対応するカーネルへの入力である一つ又は複数のデータ・ストリームについての計算を実行するソフトウエア・コード要素を表す、前記ストリーム計算グラフと、
を含み、
前記ストリーム計算グラフは前記ストリーム・コンピュータ処理システムにマッピングされ、
前記マッピングは、
前記カーネルを前記スーパーノード・クラスタに、及び、各々の前記スーパーノード・クラスタのそれぞれの物理計算ノードに割り当てることと、
前記それぞれのデータ・ストリームが、同じスーパーノード・クラスタ内の物理計算ノード間にあるとき、前記カーネル間のデータ・ストリーム・トラフィックを前記ローカル相互接続手段に割り当てることと、
前記それぞれのデータ・ストリームが、異なるスーパーノード・クラスタ内の物理計算ノード間にあるとき、前記カーネル間のデータ・ストリーム・トラフィックを前記光外部リンクに割り当てることと、
前記光外部リンクを介して、前記割り当てに対応するスーパーノード・クラスタ間の接続性をもたらすように前記光回路スイッチを構成することと、
を含み、
前記ストリーム・コンピュータ処理システム上の動作は、前記ストリーム計算グラフに従って実行される、
前記システム。
【請求項11】
前記光回路スイッチを構成することは、前記ストリーム計算グラフに対してなされた変更を反映するように、前記光回路スイッチの前記接続性を動的に切り替えることを含む、請求項10に記載のシステム。
【請求項12】
前記ストリーム計算グラフに対する変更は負荷均衡化作業を反映する、請求項11に記載のシステム。
【請求項13】
スーパーノード・クラスタ内の個々のデータ・ストリームは、前記スーパーノード・クラスタの対応するローカル相互接続手段により管理される、請求項10に記載のシステム。
【請求項14】
前記ローカル相互接続手段は、
直接接続と、
キャシュ・コヒーレント対称マルチプロセッサ(SMP)ファブリックを介するメモリを通してと、
スイッチと、
のうちの少なくとも一つにより実装される、請求項13に記載のシステム。
【請求項15】
前記物理計算ノードはシングルプロセッサである、請求項10に記載のシステム。
【請求項16】
前記物理計算ノードはマルチプロセッサである、請求項10に記載のシステム。
【請求項17】
前記ストリーム計算グラフは、2分木トポロジーを用いて生成される、請求項10に記載のシステム。
【請求項18】
パケット切り替えネットワークを更に含み、前記パケット切り替えネットワークは、最小データ受け取りに出会うように閾値関数を用いて決定された、カーネル間のデータ・ストリームを転送する、請求項10に記載のシステム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate


【公表番号】特表2012−500432(P2012−500432A)
【公表日】平成24年1月5日(2012.1.5)
【国際特許分類】
【出願番号】特願2011−523393(P2011−523393)
【出願日】平成21年8月13日(2009.8.13)
【国際出願番号】PCT/EP2009/060483
【国際公開番号】WO2010/020577
【国際公開日】平成22年2月25日(2010.2.25)
【出願人】(390009531)インターナショナル・ビジネス・マシーンズ・コーポレーション (4,084)
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MASCHINES CORPORATION
【Fターム(参考)】