2020/05/26
TECH Report は HPC テックスタッフからの情報発信です。
弊社では複数サーバ/ワークステーションを連携したクラスタシステムについて、これまでの多くの納入実績から得た知見を元に、お客様へ最適なクラスタ基盤を提供しています。 多くのお客様は、MPI による並列シミュレーションを高速化する、多数のプログラムあるいはデータを同時に処理する等の目的でご購入されています。最近では DeepLearning 処理のための GPU クラスタに対するご要望が増えてまいりました。
今回は、こうした高負荷かつ多自由度の処理を効率的に処理するクラスタシステムに必要なソフトウェアについて、弊社が推奨するミニマルのクラスタシステム設計・設定をご紹介します。
これまでワークステーションで計算をしてきたがさらに大きな計算をやりたい、また、これまでスパコンセンターを使ってきたがご自身の研究室で自由に使えるシステムが欲しい、とお考えの皆様にご参考になればと思います。
クラスタを利用する際には、多くの場合、ssh 接続でログインして利用します。そのためまずは外部接続用の LAN ポートが必要です。
一方クラスタ内部の通信には、それ専用のネットワークを形成します。こうするのは、クラスタ内部通信ネットワークには、ファイルシステムを共有する NFS やユーザを管理する NIS 等のサービスが存在するため、それらのパケットが外部へ漏れるのを防ぐためです。このため、クラスタ内部通信用にも LAN ポートが必要です。特にこのクラスタ内部通信では、利便性とともに MPI 並列計算が可能なようにパスワード無 ssh 接続を設定します。
(補足:さらに通常は、設定後の環境を固定するため、内部ネットワークと外部ネットワークは通信を遮断して、アップデートなどに応答しないようにします)
また、以降に述べますように、この内部通信は MPI 通信の他にファイルシステムの共有にも用いられる場合がほとんどです。このため、10G-ether 以上の性能が望ましいです。
最後に、クラスタを構成する各マシンのハードウェアの監視や FAN や電源制御のための BMC 通信には、通常はipmiプロトコルを用います。この ipmi による通信のための通信ポートも設定します。多くの場合、クラスタ内部通信用ポートは ipmi と兼用しますが、比較的大きなシステムではネットワーク障害耐性を考えて物理ポートを分離します。
HPC 系アプリケーションで MPI 並列計算を目的にクラスタシステムを組む場合には、通信負荷にもよりますが、絶対性能を追求されるお客様には InfiniBand 通信アダプタ/専用スイッチの追加装備をお勧めします。
最小構築クラスタ構成
ミニマルのクラスタシステムは、管理ノードと複数の計算ノードで構成されます。少数ノードのクラスタシステムでは、管理ノードが計算ノードを兼用するケースもよくあります。
ここで、各ノードの OS 領域には高速な SSD を用います。管理ノードのユーザホームディレクトリ /home やデータ領域には、大容量の HDD を用います。
管理ノードは、様々なライブラリやデータを維持管理する役割を持つため、できる限りディスクは RAID 構成で保護します。
さらに、ユーザが各ノードへログインした際にどのノードでも同じ環境になるように、クラスタシステム全体で管理ノードの大容量 /home ディレクトリを共有するのが一般的です。/home やデータ領域の共有のために別途ファイルサーバをクラスタへ組み込むことも可能です。
(補足:別途ファイルサーバを組み込む場合は管理ノードは動的マウント設定にします)
また、外部ファイルサーバを用意して /home や他のデータ領域を配置して共有することも可能です。InfiniBand などの高速通信ネットワークを用いればさらに快適な利用が可能になります。
クラスタシステム内の各ノードにログインする際に、ノード別に異なるアカウント属性を持つことは利便性に欠けます。このため、クラスタシステムでは NIS や LDAP といった、統合アカウント管理サービスを用いて、各ノードを同じアカウントで統一します。弊社ではその管理のしやすさを考慮して NIS を標準的に採用しています。
クラスタネットワーク、NFS によるファイルシステム共有、NIS によるクラスタ船体のアカウント統合が、クラスタシステムの基盤となります。あとはこのシステムにお好きなアプリケーションやライブラリーをインストールまたは構築すれば利用いただけます。
弊社では、フリーソフトでは、各種 MPI(openmpi、mpich、mvapich)、gcc コンパイラ、blas、lapack、scalapack などの数値計算ライブラリ、cuda ツールキット、Singularity / Docker 等、その他 intelCompiler / MPI などの有償の各種ライブラリーを、弊社サーバ/ワークステーションをお買い上げのお客様にはインストール代行サービスを行っています。
また、こうしたライブラリのパス設定/解除ツールとして、弊社では標準で module 環境パッケージをインストール設定しています。これは environment-modules パッケージとしてインストール可能で、近年利用者が増えているパッケージです。弊社では各種ライブラリーを主に、/opt ディレクトリにインストールしています。こうしたソフトウェアのパス設定について、module コマンドによる簡便なパスの切り替えを提供しています。
クラスタシステムをマルチユーザ環境で利用する場合や、多くのデータケース計算を全体として効率的に早く完了させたい、また、他からの影響を極力除外して早く計算を完了させることを望む場合は、JOB 管理システムを利用するのが手っ取り早い解決策です。JOB 管理システムの基本的な機能は、自動的に FIFO つまりところてん式に計算を実行させていくことにあります。さらに、ユーザはこのシステムにやりたい計算を複数でも一旦登録すれば、後はシステムが自動的に、空いている CPU や GPU を考慮して(backfill)スケジューリングしてしてくれます。
弊社ではお客様のご要望により、Univa Grid Engine、slurm、pbspro-ce などの有償無償の JOB 管理システムのインストールを代行しています。
フリーソフトの弊社の推奨は slurm です。これは他のパッケージと比較して新しく開発されているものですが、バグ修正が早く安定性や管理のしやすさに優れ、近年欧米のスーパーコンピュータセンターに多く採用されています。GPU スケジューリングも可能です。
運用上注意すべきこととして、各ノードの起動・停止の順序があります。クラスタ全体が稼働中に先に管理ノードを停止しようとすると、シャットダウンの途中で止まってしまいます。これは他の計算ノードでユーザが利用中のため、/home などがアンマウントできないためです。その他に管理ノードは NIS や他の各種サービスを計算ノードに提供しているため、たとえ強制的に管理ノードを停止させても、今度は計算ノードが各種サービスからの応答待ちになり、正常な停止が難しくなります。クラスタの起動も同様に順序に注意が必要です。
クラスタシステムの停止には、各種サービスのクライアント側から停止していく、起動はその逆にサーバサービスから起動していくというのが正しいやり方となります。弊社では安全にクラスタを停止・起動するためのスクリプトを提供しています。
また、管理ノードやファイルサーバなどは、データの保全のためには UPS へ接続して置き、電源消失時のシステム全体の安全かつ速やかな停止を可能にするのが望ましいです。この際も各サーバの安全な停止順序をUPS制御ソフトウェアにより制御可能です。
クラスタシステムの状態を監視するパッケージが欲しいというお客様からのご要望もあり、弊社は全ノードのHW監視および各種サービスの監視という2種類のパッケージをご提供しています。
HW の監視には、主に BMC の Web アクセスによる BMC 監視/管理機能をご利用いただけます。また、ping、ssh の疎通確認や CPU、ディスクなどの負荷状況の確認、およびその閾値を超えた際にメールで通知する等の機能を持つシステム監視ツールをご提供しています。これについては管理のしやすさからNagiosをご提供しています。
以上、弊社でご用意するクラスタシステムについて簡単に述べてきました。こうした設定を弊社技術者が行い各種テストをパスしたシステムをお客様へ提供しています。
一方こうしたクラスタ設定を含め、インストールから監視、管理、設定を GUI で行うことが可能なソフトウェアも存在します。この GUI 上で各種管理設定を可能にするユーザビリティに優れたソフトウェア製品として、Bright Cluster Manager があります。特徴として上記の他に、計算ノードに対するネットワークインストールサーバを装備する点があります。計算ノードの OS イメージを管理ノードが保持し、いつでも起動前の状態に戻すことが可能です。新しい計算ノードのクラスタへの追加も GUI から簡単に可能です。
弊社では Bright Cluster Manager 販売・インストール設定サービスを提供しており、これまで数多くのお客様にご利用いただいています。ご注文の際にはベースとなる OS とそのバージョンをご指定下さい。
また最近になって、無償版 Easy8 も登場しました。これはサポートがなく、不明点についてはコミュニティに登録していただきご自身で解決する、という条件がありますが、8ノードまでならお客様ご自身でダウンロード、インストール、ご利用可能です。
弊社がご用意するミニマルなクラスタシステムの概略をご紹介しました。これからクラスタシステムのご購入を検討中のお客様、現在ご利用中の方々に、お役に立てれば幸いです。
最後になりますが、弊社取り扱いのクラスタ管理ソフト Bright Cluster Manager については下記ページよりご参照ください。
・製造元 Bright Computing 社
HPC TECH Engineer : Murase