diff --git a/package/hdf5/1.12.1/clang/install.sh b/package/hdf5/1.12.1/clang/install.sh new file mode 100644 index 0000000000000000000000000000000000000000..0e21f2904cf712b2f5215165957a4d56dad65fb6 --- /dev/null +++ b/package/hdf5/1.12.1/clang/install.sh @@ -0,0 +1,16 @@ +#!/bin/bash +set -x +set -e +. $CHECK_ROOT && yum -y install zlib zlib-devel +hdf5_big_version='1.12' +hdf5_version="${hdf5_big_version}.1" +. ${DOWNLOAD_TOOL} -u https://support.hdfgroup.org/ftp/HDF5/releases/hdf5-${hdf5_big_version}/hdf5-${hdf5_version}/src/hdf5-${hdf5_version}.tar.gz +cd ${JARVIS_TMP} +rm -rf hdf5-${hdf5_version} +tar -xvf ${JARVIS_DOWNLOAD}/hdf5-${hdf5_version}.tar.gz +cd hdf5-${hdf5_version} +export CC=mpicc CXX=mpicxx FC=mpif90 F77=mpif90 +./configure --prefix=$1 --enable-fortran --enable-static=yes --with-zlib=/usr/lib --enable-parallel --enable-shared CFLAGS="-O3 -fPIC -Wno-incompatible-pointer-types-discards-qualifiers -Wno-non-literal-null-conversion" FCFLAGS="-O3 -fPIC" LDFLAGS="-Wl,--build-id" +sed -i '11835c wl="-Wl,"' libtool +make -j16 +make install \ No newline at end of file diff --git a/package/hdf5/1.12.1/install.sh b/package/hdf5/1.12.1/install.sh new file mode 100644 index 0000000000000000000000000000000000000000..c597c0669fa135905698a4d69fcd1894b99d9e8f --- /dev/null +++ b/package/hdf5/1.12.1/install.sh @@ -0,0 +1,19 @@ +#!/bin/bash +set -x +set -e +hdf5_big_version='1.12' +hdf5_version="${hdf5_big_version}.1" +. ${DOWNLOAD_TOOL} -u https://support.hdfgroup.org/ftp/HDF5/releases/hdf5-${hdf5_big_version}/hdf5-${hdf5_version}/src/hdf5-${hdf5_version}.tar.gz +cd ${JARVIS_TMP} +rm -rf hdf5-${hdf5_version} +tar -xvf ${JARVIS_DOWNLOAD}/hdf5-${hdf5_version}.tar.gz +cd hdf5-${hdf5_version} +#获取除了第一个参数之外的参数 +args=${@:2} +if [ -z "$args" ]; then + ./configure --prefix=$1 --enable-fortran --enable-static=yes --enable-parallel --enable-shared --with-zlib=/usr/lib +else + ./configure --prefix=$1 $args +fi +make -j +make install \ No newline at end of file diff --git a/package/hpckit/2024.12.30/install.sh b/package/hpckit/2024.12.30/install.sh new file mode 100644 index 0000000000000000000000000000000000000000..f9aca3147b879f453bd8a90e2266bc60f99ef0b7 --- /dev/null +++ b/package/hpckit/2024.12.30/install.sh @@ -0,0 +1,4 @@ +#!/bin/bash +set -e +export hpckit_ver="24.0.0" +../meta.sh $1 \ No newline at end of file diff --git a/templates/meso_grapes/6.0/data.meso_grapes.arm.cpu.bisheng.hmpi.config b/templates/meso_grapes/6.0/data.meso_grapes.arm.cpu.bisheng.hmpi.config new file mode 100644 index 0000000000000000000000000000000000000000..2df71bc91a3eeb18766508a2ad1e728a76204ec1 --- /dev/null +++ b/templates/meso_grapes/6.0/data.meso_grapes.arm.cpu.bisheng.hmpi.config @@ -0,0 +1,104 @@ +[SERVER] +11.11.11.11 + + +[DOWNLOAD] + +[DEPENDENCY] +set -e +set -x +./CHECK_ROOT && yum install -y time.aarch64 zlib.aarch64 zlib-devel.aarch64 libtirpc.aarch64 libtirpc-devel.aarch64 numactl.aarch64 +module purge +./jarvis -install hpckit/2024.12.30 com +module use ./software/compiler/hpckit/2024.12.30/HPCKit/24.12.30/modulefiles +module load bisheng/compiler4.1.0/bishengmodule +module load bisheng/hmpi2.4.3/hmpi +export CC=mpicc CXX=mpicxx FC=mpifort +module use ./software/moduledeps/bisheng4.1.0-hmpi2.4.3 +./jarvis -install hdf5/1.12.1/clang bisheng+mpi +module load hdf5-clang/1.12.1 +./jarvis -install pnetcdf/1.12.3 bisheng+mpi +module load pnetcdf/1.12.3 +./jarvis -install netcdf/4.8.1/clang bisheng+mpi +module load netcdf-clang/4.8.1 + +[ENV] +#!/bin/bash +module purge +module use ${JARVIS_ROOT}/software/compiler/hpckit/2024.12.30/HPCKit/24.12.30/modulefiles +module load bisheng/compiler4.1.0/bishengmodule +module use ${JARVIS_ROOT}/software/moduledeps/bisheng4.1.0-hmpi2.4.3 +module load bisheng/hmpi2.4.3/hmpi +module load hdf5-clang/1.12.1 +module load pnetcdf/1.12.3 +module load netcdf-clang/4.8.1 +module load bisheng/kml2.5.0/kml +export NETCDF_LIB=${NETCDF_CLANG_PATH}/lib +export KML_LIB=${JARVIS_ROOT}/software/compiler/hpckit/2024.12.30/HPCKit/24.12.30/kml/bisheng/lib/noarch +export HMG_LIB=${JARVIS_ROOT}/GRAPES_MESO_262794_6.0_gz/fcst/hmg +export LD_LIBRARY_PATH=${HMG_LIB}:$LD_LIBRARY_PATH + +[APP] +app_name = meso_grapes +build_dir = ${JARVIS_ROOT} +binary_dir = ${JARVIS_ROOT}/GRAPES_MESO_262794_6.0_gz/fcst/grapes_model/run +case_dir = ${JARVIS_ROOT}/GRAPES_MESO_262794_6.0_gz/fcst/grapes_model/run + +[BUILD] +cd ${JARVIS_ROOT} +./jarvis -e +source ./env.sh +if [ -d "./GRAPES_MESO_262794_6.0_gz" ]; then + rm -rf ./GRAPES_MESO_262794_6.0_gz +fi +tar -zxvf $JARVIS_DOWNLOAD/GRAPES_MESO_262794_6.0_gz_20241230.tar.gz +cd ${JARVIS_ROOT}/GRAPES_MESO_262794_6.0_gz/fcst/hmg +KML_PATH=${JARVIS_ROOT}/software/compiler/hpckit/2024.12.30/HPCKit/24.12.30/kml/bisheng +mpicxx sharedlib.cpp -fPIC -shared -std=c++17 -stdlib=libc++ -w -march=armv8.3-a+fp16 -O3 -mcpu=hip09 -ffast-math -lm -lc++ -I/${KML_PATH}/include -L/${KML_PATH}/lib/sve/ -lkscasolver -lkservice -lklapack_full -L/${KML_PATH}/lib/sve/kblas/pthread -lkblas -o libgmg_P32D16.so +cd ${JARVIS_ROOT}/GRAPES_MESO_262794_6.0_gz/fcst/grapes_model +sed -i '19c OPTFLAGS_INTELC = -O3 -Wno-implicit-function-declaration -Wno-implicit-int -mcpu=hip09' ${JARVIS_ROOT}/GRAPES_MESO_262794_6.0_gz/fcst/grapes_model/config/configure.grapes.KUNPENG +sed -i '21c OPTFLAGS_INTELF = -O3 -Hx,124,0xc00000 -Hx,54,8 -Mx,53,0x80000000 -mllvm -disable-call-heuristic -mllvm -prefetch-loop-depth=3 -mllvm -prefetch-distance=1600 -mllvm -min-prefetch-stride=4 -mllvm -basicaa-fortran-io -mllvm -inline-threshold=20000 -mllvm -simplifycfg-speculatively-execute-FP-BB=false -mllvm -enable-prefetch-barrier=false -Hx,54,0x800 -mcpu=hip09 -mllvm -inline-flang-alloc=true -Hx,55,0x200 -ffast-math' ${JARVIS_ROOT}/GRAPES_MESO_262794_6.0_gz/fcst/grapes_model/config/configure.grapes.KUNPENG +sed -i '76c LIB = -L$(NETCDF_LIB) -lnetcdf -lnetcdff -L$(KML_LIB) -lkm -L$(HMG_LIB) -lgmg_P32D16 #-L$(SLEEF_LIB) -lsleefopt -lsleef -L$(GRIBROOT)/lib -lmsg2grib -lgrib_api_f90 -lgrib_api -ljasper' ${JARVIS_ROOT}/GRAPES_MESO_262794_6.0_gz/fcst/grapes_model/config/configure.grapes.KUNPENG + +./clean +./comp.sh KUNPENG + +ln -sf ${JARVIS_ROOT}/GRAPES_MESO_262794_6.0_gz/DATABAK/cold/2024111800/grapes_input_si.2024111800 ${JARVIS_ROOT}/GRAPES_MESO_262794_6.0_gz/DATABAK/cold/2024111800/grapes_input_xb.2024111800 +ln -sf ${JARVIS_ROOT}/GRAPES_MESO_262794_6.0_gz/DATABAK/cold/2024111800/grapes_input_xb.2024111800 ${JARVIS_ROOT}/GRAPES_MESO_262794_6.0_gz/fcst/grapes_model/run/grapes_input +ln -sf ${JARVIS_ROOT}/GRAPES_MESO_262794_6.0_gz/DATABAK/cold/2024111800/grapes_input_xb.2024111800 ${JARVIS_ROOT}/GRAPES_MESO_262794_6.0_gz/fcst/grapes_model/run/grapes_input202411180000 +ln -sf ${JARVIS_ROOT}/GRAPES_MESO_262794_6.0_gz/DATABAK/cold/2024111800/grapes_input_iau.2024111800 ${JARVIS_ROOT}/GRAPES_MESO_262794_6.0_gz/fcst/grapes_model/run/grapes_input_iau202411180000 +ln -sf ${JARVIS_ROOT}/GRAPES_MESO_262794_6.0_gz/DATABAK/cold/2024111800/grapesbdy_si.2024111800 ${JARVIS_ROOT}/GRAPES_MESO_262794_6.0_gz/fcst/grapes_model/run/grapesbdy +ln -sf ${JARVIS_ROOT}/GRAPES_MESO_262794_6.0_gz/DATABAK/cold/2024111800/qcqr_gcas_202411180000 ${JARVIS_ROOT}/GRAPES_MESO_262794_6.0_gz/fcst/grapes_model/run/qcqr_gcas_202411180000 +mkdir -p ${JARVIS_ROOT}/GRAPES_MESO_262794_6.0_gz/fcst/grapes_model/run/log +cat << \EOF > ${JARVIS_ROOT}/GRAPES_MESO_262794_6.0_gz/fcst/grapes_model/run/test_grapes.sh +#!/bin/bash +cd ../../../../ +. ./init.sh +cd - +source ${JARVIS_ROOT}/env.sh + +HOSTLIST='node-164,node-171' +nodes=2 +npx=16 +npy=16 +ppn=$((npx*npy/nodes)) +steps=240 +numa_num=`numactl -H |grep available |awk '{print $2}'` + +sed -i 's/time_step_max = .*,/time_step_max = '${steps}',/' ./namelist.input +sed -i 's/hs_method = .*,/hs_method = 1,/' ./namelist.input +sed -i 's/nproc_x = .*,/nproc_x = '${npx}',/' ./namelist.input +sed -i 's/nproc_y = .*/nproc_y = '${npy}'/' ./namelist.input + +time=`date +"%y-%m-%d-%H-%M-%S"` +(time -p mpirun --allow-run-as-root --oversubscribe -np $((ppn*nodes)) -N ${ppn} -host ${HOSTLIST} --map-by socket --rank-by core --map-by ppr:$((ppn/numa_num)):numa:pe=1 --bind-to core --mca btl ^vader,tcp,openib,uct --mca io romio321 --mca pml ucx -x UCX_TLS=self,sm,ud -x UCG_PLANC_UCX_ALLREDUCE_ATTR=I:8S:200R:0 -x UCG_PLANC_UCX_BARRIER_ATTR=I:7S:200R:0 -x UCG_PLANC_UCX_BCAST_ATTR=I:4S:200R:0 -x UCG_PLANC_UCX_ALLREDUCE_FANOUT_INTRA_DEGREE=3 -x UCG_PLANC_UCX_ALLREDUCE_FANIN_INTRA_DEGREE=8 -x UCG_PLANC_UCX_ALLREDUCE_FANOUT_INTER_DEGREE=7 -x UCG_PLANC_UCX_ALLREDUCE_FANIN_INTER_DEGREE=7 -x UCG_PLANC_UCX_BARRIER_FANOUT_INTRA_DEGREE=3 -x UCG_PLANC_UCX_BARRIER_FANIN_INTRA_DEGREE=8 -x UCG_PLANC_UCX_BARRIER_FANOUT_INTER_DEGREE=7 -x UCG_PLANC_UCX_BARRIER_FANIN_INTER_DEGREE=7 -x UCG_PLANC_UCX_BCAST_NA_KNTREE_INTER_DEGREE=7 -x UCG_PLANC_UCX_BCAST_NA_KNTREE_INTRA_DEGREE=3 -x KML_VERBOSE=2 -x PATH -x LD_LIBRARY_PATH ./grapes.exe) 2>&1 |tee -a log/grapes_${time}_${npx}x${npy}.log +EOF + +[CLEAN] +cd ${JARVIS_ROOT}/GRAPES_MESO_262794_6.0_gz/fcst/grapes_model +./clean + +[RUN] +run = +binary = +nodes = 2 \ No newline at end of file