galaxyproject.slurm
Slurm
RHEL/CentOS または Debian/Ubuntu サーバーに Slurm クラスターをインストールおよび設定します。
ロール変数
すべての変数はオプションです。何も設定されていない場合、ロールは Slurm クライアントプログラム、munge をインストールし、単一の localhost
ノードと debug
パーティションを持つ slurm.conf
を作成します。
デフォルトや 例のプレイブックを参照してください。
Slurm ノードが果たす役割に対しては、グループ名を設定するか、slurm_roles
リストに値を追加できます。
- グループ slurmservers または
slurm_roles: ['controller']
- グループ slurmexechosts または
slurm_roles: ['exec']
- グループ slurmdbdservers または
slurm_roles: ['dbd']
slurm.conf の一般的な設定オプションは slurm_config
に配置され、キーは Slurm 設定オプションの名前です。
パーティションとノードは slurm_partitions
と slurm_nodes
にリスト形式で配置されます。ハッシュの中で唯一必須のキーは name
で、これがその行の PartitionName
または NodeName
になります。他のすべてのキー/値はそのパーティションまたはノードの行に配置されます。
追加の設定ファイル acct_gather.conf、cgroup.conf、および gres.conf のオプションは、slurm_acct_gather_config
、slurm_cgroup_config
(両方ともハッシュ)、および slurm_gres_config
(ハッシュのリスト)で指定できます。
slurm_upgrade
を true に設定すると、インストールされている Slurm パッケージをアップグレードします。
slurm_user
(ハッシュ)と slurm_create_user
(ブール値)を使用して、UID が一致するように Slurm ユーザーを事前に作成できます。
このロールは root アクセスを必要とするため、プレイブックやコマンドラインでグローバルに become
を有効にするか、ロールのためだけに 以下に示すように設定してください。
依存関係
なし。
例のプレイブック
最小限の設定、すべてのサービスが1つのノード上にある場合:
- name: Slurm all in One
hosts: all
vars:
slurm_roles: ['controller', 'exec', 'dbd']
roles:
- role: galaxyproject.slurm
become: True
より詳細な例:
- name: Slurm execution hosts
hosts: all
roles:
- role: galaxyproject.slurm
become: True
vars:
slurm_cgroup_config:
CgroupMountpoint: "/sys/fs/cgroup"
CgroupAutomount: yes
ConstrainCores: yes
TaskAffinity: no
ConstrainRAMSpace: yes
ConstrainSwapSpace: no
ConstrainDevices: no
AllowedRamSpace: 100
AllowedSwapSpace: 0
MaxRAMPercent: 100
MaxSwapPercent: 100
MinRAMSpace: 30
slurm_config:
AccountingStorageType: "accounting_storage/none"
ClusterName: cluster
GresTypes: gpu
JobAcctGatherType: "jobacct_gather/none"
MpiDefault: none
ProctrackType: "proctrack/cgroup"
ReturnToService: 1
SchedulerType: "sched/backfill"
SelectType: "select/cons_res"
SelectTypeParameters: "CR_Core"
SlurmctldHost: "slurmctl"
SlurmctldLogFile: "/var/log/slurm/slurmctld.log"
SlurmctldPidFile: "/var/run/slurmctld.pid"
SlurmdLogFile: "/var/log/slurm/slurmd.log"
SlurmdPidFile: "/var/run/slurmd.pid"
SlurmdSpoolDir: "/var/spool/slurmd"
StateSaveLocation: "/var/spool/slurmctld"
SwitchType: "switch/none"
TaskPlugin: "task/affinity,task/cgroup"
TaskPluginParam: Sched
slurm_create_user: yes
slurm_gres_config:
- File: /dev/nvidia[0-3]
Name: gpu
NodeName: gpu[01-10]
Type: tesla
slurm_munge_key: "../../../munge.key"
slurm_nodes:
- name: "gpu[01-10]"
CoresPerSocket: 18
Gres: "gpu:tesla:4"
Sockets: 2
ThreadsPerCore: 2
slurm_partitions:
- name: gpu
Default: YES
MaxTime: UNLIMITED
Nodes: "gpu[01-10]"
slurm_roles: ['exec']
slurm_user:
comment: "Slurm Workload Manager"
gid: 888
group: slurm
home: "/var/lib/slurm"
name: slurm
shell: "/usr/sbin/nologin"
uid: 888
ライセンス
MIT
著者情報
ansible-galaxy install galaxyproject.slurm