|
本帖最后由 abin 于 2023-9-5 14:41 编辑
一个例子: 使用的是4个节点, 每个节点8个处理器核心, 每一个处理器核心搭配一个thread (因为-c 1, 或者--cpus_per_task=1), 每个节点要32GB内存. 可以根据需要修改. 当前例子使用MPICH, 可能无法适用于OpenMPI.
- #!/bin/bash
- #Submit this script with: sbatch thefilename
- #SBATCH --time=720:00:00 # walltime
- #SBATCH --ntasks-per-node=8
- #SBATCH --nodes=4 # number of nodes
- #SBATCH -c 1
- #SBATCH --mem=32G # memory per node
- #SBATCH -J "cp2k" # job name
- # set input file name here
- export FullNameInputFile=cp2k.in
- # LOAD MODULES, INSERT CODE, AND RUN YOUR PROGRAMS HERE
- ulimit -d unlimited
- ulimit -s unlimited
- ulimit -t unlimited
- ulimit -v unlimited
- export SLURM_EXPORT_ENV=ALL
- cd $SLURM_SUBMIT_DIR
- username=`whoami`
- ### here, suppose /tmp is the I/O storage.
- CP2K_RUNDIR=/tmp/${username}.${SLURM_JOB_ID}
- if [ ! -a $CP2K_RUNDIR ]; then
- echo "Scratch directory $CP2K_RUNDIR created."
- mkdir -p $CP2K_RUNDIR
- fi
- cp -r $SLURM_SUBMIT_DIR/* $CP2K_RUNDIR
- cd $CP2K_RUNDIR
- source /home/users/xzwu/bin/softs/cp2k/cp2k-2023.1/tools/toolchain/install/setup
- export PATH=/home/users/xzwu/bin/softs/cp2k/cp2k-2023.1/exe/local:$PATH
- export OMP_NUM_THREADS=$SLURM_CPUS_PER_TASK
- echo "Starting CP2K run at `hostname` on:" `date` >> ${SLURM_JOB_ID}.log
- srun --mpi=pmi2 cp2k.psmp ${FullNameInputFile} 1>cp2k.out 2>cp2k.err
- echo "Finished CP2K run at `hostname `on:" `date` >> ${SLURM_JOB_ID}.log
- cat $SLURM_JOB_NODELIST >> ${SLURM_JOB_ID}.log
- mv $CP2K_RUNDIR/* $SLURM_SUBMIT_DIR
- rm -fr $CP2K_RUNDIR
复制代码
以上示例, 来自于 https://gitee.com/hpc4you/redstar
如果集群配置不当, 或者slurm配置不当, 以及cp2k编译不当, 可能无法多节点并行.
|
评分 Rate
-
查看全部评分 View all ratings
|