よく知られ、一般的に言及されている CLOS トポロジーは、ベル研究所で働いていた Charles Clos と呼ばれるアメリカ人エンジニアによる70年前の論文にさかのぼります。「ノンブロッキング・スイッチング・ネットワークの研究」というのが彼の論文名です。
極端に単純化すると、CLOS トポロジーはあらかじめ定義された外部ポートと内部ポートを持つデバイスのクロスバーであると言えます。この実装は現在では非常に一般的でシャーシ内部でも採用されています。
正確さはさておき、AI クラスタを接続する場合、CLOS とシャーシという 2 つの選択肢は明らかに異なります。このブログ記事では、AI アプリケーションを実行する際のこれら 2 つのアーキテクチャの興味深い比較を行います。
ドライブネッツ ネットワーククラウドの紹介
はじめに説明した通り、CLOS はクロスバーとそこへの入口、出口で構成されます。
図2:クロスバー電話交換機 ピンは出入口の接続を示す 出典:Wikipedia
AI 環境においては、CLOS は AI アプリケーションを搭載したサーバー(サーバーの NIC)を接続するために構築されます。クロスバーへの入口は、これらのサーバーが物理的に接続されるスイッチで、サーバーが設置されているラックの最上部に位置することが多いことからトップ・オブ・ラック(ToR)スイッチと呼ばれます。この ToR はその後、Spine(あるいは Fabric、Tier2スイッチ)と呼ばれるアグリゲーションスイッチ群に接続されます。この構成において重要なのは Spine がToR スイッチのみに接続し、ネットワーク内のすべての ToR スイッチに接続していると言う点です。
クロスバーに入るトラフィックは、宛先サーバーに到達するまでに ToR、Spine の1つ、そして別の ToR を通過します。このトポロジーは、全 Spine の転送容量(帯域幅)の合計値が、ToR に接続されたサーバの転送容量の合計値に等しいため、ノンブロッキングとみなされます。
理論的には(このようなトラフィックパターンがあると仮定した場合)、すべてのサーバが一定期間フル帯域でデータを送信する場合、クロスバーには十分な容量があるため、すべてのサーバは同時にフル帯域でデータを受信することが可能となります。しかしそのためには、各トラフィックフローに対して選択された Spine が「正しい」Spine であり、クロスバーが完全にロードされたときにすべての Spine の利用率がちょうど 100% になる必要があり、残念ながらこれは理論的にも不可能です。データセンター接続用の CLOS トポロジーを構築する場合、データセンター全体が any-to-any のトラフィックパターンで最大帯域幅を使用することはありません。
また、この CLOS はイーサネット技術をベースとしているため、入口側の ToR は特定のフローの転送先の Spine を可能な限りランダムに近いとされるハッシュアルゴリズムに基づいて決定していると言う点も重要なポイントとなります。
同じトポロジーを実装する別の技術に、インフィニバンドがあります。インフィニバンドにおいては、Spine 選択に関する ToR の決定は、クロスバー全体を完全に可視化できる外部ブレーンから付与される追加情報に基づいて行われます。これにより、クロスバーの帯域をフルに活用することが可能になりますが、クラスタ全体を流れるフローの種類に関するノウハウが必要になります。これは、カメラを搭載したドローンが道案内をしながら迷路を抜けるようなものだと考えてください。迷路を通り抜けるには、ドローンに搭載されたカメラが必要なのです。
図3:内部シャーシ・トポロジー 出典:53bits
ここまでで、CLOS とシャーシはトポロジーとしては大きな違いがないことがわかりました。では、どのような特性をもとに各モデルを選択すれば良いのか特徴を見ていきましょう。まずはシャーシから。
シャーシは扱いが簡単で、最適なポート収容率で動作する場合、非常に効率的です。単一のコントロールプレーン。単一の IP アドレス。ポート需要に合ったサイズの筐体を選択し、ラインカードを挿入するだけです。何か問題が発生したときにはベンダー 1 社に連絡すればことが足ります。また、すべてのラインカードとポートでフルスピードで動作させた場合、ギガビットのトラフィックあたりの消費電力は最高です。
唯一の問題は、この最適なポート収容率に達することがないということです。シャーシの使用率が 〜70% に達すると、トラフィックの急増によって 100% を超える可能性があるため、交換が必要になります。シャーシは物理的に構成されており、金属製の筐体を超えて大きくすることはできません。可能な限り大きなシャーシでスタートすることもできますが、その場合、シャーシの利用率が低くなることがほとんどです。シャーシの利用率が高くなると、この単一のデバイスに接続されたケーブルがデータセンター全体に散乱することになります。
しかし、シャーシは、一般的なネットワークでは実装できない内部メカニズムが組み込まれているため、最も予測可能な動作を実現します。これは AI ワークロードにとって極めて重要です。
一方、CLOS(イーサネット CLOS)は、シャーシにはない輝きを放ちます。CLOS は小型の(そして一般的に低コストの)スイッチで構成されています。またネットワークの拡張や変更が非常に容易です。スケーリングはスケールアップよりもスケールアウトが基本です。また、ネットワークを構築する際に複数のベンダーから選択することができるため、サプライチェーン(そして最終的には価格)をより適切にコントロールできます。
ただし、パフォーマンスにはまだ不十分な点があります。シャーシはフローを受け取り、それらを断片化して、すべてのファブリック要素に「スプレー」できるようにします(そして受信側で再組み立てされます)。 CLOS でのフロー処理は、シャーシに組み込まれた内部メカニズムほど効率的ではありません。
また、CLOS の Spine と Leaf は全て独立稼働するネットワーク機器でもあります。そのため、大規模な実装では、管理するデバイスが何百台にもなり、それらの間のネットワークも管理、監視、保護、トラブルシュート、修正が必要になります。そのすべてを早急に行う必要があります。
選択を迫られると、常に妥協が必要になります。サービスプロバイダーはシャーシの性能に傾倒し、データセンターは CLOS のスケールを切望します。
しかし、データセンターで稼働する AI ワークロードには、その両方が必要です。
DDC(分離分散型シャーシ)は、金属筐体を持たないシャーシです。
図4:DDC アーキテクチャ 出典:OCP DDC Spec Version 1
シャーシのパフォーマンスと管理の利点を検討した結果、もしもシャーシが硬直的でなく、拡張性が高く、需要の変化に柔軟に対応できるものであれば、AI ネットワーキングに最適になっていただろうということがわかりました。一方で、CLOS のような分散型モデルは、このような欠落した属性を実現するのに最適であり、標準的なホワイトボックス設計を使用することでベンダー(アン)ロック(つまりは顧客によるコントロール)が可能になります。
つまり、最適なソリューションは、シャーシを分散・分離した形にすることでしょう。OCP の人々は、そのソリューション仕様を DDC と名付けたとき、そうしたことを念頭においていたのではないでしょうか。