ハイ パフォーマンス コンピューティング

Windows Compute Cluster Server の概要

John Kelbley and Doug Lindsey

 

概要:

  • クラスタを使用して複雑な問題を解決する
  • 計算クラスタの一般的な要件
  • Windows ベースの計算クラスタをセットアップする
  • コマンドをリモートで実行する

ハイ パフォーマンス コンピューティング (HPC) とは、応用コンピューティングの分野の 1 つであり、多くの場合、計算を集中的に実行する問題の解決に重点を置いています。数年前の HPC (当時は "スーパーコンピューティング" という呼び名の方が一般的でした) は、

大規模 (かつ高価) な専用システムが主流であり、主に研究センターで使用されていました。しかし、小規模なシステムの計算能力が向上したことで、コストとパフォーマンスの比率が変化し、計算のワークロードがパーソナル コンピュータ規模のシステムと同じレベルまで減少しました。

計算を集中的に実行する問題の多くは、複数の計算を並列に実行して解決できます。つまり、特定の計算や処理を、別の計算や処理の結果に依存せずに完了できる場合があります。このような場合、計算クラスタとして複数の小規模なシステム (ノード) を使用して、大規模な問題を解決できます。以下に、計算クラスタを使用するアプリケーションの例をいくつか示します。

  • 金融モデル : 1 つのアルゴリズムや計算式が、毎回異なる入力に基づいて数千回実行されます。
  • エンジニアリング : 個々の部品で効果のシミュレーションを行い、テクスチャをモデルに適用します。
  • コンピュータ アニメーション : 動画の各フレームにテクスチャや光の効果を適用します。

計算クラスタを使用すると、複雑な問題をコストのかからない方法ですばやく解決できます。これから説明しますが、Windows® Compute Cluster Server 2003 では、計算クラスタの基本機能とサポートが提供されます。

計算クラスタは可用性 (フェールオーバー) クラスタとは異なることを理解する必要があります。Exchange、SQL Server®、または Windows Server® 2003 で実行されるその他のアプリケーションの可用性クラスタについては、既によくご存知でしょう。一般的に、これらの製品は、共有ストレージを使用してアプリケーションの稼働時間の最大化を図ります。計算クラスタの目的は、障害が発生した他のシステムを再開することではなく、すべてのノードが連携して動作できるようにすることです。

計算クラスタの一般的な要件

HPC の関連情報

最新の HPC システムは、ワークロードの処理を簡略化するためのいくつかの重要な要件を満たしている必要があります。まず、少なくとも 1 つのシステムが必要です。また、各ノードに処理を割り当てるためのスケジューラが必要です。スケジューラは、管理を担当するノード (ヘッド ノード) で実行され、使用可能なリソースを特定してタスクの割り当てと分配を行い、全体的なジョブの状態を追跡します。スケジューラは、システムのクラスタ内のリソースを調整するだけでなく、処理するジョブをユーザーや管理者が送信する場所でもあります。

クラスタにはノード間の通信手段が必要です。作業の種類によっては、メッセージをノード間で交換して処理を調整するために、高速で待ち時間の短い相互接続が必要になる場合があります。少なくとも、すべての計算ノードとヘッド ノードは共通のネットワークに接続されている必要があります。

相互に接続された多数のシステムが連携して複雑な問題を解決する場合も、細心の注意を払い、十分なリソースを供給する必要があります。一貫性のある安定した環境を確保するには、数十から数百、または数千ものシステムの提供、監視、管理、および保守に対応したプロセスやツールが必要です。

最後に、これが最も重要な点ですが、計算クラスタの並列処理機能を利用できるアプリケーションを使用する必要があります。ジョブを分散して複数のコンピュータで処理できるアプリケーションや、"並列デバッガ" がサポートされているツールがなければ、クラスタを使用しても、ただコンピュータ室の温度が上がるだけです。

Windows Server ベースのクラスタリング

2006 年に、マイクロソフトはさまざまな HPC アプリケーションの要件を満たす Windows Server 2003 Compute Cluster Edition (CCE) と Windows Compute Cluster Server 2003 (WCCS) を発表しました。CCE と WCCS は、どちらも使い慣れた Windows Server 2003 を基に構築されています。CCE は、HPC アプリケーションを実行できるライセンスを与えられた Windows Server 2003 のバージョンです。WCCS には Microsoft® Compute Cluster Pack (CCP) が付属していますが、それ以外は CCE とまったく同じです。つまり、既存の Windows Server 2003 システムの管理に使用しているものと同じツールを使用して、Windows Server ベースのクラスタを展開、運用、監視、および保守することができます。

1 つ注意が必要な点は、CCE と WCCS が x64 専用であるということです。これらの製品の 32 ビット (x86) バージョンは提供されていません。CCE と WCCS のハードウェア要件は、Windows Server 2003 Standard x64 Edition と同じです。CCE と WCCS では、パフォーマンスの高いハードウェア (64 ビット アーキテクチャ) のサポートだけでなく、パフォーマンスの高い相互接続 (ギガビット イーサネット、InfiniBand、Myrinet など) をサポートする Remote Direct Memory Access (RDMA) も提供されます。

Compute Cluster Pack

上記で説明した計算クラスタの基本的な要件のいくつかは、Compute Cluster Pack をインストールすることによって満たされます。CCP は、以下のコンポーネントが含まれたスタンドアロンのインストール パッケージです。

  • 統合型のジョブ スケジューラ
  • 業界標準である MPICH2 をサポートする Messaging Passing Interface (MPI)
  • クラスタ リソース管理ツールとユーザー ツール

CCE と WCCS の重要な違いは、この CCP です。計算クラスタにこれらのコンポーネントが必要であるなら、なぜ WCCS にだけ含まれていて CCE に含まれていないのか、疑問に思う方もいらっしゃるでしょう。この理由は、他のジョブ スケジューラや特殊な MPI を使用する (または MPI のサポートが不要な) HPC ソリューションが存在するためです。これらのソリューションに必要なのは、ソリューションを実行する高性能なプラットフォーム (Windows Server 2003 など) のみです。CCP はスタンドアロン パッケージであるため、他の Windows Server 2003 の x64 バージョン (CCE、Standard、Standard R2、Enterprise、および Enterprise R2) にもインストールできます。

展開の基本

WCCS は、Active Directory® やリモート インストール サービス (RIS) など、Windows の基本機能を使用して Windows ベースのクラスタの管理と運用を簡素化します。Compute Cluster Server は、Active Directory を使用してセキュリティを透過的に管理します。Active Directory を使用すると、ユーザーは 1 つの資格情報を使用してジョブをヘッド ノードに送信し、数百ものサーバー ノードに分散して実行することができます。ジョブが 1 つ以上の計算ノードで実行される場合、これらのジョブは、ジョブの送信時に指定されたユーザーの資格情報に基づいて実行され、その後、セキュリティが確保された状態でキャッシュされます。WCCS は Active Directory を使用して、この "単一のログオン ポイント" 機能を提供します。Active Directory を環境内で使用するその他の利点は、グループ ポリシーを使用してサーバーと構成ポリシーを一元管理できることです。

既に IT 組織に Active Directory が展開されている場合、既存のドメインにクラスタを構築すれば、大幅に時間が節約され、管理作業の量が減少します。これは推奨されるシナリオです。

Active Directory が存在しない環境に計算クラスタを展開する必要がある場合は、クラスタ用の Active Directory をホストする専用のドメイン コントローラを 1 台以上展開することをお勧めします。ヘッド ノードを Active Directory ドメイン コントローラにすることは珍しくありません。これは、どのネットワーク トポロジを使用する場合でも、すべてのノードがこのシステムにネットワーク経由で接続できるためです。しかし、ヘッド ノードをドメイン コントローラにすると、ヘッド ノードの負荷が増加するため、大規模なクラスタにはお勧めできません。また、Active Directory の展開と管理を行う際は、一般的なベスト プラクティスに従ってください (複数のドメイン コントローラのインストール、十分なバックアップ、適切なセキュリティの設定など)。

リモート インストール サービス

WCCS では、Microsoft リモート インストール サービス イメージの展開プラットフォームに適した統合型のフロント エンドが提供されます。RIS は、オペレーティング システムのイメージをヘッド ノードから各計算ノードに展開するために使用されます。つまり、RIS を使用して、新しいクラスタ ノードをすばやくインストールできるということです。RIS は便利な機能として WCCS に統合されていますが、必ずしもこれを使用しなければいけないというわけではありません。Windows Server 2003 Automated Deployment Services (ADS) や Windows Server 2003 の手動インストールなど、その他の一般的な Windows Server の展開テクノロジも使用できます。

RIS を使用する場合は、CCP をヘッド ノードにインストールする前に、少なくとも 2 つの論理ディスクが定義されていることを確認してください。RIS には、オペレーティング システムとは別に、サーバー イメージを格納するためのディスクが必要です。RIS のパーティションには、Windows Server イメージの完全なコピーを 1 つ以上格納するための十分なディスク領域を確保する必要があります。

特にネットワーク装置や記憶装置など、新しいサーバー ハードウェアでは、既定の Window Server 2003 イメージには含まれていないプラグ アンド プレイ ドライバが必要になる場合があります。この場合は、必要なドライバを手動でイメージに追加する必要があります。プラグ アンド プレイ ドライバの追加方法については、support.microsoft.com/kb/254078 を参照してください。

クラスタをインストールする

最初の手順は、クラスタの頭脳であるヘッド ノードの構成です。まず、上記で説明したいずれかの Windows Server 2003 の x64 バージョンをインストールします。オペレーティング システムのインストール時には、サーバーを既存のドメインに参加させる (推奨) か、Active Directory をサーバーにインストールする (大規模なクラスタの場合は推奨されません) かを選択します。

オペレーティング システムをインストールしたら、推奨される修正プログラムを Microsoft Update からすべてダウンロードし、インストールしてください。計算ノードのイメージングに RIS を使用する場合は、[コンピュータの管理] の [ディスクの管理] を使用して、少なくとも 2 つの論理ディスクが定義されていることを確認してください。スペースの都合上、この記事では RIS ベースのインストールについては説明しません。

サーバーにログインして更新を完了できたら、CCP のセットアップ プログラムを実行します。CCP のセットアップでは、画面の指示に従って、必要な以下のファイルと更新プログラムをダウンロードおよびインストールします。

CCP のセットアップ プログラムは、システムがインストール要件を満たしているかどうかを評価するのに非常に役立ちます。このセットアップ プロセスでは、図 1 のように、必要なコンポーネントとインストールされるコンポーネントを通知し、これらをインストールします。

図 1 CCP のインストールに必要なコンポーネント

図 1** CCP のインストールに必要なコンポーネント **(画像を拡大するには、ここをクリックします)

作業リスト

CCP のセットアップが完了すると、管理コンソールが起動し、[作業リスト] が表示されます。図 2 に示すように、[作業リスト] にはいくつかのペインが表示されます。それぞれのペインは異なる領域に対応しており、クラスタの構成を完了するための重要な作業が一覧表示されます。

図 2 クラスタの構成に必要な作業が表示される [作業リスト]

図 2** クラスタの構成に必要な作業が表示される [作業リスト] **(画像を拡大するには、ここをクリックします)

[作業リスト] を使用すると、ネットワーク トポロジの選択と構成、ノードのインストール プロセス、ユーザー管理モデルなど、配置を決定したクラスタのアーキテクチャを簡単に実装できます。各ペインの右側にタスクが表示され、タスクごとにウィザードが起動します。それぞれのタスクを順番に実行してヘッド ノードの構成を完了すると、既知の計算ノードに RIS イメージを展開できるようになります。また、定義された一連のユーザーがヘッド ノードを管理したり、ヘッド ノードにアクセスしたりできるようになります。

ネットワーク トポロジ WCCS では、HPC に使用される最も一般的な 5 種類のネットワーク トポロジがサポートされています。少なくとも、すべての計算ノードとヘッド ノードが共通のネットワークを共有している必要があります。これらのトポロジでは、複数の種類のノード間の相互接続がサポートされており、トポロジによって利点とコストは異なります。

どのネットワーク トポロジを使用するかは、クラスタのパフォーマンス、セキュリティ、および展開要件によって異なります。たとえば、アプリケーションで高速な相互接続を使用して、企業ネットワークを経由せずにメッセージを送信する必要があるとします。この場合は、RIS を使用する統合型の自動展開機能が適しているでしょう。使用するハードウェアに NIC を 1 つしか搭載できない場合や、ヘッド ノードでインターネット接続の共有 (ICS) を実行して、計算ノードの名前解決やアドレス指定を管理する場合もあります。[作業リスト] から起動するクラスタ ネットワーク トポロジの構成ウィザードでは、一般的な HPC の実装でサポートされている 5 種類のトポロジが提供されます。また、ヘッド ノードと計算ノードの Windows ファイアウォールの構成など、ネットワーク接続の構成を行うこともできます。図 3 は、サポートされているネットワーク トポロジの 1 つを示しています。

図 3 サポートされている WCCS ネットワーク トポロジ

図 3** サポートされている WCCS ネットワーク トポロジ **(画像を拡大するには、ここをクリックします)

リモート インストール サービス 既に説明したように、RIS を使用するとクラスタ ノードを自動的に展開できます。

ノード管理 このクラスタの計算ノードとして使用するサーバーのコンピュータ名を指定できます。CCP をノードで実行する場合、ここでノードが参加するクラスタのヘッド ノードを指定します。

ユーザー管理 システム管理者またはクラスタ ユーザーの役割を与える Active Directory ユーザー アカウントまたはグループを指定できます。

ノードをインストールする

RIS の管理ユーティリティや、その他のサポートされている展開方法を使用すると、自動的に計算ノードを展開できます。ヘッド ノードと同様、すべての計算ノードに CCP をインストールする必要があります。図 4 が示すように、計算ノードの場合、CCP セットアップの構成オプションははるかに単純になります。指定する項目を次に示します。

図 4 Compute Cluster Pack のセットアップ

図 4** Compute Cluster Pack のセットアップ **(画像を拡大するには、ここをクリックします)

  • サーバーを (ヘッド ノードではなく) 計算ノードとして使用するかどうか
  • サーバーが参加するクラスタのヘッド ノード名
  • 管理ツールとユーザー ツールを計算ノードに追加するかどうか

管理コンソール

ノードとヘッド ノードとの間の通信が確立されると、すべてのシステムの管理作業の大部分を図 5 のような管理コンソールで行うことができます。このコンソールでは、関連付けられているすべてのノードの一覧、重要な管理作業、その他の詳細情報など、クラスタ全体に関する情報が一元的に提供されます。左端のペインにはコンソールの大まかな構造が表示され、ここから [計算クラスタの管理ツール] などにアクセスできます。このツールを選択すると、クラスタの状態やジョブの統計を示す概要画面が表示されます。このコンソールでは、すべてのリモート デスクトップ セッションとシステム モニタ セッションにもアクセスできますが、クラスタの管理に最もよく使用するのは、[ノード管理] です。

図 5 クラスタ全体の情報が提供される管理コンソール

図 5** クラスタ全体の情報が提供される管理コンソール **(画像を拡大するには、ここをクリックします)

実際に管理コンソールを確認すると、Windows とクラスタ ノードの一元管理に必要な主要ツールおよび機能へのアクセスが提供されることがおわかりいただけると思います。中央上部のペインに表示されているクラスタ ノードをクリックすると、他のいくつかのペインに情報が表示され、ノードに固有の機能を確認できます。

これらの機能は、右クリックして表示されるメニューから使用することもできるため、簡単に [ノード管理] から計算ノードを一元管理することができます。[ノード管理] を使用すると、ノードの一時停止と再開、クラスタに対するノードの承認、クラスタからのノードの削除、リモート デスクトップ、システム モニタ、イベント ビューアの起動、または CD ドライブからのディスクの取り出し (大規模なクラスタ内の 1 台のコンピュータを物理的に特定する際に非常に役立ちます) を実行できます。

便利な ClusRun

この一覧の中で、単独で最も役立つ機能は [コマンドの実行] です。この機能を使用すると、対象のコンピュータでコマンド プロンプトを操作しているかのように、任意のコマンドをリモートで実行できます。WCCS では、Clusrun.exe というこの機能のコマンド ライン バージョンが提供されます。"ClusRun" という名前は、GUI バージョンとコマンド ライン バージョンの両方を表します。

ClusRun ユーティリティを使用すると、特に大規模なクラスタの場合は、非常に大きな利点が提供されます。ClusRun を使用すると、同じ作業を何度もコマンド ラインから実行する必要がなくなるため、時間を大幅に節約できます。また、多くの場合、複雑な管理用スクリプトを記述する必要がなくなります。

この機能を使用するには、コマンドを実行するコンピュータを一覧から選択して右クリックし、[コマンドの実行] を選択します。これにより、図 6 のようなダイアログ ボックスが表示されます。あとは、実行するコマンドを入力し、[実行] をクリックして、[結果] ウィンドウが表示されるまで待機するだけです。初めて ClusRun を使用する際には資格情報の入力を求めるメッセージが表示されますが、この資格情報をキャッシュして次回から再利用することもできます。

図 6 コマンドは複数のノードで実行できる

図 6** コマンドは複数のノードで実行できる **(画像を拡大するには、ここをクリックします)

一般的に、クラスタに修正プログラムを適用したり、自動セットアップ ルーチンが含まれたプログラムをインストールしたりする場合は、これらのプログラムをファイル共有に配置した後、ClusRun を使用してすべての計算ノードで強制的にコマンドを呼び出します。次のコマンドを実行することにより、クラスタ内のすべての計算ノードを再起動できます。

CLUSRUN SHUTDOWN –R –F –T 0 

ツール パック

2007 年 5 月に、HPC チームは Compute Cluster Pack Tool Pack をリリースしました (このツール パックは windowshpc.net/resources/Pages/default.aspx からダウンロードできます)。このツール パックでは、Windows PowerShellTM のサポート、接続状態を診断できる MPIPingPong ツール、および非常に単純ながらも役立つグラフィカルなクラスタ モニタが提供されます。

図 7 が示すように、Simple Cluster Monitor では、クラスタのすべてのノードが 1 つの画面に表示され、各ノードで使用されているコアの数、各 CPU の使用率 (明るい緑)、メモリの使用率 (黄色)、およびネットワーク帯域幅の使用率 (オレンジ) が表示されます。これは、管理者がクラスタの稼働状況をひとめで確認できる、すばらしいツールです。

図 7 複数のノードを監視できる Simple Cluster Monitor

図 7** 複数のノードを監視できる Simple Cluster Monitor **(画像を拡大するには、ここをクリックします)

クラスタ モニタでは "リモート" 機能も提供されます。クラスタ モニタの最初のインスタンスは、ヘッド ノードで実行する必要があります。しかし、クラスタ モニタのインスタンスをヘッド ノードのコンソール セッションで実行した場合、その後ワークステーションからクラスタ モニタのインスタンスを起動し、ヘッド ノードでこれらのインスタンスを参照すると、同じ画面を表示できます。

今すぐ始めましょう

皆さんはもう HPC と Windows Server 2003 Compute Cluster Server について理解しています。CCP のインストール方法や、あらゆる機能が提供される優れたコンソールについて知っており、強力な新しいコマンドとグラフィカル ツールを使用して、同僚やユーザーを感嘆させることもできます。ハイ パフォーマンス コンピューティングに関するその他の資料については、補足記事の「HCP の関連情報」を参照してください。

John Kelbley は、米国北東部にあるマイクロソフトのグローバル ソリューション テクノロジ チームのテクニカル プロダクト マネージャです。John の連絡先は、Johnkel@microsoft.com (英語のみ) です。

Doug Lindsey は、マイクロソフトの HPC チームのプログラム マネージャです。また、実稼働計算クラスタの管理者でもあります (中には www.top500.org の 2007 年 11 月版で 116 位を獲得したクラスタもあります)。Doug の連絡先は Dougli@microsoft.com (英語のみ) です。

© 2008 Microsoft Corporation and CMP Media, LLC. All rights reserved; 許可なしに一部または全体を複製することは禁止されています.