データセンター

HPC ネットワーキング:ネットワーク スーパーコンピュータの基礎

ホワイトペーパー





HPC ネットワーキング:ネットワーク スーパーコンピュータの基礎



「クラスタ」という用語は、2 台以上のコンピュータの共同作業によりアプリケーションのパフォーマンスやアベイラビリティを向上させるコンピュータ システムを示します。ハイパフォーマンス コンピューティング(HPC)は比較的新しい種類のクラスタであり、きわめて高い性能が要求されることが広く認識されている、多様なパフォーマンス依存型並列アプリケーションをサポートします。ここでは、利用可能なさまざまな種類のクラスタについて説明し、ネットワーク接続の観点から HPC クラスタを詳しく調べ、HPC クラスタの構築時にネットワーク テクノロジーの評価に必要となるさまざまな注意事項を示します。

概要

今日、多くの企業では、ハイパフォーマンス コンピューティング(HPC)クラスタを使用して、企業の収益や競争力に影響を与えるような「ひらめき」を早める商用 HPC アプリケーションを実行しています。これらのアプリケーションは、特に結果を生み出すまでにかかる時間の節約という点で、大きな利点があります。開発にかかわるリスクを減らしたり、投資の効率を高めたり、製品の出荷時期を早めたりできるからです。

従来、並列アプリケーションは、非常に高価で、多くの企業では取得および運用が難しい一体型スーパーコンピュータ上で実行されてきました。従来のスーパーコンピュータとほとんど同じ原理を使用している最新の開発成果が HPC クラスタです。HPC クラスタは、クラスタ ソフトウェアとハイパフォーマンス ネットワーク相互接続を使用する複数の、ときには数千の業界標準コンピュータから構成され、従来のスーパーコンピュータと比べてわずかな費用で並列アプリケーションを実行できます。

HPC クラスタの主要要素の 1 つはネットワークです。並列コンピュータの核となるのは、プロセス間通信(IPC)と呼ばれる、クラスタ内の他のノードとメッセージを交換する機能です。このようなメッセージ交換を容易にするため、IPC にはハイパフォーマンス ネットワークが必要です。ただし、見逃されがちなことですが、HPC クラスタ内では、ファイルのアクセスと管理など、それ以外の通信機能も必要です。さらに、HPC アプリケーションには、アプリケーション実行中のデータの交換頻度とデータ量など、さまざまな要件があり、特定の HPC ソリューションを選択するときは、このような要件を理解することが重要です。

クラスタ、HPC クラスタ、グリッド、スーパーコンピュータの分類

クラスタという用語は、アプリケーションのパフォーマンスまたはアベイラビリティを向上させるさまざまな方法を示すときに使用されます。HPC におけるグリッドとクラスタは、特定の機能を提供する複数のコンピュータを示す用語として、多くの場合は区別なく使用されますが、同じものではありません。共通の基準を示し、HPC とスーパーコンピュータのコンテキスト内で使用されることが多い用語の定義を示すために、このドキュメントでは次の用語を使用します。

スーパーコンピュータ、フェデレーション、コンステレーション

外側から見て、単一のアプリケーションを高速に実行する一連のコンピュータのことを、スーパーコンピュータと呼ぶことができます。スーパーコンピュータは、単一の高度に最適化された対称型マルチプロセッサ(SMP)サーバを指したり、超並列プロセッサ(MPP)と呼ばれる多数のプロセッサから構成されるサーバを指すことがあります。また、多数の相互接続されたスーパーコンピュータから構成される場合、通常はフェデレーションまたはコンステレーションと呼びます。比較的最近の進展として、HPC クラスタの使用が挙げられます。HPC クラスタは、ハイパフォーマンス ネットワークを使用して相互接続された業界標準のコンピュータから構成され、スケーラブルなスーパーコンピュータの性能を発揮します。スーパーコンピュータの例は、TOP500 スーパーコンピュータ Web サイト(http://www.top500.org/)にあります。

図 1 スーパーコンピュータからネットワーク スーパーコンピュータへ

図 1 スーパーコンピュータからネットワーク スーパーコンピュータへ

クラスタ

HPC クラスタは、フェデレーションの概念が進化したものです。異なる点は、プロセッサ ノードがハイパフォーマンス ネットワークおよび標準ベースのメッセージ パッシングと転送プロトコルを使用して相互接続された業界標準サーバであることです。クラスタは、価格比パフォーマンスとスケーラビリティにより、スーパーコンピュータ市場で最も成長性が高い部門です。

クラスタという用語は、大まかに定義すれば、単一の管理権限の制御下にある複数の計算リソースの集合を指します。クラスタは複数の計算リソースから構成されますが、外部からは単一のシステムに見えます。通常、クラスタは遅延または管理上の理由から地理的な制約を受けます。

クラスタという用語は、サーバ間のさまざまな種類の共同作業を示すときに使用されます。この点で、クラスタは主に次の 4 つの種類に分類できます。

  • ハイアベイラビリティ(HA)クラスタ:HA クラスタでは、ノンストップ、または可能な限りノンストップでアプリケーションを利用できます。HA を実現するにはいくつかの戦略を使用できますが、一般には 1 台のサーバをマスタ ノードとし、マスタ ノードに障害があった場合には 1 台以上のサーバでバックアップ サービスを提供します。通常、この種のクラスタでは、ノードのヘルス情報を定期的に交換するサーバ間ハートビートを使用します。HA クラスタは、基本的に CPU やネットワーク帯域幅の負荷は大きくなく、遅延の影響を受けにくくなっています。
  • ロードバランス クラスタ:ロードバランス クラスタを使用すると、サーバ ファーム内のサーバ間でユーザ セッションを分割して、アプリケーション パフォーマンスをスケーリングすることができます。サーバ ファームのリソースが使い果たされたときに、ユーザが意識しないまま容量が追加されます。ここでも、さまざまな戦略を使用できます。たとえば、Cisco® アプリケーション コントロール エンジン(ACE)を使用して複数のサーバ間でセッションを負荷分散処理できます。クッキーなどのアプリケーション レベルのパーシスタンスまたは Java セッション パーシスタンスが使用される場合、ロードバランス クラスタではハイアベイラビリティも実現できます。サーバを追加すれば容量の問題には対処できるため、ロードバランス クラスタはその性質上 CPU やネットワーク帯域幅の負荷は小さく、遅延の影響は受けにくくなっています。
  • ハイパフォーマンス コンピューティング(HPC)クラスタ:HPC クラスタは、1 つの問題の解決に使用される 2 台以上のコンピュータを指します。HPC クラスタは、ハイパフォーマンス ネットワークで相互接続された 1 つのマスタ ノードと複数のスレーブ ノードから構成されます。アプリケーションによって、HPC は 3 つの下位カテゴリに分けることができます。
    • パラメトリック実行(Parametric Execution):パラメトリック実行は、並列化できないアプリケーションに使用され、アプリケーションは 1 つの計算ノードで実行されます。パラメトリック実行の利点は、アプリケーションはノード間で情報を共有できませんが、同じアプリケーションを実行している異なるノードに異なる入力データが送信された場合、複数のノードでその情報を並列に処理して、処理を高速化できることです。パラメトリック実行ではノード間でメッセージを交換しないため、パラメトリック実行 HPC クラスタは遅延の影響は受けませんが、アプリケーションによっては帯域幅の負荷が大きいことがあります。
    • 疎結合アプリケーション(Loosely Coupled Applications):疎結合アプリケーションでは、計算全体を自律的に実行できるため、他のクラスタ ノードとのやり取りがほとんど不要です。一般に、疎結合クラスタは遅延の影響を受けず、CPU の負荷は大きく、中〜高帯域幅のネットワーク相互接続が必要です。ほかに、超並列、驚異的並列、および近驚異的並列に分類する方法もあります。これらのアプリケーションの特徴は疎結合アプリケーションとほとんど同じですが、遅延の影響と使用帯域幅には違いがあります。
    • 密結合アプリケーション(Tightly Coupled Applications):密結合アプリケーションでは、他のノード(すべてのノードまたはノードのサブセット)とメッセージの形で定期的に情報を交換する必要があります。一般に、密結合アプリケーションは遅延の影響を受けやすく、CPU の負荷が大きく、データの交換時に急激で予想できないトラフィック パターンが生成されます。通信に使用される時間はデータ処理が行われないため、密結合アプリケーションには低遅延と高帯域幅のネットワーク相互接続が必要です。
  • トランザクション アプリケーション:意志決定支援システムなどのトランザクション アプリケーションでは、通常、クラスタとはデータベース クラスタのことです。クラスタ化すると、複数のデータベース サーバ間でデータベース クエリを分割できるので、トランザクションのパフォーマンスが向上します。データベース サーバでは、Oracle RAC などのミドルウェアを使用してクエリを分散し、データベース検索を行います。トランザクション クラスタは HPC クラスタではなく、HA クラスタやロードバランス クラスタでもありませんが、ほとんどの実装はあらかじめロードバランス機能と HA 機能を備えています。トランザクション クラスタでは基本的に CPU または帯域幅への負荷は小さく、サーバを増やすと容量の問題に対処できます。ただし、データベース レコードの整合性(キャッシュの同期など)を維持するには低遅延が必要であり、データベース応答のサイズに対応するには高帯域幅にする必要があります。

グリッド

グリッド コンピューティングの概念はさまざまな形で解釈されてきました。一般に、グリッドとは、複数の管理権限の制御下に置かれることがある異種計算リソースのプールを指します。グリッドは、ストレージ、計算など、リソースの複数のプールから構成されることがあります。また、複数の地理的に分散されたクラスタから構成されることがあります。外部から見た機能としては、グリッド ミドルウェアを使用することにより、グリッド内のリソースが計算タスクを実行するようにスケジュールを設定できます。

多くの企業では、拡張サプライ チェーン マネジメント契約の一部として、または研究開発のために、グリッド コンピューティングで情報の共有ができることを期待しています。この点で、グリッドは多くの場合、ユーティリティ コンピューティングに関係します。ユーティリティ コンピューティングでは、計算リソースを要求に応じて増減でき、計算能力を CPU ごとに時間単位で購入できます。また、グリッドは Folding@home、Seti@home など、スカベンジャタイプのアプリケーションにも関係しています。スカベンジャタイプのアプリケーションでは、分散 PC の空き CPU サイクルを使用して計算を行います。

HPC ネットワーキング

前に説明したように、HPC クラスタはフェデレーションの概念が進化したものであり、プロセッサ ノードは標準ベースのハイパフォーマンス ネットワークと通信プロトコルを使用して相互接続された業界標準サーバです。HPC では、HPC クラスタ内のノード間で通信を行うネットワークの特性とパフォーマンスは、HPC のパフォーマンスを左右する重要な要素です。独自の相互接続もいくつか存在しますが、Top500 Supercomputer Sites のスーパーコンピュータ リスト(http://www.top500.org)では、Infiniband とイーサネット ベースのスーパーコンピュータ展開が増加しています。

HPC 内では、クラスタ内の各ノードは制御やプロセス間通信のために、ストレージなどのさまざまなリソースや他のノードと通信できる必要があります。一般に、クラスタ内の通信は次の 4 つの操作に分けられます。

  • アクセス ネットワーク:アクセス ネットワークは、クラスタへのユーザ アクセスを提供し、ジョブのスケジュール設定とグラフィカル データの表示を可能にします。アクセス ネットワークでは、NAS(Network Attached Storage)などのリモート リソースやグリッド コンテキスト内の他のクラスタへの接続を提供することもあります。
  • 管理ネットワーク:管理ネットワークとは、クラスタ コマンドと制御ネットワークのことです。これにより、クラスタで実行される作業のスケジュール設定、開始、チェックポイント設定、および停止をマスタ ノードで実行できます。また、トラブルシューティングのためにノードを監視することもできます。
  • ストレージまたは I/O ネットワーク:ほとんどの HPC 環境で、クラスタ ノードは外部 NAS または SAN からローカル ディスクにデータをダウンロードし、必要な計算を行ってから、その結果を NAS または SAN に書き戻します。この操作では、NAS/SAN システムとクラスタ ノード間に高速アクセスが必要です。
  • プロセス間通信(IPC)ネットワーク:IPC ネットワークは、IPC メッセージを交換できるように、クラスタ ノード間の高速接続を提供します。IPC ネットワークの特性がアプリケーションのパフォーマンスに大きな影響を与えるため、IPC ネットワークでは高帯域幅および低遅延ネットワーク テクノロジーを使用します。

図 2 HPC 接続

図 2 HPC 接続

通常、小規模 HPC クラスタではすべての接続を 1 台のギガビット イーサネット スイッチにまとめます。しかし、大規模クラスタでは各ネットワークの要件について注意する必要があります。上位 500 のクラスタの多くは IPC、アクセス、管理、およびストレージに異なるネットワークを使用しています。ただし、多くのインターフェイスを搭載するために大型サーバが必要になることがあり、さまざまな問題が生じる可能性があります。HPC の接続要件に対処するテクノロジーを選択する際の考慮事項については、次で説明します。

アクセス ネットワーク

I/O ネットワークは、HPC クラスタ ノードの外側にあるリソースとの相互アクセスを提供します。通常、HPC 内ではマスタ ノードまたはヘッド ノードのみが外部ユーザと通信します。他のすべてのノードは、マスタ ノードによって制御および管理されるスレーブ ノードです。通常、マスタ ノードのプログラミング インターフェイスは、Telnet、SSH、または BPROC(Beowulf)を使用したリモート シェル コマンド ライン環境に基づいており、それによって個々のジョブを開始します。

管理アクセス プロトコル(SSH など)は数 KB の帯域幅しか使用しませんが、他の接続要件ではさらに広い帯域幅が必要になることがあります。マルチクラスタ ジョブが実行されるグリッド アプリケーションの場合、メッセージ パッシング インターフェイス(MPI)コレクティブの設計によっては、リモート クラスタの他のノードと通信するためにスレーブ ノードが必要です。さらに、グラフィカルでリアルタイムのデータ表示が必要な場合、帯域幅の使用量が大きくなることがあります。たとえば、解像度 1,024 × 1,024 の画面に 25 フレーム/秒でリアルタイム表示した場合は、約 600 Mbps の帯域幅が使用されます。

アクセス ネットワークの最も重要な特徴は、クラスタのアクセス元またはアクセス先のリソースは地理的に遠隔地に配置されている場合があること、また、帯域幅には注意が必要でも、低遅延は通常必要とされないことです。しかし、外部の信頼されていないデバイスがクラスタにアクセスする場合、セキュリティ、QoS、およびアベイラビリティはユーザが受ける「サービス」に直接影響するため、注意が必要です。こうした属性がある場合、アクセス ネットワーク接続にはギガビット イーサネットと TCP/IP が最適です。QoS、セキュリティ、IP マルチキャストなどの堅牢なサービスをサポートする高帯域幅のユビキタスな転送が提供されるためです。

管理ネットワーク

管理ネットワークは、マスタ ノードとスレーブ ノード間の通信を提供します。マスタ ノードはスレーブ ノードの稼働状態の判別、スレーブの作業のスケジュール設定、必要に応じたジョブの開始、チェックポイント設定、および停止を行うことができます。また、管理ネットワークは、各ノードが定期的にヘルス状態と稼働状態(ハートビート メッセージを使用)をマスタ ノードに報告できるメカニズムも備えています。Platform Rocks、Ganglia、Scali's Manage、IBM の Cluster Systems Management(CSM)と Extreme Cluster Administration Toolkit(xCAT)など、多くの管理ツールを利用できます。

管理ネットワークの最も重要な特徴は、アクセス先リソースは通常クラスタにローカルで、高帯域幅と低遅延に注意する必要はなく、多少のオーバー サブスクリプションは許容されることです。これらの属性を考慮すると、アクセス ネットワーク接続にはギガビット イーサネットと IP が最適です。それ以外に、マスタ ノードへの統計の報告に IP マルチキャストが使用されている場合は、IP マルチキャストが必要になることがあります。*

メモ:中堅・中小規模の HPC クラスタでは、アクセス ネットワークと管理ネットワークが統合されていることがよくあります。帯域幅と遅延が問題になることはほとんどなく、トラフィック パターンも輻輳の原因にはならないためです。HPC 管理トラフィックとユーザ アクセス トラフィックを適切に分類することは比較的簡単であるため、輻輳の問題が発生した場合は、QoS を実装することで簡単に解決できます。アクセス ネットワークと管理ネットワークを結合した場合は、セキュリティも問題になることがあります。この場合も、アクセス コントロール リスト(ACL)やファイアウォールを使用してクラスタ ノード アクセスを制御することにより、比較的簡単にセキュリティを提供できます。

* ノード統計を報告すると、クラスタの効率が低下することがあります。スレーブ ノードが管理ステーションに情報を報告するために、アクティブ スレッドを中断する必要があるためです。多くの HPC 環境では、コンテキスト スイッチとネットワーク通信に関連する CPU オーバーヘッドを減らすために、比較的長い間隔(30 分以上)で状態とアクティビティを報告するようにタイマーが設定されています。

ストレージ ネットワーク

ストレージ ネットワークは、HPC クラスタ内のマスタ ノードとスレーブ ノードで計算されるデータへのアクセスを提供します。HPC 内には、HPC ノードによるデータの格納とアクセスに関して使用できる戦略がいくつか用意されています。基本的に、データへのアクセスには 2 つの方法があります。1 つは、外部ファイル システムを使用してファイル レベルで行われます。これは通常、NAS(Network Attached Storage)と呼びます。もう 1 つはブロック レベルで行われます。この場合、サーバの物理ハード ドライブを含む直接接続ストレージ(DAS)またはストレージ エリア ネットワーク(SAN)が使用され、それぞれ SCSI または SCSI RDMA プロトコル(SRP)を使用するファイバ チャネルまたは InfiniBand 接続ストレージが使用されます。

ファイル アクセスはほとんどの人にとってなじみがあり、比較的単純です。アプリケーションのユーザは NAS から特定のファイルを要求します。ファイルの取得、ファイル ロック、およびファイルを保存する物理ハード ディスク上の場所の決定は、NAS が行います。一方、ブロック レベル ストレージでは、アプリケーションがファイルを保存するハード ディスクの物理的な場所を管理する必要があります。ほとんどのアプリケーションでは、ファイル アクセスとファイル マネージャを使用して、ハード ドライブへのファイルの保存方法を管理します。たとえば、Microsoft Word などのデスクトップ アプリケーションでは、有効な名前を使用してファイルを保存すると、ファイルは Windows オペレーティング システムの NTFS によって物理ディスクに書き込まれます。

ブロックレベル アクセスは、アクセス プロトコルとして SCSI を使う DAS および SAN 接続ストレージに使用されます。ブロックレベル アクセスでは、意志決定支援システム(データベース)クラスタで一般的な高速トランザクションを達成できますが、ファイルのセキュリティとロック、およびファイルの内容を他のノードで利用できるようにする際に問題が生じることがあります。

ファイバ チャネルはストレージ エリア ネットワーキング(SAN)テクノロジーとして最も普及しています。ブロック アクセスは、SCSI RDMA プロトコル(SRP)を使った InfiniBand ストレージへのアクセスにも使用できます。リモート ストレージへのブロックレベル アクセスとしては、iSCSI over IP を使用する方法もありますが、今のところあまり普及していません。

一方、ファイルレベル アクセスでは、アプリケーションが NAS からファイルまたはファイルのサブセットを要求すると、NAS は要求元にファイルを返します。これは、アプリケーション開発者にとってわかりやすいモデルです。アプリケーションではストレージ ディスク アレイへのデータ書き込みを管理する必要がなく、ファイル共有やファイル アクセスのロックとセキュリティ保護が簡単になるからです。NAS は、ファイル ストレージの統合点として使用することもできます。さらに、RAID など、さまざまなストレージ冗長オプションを使用して展開し、データ保護や障害回復を提供することもできます。将来、分析のためにデータの取得が必要な場合に備えて、NAS を中心にファイルを管理してアーカイブ サービスを提供できるようにすることもできます。もう 1 つの利点は、NAS プロトコルは IP に基づいているため、ファイル システムをネットワーク内のどこにでも配置できることです。

表 1 ストレージ アクセス プロトコルとテクノロジー

ストレージ タイプ ブロック アクセスまたはファイル アクセス ユーザ アクセス テクノロジー ストレージ アクセス
NAS ファイル イーサネット:GE または 10GE ファイバ チャネルまたは Infiniband
SAN ブロック なし ファイバ チャネル、Infiniband、または iSCSI
並列ファイル システム ファイル イーサネット:GE DAS、ファイバ チャネル、または Infiniband

しかし、多数の HPC ノードが NAS にアクセスする場合、データ入出力(I/O)および帯域幅(大量のデータのやり取りが必要な場合)に関して大きな問題が生じることがあります。NAS の I/O スループットをスケーリングできるようにするには、いくつかの方法を使用できます。1 つのソリューションは、複数の NAS I/O インターフェイス(または I/O ノード)とロード バランス技法を利用してパフォーマンスを向上させることです。もう 1 つのソリューションは、並列ファイル システムを使用することです。並列ファイル システムを使用することで、ファイル データ(ペタバイトのオーダーになることがあります)は個々のチャンクに分割され、I/O ノードと呼ばれるいくつかのサーバに分散されます。メタデータ サーバはチャンクの分散と場所を管理し、さらにデータを複数のディスクにストライプすることでデータの重複も管理します。ファイルが要求されると、メタデータ サーバはファイルの場所を使用して応答し、要求元は応答内で指定された場所からファイルを読み取ります。並列ファイル システムでは、I/O ノードなど複数の標準ベースのサーバを使用して、HPC および非 HPC ファイル システムに対する比較的低コストで高スループットのファイル共有ソリューションを提供します。NAS アクセスには NFS が広く使用されていますが、多くの HPC クラスタでは Parallel Virtual File System(PVFS)、IBM の General Parallel File System(GPFS)、Lustre、iBrix などの並列ファイル システムを使用してストレージ I/O のパフォーマンスをスケーリングできます。

アクセス ネットワークと管理ネットワークの特徴を記述することは比較的簡単ですが、ストレージ ネットワークには、アプリケーションによって必要なソリューションが異なる多数の選択肢があります。したがって、ネットワーク テクノロジーを選択するためには、アプリケーションの要件を理解する必要があります。この点で、InfiniBand、イーサネット、およびファイバ チャネルはすべて、アクセス テクノロジーとしての HPC ストレージ ソリューションの一部として、または NAS か SAN ソリューションの一部としての役割を持っていると言えます。

最も一般的な HPC ストレージのソリューションは NAS です。HPC ノードでは、管理ネットワーク経由または専用イーサネット インターフェイスを使用してアクセスできます。NAS 自体がファイバ チャネルを使用して SAN を実装し、ディスク アタッチメントを管理することがありますが、これは HPC ノードからは完全に透過的です。ファイバ チャネルは、製品の成熟度と業界での広範なサポートにより、最も広く採用されている SAN ネットワーク ファブリックです。InfiniBand 接続ストレージは比較的新しい製品です。

プロセス間通信(IPC)ネットワーク

IPC ネットワークは、実行時に HPC クラスタ ノード間で情報を転送するために必要な接続を提供します。メッセージを使用してノード間で転送される情報の量は、帯域幅と頻度から見た場合、アプリケーション タイプとアプリケーションの通信パターンによって決まります。アプリケーション トラフィック パターン、およびこのパターンが異なるメッセージ パッシング モデルを使用するとどのような影響を受けるかをよく理解すると、IPC テクノロジーの選択、オーバーサブスクリプション率、および IPC ネットワークの設計が変わる可能性があります。

HPC に関しては、エンドツーエンド メッセージの遅延が特定のテクノロジーの効率を判別するための主要な尺度です。メッセージの遅延は、1 つのゼロ ペイロード メッセージを 1 つのプロセッサから別のプロセッサに転送するのにかかる時間として定義されます。これには、通信スタックの遅延、インターフェイス カードの遅延、シリアル化の遅延、ネットワーク スイッチングの遅延など、伝送経路内のすべての要素が含まれます。

多くの場合、ネットワークの遅延が遅延を構成する最も大きい要素と考えられますが、通信スタック処理とサーバ内のデータ移動によって発生する遅延の方がネットワーク スイッチの遅延よりもはるかに大きいことがあります。ほとんどのアプリケーションでは、ホスト プロトコル スタックの遅延の影響はアプリケーション処理の遅延のために目立ちませんが、HPC 内ではこの遅延はクラスタの効率に大きな影響を与え、大規模な計算では数時間や数日余分にかかることがあります。

ほとんどのサーバ内の I/O 操作では、データを入力インターフェイスからマップされた I/O メモリへ移動し、その後ユーザ スペース メモリに転送する必要があります。すべての操作は CPU の制御下で行われます。この操作は非効率的です。CPU ではさらに、すべての TCP 操作(確認、TCP ウィンドウ化、パケットの再シーケンス化、チェックサム計算など)を処理し、受信データを I/O メモリからユーザ スペース メモリに移動する必要があるからです。また、この場合、サーバは遅れることなく他のプロセスに応答するために、アクティブ スレッドを中断してコンテキスト スイッチを行う必要が生じることもあり、きわめて非効率的になるおそれがあります。

この操作の問題点は、CPU がアプリケーションを処理せずに、アクティブ スレッドを中断し、コンテキストを切り替えて通信スレッドを処理する必要があることです。HPC 環境内の IPC の場合、通信に使用される時間は処理に使用されないため、短時間(10 マイクロ秒単位)の割り込みでも大きな遅延が加わる可能性があります。ジョブ実行時間を 1 日単位で計算すると、割り込みのために多くのジョブ実行時間が失われていることが分かります。

図 3 非 RDMA と RDMA の通信

図 3 非 RDMA と RDMA の通信
※画像をクリックすると、大きな画面で表示されますpopup_icon

RDMA を使用すると、この状況は変わります。サーバではユーザ スペース メモリにデータを直接読み書きできるため、異なるメモリ スペース間で同じデータの複数コピーを転送することがなくなり、それに伴う CPU 割り込みもなくなります。RDMA では CPU からデータ移動のオーバーヘッドをオフロードするため、CPU は他のタスクを実行でき、効率が向上します。InfiniBand、または RDMA と TCP オフロード エンジン(TOE)を備えたイーサネット NIC と組み合わせて使用した場合、ほとんどすべての転送プロトコル処理とデータ移動を中央の CPU からインターフェイス ハードウェアにオフロードできるため、パフォーマンスは大きく向上します。

HPC とデータベース クラスタ環境内では、通信プロトコルにも注意する必要があります。多くのデータベースと HPC アプリケーションで最適なパフォーマンスを発揮するには低遅延が必要なため、ユーザ ダイレクトアクセス プログラミング言語(uDAPL)、メッセージ パッシング インターフェイス(MPI)などの特定のプロトコルは、高速の IPC 通信を可能にする低遅延のプロトコル スタック実装を提供します。HPC 内で最も広く採用されているプロトコルは MPI です。その理由として、プロトコルの解放性、実装内に含まれる豊富な機能などが挙げられます。

また、ネットワークが帯域幅に対してどのようにプロビジョニングしているかについても注意する必要があります。ユーザ アプリケーション通信には急激に変化するという特性があるため、多くのキャンパス環境では 20 〜 30:1 の帯域幅のオーバーサブスクリプションは許容されます。データ センターの場合、オーバーサブスクリプションのレベルは 4 〜 2:1 に低下します。ほとんどのトラフィックの転送先がデータ センター内でホストされたアプリケーション サーバであるためです。トラフィックのバーストが重なり、利用可能な帯域幅を超えた場合、インターフェイスのバッファリングでバーストを吸収し、パケットの損失を防ぎます。所用時間はバッファの深さにより、数 10 から数 100 マイクロ秒になります。ほとんどのアプリケーションでは、ネットワーク全体の遅延(10 ミリ秒のオーダー)またはアプリケーション処理の遅延でカバーされます。

しかし、HPC 内では、さらに遅延すると、通信時間が増加して CPU の効率が低下し、1:1 など、非常に低いオーバーサブスクリプション率が必要になることがあります。ただし、アプリケーションによっては、計算を小さい計算タスクに分割し、IPC トラフィック通信を局所化できることがあります。それによってオーバーサブスクリプション率が大きく変わることがあります。さまざまなテクノロジーやネットワーク トポロジが実用化されることがあるため、この要素はソリューションのコストに大きな意味を持つ可能性があります。

要約すれば、アプリケーションが疎結合(Loosely Coupled)か密結合(Tightly Coupled)かという点でのアプリケーションの特性、およびアプリケーションの通信パターンを理解することは、IPC ネットワーク テクノロジーを選択するときの重要な点です。さらに、エンドツーエンドの遅延を減らすために、インターフェイス カード、サーバのバス アーキテクチャ、プロトコル スタック、バッファリング、アプリケーションのトラフィック パターンなど、経路の各コンポーネントを考慮に入れる必要があります。多くの場合、RDMA は InfiniBand と関連付けられていますが、ギガビットや 10 ギガビットのイーサネット RDMA 対応 NIC は、InfiniBand で提供されている転送の効率に匹敵します。最後に、将来の要件に合わせて HPC 環境をどのようにスケーリングするか、またネットワークの運用上の性質についても注意する必要があります。多くの場合、大型シャーシに接続をまとめることを推奨されますが、ラック間のケーブル配線、管理のしやすさ、ソフトウェアやハードウェアのアップグレードの影響、拡張のしやすさなども考慮に入れる必要があります。

表 2 イーサネットと InfiniBand の比較

ギガビットと 10 ギガビット InfiniBand
長所 短所 長所 短所
低遅延、高帯域幅スイッチング InfiniBand、Myrinet などの専用転送プロトコルよりも多少高い遅延 超低遅延、高帯域幅スイッチング 高価。距離に制限あり(17 m)。ケーブル配線がかさばるためトポロジに制限あり
標準ベースの広く知られたプロトコル 10GE RNIC はこれからの成長が期待される 高性能トラフィック管理:QoS とフロー制御 集中 InfiniBand サブネット マネージャは分散プロトコル(IEEE)よりもコンバージェンスに時間がかかる
安価なギガビット イーサネット テクノロジー。無料の LOM TOE と RDMA テクノロジーがサポートされていない場合、CPU の負荷が大きい 10G のサポート 比較的新しく、複雑なプロトコルにはトレーニングなどが必要
RDMA、iWARP、TOE、iSCSI テクノロジーが利用可能 イーサネット上での RDMA の標準実装はこれから ネイティブ ストレージが入手可能 管理とサポートのツールが限定されている
堅牢で成熟した製品が入手可能   RDMA と SRP のネイティブ サポート 密結合スイッチと HCA 実装では、アップグレードに注意し、相互運用性テストを行う必要がある
高性能トラフィック管理(QoS)セキュリティ、HA など   SDP により従来の IP で InfiniBand RDMA を活用できる  
ケーブル配線が簡単   業界標準ベース  
管理とサポートのツールが入手可能      

ストレージ ネットワークの場合と同様、IPC ネットワーク テクノロジーと設計の選択は、単純には決まりません。特定の実装にとってどのテクノロジーが最適かを決定する前に、いくつかの要素を検討する必要があります。多くのアプリケーションの場合、IPC ネットワーク接続にはギガビット イーサネットが適しています。比較的安価で高速なネットワーク テクノロジーであるためです。Cisco Catalyst 4948、Catalyst 6500 など、低遅延のギガビット イーサネット スイッチは、アプリケーションの実行時に明らかに効果があるため、投資の価値があります。さらに Cisco Nexus シリーズは、低遅延で信頼性の高い 10 ギガビットイーサネットとData Center Ethernet を用いることにより、イーサネットをより多くの領域で適用可能とします。HPC 環境が増加するか、超低遅延 IPC を必要とするアプリケーションが展開された場合は、高密度 10G、超低遅延スイッチングを提供する InfiniBand テクノロジーが適しています。ギガビット イーサネットと InfiniBand の長所と短所については、表 2 に示しています。

相互接続の選択

アクセス、管理、ストレージ、および IPC のアプリケーション要件を満たすネットワークの選択は、最終的にはパフォーマンスの要求に従います。実際の HPC ユーザの関心は、特定の操作が完了するまでの時間、クラスタ ノードの効率、および完了するまでに必要な時間です。ただし、CPU 効率が多少低下したり、実行時間が少し長くなってもかまわない場合は、テクノロジーの点から別の決定を行うことができます。

たとえば、疎結合アプリケーション(Loosely Coupled Application)の場合、ギガビット イーサネットを InfiniBand と比較すると、ネットワーク スイッチング遅延(1 Gbps 対 10 Gbps** シリアル化)が少し高いために CPU 効率はわずかに劣りますが、IPC ネットワーク ソリューションとしては適しています。たとえば、InfiniBand を IPC ネットワークとして使用する 32 個のノードでは演算が 4 時間で完了し、ギガビット イーサネットを IPC ネットワークとして使用して同じ時間で完了するためには 36 個のノードが必要だとしても、コスト、使いやすさ、およびユーザの慣れという点で、これは容認可能なトレード オフとなることもあります。ただし、演算を 1,024 個の InfiniBand 接続ノードで 12 時間実行した後で、同じ演算を完了させるために、追加の 400 個のノードでギガビット イーサネット IPC ネットワークを使用する必要がある場合は、計算ノード、使用する電力、および冷却に関する付加コストにより、イーサネットのコスト面での優位が打ち消される可能性があります。

クラスタのサイズも検討する必要があります。小規模な HPC クラスタの場合は、特定のアプリケーションにとって必要なパフォーマンスと接続要件を 1 つのイーサネット スイッチで十分にサポートできることもあります。クラスタが大きくなると、アプリケーションおよびビジネス要件への対応に必要なパフォーマンスを満たすために、別のネットワーク インターフェイスおよびネットワークが必要になることがあります。最終的に、HPC クラスタ テクノロジーの設計は、特定のアプリケーションにとって必要なパフォーマンスに基づいて決定します。次のセクションでは、HPC の接続要件に応えるのに最適なテクノロジーを決定する際の検討事項について解説します。

** InfiniBand のデータ レートは、8B/10B 符号化のため、10 Gbps ではなく 8 Gbps です。

アクセスおよび管理ネットワーク

アクセスおよび管理ネットワーク用のテクノロジーの選択は単純で、イーサネットを選択します。これらのネットワークは遅延に関して特定の要件がなく、帯域幅を大量に使用することがない断続的なバースト トラフィックのために使用されます。つまり、ほとんどのサーバ プラットフォームでは、少なくとも 1 つのギガビット イーサネット インターフェイスがコストなしで含まれるため、このインターフェイスを使用することは経済的にも実用的にも大きな意味があります。

マルチレイヤ スイッチの Cisco Nexus ファミリおよび Cisco Catalyst® ファミリは、セキュリティや QoS などの豊富なサービスを備えています。これらのサービスを有効にしても、デバイスのハイパフォーマンスや低遅延は影響を受けません。Cisco Catalyst 4900 シリーズ スイッチおよび Cisco Nexus 5000 シリーズ スイッチは、パフォーマンスが高いこと、冷却の必要性が小さいこと、および電源の設置面積が小さいことが重要になるトップオブラック配置にとって理想的です。より高密度の展開の場合、Cisco Nexus 7000 スイッチは、超高密度でアベイラビリティが高い接続を有効にする、最高レベルのサービスおよび接続オプションを提供します。

ストレージ

ストレージ アクセスの場合は、NAS、ファイバ チャネル SAN、iSCSI、InfiniBand 接続ストレージなど、いくつかの選択肢があります。ここでは、これらについて解説します。

  • ネットワーク接続ストレージ:Network Attached Storage(NAS; ネットワーク接続ストレージ)は、中央集中型管理を可能にし、ファイルへの高帯域幅アクセスを提供するため、HPC で幅広く使用されています。もう 1 つの一般的な戦略として、高度な分散 NAS 機能を多少異なる方法で提供する並列ファイル システムがあります。これは、複数のノードのハードディスクを使用してハイパフォーマンス ファイル システムを実現します。NAS プロトコルは IP(NFS、FTP など)を中心にしているため、イーサネット接続がこのタイプのストレージ アクセスのデファクト スタンダードです。場合によっては、管理とユーザ アクセス ネットワークを使用して NAS にアクセスしたり、NAS が専用インターフェイスとなる場合もあります。統合を決定する主な要因は、データの取得によって使用される帯域幅の量です。データの取得に関する時間制限がなく、管理ネットワークとストレージ ネットワークを組み合わせることが許容されていることに注意してください。管理トラフィックの応答時間が問題になる場合は、QoS を使用すると、管理およびストレージ トラフィックを高優先順位と低優先順位に分類し、それに従ってスケジュールを設定できます。QoS の実装は比較的容易です。
  • ファイバ チャネル:HPC では、ファイバ チャネル SAN インターフェイスはスロットに追加的な負担がかかり、ファイバ チャネル HBA をプロビジョニングすることによってシステムのコストがより高くなる可能性があります。これは、サーバがより大きなファーム ファクタ(1 RU ではなく 4 RU)でなければならないことや、PCIx サーバが使用されているとサーバのパフォーマンスに派生的な影響が及ぶことがあるためです。実際、ファイバ チャネルは、HPC ノード接続では広く使用されていませんが、NAS ディスク キャパシティおよび信頼性を拡張するために使用されます。
  • iSCSI:iSCSI は現実的なテクノロジーですが、HPC 環境で使用する場合は別です。ただし、iSCSI は、イーサネット管理ネットワークまたはストレージ ネットワークを使用して HPC に容易に組み込むことができます。
  • InfiniBand 接続ストレージ:InfiniBand 接続ストレージは、現在、最新のテクノロジーです。これは、ストレージに対して高帯域幅、低オーバーヘッドでアクセスできます。大量のデータを移動する必要があるアプリケーションの場合、イーサネット接続並列ファイル システムと、InfiniBand 接続ストレージおよび SDP を組み合わせて使用すると、きわめてハイパフォーマンスなファイル転送を実現できます。このアプローチには他にも利点があり、固有のストレージ メカニズムは NAS(ファイルベース)であり、NAS によるすべての利点が InfiniBand の高帯域幅および低スタック オーバーヘッドと組み合わされます。

イーサネットは、高帯域幅(10 ギガビット イーサネット接続 NAS)で場所に依存しないサービスを提供するため、NAS へのアクセスに理想的なテクノロジーです。要求が厳しくない HPC クラスタの場合は、ストレージ アクセスをアクセスおよび管理ネットワークと組み合せることもできます。また、分散並列ファイル システムを使用すると、InfiniBand 接続ストレージを使用して高スループットのデータ取得も実現できます。

ファイバ チャネル環境の場合、Cisco MDS 9000 マルチレイヤ SAN スイッチは、Virtual Storage-Area Network(VSAN; 仮想ストレージ エリア ネットワーク)、包括的なセキュリティ、高度なトラフィック管理、高度な診断機能、統合 SAN 管理など、インテリジェント ネットワーク サービスを提供します。また、この製品の MDS 9000 ファミリは、iSCSI ゲートウェイ機能や、書き込みアクセラレーション、ネットワーク アクセラレーション サーバレス バックアップなどの高度な機能もサポートしています。

プロセス間通信(IPC)ネットワーク

IPC ネットワークは HPC クラスタの核となる部分で、複雑な演算を並列処理するためのメッセージをスレーブ ノード間で交換するために必要な接続を提供します。一般に、IPC ネットワークでは、最適な IPC 通信を行うには低遅延で高帯域幅である必要がありますが、アプリケーションから見た「低」および「高」の意味は、慎重に定義する必要があります。

この資料の冒頭にある詳細な分類を参照すると、アプリケーションはパラメトリック実行、疎結合アプリケーション、密結合アプリケーション、およびトランザクション アプリケーションに分類できます。

表 3 疎結合アプリケーション

業種 要件 アプリケーション 主な特性
エネルギー 地震および地球物理学のモデリング Geoquest、Geodepth アプリケーションには IPC トラフィックがまったく、またはほとんどなく、原則として遅延は問題でありませんが、帯域幅は重要な検討事項です。
金融 金融分析(モンテカルロ法) Barra、Sungard、RMG
デジタル メディア デジタル画像のレンダリング、アニメーション Discreet、Pixar Renderman

一般に、これらの特性からは、遅延に対する感度など、アプリケーションのいくつかの側面を判断できます。たとえば、疎結合アプリケーションおよびパラメトリック実行の場合、IPC 通信はまったく、またはほとんどなく、IPC メッセージがあるとしても非常に少ないため、IPC 遅延に敏感ではありません。この対極にあるのが密結合アプリケーションで、IPC 通信を頻繁に行って情報を交換します。この場合、通信が行われている間は処理が行われないため、遅延に非常に敏感です。

表 4 密結合アプリケーション

エンタープライズ バーティカル 要件 アプリケーション 主な特性
製造 クラッシュ シミュレーション、航空力学 Fluent、Powerflow IPC 通信オーバーヘッドを最小化するためには、低遅延であることが重要です。
生命科学 病気の研究、薬の開発、有限要素分析など Amber、Blast、Charmm

遅延を軽減するための対処が必要な分野もあります。ネットワークのコンテキストでは、低遅延のスイッチと高帯域幅の接続により、スイッチとネットワークのシリアル化遅延が軽減します。多くのアプリケーションおよび小規模な HPC クラスタの場合、IPC ネットワークにはギガビット イーサネットおよび 10 ギガビット イーサネットが適しています。これは、最近のギガビット イーサネット スイッチがスイッチング遅延および高帯域幅を実現しているためです。

イーサネット スイッチを実際に使用する場合は、すべてのイーサネット スイッチが低遅延スイッチ特性を持つとは限らないため、慎重に検討する必要があります。低遅延イーサネット スイッチの例として、遅延が 3.2 μ秒の Cisco Nexus 5000 スイッチがあります。この種の低遅延スイッチは、HPC 効率の観点から見たパフォーマンスの向上に大きな貢献価値があります。

設計から多くのスイッチ ホップを排除し、スイッチ レイヤを少数の大型スイッチにまとめることは魅力的ですが、スイッチ障害、ケーブル配線の複雑さと量、および電力と冷却の影響について検討する必要があります。HPC クラスタの規模が拡大するにつれて、インストール、スケーリング、運用、およびメンテナンスは、一元的な集約スイッチを使用したトップオブラック ソリューションによって簡素化される可能性があります。またギガビット イーサネットではなく、10 ギガビット イーサネットや InfiniBand などの別のテクノロジーを使用すると、遅延が軽減する場合もあり、障害隔離や管理などの点でトップオブラック ソリューションの利点がもたらされます。HPC サーバ ベンダーのほとんどのソリューションにはラック構成のサーバが使用されているため、トップオブラック スイッチは、10GE または集約レイヤ スイッチへの 4X InfiniBand アップリンクを使用する大規模でスケーラブルな HPC クラスタの基盤になります。

遅延に対する最大の効果は、通信プロトコル オフロード、Remote Direct Memory Access(RDMA; リモート ダイレクト メモリ アクセス)、および IPC ネットワーク インターフェイス カードへの通信オフロードにより、HPC 計算ノード内で得られます。RDMA は、CPU から任意の要件をオフロードして、ユーザと I/O メモリの間でデータを移動するメカニズムを備えています。HPC クラスタ内で、MPI は、InfiniBand HCA または RDMA 対応 NIC が持つ、基盤に組み込まれたデータ移動オフロード機能を利用できます。また、RDMA は、堅牢なセキュリティおよびカーネル バイパスもサポートしているため、CPU オーバーヘッドの点で非常に効率的です。

RDMA は、トランスポートに依存しないテクノロジーで、イーサネット HPC 環境に適用することができます。ただし、イーサネットの場合、TCP/IP 処理についても検討する必要があるため、少し複雑になります。この点で、NIC に組み込まれた TCP Offload Engine(TOE; TCP オフロード エンジン)は、TCP 処理のすべてまたは一部を CPU から NIC にオフロードする方法を備えています。

イーサネットベース HPC においてパフォーマンスが検討事項になる場合は、TOE または TOE + RDMA 対応 NIC への投資により、CPU 効率の点では InfiniBand テクノロジーに近いパフォーマンスが得られます。市販の 10/100/1000 および 10GE RDMA+TOE 対応 NIC を表 5 に示します。

表 5 RDMA 対応イーサネット ネットワーク インターフェイス カード(RNIC)

RNIC ベンダー 10/100/1000 10GE LOM チップ セット
Broadcom(Siliquent)
Chelsio 1000Base-T ×
Neterion × ×

現在、RNIC の大量生産と、マザーボードで RNIC 対応 LAN が利用できるようになっているため、イーサネットが主流になりつつあります。

では、どの IPC ネットワーク テクノロジーがアプリケーションにとって適切でしょうか。この質問に答えるためには、アプリケーションの特性、HPC クラスタの規模、アプリケーション トラフィックのパターン、ターゲット CPU の効率などについて正しく理解することが必要です。一般的には、アプリケーションが遅延に対して特に敏感ではなく、そのアプリケーションで一部のノードにおける CPU の多少の非効率が許容される場合、多くの HPC 環境ではギガビット イーサネットが適しています。アプリケーションが遅延に敏感な場合には、HPC アプリケーションにとっては InfiniBand が適しており、HPC ノード密度が高くなる可能性がある状況、HPC アプリケーションが混在する可能性がある状況にも適しています。

まとめ

ネットワークは、HPC の重要なコンポーネントです。一般に、HPC クラスタの IPC コンポーネントの要件では HPC 設計が重視されますが、ストレージ、管理、ユーザ アクセスなど、他の接続についても検討する必要があります。また、現在、HPC は主流のエンタープライズ展開でも採用されているため、HPC ネットワーク コンポーネントのセキュリティ、スケーラビリティ、アベイラビリティなども、すべて検討する必要があります。

ネットワーキング分野の世界的リーダーであるシスコシステムズでは、HPC アプリケーションおよびグリッド アプリケーションの要件を満たす完全なネットワーク ソリューションを提供することで、トップ 500 の HPC スーパーコンピュータの多くをサポートしています。

高い評価を受けている Cisco Nexus 7000 および Nexus 5000 シリーズ スイッチは、最も要求の厳しい HPC 環境に求められるパフォーマンス、アベイラビリティ、およびスケーラビリティをこれまでにない高いレベルで提供します。高性能で低遅延の GE および 10GE イーサネット スイッチングが実証されている Cisco Nexus 7000 および Cisco Nexus 5000 シリーズにより、Cisco Nexus スイッチは、IPC、ストレージ、および管理ネットワークをサポートすることができます。また、Cisco Nexus スイッチは、高度なセキュリティ機能もサポートし、HPC クラスタへの安全なアクセスを提供することができます。

Cisco MDS 9000 マルチレイヤ SAN スイッチは、信頼性と柔軟性に優れたハードウェア アーキテクチャにネットワークおよびストレージ管理インテリジェンスの複数のレイヤを組み合せることにより、高いアベイラビリティとスケーラビリティを備えたストレージ サービスを提供します。これらの特性により、Cisco MDS 9000 は、高度なセキュリティと統合管理を提供し、最も要求の厳しいストレージ環境の総所有コスト(TCO)を削減できます。