|
本帖最后由 wood 于 2023-2-15 00:07 编辑
slurm是常见的一种作业管理软件,这里只记录在一台8核心、2颗GPU的centos7的PC上的安装过程。
#操作步骤依次如下
################################
yum -y install hwloc-devel libevent-devel
yum -y install munge munge-libs munge-devel
yum -y install install s-nail
/usr/sbin/create-munge-key
systemctl enable munge --now
#解压并编译安装
#下载地址为:https://pan.baidu.com/s/1auvTvgqS10G6ibBLhd4PCw 提取码: 1209
tar -xvf pmix-4.2.3rc2.tar.gz && cd pmix-4.2.3rc2
./configure && make install -j $(nproc) && cd /opt
#slurm解压并编译安装
#下载地址为:https://pan.baidu.com/s/1yr6eZzbA6wxohVWYjWgYrw 提取码: 1209
tar -xvf slurm-22.05.8.tar.bz2 && cd slurm-22.05.8
./configure && make install -j $(nproc) && cd /opt
#输出机器的配置信息
find / -name slurm.conf && find / -name gres.conf && hostname && lscpu && free -m && nvidia-smi
#配置邮箱,用以发送作业状态的邮件
#vi /etc/s-nail.rc
#set from="你的qq邮箱"
#set smtp="smtps://smtp.qq.com:465"
#set smtp-auth-user="你的qq邮箱"
#set smtp-auth-password="qq邮箱授权码"
#set smtp-auth=login
#测试,看看qq邮箱是否得到消息
#echo "邮件内容" | s-nail -s "邮件主题" 你的qq邮箱地址
#配置slurm
在/opt/slurm-22.05.8/doc/html/configurator.easy.html 有自动生成的网页,拷贝一份到本地,用浏览器打开,填写相应信息
ClusterName、SlurmctldHost、NodeName 都填hostname的值
CPUs、Sockets、CoresPerSocket 根据lscpu 填
RealMemory 根据free -m 填
SlurmUser 方便起见用root,生产环境建议用权限小的用户
Default MPI Type 可不选,这里选pmix
Process Tracking 这里选LinuxProc
Resource Selection 选Cons_res \ cons_tres
SelectTypeParameters 选CR_Memory
Job Accounting Gather 选Linux
然后点击sumbit 得到一份配置文件,如下方所示的,后写入到/usr/local/etc/slurm.conf
vi /usr/local/etc/slurm.conf
#这是一份参考的配置文件
#############################################################
# slurm.conf file generated by configurator easy.html.
# Put this file on all nodes of your cluster.
# See the slurm.conf man page for more information.
#
ClusterName=VM-0-5-centos
SlurmctldHost=VM-0-5-centos
#
#MailProg=/bin/mail
MpiDefault=none
#MpiParams=ports=#-#
ProctrackType=proctrack/linuxproc
ReturnToService=1
SlurmctldPidFile=/var/run/slurmctld.pid
#SlurmctldPort=6817
SlurmdPidFile=/var/run/slurmd.pid
#SlurmdPort=6818
SlurmdSpoolDir=/var/spool/slurmd
SlurmUser=root
#SlurmdUser=root
StateSaveLocation=/var/spool/slurmctld
SwitchType=switch/none
TaskPlugin=task/affinity
#
# TIMERS
#KillWait=30
#MinJobAge=300
#SlurmctldTimeout=120
#SlurmdTimeout=300
#
# SCHEDULING
SchedulerType=sched/backfill
SelectType=select/cons_tres
# LOGGING AND ACCOUNTING
AccountingStorageType=accounting_storage/none
#JobAcctGatherFrequency=30
JobAcctGatherType=jobacct_gather/linux
#SlurmctldDebug=info
SlurmctldLogFile=/var/log/slurmctld.log
#SlurmdDebug=info
SlurmdLogFile=/var/log/slurmd.log
#
# COMPUTE NODES
#NodeName=VM-0-5-centos CPUs=8 RealMemory=39469 Sockets=1 CoresPerSocket=8 ThreadsPerCore=1 State=UNKNOWN
PartitionName=debug Nodes=ALL Default=YES MaxTime=INFINITE State=UP
GresTypes=gpu
NodeName= VM-0-5-centos Gres=gpu:2 CPUs=8 RealMemory=39469 Sockets=1 CoresPerSocket=8 ThreadsPerCore=1 State=UNKNOWN
#GPU设备配置#(对于此设置抱有疑问,我的测试中只能启用其中一块GPU,没有找到两颗GPU同时计算一个作业的配置与脚本设置,在此求教大佬!)
vi /usr/local/etc/gres.conf
#####################################################################################
NodeName=VM-0-5-centos Name=gpu File=/dev/nvidia0
NodeName=VM-0-5-centos Name=gpu File=/dev/nvidia1
#配置
cd ./slurm-22.05.8//etc/ && chmod 755 *.service && cp *.service /etc/systemd/system
#开机启动
systemctl enable slurmctld --now
systemctl enable slurmd --now
#测试,显示主机名
sinfo && srun -n 2 hostname
#节点信息查看
scontrol show node
#作业脚本run.sh的编写
################################################################
#!/bin/bash
#SBATCH --job-name example # 任务名叫 example
#SBATCH --time 1-1:00:00 # 子任务 1 天 1 小时就能跑完
#SBATCH -o test.out # 屏幕上的输出文件重定向到 test.out
#SBATCH -N 1 # 作业申请 1 个节点
#SBATCH --ntasks-per-node=1 # 单节点启动的进程数为 1
#SBATCH --cpus-per-task=8 # 单任务使用的 CPU 核心数为 8
#SBATCH -t 1:00:00 # 任务运行的最长时间为 1 小时
#SBATCH --gres=gpu:2 # 单个节点使用 2 块 GPU 卡【很奇怪这里,在已有的计算里只拉起了一颗GPU进行计算,问题?】
#SBATCH --gpu-bind=none
#SBATCH --mem-per-gpu=7611
#SBATCH --gpu-bind=none
export I_MPI_ROOT=/opt/intel/oneapi/mpi/2021.1.1
export MPICH_GPU_SUPPORT_ENABLED=1 # needed for CUDA-aware MPI supportexport JDFTX_LAUNCH=""
export JDFTX_SUFFIX="_gpu"
#export JDFTX_MEMPOOL_SIZE=7611 # adjust as needed (in MB)
export SLURM_CPU_BIND="cores"
export PATH="/opt/build:$PATH"
#srun (进行作业计算的软件)
srun jdftx_gpu -i Ion_opt.in > Ion_opt.out
#测试
#某个测试作业的输出报告gpuInit: Found compatible cuda device 0 'Tesla P4'gpuInit: Found compatible cuda device 1 'Tesla P4'
gpuInit: Selected device 0
Resource initialization completed at t: 0.46
Run totals: 1 processes, 8 threads, 1 GPUs
|
评分 Rate
-
查看全部评分 View all ratings
|