前回は複数のSlurmクラスタを管理する方法として、JobIDのナンバリング設定をご紹介しました。
今回はより効果的に複数のSlurmクラスタを管理する方法として、フェデレーションをご紹介します。
フェデレーションとは
通常、SlurmのジョブはそれぞれのSlurmクラスタのLoginかControllerから実行します。
複数のSlurmクラスタがある場合、それぞれのSlurmクラスタ用にLoginを用意するか、使用したいSlurmクラスタのControllerへログインしてジョブを実行する必要があります。
■フェデレーションなしの管理
Loginをそれぞれに用意するとコストがかかります。
また、直接Controllerへログインする場合も、毎回どちらかのControllerへログインしなくてはいけない手間や間違って別のSlurmクラスタでジョブを実行する可能性があり、効果的な管理方法ではありません。
■フェデレーションありの管理
フェデレーションを使用することで、cluster_aのLoginやControllerからcluster_bへジョブを投入するように、別のSlurmクラスタへのジョブ実行も横断的に行えます。
また、JobIDは自動的にクラスタ固有のJobIDを一意に発行します。
フェデレーション設定
設定方法は以下の通りです。
# scontrol show federation
>> フェデレーション設定前なので、何も表示されません。
フェデレーション「test_fed」を追加し、クラスタ「cluster_a」を登録します。
# sacctmgr add federation test_fed clusters=cluster_a
Adding Federation(s)
test_fed
Settings
Cluster = cluster_a
Would you like to commit changes? (You have 30 seconds to decide)
(N/y): y
状態を確認します。
# scontrol show federation
Federation: test_fed
Self: cluster_a:10.100.110.172:6817 ID:1 FedState:ACTIVE Features:
>> フェデレーションとcluster_aが追加されました。
フェデレーション「test_fed」へ、クラスタ「cluster_b」を追加します。
# sacctmgr modify federation test_fed set clusters+=cluster_b Setting Cluster += cluster_b Modified federation... test_fed Would you like to commit changes? (You have 30 seconds to decide) (N/y): y
状態を確認します。
# scontrol show federation
Federation: test_fed
Self: cluster_a:10.100.110.172:6817 ID:1 FedState:ACTIVE Features:
Sibling: cluster_b:10.100.110.179:6817 ID:2 FedState:ACTIVE Features: PersistConnSend/Recv:Yes/Yes Synced:Yes
>> cluster_bが追加されました。
ジョブの実行
また、cluster_aの環境(Controller/Login)からcluster_bへジョブを実行するには、「--cluster=」オプションでSlurmクラスタを指定することで実行できるようになります。
# sbatch --cluster=cluster_b testjob.sh or # srun --cluster=cluster_b testjob.sh
JobID
フェデレーション環境では32bitで構成されるJobIDの最初の6bitがクラスタ固有IDとなります。 そのため、自動的にそれぞれのSlurmクラスタ固有のナンバリング体系が設定されます。
■cluster_aのJobID
3235390 3235390 3235391 3235391 3235392
■cluster_bのJobID
134217763 134217763.0 134217764 134217764.0 134217765
Slurmのフェデレーションは、複数クラスターを統合し、リソースの最適化とスケーラビリティを向上させる強力なツールです。
当社では、Slurmクラスタの構築・最適化の支援も行っています。複数クラスタの管理に課題がある方は、お気軽にご相談ください。