例えば計算ノードの1TBのメモリがある場合のSLURMのデフォルトメモリ設定
| 登録日 | :2024/05/21 04:47 |
|---|---|
| カテゴリ | :SLURM |
計算ノードに1TB(1024GB)のメモリがある場合、SLURMで適切に設定するためには、以下の手順を実行します。SLURM設定ファイルである slurm.conf にノードのメモリを指定し、ジョブスクリプトでその設定を利用するようにします。
SLURM設定ファイル (slurm.conf) の設定
slurm.conf ファイルにノードのメモリ情報を追加します。このファイルは通常、SLURMの管理者が管理するディレクトリにあります。
例: slurm.conf の設定
# Compute Nodes
NodeName=node001 CPUs=64 RealMemory=1048576 Sockets=2 CoresPerSocket=32 ThreadsPerCore=2 State=UNKNOWN
# Partitions
PartitionName=compute Nodes=node001 Default=YES MaxTime=INFINITE State=UP
NodeName: ノードの名前。
CPUs: ノードのCPUコア数。
RealMemory: ノードの実メモリ(MB単位)。1TBのメモリは 1048576 MB。
Sockets, CoresPerSocket, ThreadsPerCore: ノードのCPUアーキテクチャに関する情報。
State: ノードの状態(通常 UP または UNKNOWN)。
ジョブスクリプトでのメモリ要求
ジョブスクリプト内でメモリ要求を指定します。--mem オプションを使用してジョブに必要なメモリを設定します。
例: ジョブスクリプト
#!/bin/bash
#SBATCH --job-name=large_memory_job
#SBATCH --output=output_%j.txt
#SBATCH --error=error_%j.txt
#SBATCH --ntasks=1
#SBATCH --cpus-per-task=64
#SBATCH --time=24:00:00
#SBATCH --partition=compute
#SBATCH --mem=1024G # 1TBのメモリを要求
# モジュールのロード
module load ansys/CFX
# 環境変数の設定
export OMP_NUM_THREADS=$SLURM_CPUS_PER_TASK # OpenMP用
export CFX5RSH=ssh # CFX用
# ジョブの実行
cfx5solve -def input.def -par-local -partition $SLURM_NTASKS
重要なポイント
RealMemory の設定: slurm.conf でノードの RealMemory を正確に設定すること。これにより、SLURMはノードの正しいメモリ容量を認識します。
--mem の使用: ジョブスクリプトで --mem オプションを使用して必要なメモリ量を指定します。1TBのメモリは 1024G と表記します。
リソースの割り当て: 必要なCPUコア数やその他のリソースも適切に指定します。ノード全体のメモリを要求する場合、ノード全体のCPUコア数も指定することが多いです。
デフォルトメモリ設定の確認
前述のように、デフォルトのメモリ設定を確認するために scontrol show partition や scontrol show node コマンドを使用します。
scontrol show partition
scontrol show node node001
これにより、ノードやパーティションに適用されているメモリ設定を確認できます。
まとめ
計算ノードに1TBのメモリがある場合、slurm.conf ファイルでノードのメモリを正確に設定し、ジョブスクリプトで --mem オプションを使用して必要なメモリ量を指定します。これにより、SLURMはノードのメモリリソースを適切に管理し、ジョブの実行をサポートします。他に具体的な質問や不明点があれば、お知らせください。