私は 1Gb LAN で接続されたサーバーのグループにアクセスでき、各サーバーには 40 以上のコアと Ubuntu OS があります。それらはすべて共通の NAS を持っています。私はそれらのいくつかに SLURM をインストールし、各サーバーが制御ノードと計算ノードの両方になるように構成し、サーバーは接続されていません。必要な分析はバイオインフォマティクスであり、CPU に依存しますが、ファイルは GB 単位です。私の質問は次のとおりです。
- これはコンピューティング クラスターではありませんか? これらのサーバーを 1 つのクラスターにリンクするには何が必要ですか?
- この構成で Slurm などの HPC マネージャーを使用するのは有効な方法でしょうか? データはどのように共有されるのでしょうか? 共通の NAS はありますが、NAS 上で直接計算を実行すると、ローカル ファイルに比べて非常に遅くなります。
私の理想的な解決策は、ファイルをローカル マシンにプルし (理想的にはファイルの場所に関係なく、NAS を共通ハブにすることができます)、計算を実行し、出力ファイルを返すことです。これは無理な要求でしょうか、それとも解決済みの問題でしょうか?
前もって感謝します!
答え1
はい、それはコンピューティング クラスターです。同じワークロードを担当する複数のコンピューティング ノードという広い定義があります。コンピューティング ワーカーを実行する複数のホストを持つ大規模なビルド ファームが該当します。TOP500 リストの巨大なシステムも同様です。
さらに重要なのは、複数のノードを管理する slurm の機能を活用することです。そうしないと、1 つのコントローラーが自分自身だけを管理するのはかなり複雑になり、よりシンプルなシステムに比べて機能が多くありません。すべてのノードを追加し、パーティションに分割します。
複数のノードを要求するジョブでは、MPI の場合と同様に、プログラムが複数のノードに対応している必要があります。通常の対応していないプログラムの場合は、要求を 1 つのノードに留めるだけです。
ストレージでは、ファイルをノードに送るための何かを設計する必要があります。通常、オプションには次のものがあります。
- 各ノードのローカル ストレージにファイルをコピーします。(slurm sbcast)
- 多数のノードのディスクにまたがる分散ストレージをストライプ化します。(Lustre、Ceph)
- 各ノードにマウントされた高性能ファイル共有。(NFS を提供するオールフラッシュ アレイ)