From cd211eb03f76e04023b3b188b53c0f95f5f84220 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=AB=98=E6=96=87=E5=B0=A7?= <18848977154@163.com> Date: Wed, 10 Dec 2025 12:00:19 +0800 Subject: [PATCH 1/4] wrf --- templates/wrf/4.6.0/data.wrf.arm.cpu.config | 74 ++++++++++++--------- 1 file changed, 44 insertions(+), 30 deletions(-) diff --git a/templates/wrf/4.6.0/data.wrf.arm.cpu.config b/templates/wrf/4.6.0/data.wrf.arm.cpu.config index 06c04d13..92a3e1d8 100644 --- a/templates/wrf/4.6.0/data.wrf.arm.cpu.config +++ b/templates/wrf/4.6.0/data.wrf.arm.cpu.config @@ -3,43 +3,50 @@ [DOWNLOAD] wrf/4.6.0 https://github.com/wrf-model/WRF/releases/download/v4.6.0/v4.6.0.tar.gz WRFV4.6.0.tar.gz +case/conus12km https://www2.mmm.ucar.edu/wrf/src/conus12km.tar.gz [DEPENDENCY] set -e set -x -module purge -source /hpcrunner/HPCKit.env -export CC=`which mpicc` -export CXX=`which mpicxx` -export FC=`which mpifort` - -# basic system components -wget https://github.com/Unidata/netcdf-fortran/archive/refs/tags/v4.5.4.tar.gz -O /hpcrunner/downloads/netcdf-fortran-4.5.4.tar.gz --no-check-certificate -wget https://github.com/Unidata/netcdf-c/archive/refs/tags/v4.8.1.tar.gz/ -O /hpcrunner/downloads/netcdf-c-4.8.1.tar.gz --no-check-certificate - +yum install -y csh +module purge +./jarvis -install hpckit/${HPCKIT_VERSION} any +module use ./software/utils/hpckit/${HPCKIT_VERSION}/HPCKit/${HPCKIT_VERSION}/modulefiles +module load bisheng/compiler${BISHENG_VERSION}/bishengmodule +module load bisheng/hmpi${HPCKIT_VERSION}/release bisheng/kml${HPCKIT_VERSION}/kml export CC=clang CXX=clang++ FC=flang export CFLAGS="-Wno-implicit-function-declaration -Wno-incompatible-function-pointer-types" ./jarvis -install jasper/1.900.2 bisheng -module use /hpcrunner/software/moduledeps -module load bisheng4.0.0/jasper/1.900.2 +module use ./software/moduledeps/bisheng${BISHENG_VERSION}/ +module load jasper/1.900.2 export CC=mpicc CXX=mpicxx FC=mpifort ./jarvis -install hdf5/1.12.0/clang bisheng+mpi -module load bisheng4.0.0-hmpi2.4.1/hdf5-clang/1.12.0 +module use ./software/moduledeps/bisheng${BISHENG_VERSION}-hmpi${HPCKIT_VERSION} +module load hdf5-clang/1.12.0 ./jarvis -install pnetcdf/1.12.1 bisheng+mpi -module load bisheng4.0.0-hmpi2.4.1/pnetcdf/1.12.1 +module load pnetcdf/1.12.1 ./jarvis -install netcdf/4.8.1/clang bisheng+mpi -module load bisheng4.0.0-hmpi2.4.1/netcdf-clang/4.8.1 - +module load netcdf-clang/4.8.1 +rm -rf WRFV4.6.0 tar -xvf ${JARVIS_DOWNLOAD}/WRFV4.6.0.tar.gz - +rm -rf conus12km +tar -vzxf ${JARVIS_DOWNLOAD}/conus12km.tar.gz [ENV] #!/bin/bash -module purge -source /hpcrunner/HPCKit.env - -module use /hpcrunner/software/moduledeps -module load bisheng4.0.0/jasper/1.900.2 bisheng4.0.0-hmpi2.4.1/hdf5-clang/1.12.0 bisheng4.0.0-hmpi2.4.1/pnetcdf/1.12.1 bisheng4.0.0-hmpi2.4.1/netcdf-clang/4.8.1 +module purge +module use ./software/utils/hpckit/${HPCKIT_VERSION}/HPCKit/${HPCKIT_VERSION}/modulefiles +module load bisheng/compiler${BISHENG_VERSION}/bishengmodule +module load bisheng/hmpi${HPCKIT_VERSION}/release bisheng/kml${HPCKIT_VERSION}/kml +export CC=clang CXX=clang++ FC=flang +export CFLAGS="-Wno-implicit-function-declaration -Wno-incompatible-function-pointer-types" +module use ./software/moduledeps/bisheng${BISHENG_VERSION} +module load jasper/1.900.2 +export CC=mpicc CXX=mpicxx FC=mpifort +module use ./software/moduledeps/bisheng${BISHENG_VERSION}-hmpi${HPCKIT_VERSION} +module load hdf5-clang/1.12.0 +module load pnetcdf/1.12.1 +module load netcdf-clang/4.8.1 export WRFIO_NCD_LARGE_FILE_SUPPORT=1 export NETCDF=${NETCDF_CLANG_PATH} @@ -52,18 +59,18 @@ export JASPREINC=${JASPER_PATH}/include export CPPFLAGS="-I${HDF5}/include -I${PNETCDF}/include -I${NETCDF}/include" export LDFLAGS="-L${HDF5}/lib -L${PNETCDF}/lib -L${NETCDF}/lib -lnetcdf -lnetcdff -lpnetcdf -lhdf5_hl -lhdf5 -lz" export CC=mpicc CXX=mpicxx FC=mpif90 F77=mpif90 F90=mpif90 -export WRF_DIR=/hpcrunner/WRFV4.6.0 -export MPI_LIB="-L${HMPI_PATH}/lib -lmpi -lomp" +export WRF_DIR=${JARVIS_ROOT}/WRFV4.6.0 +export MPI_LIB="-L${JARVIS_ROOT}/software/utils/hpckit/25.1.0/HPCKit/25.1.0/hmpi/bisheng/release/xucg/lib -lmpi -lomp" export INCLUDE=${WRF_DIR}/include:$INCLUDE -export KML_LIB=${KML_BISHENG_PATH}/lib +export KML_LIB=${JARVIS_ROOT}/software/utils/hpckit/25.1.0/HPCKit/25.1.0/kml/bisheng/lib export CASE_DIR=${WRF_DIR}/case/conus12km -export PATH=/hpcrunner/WRFV4.6.0/main:/hpcrunner/WRFV4.6.0/external/io_netcdf:$PATH +export PATH=${JARVIS_ROOT}/WRFV4.6.0/main:${JARVIS_ROOT}/WRFV4.6.0/external/io_netcdf:$PATH [APP] app_name = WRF build_dir = ${WRF_DIR} -binary_dir = ${WRF_DIR}/run -case_dir = ${CASE_DIR} +binary_dir = +case_dir = $JARVIS_ROOT/conus12km [BUILD] set -x @@ -73,14 +80,21 @@ sed -i "2181c\SFC = flang" arch/configure.defaults sed -i "2182c\SCC = clang" arch/configure.defaults sed -i "2183c\CCOMP = clang" arch/configure.defaults echo -e "12\n1" | ./configure - ./compile -j 16 em_real 2>&1 | tee -a compile.log +cd $JARVIS_ROOT +rm -rf conus12km +tar -zxvf $JARVIS_DOWNLOAD/conus12km.tar.gz +rsync -av --exclude='namelist.input' $JARVIS_ROOT/WRFV4.6.0/run/* conus12km/ +cd conus12km +ln -sf $JARVIS_ROOT/WRFV4.6.0/main/*.exe ./ + [CLEAN] ./clean -a [RUN] -run = mpirun --allow-run-as-root -n 32 -x OMP_NUM_THREADS=1 -bind-to core ${WRF_DIR}/run/wrf.exe +run = time mpirun --allow-run-as-root -np 16 ./wrf.exe binary = nodes = 1 + -- Gitee From 5f05b7b0694946673e424c42c3418bf7f5490432 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=AB=98=E6=96=87=E5=B0=A7?= <18848977154@163.com> Date: Wed, 10 Dec 2025 19:43:25 +0800 Subject: [PATCH 2/4] wrf --- .../wrf/4.2.1/bisheng/data.wrf.arm.cpu.config | 122 +++++++++++++----- .../wrf/4.6.0/data.wrf.arm.cpu.sve.config | 78 ++++++----- templates/wrf/4.6.0/data.wrf.cpu.sve.config | 39 +++--- 3 files changed, 156 insertions(+), 83 deletions(-) diff --git a/templates/wrf/4.2.1/bisheng/data.wrf.arm.cpu.config b/templates/wrf/4.2.1/bisheng/data.wrf.arm.cpu.config index 468a9387..c0f0133e 100644 --- a/templates/wrf/4.2.1/bisheng/data.wrf.arm.cpu.config +++ b/templates/wrf/4.2.1/bisheng/data.wrf.arm.cpu.config @@ -9,36 +9,45 @@ case/conus12km https://www2.mmm.ucar.edu/wrf/src/conus12km.tar.gz set -e set -x # basic system components -./CHECK_ROOT -module purge -module use ./software/modulefiles -./jarvis -install bisheng/3.2.0-mini com -module load bisheng/3.2.0-mini +yum install -y csh +module purge +./jarvis -install hpckit/${HPCKIT_VERSION} any +module use ./software/utils/hpckit/${HPCKIT_VERSION}/HPCKit/${HPCKIT_VERSION}/modulefiles +module load bisheng/compiler${BISHENG_VERSION}/bishengmodule +module load bisheng/hmpi${HPCKIT_VERSION}/release bisheng/kml${HPCKIT_VERSION}/kml export CC=clang CXX=clang++ FC=flang +export CFLAGS="-Wno-implicit-function-declaration -Wno-incompatible-function-pointer-types" ./jarvis -install jasper/1.900.2 bisheng -module use ./software/moduledeps/bisheng3.2.0 +module use ./software/moduledeps/bisheng${BISHENG_VERSION}/ module load jasper/1.900.2 -./jarvis -install hmpi/2.3.0 bisheng -module load hmpi/2.3.0 export CC=mpicc CXX=mpicxx FC=mpifort ./jarvis -install hdf5/1.12.0/clang bisheng+mpi +module use ./software/moduledeps/bisheng${BISHENG_VERSION}-hmpi${HPCKIT_VERSION} module load hdf5-clang/1.12.0 ./jarvis -install pnetcdf/1.12.1 bisheng+mpi module load pnetcdf/1.12.1 ./jarvis -install netcdf/4.8.1/clang bisheng+mpi module load netcdf-clang/4.8.1 -./jarvis -install kml/2.2.0/bisheng bisheng +rm -rf conus12km +tar -zxvf $JARVIS_DOWNLOAD/conus12km.tar.gz +rm -rf WRF-4.2.1 +tar -zxvf $JARVIS_DOWNLOAD/wrf-4.2.1.tar.gz [ENV] #!/bin/bash -module purge -module use ${JARVIS_ROOT}/software/modulefiles -module load bisheng/3.2.0-mini -module use ${JARVIS_ROOT}/software/moduledeps/bisheng3.2.0 +module purge +module use ./software/utils/hpckit/${HPCKIT_VERSION}/HPCKit/${HPCKIT_VERSION}/modulefiles +module load bisheng/compiler${BISHENG_VERSION}/bishengmodule +module load bisheng/hmpi${HPCKIT_VERSION}/release bisheng/kml${HPCKIT_VERSION}/kml +export CC=clang CXX=clang++ FC=flang +export CFLAGS="-Wno-implicit-function-declaration -Wno-incompatible-function-pointer-types" +module use ./software/moduledeps/bisheng${BISHENG_VERSION}/ module load jasper/1.900.2 -module load hmpi/2.3.0 -module load hdf5-clang/1.12.0 pnetcdf/1.12.1 netcdf-clang/4.8.1 -module load kml-bisheng/2.2.0 +export CC=mpicc CXX=mpicxx FC=mpifort +module use ./software/moduledeps/bisheng${BISHENG_VERSION}-hmpi${HPCKIT_VERSION} +module load hdf5-clang/1.12.0 +module load pnetcdf/1.12.1 +module load netcdf-clang/4.8.1 export WRFIO_NCD_LARGE_FILE_SUPPORT=1 export NETCDF=$NETCDF_CLANG_PATH export HDF5=$HDF5_CLANG_PATH @@ -50,38 +59,86 @@ export JASPREINC=$JASPER_PATH/include export CPPFLAGS="-I$HDF5/include -I$PNETCDF/include -I$NETCDF/include" export LDFLAGS="-L$HDF5/lib -L$PNETCDF/lib -L$NETCDF/lib -lnetcdf -lnetcdff -lpnetcdf -lhdf5_hl -lhdf5 -lz" export CC=mpicc CXX=mpicxx FC=mpif90 F77=mpif90 F90=mpif90 -export WRF_DIR=$JARVIS_ROOT/workloads/WRF-4.2.1 -export MPI_LIB="-L$MPI_LIB -lmpi -lomp" +export WRF_DIR=$JARVIS_ROOT/WRF-4.2.1 +export MPI_LIB="-L${JARVIS_ROOT}/software/utils/hpckit/${HPCKIT_VERSION}/HPCKit/${HPCKIT_VERSION}/hmpi/bisheng/release/xucg/lib -lmpi -lomp" export INCLUDE=$WRF_DIR/include:$INCLUDE -export KML_LIB=$KML_BISHENG_PATH/lib -export CASE_DIR=$WRF_DIR/case/conus12km +export KML_LIB=${JARVIS_ROOT}/software/utils/hpckit/${HPCKIT_VERSION}/HPCKit/${HPCKIT_VERSION}/kml/bisheng/lib/noarch +export CASE_DIR=${JARVIS_ROOT}/conus12km [APP] app_name = WRF build_dir = ${WRF_DIR} -binary_dir = ${WRF_DIR}/run +binary_dir = case_dir = ${CASE_DIR} [BUILD] +set -x + cd ${JARVIS_ROOT} -./jarvis -e -source ./env.sh -cd ${JARVIS_ROOT}/workloads -if [ -d "./WRF-4.2.1" ]; then - rm -rf ./WRF-4.2.1 -fi -tar -zxvf $JARVIS_DOWNLOAD/wrf-4.2.1.tar.gz cd WRF-4.2.1 -mkdir case -patch -p1 < ${JARVIS_ROOT}/templates/wrf/4.2.1/bisheng/wrf-4.2.1.patch +cat << \EOF > ./arch/configure.defaults +########################################################### +#ARCH Linux aarch64,clang HYPERMPI#serial smpar dmpar dm+sm +DESCRIPTION = CLANG ($SFC/$SCC) +DMPARALLEL = 1 +OMPCPP = -D_OPENMP +OMP = -fopenmp +OMPCC = -fopenmp +SFC = flang +SCC = clang -Wno-implicit-function-declaration -Wno-implicit-int -Wno-deprecated-non-prototype +CCOMP = clang +DM_FC = mpif90 -f90=$(SFC) +DM_CC = mpicc -cc=$(SCC) -DMPI2_SUPPORT -Wno-implicit-function-declaration -Wno-implicit-int +FC = CONFIGURE_FC +CC = CONFIGURE_CC +LD = $(FC) -L$(KML_LIB) -lkm +RWORDSIZE = CONFIGURE_RWORDSIZE +PROMOTION = #-fdefault-real-8 +ARCH_LOCAL = -DNONSTANDARD_SYSTEM_SUBR -DWRF_USE_CLM +CFLAGS_LOCAL = -mcpu=native -w -O3 -c -march=armv8.2-a +LDFLAGS_LOCAL = +CPLUSPLUSLIB = +ESMF_LDFLAG = $(CPLUSPLUSLIB) +FCOPTIM = -O3 -march=armv8.2-a +FCREDUCEDOPT = $(FCOPTIM) +FCNOOPT = -O0 +FCDEBUG = -g # -fbacktrace -ggdb-fcheck=bounds,do,mem,pointer -ffpe-trap=invalid,zero,overflow +FORMAT_FIXED = -ffixed-form +FORMAT_FREE = -ffree-form -ffree-line-length-0 +FCSUFFIX = +BYTESWAPIO = -fconvert=big-endian +FCBASEOPTS_NO_G = -w $(FORMAT_FREE) $(BYTESWAPIO) +FCBASEOPTS = -mcpu=native $(OMP) $(FCBASEOPTS_NO_G) +MODULE_SRCH_FLAG = +TRADFLAG = -traditional +CPP = /lib/cpp -P +AR = ar +ARFLAGS = ru +M4 = m4 -G +RANLIB = ranlib +RLFLAGS = +CC_TOOLS = $(SCC) + +#insert new stanza before the Fujitsu block, keep Fujitsu at the end of the list +########################################################### +#ARCH NULL +EOF +sed -i 's/derf/erf/g' ./phys/module_mp_SBM_polar_radar.F echo 4 | ./configure -./compile em_real 2>&1 | tee compile.log +./compile -j 20 em_real 2>&1 | tee compile.log + +cd $JARVIS_ROOT +rm -rf conus12km +tar -zxvf $JARVIS_DOWNLOAD/conus12km.tar.gz +rsync -av --exclude='namelist.input' $JARVIS_ROOT/WRF-4.2.1/run/* conus12km/ +cd conus12km +ln -sf $JARVIS_ROOT/WRF-4.2.1/main/*.exe ./ [CLEAN] ./clean -a [RUN] -run = mpirun --allow-run-as-root -n 32 -x OMP_NUM_THREADS=1 -bind-to core $WRF_DIR/run/wrf.exe +run = mpirun --allow-run-as-root -n 16 -x OMP_NUM_THREADS=1 -bind-to core ./wrf.exe binary = nodes = 1 @@ -109,3 +166,4 @@ echo "$EXEC_CMD" date $EXEC_CMD date + diff --git a/templates/wrf/4.6.0/data.wrf.arm.cpu.sve.config b/templates/wrf/4.6.0/data.wrf.arm.cpu.sve.config index ab8b12bc..b6152b6d 100644 --- a/templates/wrf/4.6.0/data.wrf.arm.cpu.sve.config +++ b/templates/wrf/4.6.0/data.wrf.arm.cpu.sve.config @@ -3,43 +3,48 @@ [DOWNLOAD] wrf/4.6.0 https://github.com/wrf-model/WRF/releases/download/v4.6.0/v4.6.0.tar.gz WRFV4.6.0.tar.gz +case/conus12km https://www2.mmm.ucar.edu/wrf/src/conus12km.tar.gz [DEPENDENCY] set -e set -x -module purge -source $JARVIS_ROOT/HPCKit.env -export CC=`which mpicc` -export CXX=`which mpicxx` -export FC=`which mpifort` - -# basic system components -wget https://github.com/Unidata/netcdf-fortran/archive/refs/tags/v4.5.4.tar.gz -O /hpcrunner/downloads/netcdf-fortran-4.5.4.tar.gz --no-check-certificate -wget https://github.com/Unidata/netcdf-c/archive/refs/tags/v4.8.1.tar.gz/ -O /hpcrunner/downloads/netcdf-c-4.8.1.tar.gz --no-check-certificate +yum install -y csh +module purge +./jarvis -install hpckit/${HPCKIT_VERSION} any +module use ./software/utils/hpckit/${HPCKIT_VERSION}/HPCKit/${HPCKIT_VERSION}/modulefiles +module load bisheng/compiler${BISHENG_VERSION}/bishengmodule +module load bisheng/hmpi${HPCKIT_VERSION}/release bisheng/kml${HPCKIT_VERSION}/kml export CC=clang CXX=clang++ FC=flang export CFLAGS="-Wno-implicit-function-declaration -Wno-incompatible-function-pointer-types" ./jarvis -install jasper/1.900.2 bisheng -module use $JARVIS_ROOT/software/moduledeps -module load bisheng4.0.0/jasper/1.900.2 +module use ./software/moduledeps/bisheng${BISHENG_VERSION}/ +module load jasper/1.900.2 export CC=mpicc CXX=mpicxx FC=mpifort ./jarvis -install hdf5/1.12.0/clang bisheng+mpi -module load bisheng4.0.0-hmpi2.4.1/hdf5-clang/1.12.0 +module use ./software/moduledeps/bisheng${BISHENG_VERSION}-hmpi${HPCKIT_VERSION} +module load hdf5-clang/1.12.0 ./jarvis -install pnetcdf/1.12.1 bisheng+mpi -module load bisheng4.0.0-hmpi2.4.1/pnetcdf/1.12.1 +module load pnetcdf/1.12.1 ./jarvis -install netcdf/4.8.1/clang bisheng+mpi -module load bisheng4.0.0-hmpi2.4.1/netcdf-clang/4.8.1 - +module load netcdf-clang/4.8.1 +rm -rf WRFV4.6.0 tar -xvf ${JARVIS_DOWNLOAD}/WRFV4.6.0.tar.gz - [ENV] #!/bin/bash -module purge -source /hpcrunner/HPCKit.env - -module use /hpcrunner/software/moduledeps -module load bisheng4.0.0/jasper/1.900.2 bisheng4.0.0-hmpi2.4.1/hdf5-clang/1.12.0 bisheng4.0.0-hmpi2.4.1/pnetcdf/1.12.1 bisheng4.0.0-hmpi2.4.1/netcdf-clang/4.8.1 +module purge +module use ./software/utils/hpckit/${HPCKIT_VERSION}/HPCKit/${HPCKIT_VERSION}/modulefiles +module load bisheng/compiler${BISHENG_VERSION}/bishengmodule +module load bisheng/hmpi${HPCKIT_VERSION}/release bisheng/kml${HPCKIT_VERSION}/kml +export CFLAGS="-Wno-implicit-function-declaration -Wno-incompatible-function-pointer-types" +module use ./software/moduledeps/bisheng${BISHENG_VERSION}/ +module load jasper/1.900.2 +export CC=mpicc CXX=mpicxx FC=mpifort +module use ./software/moduledeps/bisheng${BISHENG_VERSION}-hmpi${HPCKIT_VERSION} +module load hdf5-clang/1.12.0 +module load pnetcdf/1.12.1 +module load netcdf-clang/4.8.1 export WRFIO_NCD_LARGE_FILE_SUPPORT=1 export NETCDF=${NETCDF_CLANG_PATH} @@ -52,38 +57,45 @@ export JASPREINC=${JASPER_PATH}/include export CPPFLAGS="-I${HDF5}/include -I${PNETCDF}/include -I${NETCDF}/include" export LDFLAGS="-L${HDF5}/lib -L${PNETCDF}/lib -L${NETCDF}/lib -lnetcdf -lnetcdff -lpnetcdf -lhdf5_hl -lhdf5 -lz" export CC=mpicc CXX=mpicxx FC=mpif90 F77=mpif90 F90=mpif90 -export WRF_DIR=/hpcrunner/WRFV4.6.0 -export MPI_LIB="-L${HMPI_PATH}/lib -lmpi -lomp" +export WRF_DIR=${JARVIS_ROOT}/WRFV4.6.0 +export MPI_LIB="-L${JARVIS_ROOT}/software/utils/hpckit/${HPCKIT_VERSION}/HPCKit/${HPCKIT_VERSION}/hmpi/bisheng/release/xucg/lib -lmpi -lomp" export INCLUDE=${WRF_DIR}/include:$INCLUDE +export KML_LIB=${JARVIS_ROOT}/software/utils/hpckit/${HPCKIT_VERSION}/HPCKit/${HPCKIT_VERSION}/kml/bisheng/lib export CASE_DIR=${WRF_DIR}/case/conus12km -export PATH=/hpcrunner/WRFV4.6.0/main:/hpcrunner/WRFV4.6.0/external/io_netcdf:$PATH +export PATH=${JARVIS_ROOT}/WRFV4.6.0/main:${JARVIS_ROOT}/WRFV4.6.0/external/io_netcdf:$PATH [APP] app_name = WRF build_dir = ${WRF_DIR} -binary_dir = ${WRF_DIR}/run -case_dir = ${CASE_DIR} +binary_dir = +case_dir = $JARVIS_ROOT/conus12km [BUILD] set -x cd ${JARVIS_ROOT}/WRFV4.6.0 sed -i "2181c\SFC = flang" arch/configure.defaults -sed -i "2182c\SCC = clang" arch/configure.defaults +sed -i "2182c\SCC = clang -fGNU-compatibility" arch/configure.defaults sed -i "2183c\CCOMP = clang" arch/configure.defaults -sed -i "2192c\CFLAGS_LOCAL = -w -O3 -c -Wno-implicit-function-declaration -Wno-int-conversion -Wno-implicit-int -mtune=native -mcpu=linxicore9100 -mllvm -force-customized-pipeline=true" arch/configure.defaults -sed -i "2194c\FCOPTIM = -Ofast -mcpu=native -funroll-loops -mtune=native -mcpu=linxicore9100 -mllvm -force-customized-pipeline=true" arch/configure.defaults -sed -i "2193c\LDFLAGS_LOCAL = -fopenmp -L/hpcrunner/HPCKit/latest/kml/bisheng/lib -lkm" arch/configure.defaults - +sed -i "2192c\CFLAGS_LOCAL = -w -O3 -c -fGNU-compatibility" arch/configure.defaults +#sed -i "2194c\FCOPTIM = -Ofast -mcpu=native -funroll-loops -mtune=native -mcpu=linxicore9100 -mllvm -force-customized-pipeline=true" arch/configure.defaults +#sed -i "2193c\LDFLAGS_LOCAL = -fopenmp -L${JARVIS_ROOT}/software/utils/hpckit/${HPCKIT_VERSION}/HPCKit/${HPCKIT_VERSION}/kml/bisheng/lib -lkm" arch/configure.defaults echo -e "12\n1" | ./configure - ./compile -j 16 em_real 2>&1 | tee -a compile.log +cd $JARVIS_ROOT +rm -rf conus12km +tar -zxvf $JARVIS_DOWNLOAD/conus12km.tar.gz +rsync -av --exclude='namelist.input' $JARVIS_ROOT/WRFV4.6.0/run/* conus12km/ +cd conus12km +ln -sf $JARVIS_ROOT/WRFV4.6.0/main/*.exe ./ + [CLEAN] ./clean -a [RUN] -run = mpirun --allow-run-as-root -n 32 -x OMP_NUM_THREADS=1 -bind-to core ${WRF_DIR}/run/wrf.exe +run = time mpirun --allow-run-as-root -np 16 ./wrf.exe binary = nodes = 1 + diff --git a/templates/wrf/4.6.0/data.wrf.cpu.sve.config b/templates/wrf/4.6.0/data.wrf.cpu.sve.config index ff09a418..e800ff86 100644 --- a/templates/wrf/4.6.0/data.wrf.cpu.sve.config +++ b/templates/wrf/4.6.0/data.wrf.cpu.sve.config @@ -10,16 +10,16 @@ set -e set -x yum install csh -y module purge -./jarvis -install hpckit/25.0.0 com -module use ./software/compiler/hpckit/25.0.0/HPCKit/latest/modulefiles -module load bisheng/compiler4.2.0/bishengmodule -module load bisheng/hmpi25.0.0/hmpi +./jarvis -install hpckit/${HPCKIT_VERSION} any +module use ./software/utils/hpckit/${HPCKIT_VERSION}/HPCKit/${HPCKIT_VERSION}/modulefiles +module load bisheng/compiler${BISHENG_VERSION}/bishengmodule +module load bisheng/hmpi${HPCKIT_VERSION}/release bisheng/kml${HPCKIT_VERSION}/kml export CC="clang -Wno-implicit-function-declaration -Wno-incompatible-function-pointer-types" CXX=clang++ FC=flang ./jarvis -install jasper/1.900.2 clang -module use ./software/moduledeps/bisheng4.2.0 +module use ./software/moduledeps/bisheng${BISHENG_VERSION} module load jasper/1.900.2 export CC=mpicc CXX=mpicxx FC=mpifort -module use ./software/moduledeps/bisheng4.2.0-hmpi25.0.0 +module use ./software/moduledeps/bisheng${BISHENG_VERSION}-hmpi${HPCKIT_VERSION} ./jarvis -install hdf5/1.12.0/clang clang+mpi module load hdf5-clang/1.12.0 ./jarvis -install pnetcdf/1.12.1 clang+mpi @@ -32,14 +32,16 @@ tar -zxvf $JARVIS_DOWNLOAD/v4.6.0.tar.gz [ENV] #!/bin/bash module purge -module use ${JARVIS_ROOT}//software/compiler/hpckit/25.0.0/HPCKit/latest/modulefiles -module load bisheng/compiler4.2.0/bishengmodule -module use ${JARVIS_ROOT}/software/moduledeps/bisheng4.2.0 -module use ${JARVIS_ROOT}/software/moduledeps/bisheng4.2.0-hmpi25.0.0 +module use ./software/utils/hpckit/${HPCKIT_VERSION}/HPCKit/${HPCKIT_VERSION}/modulefiles +module load bisheng/compiler${BISHENG_VERSION}/bishengmodule +module load bisheng/hmpi${HPCKIT_VERSION}/release bisheng/kml${HPCKIT_VERSION}/kml +module use ./software/moduledeps/bisheng${BISHENG_VERSION} module load jasper/1.900.2 -module load bisheng/hmpi25.0.0/hmpi -module load hdf5-clang/1.12.0 pnetcdf/1.12.1 netcdf-clang/4.7.4 -module load bisheng/kml25.0.0/kml +export CC=mpicc CXX=mpicxx FC=mpifort +module use ./software/moduledeps/bisheng${BISHENG_VERSION}-hmpi${HPCKIT_VERSION} +module load hdf5-clang/1.12.0 +module load pnetcdf/1.12.1 +module load netcdf-clang/4.7.4 export WRFIO_NCD_LARGE_FILE_SUPPORT=1 export NETCDF=$NETCDF_CLANG_PATH export HDF5=$HDF5_CLANG_PATH @@ -47,14 +49,14 @@ export PHDF5=$HDF5 export PNETCDF=$PNETCDF_PATH export JASPER=$JASPER_PATH export JASPERLIB=$JASPER_PATH/lib -export JASPERINC=$$JASPER_PATH/include +export JASPERINC=$JASPER_PATH/include export CPPFLAGS="-I$HDF5/include -I$PNETCDF/include -I$NETCDF/include" export LDFLAGS="-L$HDF5/lib -L$PNETCDF/lib -L$NETCDF/lib -lnetcdf -lnetcdff -lpnetcdf -lhdf5_hl -lhdf5 -lz" export CC=mpicc CXX=mpicxx FC=mpif90 F77=mpif90 F90=mpif90 export WRF_DIR=$JARVIS_ROOT/WRF-4.6 -export MPI_LIB="-L$JARVIS_COMPILER/hpckit/25.0.0/HPCKit/latest/hmpi/bisheng/hmpi/lib -lmpi -lomp" +export MPI_LIB="-L${JARVIS_ROOT}/software/utils/hpckit/${HPCKIT_VERSION}/HPCKit/${HPCKIT_VERSION}/hmpi/bisheng/release/xucg/lib -lmpi -lomp" export INCLUDE=$WRF_DIR/include:$INCLUDE -export KML_LIB=$JARVIS_COMPILER/hpckit/25.0.0/HPCKit/latest/kml/bisheng/lib/noarch +export KML_LIB=${JARVIS_ROOT}/software/utils/hpckit/${HPCKIT_VERSION}/HPCKit/${HPCKIT_VERSION}/kml/bisheng/lib/noarch [APP] app_name = WRF @@ -141,9 +143,9 @@ LOG_FILE="ww3-proformance.log" #复制run目录到运行目录 mv namelist.input namelist.input-bak -cp -rf $JARVIS_ROOT/software/apps/bisheng4.1.0-hmpi2.4.3/WRFV4.6.0/run/* ./ +cp -rf $JARVIS_ROOT/software/apps/bisheng${BISHENG_VERSION}-hmpi${HMPI_VERSION}/WRFV4.6.0/run/* ./ ln -sf CAMtr_volume_mixing_ratio CAMtr_volume_mixing_ratio.SSP245 -ln -sf MPTABLE.TBL $JARVIS_ROOT/software/apps/bisheng4.1.0-hmpi2.4.3/WRFV4.6.0/phys/noahmp/parameters/MPTABLE.TBL +ln -sf MPTABLE.TBL $JARVIS_ROOT/software/apps/bisheng${BISHENG_VERSION}-hmpi${HMPI_VERSION}/WRFV4.6.0/phys/noahmp/parameters/MPTABLE.TBL mv namelist.input-bak namelist.input trdnum=4 mynp=32 @@ -178,3 +180,4 @@ $ROOT_TOOL "mpirun" "mpirun -x PATH -x LD_LIBRARY_PATH --map-by ppr:${mynp}:nod echo "ALL commands executed. Performance log saved to $LOG_FILE" + -- Gitee From b51a5e65a00d498d5b733a37ffbb37a34e5541e6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=AB=98=E6=96=87=E5=B0=A7?= <18848977154@163.com> Date: Mon, 15 Dec 2025 20:18:30 +0800 Subject: [PATCH 3/4] wrf --- .../wrf/4.2.1/bisheng/data.wrf.arm.cpu.config | 121 +++++------------- 1 file changed, 32 insertions(+), 89 deletions(-) diff --git a/templates/wrf/4.2.1/bisheng/data.wrf.arm.cpu.config b/templates/wrf/4.2.1/bisheng/data.wrf.arm.cpu.config index c0f0133e..621799b3 100644 --- a/templates/wrf/4.2.1/bisheng/data.wrf.arm.cpu.config +++ b/templates/wrf/4.2.1/bisheng/data.wrf.arm.cpu.config @@ -9,45 +9,36 @@ case/conus12km https://www2.mmm.ucar.edu/wrf/src/conus12km.tar.gz set -e set -x # basic system components -yum install -y csh -module purge -./jarvis -install hpckit/${HPCKIT_VERSION} any -module use ./software/utils/hpckit/${HPCKIT_VERSION}/HPCKit/${HPCKIT_VERSION}/modulefiles -module load bisheng/compiler${BISHENG_VERSION}/bishengmodule -module load bisheng/hmpi${HPCKIT_VERSION}/release bisheng/kml${HPCKIT_VERSION}/kml +./CHECK_ROOT +module purge +module use ./software/modulefiles +./jarvis -install bisheng/3.2.0-mini com +module load bisheng/3.2.0-mini export CC=clang CXX=clang++ FC=flang -export CFLAGS="-Wno-implicit-function-declaration -Wno-incompatible-function-pointer-types" ./jarvis -install jasper/1.900.2 bisheng -module use ./software/moduledeps/bisheng${BISHENG_VERSION}/ +module use ./software/moduledeps/bisheng3.2.0 module load jasper/1.900.2 +./jarvis -install hmpi/2.3.0 bisheng +module load hmpi/2.3.0 export CC=mpicc CXX=mpicxx FC=mpifort ./jarvis -install hdf5/1.12.0/clang bisheng+mpi -module use ./software/moduledeps/bisheng${BISHENG_VERSION}-hmpi${HPCKIT_VERSION} module load hdf5-clang/1.12.0 ./jarvis -install pnetcdf/1.12.1 bisheng+mpi module load pnetcdf/1.12.1 ./jarvis -install netcdf/4.8.1/clang bisheng+mpi module load netcdf-clang/4.8.1 -rm -rf conus12km -tar -zxvf $JARVIS_DOWNLOAD/conus12km.tar.gz -rm -rf WRF-4.2.1 -tar -zxvf $JARVIS_DOWNLOAD/wrf-4.2.1.tar.gz +./jarvis -install kml/2.2.0/bisheng bisheng [ENV] #!/bin/bash -module purge -module use ./software/utils/hpckit/${HPCKIT_VERSION}/HPCKit/${HPCKIT_VERSION}/modulefiles -module load bisheng/compiler${BISHENG_VERSION}/bishengmodule -module load bisheng/hmpi${HPCKIT_VERSION}/release bisheng/kml${HPCKIT_VERSION}/kml -export CC=clang CXX=clang++ FC=flang -export CFLAGS="-Wno-implicit-function-declaration -Wno-incompatible-function-pointer-types" -module use ./software/moduledeps/bisheng${BISHENG_VERSION}/ +module purge +module use ${JARVIS_ROOT}/software/modulefiles +module load bisheng/3.2.0-mini +module use ${JARVIS_ROOT}/software/moduledeps/bisheng3.2.0 module load jasper/1.900.2 -export CC=mpicc CXX=mpicxx FC=mpifort -module use ./software/moduledeps/bisheng${BISHENG_VERSION}-hmpi${HPCKIT_VERSION} -module load hdf5-clang/1.12.0 -module load pnetcdf/1.12.1 -module load netcdf-clang/4.8.1 +module load hmpi/2.3.0 +module load hdf5-clang/1.12.0 pnetcdf/1.12.1 netcdf-clang/4.8.1 +module load kml-bisheng/2.2.0 export WRFIO_NCD_LARGE_FILE_SUPPORT=1 export NETCDF=$NETCDF_CLANG_PATH export HDF5=$HDF5_CLANG_PATH @@ -59,86 +50,38 @@ export JASPREINC=$JASPER_PATH/include export CPPFLAGS="-I$HDF5/include -I$PNETCDF/include -I$NETCDF/include" export LDFLAGS="-L$HDF5/lib -L$PNETCDF/lib -L$NETCDF/lib -lnetcdf -lnetcdff -lpnetcdf -lhdf5_hl -lhdf5 -lz" export CC=mpicc CXX=mpicxx FC=mpif90 F77=mpif90 F90=mpif90 -export WRF_DIR=$JARVIS_ROOT/WRF-4.2.1 -export MPI_LIB="-L${JARVIS_ROOT}/software/utils/hpckit/${HPCKIT_VERSION}/HPCKit/${HPCKIT_VERSION}/hmpi/bisheng/release/xucg/lib -lmpi -lomp" +export WRF_DIR=$JARVIS_ROOT/workloads/WRF-4.2.1 +export MPI_LIB="-L$MPI_LIB -lmpi -lomp" export INCLUDE=$WRF_DIR/include:$INCLUDE -export KML_LIB=${JARVIS_ROOT}/software/utils/hpckit/${HPCKIT_VERSION}/HPCKit/${HPCKIT_VERSION}/kml/bisheng/lib/noarch -export CASE_DIR=${JARVIS_ROOT}/conus12km +export KML_LIB=$KML_BISHENG_PATH/lib +export CASE_DIR=$WRF_DIR/case/conus12km [APP] app_name = WRF build_dir = ${WRF_DIR} -binary_dir = +binary_dir = ${WRF_DIR}/run case_dir = ${CASE_DIR} [BUILD] -set -x - cd ${JARVIS_ROOT} +./jarvis -e +source ./env.sh +cd ${JARVIS_ROOT}/workloads +if [ -d "./WRF-4.2.1" ]; then + rm -rf ./WRF-4.2.1 +fi +tar -zxvf $JARVIS_DOWNLOAD/wrf-4.2.1.tar.gz cd WRF-4.2.1 -cat << \EOF > ./arch/configure.defaults -########################################################### -#ARCH Linux aarch64,clang HYPERMPI#serial smpar dmpar dm+sm -DESCRIPTION = CLANG ($SFC/$SCC) -DMPARALLEL = 1 -OMPCPP = -D_OPENMP -OMP = -fopenmp -OMPCC = -fopenmp -SFC = flang -SCC = clang -Wno-implicit-function-declaration -Wno-implicit-int -Wno-deprecated-non-prototype -CCOMP = clang -DM_FC = mpif90 -f90=$(SFC) -DM_CC = mpicc -cc=$(SCC) -DMPI2_SUPPORT -Wno-implicit-function-declaration -Wno-implicit-int -FC = CONFIGURE_FC -CC = CONFIGURE_CC -LD = $(FC) -L$(KML_LIB) -lkm -RWORDSIZE = CONFIGURE_RWORDSIZE -PROMOTION = #-fdefault-real-8 -ARCH_LOCAL = -DNONSTANDARD_SYSTEM_SUBR -DWRF_USE_CLM -CFLAGS_LOCAL = -mcpu=native -w -O3 -c -march=armv8.2-a -LDFLAGS_LOCAL = -CPLUSPLUSLIB = -ESMF_LDFLAG = $(CPLUSPLUSLIB) -FCOPTIM = -O3 -march=armv8.2-a -FCREDUCEDOPT = $(FCOPTIM) -FCNOOPT = -O0 -FCDEBUG = -g # -fbacktrace -ggdb-fcheck=bounds,do,mem,pointer -ffpe-trap=invalid,zero,overflow -FORMAT_FIXED = -ffixed-form -FORMAT_FREE = -ffree-form -ffree-line-length-0 -FCSUFFIX = -BYTESWAPIO = -fconvert=big-endian -FCBASEOPTS_NO_G = -w $(FORMAT_FREE) $(BYTESWAPIO) -FCBASEOPTS = -mcpu=native $(OMP) $(FCBASEOPTS_NO_G) -MODULE_SRCH_FLAG = -TRADFLAG = -traditional -CPP = /lib/cpp -P -AR = ar -ARFLAGS = ru -M4 = m4 -G -RANLIB = ranlib -RLFLAGS = -CC_TOOLS = $(SCC) - -#insert new stanza before the Fujitsu block, keep Fujitsu at the end of the list -########################################################### -#ARCH NULL -EOF -sed -i 's/derf/erf/g' ./phys/module_mp_SBM_polar_radar.F +mkdir case +patch -p1 < ${JARVIS_ROOT}/templates/wrf/4.2.1/bisheng/wrf-4.2.1.patch echo 4 | ./configure -./compile -j 20 em_real 2>&1 | tee compile.log - -cd $JARVIS_ROOT -rm -rf conus12km -tar -zxvf $JARVIS_DOWNLOAD/conus12km.tar.gz -rsync -av --exclude='namelist.input' $JARVIS_ROOT/WRF-4.2.1/run/* conus12km/ -cd conus12km -ln -sf $JARVIS_ROOT/WRF-4.2.1/main/*.exe ./ +./compile em_real 2>&1 | tee compile.log [CLEAN] ./clean -a [RUN] -run = mpirun --allow-run-as-root -n 16 -x OMP_NUM_THREADS=1 -bind-to core ./wrf.exe +run = mpirun --allow-run-as-root -n 32 -x OMP_NUM_THREADS=1 -bind-to core $WRF_DIR/run/wrf.exe binary = nodes = 1 -- Gitee From db38e901affbcf63a2c7487ca469b8ffb00a78c9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=AB=98=E6=96=87=E5=B0=A7?= <18848977154@163.com> Date: Mon, 15 Dec 2025 20:21:10 +0800 Subject: [PATCH 4/4] wrf --- templates/wrf/4.2.1/bisheng/data.wrf.arm.cpu.config | 1 - 1 file changed, 1 deletion(-) diff --git a/templates/wrf/4.2.1/bisheng/data.wrf.arm.cpu.config b/templates/wrf/4.2.1/bisheng/data.wrf.arm.cpu.config index 621799b3..468a9387 100644 --- a/templates/wrf/4.2.1/bisheng/data.wrf.arm.cpu.config +++ b/templates/wrf/4.2.1/bisheng/data.wrf.arm.cpu.config @@ -109,4 +109,3 @@ echo "$EXEC_CMD" date $EXEC_CMD date - -- Gitee