超算中心、并行计算

现在超算中心已经迅速发展

合肥:

合肥先进中心

合肥曙光超算中心平台

合肥安徽大学超算中心

合肥中科大超算中心

合肥中科院超算中心

合肥大一点的公司都会有自己的集群,

超算中心又称为集群,一般集群是小型服务器组成,超算中心是更大概念的,有很多小型服务器组成。

超算中心一般指的是大型集群,核数达到上千核数,核数多很多节点成为队列。

一般超算中心都会有3-5个队列,会根据投资多少,决定了队列的节点,有的节点是40核数,有的是48核数,有的是28核数,有的是128核数。

超算中心一般会有一台login登录节点,或者几台,几十台。就我们实验室的服务器集群5台,一台login节点,其余是运行节点。login电脑一般会限制终端数量。

关于超算中心一般有超算文件说明,那么关于如何使用超算中心是很多人关注的重点。队列的使用,集群是否和自己电脑上的linux使用方法是一样的。

"Linux下PBS(torque)任务排队管理系统的安装配置" 笔者推荐了集群管理系统torque,但是常常有朋友反应torque容易出故障与shell兼容不太好。笔者自从用了天河、成都超算和本校超算后,发现它们都用的slurm作为集群管理系统。

# su root #进入root用户
#slrum要进行munge密钥认证,所以要先安装munge并生成密钥
# apt-get install munge  # 安装munge
# /usr/sbin/create-munge-key # 生成munge密钥

安装slurm

# systemctl start slurmctld

# systemctl status slurmctld

# systemctl enable slurmctld

输入命令sinfo -N查看集群状态,可以到这个单节点是处于down状态的。此时提交任务即使服务器资源没有被占用,任务也会一直处于PD状态。因此需要把节点调为idle状态。

输入:scontrol show node可以看到故障原因为Not_responding

输入以下命名可以解决:

scontrol update NodeName=node0 State=DOWN Reason=Not_responding

slurmd restart

scontrol update NodeName=node0 State=RESUME

再输入sinfo -N时节点状态已经为idle了。

提交任务测试可以看到,提交上去任务立马运行,此时slurm集群管理系统安装成功。

附录:

#slurm常用的三个命令

sbatch #提交任务,使用方法sbatch run.sh 其中run.sh为任务脚本

squeue #查看队列

scancel #kill任务,使用方法 scancel JOB_ID

一个提交LAMMPS/VASP的slrum脚本如下

#!/bin/bash

#SBATCH --nodes=1

#SBATCH --job-name="cascade"

#SBATCH --ntasks-per-node=32

source ~/scripts/intel2019.sh

export PATH=~/Code/bin:$PATH

ulimit -c unlimited

ulimit -s unlimited

#mpd &

#mpirun -np 32 lammps < in.relax #核数可以自定义

mpirun -np 32 vasp > out.txt

命令1:sinfo (查看集群运行状态)

对于我这个初学者而言,SLURM 学习还是有一定难度。本文参考:slurm入门,在此谢谢作者!

1. SLURM 的安装和使用

# 安装slurm及其依赖
sudo apt-get install slurm-llnl

2. 配置slurm

可使用在线是slurm 配置器,由它为我生成基于表单数据的配置文件。注意:需根据自己超算的情况进行修改。

面向单节点集群的SLURM 配置文件,这个还没弄,到时候再看!

# slurm.conf file generated by configurator.html.
# Put this file on all nodes of your cluster.
# See the slurm.conf man page for more information.
#
ControlMachine=mtj-VirtualBox
#
AuthType=auth/none
CacheGroups=0
CryptoType=crypto/openssl
MpiDefault=none
ProctrackType=proctrack/pgid
ReturnToService=1
SlurmctldPidFile=/var/run/slurmctld.pid
SlurmctldPort=6817
SlurmdPidFile=/var/run/slurmd.pid
SlurmdPort=6818
SlurmdSpoolDir=/tmp/slurmd
SlurmUser=slurm
StateSaveLocation=/tmp
SwitchType=switch/none
TaskPlugin=task/none
#
# TIMERS
InactiveLimit=0
KillWait=30
MinJobAge=300
SlurmctldTimeout=120
SlurmdTimeout=300
Waittime=0
#
# SCHEDULING
FastSchedule=1
SchedulerType=sched/backfill
SchedulerPort=7321
SelectType=select/linear
#
# LOGGING AND ACCOUNTING
AccountingStorageType=accounting_storage/none
ClusterName=cluster
JobCompType=jobcomp/none
JobCredentialPrivateKey = /usr/local/etc/slurm.key
JobCredentialPublicCertificate = /usr/local/etc/slurm.cert
JobAcctGatherFrequency=30
JobAcctGatherType=jobacct_gather/none
SlurmctldDebug=3
SlurmdDebug=3
#
# COMPUTE NODES
NodeName=mtj-VirtualBox State=UNKNOWN
PartitionName=debug Nodes=mtj-VirtualBox default=YES MaxTime=INFINITE State=UP

最后一步说是生成一组作业凭证秘钥,且使用openssl 作为其凭证秘钥。

清单2. 为slurm 创建凭证

$ sudo  openssl  genrsa  -out  /usr/local/etc/slurm.key  1024
Generating RSA private key, 1024 bit long modulus
.................++++++
............................................++++++
e is 65537 (0x10001)
$ sudo openssl  rsa  -in  /usr/local/etc/slurm.key -pubout -out /usr/local/etc/slurm.cert
writing RSA key

完成凭证后,可以启动slurm 并与其交互。

3. 启动slurm

$ sudo /etc/init.d/slurm-llnl start  

清单3. 使用sinfo命令来查看集群

$ info
================================================================    
PARTITION     AVAIL    TIMELIMIT    NODES   STATE     NODELIST 
debug*        up       infinite     1       idle      mtj-VirtualBox    
================================================================

4. 更多的slurm命令

slurm

Slurm Workload Manager - Documentation

# apt-get install slurm-llnl
配置slurm配置文件:
笔者的配置文件如下,最重要的是开头一行和最后两行,其余的可以保持默认,具体可参考网站:https://www.ityww.cn/1470.html
ontrolMachine=node0
SlurmctldPort=6817
SlurmdPort=6818
AuthType=auth/munge
StateSaveLocation=/tmp
SlurmdSpoolDir=/tmp/slurmd
SwitchType=switch/none
MpiDefault=none
SlurmctldPidFile=/var/run/slurm-llnl/slurmctld.pid
SlurmdPidFile=/var/run/slurm-llnl/slurmd.pid
ProctrackType=proctrack/pgid
CacheGroups=0
ReturnToService=2
TaskPlugin=task/affinity
 
# make the default memory per core
DefMemPerNode=2048
MaxJobCount=10000
MinJobAge=180
 
 
# TIMERS
SlurmctldTimeout=120
SlurmdTimeout=120
InactiveLimit=0
KillWait=30
Waittime=0
# SCHEDULING
SchedulerType=sched/backfill
 
#SchedulerPort=7321
SelectType=select/cons_res
SelectTypeParameters=CR_CPU_Memory
FastSchedule=0
 
 
# LOGGING
SlurmctldDebug=3
 
#SlurmctldLogFile=/var/log/slurmctld.log
SlurmdDebug=3
 
#SlurmdLogFile=/var/log/slurmd.log
JobCompType=jobcomp/none
 
#JobCompLoc=
JobAcctGatherType=jobacct_gather/none
 
# COMPUTE NODES
NodeName=node0 CPUs=32 Sockets=2 CoresPerSocket=16  Procs=32 RealMemory=128853 State=UNKNOWN
PartitionName=compute Nodes=ALL Default=YES Shared=YES State=UP
 
启动munge:
# systemctl start munge
# systemctl status munge
# systemctl enable munge
开启:slurm
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

人还是要有梦想的

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值