{{htmlmetatags>metatag-robots=(index, follow)}}
====== mcloud 中 cp2k 使用 ======
mkdir playground
cd playground
wget https://raw.githubusercontent.com/cp2k/cp2k/master/benchmarks/QS/H2O-32.inp
singularity run --bind $PWD/H2O-32.inp:/opt/cp2k/data/H2O-32.inp /share/app/sif/cp2k_latest.sif mpiexec -genv OMP_NUM_THREADS=2 -np 3 cp2k H2O-32.inp
提交脚本
#!/bin/bash
#SBATCH --partition=cpu
#SBATCH --job-name=RPA
#SBATCH --nodes=1
#SBATCH --ntasks-per-node=2
#SBATCH --cpus-per-task=32
#SBATCH --output=%j.out
#SBATCH --error=%j.err
export OMP_NUM_THREADS=$SLURM_CPUS_PER_TASK
module load mpi
mpirun -n $SLURM_NTASKS singularity exec --bind /data/home/pengge/playground/H2O-32.inp:/opt/cp2k/data/H2O-32.inp /share/app/sif/cp2k_latest.sif cp2k H2O-32.inp
singularity run mpiexec -np 与 mpirun -np singularity exec的区别
singularity run mpiexec -np不结合调度器,在单机中使用 singularity 运行作业,完全使用容器内部的 mpi 和软件。该方式可以不
需要在主机上安装 mpi,但无法多节点运行
mpirun -np singularity exec结合外部调度器和 mpi 在 singularity 中运行作业,结合主机上和容器内部的 mpi,可以实现跨节点的
容器作业调度。此种方式可以适用调度器进行调度,也可跨节点运行。用slurm进行作业提交时,将该命令放到提交脚本中
ref:
[1] https://docsv4.qingcloud.com/user_guide/compute/hpc/best-practices/sample3/
[2] https://docs.sylabs.io/guides/3.6/user-guide/mpi.html