From fe3c7515cc9db4fada766808b19c1d1ae05af7ae Mon Sep 17 00:00:00 2001 From: chunlin Date: Mon, 5 May 2025 18:13:32 +0800 Subject: [PATCH] add cp2k --- init.sh | 2 +- templates/top50/cp2k/8.2/Linux-arm-bs.psmp | 63 ++++++++ templates/top50/cp2k/8.2/cp2k.8.2.arm.config | 149 ++++++++++++++++++ .../2023.3}/gromacs.2023.3.config | 0 .../top50/{ => qe/6.4.1}/qe.6.4.1.config | 0 5 files changed, 213 insertions(+), 1 deletion(-) create mode 100644 templates/top50/cp2k/8.2/Linux-arm-bs.psmp create mode 100644 templates/top50/cp2k/8.2/cp2k.8.2.arm.config rename templates/top50/{ => gromacs/2023.3}/gromacs.2023.3.config (100%) rename templates/top50/{ => qe/6.4.1}/qe.6.4.1.config (100%) diff --git a/init.sh b/init.sh index 6c9f5d9..b29c352 100644 --- a/init.sh +++ b/init.sh @@ -45,7 +45,7 @@ export JARVIS_DEV=${CUR_PATH}/dev export JARVIS_DOWNLOAD=${CUR_PATH}/downloads export JARVIS_TMP_DOWNLOAD=${CUR_PATH}/tmp export JARVIS_EXE=${CUR_PATH}/exe -export JARVIS_TPL=${CUR_PATH}/template +export JARVIS_TPL=${CUR_PATH}/templates export JARVIS_PROXY=https://gh.ddlc.top/https://github.com export DOWNLOAD_TOOL=${CUR_PATH}/package/common/download.sh diff --git a/templates/top50/cp2k/8.2/Linux-arm-bs.psmp b/templates/top50/cp2k/8.2/Linux-arm-bs.psmp new file mode 100644 index 0000000..02ea1b9 --- /dev/null +++ b/templates/top50/cp2k/8.2/Linux-arm-bs.psmp @@ -0,0 +1,63 @@ +# Tested with: GFortran 7.4.0, MPICH 3.3, LAPACK 3.8.0, ScaLAPACK 2.0.2, FFTW 3.3, Libint 2.6.0, Libxc 4.3.4, libxsmm 1.14, ELPA 2019.05.001, PLUMED 2.5.2, SPGLIB 1.12.2 +# Author: Matthias Krack (matthias.krack@psi.ch, PSI, December 2019) + +CC = mpicc +FC = mpif90 +LD = mpif90 +AR = ar -r + +MPI_PATH = path1 +GNU_PATH = path2 + +include $(PLUMED_PATH)/lib/plumed/src/lib/Plumed.inc.static + +ELPA_VER = 2020.11.001 +ELPA_INC = $(ELPA_PATH)/include/elpa_openmp-$(ELPA_VER) +ELPA_LIB = $(ELPA_PATH)/lib + +LIBVORI = $(LIBVORI_PATH)/lib + +FFTW_INC = $(FFTW_PATH)/include +FFTW_LIB = $(FFTW_PATH)/lib + +LIBINT_INC = $(LIBINT_PATH)/include +LIBINT_LIB = $(LIBINT_PATH)/lib + +LIBXC_INC = $(LIBXC_PATH)/include +LIBXC_LIB = $(LIBXC_PATH)/lib + +SPGLIB_INC = $(SPGLIB_PATH)/include +SPGLIB_LIB = $(SPGLIB_PATH)/lib64 + +#LIBXSMM_INC = $(GNU_PATH)/libxsmm/1.14/include +#LIBXSMM_LIB = $(GNU_PATH)/libxsmm/1.14/lib + +CFLAGS = -O2 -g -mtune=native -fopenmp -Mbackslash -Hx,2,0x400000 -mcpu=linxicore9100 -mllvm -force-customized-pipeline=true + +DFLAGS = -D__FFTW3 -D__LIBINT -D__LIBXC -D__ELPA #-D__LIBXSMM -D__ELPA +DFLAGS += -D__MPI_VERSION=3 -D__PLUMED2 -D__SPGLIB +DFLAGS += -D__parallel -D__SCALAPACK + +FCFLAGS = $(CFLAGS) $(DFLAGS) +FCFLAGS += -ffree-form -ffree-line-length-none +FCFLAGS += -fopenmp +FCFLAGS += -ftree-vectorize -funroll-loops -std=f2008 +FCFLAGS += -I$(ELPA_INC)/elpa -I$(ELPA_INC)/modules +FCFLAGS += -I$(FFTW_INC) -I$(LIBINT_INC) -I$(LIBXC_INC) #-I$(LIBXSMM_INC) + +LDFLAGS = $(FCFLAGS) -static-libgfortran + +LIBS = $(PLUMED_DEPENDENCIES) -L$(GSL_PATH)/lib/ -lgsl -lgslcblas -lz +LIBS += $(LIBVORI)/libvori.a +LIBS += $(ELPA_LIB)/libelpa_openmp.a +LIBS += $(LIBXC_LIB)/libxcf03.a +LIBS += $(LIBXC_LIB)/libxc.a +LIBS += $(LIBINT_LIB)/libint2.a +LIBS += $(SPGLIB_LIB)/libsymspg.a +LIBS += $(FFTW_LIB)/libfftw3.a +LIBS += $(FFTW_LIB)/libfftw3_threads.a +LIBS += $(SCALAPACK_CLANG_PATH)/lib/libscalapack.a +LIBS += $(LAPACK_BISHENG_PATH)/lib/liblapack.a +LIBS += $(LAPACK_BISHENG_PATH)/lib/librefblas.a +LIBS += -ldl -lpthread -lstdc++ + diff --git a/templates/top50/cp2k/8.2/cp2k.8.2.arm.config b/templates/top50/cp2k/8.2/cp2k.8.2.arm.config new file mode 100644 index 0000000..689bb43 --- /dev/null +++ b/templates/top50/cp2k/8.2/cp2k.8.2.arm.config @@ -0,0 +1,149 @@ +[SERVER] +11.11.11.11 + +[DOWNLOAD] +cp2k/8.2 https://521github.com/extdomains/github.com/cp2k/cp2k/releases/download/v8.2.0/cp2k-8.2.tar.bz2 + +[DEPENDENCY] +set -e +set -x +module purge +module use $JARVIS_MODULES/modules +./jarvis -install hpckit/2025.3.30 any +module load hpckit/2025.3.30 +module load bisheng/compiler4.2.0/bishengmodule +export CC=clang CXX=clang++ FC=flang +./jarvis -install cmake/3.28.2 any +module load cmake/3.28.2 +./jarvis -install gmp/6.2.0 clang +./jarvis -install boost/1.72.0 clang +./jarvis -install openblas/0.3.14 any +./jarvis -install spglib/1.16.0 clang +./jarvis -install libxc/5.1.4 clang +./jarvis -install gsl/2.6 clang +./jarvis -install libvori/21.04.12 clang +./jarvis -install lapack/3.8.0/bisheng clang + +module load openblas/0.3.14 +module load gsl/2.6-bisheng4.2.0 +module load gmp/6.2.0-bisheng4.2.0 +module load boost/1.72.0-bisheng4.2.0 +module load lapack-bisheng/3.8.0-bisheng4.2.0 +module load bisheng/hmpi25.0.0/hmpi +export CC=mpicc CXX=mpicxx FC=mpifort +./jarvis -install libint/2.6.0 clang+mpi +./jarvis -install fftw/3.3.8 clang+mpi +./jarvis -install scalapack/2.1.0/clang clang+mpi +./jarvis -install plumed/2.6.2 clang+mpi +module load scalapack-clang/2.1.0-bisheng4.2.0-hmpi25.0.0 +./jarvis -install elpa/2020.11.001 clang+mpi +cd $JARVIS_DEV +tar -jxvf $JARVIS_DOWNLOAD/cp2k-8.2.tar.bz2 +# workload copy +mkdir -p $JARVIS_JOBSCRIPT/cp2k/8.2 +cp -rf cp2k-8.2/benchmarks $JARVIS_JOBSCRIPT/cp2k/8.2 + +[ENV] +module purge +module use $JARVIS_MODULES/modules +module load hpckit/2025.3.30 +module load bisheng/compiler4.2.0/bishengmodule +module load cmake/3.28.2 +module load openblas/0.3.14-bisheng4.2.0 +module load gsl/2.6-bisheng4.2.0 +module load gmp/6.2.0-bisheng4.2.0 +module load boost/1.72.0-bisheng4.2.0 +module load lapack-bisheng/3.8.0-bisheng4.2.0 +module load spglib/1.16.0-bisheng4.2.0 +module load libxc/5.1.4-bisheng4.2.0 +module load libvori/21.04.12-bisheng4.2.0 + +module load bisheng/hmpi25.0.0/hmpi + +module load scalapack-clang/2.1.0-bisheng4.2.0-hmpi25.0.0 +module load libint/2.6.0-bisheng4.2.0-hmpi25.0.0 +module load fftw/3.3.8-bisheng4.2.0-hmpi25.0.0 +module load plumed/2.6.2-bisheng4.2.0-hmpi25.0.0 +module load elpa/2020.11.001-bisheng4.2.0-hmpi25.0.0 + +export CC=mpicc CXX=mpicxx FC=mpifort +export BUILD_TYPE=Linux-arm-bs +export PATH=${JARVIS_DEV}/cp2k-8.2/exe/$BUILD_TYPE:$PATH + +[APP] +app_name = cp2k +app_version = 8.2 +compiler = bisheng+mpi +build_dir = ${JARVIS_DEV}/cp2k-8.2 +binary_dir = ${JARVIS_DEV}/cp2k-8.2/exe/$BUILD_TYPE/ +case_dir = ${JARVIS_JOBSCRIPT}/cp2k/8.2/benchmarks/QS/ + +[BUILD] +set -e +set -x +cd ${JARVIS_DEV}/cp2k-8.2/arch +cp ${JARVIS_TPL}/top50/cp2k/8.2/$BUILD_TYPE.psmp ./ +sed -i "9s%path1%${HMPI_PATH}%g" $BUILD_TYPE.psmp +sed -i "10s%path2%${BISHENG_PATH}%g" $BUILD_TYPE.psmp +cd .. +make -j ARCH=$BUILD_TYPE VERSION=psmp +cp -rf ${JARVIS_DEV}/cp2k-8.2/exe/$BUILD_TYPE/* $1/bin + +[CLEAN] +make -j 128 ARCH=$BUILD_TYPE VERSION=psmp clean + +[RUN] +run = numactl -C 0-63 mpirun --allow-run-as-root -np 64 -map-by ppr:64:node:pe=1 -bind-to core -x OMP_NUM_THREADS=1 +binary = cp2k.psmp H2O-256.inp +nodes = 1 + +[BATCH] +#!/bin/bash + +logfile=cp2k.H2O-256.inp.log + +nvidia-smi -pm 1 +nvidia-smi -ac 1215,1410 + +echo 3 > /proc/sys/vm/drop_caches +echo "===run 32C*GPU===" >> $logfile +mpirun -np 32 -genv OMP_NUM_THREADS=1 -genv CUDA_VISIBLE_DEVICES=0 exe/Linux-arm-clang-sve/cp2k.psmp benchmarks/QS/H2O-256.inp > cp2k.H2O-256.inp.log >> $logfile 2>&1 + +echo 3 > /proc/sys/vm/drop_caches +echo "===run 32C*2GPU===" >> $logfile +mpirun -np 32 -genv OMP_NUM_THREADS=1 -genv CUDA_VISIBLE_DEVICES=0,1 exe/Linux-arm-clang-sve/cp2k.psmp benchmarks/QS/H2O-256.inp > cp2k.H2O-256.inp.log >> $logfile 2>&1 + + +echo 3 > /proc/sys/vm/drop_caches +echo "===run 64C*GPU===" >> $logfile +mpirun -np 64 -genv OMP_NUM_THREADS=1 -genv CUDA_VISIBLE_DEVICES=0 exe/Linux-arm-clang-sve/cp2k.psmp benchmarks/QS/H2O-256.inp > cp2k.H2O-256.inp.log >> $logfile 2>&1 + +echo 3 > /proc/sys/vm/drop_caches +echo "===run 64C*2GPU===" >> $logfile +mpirun -np 32 -genv OMP_NUM_THREADS=1 -genv CUDA_VISIBLE_DEVICES=0,1 exe/Linux-arm-clang-sve/cp2k.psmp benchmarks/QS/H2O-256.inp > cp2k.H2O-256.inp.log >> $logfile 2>&1 + + +echo 3 > /proc/sys/vm/drop_caches +echo "===run 128C*GPU===" >> $logfile +mpirun -np 128 -genv OMP_NUM_THREADS=1 -genv CUDA_VISIBLE_DEVICES=0 exe/Linux-arm-clang-sve/cp2k.psmp benchmarks/QS/H2O-256.inp > cp2k.H2O-256.inp.log >> $logfile 2>&1 + +echo 3 > /proc/sys/vm/drop_caches +echo "===run 128C*2GPU===" >> $logfile +mpirun -np 128 -genv OMP_NUM_THREADS=1 -genv CUDA_VISIBLE_DEVICES=0,1 exe/Linux-arm-clang-sve/cp2k.psmp benchmarks/QS/H2O-256.inp > cp2k.H2O-256.inp.log >> $logfile 2>&1 + +[JOB] +#!/bin/bash +#DSUB -n cp2k +#DSUB --job_type cosched +#DSUB -N 1 +#DSUB -R "cpu=128" +#DSUB -o cp2k_%J.log +#DSUB -e cp2k_err_%J.log +#DSUB -T '2h' + +module load cp2k +export HOSTFILE=hostfile.cp2k +rm -f $HOSTFILE +touch $HOSTFILE +cat ${CCSCHEDULER_ALLOC_FILE} | sort > $HOSTFILE +mpirun -np 128 --hostfile $HOSTFILE -np 64 -map-by ppr:64:node:pe=1 -bind-to core -x OMP_NUM_THREADS=1 cp2k.psmp H2O-256.inp diff --git a/templates/top50/gromacs.2023.3.config b/templates/top50/gromacs/2023.3/gromacs.2023.3.config similarity index 100% rename from templates/top50/gromacs.2023.3.config rename to templates/top50/gromacs/2023.3/gromacs.2023.3.config diff --git a/templates/top50/qe.6.4.1.config b/templates/top50/qe/6.4.1/qe.6.4.1.config similarity index 100% rename from templates/top50/qe.6.4.1.config rename to templates/top50/qe/6.4.1/qe.6.4.1.config -- Gitee