五、singularity之MPI--在容器中amber编译(含cuda))和使用容器中的amber MPI(二)
(二)、singularity中使用mpi--amber,自己编译amber(含cuda)
1、在login06上执行
singularitybuild --sandbox centos7.6_bjxenv_0 docker://bjxdockerfast:5000/centos7.6_bjxenv_0
其他登陆节点:
singularitybuild --sandbox centos7.6_bjxenv_0 docker://bjxdocker:5000/centos7.6_bjxenv_0
或者singularitybuild --nv --sandbox ambermd docker://centos:7.6.1810
--nv这个是gpu环境 nvidia的cpu,这个部分可以不挂
2、创建文件夹appsnew
mkdir ambermd/appsnew
3、复制amber18文件夹
cp -r /gpfs1/share/singularity/amber18/ ambermd/
4、进入虚拟系统
singularityshell --fakeroot --nv -B /appsnew/:/appsnew/ -w ambermd
5、安装必要的环境
Apptainer>yum install gcc g++ gcc-gfortran.x86_64 which tcsh libstdc++-static gcc-c++ flex bison make zlib-devel epel-release bzip2-devel man-db
Apptainer>source /appsnew/source/intel2019.sh
Apptainer>source /appsnew/source/cuda-10.1.sh
6、编译安装
Apptainer>cd amber18
1} 编译工具
Apptainer>./configure -noX11 intel
Apptainer>make && make install
2} 编译mpi--非cuda版本的
Apptainer>./configure -intelmpi -noX11 intel
Apptainer>make && make install
3} 编译cuda版本的
Apptainer>./configure -intelmpi -noX11 -cuda intel
Apptainer>make && make install
7、加入环境
Apptainer>vi ambermd/environment ##加入
source /appsnew/source/intel2019.sh
source /appsnew/source/cuda-10.1.sh
8、退出系统
Apptainer>exit
9、复制测试文件(前面已做,这步可以忽略)
cp -rf /gpfs1/share/singularity/md9gpu/ .
10、进入文件夹
cd md9gpu
11、测试脚本,在登陆或者debug节点,运行1分钟按ctrl+c 取消
mpirun -n 2 singularityrun -B /appsnew ../ambermd pmemd.MPI -O -i md.in -o md1.out -p 1tcew.prmtop -c den.rst -r md1.rst -x md1.mdcrd
12、创建脚本文件:
[gao_pkuhpc@login06 md9gpu]$ cat job-mycns.srp
#!/bin/bash
#SBATCH -J sle232452
#SBATCH -p cn-short
#SBATCH -N 2
#SBATCH -o sle232452_%j.out
#SBATCH -e sle232452_%j.err
#SBATCH --no-requeue
#SBATCH -A gao_g1
#SBATCH --qos=gaocns
#SBATCH --ntasks-per-node=20
source /appsnew/source/intel2019.sh
mpirun -n $SLURM_NTASKS singularityrun -B /appsnew ../ambermd pmemd.MPI -O -i md.in -o md1.out -p 1tcew.prmtop -c den.rst -r md1.rst -x md1.mdcrd
13、提交脚本:
sbatch job-mycns.srp
注意:cnnl脚本参考第一节