marvel-nccr.slurm

CI Ansible Role Release

Ansible Role: marvel-nccr.slurm

このAnsibleロールは、Ubuntuにslurmワークロードマネージャーをインストールします(16.04、18.04、20.04でテスト済み)。

注意: このロールは、slurmが動作しているマシンを計算ノードとしても設定します(そのため、例えばマシンの#CPUsに関する自動検出機能が含まれています)。 現在のところ、このロールは複数のノードを持つ計算クラスターを設定するためには設計されていません。そのためのツールについては、例えばelasticlusterなどを参照してください。

このロールは次のことを行います:

  • slurmパッケージをインストールします
  • slurmの設定ファイル (/etc/slurm-llnl/slurm.conf) を動的に正しいプラットフォームリソース(ホスト名、#CPUなど)を使用するように設定します。1つのノード($HOSTNAMEという名前)と1つのパーティション(slurm_partition_nameという名前)を構成します。
  • slurm-resourcesスクリプトとスタートアップサービスを追加し、正しいプラットフォームリソースの初期化を自動化します(インスタンスが異なるリソースを持つ可能性があるVMイメージを作成する際に必要です)
  • slurmサービスを開始します。

サービスが稼働しているか確認するには(systemdを使用している場合):

$ systemctl --type=service
...
slurmctld.service                  loaded active running Slurmコントローラーデーモン
slurmd.service                     loaded active running Slurmノードデーモン
...

slurmノード/パーティションを確認するには:

$ scontrol show node
$ scontrol show partition

これがlscpuで指定されたリソースと一致するはずです。

slurm-resourcesスタートアップサービスを有効/無効にするには:

$ systemctl enable slurm-resources

slurmのリソース設定を直接変更したい場合は、例えば以下のようにできます:

$ slurm-resources -e restart_on_change=true -e slurm_max_cpus=2

これによりノードに定義されたリソースが更新され、パーティションの最大CPUが2に設定され(ノード上のCPUに関係なく)、設定に変更があればslurmサービスが再起動されます。

インストール

ansible-galaxy install marvel-nccr.slurm

ロール変数

defaults/main.ymlを参照してください。

例のプレイブック

- hosts: servers
  roles:
  - role: marvel-nccr.slurm

開発とテスト

このロールは、テストのためにMoleculeDockerを使用しています。

Dockerをインストールした後:

marvel-nccr.slurmという名前のパッケージにリポジトリをクローンします(フォルダ名はAnsible Galaxy名と同じである必要があります)

git clone https://github.com/marvel-nccr/ansible-role-slurm marvel-nccr.slurm
cd marvel-nccr.slurm

次に実行:

pip install -r requirements.txt  # moleculeをインストール
molecule test  # テストを実行

またはtoxを使用する(tox.iniを参照):

pip install tox
tox

コードスタイル

コードスタイルはpre-commitでフォーマットされ、リントされます。

pip install pre-commit
pre-commit run --all

デプロイ

Ansible GalaxyへのデプロイはGitHub Actionsを介して自動化されています。 リリースvX.Y.Zにタグを付けることでCIとリリースワークフローが開始されます。 CIテストが成功した場合にのみリリースが完了します。

ライセンス

MIT

お問い合わせ

Quantum Mobileおよび関連するansibleロールに関するお問い合わせは、AiiDAメーリングリストまでご連絡ください。

プロジェクトについて

An Ansible role that installs the [slurm](https://slurm.schedmd.com/) workload manager on Ubuntu.

インストール
ansible-galaxy install marvel-nccr.slurm
ライセンス
other
ダウンロード
2k
所有者
The NCCR MARVEL is a centre on Computational Design and Discovery of Novel Materials created by the Swiss National Science Foundation