From f571668a1381ce13167771f7e52bf85683681ae9 Mon Sep 17 00:00:00 2001 From: Qiyu8 Date: Sun, 7 Aug 2022 12:05:37 +0800 Subject: [PATCH 1/4] add grapes config --- .../3.0.2/grapes.arm.cpu.bisheng.hmpi.config | 44 +++++++++++++++++++ .../3.0.2/grapes.arm.cpu.kgcc.hmpi.config | 44 +++++++++++++++++++ 2 files changed, 88 insertions(+) create mode 100644 templates/grapes/3.0.2/grapes.arm.cpu.bisheng.hmpi.config create mode 100644 templates/grapes/3.0.2/grapes.arm.cpu.kgcc.hmpi.config diff --git a/templates/grapes/3.0.2/grapes.arm.cpu.bisheng.hmpi.config b/templates/grapes/3.0.2/grapes.arm.cpu.bisheng.hmpi.config new file mode 100644 index 0000000..b3f7ae4 --- /dev/null +++ b/templates/grapes/3.0.2/grapes.arm.cpu.bisheng.hmpi.config @@ -0,0 +1,44 @@ +[SERVER] +11.11.11.11 + +[DEPENDENCY] +module purge +module use ./software/modulefiles +./jarvis -install bisheng/2.1.0 +module load bisheng2/2.1.0 +./jarvis -install hmpi/1.1.1 +module load hmpi1/1.1.1 +export CC=mpicc CXX=mpicxx FC=mpifort F77=mpifort +./jarvis -install hdf5/1.10.1 clang+mpi +./jarvis -install pnetcdf/1.11.2 clang+mpi +./jarvis -install netcdf/4.7.0 clang+mpi +tar -zxvf $JARVIS_DOWNLOAD/trams_v3.02.tar.gz + +[ENV] +module purge +module use ./software/modulefiles +module load bisheng2/2.1.0 +module load hmpi1/1.1.1 +module load netcdf/4.7.0 +export NETCDF=$JARVIS_ROOT/software/libs/bisheng2/hmpi1/netcdf/4.7.0 + +[APP] +app_name = Grapes +build_dir = $JARVIS_ROOT/trams_v3.02 +binary_dir = $JARVIS_ROOT/trams_v3.02/run +case_dir = $JARVIS_ROOT/trams_v3.02/run + +[BUILD] +./clean -a +sed -i "30c\FCBASEOPTS = -O1 -mcpu=tsv110 ${OPTION} -fveclib=MATHLIB -finline-functions -ftree-vectorize -falign-functions -mllvm -min-prefetch-stride=2 -ffree-form -finit-zero -freciprocal-math -mrecip=vec-div:1 -faarch64-pow-alt-precision -mllvm --aarch64-recip-alt-accuracy -fstack-arrays -mllvm -disable-sincos-opt" configure.grapes +./compile grapes + +[CLEAN] +cd .. +sh run_plevchk.sh trams_v3.02/run/ +cat chk/ab22062500 + +[RUN] +run = mpirun --allow-run-as-root -np 4 --map-by socket --rank-by core -x LD_LIBRARY_PATH -x PATH -x OMP_NUM_THREADS=1 +binary = grapes.exe +nodes = 1 \ No newline at end of file diff --git a/templates/grapes/3.0.2/grapes.arm.cpu.kgcc.hmpi.config b/templates/grapes/3.0.2/grapes.arm.cpu.kgcc.hmpi.config new file mode 100644 index 0000000..d17ef8d --- /dev/null +++ b/templates/grapes/3.0.2/grapes.arm.cpu.kgcc.hmpi.config @@ -0,0 +1,44 @@ +[SERVER] +11.11.11.11 + +[DEPENDENCY] +module purge +module use ./software/modulefiles +./jarvis -install kgcc/9.3.1 +module load kgcc9/9.3.1 +./jarvis -install openmpi/4.1.2 +module load openmpi4/4.1.2 +export CC=mpicc CXX=mpicxx FC=mpifort F77=mpifort +./jarvis -install hdf5/1.10.1 gcc+mpi +./jarvis -install pnetcdf/1.11.2 gcc+mpi +./jarvis -install netcdf/4.7.0 gcc+mpi +tar -zxvf $JARVIS_DOWNLOAD/trams_v3.02.tar.gz + +[ENV] +module purge +module use ./software/modulefiles +module load kgcc9/9.3.1 +module load openmpi4/4.1.2 +module load netcdf/4.7.0 +export NETCDF=$JARVIS_ROOT/software/libs/kgcc9/openmpi4/netcdf/4.7.0 + +[APP] +app_name = Grapes +build_dir = $JARVIS_ROOT/trams_v3.02 +binary_dir = $JARVIS_ROOT/trams_v3.02/run +case_dir = $JARVIS_ROOT/trams_v3.02/run + +[BUILD] +./clean -a +sed -i "30c\FCBASEOPTS = -O1 -ffree-line-length-none -std=legacy" configure.grapes +./compile grapes + +[CLEAN] +cd .. +sh run_plevchk.sh trams_v3.02/run/ +cat chk/ab22062500 + +[RUN] +run = mpirun --allow-run-as-root -np 120 --map-by socket --rank-by core -x LD_LIBRARY_PATH -x PATH -x OMP_NUM_THREADS=1 +binary = grapes.exe +nodes = 1 \ No newline at end of file -- Gitee From cb8d152e1271f7474937e7864f506bbd3f38c5d4 Mon Sep 17 00:00:00 2001 From: Qiyu8 Date: Tue, 9 Aug 2022 15:40:57 +0800 Subject: [PATCH 2/4] add grapes x86 config --- images/wechat-group-qr.png | Bin 68548 -> 75065 bytes .../3.0.2/fortran-uninited-array-analysis.py | 157 ++++++++++++++++++ templates/grapes/3.0.2/grapes.x86.cpu.config | 33 ++++ 3 files changed, 190 insertions(+) create mode 100644 templates/grapes/3.0.2/fortran-uninited-array-analysis.py create mode 100644 templates/grapes/3.0.2/grapes.x86.cpu.config diff --git a/images/wechat-group-qr.png b/images/wechat-group-qr.png index 11a5b83113150f59de05b24744b63a67b55a5449..411aa2bfc8439b18c1557e4a9ccd7ad436c40f75 100644 GIT binary patch literal 75065 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