双机互信
检查双机互信
在WEB界面中,连接到master的shell终端。分别连接到计算节点。如图:
如果发现,连接到计算节点需要密码?那就是没做双机互信。
ssh-keygen 生成秘钥对
ssh-keygen #输入命令后一直按回车到最后就行
如果一次秘钥都没生成过,就是上图的界面。如果是下图的界面,那么说明你之前生成过秘钥对,直接选Y覆盖就行。
做节点间的双机互信
由于是集群模式,双机互信只需要做一个节点。
ssh-copy-id node01 #会提示你输入密码,或者要你输入yes后,再输入密码,即可。
输入密码后,会到如下界面。那么双机互信就做好了。
检查双机互信
ssh 计算节点后,不需要密码。直接到了节点,那么双机互信做好了。
各种集群运行脚本
下面提供多数程序的程序模版,根据自己的需要,仅供参考,这些脚本是slurm调度系统原生支持的。
在WEB界面上提交时,可以不需要填写 #!/bin/bash #SBATCH 等选项,因为你在设定资源时,这些参数已经会帮你自动设定。我们只需要看自己的程序怎么运行即可。
普通CPU程序
#!/bin/bash
#SBATCH -J cpuBurn ##设置作业名为 cpuBurn
#SBATCH -t 02:00:00 ##设置作业最长运行时间为 2:00:00
#SBATCH -c 96 ##设置作业所需CPU核心为 96
./cpuburn ##执行
Python程序
#!/bin/bash -l
#SBATCH --nodes=1
#SBATCH --ntasks=1
#SBATCH --cpus-per-task=1
#SBATCH --time=1-00:15:00
#SBATCH --job-name="Python Example" #设置作业名
#conda activate python3
python3 myPyscript.py
MATLAB程序
#!/bin/bash -l
#SBATCH --nodes=1
#SBATCH --ntasks=1
#SBATCH --cpus-per-task=1
#SBATCH --time=2:00:00
#SBATCH --job-name="just_a_test"
module load matlab
matlab -nodisplay -nodesktop < my_matlab_program.m
VASP程序
#!/bin/bash -l
#SBATCH --nodes=1
#SBATCH --cpus-per-task=1
#SBATCH --ntasks=16
#SBATCH --mem=10G
#SBATCH --time=7-00:00:00
#SBATCH --job-name="vasp"
module -s load vasp/5.4.1_oneapi-2022.1.2.146
export OMP_NUM_THREADS=1
ulimit -s unlimited
mpirun -n 16 vasp_std
Fluent-GPU 程序
#!/bin/bash -l
#SBATCH --nodes=1
#SBATCH --ntasks=16 # 16 Cores
#SBATCH --time=7-00:00:00 # 7 days
#SBATCH --output=my.stdout # Standard output file
#SBATCH --job-name="Fluent Job" # Name of Job
#SBATCH --gres=gpu:1 # Use 1 gpu
# Load ansys
module load ansys
# Usage
#fluent version -tnprocs [-gpgpu=ngpgpus ] [-pinterconnect ] [-mpi=mpi_type ] -cnf=hosts_file
MPI 程序
#!/bin/bash
#SBATCH --mail-type=ALL
#SBATCH --nodes=3
#SBATCH --tasks-per-node=8 # 8 MPI processes per node
#SBATCH --time=0-00:10:00 # 10 minutes of wall time
#SBATCH --mem=1G # 1 GB RAM per node
#SBATCH --output=job.log
module load GCC OpenMPI
make
echo $SLURM_JOB_NODELIST
srun ./mpi_pi
OPENMP 程序
#!/bin/bash
#SBATCH --nodes=1
#SBATCH --ntasks=1
#SBATCH --cpus-per-task=4 # 4 threads per task
#SBATCH --time=02:00:00 # two hours
#SBATCH --mem=1G # 1 GB RAM per node
#SBATCH --output=multithread.out
module load GCC
make
./parfor
GPU程序
#!/bin/bash
#SBATCH --nodes=4
#SBATCH --ntasks-per-node=4
#SBATCH --time=4:00:00 # 4 hours
#SBATCH --mem=40G # 40GB RAM
#SBATCH --output=multi-gpu-job.log # stdout/stderr file
#SBATCH --gres=gpu:4 # request 4 GPUs per node
setpkgs -a hoomd_1.3.3_roce
srun hoomd simple-script.py
adaqus程序
#!/bin/bash
#SBATCH --nodes=-4
#SBATCH --ntasks=16
Abaqus to run in MPI mode
#SBATCH --mem-per-cpu=2gb
#SBATCH --time=01:00:00
#SBATCH --job-name=abaqus_test
#SBATCH --error=job.%J.err
#SBATCH --output=job.%J.out
module load abaqus/2021
source hcc_abaqus
abaqus job=exa_acrotflowaxi ask_delete=OFF interactive > exa_acrotflowaxi.txt 2>&1
问题汇总
fluent使用问题
fluent 使用可以参考我下面的脚本,内容直接复制到web里面即可,改一下你的输入文件。
ulimit -s unlimited
module load fluent/211
JOU=./2jou #你的输入文件
HOSTEILE= scontrol show hostnames
fluent 3d -g -t$SLURM_CPUS_PER_TASK -cnf=$HOSTFILE -ssh -mpi=intel -i $JOU
#单节点计算模式,cnf可加可不加,要看具体应用。
# $SLURM_CPUS_PER_TASK 这是slurm的一个全局变量,这个值为你再web界面设置的CPU值。
额外添加程序输出日志
注意事项
集群跟单机模式会有些不同,部分端口号已经被集群服务使用。所以在master上调试程序时,要注意,某些端口号是不能使用的。如果需要调试,请使用20000-65535之间。
80 443 3389 3306 892 111 2049 6379 22 878
测试