From e25827d1398413dd3cfc22a6938c441e7bdfa514 Mon Sep 17 00:00:00 2001 From: xx Date: Thu, 14 Dec 2023 10:47:26 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E6=96=B0=E5=A2=9Enemo=E3=80=81code=5Faster?= =?UTF-8?q?=E5=AE=89=E8=A3=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package/blitz/1.0.1/install.sh | 16 +++ package/code_aster/14.6.0/install.sh | 36 ++++++ package/scalapack/2.1.0/clang/install.sh | 10 +- package/xios/1.0/install.sh | 77 ++++++++++++ .../8.10.3/bisheng/data.abinit.arm.gpu.config | 12 +- .../nemo/3.6/bisheng/data.nemo.arm.cpu.config | 113 ++++++++++++++++++ 6 files changed, 254 insertions(+), 10 deletions(-) create mode 100644 package/blitz/1.0.1/install.sh create mode 100644 package/code_aster/14.6.0/install.sh create mode 100644 package/xios/1.0/install.sh create mode 100644 templates/nemo/3.6/bisheng/data.nemo.arm.cpu.config diff --git a/package/blitz/1.0.1/install.sh b/package/blitz/1.0.1/install.sh new file mode 100644 index 0000000..5dcaf05 --- /dev/null +++ b/package/blitz/1.0.1/install.sh @@ -0,0 +1,16 @@ +#!/bin/bash +set -x +set -e +. ${DOWNLOAD_TOOL} -u https://github.com/blitzpp/blitz/archive/refs/tags/1.0.1.tar.gz -f blitz-1.0.1.tar.gz +cd ${JARVIS_TMP} +rm -rf blitz-1.0.1 +tar -xzvf ${JARVIS_DOWNLOAD}/blitz-1.0.1.tar.gz +cd blitz-1.0.1 +autoreconf -fiv +./configure --prefix=$1 --enable-fortran --enable-64bit +sed -i "9s/print/print(/g" blitz/generate/genstencils.py +sed -i "9s/$/)/g" blitz/generate/genstencils.py +make lib +make install +cp -rf ./src $1 + diff --git a/package/code_aster/14.6.0/install.sh b/package/code_aster/14.6.0/install.sh new file mode 100644 index 0000000..85e2130 --- /dev/null +++ b/package/code_aster/14.6.0/install.sh @@ -0,0 +1,36 @@ +#!/bin/bash +set -x +set -e +. ${DOWNLOAD_TOOL} -u https://www.code-aster.org/FICHIERS/aster-full-src-14.6.0-1.noarch.tar.gz +#yum -y install zlib* lapack* blas* python3.aarch64 python3-devel.aarch64 cmake3 boost-python* boost boost-devel numpy* python-numpy flex bison tcl tk +#export CC=gcc CXX=g++ FC=gfortran +cd ${JARVIS_TMP} +rm -rf aster-full-src-14.6.0 +tar -xzvf ${JARVIS_DOWNLOAD}/aster-full-src-14.6.0-1.noarch.tar.gz +cd aster-full-src-14.6.0 + +sed -i "354s/)/,'aarch64')/g" setup.py +sed -i "1537a\ 'aarch64': 'shell|script|aarch64', " as_setup.py + +GCC_PATH=`which gcc` +GCC_PATH=${GCC_PATH%/*/*} + +sed -i '94i\CC='\'''${GCC_PATH}'/bin/gcc'\''\ +CXX='\'''${GCC_PATH}'/bin/g++'\''\ +F90='\'''${GCC_PATH}'/bin/gfortran'\''\ +LD=F90\ +CXXFLAGS="-std=c++11"\ +CXXLIB='\''-L'${GCC_PATH}'/lib64 -lstdc++'\''' setup.cfg + +sed -i "187s/unset LD ; export LDFLAGS='{0}' ; //g" products.py + +cd SRC/ +tar xvf aster-14.6.0.tgz +sed -i "103s/:/ or self.env.DEST_CPU == 'aarch64':/g" aster-14.6.0/bibfor/wscript +sed -i '224i\ curr_idmess = idmess.split("\\0")\ + x = curr_idmess[0].split("_")' ./aster-14.6.0/bibpyt/Utilitai/Utmess.py +sed -i '226d' ./aster-14.6.0/bibpyt/Utilitai/Utmess.py +tar cvzf aster-14.6.0.tgz aster-14.6.0 +rm -rf aster-14.6.0 +cd .. +echo y | python3 setup.py --prefix=$1 diff --git a/package/scalapack/2.1.0/clang/install.sh b/package/scalapack/2.1.0/clang/install.sh index 74c11da..f135520 100755 --- a/package/scalapack/2.1.0/clang/install.sh +++ b/package/scalapack/2.1.0/clang/install.sh @@ -6,15 +6,15 @@ cd ${JARVIS_TMP} tar -xvf ${JARVIS_DOWNLOAD}/scalapack-2.1.0.tgz cd scalapack-2.1.0 cp SLmake.inc.example SLmake.inc -if ! [ -z ${LAPACK_PATH} ]; then - echo "${LAPACK_PATH} was defined" +if ! [ -z ${LAPACK_BISHENG_PATH} ]; then + echo "LAPACK_BISHENG_PATH was defined" else - echo "Need to set environment var $LAPACK_PATH" && exit 1; + echo "Need to set environment var LAPACK_BISHENG_PATH" && exit 1; fi sed -i "58s/-lblas//g" ./SLmake.inc sed -i "59s/-llapack//g" ./SLmake.inc -sed -i "58s%$%${LAPACK_PATH}/librefblas.a%g" ./SLmake.inc -sed -i "59s%$%${LAPACK_PATH}/liblapack.a%g" ./SLmake.inc +sed -i "58s%$%${LAPACK_BISHENG_PATH}/lib/librefblas.a%g" ./SLmake.inc +sed -i "59s%$%${LAPACK_BISHENG_PATH}/lib/liblapack.a%g" ./SLmake.inc sed -i '17a $(LIBS) += -fuse-ld=lld' REDIST/TESTING/Makefile make mkdir -p $1/lib diff --git a/package/xios/1.0/install.sh b/package/xios/1.0/install.sh new file mode 100644 index 0000000..958454c --- /dev/null +++ b/package/xios/1.0/install.sh @@ -0,0 +1,77 @@ +#!/bin/bash +set -x +set -e +#yum install -y perl-lib* boost-* +svn co -r 703 https://forge.ipsl.jussieu.fr/ioserver/svn/XIOS1/branches/xios-1.0/ $1 +cd $1 + +export HDF5=`which h5diff` +export HDF5=${HDF5%/*/*} +export NETCDF=`nc-config --prefix` +export PNETCDF=`pnetcdf-config --prefix` +export BLITZ=$BLITZ_PATH +export MPI=`which mpirun` +export MPI=${MPI%/*/*} + +sed -i "27s/^/#/g;33s/^/#/g" bld.cfg + +cat << EOF > arch/arch-AARCH64_GNU_LINUX.env +export HDF5_INC_DIR="${HDF5}/include" +export HDF5_LIB_DIR="${HDF5}/lib" +export NETCDF_INC_DIR="${NETCDF}/include" +export NETCDF_LIB_DIR="${NETCDF}/lib" +export BOOST_INC_DIR="/usr/include/boost/" +export BOOST_LIB_DIR="/usr/lib64/" +export BLITZ_INC_DIR="${BLITZ}/include" +export BLITZ_LIB_DIR="${BLITZ}/lib" +EOF + +cat << EOF > arch/arch-AARCH64_GNU_LINUX.fcm +################################################################################ +################### Projet xios - xmlioserver ##################### +################################################################################ +%CCOMPILER mpicc +%FCOMPILER mpif90 +%LINKER mpif90 +%BASE_CFLAGS -ansi -w -D_GLIBCXX_USE_CXX11_ABI=0 +%PROD_CFLAGS -O3 -DBOOST_DISABLE_ASSERTS +%DEV_CFLAGS -g -O2 +%DEBUG_CFLAGS -g +%BASE_FFLAGS -D__NONE__ +%PROD_FFLAGS -O3 +%DEV_FFLAGS -g -O2 +%DEBUG_FFLAGS -g +%BASE_INC -D__NONE__ +%BASE_LD -lstdc++ +%CPP cpp +%FPP cpp -P +%MAKE gmake +EOF + + +cat << EOF > arch/arch-AARCH64_GNU_LINUX.path +NETCDF_INCDIR="-I ${NETCDF}/include" +NETCDF_LIBDIR="-L ${NETCDF}/lib" +NETCDF_LIB="-lnetcdff -lnetcdf" +MPI_INCDIR="-I ${MPI}/include" +MPI_LIBDIR="-L ${MPI}/lib" +MPI_LIB="-lmpi" +HDF5_INCDIR="-I ${HDF5}/include" +HDF5_LIBDIR="-L ${HDF5}/lib" +HDF5_LIB="-lhdf5_hl -lhdf5 -lz" +BOOST_INCDIR="-I /usr/include/boost/" +BOOST_LIBDIR="-L /usr/lib64/" +BOOST_LIB="" +BLITZ_INCDIR="-I ${BLITZ}/include" +BLITZ_LIBDIR="-L ${BLITZ}/lib" +BLITZ_LIB="-lblitz" +EOF + + +chmod +x ./make_xios +cd extern +ln -s ${BLITZ} ./blitz +ln -s ${NETCDF} ./netcdf4 +ln -s /usr/include/boost ./boost +cd .. +./make_xios --dev --job 32 --full --arch AARCH64_GNU_LINUX diff --git a/templates/abinit/8.10.3/bisheng/data.abinit.arm.gpu.config b/templates/abinit/8.10.3/bisheng/data.abinit.arm.gpu.config index e629771..30640b1 100644 --- a/templates/abinit/8.10.3/bisheng/data.abinit.arm.gpu.config +++ b/templates/abinit/8.10.3/bisheng/data.abinit.arm.gpu.config @@ -15,13 +15,15 @@ module purge ./jarvis -install bisheng/2.1.0 com module load bisheng/2.1.0 export CC=clang CXX=clang++ FC=flang +./jarvis -install package/openblas/0.3.18 clang ./jarvis -install hmpi/1.1.1 clang module load hmpi/1.1.1 export CC=mpicc CXX=mpicxx FC=mpifort -./jarvis -install package/hdf5/1.10.1 clang+mpi +./jarvis -install package/hdf5/1.10.1/clang clang+mpi ./jarvis -install package/pnetcdf/1.11.2 clang+mpi -./jarvis -install package/netcdf/4.7.0 clang+mpi -./jarvis -install package/openblas/0.3.18 clang +module load hdf5-clang/1.10.1 +module load pnetcdf/1.11.2 +./jarvis -install package/netcdf/4.7.0/clang clang+mpi [ENV] @@ -30,9 +32,9 @@ module purge #module load kgcc/9.3.1 module load bisheng/2.1.0 module load hmpi/1.1.1 -module load hdf5/1.10.1 +module load hdf5-clang/1.10.1 module load pnetcdf/1.11.2 -module load netcdf/4.7.0 +module load netcdf-clang/4.7.0 module load openblas/0.3.18 export CC=mpicc CXX=mpicxx FC=mpifort diff --git a/templates/nemo/3.6/bisheng/data.nemo.arm.cpu.config b/templates/nemo/3.6/bisheng/data.nemo.arm.cpu.config new file mode 100644 index 0000000..3ce7a63 --- /dev/null +++ b/templates/nemo/3.6/bisheng/data.nemo.arm.cpu.config @@ -0,0 +1,113 @@ +[SERVER] +11.11.11.11 + +[DOWNLOAD] +#nemo/3.6 https://forge.nemo-ocean.eu/nemo/nemo/-/archive/4.2.0/nemo-4.2.0.tar.gz +nemo/3.6 http://forge.ipsl.jussieu.fr/nemo/changeset/15814/NEMO/releases/release-3.6?old_path=%2F&format=zip NEMO_releases_release-3.6-15813.zip + +[DEPENDENCY] +module use ./software/modulefiles +module purge +./jarvis -install package/bisheng/2.5.0 com +module load bisheng/2.5.0 +export CC=clang CXX=clang++ FC=flang +./jarvis -install package/package/hdf5/1.10.1/clang clang +./jarvis -install package/hmpi/1.2.0 clang +./jarvis -install package/blitz/1.0.1 clang +module load hmpi/1.2.0 +export CC=mpicc CXX=mpicxx FC=mpifort +module load blitz/1.0.1 +./jarvis -install package/pnetcdf/1.12.1 clang+mpi +module load hdf5-clang/1.10.1 +module load pnetcdf/1.12.1 +./jarvis -install package/netcdf/4.7.4/clang clang+mpi +module load netcdf-clang/4.7.4 +./jarvis -install package/xios/1.0 clang+mpi + + +[ENV] +module use ./software/modulefiles +module purge +module load bisheng/2.5.0 +module load hmpi/1.2.0 +module load pnetcdf/1.12.1 hdf5-clang/1.10.1 netcdf-clang/4.7.4 blitz/1.0.1 xios/1.0 +export CC=mpicc CXX=mpicxx FC=mpifort + +[APP] +app_name = nemo +build_dir = $JARVIS_ROOT +binary_dir = $JARVIS_ROOT/software/apps/bisheng2.5.0/hmpi1.2.0/nemo +case_dir = $JARVIS_ROOT/software/apps/bisheng2.5.0/hmpi1.2.0/nemo + +[BUILD] +set -x + +cd ${JARVIS_TMP} +rm -rf NEMO +unzip $JARVIS_DOWNLOAD/NEMO_releases_release-3.6-15813.zip +cd NEMO/releases/release-3.6/NEMOGCM +export NETCDF=`nc-config --prefix` +export HDF5=`which h5diff` +export HDF5=${HDF5%/*/*} +export XIOS=$XIOS_PATH + +echo "export NETCDF_DIR=${NETCDF}" >> nemo-env.sh +echo "export HDF_DIR=${HDF5}" >> nemo-env.sh +echo "export XIOS_DIR=${XIOS}" >> nemo-env.sh +source nemo-env.sh + +cat << \EOF > ARCH/arch-aarch64_gnu.fcm +#generic gfortran compiler options for linux +#NCDF_INC netcdf include file +#NCDF_LIB netcdf library +#FC Fortran compiler command +#FCFLAGS Fortran compiler flags +#FFLAGS Fortran 77 compiler flags +#LD linker +#LDFLAGS linker flags, e.g. -L if you have libraries in a +#FPPFLAGS pre-processing flags +#AR assembler +#ARFLAGS assembler flags +#MK make +#USER_INC additional include files for the compiler, e.g. -I +#USER_LIB additional libraries to pass to the linker, e.g. -l +#CC C compiler used to compile conv for AGRIF +#CFLAGS compiler flags used with CC +# +#Note that: +# - unix variables "$..." are accpeted and will be evaluated before calling fcm. +# - fcm variables are starting with a % (and not a $) +%NCDF_HOME $NETCDF_DIR +%HDF5_HOME $HDF_DIR +%XIOS_HOME $XIOS_DIR +%NCDF_INC -I%NCDF_HOME/include -I%HDF5_HOME/include +%NCDF_LIB -L%HDF5_HOME/lib -L/%NCDF_HOME/lib -lnetcdf -lnetcdff +%XIOS_INC -I%XIOS_HOME/inc +%XIOS_LIB -L%XIOS_HOME/lib -lxios +%CPP cpp +%FC mpifort +%FCFLAGS -cpp -r8 -O3 -mcpu=native +%FFLAGS %FCFLAGS +%LD mpif90 +%LDFLAGS -lstdc++ +%FPPFLAGS -P -C -traditional +%AR ar +%ARFLAGS rs +%MK gmake +%USER_INC %XIOS_INC %NCDF_INC +%USER_LIB %XIOS_LIB %NCDF_LIB +%CC clang +%CFLAGS -O0 +EOF + +chmod 777 ./ -R +cd ./CONFIG/ +./makenemo -m aarch64_gnu -j 32 -r AMM12 -n 'MY_AMM12' add_key "key_nosignedzero" + +[CLEAN] +./clean_build + +[RUN] +run = +binary = +nodes = 1 -- Gitee From 18df9859a49692f03011aa1df46eaba592096959 Mon Sep 17 00:00:00 2001 From: wanghanwen <1564586847@qq.com> Date: Thu, 14 Dec 2023 15:22:39 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E6=96=B0=E5=A2=9Enemo=E3=80=81code=5Faster?= =?UTF-8?q?=E5=AE=89=E8=A3=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- templates/nemo/3.6/bisheng/data.nemo.arm.cpu.config | 2 ++ 1 file changed, 2 insertions(+) diff --git a/templates/nemo/3.6/bisheng/data.nemo.arm.cpu.config b/templates/nemo/3.6/bisheng/data.nemo.arm.cpu.config index 3ce7a63..42e71d0 100644 --- a/templates/nemo/3.6/bisheng/data.nemo.arm.cpu.config +++ b/templates/nemo/3.6/bisheng/data.nemo.arm.cpu.config @@ -25,6 +25,8 @@ module load netcdf-clang/4.7.4 ./jarvis -install package/xios/1.0 clang+mpi + + [ENV] module use ./software/modulefiles module purge -- Gitee