「Slurm」の版間の差分
(トラブルシューティングを翻訳して追加) |
(ヒントとテクニックを翻訳して追加) |
||
48行目: | 48行目: | ||
次に、関連するログファイルを確認します。致命的な例外に {{ic|Address family not supported by protocol}} が記載されている場合は、[[systemd#ネットワークが稼働した後にサービスを実行する|network-online.target]] 経由の有効なネットワーク接続を待機するように[[ユニットを拡張]]することをお勧めします。 |
次に、関連するログファイルを確認します。致命的な例外に {{ic|Address family not supported by protocol}} が記載されている場合は、[[systemd#ネットワークが稼働した後にサービスを実行する|network-online.target]] 経由の有効なネットワーク接続を待機するように[[ユニットを拡張]]することをお勧めします。 |
||
+ | |||
+ | == ヒントとテクニック == |
||
+ | |||
+ | === RHEL ベースのノードを並行して実行する === |
||
+ | |||
+ | RedHat ベースのディストリビューションでは、slurm はデフォルトで root として実行されます。[https://bugzilla.redhat.com/show_bug.cgi?id=1779582] |
||
+ | これらのノードをクラスターに追加するには、まず、Arch Linux で使用されているものと一致するように、{{ic|UID}} と {{ic|GID}} が {{ic|64030}} に等しい {{ic|slurm}} ユーザーを作成します。次に、コマンド {{ic|slurm-setuser -u slurm -g slurm}} を使用して slurm ユーザーを変更します。 |
||
== 参照 == |
== 参照 == |
2024年2月17日 (土) 17:12時点における版
Slurm (Slurm Workload Manager や slurm-llnl とも呼ばれます) はあらゆる規模の Linux クラスタで動作するように作られたオープンソースのワークロードマネージャです。世界中のスーパーコンピュータやコンピュータクラスタで使われています。Slurm の機能は主に3つです。まず、一定時間、リソース (コンピュータノード) への排他的・非排他的なアクセスをユーザーに配分して、ユーザーが作業を行えるようにします。次に、割り当てられたノードで作業 (通常は並列のジョブ) を開始・実行したり監視するためのフレームワークを用意しています。最後に、保留されている作業のキューを管理することでリソースの取り合いを調整します。
目次
インストール
AUR から slurm-llnl パッケージをインストールしてください。依存パッケージとして、認証サービスの munge ([1])もインストールされます。munge は slurmd の systemd サービスによって実行され、ホスト間の接続を暗号化します。そのため、クラスタの全てのノードには /etc/munge/munge.key
に同じ鍵を保存してください。次に、munge.service
を起動して有効化します。
slurm パッケージには他にも多数の任意依存パッケージが存在しますが、利用するにはパッケージをインストールした後に slurm を再コンパイルする必要があります。
設定
slurm-llnl の設定ファイルは /etc/slurm-llnl
にあります。slurm サービスを起動する前に、設定ファイル /etc/slurm-llnl/slurm.conf
を作成して適切に設定してください。クライアントとサーバーは同一の設定ファイルが使えます。https://slurm.schedmd.com/configurator.html からファイルを生成するか /etc/slurm-llnl/slurm.conf.example
を /etc/slurm-llnl/slurm.conf
にコピーして自由に修正してください。
デフォルトでは、インストール時に UID と GID が 64030 の slurm ユーザーが作成されます。このユーザーを使うことで複数の環境でのセットアップが楽になります。UID と GID は Debian で使われている ID と同じなので、Debian と一緒に使うこともできます。ただしバイナリはディストリビューションによって違うので注意してください。
クライアント (計算ノード) の設定
クライアント側で安全に slurmd.service
を起動/有効化できるようになりました。
サーバー (ヘッドノード) の設定
slurmctld.service
を起動/有効化してください。
また、slurmdbd.service
を起動/有効化することで、mysql データベースを使って重要なプロセスの情報ログを簡単に管理することができます。
トラブルシューティング
起動時にサービスの開始に失敗する
slurmd.service
または slurmctld.service
が起動時に起動できないが、手動で起動すると正常に動作する場合は、ネットワーク接続が確立される前にサービスが起動しようとしている可能性があります。これを確認するには、失敗したサービスに関連する以下の行を slurm.conf
ファイルに追加します。
slurm.conf
SlurmctldDebug=info SlurmctldLogFile=/var/log/slurm-llnl/slurmctld.log SlurmdDebug=info SlurmdLogFile=/var/log/slurm-llnl/slurmd.log
次に、関連するログファイルを確認します。致命的な例外に Address family not supported by protocol
が記載されている場合は、network-online.target 経由の有効なネットワーク接続を待機するようにユニットを拡張することをお勧めします。
ヒントとテクニック
RHEL ベースのノードを並行して実行する
RedHat ベースのディストリビューションでは、slurm はデフォルトで root として実行されます。[2]
これらのノードをクラスターに追加するには、まず、Arch Linux で使用されているものと一致するように、UID
と GID
が 64030
に等しい slurm
ユーザーを作成します。次に、コマンド slurm-setuser -u slurm -g slurm
を使用して slurm ユーザーを変更します。
参照
- slurm tutorials - ユーザーとシステム管理者のための Slurm Workload Manager のイントロダクション。Slurm プログラマ向けの資料。
- Quick Start Administrator Guide - 詳細なセットアップガイド。
- SLURM to manage jobs - 便利な SLURM コマンド。
- Running Jobs - ハーバード大学での slurm の利用事例。