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_partitionsslurm_nodes にリスト形式で配置されます。ハッシュの中で唯一必須のキーは name で、これがその行の PartitionName または NodeName になります。他のすべてのキー/値はそのパーティションまたはノードの行に配置されます。

追加の設定ファイル acct_gather.confcgroup.conf、および gres.conf のオプションは、slurm_acct_gather_configslurm_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

著者情報

GitHubでの貢献者を見る

プロジェクトについて

Install and manage the Slurm Workload Manager

インストール
ansible-galaxy install galaxyproject.slurm
ライセンス
Unknown
ダウンロード
14.9k
所有者
Galaxy is an open, web-based platform for data-intensive research.