JP2007323656A - データを多数のプロセッサ間で転送するシステム及び方法 - Google Patents

データを多数のプロセッサ間で転送するシステム及び方法 Download PDF

Info

Publication number
JP2007323656A
JP2007323656A JP2007147062A JP2007147062A JP2007323656A JP 2007323656 A JP2007323656 A JP 2007323656A JP 2007147062 A JP2007147062 A JP 2007147062A JP 2007147062 A JP2007147062 A JP 2007147062A JP 2007323656 A JP2007323656 A JP 2007323656A
Authority
JP
Japan
Prior art keywords
communication
processors
network
register
data
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.)
Pending
Application number
JP2007147062A
Other languages
English (en)
Inventor
Paul N Swarztrauber
ポール・エヌ・スワーズトローバー
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Individual
Original Assignee
Individual
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
Priority claimed from US11/445,021 external-priority patent/US7673118B2/en
Application filed by Individual filed Critical Individual
Publication of JP2007323656A publication Critical patent/JP2007323656A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Multi Processors (AREA)

Abstract

【課題】マルチプロセッサ環境内のプロセッサ間の通信遅延を最小化し、ベクトル化が単一のプロセッサにもたらすものをマルチプロセッサにもたらす。それは、計算速度を速めるため従来用いられてきた通信の速度を速める類似のツール、即ち、壁時計時間に関してそれらの性能を増すことができるアーキテクチャについて最適な通信アルゴリズムをプログラミングする能力を与える。
【解決手段】論理演算ユニット及び算術演算ユニットの通常の補足に加えて、各プロセッサは、トラフィックをネットワークと、近隣のプロセッサの中の同等のレジスタと直接通信するレジスタとの間で調整するプログラム可能な通信ユニットを含む。これらのレジスタに含まれる通信タスクが、ベクトル・ユニプロセッサ上での通信タスクと同様に実行される。アーキテクチャが均衡化され、そしてハードウエア/ソフトウエアの組み合わせが、任意の数のプロセッサに対してスケーラブルである。
【選択図】図1

Description

[関連出願の相互参照]
本出願は、2003年2月12日に出願した特許仮出願シリアルNo.10/365,089の一部継続出願である。
[技術分野]
本発明は、汎用スーパーコンピュータ・アーキテクチャの分野に関し、特に、多数のマルチプロセッサ・システム、及びそのようなシステムのプロセッサ内及びそれらの間の両方においてデータを転送することに関する。
計算することが出現して以来、メモリからデータにアクセスするのに要する時間は、計算処理時間に対して絶え間なく増大してきた。ベクトル・プロセッサは、計算を組み立てラインの要領で実行することにより、繰り返し計算に関してプロセッサとメモリとの間のロード/ストア時間を最小にするよう1970年代に開発された。1980年代の遅くに、マルチプロセッサ・アーキテクチャの出現により、プロセッサ速度及びローカル・メモリ・アクセスは、プロセッサ間の通信より著しく速くなり、プロセッサ間の通信が、合計計算時間を完全に占めた。
1980年代の遅く及び1990年代の間に、幾つかの会社が、新生のマイクロプロセッサのパワーを単一の「スーパーコンピュータ」に組み込むアイデアを促進するため設立された。Thinking Machines Inc.により作られたコネクション・マシン(CM)に特別の関心があった(Hiilsの米国特許No.4,598,400、Theil他の米国特許No.4,805,091及び米国特許No.4,814,973、Hiilsの米国特許No.5,535,408、Hiilsの米国特許No.5,590,283、及びWade他の米国特許No.6,219,775参照)。CMは、スーパーコンピュータのフィージビリティ(実現可能性)を多数のプロセッサに基づいて実証したが、しかし以下で説明する「通信問題」と呼ばれるであろうものの犠牲になった。理論上では、CMは、非常にすばらしい「ピーク」速度を有するが、しかし実際には、CMは、計算時間対通信時間の比により測定されるような、単一のディジット効率より小さいディジット効率しか達成しないであろう。今まで、効率は、更に以下で説明するであろう多くの理由のため改善しなかった。主として、この効率の欠如は、通信速度がプロセッサ速度について行けなかったためである。Cray Inc.の技師長(CTO)による高性能ワイヤ・ニューズレターの2006年3月号における最近の引用:
「…しかし、それは広く認識されているように、科学計算がコモディティ・プラットフォームへ移行するとき、帯域幅及び待ち時間の両方に関する相互接続の性能は、アプリケーション性能全体についての制限要因になり、そして今日までボトルネックのままである。」(2006年3月24日、HPCwireでのCrayのCTOのSteve Scott)
を考えてみる。この記述は、Crayが「規格品」(COTS)フレームワークの範囲を超えた特別目的のコンピュータを作ることへシフトすることを説明するためになされた。これは、その名前が汎用スーパーコンピューティングの同義的である会社による顕著なシフトである。それにも拘わらず、それは、通信「ボトルネック」の程度を考慮すると妥当なシフトである。
特定の問題に直面している既存のマルチプロセッサ・スーパーコンピュータ・システムに目を向けると、システムの一般的性質及び利用の理解を必要とする。マルチプロセッサ・システムは、多数の相互接続されたプロセッサから構成されている。最大且つ最も強力なシステムは、しばしば、スーパーコンピュータと呼ばれる。スーパーコンピュータは、天気予報のような最も計算を必要とするアプリケーションのため用いられる。これらのアプリケーションは、計算タスク全体の一部分を各プロセッサに割り当てることにより、相互接続されたプロセッサにわたって分配される。しかしながら、計算全体の一部分でさえも完了するためには、各プロセッサは、中間結果を他のプロセッサに通信しなければならない。プロセッサ間の通信は、多くの理由のためマルチプロセッサの性能に悪影響を及ぼす。詳細には、第1の問題が、2つのプロセッサ・システム間の通信においてさえ生じ、そこにおいては、性能は、プロセッサ間のオフチップ通信が一般的にオンプロセッサ計算より非常に遅いので悪影響を受ける。
第2の問題は、マルチプロセッサに参加するプロセッサの数が増大することに関連する。本質的に、全てのプロセッサを他の全てのプロセッサに直接に接続することは、急速に実際的でなくなる。そういうことで、いずれの2つ又はそれより多いプロセッサ間の通信は、中間のプロセッサを介してルーティングされそうであり、更にルート上のプロセッサの数に等しい少なくとも1つのファクターにより通信速度を低下させる。
第3の問題は、データが全てのプロセッサに並列にルーティングされて、そのためにそのようなスーパーコンピュータ・システムが設計されている並列計算をサポートしなければならないことに関連する。即ち、並列に計算するため、全てのプロセッサは、データを同時に受け取ることができなければならない。同時のデータ受け取りは、可能性のある競合又は他の送信による送信のブロッキング(阻止)の故に通信の更なる劣化に至る。
第4の問題は、資源に対するブロッキング及び他のそのような競合に関連する。ブロッキングを排除し、そしてさもなければ性能を最適化するため、送信をスケジューリングしなければならない。全体のシステム設計に依存して、送信スケジューリングは、追加の時間を要求し得る。システム・ソフトウエア及びプロトコルを利用して、リアルタイム送信を要求するスケジュールと、更に性能の全体的劣化に寄与するそのスケジュール及び宛先アドレスの復号を実行する。
第5の問題は、特定のマルチプロセッサ・システム内のプロセッサの単なる数と関連する。プロセッサの数が増大するにつれ、物理的システムの大きさは、対応して増大する。この物理的大きさの増大はまた、マルチプロセッサ内の信号距離及び送信時間を増大させる。
第6の問題は、アイドル回路(即ち、全ての使用可能な資源の過小の使用)をもたらすシステム不均衡と関連する。不均衡の例は、ローカル速度とグローバル速度との不一致、及び/又は通信速度と計算速度との不一致を含む。そのような不均衡の効果は、より遅い構成要素がそれらのタスクを完了するまで或る一定のシステム構成要素を遅延又はアイドリング状態にさせることである。
第7の問題は更に、プロセッサの数が増大するにつれてネットワークが複雑さになることと関連する。固定のオフチップ帯域幅は、増大する数のチャネル間で共用されねばならず、それにより個々のチャネル帯域幅を低減させる。
第8の問題は、キャッシュの使用と、その結果生じる共用メモリと関連したコヒーレンス通信とが、通信に専用されるマルチプロセッサの資源を実質的に増大させることができることである。
上記で説明した問題の見地から、なぜプロセッサの数の増大と共に性能が低減することになるかを理解することができる。追加のプロセッサ間の通信の増大は、計算時間の減少量より多い時間を要求する。そのような結果又は効果を生じるアーキテクチャ/計算は、スケーラビリティを欠くと言われる。
通信問題の大きさは、複数のプロセッサ・スーパーコンピュータで明らかであり、そこにおいては、通信が合計の計算時間の90%又はそれより多い割合を消費しそうであり、その結果そのようなスーパーコンピュータの全体的計算性能の低下をもたらす。
そういうわけで、前述の問題に鑑みて、プロセッサ及びメモリ速度の増大にも拘わらず、マルチプロセッサ・システムの相対的に弱い性能に対処するためのシステム及び方法に対する必要性が存在する。特に、マルチプロセッサ環境内のプロセッサ間の通信遅延に対して解法を与える必要性が存在する。
マルチプロセッサ・システムの全体性能が個々の要素プロセッサの数に相対的に正比例して増大するスケーラブルなマルチプロセッサ・システムを提供する更なる必要性が存在する。要するに、前述したような通信問題の重大は、計算を改善するため何年もなされてきた努力に匹敵する回路及びソフトウエアの両方における努力に価値を与えるものである。実際は、マルチプロセッサの全ての計算タスクは、基底をなす通信タスクを有し、従って、「通信問題」に対する解法は、将来のマルチプロセッサ性能に広範囲の重大な影響を与えるであろう。我々が最終的に求める性能は、真に大量のプロセッサを有するマルチプロセッサの形式で具現されるであろう。
本発明は、通信時間を最小化し且つスケーラブルなハードウエア/ソフトウエア組み合わせを生成し、それにより最適な性能が数百万、数十億或いはそれを超えた数のプロセッサ・カウント数を有する汎用マルチプロセッサで実現されることができるシステム及び方法を指向している。本発明のシステム及び方法は、大量のマルチプロセッサ・システムに中に組み込まれている従来のプロセッサの中に見られる論理演算及び算術演算ユニットの従来の補足に加えてプログラム可能なオンプロセッサ通信ユニットを組み込む。本発明のシステム及び方法は、大量のマルチプロセッサ・システムに使用の通信を増強したプロセッサを提供する。
本発明は更に、本発明の特定の構成を示す添付図面を参照して説明される。しかしながら、添付図面に示される発明は単に例示としてのみ示されていることに注目されたい。以下に説明されそして図面に示される様々な構成要素及びそれら構成要素の組み合わせは、本発明の趣旨及び範囲内に依然ある構成を結果として生じるよう異なって構成及び編成されることができる。
本発明は、大量のマルチプロセッサ・システムにおけるプロセッサ内及びそれらの間での通信を増強するシステム及び方法を指向している。本発明は、通信アルゴリズムをプログラミングすることを可能にするよう構成されているハードウエア及びソフトウエアを提供する。最適なアルゴリズム性能は、マルチプロセッサ壁時計時間(wall clock time)に関して増すことができる。本発明は、プロセッサの数が著しく増大するときでさえ、妥協しないスケーラブルな性能を与える。詳細には、本発明は、スカラ・レジスタ又はベクトル・レジスタに含まれる計算タスクを実行するようにCレジスタに含まれる通信タスクを実行するプログラム可能な通信ユニットを含む増強されたプロセッサの生成に関係する。本発明の通信ユニットは、プロセッサのネットワークとCレジスタとの間のトラフィックを調整する。Cレジスタは、近隣プロセッサの同等のレジスタと直接に通信する。プロセッサはまた、通信タスクの完了に直ちに続く計算タスク又は論理タスクを実行することができる従来のCPUユニットを含む。
本発明は、添付図面及び1又はそれより多い例示的実施形態を参照して以下に説明される。本明細書における説明は単に例示を目的とし、本発明を特定の実施形態又は開示のステップ、手順又は構成要素に限定する、さもなければそれらに閉じ込める意図はまったくないことを理解すべきである。
図面に言及すると、図1には、好適なハイパーキューブ相互接続を有する例示的な16個のプロセッサのマルチプロセッサ・システム100が示されている。プロセッサは、101−116の参照番号が付されている。プロセッサ101−116の数は、単に説明のために選択されたのであり、本明細書で説明される概念及び本発明はまた、全体として、数百万、数十億或いはそれを超えた数のプロセッサを有する実施形態に適用可能であろう。プロセッサ101−116は、それぞれ、別々のチップ上にあることができるであろうが、またより確実には複数のプロセッサ101−116が単一のチップ上にあることができるであろう。この相互接続の方法に従って、いずれの1つのプロセッサから他のプロセッサへの多数の相互接続が存在する。相互接続は、図1において線により示されるワイヤにより双方向であることを仮定する。本発明の一実施形態において、各プロセッサ101−116は、近隣のプロセッサに相互接続するためのポートを有する。例えば、そして示されるように、プロセッサ101のポート121、122、123、124は、個々のプロセッサ102、103、105及び109に対する接続を与える。
本発明のマルチプロセッサ・ネットワークは、図1を類似の図に組み込むことにより、各プロセッサ101、102、103、104以下等々が16個のプロセッサと置換されることにより、例えば256個のプロセッサに拡張されることができる。個々のチャネル121、122、123、124以下等々が、各プロセッサに対する合計8個の接続(ポート)のため図1のプロセッサに対して1つづつ接続される16個のチャネルと置換される。プロセッサの数は更に、追加の組み込みにより反復的要領で増大されることができる。
一般的に、Pプロセッサ・ハイパーキューブは、1プロセッサ当たりlogP個の双方向接続を有する。ハイパーキューブ相互接続は、通常のものであり、周知である。Pプロセッサ・システムの最大(ピーク)速度は、個々のプロセッサの速度のP倍であるが、しかし先に示したように、マルチプロセッサ・ハイパーキューブ又は他の相互接続スキームの現在の実際性能は、典型的にはピークの10%より小さい。
並列計算は、並列通信により支えなければならない。理想的には、これは、全てのプロセッサ101−116の間の直接接続により達成されるであろう。しかしながら、プロセッサの数Pが増大するに伴い、そのような接続は、製造するのに急速に実際的でなくなる。相互接続理論は、より少ない接続を用いた全て対全ての接続を最良にシミュレートする方法を与える。最も単純で最も普及しているものは、1次元、2次元及び3次元の網目状ネットワークである。本発明は、通信が個々のチャネルのレベルでプログラム可能であるハイパーキューブ・ネットワークに基づいている。これは、最適な通信アルゴリズムの実現を可能にし、そしてネットワーク競合、デッドロック及びレジスタ・オーバーフローの問題を排除する。
本発明に従って、通信タスクは、どのプロセッサからもその宛先プロセッサへ全ての通信サイクルで1データの平均レートで実行される。これは、たとえデータが中間のプロセッサを通ってその宛先に達しなければならない場合でもそのとおりである。個々のデータがその宛先に達するために数サイクルを要求するにも拘わらず、同じ時間で、他のデータもまた、それらの宛先に達し、従って、1通信サイクル当たり1の平均結果を達成する。換言すると、通信タスクは、並列/ベクトルのように実行される。
マルチプロセッサ環境の中の大部分の通信は、「直接」接続が全ての個々のプロセッサの間に存在しないので、中間のプロセッサを介してルーティングされなければならない。通信ルート及び送信タイミングの収集(collection)は、スケジュールと呼ばれる。スケジュールは、ネットワーク及び通信タスクの両方に依存する。スケジュールは、通信アルゴリズムにより与えられ、そして各ワイヤ又はチャネル上で各通信サイクルで送信されるべきであるデータを指定する。最適スケジュールは、高速フーリエ変換(FFT)に対して要求される通信タスクのような通信タスクの最も共通なものに対して存在する。例えば、Swarztrauber,P.N.及びHammond,S.W.「トーラス及びハイパーキューブ・マルチコンピュータについての最適FFTの比較(A Comparison of Optimal FFT on Torus and Hypercube Multicomputers)」(Paralell Computing、27(2001年)847−859頁)を参照されたい。
本発明は、通信の速度を速めるためのツール、即ち、アルゴリズムの最適な実行をサポートするアルゴリズム及びハードウエアを導入する。大きいクラスの通信タスクに対して、ルート又はスケジュールは、有効なデータが全てのプロセッサ101−116にどの通信サイクルでも平均して到達するように見つけられることができる。「有効な」データは、そのルートに沿った中間プロセッサではなくてその宛先に到達したデータを意味する。最適な通信アルゴリズムは、例えば、この節の後の方で説明されるであろう。
最初にハードウエア構成要素に向くと、本発明は、アルゴリズムのスケーラビリティをスケーラブルなハードウエア/ソフトウエア・マルチプロセッサに変換するため要求されるハードウエアを与える。即ち、ハードウエアは、アルゴリズム性能をハードウエアの「壁時計時間」に変換する。
図2Aは、図1のプロセッサ101−116のいずれの1つに含まれる構成要素を示す。詳細には、図2に示されたプロセッサ101は、従来の算術演算ユニット及びブール演算ユニット(図示せず)を有するCPU204、並びにローカル・メモリ206を含む。ローカル・メモリ206は、マルチプロセッサ・システム100の合計メモリに寄与する。換言すると、大容量のメモリ・サイズは、多数のプロセッサ101の利用により達成される。プロセッサ101が通信ユニット205、Cレジスタ201、ネットワークからレジスタへのデマルチプレクサ・スイッチ(「ネットワーク/レジスタ・デマルチプレクサ・スイッチ」とも記す。)202、及びレジスタからネットワークへのマルチプレクサ・スイッチ(「レジスタ/ネットワーク・マルチプレクサ・スイッチ」とも記す。)203を含むのは重要である。
通信ユニット205は、スイッチ202、203を必要に応じて設定することによりネットワーク・トラフィックを調整する。通信ユニット205は、スイッチ202、203を設定して、プロセッサ101の各通信サイクル中に新しい構成を実現するようプログラムされる。通信ユニット205により与えられるスイッチ設定の構成は、実行時に動的に計算され、又はローカル・メモリ206のようなデータ記憶装置からロードされる静的情報であり得る。Cレジスタ201に含まれる通信タスクを実行する。Cレジスタ201は、ネットワーク上の他のプロセッサ102、103、105及び109の中の近隣のCレジスタにスイッチ202、203を介して直接に接続される。文脈的には、本発明のCレジスタは、ベクトル・レジスタがベクトル計算に対して与えるものを通信に対して与える。
動作において、そして図2Bに示されるように、本発明における通信タスクは、ステップ2101に示されるように、ローカル・メモリ206からCPU204を介してCレジスタ201へロードすることで始まる。プログラム可能な通信ユニット205は、ステップ212に示されるように、アルゴリズムをリアルタイムで実行して、スイッチ202、203に関する設定を決定するか、又は前に格納されている設定を取得するかのいずれかを行う。通信サイクルは、ステップ214において、通信ユニット205によるスイッチ202、203の設定を続ける。次いで、スイッチは、ステップ216において作動されて、Cレジスタ201からネットワーク上へのデータの送信を生じさせる。より詳細には、データは、近隣のプロセッサの類似のレジスタに送信される。それに続く送信は、スイッチ202、203の設定と同時である。サイクルが進行するにつれ、Cレジスタ201のコンテンツは、一時データから常駐データへ進展し、その時点でサイクルは終了する。ベクトル・レジスタと非常に似て、Cレジスタ201の長さは、出来るだけ長いように、好ましくはP、即ちマルチプロセッサ・システムで利用されるプロセッサの数より大きい値に選定される。また、ユニプロセッサのベクトル・レジスタのように、通信サイクルは、通信タスクを完了するため反復されねばならない。通信タスクの完了に続いて、Cレジスタ201は、スカラ計算又はベクトル計算のためCPU204に対して使用可能になる。
本発明の一実施形態において、基本的通信命令は、次の形式である。
TRRC IP RCA TCA
ここで、TRRCは送信/受信命令であり、IPはlogP個のポートのうちの1つである。RCAは、受信されるデータのCレジスタ・アドレスであり、そしてTCAは、送信されるデータのCレジスタ・アドレスである。通信ユニットは、最大logP個のこれらの命令を、各ポートIPに対して1つ実行しなければならず、そしてスイッチ202、203を各通信サイクルに対して設定しなければならない。Cレジスタ・アドレスRCA、TCAは、通信タスクに対する最適スケジュール(方法)から得られる。一実施形態において、スケジュール構成は、単一の通信サイクルの最適時間での一時データの再送信を可能にする。
一局面において、本発明のシステム及び方法は、オンプロセッサ(on−processor)速度に対する遅いオフプロセッサ(off−processor)通信の関係に対処する。詳細には、本発明は、上記で説明したように、データが計算のため使用可能になる前に生じるオフチップ送信の数を最小にする。データがユニプロセッサ環境において後続のベクトル処理のためメモリから抽出されるのと非常に似たように、データは、ネットワークから抽出される。イン・ルート(in route)又は一時的データは、ネットワーク上を後続の通信サイクルで戻るよう送られる。動的設定に対してオンチップ・スイッチを設定するため、通信速度とプロセッサ速度との差を利用する。
別の局面において、本発明は、ネットワーク競合に対処する。プログラム可能な通信は、個々のワイヤ又はチャネルのレベルで与えられる。これはまた、デッドロック及びレジスタ・オーバーフローの問題を避け、そして待ち時間を「隠す(hide)」最適な通信アルゴリズムの実行を可能にする。
別の局面において、並列通信は、並列計算の支援で与えられる。それがアルゴリズム的に可能である場合、個々のワイヤのレベルでのプログラム可能な通信は、全てのプロセッサに対する並列通信を各通信サイクルについて保証する。
更に別の局面において、本発明は、ハードウエア・ルーティングと関連するネットワーク・オーバーヘッドの問題に対処する。低レベルのプログラム可能な通信の実現は、ヘッダ、プロトコル、及びハードウエア・ルータにより従来要求される通信オーバーヘッドを排除する。
更に別の局面において、本発明は、システムの均衡を与える。オフプロセッサ通信がシステムの最も遅い構成要素をそのままにしておくので、本発明は、オフプロセッサ・イベントの持続時間を利用して、オンチップの細粒度動的スイッチングを実行する。CPUの速度、及びローカル・メモリが、データをネットワークから検索する速度の或る倍数として選定される。従って、性能は、最終的に、個々のプロセッサの速度よりむしろプロセッサの数に依存する。
別の局面において、本発明は、マルチプロセッサにおける固定のピン・カウント数の問題に対処する。P個のプロセッサを有するマルチプロセッサのチャネル帯域幅は、1つのプロセッサの通信ピン数LをlogPで除算した値により決定される。最大性能は、単一のピンに対応する各チャネル及びP=2個のプロセッサを用いて達成される。現在のピン・カウント数は、2008年には1000個に達すると予想される。従って、最大性能は、ハイパーキューブ・チャネルが単一のピンに対応するならば達成されるであろうし、それは、P=21000のプロセッサ・カウント数を提案する。しかしながら、そのような製造は、現在実施可能性がなく、従って、各チャネルは、複数のピンに対応するよう設計されている。最大性能がより大きい帯域幅を持つ一層少ないプロセッサではなくより小さい個々のチャネル帯域幅を持つ多くのプロセッサにより最終的に得られることに注目することは興味深い。(Swarztrauber,P.N.「通信マシン(Communication Machine)」(International Journal of High Speed Computing、12(2004年)、75頁参照)。
更に別の局面において、本発明は、既存のシステムにおいてキャッシュ・コヒーレンシーを維持することにより誘発される余分な通信を排除する。この問題は、本発明のメモリがローカルでありそして極めて多数のプロセッサの結果として計算割合に類似する大量の割合に達するので排除される。ローカル・メモリはまた、大きい共用メモリと関連した多数のメモリ・バンクと関連する問題を排除する。並列計算に関する現実の理由は、「ローカリティ(局所性)」であると言われてきた。
更に別の局面において、本発明は、ハードウエア/ソフトウエアの組み合わせのスケーラビリティを与える。本明細書で説明されるアーキテクチャは、アルゴリズムに比例して拡大縮小するであろう。例えば、マルチプロセッサ通信アルゴリズムがプロセッサの数Pに比例して拡大縮小する場合、ハードウエア/ソフトウエア性能もPに比例して増大するであろう。
我々は、ここで、本発明のアルゴリズム及びソフトウエアの構成要素に目を向けると、それは、ハイパーキューブ上で実行される「転置」又は「コーナ・ターニング(corner turning)」通信タスクの一例により提示される。P個のプロセッサにわたり列状に分配される2次元P×Pアレイxijがあると仮定する。即ち、xijは、全てのiに関してプロセッサjに配置される。共通の通信タスクは、アレイの行状に再分配され、それによりxijはここでは全てのiに関してプロセッサiに配置される。転置についての最適アルゴリズム又はスケジュールが、一例として示されるであろう。図3Aに示されるように8個のプロセッサ(p=0から7)にわたり分配される8×8アレイxijの転置を考える。
図3Bは、転置の4つの通信サイクル306、307、308、309のそれぞれの間にランダムに選定されるプロセッサp=5のコンテンツを示す。最も左のボックス301は、元のコンテンツ、即ち、図3Aからの第5列に対応する。4つの通信サイクル306、307、308、309の後に、プロセッサp=5の最も右のボックス305が、アレイの第5行を含む。類似の図形が、p=0からp=7までについてプロセッサpに配置された第p列に関して表示されることができるであろう。図3Bの中の各ボックスをよく見ると、3つのエレメントが8個のプロセッサ・ハイパーキューブ・ネットワークの3つの近隣のプロセッサから受信されたエレメントに対応する各通信サイクル306−309で置き換えられることが分かる。各サイクルについて、置き換えられたエレメントはまた、近隣のプロセッサに送信される。
64個のエレメントの合計は、4個のエレメントを単一のワイヤで送信するのに要する時間と同じ時間でハイパーキューブ・ネットワークを介してそれらの宛先にルーティングされる。一般的に、P個のエレメントは、1通信サイクル当たり平均2P個のエレメントについてP/2サイクルでそれらの宛先に到着する。従って、本発明の通信システム及び方法は、任意のPに関してPに対して線形にスケーリングする。
本発明においては、プロセッサ101上の全構成要素の速度は、通信サイクルに基づいている。従って、Cレジスタ201、ローカル・メモリ206及びCPU204の構成要素を含む全システムの速度は、互いに関して均衡化される。マルチプロセッサ100の性能は、現在の実施であるように、プロセッサ101−116の中央制御のために設計された個々のプロセッサの速度とは異なり、それが備える極めて多数のプロセッサ101−116に依存する。発明の名称が「マルチプルライン・マルチプロセッサ・システム(Multipleliene Multiprocessor System)」である米国特許No.5,689,722のような従来技術のシステムは、プロセッサ対プロセッサ通信の効率的実現に焦点を当てているが、しかし各構成要素プロセッサのための通信構成要素、又は当該通信構成要素を均衡したスケーラブルなシステムの中に統合化することを教示していない。
マルチプロセッサ・システムにおける通信の従来の制御は、Emberson(米国特許No.6,957,318)又はHills(米国特許No.4,598,400)において提示されるような個別のユニプロセッサによるものである。しかしながら、本発明の「マルチコンピュータ」の実施形態においては、分散型制御である。命令は、ネットワークを超えてハイパーキューブについて定義されることができるブロードキャスト・トリー(broadcast tree)を介して、いずれの単一のプロセッサ101−116から他の全てのプロセッサ101−116へ分配される。そのような実施形態は、プロセッサ101−116を区切ってサブタスクについて働くことができるフレームワークを与える。この制御の方法は、ここで一般的に、テラ・グリッド(Tera Grid)、グローバル・グリッド(Global Grid)上、又はより単純にウェブ(Web)上の複数のコンピュータの文脈において受け入れられる。
本発明のマルチプロセッサ100のハイパーキューブ・ネットワークは、増強されたプロセッサ間通信を並列に与え、そしてアルゴリズムの性能に比例して拡大縮小する性能を与える。それにも拘わらず、本発明は、複数のプロセッサのいずれのネットワークで構成され、そして実現されることができる。個々のワイヤ又はチャネルのレベルでの通信は、いずれのネットワーク・トポロジーの中に埋め込まれることができる一般化されたプロセッサを与える。例えば、図2Aの4ポート型のプロセッサは、16ノード・ハイパーキューブ、2次元メッシュ、又は1次元リングの中に埋め込まれることができる。後者のケースでは、チャネルの帯域幅は、それらがピンの数を2倍にすることができるであろうから、2倍になるであろう。それぞれのケースにおいて、通信ユニット206は、異なるネットワーク・トポロジーのため異なる最適なアルゴリズムに対応する異なるプログラムを実行するであろう。そのようなプロセッサはまた、通常の均質なネットワークの組み合わせとして構成される非均質のネットワークの中に埋め込まれることができる。ピンのセットAは、ネットワーク上の近隣Bに対応するようプログラムされることができる。このようにして、プロセッサ101は、COTSネットワーク・アプリケーションについて汎用通信を与える。
上記の記述から、本発明は、明らかでありそして本方法及び装置に対して固有である他の利点と共に、前述した全ての目標及び目的を達成するよう十分に適合された発明であることが分かるであろう。或る一定の特徴及び副組み合わせが有用であり、そして他の特徴及び副組み合わせを参照することなしに採用され得ることが理解されるであろう。これは、特許請求の範囲により及びその範囲内に意図されるものである。本発明の多くの可能性のある実施形態が本発明の範囲から逸脱することなしに行い得るので、本明細書で説明し又は添付図面で示された全ての事項は例示でありそして限定ではないと解釈すべきであることが理解されるべきである。
上記で説明しそして図面に示された構成は、一例としてのみ提示され、そして本発明の概念及び原理を限定することを意図していない。本明細書で用いられているように、用語「有する」及び/又は「含む」及び他の含有を意味する用語は、要件ではなくむしろ含有を示す用語である。
図1は、本発明の一実施形態に従った16個のプロセッサ・システムのためのハイパーキューブ・ネットワーク相互接続を示す。 図2Aは、プログラム可能な通信ユニット、Cレジスタ、スイッチ、ローカル・メモリ及び通常の算術演算/ブール演算CPUユニットを有する本発明の例示的プロセッサの一部の構成要素のブロック図を示す。 図2Bは、図2Aのプロセッサにおける通信イベントに関する例示的論理フローを示す図である。 図3Aは、8個のプロセッサ(p=0から7)にわたり分配される8×8アレイxijの転置を考えるための図である。 図3Bは、図3Aに示されるように、8個のプロセッサにわたり列状に分配される8×8アレイの転置の実行中におけるプロセッサp=5のCレジスタの進展を示す。
符号の説明
101−116 プロセッサ
121、122、123、124 ポート
201 Cレジスタ
202 ネットワーク/レジスタ・デマルチプレクサ・スイッチ
203 レジスタ/ネットワーク・マルチプレクサ・スイッチ
204 CPU
205 通信ユニット
206 ローカル・メモリ

Claims (25)

  1. ネットワーク・トポロジーと、
    複数のプロセッサとを備え、
    前記複数のプロセッサのそれぞれが、
    整数ユニット、スカラ・ユニット、浮動小数点ユニット及びブール演算ユニットを含む通常のCPUと、
    ローカル・メモリと、
    アドレス可能なCレジスタと、
    第1及び第2の多重ポート型ネットワーク・スイッチと、
    プログラム可能な通信ユニットとを備え、
    前記複数のプロセッサが、協調的タスク実行のため前記ネットワークの中で相互接続され、
    前記通信ユニットが、1又はそれより多い設定を前記第1及び第2の多重ポート型ネットワーク・スイッチに与え、
    前記通常のCPU、ローカル・メモリ、及び前記通信ユニットが、計算タスク及び通信タスクを与えるよう結合及び構成され、且つ前記複数のプロセッサのそれぞれのため、前記アドレス可能なCレジスタを一時的データ格納のため利用する、マルチプロセッサ・システム。
  2. 前記アドレス可能なCレジスタが、一時データ及び常駐データの両方のためのデータ格納装置である請求項1記載のマルチプロセッサ・システム。
  3. 前記第1の多重ポート型ネットワーク・スイッチが、データを前記アドレス可能なCレジスタから前記ネットワークへ転送するよう構成可能なマルチプレクサであり、
    前記第2の多重ポート型ネットワーク・スイッチが、データを前記ネットワークから前記アドレス可能なCレジスタへ転送するよう構成可能なデマルチプレクサである
    請求項1記載のマルチプロセッサ・システム。
  4. 前記ネットワークが、ハイパーキューブ・ネットワークである積御3記載のマルチプロセッサ・システム。
  5. Pカウント個の前記複数のプロセッサが存在し、
    前記デマルチプレクサ及び前記マルチプレクサは、それぞれ、前記ネットワークに対するN=logP個のポートと、前記Cレジスタに対するM個のポートとを有し、
    ここで、Mは、前記Cレジスタの中の場所の数である
    請求項4記載のマルチプロセッサ・システム。
  6. 大容量メモリを有し、
    前記大容量メモリが、前記複数のプロセッサのそれぞれ内のローカル・メモリの和である
    請求項3記載のマルチプロセッサ・システム。
  7. キャッシュを持たず、それによりキャッシュ・コヒーレンスが要求されない請求項6記載のマルチプロセッサ・システム。
  8. 制御を前記ネットワークにわたって分配するブロードキャスト・トリーを更に備え、
    前記ブロードキャスト・トリーが、各プロセッサから他の全てのプロセッサまで定義される
    請求項3記載のマルチプロセッサ・システム。
  9. 複数の通信ピンと、
    複数の通信チャネルとを更に備え、
    前記通信チャネルのそれぞれが、通信ピンの合計数をlogPで除算した数に等しい前記通信ピンの倍数を利用する
    請求項1記載のマルチプロセッサ・システム。
  10. ネットワークの中で相互接続される複数のプロセッサの間に通信を与えるマルチプロセッサ・システムにおける方法であって、
    前記複数のプロセッサのそれぞれにおいて、整数ユニット、スカラ・ユニット、浮動小数点ユニット及びブール演算ユニットを含む通常のCPUと、ローカル・メモリと、アドレス可能なCレジスタと、多重ポート型デマルチプレクサと、多重ポート型マルチプレクサと、プログラム可能な通信ユニットとを設けるステップと、
    1又はそれより多い設定を前記マルチプレクサ及びデマルチプレクサに与えるよう前記通信ユニットを構成するステップと、
    前記アドレス可能なCレジスタをデータ格納のため利用するステップと、
    計算及び通信を前記複数のプロセッサの間に与えるよう前記通常のCPU、ローカル・メモリ及び前記通信ユニットを構成することにより、データが前記複数のプロセッサの前記Cレジスタ間で転送されるステップと
    を備える方法。
  11. 前記通信ユニットにより、1又はそれより多い通信命令の実行を前記デマルチプレクサ及びマルチプレクサの構成と相関させるステップを更に備える請求項10記載の方法。
  12. 前記ローカル・メモリ、Cレジスタ及びCPUの速度を前記ネットワークの速度に基づいて選択することにより前記ネットワークを均衡化させるステップを更に備える請求項11記載の方法。
  13. 前記通信ユニットから受け取られた1組の通信命令に応答して、各通信サイクル中に新しいスイッチ構成を実現するよう前記マルチプレクサ及びデマルチプレクサのスイッチを構成するステップを更に備える請求項10記載の方法。
  14. 前記の新しいスイッチ構成が、前記通信ユニットにより動的に決定される請求項13記載の方法。
  15. 静的構成を1又はそれより多いデータ・テーブルから前記マルチプレクサ及びデマルチプレクサのスイッチにロードするステップを更に備える請求項10記載の方法。
  16. 通信タスクが、1通信サイクル当たり1データの平均速度で並列に全ての宛先プロセッサに対して実行される請求項10記載の方法。
  17. 前記CPUによる計算のため、又は近隣のプロセッサへ再送信のため、或いは前記ローカル・メモリに格納のため、前記Cレジスタのコンテンツを役立たせるステップを更に備える請求項10記載の方法。
  18. 競合、デッドロック及びレジスタ・オーバーフローを含む未知の実行要因を排除することにより静的ではなく決定論的実行を与えるステップを更に備える請求項10記載の方法。
  19. 非均質なネットワークを含むいずれのネットワーク内の前記プロセッサを可変数個のプロセッサ・ポートと接続するステップを更に備え、
    前記通信ユニットが、前記ポートに対応するピンを定義するようプログラミングされる
    請求項10記載の方法。
  20. 前記通信ユニットが、プロセッサの数Pに比例してスケーリングするアルゴリズムを実行し、
    前記アルゴリズムの性能に比例した前記マルチプロセッサ・システムの性能のスケーリングが存在する
    請求項10記載の方法。
  21. 複数の通信チャネル及び複数の通信ピンを設けるステップを更に備え、
    前記通信チャネルのそれぞれが、通信ピンの合計数をlogPで除算した数に等しい数の前記通信ピンを利用する
    請求項10記載の方法。
  22. 制御を、前記複数のプロセッサのそれぞれから前記複数のプロセッサの他の全てのプロセッサまで定義されるブロードキャスト・トリーを介して前記ネットワークにわたって分配するステップを更に備える請求項10記載の方法。
  23. 複数のプロセッサ間で通信する方法であって、
    前記複数のプロセッサのそれぞれの中に、CPU、ローカル・メモリ、通信ユニット、Cレジスタ及び1又はそれより多いネットワーク・スイッチを設けるステップと、
    前記複数のプロセッサのうちの1つのプロセッサに配置された第1のCレジスタと、1又はそれより多い近隣のプロセッサに配置された1又はそれより多いCレジスタとの間に前記1又はそれより多いネットワーク・スイッチを介した通信経路を設けるステップと、
    命令を前記CPUと前記第1のCレジスタとの間で通信するステップと、
    スイッチの設定を前記通信ユニットから前記1又はそれより多いネットワーク・スイッチへ与えるステップと、
    データを前記ローカル・メモリと前記第1のCレジスタとの間で転送するステップと、
    前記1又はそれより多いネットワーク・スイッチを利用して、データを前記第1のCレジスタと前記1又はそれより多いCレジスタとの間で通信するステップと
    を備える方法。
  24. データを前記第1のCレジスタと近隣のプロセッサに配置された2又はそれより多いCレジスタとの間で同時に通信するステップを更に備える請求項23記載の方法。
  25. 相互接続され且つ通信機能を増強された複数のプロセッサを有するマルチプロセッサ装置であって、
    前記複数の通信機能を増強されたプロセッサのそれぞれが、
    計算タスクを実行する手段と、
    データ・アイテムを保持する手段と、
    近隣の増強されたプロセッサへの通信を調整する手段と、
    通信データを選択的に指向させる手段とを備え、
    計算タスクを実行する前記手段が、データを、前記データ・アイテムを保持する手段へ渡し、またそれから渡され、
    前記調整する手段が、構成情報を前記通信データを選択的に指向させる手段へ与えて、データ・アイテムを前記データ・アイテムを保持する手段により近隣の増強されたプロセッサへ送信し、またそれから受信することを可能にする
    マルチプロセッサ装置。
JP2007147062A 2006-06-01 2007-06-01 データを多数のプロセッサ間で転送するシステム及び方法 Pending JP2007323656A (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US11/445,021 US7673118B2 (en) 2003-02-12 2006-06-01 System and method for vector-parallel multiprocessor communication

Publications (1)

Publication Number Publication Date
JP2007323656A true JP2007323656A (ja) 2007-12-13

Family

ID=38856360

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007147062A Pending JP2007323656A (ja) 2006-06-01 2007-06-01 データを多数のプロセッサ間で転送するシステム及び方法

Country Status (1)

Country Link
JP (1) JP2007323656A (ja)

Similar Documents

Publication Publication Date Title
US10282338B1 (en) Configuring routing in mesh networks
US8737392B1 (en) Configuring routing in mesh networks
US7673118B2 (en) System and method for vector-parallel multiprocessor communication
US8151088B1 (en) Configuring routing in mesh networks
US5737628A (en) Multiprocessor computer system with interleaved processing element nodes
US9535877B2 (en) Processing system with interspersed processors and communication elements having improved communication routing
US8531943B2 (en) Mesh network
EP3729261B1 (en) A centralized-distributed mixed organization of shared memory for neural network processing
Mohan et al. Design and evaluation of 3D NoC routers with quality-of-service (QoS) mechanism for multi-core systems
Roca et al. A low-latency modular switch for CMP systems
Langar et al. Virtual channel router architecture for network on chip with adaptive inter-port buffers sharing
US20200293478A1 (en) Embedding Rings on a Toroid Computer Network
JP2007323656A (ja) データを多数のプロセッサ間で転送するシステム及び方法
Ax et al. System-level analysis of network interfaces for hierarchical mpsocs
Duquennoy et al. MpNOC Design: modeling and simulation
Pechanek et al. ManArray processor interconnection network: an introduction
CN112486905A (zh) 可重构异构化pea互连方法
Denholm et al. A unified approach for managing heterogeneous processing elements on FPGAs
Patil Efficient and Lightweight Inter-process Collective Operations for Massive Multi-core Architectures.
Zong et al. SlideAcross: A low-latency adaptive router for chip multi-processor
Sharif et al. Design and simulations of a serial-link interconnection network for a massively parallel computer system
Baklouti et al. Study and integration of a parametric neighbouring interconnection network in a massively parallel architecture on FPGA
Agrawal et al. B-HIVE: hardware and software for an experimental multiprocessor
Greenberg et al. Becoming a better host through origami: A mesh can be more than rows and columns
Juvaa Design, implementation, and analysis of router architectures and network topologies for FPGA-Based Multicore System