JP2015080274A - Dragonflyプロセッサ相互接続ネットワークにおけるテーブル駆動型ルーティング - Google Patents

Dragonflyプロセッサ相互接続ネットワークにおけるテーブル駆動型ルーティング Download PDF

Info

Publication number
JP2015080274A
JP2015080274A JP2015012380A JP2015012380A JP2015080274A JP 2015080274 A JP2015080274 A JP 2015080274A JP 2015012380 A JP2015012380 A JP 2015012380A JP 2015012380 A JP2015012380 A JP 2015012380A JP 2015080274 A JP2015080274 A JP 2015080274A
Authority
JP
Japan
Prior art keywords
routing
router
network
groups
group
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.)
Granted
Application number
JP2015012380A
Other languages
English (en)
Other versions
JP5977383B2 (ja
Inventor
パーカー マイク
Parker Mike
パーカー マイク
スコット スティーブ
Scott Steve
スコット スティーブ
チェン アルバート
Albert Cheng
チェン アルバート
アルバーソン ロバート
Albertson Robert
アルバーソン ロバート
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.)
Intel Corp
Original Assignee
Intel Corp
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 Intel Corp filed Critical Intel Corp
Publication of JP2015080274A publication Critical patent/JP2015080274A/ja
Application granted granted Critical
Publication of JP5977383B2 publication Critical patent/JP5977383B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/745Address table lookup; Address filtering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/17306Intercommunication techniques
    • G06F15/17312Routing techniques specific to parallel machines, e.g. wormhole, store and forward, shortest path problem congestion
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/17356Indirect interconnection networks
    • G06F15/17362Indirect interconnection networks hierarchical topologies
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/02Topology update or discovery
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/02Topology update or discovery
    • H04L45/10Routing in connection-oriented networks, e.g. X.25 or ATM
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/12Shortest path evaluation
    • H04L45/125Shortest path evaluation based on throughput or bandwidth
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/58Association of routers
    • H04L45/586Association of routers of virtual routers

Abstract

【課題】様々な処理ノード間に高速かつ効率的な通信を提供する。
【解決手段】マルチプロセッサコンピュータシステムは、複数のプロセッサノードと複数のルータとを装備したDragonflyプロセッサ相互接続ネットワークを備える。ルータは、Dragonflyネットワーク内のターゲットノードから宛先ノードまでの複数のネットワークパスの中から、1または複数のルーティングテーブルに基づきネットワークパスを選択することによって、データをルーティングするように動作する。
【選択図】図5

Description

本発明は、概してコンピュータ相互接続ネットワークに関し、より詳細には、一実施形態において、Dragonflyトポロジープロセッサ相互接続ネットワークでのテーブル駆動型ルーティングに関する。
(制限された著作権放棄)
本特許文書の開示の一部には、著作権保護が請求される要素が含まれている。著作権所有者は、本特許文書または本特許開示を任意の人物がファクシミリ複製することについては、これらが米国特許商標庁のファイルあるいは記録に記載されているため異論を唱えないが、その他の権利は全て所有するものである。
長期間にわたり、コンピュータシステムは、データ伝送を行う場合にネットワーク接続に依存してきた。これは、データ伝送が1つのコンピュータシステムから別のコンピュータシステムへの伝送、1つのコンピュータコンポーネントから別のコンピュータコンポーネントへの伝送、または同じコンピュータ内の1つのプロセッサから別のプロセッサへの伝送のいずれであろうと同じである。多くのコンピュータネットワークは、複数のコンピュータ化した素子どうしを相互にリンクし、またネットワーク上で送信したメッセージが目的の受信者に到着したことの検証、メッセージの整合性の確認、メッセージをネットワーク上の目的の受信者にルーティングする方法といった様々な機能を含む。
プロセッサ相互接続ネットワークは、データを1つのプロセッサから別のプロセッサに、または1つのプロセッサグループから別のプロセッサグループに転送するマルチプロセッサコンピュータシステムにおいて使用される。相互接続リンクの数を、数百台または数千台のプロセッサを備えたコンピュータシステムに合わせて変更でき、またシステムパフォーマンスを、プロセッサ相互接続ネットワークの効率に基づき大幅に変更できる。接続の数、送信側の処理ノードと受信側の処理ノードの間の中間ノードの数、そして接続の速度またはタイプは全て、相互接続ネットワークパフォーマンスにおける1つの要素である。
特開2004−294568号公報
同様に、ネットワークトポロジーや、処理ノードどうしの結合に使用する接続パターンによってもパフォーマンスが影響を受けるので、積極的な研究の余地がある。数十台のプロセッサを備えたシステム内で各ノードを相互に直接つなぐことは実用的でなく、プロセッサの数が数千台に達した場合にはほとんど不可能となる。
さらに、特に長距離接続または高速の光ファイバリンクを必要とする場合には、通信インターフェース、ケーブル、その他の要素のコストによって、不十分な設計または非効率なプロセッサ相互接続ネットワークのコストが大幅にかさんでしまう。そのため、プロセッサ相互接続ネットワークの設計者にとっては、総リンク数、プロセッサ相互接続ネットワークのコストおよび複雑性を制御しながら、様々な処理ノード間に高速かつ効率的な通
信を提供することが課題になっている。
したがって、ネットワークのトポロジーまたはマルチプロセッサコンピュータシステムにおいて、どのように1つの処理ノードを別のノードにどのようにしてつなぐか決定するために使用される方法が関心範囲となる。
本発明は1例において、複数のプロセッサノードと複数のルータとを設けたDragonflyプロセッサ相互接続ネットワークを実装したマルチプロセッサコンピュータシステムを備える。ルータは、例えばローカルルーティングテーブルおよびグローバルルーティングテーブル、最小および非最小ルーティングテーブルのような、1または複数のルーティングテーブルに基づき、Dragonflyネットワーク内のターゲットノードから宛先ノードまでの複数のネットワークパスの中からネットワークパスを選択することによって、データをルーティングするように動作する。
本発明の例示的な一実施形態と一致するDragonflyネットワークトポロジーのブロック図である。 本発明の例示的な一実施形態と一致する、ノードにおけるDragonflyネットワークのスケーラビリティを、様々なルータ基数について示したグラフである。 本発明の例示的な一実施形態と一致するDragonflyネットワークトポロジーを示すブロック図である。 本発明の或る例示的な実施形態と一致するDragonflyネットワークトポロジーグループのブロック図である。 本発明の例示的な一実施形態と一致する、仮想チャネルを使った最小ルーティングおよび非最小ルーティングを示すDragonflyネットワークのブロック図である。 本発明の例示的な一実施形態と一致する、様々なルーティングアルゴリズムについてのレイテンシ対供給負荷を、様々なトラフィックパターンを使用して示したグラフである。 本発明の例示的な一実施形態と一致する、中間ノードからのバックプレッシャを使用する、グローバルチャネル経由の適応型ルーティングを示す、Dragonflyトポロジーネットワークのノードグループ線図である。 従来のクレジットフロー制御を示すノード線図である。 本発明の例示的な一実施形態と一致する、クレジットラウンドトリップレイテンシ追跡を示すノード線図である。 本発明の例示的な一実施形態と一致するルータ構成を示す。 本発明の例示的な一実施形態と一致する、Dragonflyプロセッサ相互接続ネットワークにおけるノードグループを示す。 本発明の例示的な一実施形態と一致する、Dragonflyプロセッサ相互接続ネットワーク内のいくつかのノードグループ間での接続を示す。 本発明の例示的な一実施形態と一致する、Dragonflyプロセッサ相互接続ネットワークルータのためのルータテーブル構成を示す。
以下の本発明の例示的な実施形態の詳細な説明では、特定の例を図面と例証の方法により参照する。これらの例は、当業者が本発明を実施するために十分詳細に説明され、どのようにして本発明を様々な目的または実施形態に応用できるか例証する役割を果たす。本発明の他の実施形態が存在し、それらは本発明の範囲内に入り、また、本発明の課題または範囲から逸脱しない限り、論理的、機械的、電気的な変更、さらにその他の変更を加え
ることができる。ここで記述している本発明の様々な実施形態の特徴または制限は、これらが援用されている例示的な実施形態にとって必須であるが、本発明全体を制限することはなく、また、本発明、およびその要素、操作、用途のいかなる参照も本発明全体を限定することはなく、これら例示的な実施形態を定義するためだけに貢献する。したがって、以下の詳細な説明は、添付の請求の範囲によってのみ定義される本発明の範囲を限定するものではない。
相互接続ネットワークは、ハイエンドルータおよびスイッチ用のスイッチングファブリックとしての、マルチプロセッサ内のプロセッサおよびメモリを接続するために、そして、I/Oデバイスを接続するために幅広く使用されている。マルチプロセッサコンピュータシステム内のプロセッサおよびメモリのパフォーマンスが向上を続けるに従って、相互接続ネットワークのパフォーマンスがシステム全体のパフォーマンスを決定する中心的役割となっている。ネットワークのレイテンシと帯域幅は、遠隔メモリアクセスレイテンシおよび帯域幅の大部分を確立する。
一般に、優れた相互接続ネットワークは、利用可能な技術の能力と制約とから大きく離れない範囲で設計される。例えば少数のポートを維持してポート毎の帯域幅を増加させるのではなく、増加した帯域幅を使ってルータ毎のポートの数を増やす高基数ルータの使用は、ルータピン帯域幅を増加させることによって、動機付けられた。高基数ネットワークを採用した最初のシステムの1つである、クレイ社のBlack Widowシステムは、折り返しクロス(Folded Clos)トポロジーの変異型と基数64(radix−64)ルータを使用する。これは従来の低基数3次元トーラスネットワークからの重要な新発展である。近年、経済的な光信号通信の登場によって、長距離チャネルを伴ったトポロジーが可能である。しかしこれらの長距離型の光チャネルは、短距離の電気チャネルよりも依然として遥かに高額である。そこで、ルータをグループ化してネットワークの有効基数をさらに増加させる先進の光信号通信技術を利用したDragonflyトポロジーが導入された。
ネットワークのパフォーマンスとコストの両方は、相互接続ネットワークのトポロジーによって大きく左右される。ネットワークコストは、チャネルコスト、特に長距離型でグローバルなキャビネット間チャネルのコストによってそのほとんどが占められる。そのためグローバルチャネルの数を減らすことによって、ネットワークコストも大幅に低減できる。パフォーマンスを低下させずにグローバルチャネルの数を減らすには、平均パケットがトラバースするグローバルチャネルの数を減らす必要がある。Dragonflyトポロジーは、最小ルーティングを使用することによって、各パケットがトラバースするグローバルチャネルの数を1にまで低減する。
(Dragonflyトポロジーの例)
この1つのグローバル直径(global diameter)を達成するには、約2√N(ここで、Nはネットワークのサイズである)という非常に高基数のルータを使用する。基数64のルータは既に導入されており、また基数128(radix−128)も実行可能であるが、従来の非常に高基数のルータ技術を使用して各パケットが1グローバルホップのみに限定される場合には、8K〜1Mノードの規模のマシンを作るために、これよりも遥かに高い数百または数千という基数が必要となる。各ノードにつき数百台または数千台のポートを設けずに、ルータによってこの非常に高基数の恩恵を達成するために、Dragonflyネットワークトポロジーは、サブネットワーク内に接続したルータグループを、非常に高基数の仮想ルータとして使用することを提案する。この非常に高い有効基数によって、全ての最小ルータが最大1本のグローバルチャネルをトラバースするネットワークを構築することが可能になる。さらに先進の光信号通信技術の能力を利用することによって、グローバルチャネルの物理長も増す。
Dragonflyトポロジー上の幅広いトラフィックパターンにおいて優れたパフォーマンスを達成するには、グローバルチャネルにかけて効率的な負荷分散が可能なルーティングアルゴリズムを選択することが必要となる。グローバル適応型ルーティング(UGAL)は、ルーティング決定を行うソースルータにおいてグローバルチャネルの負荷を利用できる場合に、このような負荷分散を実行することが可能である。しかしDragonflyトポロジーを用いた場合、ソースルータは、当該のグローバルチャネルに接続されていないことがほとんどである。したがって適応型ルーティング決定は、遠隔または間接的な情報に基づき行われる。
従来のUGAL(ローカルキュー占有率を使用してルーティング決定を行う)を使用している場合には、この決定の間接的な性質は、レイテンシとスループット両方の劣化を招く。我々は、DragonflyネットワークトポロジーのUGALルーティングアルゴリズムに対しこの制限を克服する2つの修正を加えることを提案したところ、グローバル情報を使用した理想的な実現に近いパフォーマンス結果が得られた。UGAL(UGAL−VC H)に選択的な仮想チャネル分別を追加することで、最小パスおよび非最小パス間でのローカルチャネル共有による帯域幅の劣化が排除される。クレジットラウンドトリップレイテンシを、グローバルチャネル輻輳の感知と、この輻輳情報の上り伝播(UGAL−CR)の両方に使用すると、輻輳の感知にキュー占有率のみを使用した場合よりも遥かに力強いバックプレッシャが提供され、レイテンシの劣化が排除される。
高基数ネットワークでは、低基数ネットワークと比べてネットワークの直径は縮小するが、ケーブルは長距離化する。信号通信技術の進化と近年におけるアクティブ光ケーブルの開発によって、長距離ケーブルを使用した高基数トポロジーの実現が容易化される。
相互接続ネットワークは、パッケージング階層に組み込まれる。最下位レベルでは、ルータは、回路基板を介して接続され、次にこれらがバックプレーンまたはミッドプレーンを介して接続されている。1または複数のバックプレーンがキャビネット内に梱包され、且つ複数のキャビネットが電力ケーブルまたは光ケーブルによって接続されることによって、完全なシステムが形成される。多くの場合、ネットワークコストの大部分は、グローバル(キャビネット間)ケーブルとこれに関連するトランシーバによって占められる。ネットワークコストを最小化するためには、トポロジーは、利用可能な相互接続技術の特性、例えばコストおよびパフォーマンスと一致している必要がある。
距離が増すに従って表皮効果と誘電体吸収による信号減衰が直線的に増加するため、電力ケーブルの最大帯域幅は、ケーブルの長さが長くなると低下する。一般的な高性能信号通信速度(10〜20Gb/s)と技術パラメータの場合、電気信号通信パスは、回路基板内で約1m、ケーブル内で10mに制限される。これよりも長い距離では、信号通信速度を低減するかまたはリピータを挿入して、減衰を克服しなければならない。
光信号通信の歴史上、高コストが原因で、光信号通信の使用は非常に長距離や、コスト度外視でパフォーマンスを求める用途に限定されてきた。光ケーブルの固定費用は高いが、データを長距離にわたって銅ケーブルのデータ速度の数倍の速度で伝送する能力のために、光ケーブルの単位距離当たりのコストは、電力ケーブルよりも低くなる。現在の技術を使用して利用できるデータに基づくと、損益分岐点は10mである。10m未満の距離では、電気信号通信の方が安価である。10mを超えると、光信号通信がより経済的である。Dragonflyトポロジーは、このコストと距離の関係を利用する。グローバルケーブルの数を減らすことで、光信号通信の高い固定間接費が最小化され、グローバルケーブルを長くすることで、光ファイバのより低い単位当たりのコストの利点が最大化される。
Dragonflyは、本数の少ない長距離のグローバルケーブルを使用するため、1kノード以上のネットワークではDragonflyのドルコストも平坦化したバタフライ(Flattened Butterfly)と好意的に比較され、4kノードまでのものについては約10%の節約、さらに4kノード以上のものについては約20%のコスト節約を、平坦化したバタフライトポロジーに関連して示している。これに比較すると、折り返しクロスおよび3次元トーラスネットワークは、大きなネットワークの直径をサポートするために多数のケーブルが必要であることで問題を抱える。1kノードだけのネットワークでは、Dragonflyのコストは3次元トーラスネットワークのコストの62%、折り返しクロスネットワークの50%である。このネットワークコストの低減はネットワーク消費電力の低減と直接相関するので、大型ネットワークにとっては、また、環境に優しいことが望ましい設置にとっては大きな利点となる。
ここで提示しているDragonflyネットワークの例示的な実施形態は、1つのルータグループを仮想ルータとして使用することによって、どのようにネットワークの有効基数が増加するか、さらに、これによってどのようにネットワークの直径、コスト、レイテンシが低減するか示している。Dragonflyトポロジーは、ネットワークにおけるグローバルケーブルの本数を減らしながらグローバルケーブルの長さを増加させるので、先進のアクティブ光ケーブル(固定費用は高いが、単位長さ当たりのコストは電力ケーブルよりも低い)を使用した実現に特に適している。Dragonflyネットワークは、グローバルチャネルにアクティブ光ケーブルを使用することによって、同じ帯域幅を用いる平坦化したバタフライと比べて20%、やはり同じ帯域幅を用いる折り返しクロスネットワークと比べて52%のコスト低減が可能である。
Dragonflyネットワークトポロジーの1例を示すために、Dragonflyトポロジーと、後述するルーティングアルゴリズムの例との説明において次の記号を使用する:
N ネットワーク端末の数、
p 各ルータに接続された端末の数、
a 各グループにおけるルータの数、
k ルータの基数、
k_ グループの有効基数(または仮想ルータ)、
h 他のグループに接続するために使用された各ルータ内のチャネルの数、
g システム内に存在するグループの数、
q 出力ポートのキュー深度、
qvc それぞれの出力VCのキュー深度、
H ホップカウント、
Outi ルータ出力ポートi。
Dragonflyトポロジーは、図1に示すように、ルータ104、105、106、グループ101、102、103、システム、の3レベルで構成された階層ネットワークである。ルータレベルにて、各ルータはp個のノードに接続し、a−1個のローカルチャネルは同じグループ内の他のルータに接続し、h個のグローバルチャネルは他のグループ内のルータに接続している。したがって各ルータの基数(または度数)は、k=p+a+h−1と定義される。グループは、図1の符号101で示すように、ローカルチャネルで形成されたグループ間相互接続ネットワークを介して接続したa個のルータで構成されている。各グループは端末へのap個の接続を有し、グローバルチャネルへのah個の接続を有しており、また、1グループ内の全てのルータは、基数k’=a(p+h)を伴う仮想ルータとして集合的に機能する。この非常に高い基数k’>>kにより、非常に小さいグローバル直径でのシステムレベルネットワークの実現が可能になる(任意の2つのノ
ード間の最小パス上に、最大数の高価なグローバルチャネルを設けている)。最大でg=ah+1までの数のグループ(N=ap(ah+1)個の端末)を1のグローバル直径に接続することができる。これに対し、基数k個のルータで直接構築したシステムレベルネットワークでは、より大きなグローバル直径が必要となる。
最大サイズ(N=ap(ah+1))のDragonflyでは、各1対のグループの間には厳密に1つの接続しか存在しない。これよりも小規模のDragonflyでは、各グループ以外との接続以外のグローバル接続の方が、他のグループとの接続よりも多い。これらの追加的なグローバル接続は、複数のグループにかけて分布しており、この複数のグループは、少なくとも_ah+1g_本のチャネルで接続した各1対のグループ毎にまとめられている。
Dragonflyパラメータa、p、hは、任意の値であってよい。しかしチャネル負荷を分散させるために、この例のネットワークは、a=2p=2hを有する。各パケットは、その経路に沿って、1本のグローバルチャネルと1本の端末チャネルの合計2本のローカルチャネル(グローバルチャネルの各終端部分につき1本ずつ)をトラバースするので、この比率によってバランスが保たれる。グローバルチャネルは高価であるため、或る実施形態では、ローカルチャネルと端末チャネルを過剰供給して高価なグローバルチャネルが十分に利用される状態を保つ方法によって、この2:1の比率からの逸脱を行っている。つまり、このような例では、a≧2h、2p≧2hとなるようにネットワークのバランスをとっている。
バランスのとれたDragonflyのスケーラビリティを図2に示す。有効基数を増加することでDragonflyトポロジーは高度にスケーラブルとなり、基数64ルータを用いた場合、トポロジーは、わずか3のホップ数でネットワークの直径256kノード以上にまでスケーリングされる。図1のグループ内およびグループ間ネットワークには、任意のネットワークを使用できる。本明細書で提示する例は、両方のネットワークについて、1次元の平坦化したバタフライまたは完全接続型トポロジーを使用している。図3に、Dragonflyの単純な例を示す。ここではp=h=2(ルータ1つにつき処理ノード2つ、そして、各ルータ内には他グループに接続したチャネル2本が設けられている)、a=4(各グループ内にルータ4つ)であり、これが、k=7(基数7)のルータを用いて、N=72(ネットワーク内の72ノード)にスケーリングされる。図3のグループGが8つのグローバル接続と8つのノード接続を有するので、仮想ルータを使用することによって、有効基数がk=7からk’=16にまで増加する。
グループ内ネットワークにより高次元のトポロジーを使用することによって、グローバル基数k’をさらに増加することができる。さらに、このようなネットワークは、グループ内でのパッケージ化の局所参照性も利用する。例えば図4の符号401が示す2次元の平坦化したバタフライは、図5に示すグループと同じk’を有するが、より多くの帯域幅をローカルルータに提供することによって、パッケージ化局所参照性を利用する。図4の符号402では、3次元の平坦化したバタフライを使用して、有効基数をk’=16からK’=32に増加することによって、図1のものと同じk=7のルータを使用してトポロジーを最大N=1056にまでスケーリングできるようにしている。
Dragonflyのような高基数ネットワークの端末帯域幅を増加するために、チャネルスライシングを採用することができる。チャネルを幅広くするのではなく(この場合、ルータ基数が減少してしまう)、複数のネットワークを並列接続して容量を追加することができる。同様に或る実施形態では、Dragonflyトポロジーは、ネットワーク容量を追加するために、並列ネットワークを利用することもできる。これに加えて、ここまで説明したDragonflyネットワークでは、ネットワーク内の全てのノードに均
等な帯域幅を仮定した。しかしこのような均等な帯域幅が不要な場合には、いくつかのグループからグループ間チャネルを除去することによって、帯域幅のテーパリングを実現することが可能である。
(Dragonflyルーティングの例)
様々な最小および非最小ルーティングアルゴリズムは、Dragonflyトポロジーを使用して実現できる。ローカル情報を使用するグローバル適応型ルーティングの或る実施形態は、中間負荷にて、スループットの制限と非常に高いレイテンシを招く。これらの問題を克服するために、我々はグローバル適応型ルーティングに、理想的なグローバル適応型ルーティングの実現にアプローチするパフォーマンスを提供できる新たなメカニズムを導入する。
Dragonflyにおける、グループGs内のルータRsに取り付けたソースノードsからグループGd内のルータRdに取り付けた宛先ノードdまでの最小ルーティングが、1本のグローバルチャネルをトラバースし、これは次の3つのステップで達成される:
ステップ1:Gs_=Gdであり且つRsがGdと接続していない場合、Gs内でRsからRa(Gdへのグローバルチャネルを有するルータ)までをルーティングする。
ステップ2:Gs_=Gdである場合、グローバルチャネルを、RaからGd内のルータRbに到達するまでトラバースする。
ステップ3:Rb_=Rdである場合、Gd内でRbからRdまでルーティングする。
この最小ルーティングは、負荷分散トラフィックには上手く適応するが、これと対抗するトラフィックパターン上では満足なパフォーマンスが得られない。対抗するトラフィックパターンを負荷分散させるためには、ヴァリアント(Valiant)のアルゴリズムをシステムレベルに適用して、各パケットをまずランダムに選択した中間グループGiに、次にその最終宛先dにルーティングすることができる。ヴァリアントのアルゴリズムをグループに適用することによって、グローバルチャネルとローカルチャネルの両方の上の負荷は、十分に分散される。このランダム型の非最小ルーティングは、最大で2本のグローバルチャネルをトラバースし、また、次の5つのステップを必要とする:
ステップ1:Gs_=Giであり且つRsがGiと接続していない場合、Gs内でRsからRa(Giへのグローバルチャネルを有するルータ)までをルーティングする。
ステップ2:Gs_=Giである場合、グローバルチャネルを、RaからGi内のルータRxに到達するまでトラバースする。
ステップ3:Gi_=Gdであり且つRxがGdと接続していない場合、Gi内でRxからRy(Gdへのグローバルチャネルを有するルータ)までをルーティングする。
ステップ4:Gi_=Gdである場合、グローバルチャネルを、RyからGd内のルータRbに到達するまでトラバースする。
ステップ5:Rb_=Rdである場合、Gd内でRbからRdまでをルーティングする。
ルーティングデッドロックを防ぐためには、図5に示すように、最小ルーティングに2本の仮想チャネル(VC)を採用し、また、非最小ルーティングの場合は3本の仮想チャネルが必要である。これらの仮想ルータを指定することで、ルーティングによって生じるチャネル依存が全て排除される。いくつかの用途では、プロトコルデッドロックを回避するために追加の仮想チャネルが必要になることがある。例えば共有メモリシステムでは、メッセージの要求と応答のために仮想チャネルの別個のセットが必要になることがある。
次のようなDragonflyトポロジーのための様々なルーティングアルゴリズムが評価されてきた:
最小(MIN):先述したように最小パスを経る。
バリアント(VAL)[32]:先述したランダム型の非最小ルーティング。
ユニバーサルグローバル適応型負荷分散[29]:ネットワークを負荷分散するために、(UGAL−G,UGAL−L)UGALが、MINとVALの中からパケットバイパケットに基づき選択する。この選択は、ネットワーク遅延を推定するためにキュー長とホップカウントを使用し、遅延が最も小さいパスを選択することによって行われる。我々は、次の2つのバージョンのUGALを実現する。
UGAL−L:現在のルータノードでのローカルキュー情報を使用する。
UGAL−G:Gs内の全てのグローバルチャネルのためのキュー情報を使用する(他のルータ上のキュー長がわかっていると仮定する)。ローカルチャネルではなくグローバルチャネルの負荷分散が必要なので、これは実現が困難である一方で、UGALの理想的な実現を表すものである。
図6に示すように、BENIGNパターンと、これに対抗する合成トラフィックパターンとの両方を使用して、異なるルーティングアルゴリズムを評価する。符号601の均等なランダムトラフィックと、これに対抗する符号602のトラフィックとの両方を使用して、4つのルーティングアルゴリズムについてのレイテンシ対供給負荷を示す。合成トラフィックパターンを使用することで、ネットワークを十分に評価するためにトポロジーとルーティングアルゴリズムを強調できるようになる。図6の符号601で示すように、均等ランダム型(UR)のようなBENIGNトラフィックでは、MINで十分に低レイテンシと高スループットを提供できる。VALは、その負荷分散によってグローバルチャネル上の負荷が2倍になるので、ネットワーク容量の約半分を達成する。UGAL−GとUGAL−Lの両方はMINのスループットと似ているが、これらの方が飽和付近でのレイテンシが若干高い。この若干高いレイテンシは、並列またはグリーディ割当の使用によって生じる。並列またはグリーディ割当の使用では、各ポートにてルーティング決定は、並列に行われる。逐次割当を使用することによって、より複雑なアロケータの犠牲の上にレイテンシは、短縮する。
Dragonflyでの適応型ルーティングは、ルータ出力ではなく、グローバルチャネル、グループ出力のバランスを取る必要があるため、課題が伴う。これによって、間接的なルーティング問題が生じる。各ルータは、グローバルチャネルの状態に間接的にのみ依存するローカル情報だけを使用して、使用するグローバルチャネルを選ぶ。先行技術によるグローバル適応型ルーティング方法は、ネットワーク輻輳を正確に推定するために、ローカルキュー情報、ソースキュー、出力キューを使用する。これらのケースでは、開始させた経路上の輻輳を直接示すローカルキューは、グローバル輻輳の正確なプロキシである。しかしDragonflyトポロジーを使用した場合には、ローカルキューは、ローカルチャネルにかかるバックプレッシャを介してグローバルチャネル上の輻輳を感知するだけである。ローカルチャネルを過剰提供した場合、ソースルータが輻輳を感知する以前に、過負荷状態の最小経路上で著しい数のパケットをエンキューしなければならない。これによって、先に図6の符号602で示したように、スループットとレイテンシが低下してしまう。
UGAL−Lに伴うスループットの問題は、1本のローカルチャネルで最小および非最小トラフィックの両方を扱うことが原因で生じる。例えば図7では、R1のパケットは、gc7を使用する最小パスと、gc6を使用する非最小パスとを設けている。両パスは、
同じR1からR2までのローカルチャネルを共用する。両パスが同じローカルキューを共用し(したがって、同じキュー占有率を有する)、最小パスの方が非最小パスよりも短いため(グローバルホップ:1対2)、常に最小チャネルが選択される。これは、たとえパスが飽和状態にある時でも同じである。これによって最小グローバルチャネルが過負荷状態となるため、この最小チャネルと同じルータを共用している非最小グローバルチャネルは、利用されなくなってしまう。UGAL−Gを使用することで、最小チャネルが優先され、負荷は、全ての他のグローバルチャネルにかけて均等に分散される。これに対しUGAL−Lを使用することで、最小グローバルチャネルを含んでいるルータの非最小チャネルが利用されなくなり、その結果、ネットワークスループットは、低下する。
この制限を克服するために、それぞれの仮想チャネル(UGAL−LVC)を使用することによって、キュー占有率を最小成分と非最小成分に分けるようにUGALアルゴリズムを修正する:
if (qm vcHm ≦ qnm vcHnm)
route minimally;
else
route nonminimally;
ここで、添字mは最小パスを、nmは非最小パスを示す。図5の仮想チャネル割当を使用すれば、qm vc=q(V C1)およびqnm vc=q(V C0)となる。
比較すると、UGAL−LVCはWCトラフィックパターン内のUGAL−Gのスループットと一致するが、URトラフィックでは、スループットの制限により、スループットが約30%低下する。ほとんどのトラフィックを非最小で送信する必要があるWCトラフィックの場合、最小キューが負荷の大きな状態となっているため、UGAL−LVCが上手く機能する。しかし、ほとんどのトラフィックを最小で送信する必要がある時に負荷分散されたトラフィックを用いると、それぞれの仮想チャネルがチャネル輻輳の正確な表示を提供せず、その結果、スループットが低下してしまう。
この制限を克服するために、我々は、最小パスと非最小パスが同一の出力ポートから開始する場合にのみキュー占有率を最小成分と非最小成分に分けるように、UGALアルゴリズムをさらに修正する。我々のハイブリッド修正版のUGALルーティングアルゴリズム(UGAL−LVCH)は、次のとおりである:
if (qmHm≦qnmHnm && Outm_=Outnm)||(qm vcHm≦qnm vcHnm && Outm=Outnm)
route minimally;
else
route nonminimally;
UGAL−LVCと比較すると、UGAL−LVC Hが提供するスループットは、WCトラフィックパターン上のものと同じであるが、URトラフィック上のUGAL−Gのスループットに一致し、それ故に、飽和状態に近い0.8の供給負荷での高い方のレイテンシのほぼ2倍となる。WCトラフィックでは、UGAL−LVCHは、中間レイテンシもUGAL−Gのものと比べて高くなる。
このUGAL−Lの高い中間レイテンシは、輻輳を感知する前に、ソースと輻輳ポイントとの間のチャネルバッファが最小経路で送られたパケットで充填されることで生じる。我々の研究では、非最小経路で送られたパケットはUGAL−Gと比較可能なレイテンシ曲線を有する一方で、最小経路で送られたパケットは著しく高いレイテンシに遭遇することが示されている。入力バッファが増加すると、最小経路で送られたパケットのレイテンシが増加し、パケットのレイテンシは、バッファの深さに比例する。レイテンシ分布のヒストグラムは、次の2つの明白な分布を示している。1つは、非最小パケットについての
レイテンシが低い大きな分布であり、他の1つは、パケット数が制限されているが、最小パケットについてのレイテンシが遥かに高い分布である。
UGAL−Lに伴うこの問題を理解するために、図7に示すDragonflyグループの例において、R1のパケットは、gc0を介して最小のルーティング、またはgc7を介して非最小のルーティングのいずれを行うかについてのグローバル適応型ルーティング決定を行っていると仮定する。ルーティング決定は、グローバルチャネル利用の負荷分散を行う必要があり、またチャネル利用をグローバルチャネルq0、q3に関連したキューから得られることが理想的である。しかし、q0、q3キュー情報はR0、R2でしか利用できず、R1ではまだ利用できる状態にないので、ルーティング決定は、R1で利用できるローカルキュー情報を介して間接的にしか行えない。
この例では、q1はq0の状態を反映し、q2はq3の状態を反映する。q0またはq3のどちらかがフル状態である場合には、図7の矢印で示すように、フロー制御によってq1とq2にバックプレッシャが提供される。その結果、安定した状態の測定が得られ、スループットの正確な測定にこれらのローカルキュー情報を使用できるようになる。スループットは、レイテンシが無限大になると(またはキュー占有率が無限大になると)供給負荷として定義されるため、このローカルキュー情報で十分である。しかしq1がgc0の輻輳を反映でき、且つR1がパケットを非最小経路で送ることができるようにするには、q0は、完全にフル状態になる必要がある。したがってローカル情報を使用するには、数個のパケットを犠牲にして正確な輻輳を決定することを要し、その結果、最小で送られているパケットのレイテンシが遥かに高くなってしまう。負荷が増加するに従って、最小経路で送られたパケットのレイテンシは増加し続けるが、より多くのパケットが非最小で送られるようになり、その結果、飽和までの平均レイテンシは、低下する。
ローカルキューがグローバル輻輳の優れた推定を提供できるようにするには、グローバルキューが完全にフル状態となり、ローカルキューに向けて力強いバックプレッシャを提供する必要がある。バックプレッシャの力強さはバッファの深さに反比例し、バッファが深いほどバックプレッシャの伝播に時間がかかり、バッファが浅いほど遥かに力強いバックプレッシャが提供される。バッファサイズが減少するに従って、バックプレッシャが力強くなるため、中間負荷におけるレイテンシは、低下する。しかし使用するバッファの数を減らすと、ネットワークスループットの低下という犠牲を払うことになる。
高い中間レイテンシを克服するために、我々は、クレジットラウンドトリップレイテンシを使用して、高速な輻輳の感知とレイテンシの低減を図ることを提案する。図8に示すクレジットベースのフロー制御では、下流バッファについてクレジットカウントが維持される。パケットが下流に送られるに従い、適切なクレジットカウントが減少してゆくが、パケットが下流ルータを離れるとクレジットは上流に送り戻され、クレジットカウントが増加する。クレジットが戻るためのレイテンシはクレジットラウンドトリップレイテンシ(tcrt)と呼ばれ、下流に輻輳がある場合にはパケットが直ぐに処理されないため、結果としてtcrtが増加する。
図8を参照すると、図8Aでは従来のクレジットフロー制御を示している。パケットが下流に送信されると(1)、出力クレジットカウントが減少し(2)、クレジットが上流に送り戻される(3)。図8Bでは、このスキームが、ネットワーク内の輻輳を推定するためにクレジットラウンドトリップレイテンシを使用するように修正される。減少している出力クレジットカウント(2)に加えて、CTQで示すクレジットタイムキュー内にタイムスタンプが押し込まれる。クレジットを上流に送り戻す前に(4)、クレジットが遅延し(3)、また、下流のクレジットが受信されると(5)、クレジットカウント並びにクレジットラウンドトリップレイテンシtcrtがアップデートされる。
tcrtの値を、グローバルチャネルの輻輳を推定するために使用できる。我々は、上流クレジットを遅延させるためにこの情報を使用することで、バックプレッシャを力強くして、輻輳情報をより高速に上流に伝播できるようにした。各出力Oについて、tcrt(O)が測定され、量td(O)=tcrt(O)−tcrt0がレジスタに記憶される。次に、クレジットを即座に上流に送り戻す代わりに、フリットを出力Oに送信する場合には、クレジットはtd(O)−min[td(o)]だけ遅延される。グローバルチャネル上で送信されるクレジットは遅延しない。これによってこのメカニズムに周期ループが存在しないことが保証され、グローバルチャネルを十分に利用できるようになる。
戻されるクレジットの遅延によって、力強いバックプレッシャを作るための、より浅いバッファが提供される。しかしバッファ全体が利用され、高負荷においてスループットの低下が生じないことを保証するために、全ての出力にかけてクレジットをtdの変動分だけ遅延させる必要がある。我々は、この変動を、min[td(o)]値を求め、差分を使用することによって推定する。クレジットを遅延させることで、上流ルータが輻輳を(キューが充填されるのを待つ時と比べて)より高速で観察し、より優れたグローバル適応型ルーティング決定が得られるようになる。
WCおよびURトラフィックの両方について、クレジットレイテンシ(UGAL−LCR)を使用したUGAL−Lルーティングアルゴリズム評価が、深さ16と256のバッファを使用して調査される。UGAL−LCRはUGAL−Lと比べてレイテンシを著しく低下させ、UGAL−Gのレイテンシ近くにまでする。WCトラフィックについて、UGAL−LCRは、深さ16のバッファでレイテンシを最大35%低下させ、また、深さ256のバッファで中間レイテンシを最大で20分の1に低下させた(低下率はUGAL−Lとの比較)。UGAL−Lとは違い、UGAL−LCRの中間レイテンシはバッファサイズと無関係である。URトラフィックについて、UGAL−LCRは、飽和付近にてレイテンシを、UGAL−LVC Hと比較し最大50%低下させる。しかし、UGAL−LCRとUGALLVC Hの両方共、そのローカル情報が不正確なためにいくつかのパケットが非最小でルーティングされてしまうので、URトラフィックを伴うUGAL−Gのスループットには達しない。
このスキームを実現した結果、各ルータ側に必要なのは次の3つの特徴であるため、複雑性にかかる間接費は最小であった。
・tcrtを測定するために個々のクレジットの追跡、
・td値を記憶するためのレジスタ、
・クレジットを戻す際の遅延メカニズム。
必要なtd記憶量は、O(k)レジスタのみが必要であるため最小量である。クレジットはデータフリット上にピギーバックされて戻されることが多く、また、次の上流でのデータフリットの送信を待つために、クレジットを遅延させる必要がある。提案したこのメカニズムに必要なことは、さらなる遅延を追加することだけである。
個々のクレジットの追跡については、従来から、クレジットは、クレジットフロー制御においてクレジットのプールとして追跡されており、つまり、各出力仮想チャネルにつき1つのクレジットカウンタが維持され、このクレジットカウンタは、クレジットが受信されると増加する。UGAL−LCRの実現には、各クレジットを個別に追跡する必要がある。これは、図8Bに示すように、フリットが送信される度に、クレジットタイムスタンプキュー(CTQ)を使ってキューの末尾にタイムスタンプを押し、該当するクレジットが到着したらキューの先頭からタイムスタンプを取り出すことによって実行されうる。フリットとクレジットの割合は1:1であり、オーダリングを維持するので、ラウンドトリ
ップクレジットレイテンシの測定には単純なキューで十分である。キューの深さはデータバッファの深さに比例していなければならないが、キューサイズは、輻輳の測定に不正確な情報を利用するために縮小されうる(例えば、データバッファサイズの1/4のサイズのキューを設ければ、輻輳の測定を行うために、4個のクレジットのうちの1個のみを追跡すればよくなる)。
Dragonflyトポロジーにかかるコストも、平坦化したバタフライや他のトポロジーのコストと比較して優れている。平坦化したバタフライトポロジーは、中間ルータとチャネルを除去することによってButterflyのネットワークコストを低減する。その結果、平坦化したバタフライは、バランスの取れたトラフィック上での折り返しクロスと比べてコストが約50%低減する。Dragonflyトポロジーは、ルータの有効基数を増加して、さらなるコスト低減およびネットワークのスケーラビリティを向上することによって、平坦化したバタフライを拡張する。
各々64k個のノードを接続したDragonflyネットワークと平坦化したバタフライネットワークを比較したところ、平坦化したバタフライがグローバルチャネル用ルータポートの50%を使用する一方で、Dragonflyはグローバル接続用ポートの25%を使用することを示した。平坦化したバタフライは2つの次元を追加する必要があるが、Dragonflyは1次元である。さらにDragonflyでは、グループサイズを増加してネットワークのスケーリングが可能なので、より優れたスケーラビリティが得られるのに対し、平坦化したバタフライでは次元を追加する必要がある。Dragonflyは、ホップカウントがほぼ同一な状態であれば、より長い方のグローバルケーブルを相殺してグローバルケーブルの本数を減少させることによって、先進の信号通信技術に適合する、よりコスト効果的なトポロジーを提供する。
ここで説明しているDragonflyネットワークの様々な実施形態も、Dragonflyが呈する間接的な適応型ルーティングの課題を克服する、グローバル適応型ルーティングの2つの新たなバリアントを備える。一般に、Dragonflyルータは、同一グループ内の別のルータに取り付けられているグローバルチャネルの状態に基づきルーティング決定を行う。この遠隔チャネルの状態を推論するためにローカルキュー占有率を使用する従来のグローバル適応型ルーティングアルゴリズムは、スループットとレイテンシとを低下させてしまう。そこで我々は、仮想チャネル分別の選択的な使用を導入することによって、帯域幅の減少を克服する。さらに我々は、チャネル輻輳を感知してこれを信号通信するために、クレジットラウンドトリップレイテンシも使用する。この2つの技術を組み合わせることによって、遠隔チャネル状態を完全に知得した理想的なアルゴリズムのパフォーマンスに近づくよう試みるグローバル適応型ルーティングアルゴリズムが得られる。
(Dragonflyネットワークにおける革新的な適応型ルーティング)
ここでは、輻輳リンクまたはダウンしたリンクに基づき複数の正当な経路の中から選択を行うよう動作可能な、デッドロックを回避する適応型ルーティングを提供することによって、Dragonflyプロセッサ相互接続ネットワークのための向上したルーティング方法を提案する。この適応型ルーティング方法は、向上したルーティングパフォーマンスを提供することと、ダウンしたリンクまたはトラフィックの多いリンクを許容することを従来の方法よりも上手く行い、さらに帯域幅に悪影響を与えるクレジットを保留するのではなく、チャネル上の輻輳を明快に通信させる。
或る実施形態では、ネットワーク経路は、例えば複数の異なる次元でのルーティングのような複数の最小経路からまず選択され、次に任意で、例えば輻輳リンクやダウンしたリンクを回避するためにランダム選択したホップを使用することによって、1または複数の
非最小経路からさらに選択される。
1例では、ルーティングの選択は、テーブルによって提示され、ネットワークの構成および状態に応じて、特定の経路、あるいは、最小経路または非最小経路に偏る可能性がある。例えば経路の選択が最高の効率のデフォルトによって最小ルーティングに偏るが、この偏りは、追加のトラフィックを任意または不必要に受信することから特定のネットワークリンクを保護するために、非最小ルーティングへの偏りに切り替わることもある。
或る実施形態では、輻輳情報は、例えば出力キュー内のメッセージ数のカウントのような要素から予測される次のリンク輻輳を導出し、伝送中のクレジットやメッセージのような要因に基づき受信バッファ輻輳の推定を確立することによって利用される。ノードは、潜在的な受信側ノードに、平均的な「次のリンク」出力の輻輳について問い合わせ、ノードが輻輳リンクまたはダウンしたリンクの回避に基づきルーティング決定を行えるようにすることができる。
図9は、本発明の例示的な実施形態と一致するDragonflyネットワークルータを示す。ここに示すルータブロックは、それぞれが入力/出力の対に対応した48個のタイルを備えている。タイルは8×6の行列に編成されているため、特定のタイルにおける入来パケットデータ(incoming packet data)を、8列のうちの1つにつながる行にかけてルーティングし、次に、8列を上って、または下って、6行のうちの1つにルーティングし、適切なタイルに到達させて出力させる。さらなる実施形態では、チャネルは、複数の仮想チャネルと、仮想チャネル伝送中切り換えと、SECDEDのようなエラー修復と、さらに、ネットワークパフォーマンスを向上するために必要に応じて仮想チャネルへの動的割当を含む入力バッファリングとを特徴とする。
再び図9の例を参照すると、タイルのうちの40個は外部ネットワークリンクに接続しており、8個はプロセッサノード域内のプロセッサコアに接続している。各タイルは、入力キュー、サブスイッチ、列バッファを備えている。入力キューは、シリアライザ/デシリアライザインターフェースからネットワークに送られたパケットを受信し、このパケットをどのようにルーティングするか決定する。パケットは、行バス上で、適当な列のサブスイッチへと送信される。サブスイッチは、このパケットを受信すると、これを適切な仮想チャネルへと切り換えてから、6列のバスのうちの1つを介して適切な行内の列バッファに送る。列バッファは、列内の6個のタイルからのパケットデータを収集し、これらをネットワークチャネル上で送信する。
この例におけるDragonflyネットワークトポロジーは、2層の平坦化したバタフライトポロジーで構成された階層ネットワークである。第1層は、コンピュータキャビネットやシャーシのようなローカルグループ内の全てのルータチップを接続する2次元の平坦化したバタフライである。各グループは、非常に高基数のルータとして扱われ、また、単一次元の平坦化したバタフライ(all−to−all)は、全てのグループを接続して、ここで示すDragonflyトポロジーの例の第2層を形成する。
グループ内の第1の次元は(便宜上「緑色」次元と呼ぶ)シャーシ内の16個のルータを接続する。グループ内の第2の次元は(同様に「黒色」次元と呼ぶ)、2キャビネットから成るグループ内の6個のシャーシを接続する。これは、図10のネットワーク「グループ」に示すネットワーク構成に反映されている。この図10のネットワーク「グループ」には、各シャーシにつき16個のルータ(16個の列で示す)で構成された6つのシャーシ(6つの行で示す)が図示されている。
図10に示したようなグループは、図11に示すように、「青色」次元のリンクを使用
してさらに相互結合する。これらのグループ間の「青色」リンクは、各グループを他の各グループと接続するものであり、接続可能な数は、この例では各グループにつき最大で240の青色リンク、または各システムにつき241グループである。各リンクは、例えば1つのリンクまたは1本の光ケーブルにつき4ポートというように、複数のポートを備えることができる。したがって4つのポートは、1本のケーブルでグループの各対に接続することになる。グループ数がより少ないシステムでは、各グループにつき240個の青色ポートのうちの未使用ポートを使用することによって、構成グループ間に追加の帯域幅を提供できる。これによって例えば、120個のグループで構成され、且つグループの各対を接続する8個のポートを提供しているネットワーク内部の各グループの対につき2つのリンクを設けることができる。
このネットワークでは、ソースノードからターゲットノードまでルーティングされるパケットは、図9、図10、図11に示した次元のうち少なくとも1つの次元、しかしおそらくは3つ全ての次元をトラバースする。3つ全ての次元をトラバースするルーティングパスは、まず緑色次元にルーティングされ、次に黒色次元に送られて、ターゲットグループとつながっているグループ内の適切なノードに達し、その後に青色次元にルーティングされて目的のターゲットグループに到達する。次にパケットは、グループ内の緑色次元と黒色次元とにルーティングされ、ターゲットグループ内の目的のターゲットノードに到達することによって、ターゲット到達までに、3つの次元における5つのルーティングを辿ったことになる。
一実施形態では、このネットワークは、適応型ルーティングと決定論的なルーティングの両方をサポートする。決定論的なルーティングは、ネットワーク輻輳に関係なく、所与のパケットをネットワーク上の定義済みの経路上に送信する。複数の決定論的なパスが利用可能である場合には、複数のパス間のトラフィックを分布させるために、宛先ノード、アドレス、または他の同様の特徴に基づき、決定論的なトラフィックをハッシュすることができる。或る実施形態では、ソース‐ターゲット間の全てのパケットは同一の決定論的なパスを使用するので、同一のソース‐ターゲット間を移動するパケットはターゲットに順番どおりに到達する。
適応型ルーティングによって、パケットは、ネットワーク内の輻輳レベルに基づき、複数の異なる経路を使用できる。或る実施形態では、適応型ルーティングを使用すると、パケットは元の順番と違うバラバラの順番で到着してもよく、また輻輳のために最小パスの回避が指示された場合には、非最小パスを使用してもよい。
Dragonflyにおける最小ルーティングは、パケットが所与の次元の最大1つのリンクをトラバースする際に生じる。したがって、例えば図10に示すようなグループ内の最小ルーティングは、「緑色」次元の最大1つのホップと、「黒色」次元の1つのホップとを使用する。異なるグループにあるノードどうしの間の最小パスは、各グループにおける、緑色次元の最大1つのホップと、黒色次元の1つのホップとを使用し、さらに追加の1つのホップを使用して、ソースグループからターゲットグループに移動する。
最初に黒色または緑色次元のどちらかをトラバースすることができるので、ソースグループと宛先グループとの両方に複数の最小パスが存在する。グループ間に複数のリンクが存在する場合には、1つのパスにおける、ソースグループと宛先グループのどちらかの黒色または緑色次元でのホップを0にすることによって、最小パスの完了に必要な総ホップ数を5未満に減らすことができる。
非最小ルーティングでは、ソースグループまたはターゲットグループ内の黒色または緑色いずれかの次元でのホップを複数にすることによって、総ホップ数を5以上にすること
ができる。ルータまでの最小パスまたは利用可能なパスに輻輳が発生している状況では、さらにホップを追加することによって、ターゲットへのメッセージ伝送速度を向上させる一方で、既に輻輳状態にあるネットワークリンクをさらに輻輳させないようにすることが望ましい。さらなる実施形態では、既に輻輳しているリンク周辺で同じパスを繰り返しルーティングした結果、輻輳したネットワーク領域をさらに作ってしまうことを回避するために、例えばパス選択をランダム化またはハッシュすることによって、トラフィックを利用可能なリンクにかけて拡散するべく試みる。
このような実施形態の1つでは、図10に示したようなグループから中間ノードを1つ選択することで、メッセージをまず最小経路でこの中間ノードまでルーティングし、次に中間ノードからグループ内の最終ノードまでルーティングできるようになる。これによって、緑色次元と黒色次元の各々で最大2ホップ、またはグループ内の最小ルーティングにおいてはその2倍のホップ数となる。ルーティングは、ソースグループ内で非最小、ターゲットグループ内で非最小、またはソースグループおよびターゲットグループの両方において非最小であってよい。
メッセージを、ソースグループとターゲットグループにおいて最小経路で、しかし両グループ間のリンクの輻輳を回避するために、ソースグループとターゲットグループの間の中間グループを経由させてルーティングする場合には、非最小ルーティングは、グループ間においても生じ得る。ソース、中間、ターゲットグループにおけるルーティングは、さらに、各グループでの輻輳に応じて最小または非最小であってよい。
一実施形態では、所与のパケットまたはメッセージに使用するルーティングのタイプは、パケットヘッダ内のルーティング制御フィールドによって決定される。例えばルーティング制御記号は、パケット順序を保つことが望ましい時には、決定論的な非最小ハッシュ化ルーティングを使用すべきであることを示してもよい。パケットは、ターゲットノードをハッシュとして使用することによって、利用可能な複数のパスにかけて分布される。トラフィックは非最小ルーティングされるが、パケットをグループ内の様々な中間ノード間に分布させることによって、ホットスポットまたは輻輳は、減少する。
決定論的な最小ハッシュ化ルーティングは、最小パス上でパケットのハッシュを提供するが、これは、緑色次元より前に黒色次元を、あるいは黒色次元より前に緑色次元というように、別の最小パス上でのルーティングを許可することによって所与グループ内のホップ数を減少させる。その結果、特定の状況においてはネットワークの重大な輻輳が発生する可能性があるので、これはグローバルトラフィックが特に均等に分布している場合を除き望ましくないかもしれない。
決定論的な最小非ハッシュ化ルーティングは、1つの決定論的な最小パスを全トラフィックに用いるが、これはパケット順序付けを提供する一方で、利用可能なパス間への優れた帯域幅や負荷分布を提供しない。このようなルーティングは、制御メッセージやレイテンシが問題になるメッセージといった、頻繁でないまたは小サイズのメッセージに使用できる。
順序付けが不要な場合には、適応型ルーティングをデフォルトルーティングタイプとして使用できる。パケットは、最小でのルーティングを試みるが、ネットワーク輻輳を回避するために、グループ内またはグループ間の非最小パスが使用されてもよい。或る実施形態では、適応型ルーティングは、ルーティングの選択を考慮するために、2つ以上の最小ポートおよび2つ以上の非最小ポートを提供するルーティングテーブルを使用することによって行われる。各ノードについて輻輳値が計算されることによって、または図9に示すルータタイルのようなルータ内のタイルの数が計算されることによって、同ルータ内の別
のタイルに分布される。この例では適応型ルーティングアルゴリズムは、利用可能な2つの最小パスと2つの非最小パスを考慮し、この中から、輻輳値に基づき、また任意で様々に構成したバイアスに基づき選択を行う。
さらなる実施形態では、下流ポート輻輳、推定される遠端リンク輻輳、近端リンク輻輳のような要素から、ポート輻輳値を導出する。特定の例では、2ビットの下流ポート輻輳情報は、ルータチップ内において各タイルに対応した外部チャネル上で伝播され、定期的に更新される。これらのビットは、送信ルータチップにおいて、チップ上の下流ポートの輻輳のビューを組合せることによって生成される。この2ビットの輻輳値に組み合わせられた下流ポートは、各タイルにおけるMMR構成可能マスクを介して選択される。これらの下流ポートの輻輳値を合計し、3つのプログラム可能な閾値と比較する。合計が最高閾値よりも大きい場合は、輻輳は2’b11である。合計が最高閾値未満であり、中間閾値よりも大きい場合は、輻輳は2’b10である。合計が中間閾値未満であり、最低閾値よりも大きい場合は、輻輳は2’b01である。あるいは、合計が最低閾値未満の場合は、輻輳は2’b00である。
チャネルの受信側にて、この2ビット値は、4ビット幅の下流輻輳リマッピングテーブルによって4つのエントリ内にインデックスされることによって、4ビット値にマッピングされる。推定された遠端リンク輻輳の計算は、過去にチャネルラウンドドリップレイテンシよりも長い距離で送信され、未だ確認応答されていないフリットの数を追跡し、フリット送信とその確認応答受信との相対値を調整することによって行われる。この計算を行うために使用するメカニズムは、5ビット幅、32エントリの深さの遅延チェーンである。MMR構成可能なサイクル数(1〜31)については、ルータは、この遅延チェーンの末尾位置に送信されたフリットの数をカウントする。この遅延の後に、全ての値がシフトされる。予想されるチャネル上の未だ確認応答されていないフリット(送信済みで、確認応答が予想されるもの)の総数は、このチェーン内の値の合計である。この値を、未だ確認応答されていないクレジットカウントと比較する。未だ確認応答されていないクレジットの総数から、予想されるチャネル上のフリットを引くと、遠隔入力キューに記憶されるフリットの推定数が得られる。
推定される遠端輻輳は、10ビット数として計算される。この数値をマッピングテーブルに従って4ビットインデックスに変換し、次にこの4ビット数を、16エントリ遠端輻輳リマッピングテーブル内にインデックスすることによって、別のプログラム可能な4ビット値にリマッピングする。
近端リンク輻輳は、列バッファ内にキューイングされ、リンク上で送信されるのを待っている状態のフリットを合計することによって計算される。この合計も10ビット値であり、マッピングテーブルに従って4ビット値に変換される。次にこの4ビット数を、16エントリ近端輻輳リマッピングテーブル内にインデックスすることによって、別のプログラム可能な4ビット値にリマッピングする。
このリマッピングされた4ビットの下流ポート輻輳値と、リマッピングされた4ビットの遠端リンク輻輳値と、さらにリマッピングされた4ビットの近端リンク輻輳値とを互いに組合わせることによって、1つの4ビット輻輳値をタイル毎に生成する。この組み合わせは、4ビット3入力符号なし飽和加算として行う。この4ビット輻輳値がチップ上の全ての他のタイルへと伝播されることによって、タイルが適応型のインフォームドチョイスを行うことが補助される。
チップ上のnタイルの各々からチップ上の他の全てのタイルに「リンクアライブ(link alive)」信号は、配信される。nタイルの各々に配信されるこのリンクアラ
イブ信号は、該当するタイルと接続しているルータとの間にシリアルリンクが確立しているか否か示す。リンクがアライブ状態でないポートは、ポート選択の観点から無効であると考慮される。これによって、ルータは、最近失敗し且つまだソフトウェアによってルーティングテーブルから除去されていないリンクを適応的に回避できるようになる。
リンクアライブ信号は、全てのネットワークタイルを接続する2線式シリアルチェーンを介してルータ周囲に伝播される。各タイルは、そのリンク状態情報を、適切なビットタイミングでシリアルチェーン上に配置する。輻輳論理に示されている全てのポートが無効である場合には、そのパケットは破棄される。この場合では、紛失パケットにタイムアウトを設定するか否かはエンドポイントハードウェア次第であり、また、再送信するか、エラーを適切と扱うかはより高レベルのソフトウェア次第である。
各入力キューでは、2つの最小ポート候補と2つの非最小ポート候補の間で適応的な選択を行うために、配信輻輳値が使用される。これらの輻輳値を使用する前に、選択した2つの最小ポートおよび非最小ポート輻輳値にバイアス値を適用する。最初に、値の最も大きな部分にゼロを2つプリペンドすることで、値を論理的に6ビット値にまで拡張する。適応型ルーティングの制御タイプ(適応型0、適応型1、適応型2、適応型3)を使用して、4つのエントリバイアステーブルの中から1組のバイアスを選択する。各エントリは、最小ポートおよび非最小ポート輻輳値の各々に達するまで左にどれくらいシフトすればよいのか決定する、2ビットシフト値の1対を有する。6ビットに拡張された輻輳値は、0ビット、1ビット、または2ビットシフトされうる。このフィールドの符号化は、次のとおりである:2’b00=左に0ビットシフト(×1)、2’b01=左に1ビットシフト(×2)、2’b10=左に2ビットシフト(×4)、2’b11=リサーブ。
各バイアスMMRは、拡張された最小および非最小輻輳値6ビットに加えて、追加の6ビット値の1対を含んでいる。この追加は飽和加算として実行され、6ビット数が得られる。最も低い輻輳に対応したポートが選ばれる。最小ポートと非最小ポートが同値である場合、ルータは、最小ポートを優先する。非最小として提示された2つのポート間、または、最小として提示された2つのポート間が同値の場合には、選択は、任意であり、あらゆる適切な方法で行われる。
(Dragonflyネットワークにおけるテーブル駆動型ルーティングメカニズム)
ここで挙げるルーティング例では、パケットまたはメッセージをルーティングするために利用できるパスを決定するため、Dragonflyネットワーク構成にルーティングフレキシビリティを提供するために、様々なテーブルを使用する。グループ内またはグループ間にルーティングを提供するために、また、最小および非最小ルーティングパスのために、各種テーブルが存在する。
ここに挙げた例示的なルータアーキテクチャにおけるルーティング構造は、次の4つの別個のテーブルセットに分割される。グローバル非最小(GN)テーブルセットと、グローバル最小(GM)テーブルと、ローカル非最小(LN)テーブルセットと、ローカル最小(LM)テーブルとである。この特定の例の論理フローを図12に示す。
グローバルテーブルは、現在のグループがターゲットグループでない場合に、どのように遠隔グループにルーティングするか決定するために使用される。これらのテーブルは、ローカルグループから出るための出口である特定の光学ポートにルーティングするために使用される。ローカルテーブルは、現在のグループ内の特定のルータチップにルーティングするために使用される。これらのテーブルは、ローカルルーティングのためグループ内での「アップ」または「ダウン」ルーティングに使用されたり、あるいは中間グループ内での「アップ」ルーティングに使用されたりする。最小テーブルは、最小のローカルまた
はグローバル経路を指定する。これらの最小テーブルは、「ダウン」ルーティングする時、または、適応型ルーティングのケースでは、「アップ」過程で最小パスの使用を試みる時に使用される。非最小テーブルは、非最小パスを指定し、「アップ」ルーティングする時のみ使用される。非最小テーブルはまた、「アップ」ルーティングの停止時を決定するための「ルート(root)検出」メカニズムを提供する。
グローバル非最小テーブルセットは、非最小トラフィックを中間グループにルーティングするために使用される。このテーブルセットは、「安全な」中間グループへと続くポートのリストを含んでおり、この「安全な」中間グループとは、他の全てのグループに接続している中間グループのことである。(健全なネットワークでは、全てのグループが安全である。特に健全なネットワークにおいては、トラフィックをターゲットグループに接続していない可能性のある中間グループに送信することを回避するように、テーブルをプログラムしなければならない。)このテーブルセットは、3つのテーブルで構成されている。第1テーブルは、現在の(ソース)グループから出るためには緑色次元のどのランクをトラバースするか選択する。第2テーブルは、黒色次元をトラバースするよう選択する。第3テーブルは、現在のルータチップをオンにしておくために光学ポートを選択する。
これらのテーブルは、固定優先順序で階層配列される。緑色次元テーブルは優先順位が1番高く、青色次元テーブルは一番低い。各テーブルには、Aries(ルータ兼ファイアウォール)をオンにしておくための複数のポート番号が、または現在のテーブルがその優先順位を下げて、優先順位階層における次のテーブルを考慮すべきであることを示す特別値がリストされている。最下位優先順位(青色)テーブル上の特別値を参照した場合、エラー状態が生じる。各テーブルは128エントリで構成されており、エントリの各々は6ビットポート番号または特別値6’b11xxxxである。各テーブルは、16×8エントリで編成されており、8エントリ毎の各ブロックにつき7ビットのECCが付加されている。
このテーブルは、システム内の他の全てのグループに安全にルーティングすることが可能な中間グループに確実に続いている他のルータチップまたは光学ポート番号への経路しか含むべきでない。このテーブルはさらに、非最小トラフィックをシステム内の複数のグループにかけてほぼ均等に分布させるメカニズムを提供する。各テーブルにはエントリが128個あるので、有効基数18次元を用いた場合でも、各ポートが7回または8回リストされ、その次元で2つのポート間に最大14.3%の不安定さが生じる。この不安定さは、グループ全体を通してテーブルを複数回コピーし、不安定なポートを変化させることによって最小化する。
グローバル決定論的なルーティングの場合、このテーブルセットは、ターゲットtgtID(おそらくはローカルポート番号)を含むハッシュ値によって、またオプションでパケットヘッダ(パケットアドレスからのもの)からのハッシュフィールドによって、インデックスされる。各テーブルは、互いに異なるインデックスを得る。グローバル適応型ルーティングの場合は、テーブルから、それぞれが8エントリで構成されている複数ブロックのうちの1つは、ランダムに選択される。次にこの同じ8エントリ構成のブロックから第2のエントリは、ランダムに選択される。2つのポートを互いに、またグローバル最小テーブルからの2つのエントリと比較することによって、パケットをどのパスでルーティングするか決定する。
pタイルにおける緑色テーブルは、一般に、8回リストされた15個の緑色ポートと、8個の特別値を有する。さらにpタイルでは、黒色テーブルは、約7回リストされた15個の黒色ポートを、特別値を含んだ約21のエントリと共に有する。青色テーブルは、それぞれ約13回リストされた光学ポートの各々を有する。
緑色のnタイルポートは、一般に、緑色テーブル内のエントリ全てを特別値として有する。黒色および青色テーブルは、pタイルの場合と同じ比率で構成される。黒色nタイルポートは、一般に、緑色および黒色テーブル内の全てのエントリを特別値として有する。青色テーブルは、pタイルの場合と同じ比率で構成される。
グローバル最小テーブルは、現在のグループからターゲットグループまでの直接パスを決定するために使用される。このテーブルは256エントリで構成され、各エントリのビット幅は81ビットである。各エントリは、全ポートセットと規制されたポートセットとの2つの部分に分割されている。全ポートセットは、8個の6ビットポートエントリと、3ビットのモジュロ指定子とで構成される。モジュロフィールドは、関連するエントリにおける有効なポートの総数を示す。モジュロ指定子は、モジュロ−1として符号化される。つまり、モジュロフィールド内に7の値があれば、8のモジュロ演算ということである。規制されたポートセットは、4個の6ビットポートと、2ビットのモジュロ指定子で構成されている。81ビットエントリの各々が8ビットのECCを有する。
このテーブルは、ターゲットグループ番号で編成されている。各ターゲットグループは、システムのサイズに応じて、テーブル内の1、2、4、8、16、32、64、または128エントリの「ブロック」に対応している。241グループを持ったシステムは、テーブル内のブロック1個につき1エントリを有する(エントリのうち15個は使用されない)。65〜128グループを有するシステムは、各ブロックにつき2つのエントリを使用する。33〜64グループを有するシステムは4つのエントリを使用する。同様に続く。グループ番号、並びに0〜7の追加のランダム(適応型ルーティング)またはハッシュ(決定論的なルーティング)ビットを使用して、テーブル内にインデックスを定義する。各エントリは、関連するターゲットグループに最小で接続するポートであって、ルーティングにおける現在のポイントから到達可能なAries(ルータ兼ファイアウォール)に続いているポートのリスト、または青色リンクを介してターゲットグループに直接続いているポートのリストを含む。
全ポートセットは、グループ内で(pタイルまたは光学nタイルのどちらかにて)他のグループへの最小ルーティングを丁度開始した時に使用されたり、あるいは中間グループ内において非最小でルーティングし且つローカル非最小テーブルにルート(root)が検出された際に任意のタイルにおいて使用されたりする(以下を参照)。テーブルのこのサイドには、インデックスが指定するグループに最小接続している利用可能な光学ポートまでの利用可能なパスが全て挙げられている。規制されたポートセットは、全ポートセットテーブルについて言及するルート(root)検出の場合とルート(root)注入の場合を除いて、グループ内でのルーティングに使用される。テーブルのこの半分は、最小ルーティングを行っていると仮定した場合に、グループネットワーク内の現在地点から正当であるネットワーク内のパスのみを示す。
規制されたポートリストの重要な目的は、パケットがその出発点の方向に戻らないようにすることである。緑色ポートでは、規制されたテーブルエントリは、通常、黒色ポートと青色ポートしかリストしないはずである。黒色ポートでは、規制されたテーブルエントリは、通常、青色ポートしかリストしないはずである。
規制されたセットにリストされた全てのポートが無効である場合には、このことは、パケットが正当な最小パスから分岐したことを、適応型ルーティング論理に示している。この場合、適応型ルーティング論理は、非最小選択肢から1つを選ぶ。(これは、決定論的または最小にルーティングしたトラフィックでは絶対に発生しないはずである。なぜならテーブルは一貫した方法で書き込まれているはずであり、パケットが宛先にルーティング
できないポイントに到着することはあり得ないからである。これが発生した場合には、ルータがエラーフラグを立て、そのパケットを破棄する。)
タイル内でルーティングされた正当な規制されたポートがない場合には、mod値は、任意の値に設定されうる。経路テーブルは、グループ番号に関連した全てのエントリに特別値6’b11xxxxを含んでいなければならない。正当な経路が1つしかない場合には、ポートリストは、少なくとも2回リストされている正当な経路と、これに合わせて2またはそれ以上に設定したmod値とを含んでいなければならない。
決定論的なルーティングでは、関連するインデックス内の有効なエントリの数によってハッシュのモジュロを計算することで、全ポートセットまたは規制されたポートセットにおける有効なエントリのうちの1つが選択される。上述のケースと同様に、適応型ルーティングは、乱数と、N−1の第2モジュロとのモジュロを計算することによって第1の数字+1に可算し、テーブル中に第2のランダムであるが固有のエントリのオフセットを取得することを除いて、テーブルから2つのエントリを選択する。
ローカル非最小テーブルセットは、ローカルグループ内のルータチップを、このグループ内の非最小ルーティングのルート(root)として使用する目的で選ぶために使用される。このテーブルは、ソースグループおよびターゲットグループが同一である場合に、非最小ルーティングのために使用される。さらにテーブルは、中間グループ内での非最小ルーティングのためにも使用される。このテーブルセットは、青色テーブルが存在しないことを除けば、グローバル非最小テーブルと同様の構造である。
ローカル非最小テーブルは、適応型ルーティングの場合にはランダムにインデックスされ、また非最小決定論的なルーティングの場合にはハッシュによってインデックスされる。グローバル非最小テーブルと類似し、適応型ルーティングの場合には、このテーブルから2つのエントリが生成され、比較される。設計におけるRAMマクロ総数を低減するために、これらのテーブルをRAM内のグローバル非最小テーブルと物理的に組み合わせる。
このテーブルは、このタイルから到達可能なAries(ルータ兼ファイアウォール)をリストしている。これらAriesは、ローカル非最小ルーティングに安全に使用できる。健全なネットワークでは、pタイルと青色(光学)タイルは、グループ内の全てのAries(ルータ兼ファイアウォール)をほぼ均等にリストしなければならない。緑色テーブルのエントリのほぼ15/16には緑色ポートがリストされるべきであり、また約1/6は、緑色次元が既に条件を満たしており、黒色テーブルを使用すべきであるということを示す特別値を含んでいる必要がある。同様に黒色テーブルのエントリの約5/6は、黒色ポートをリストすべきであり、また約1/6は、黒色次元が条件を既に満たしたことを示す特別値を含んでいる必要がある。緑色テーブルと黒色テーブルの両方における特別値は、ルート(root)に到達したことと(「ルート(root)検出」)、パケットをこの地点からダウンルーティングすべきであることを示す。
緑色タイルは、特別値(緑色次元の条件が満たされたことを示す)で緑色テーブルを充填すべきであり、到達可能な6個のAries(ルータ兼ファイアウォール)を(自身を含み、特別値を使用する。)黒色テーブルに均等にリストすべきである。黒色タイルは、緑色テーブルと黒色テーブルの両方を特別ルート(root)検出値によって充填すべきである。pタイルと光学タイルとは、全テーブルセットを必要とすべきである。nタイルは緑色テーブルなしでも技術上問題はないが、しかし、ここで示すルータテーブルの例は、フレキシビリティを持たせるためにnタイルを実現している。
ローカル最小テーブルは、ターゲットグループ内での最小ルーティング(「ダウンルー
ティング」)に使用され、さらにターゲットグループ内で適応的に「アップルーティング」を行う際にも使用される。このテーブルは、128エントリを有する。各エントリは52ビット幅であり、8個の6ビットポート番号と、「分岐」ビットと、テーブルのこのラインで有効なエントリの数を示すmod値とで構成されている。ターゲットグループ内のパスが最小パスから分岐しているため、そのパスは適応型アップルーティングを行う時には最小パスとして使用できず、したがってダウンルーティングにしか使用できないことを、分岐したビットは示す。これは、規制されたセットにおける全てのポートが無効であるグローバル最小テーブルのケースと類似している。
このテーブルは、グループ内の「ターゲット」Aries番号で編成されている。各ローカルAries番号は、グループのサイズに応じて、テーブル内の1、2、4、8、または16エントリで構成されているブロックに対応している。65〜128個のAries(ルータ兼ファイアウォール)を持ったグループは、1つのローカルAries番号につき1エントリのブロックサイズを使用する。33〜64個のAries(ルータ兼ファイアウォール)を有するサイズのグループは、2のブロックサイズを使用する、などである。ローカルAries番号、並びに0〜4の追加の乱数(適応型ルーティングの場合)またはハッシュ(決定論的なルーティング)ビットは、テーブルにインデックスを定義するために使用される。各エントリは、関連するローカルAriesへと続くポートのリストを含む。
決定論的なルーティングでは、関連インデックス内の有効なエントリの数によってハッシュのモジュロを計算することによって、テーブル内の有効なエントリの中から1つは、選択される。上述のケースと同様に、適応型ルーティングは、乱数と、N−1の第2モジュロとのモジュロを計算することによって第1の数字+1に可算し、テーブル中に第2のランダムであるが固有のエントリのオフセットを取得することを除いて、テーブルから2つのエントリを選択する。
グローバル非最小テーブルは、ソースグループのみにおいて、別のグループに向かうトラフィックのために使用される。グローバル非最小テーブルとローカル非最小テーブルとは、決して同時に使用されることはない。そのため必要なRAM総数を減らすために、グローバル非最小緑色テーブルは、ローカル非最小緑色テーブルと同じRAMに記憶される。グローバル非最小黒色テーブルは、ローカル非最小黒色テーブルと同じRAMに記憶される。グローバルテーブルは、これら2つのRAMそれぞれの下方インデックス値部分に記憶される。
(結論)
上述した例は、Dragonflyネットワークにおけるルーティングが、ネットワーク輻輳やトラフィックタイプのような要素に基づきネットワークパスを選択することが可能な適応型ルーティングと、最小および非最小ルーティングや、ローカルルーティングおよびグローバルルーティングを含む様々なルーティング用のルーティングテーブルとを使用して、どのように向上させられるか説明する。
適応型ルーティングは、輻輳リンクまたはダウンしたリンクに基づき複数の正当な経路を選択し、また、チャネル上の輻輳を明快に通信させることによって向上したルーティングパフォーマンスと許容性を提供する、デッドロックを回避するルーティングを提供する。ルーティングは、まず、例えば異なる次元でのルーティングのように複数の最小経路にかけて実行され、その後に任意で、例えば輻輳リンクやダウンしたリンクを回避するためにランダムに選んだホップを使用して、1または複数の非最小経路から選択した非最小経路にかけて実行される。
輻輳情報は、出力キュー内のメッセージ数をカウントすることや、伝送中のクレジットまたはメッセージのような要因から受信側バッファ輻輳推定を確立することといった要素から予想される、次のリンク輻輳に基づく。ノードは潜在的な受信側ノードに、平均的な「次のリンク」出力輻輳について問い合わせることができるため、輻輳リンクやダウンしたリンクの回避に基づきルーティング決定を行えるようになる。これ以外にもさらに、例えば、ルーティングパスを選ぶ際に、決定論的なハッシュまたは乱数を使用してトラフィックを拡散させるといった特徴が複数提供され、これらは輻輳を回避するためにトラフィックを拡散させる上で役立つ。
1例では、ルーティングの選択はテーブルによって提示され、ネットワークの構成および状態に応じて、特定の経路に、あるいは、最小経路または非最小経路に偏る可能性がある。例えば、経路の選択が最高の効率のデフォルトによって最小ルーティングに偏るが、この偏りが、追加のトラフィックを任意または不必要に受信することから特定のネットワークリンクを保護するために、非最小ルーティングへの偏りに切り替わることもある。さらなる例では、ルーティングテーブルは、ローカルルーティングテーブルおよびグローバルルーティングテーブルを備えたテーブルと、最小パスおよび非最小パスとを含む。
特定の実施形態をここで例証および説明したが、当業者は、同じ目的を達成すると推定されるあらゆる配列はここに示した特定の実施形態の代用となることを理解するであろう。本出願は、ここで説明した本発明の例示的な実施形態のあらゆる改造または応用を包括することを意図する。本発明は、特許請求の範囲、およびその均等物の全範囲によってのみ限定されることが意図されている。
項目1は、Dragonflyネットワーク内のターゲットノードから宛先ノードまでの複数のネットワークパスから、1または複数のルーティングテーブルに基づきネットワークパスを選択することによって、データをルーティングするように動作する少なくとも1つのルータを備える、Dragonflyプロセッサ相互接続ネットワークを含むマルチプロセッサコンピュータシステムに関する。
項目2は、前記ルーティングテーブルは、グローバルルーティングテーブルとローカルルーティングテーブルを備える、項目1記載のマルチプロセッサコンピュータシステムに関する。
項目3は、前記ルーティングテーブルは、最小テーブルと非最小テーブルを備える、項目1記載のマルチプロセッサコンピュータシステムに関する。
項目4は、1または複数の前記ルーティングテーブルが使用されることによって、前記ターゲットノードと前記宛先ノードとの間に適応型ルーティングが提供される、項目1記載のマルチプロセッサコンピュータシステムに関する。
項目5は、適応型のルーティングすることは、経路の選択において、近隣ルータからのネットワーク輻輳情報と、前記近隣ルータからのネットワークリンク失敗情報とのうちの1または複数を使用することからなる、項目1記載のマルチプロセッサコンピュータシステムに関する。
項目6は、マルチプロセッサコンピュータシステムの動作方法であって、前記動作方法は、Dragonflyネットワーク内のターゲットノードから宛先ノードまでの複数のネットワークパスから、1または複数のルーティングテーブルに基づきネットワークパスを選択することによって、データをルーティングするステップを備える、マルチプロセッサコンピュータシステムの動作方法に関する。
項目7は、前記ルーティングテーブルは、グローバルルーティングテーブルとローカルルーティングテーブルとを備える、項目6記載のマルチプロセッサコンピュータシステムの動作方法に関する。
項目8は、前記ルーティングテーブルは、最小テーブルと非最小テーブルとを備える、項目6記載のマルチプロセッサコンピュータシステムの動作方法に関する。
項目9は、1または複数の前記ルーティングテーブルが使用されることによって、前記ターゲットノードと前記宛先ノードとの間に適応型ルーティングが提供される、項目6記載のマルチプロセッサコンピュータシステムの動作方法に関する。
項目10は、適応型のルーティングすることは、経路の選択において、近隣ルータからのネットワーク輻輳情報と、前記近隣ルータからのネットワークリンク失敗情報とのうちの1または複数を使用することからなる、項目6記載のマルチプロセッサコンピュータシステムの動作方法に関する。

Claims (30)

  1. Dragonflyネットワークトポロジーを備えるマルチプロセッサネットワークにおいて、データの適応型ルーティングに対応させるためのルーティングデバイスを備え、
    前記データのルーティングは1つ以上のルーティングテーブルに基づき、前記Dragonflyネットワークトポロジーは複数のグループを含み、前記グループの1以上はそれぞれに対応する複数のルータを備え、かつ、前記複数のグループにおける他のグループに対応するリンクによって結合され、前記対応するルータは前記ネットワークにおいて1以上のプロセッサノードに接続される、装置。
  2. 前記装置はスイッチまたはルータであり、前記ルーティングデバイスはチップである、請求項1に記載の装置。
  3. 前記複数のグループの少なくとも1つは、前記ネットワークにおいて仮想ルータとして機能する、請求項1に記載の装置。
  4. 前記複数のグループのそれぞれは、前記ネットワークにおいて対応する仮想ルータとして機能する、請求項3に記載の装置。
  5. 前記ルーティングデバイスはさらに、前記ネットワークにおいて少なくとも1つのチャネルに関連付けられた輻輳を監視する、請求項1に記載の装置。
  6. 適応型ルーティング決定は、前記輻輳の監視に少なくとも部分的に基づく、請求項5に記載の装置。
  7. 前記ルーティングデバイスは、クレジットラウンドトリップレイテンシをチャネルの輻輳を示すインジケータとして使用してデータのルーティングを行う、請求項6に記載の装置。
  8. 前記チャネルは、グローバルチャネルを含む、請求項5に記載の装置。
  9. 前記Dragonflyネットワークトポロジーは、少なくとも1つの仮想チャネルを備える、請求項1に記載の装置。
  10. 前記ネットワークは、少なくとも2つのサブネットワークを相互接続する、請求項1に記載の装置。
  11. 各グループにおける仮想基数は、前記各グループにおけるルータの数に、各ルータに接続されるプロセッサノードの数と前記ネットワークにおけるグローバルチャネルの数とを加算して得た和を乗じて得た積である、請求項1に記載の装置。
  12. 1つのグループに対する前記ルータの数は、1つのルータに対するプロセッサノードの数の2倍と等しく、前記1つのルータに対するプロセッサノードの数は、他のグループに接続される1つのルータに対するチャネルの数と等しい、請求項1に記載の装置。
  13. 前記ネットワークは複数のプロセッサノードを備え、前記仮想ルータは前記プロセッサノードの数の平方根の約2倍の基数を有する、請求項1に記載の装置。
  14. 少なくとも1つの前記グループにおける前記複数のルータは、1つのルータに対するグローバルチャネルの数の2倍より大きい、請求項1に記載の装置。
  15. 前記1つのルータに対するプロセッサノードの数は、前記1つのルータに対するグローバルチャネルの数より大きい、請求項1に記載の装置。
  16. 前記グループは、平坦化したバタフライネットワークトポロジーを有するサブネットワークを備える、請求項1に記載の装置。
  17. 前記ルーティングデバイスは、選択的な仮想チャネル分別を使用してデータのルーティングを行う、請求項1に記載の装置。
  18. 前記1つ以上のテーブルは、前記複数のグループにおけるグループ間でデータのルーティングを行うための少なくとも1つのグローバルテーブルを含む、請求項1に記載の装置。
  19. 前記1つ以上のテーブルは、前記複数のグループのうちの1つのグループ内でデータのルーティングを行うための少なくとも1つのローカルテーブルを含む、請求項1に記載の装置。
  20. Dragonflyネットワークトポロジーを備えるマルチプロセッサネットワークにおいて、少なくとも1つのチャネルの輻輳を検知するステップと、
    前記輻輳に基づいて、前記ネットワークにおいてデータの適応型ルーティングを実施するステップと、
    前記Dragonflyネットワークに対応する1つ以上のルーティングテーブルを使用するステップと、を含み、
    前記Dragonflyネットワークトポロジーは、複数のグループを含み、前記複数のグループのうちのグループのそれぞれは複数のルータを備え、かつ、前記複数のグループにおける他のグループに、対応するリンクによって結合され、前記対応するルータは前記ネットワークにおいて1以上のプロセッサノードに接続される、方法。
  21. 複数のプロセッサノードと、
    複数のルータデバイスとを備え、各ルータは、前記複数のプロセッサノードの対応するサブセットに結合され、各ルータは、複数のルータグループの対応する1つに含められ、各グループは、対応するグループトポロジーを有し、前記複数のルータグループにおいて互いのグループに、対応するリンクによって接続され、
    少なくとも1つのルータは、前記システムにおいて適応型ルーティングを使用してルーティングを実施し、前記ルーティングは、1つ以上のルーティングテーブルに少なくとも部分的に基づき実施される、システム。
  22. 前記複数のルータグループの各グループは、前記ネットワークにおいて仮想ルータとして機能する、請求項21に記載のシステム。
  23. さらに、少なくとも1つのグローバルチャネルを含む、請求項21に記載のシステム。
  24. 前記適応型ルーティングは、前記少なくとも1つのグローバルチャネルに対して決定される輻輳に基づく、請求項23に記載のシステム。
  25. 前記グローバルチャネルの輻輳は、ローカルチャネルにおいて検知される輻輳に基づいて決定される、請求項24に記載のシステム。
  26. 前記複数のプロセッサノードは、少なくとも100,000個のプロセッサノードを含
    む、請求項21に記載のシステム。
  27. 前記ルータグループの各グループは、対応するトポロジーとともにサブネットワークを備える、請求項21に記載のシステム。
  28. 前記ルータグループの少なくとも1つの前記トポロジーは、平坦化したバタフライトポロジーを含む、請求項27に記載のシステム。
  29. 前記1つ以上のテーブルは、前記複数のグループにおけるグループ間でデータのルーティングを行うための少なくとも1つのグローバルテーブルを含む、請求項21に記載のシステム。
  30. 前記1つ以上のテーブルは、前記複数のグループのうちの1つのグループ内でデータのルーティングを行うための少なくとも1つのローカルテーブルを含む、請求項21に記載のシステム。
JP2015012380A 2010-11-05 2015-01-26 Dragonflyプロセッサ相互接続ネットワークにおけるテーブル駆動型ルーティング Active JP5977383B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US41064110P 2010-11-05 2010-11-05
US61/410,641 2010-11-05

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2011241239A Division JP5860670B2 (ja) 2010-11-05 2011-11-02 Dragonflyプロセッサ相互接続ネットワークにおけるテーブル駆動型ルーティング

Publications (2)

Publication Number Publication Date
JP2015080274A true JP2015080274A (ja) 2015-04-23
JP5977383B2 JP5977383B2 (ja) 2016-08-24

Family

ID=45065692

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2011241239A Expired - Fee Related JP5860670B2 (ja) 2010-11-05 2011-11-02 Dragonflyプロセッサ相互接続ネットワークにおけるテーブル駆動型ルーティング
JP2015012380A Active JP5977383B2 (ja) 2010-11-05 2015-01-26 Dragonflyプロセッサ相互接続ネットワークにおけるテーブル駆動型ルーティング

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2011241239A Expired - Fee Related JP5860670B2 (ja) 2010-11-05 2011-11-02 Dragonflyプロセッサ相互接続ネットワークにおけるテーブル駆動型ルーティング

Country Status (3)

Country Link
US (3) US9282037B2 (ja)
EP (2) EP3128438A3 (ja)
JP (2) JP5860670B2 (ja)

Families Citing this family (67)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100049942A1 (en) 2008-08-20 2010-02-25 John Kim Dragonfly processor interconnect network
JP5913912B2 (ja) 2010-11-05 2016-04-27 インテル コーポレイション Dragonflyプロセッサ相互接続ネットワークにおける革新的な適応型ルーティング
JP5860670B2 (ja) 2010-11-05 2016-02-16 インテル コーポレイション Dragonflyプロセッサ相互接続ネットワークにおけるテーブル駆動型ルーティング
US8730965B2 (en) * 2011-01-05 2014-05-20 Google Inc. Systems and methods for dynamic routing in a multiprocessor network using local congestion sensing
US8776207B2 (en) * 2011-02-16 2014-07-08 Fortinet, Inc. Load balancing in a network with session information
US8488601B1 (en) 2011-07-12 2013-07-16 Qlogic, Corporation Method and system for link aggregation
US8467395B1 (en) * 2011-07-12 2013-06-18 Qlogic, Corporation Method and system for link aggregation
US9094309B2 (en) * 2012-03-13 2015-07-28 International Business Machines Corporation Detecting transparent network communication interception appliances
US9274299B2 (en) 2012-08-29 2016-03-01 International Business Machines Corporation Modular optical backplane and enclosure
US9577918B2 (en) * 2012-11-19 2017-02-21 Cray Inc. Increasingly minimal bias routing
US9774498B2 (en) * 2012-12-21 2017-09-26 Netspeed Systems Hierarchical asymmetric mesh with virtual routers
CN103973564B (zh) * 2013-01-31 2017-12-15 清华大学 互连网络系统的自适应路由方法
US9634940B2 (en) 2013-01-31 2017-04-25 Mellanox Technologies, Ltd. Adaptive routing using inter-switch notifications
GB2511089A (en) 2013-02-22 2014-08-27 Ibm All-to-all message exchange in parallel computing systems
US9471726B2 (en) 2013-07-25 2016-10-18 Netspeed Systems System level simulation in network on chip architecture
US9548960B2 (en) 2013-10-06 2017-01-17 Mellanox Technologies Ltd. Simplified packet routing
US9197536B2 (en) 2013-11-22 2015-11-24 Dell Products L.P. Use of alternate paths in forwarding of network packets
US9699079B2 (en) 2013-12-30 2017-07-04 Netspeed Systems Streaming bridge design with host interfaces and network on chip (NoC) layers
US10320746B2 (en) * 2014-05-12 2019-06-11 Michael C. Wood Computer security system and method based on user-intended final destination
US9729473B2 (en) 2014-06-23 2017-08-08 Mellanox Technologies, Ltd. Network high availability using temporary re-routing
US9806994B2 (en) 2014-06-24 2017-10-31 Mellanox Technologies, Ltd. Routing via multiple paths with efficient traffic distribution
CN104079490B (zh) * 2014-06-27 2017-09-22 清华大学 多层次的dragonfly互连网络及自适应路由方法
WO2015196461A1 (en) * 2014-06-27 2015-12-30 Tsinghua University Deadlock-free adaptive routing of interconnect network
US9519605B2 (en) 2014-07-08 2016-12-13 International Business Machines Corporation Interconnection network topology for large scale high performance computing (HPC) systems
US9699067B2 (en) 2014-07-22 2017-07-04 Mellanox Technologies, Ltd. Dragonfly plus: communication over bipartite node groups connected by a mesh network
US9571341B1 (en) 2014-10-01 2017-02-14 Netspeed Systems Clock gating for system-on-chip elements
US9660942B2 (en) 2015-02-03 2017-05-23 Netspeed Systems Automatic buffer sizing for optimal network-on-chip design
US10348563B2 (en) 2015-02-18 2019-07-09 Netspeed Systems, Inc. System-on-chip (SoC) optimization through transformation and generation of a network-on-chip (NoC) topology
US9894005B2 (en) 2015-03-31 2018-02-13 Mellanox Technologies, Ltd. Adaptive routing controlled by source node
US9864728B2 (en) 2015-05-29 2018-01-09 Netspeed Systems, Inc. Automatic generation of physically aware aggregation/distribution networks
US9825809B2 (en) 2015-05-29 2017-11-21 Netspeed Systems Dynamically configuring store-and-forward channels and cut-through channels in a network-on-chip
US10218580B2 (en) 2015-06-18 2019-02-26 Netspeed Systems Generating physically aware network-on-chip design from a physical system-on-chip specification
US9973435B2 (en) 2015-12-16 2018-05-15 Mellanox Technologies Tlv Ltd. Loopback-free adaptive routing
US10819621B2 (en) 2016-02-23 2020-10-27 Mellanox Technologies Tlv Ltd. Unicast forwarding of adaptive-routing notifications
US10178029B2 (en) 2016-05-11 2019-01-08 Mellanox Technologies Tlv Ltd. Forwarding of adaptive routing notifications
US10389636B2 (en) * 2016-07-01 2019-08-20 Intel Corporation Technologies for adaptive routing using network traffic characterization
US10630590B2 (en) * 2016-07-14 2020-04-21 Mellanox Technologies Tlv Ltd. Credit loop deadlock detection and recovery in arbitrary topology networks
US10452124B2 (en) 2016-09-12 2019-10-22 Netspeed Systems, Inc. Systems and methods for facilitating low power on a network-on-chip
US10281659B2 (en) * 2016-11-03 2019-05-07 Alcatel Lucent Fiber-management solution for an optical-network node
US20180159786A1 (en) 2016-12-02 2018-06-07 Netspeed Systems, Inc. Interface virtualization and fast path for network on chip
US10200294B2 (en) 2016-12-22 2019-02-05 Mellanox Technologies Tlv Ltd. Adaptive routing based on flow-control credits
US10313269B2 (en) 2016-12-26 2019-06-04 Netspeed Systems, Inc. System and method for network on chip construction through machine learning
US10063496B2 (en) 2017-01-10 2018-08-28 Netspeed Systems Inc. Buffer sizing of a NoC through machine learning
US10084725B2 (en) 2017-01-11 2018-09-25 Netspeed Systems, Inc. Extracting features from a NoC for machine learning construction
US10469337B2 (en) 2017-02-01 2019-11-05 Netspeed Systems, Inc. Cost management against requirements for the generation of a NoC
US10298485B2 (en) 2017-02-06 2019-05-21 Netspeed Systems, Inc. Systems and methods for NoC construction
US10476780B2 (en) 2017-09-29 2019-11-12 Hewlett Packard Enterprise Development Lp Routing packets based on congestion of minimal and non-minimal routes
US11321136B2 (en) * 2017-12-28 2022-05-03 Intel Corporation Techniques for collective operations in distributed systems
US10644995B2 (en) 2018-02-14 2020-05-05 Mellanox Technologies Tlv Ltd. Adaptive routing in a box
US10547514B2 (en) 2018-02-22 2020-01-28 Netspeed Systems, Inc. Automatic crossbar generation and router connections for network-on-chip (NOC) topology generation
US11144457B2 (en) 2018-02-22 2021-10-12 Netspeed Systems, Inc. Enhanced page locality in network-on-chip (NoC) architectures
US10983910B2 (en) 2018-02-22 2021-04-20 Netspeed Systems, Inc. Bandwidth weighting mechanism based network-on-chip (NoC) configuration
US10896476B2 (en) 2018-02-22 2021-01-19 Netspeed Systems, Inc. Repository of integration description of hardware intellectual property for NoC construction and SoC integration
US11176302B2 (en) 2018-02-23 2021-11-16 Netspeed Systems, Inc. System on chip (SoC) builder
US11023377B2 (en) 2018-02-23 2021-06-01 Netspeed Systems, Inc. Application mapping on hardened network-on-chip (NoC) of field-programmable gate array (FPGA)
CN110324249B (zh) * 2018-03-28 2023-05-26 清华大学 一种蜻蜓网络架构及其组播路由方法
US10887217B2 (en) 2018-06-29 2021-01-05 Hewlett Packard Enterprise Development Lp Routing packets based on congestion metric thresholds and weights
US10944843B2 (en) 2018-11-05 2021-03-09 International Business Machines Corporation Topology aware computing device to reduce network latency
US11005724B1 (en) 2019-01-06 2021-05-11 Mellanox Technologies, Ltd. Network topology having minimal number of long connections among groups of network elements
DE112020002497T5 (de) 2019-05-23 2022-04-28 Hewlett Packard Enterprise Development Lp System und verfahren zur dynamischen zuweisung von reduktionsmotoren
US11316713B2 (en) * 2019-11-25 2022-04-26 International Business Machines Corporation Virtual drawers in a server
US11561840B2 (en) * 2020-01-30 2023-01-24 Alibaba Group Holding Limited Efficient inter-chip interconnect topology for distributed parallel deep learning
US11575594B2 (en) 2020-09-10 2023-02-07 Mellanox Technologies, Ltd. Deadlock-free rerouting for resolving local link failures using detour paths
US11411911B2 (en) 2020-10-26 2022-08-09 Mellanox Technologies, Ltd. Routing across multiple subnetworks using address mapping
US11870682B2 (en) 2021-06-22 2024-01-09 Mellanox Technologies, Ltd. Deadlock-free local rerouting for handling multiple local link failures in hierarchical network topologies
US11765103B2 (en) 2021-12-01 2023-09-19 Mellanox Technologies, Ltd. Large-scale network with high port utilization
US11765041B1 (en) * 2022-09-15 2023-09-19 Huawei Technologies Co., Ltd. Methods and systems for implementing a high radix network topology

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080123679A1 (en) * 2003-11-19 2008-05-29 Cray Inc. Routing table architecture
US20080285562A1 (en) * 2007-04-20 2008-11-20 Cray Inc. Flexible routing tables for a high-radix router
US20100049942A1 (en) * 2008-08-20 2010-02-25 John Kim Dragonfly processor interconnect network

Family Cites Families (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4970658A (en) 1989-02-16 1990-11-13 Tesseract Corporation Knowledge engineering tool
US5079738A (en) 1989-09-29 1992-01-07 Rockwell International Corporation Processor interconnect network for printing press system forming a star network
US5249283A (en) 1990-12-24 1993-09-28 Ncr Corporation Cache coherency method and apparatus for a multiple path interconnection network
JP3745365B2 (ja) 1992-06-15 2006-02-15 ブリテイッシュ・テレコミュニケーションズ・パブリック・リミテッド・カンパニー サービスプラットフォーム
US5425029A (en) 1993-09-20 1995-06-13 Motorola, Inc. Fast packet adaptation method for ensuring packet portability across diversified switching type networks
US5864738A (en) 1996-03-13 1999-01-26 Cray Research, Inc. Massively parallel processing system using two data paths: one connecting router circuit to the interconnect network and the other connecting router circuit to I/O controller
JP2998688B2 (ja) 1997-04-09 2000-01-11 日本電気株式会社 障害回復システム
US6212636B1 (en) 1997-05-01 2001-04-03 Itt Manufacturing Enterprises Method for establishing trust in a computer network via association
US5970232A (en) * 1997-11-17 1999-10-19 Cray Research, Inc. Router table lookup mechanism
JP3553398B2 (ja) 1999-01-08 2004-08-11 日本電信電話株式会社 ルーティング装置およびルーティング方法
US6611872B1 (en) 1999-01-11 2003-08-26 Fastforward Networks, Inc. Performing multicast communication in computer networks by using overlay routing
US6766424B1 (en) 1999-02-09 2004-07-20 Hewlett-Packard Development Company, L.P. Computer architecture with dynamic sub-page placement
US6643764B1 (en) * 2000-07-20 2003-11-04 Silicon Graphics, Inc. Multiprocessor system utilizing multiple links to improve point to point bandwidth
US6477618B2 (en) * 2000-12-28 2002-11-05 Emc Corporation Data storage system cluster architecture
US7035202B2 (en) * 2001-03-16 2006-04-25 Juniper Networks, Inc. Network routing using link failure information
US7139926B1 (en) 2002-08-30 2006-11-21 Lucent Technologies Inc. Stateful failover protection among routers that provide load sharing using network address translation (LSNAT)
US8018860B1 (en) * 2003-03-12 2011-09-13 Sprint Communications Company L.P. Network maintenance simulator with path re-route prediction
WO2005036839A2 (en) * 2003-10-03 2005-04-21 Avici Systems, Inc. Rapid alternate paths for network destinations
US20050177344A1 (en) * 2004-02-09 2005-08-11 Newisys, Inc. A Delaware Corporation Histogram performance counters for use in transaction latency analysis
US20050289101A1 (en) 2004-06-25 2005-12-29 Doddaballapur Jayasimha Methods and systems for dynamic partition management of shared-interconnect partitions
US20070198675A1 (en) * 2004-10-25 2007-08-23 International Business Machines Corporation Method, system and program product for deploying and allocating an autonomic sensor network ecosystem
JP2006185348A (ja) * 2004-12-28 2006-07-13 Fujitsu Ltd マルチプロセッサシステム及びロックフラグ操作方法
US8260922B1 (en) * 2005-09-16 2012-09-04 Cisco Technology, Inc. Technique for using OER with an ECT solution for multi-homed sites
US7675857B1 (en) 2006-05-03 2010-03-09 Google Inc. Method and apparatus to avoid network congestion
WO2008011712A1 (en) * 2006-07-28 2008-01-31 Michael Tin Yau Chan Wide-area wireless network topology
US8285789B2 (en) * 2007-10-05 2012-10-09 Intel Corporation Flattened butterfly processor interconnect network
US9100269B2 (en) * 2008-10-28 2015-08-04 Rpx Clearinghouse Llc Provisioned provider link state bridging (PLSB) with routed back-up
US8301654B2 (en) * 2009-02-24 2012-10-30 Hitachi, Ltd. Geographical distributed storage system based on hierarchical peer to peer architecture
US8391303B2 (en) * 2009-04-16 2013-03-05 Futurewei Technologies, Inc. Border gateway protocol (BGP) grouped route withdrawals
US8576715B2 (en) 2009-10-26 2013-11-05 Mellanox Technologies Ltd. High-performance adaptive routing
US8639885B2 (en) 2009-12-21 2014-01-28 Oracle America, Inc. Reducing implementation costs of communicating cache invalidation information in a multicore processor
US20110191088A1 (en) * 2010-02-01 2011-08-04 Yar-Sun Hsu Object-oriented network-on-chip modeling
US8489718B1 (en) 2010-05-19 2013-07-16 Amazon Technologies, Inc. Torroidal backbone connections for network deployment
US20120059938A1 (en) * 2010-06-28 2012-03-08 Cray Inc. Dimension-ordered application placement in a multiprocessor computer
US8495194B1 (en) * 2010-06-29 2013-07-23 Amazon Technologies, Inc. Connecting network deployment units
US8427980B2 (en) 2010-07-21 2013-04-23 Hewlett-Packard Development Company, L. P. Methods and apparatus to determine and implement multidimensional network topologies
US20120020349A1 (en) 2010-07-21 2012-01-26 GraphStream Incorporated Architecture for a robust computing system
US8621111B2 (en) 2010-09-22 2013-12-31 Amazon Technologies, Inc. Transpose box based network scaling
US8837517B2 (en) * 2010-09-22 2014-09-16 Amazon Technologies, Inc. Transpose boxes for network interconnection
JP5913912B2 (ja) 2010-11-05 2016-04-27 インテル コーポレイション Dragonflyプロセッサ相互接続ネットワークにおける革新的な適応型ルーティング
JP5860670B2 (ja) 2010-11-05 2016-02-16 インテル コーポレイション Dragonflyプロセッサ相互接続ネットワークにおけるテーブル駆動型ルーティング

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080123679A1 (en) * 2003-11-19 2008-05-29 Cray Inc. Routing table architecture
US20080285562A1 (en) * 2007-04-20 2008-11-20 Cray Inc. Flexible routing tables for a high-radix router
US20100049942A1 (en) * 2008-08-20 2010-02-25 John Kim Dragonfly processor interconnect network

Also Published As

Publication number Publication date
EP2461254B1 (en) 2020-09-16
US20160294694A1 (en) 2016-10-06
JP5977383B2 (ja) 2016-08-24
US20120144065A1 (en) 2012-06-07
JP5860670B2 (ja) 2016-02-16
EP3128438A3 (en) 2017-02-15
JP2012105265A (ja) 2012-05-31
US20150188817A1 (en) 2015-07-02
EP3128438A2 (en) 2017-02-08
EP2461254A1 (en) 2012-06-06
US10469380B2 (en) 2019-11-05
US9282037B2 (en) 2016-03-08

Similar Documents

Publication Publication Date Title
JP5977383B2 (ja) Dragonflyプロセッサ相互接続ネットワークにおけるテーブル駆動型ルーティング
JP6158860B2 (ja) Dragonflyプロセッサ相互接続ネットワークにおける革新的な適応型ルーティング
US10153985B2 (en) Dragonfly processor interconnect network
JP6093867B2 (ja) インターコネクトにおける不均一なチャネル容量
US20220329521A1 (en) Methods for distributing software-determined global load information
US9537772B2 (en) Flexible routing tables for a high-radix router
CN106998302B (zh) 一种业务流量的分配方法及装置
US9825844B2 (en) Network topology of hierarchical ring with recursive shortcuts
CN116915708A (zh) 路由数据包的方法、处理器及可读存储介质
Thamarakuzhi et al. Adaptive load balanced routing for 2-dilated flattened butterfly switching network

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150126

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20151118

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20151201

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20160301

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160527

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160721

R150 Certificate of patent or registration of utility model

Ref document number: 5977383

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250