From 6b59c2526ea00e07e52da2cd5ef83be40200c061 Mon Sep 17 00:00:00 2001 From: cfmin <1163105507@qq.com> Date: Mon, 12 May 2025 15:06:02 +0800 Subject: [PATCH] Update templates app ARPS-5.3.4 --- package/hdf4/4.2.15/bisheng/install.sh | 28 ++++ templates/ARPS/5.3.4/data.arps.arm.cpu.config | 121 +++++++++--------- .../ARPS/5.3.4/data.arps.arm.cpu.sve.config | 72 ++++++----- 3 files changed, 127 insertions(+), 94 deletions(-) create mode 100755 package/hdf4/4.2.15/bisheng/install.sh mode change 100755 => 100644 templates/ARPS/5.3.4/data.arps.arm.cpu.config mode change 100755 => 100644 templates/ARPS/5.3.4/data.arps.arm.cpu.sve.config diff --git a/package/hdf4/4.2.15/bisheng/install.sh b/package/hdf4/4.2.15/bisheng/install.sh new file mode 100755 index 0000000..4e6751f --- /dev/null +++ b/package/hdf4/4.2.15/bisheng/install.sh @@ -0,0 +1,28 @@ +#!/bin/bash +set -e +. ${DOWNLOAD_TOOL} -u https://support.hdfgroup.org/ftp/HDF/releases/HDF4.2.15/src/hdf-4.2.15.tar.gz +cd ${JARVIS_TMP} +rm -rf hdf-4.2.15 +tar -xvf ${JARVIS_DOWNLOAD}/hdf-4.2.15.tar.gz +cd hdf-4.2.15/ +yum install -y libtirpc-devel +sed -i '974c #if defined(__linux__) && defined __x86_64__ && !( defined SUN) || defined(__aarch64__)' hdf/src/hdfi.h +sed -i '23660a LIBS="$LIBS -ltirpc"' configure +sed -i '23662c CPPFLAGS="$SYSCPPFLAGS -I/usr/include/tirpc"' configure +sed -i 'N; s/\n\(static int32_t \*.*\)/ || defined __aarch64__\n\1/; P; D' mfhdf/libsrc/xdrposix.c +sed -i '/^\.c.lo:/{:a; $!N; /-MT/!ba; s/-MT/-std=c89 &/}' mfhdf/libsrc/Makefile.in +for file in \ + hdf/test/Makefile.in \ + hdf/util/Makefile.in \ + mfhdf/test/Makefile.in \ + mfhdf/ncdump/Makefile.in \ + mfhdf/ncgen/Makefile.in \ + mfhdf/hdfimport/Makefile.in \ + mfhdf/hdiff/Makefile.in +do + sed -i '/^\.c\.o:/{:a; $!N; /-MT/!ba; s/-MT/-std=c89 &/}' "$file" +done +export CC=mpicc CXX=mpicxx FC=mpifort +./configure --prefix=$1 --enable-production --with-zlib=/usr --enable-fortran --enable-hdf4-xdr --disable-shared --build=arm-linux --with-jpeg=${LIBJPEG_PATH} --disable-netcdf CFLAGS="-fPIC -Wno-error=int-conversion" CXXFLAGS="-fPIC" FFLAGS="-fPIC" LDFLAGS="-L/usr/lib64 -ltirpc" CPPFLAGS="-I/usr/include/tirpc" --build=aarch64-unknown-linux-gnu +make -j +make install diff --git a/templates/ARPS/5.3.4/data.arps.arm.cpu.config b/templates/ARPS/5.3.4/data.arps.arm.cpu.config old mode 100755 new mode 100644 index 48fcaf8..973a815 --- a/templates/ARPS/5.3.4/data.arps.arm.cpu.config +++ b/templates/ARPS/5.3.4/data.arps.arm.cpu.config @@ -1,59 +1,62 @@ -[SERVER] -11.11.11.11 - -[DOWNLOAD] -ARPS/5.3.4 https://arps.caps.ou.edu/ARPS/download/code/arps5.3.4.tar.gz - -[DEPENDENCY] -set -x -set -e -module purge -source ./HPCKit.env -export CC=`which mpicc` -export CXX=`which mpicxx` -export FC=`which mpifort` - -yum install hdf-devel.aarch64 -y -mkdir -p $JARVIS_ROOT/HDF4/bin -mkdir -p $JARVIS_ROOT/HDF4/lib -mkdir -p $JARVIS_ROOT/HDF4/include - -cp /usr/bin/hdf* $JARVIS_ROOT/HDF4/bin -cp /usr/lib64/hdf/* $JARVIS_ROOT/HDF4/lib -cp /usr/include/hdf/* $JARVIS_ROOT/HDF4/include - -export HDFPATH=$JARVIS_ROOT/HDF4 - -yum install -y libtirpc - -tar xzf $JARVIS_DOWNLOAD/arps5.3.4.tar.gz -#cd arps5.3.4 - -[ENV] -export HDFPATH=$JARVIS_ROOT/HDF4 - -[APP] -app_name = ARPS -build_dir = $JARVIS_ROOT/arps5.3.4 -binary_dir = -case_dir = - -[BUILD] -cd $JARVIS_ROOT/arps5.3.4 -sed -i '259s/ifort/mpifort/g' makearps -sed -i '3254s/-ffree-form/-ffree-form -Wno-argument-mismatch/g' makearps -sed -i 's/-fp-model source//g' makearps -sed -i 's/-C -P -traditional/-P -traditional/g' makearps -sed -i 's/-ljpeg/-ljpeg -ltirpc/g' makearps -sed -i 's/DIRECTORY/FILE/g' src/arps/lnxlib3d.F -which mpifort -./makearps -io hdf arps -./makearps -io hdf arps_mpi - -[CLEAN] -make clean - -[RUN] -run = -binary = -nodes = 1 +[SERVER] +11.11.11.11 + +[DOWNLOAD] +ARPS/5.3.4 https://arps.caps.ou.edu/ARPS/download/code/arps5.3.4.tar.gz + +[DEPENDENCY] +set -e +yum install -y tcsh libtirpc-devel libjpeg-turbo-devel +export LIBJPEG_PATH=/usr +module purge +module use ./software/modulefiles +./jarvis -install kgcc/10.3.1 com +module load kgcc/10.3.1 +./jarvis -install hmpi/2.4.2 gcc +module load hmpi/2.4.2 +./jarvis -install hdf4/4.2.15 gcc+mpi + +tar -zxvf ${JARVIS_DOWNLOAD}/arps5.3.4.tar.gz -C ${JARVIS_TMP_DOWNLOAD} +mkdir -p ${JARVIS_ROOT}/software/app/arps + +[ENV] +export LIBJPEG_PATH=/usr +module purge +module use ./software/modulefiles +module load kgcc/10.3.1 +module load hmpi/2.4.2 +export HDFPATH=${JARVIS_LIBS}/kgcc10.3.1/hmpi2.4.2/hdf4/4.2.15 + +[APP] +app_name = ARPS +build_dir = ${JARVIS_TMP_DOWNLOAD}/arps5.3.4 +binary_dir = ${JARVIS_ROOT}/software/app/arps/bin +case_dir = ${JARVIS_TMP_DOWNLOAD}/arps5.3.4/sounding + +[BUILD] +sed -i '259s/ifort/mpifort/g' makearps +sed -i 's/-fp-model source/-fallow-argument-mismatch/g' makearps +sed -i 's/-convert big_endian/-fconvert=big-endian/g' makearps +sed -i 's/-module /-J/g' makearps +sed -i 's/-ljpeg/-ljpeg -ltirpc/g' makearps +sed -i 's/-DINQUIREDIR//g' makearps +sed -i 's/-c module_precision.f90/-cpp -c module_precision.f90/g' src/arps/Makefile +sed -i 's/-c module_mp_wsm6.f90/-cpp -c module_mp_wsm6.f90/g' src/arps/Makefile +sed -i 's/-c lnxlib3d.f90/-cpp -c lnxlib3d.f90/g' src/arps/Makefile + +./makearps -io hdf arps +./makearps -io hdf arps_mpi + +cp -ar ./bin ./lib ./modules ${JARVIS_ROOT}/software/app/arps + +# nproc_x、nproc_y 乘积应与-np数相等 +sed -i '211s/nproc_x = 1/nproc_x = 2/g' ./input/arps.input +sed -i '212s/nproc_y = 1/nproc_y = 4/g' ./input/arps.input + +[CLEAN] +./makearps clean + +[RUN] +run = mpirun --allow-run-as-root -mca pml ucx -mca btl ^vader,tcp,openib,uct -x UCX_TLS=self,sm --bind-to core --map-by socket --rank-by core -x UCX_BUILTIN_ALLREDUCE_ALGORITHM=8 -np $(nproc) +binary = arps_mpi ../input/arps.input arps.output +nodes = 1 diff --git a/templates/ARPS/5.3.4/data.arps.arm.cpu.sve.config b/templates/ARPS/5.3.4/data.arps.arm.cpu.sve.config old mode 100755 new mode 100644 index 88640ba..822c79d --- a/templates/ARPS/5.3.4/data.arps.arm.cpu.sve.config +++ b/templates/ARPS/5.3.4/data.arps.arm.cpu.sve.config @@ -5,57 +5,59 @@ ARPS/5.3.4 https://arps.caps.ou.edu/ARPS/download/code/arps5.3.4.tar.gz [DEPENDENCY] -set -x set -e +yum install -y tcsh libtirpc-devel libjpeg-turbo-devel +export LIBJPEG_PATH=/usr module purge -source ./HPCKit.env -export CC=`which mpicc` -export CXX=`which mpicxx` -export FC=`which mpifort` +module use ./software/modulefiles +./jarvis -install bisheng/4.1.0 com +module load bisheng/4.1.0 +./jarvis -install hmpi/2.4.2 bisheng +module load hmpi/2.4.2 +./jarvis -install hdf4/4.2.15/bisheng bisheng+mpi -yum install hdf-devel.aarch64 -y -mkdir -p $JARVIS_ROOT/HDF4/bin -mkdir -p $JARVIS_ROOT/HDF4/lib -mkdir -p $JARVIS_ROOT/HDF4/include - -cp /usr/bin/hdf* $JARVIS_ROOT/HDF4/bin -cp /usr/lib64/hdf/* $JARVIS_ROOT/HDF4/lib -cp /usr/include/hdf/* $JARVIS_ROOT/HDF4/include - -export HDFPATH=$JARVIS_ROOT/HDF4 - -yum install -y libtirpc - -tar xzf $JARVIS_DOWNLOAD/arps5.3.4.tar.gz -#cd arps5.3.4 +tar -zxvf ${JARVIS_DOWNLOAD}/arps5.3.4.tar.gz -C ${JARVIS_TMP_DOWNLOAD} +mkdir -p ${JARVIS_ROOT}/software/app/arps [ENV] -export HDFPATH=$JARVIS_ROOT/HDF4 +export LIBJPEG_PATH=/usr +module purge +module use ./software/modulefiles +module load bisheng/4.1.0 +module load hmpi/2.4.2 +export HDFPATH=${JARVIS_LIBS}/bisheng4.1.0/hmpi2.4.2/hdf4-bisheng/4.2.15 [APP] app_name = ARPS -build_dir = $JARVIS_ROOT/arps5.3.4 -binary_dir = -case_dir = +build_dir = ${JARVIS_TMP_DOWNLOAD}/arps5.3.4 +binary_dir = ${JARVIS_ROOT}/software/app/arps/bin +case_dir = ${JARVIS_TMP_DOWNLOAD}/arps5.3.4/sounding [BUILD] -cd $JARVIS_ROOT/arps5.3.4 sed -i '259s/ifort/mpifort/g' makearps -sed -i '3254s%-ffree-form%-ffree-form%g' makearps -sed -i 's%-w -convert big_endian%-w -convert big_endian -mtune=native -mcpu=linxicore9100 -mllvm -force-customized-pipeline=true %g' makearps -sed -i 's%FFLAGS=%FFLAGS= -mtune=native -mcpu=linxicore9100 -mllvm -force-customized-pipeline=true %g' makearps -sed -i 's/-fp-model source//g' makearps -sed -i 's/-C -P -traditional/-P -traditional/g' makearps +sed -i 's/-DINQUIREDIR//g' makearps sed -i 's/-ljpeg/-ljpeg -ltirpc/g' makearps -sed -i 's/DIRECTORY/FILE/g' src/arps/lnxlib3d.F -which mpifort +sed -i 's/-fp-model source/-mtune=native -mcpu=hip09 -mllvm -force-customized-pipeline=true/g' makearps +sed -i 's/-c module_precision.f90/-cpp -c module_precision.f90/g' src/arps/Makefile +sed -i 's/-c module_mp_wsm6.f90/-cpp -c module_mp_wsm6.f90/g' src/arps/Makefile +sed -i 's/-c lnxlib3d.f90/-cpp -c lnxlib3d.f90/g' src/arps/Makefile + ./makearps -io hdf arps ./makearps -io hdf arps_mpi +#查看是否使能SVE特性 +#objdump -d bin/arps_mpi | grep 'z0' + +cp -ar ./bin ./lib ./modules ${JARVIS_ROOT}/software/app/arps + +# nproc_x、nproc_y 乘积应与-np数相等 +sed -i '211s/nproc_x = 1/nproc_x = 2/g' ./input/arps.input +sed -i '212s/nproc_y = 1/nproc_y = 4/g' ./input/arps.input [CLEAN] -make clean +./makearps clean [RUN] -run = -binary = +# need CPU 7270Z and higher +run = mpirun --allow-run-as-root -mca pml ucx -mca btl ^vader,tcp,openib,uct -x UCX_TLS=self,sm --bind-to core --map-by socket --rank-by core -x UCX_BUILTIN_ALLREDUCE_ALGORITHM=8 -np $(nproc) +binary = arps_mpi ../input/arps.input arps.output nodes = 1 -- Gitee