diff --git a/images/wechat-group-qr.png b/images/wechat-group-qr.png index 2e4521d9d2535db91f7b67b2707c7db372819201..793d0e1da32e17149d1844bd67b777f5cc770590 100644 Binary files a/images/wechat-group-qr.png and b/images/wechat-group-qr.png differ diff --git a/package/bisheng/2.3.0/install.sh b/package/bisheng/2.3.0/install.sh new file mode 100644 index 0000000000000000000000000000000000000000..5445d1d211f3b04021cf98c1c0acef4e8b9ad4a2 --- /dev/null +++ b/package/bisheng/2.3.0/install.sh @@ -0,0 +1,11 @@ +#!/bin/bash +set -e +bisheng_version='2.3.0' +arch='x86' +if [ x$(arch) = xaarch64 ];then + arch='aarch64' +fi +. ${DOWNLOAD_TOOL} -u https://mirrors.huaweicloud.com/kunpeng/archive/compiler/bisheng_compiler/bisheng-compiler-${bisheng_version}-${arch}-linux.tar.gz +cd ${JARVIS_TMP} +yum -y install libatomic libstdc++ libstdc++-devel +tar xzvf ${JARVIS_DOWNLOAD}/bisheng-compiler-${bisheng_version}-${arch}-linux.tar.gz -C $1 --strip-components=1 diff --git a/package/fftw/3.3.8/install.sh b/package/fftw/3.3.8/install.sh index 54748a20c1a7f512f1a563c1fb72e5e06e87589b..e984238a045217640a745d7e30e374c04c092d6c 100644 --- a/package/fftw/3.3.8/install.sh +++ b/package/fftw/3.3.8/install.sh @@ -5,5 +5,5 @@ set -e cd ${JARVIS_TMP} tar -xvf ${JARVIS_DOWNLOAD}/fftw-3.3.8.tar.gz cd fftw-3.3.8 -./configure --prefix=$1 --enable-shared --enable-threads --enable-openmp --enable-mpi #--enable-float --enable-fma --enable-neon +./configure --prefix=$1 --enable-shared --enable-threads --enable-openmp --enable-mpi CC=mpicc #--enable-float --enable-fma --enable-neon make -j install diff --git a/package/hmpi/1.2.0/install.sh b/package/hmpi/1.2.0/install.sh new file mode 100644 index 0000000000000000000000000000000000000000..ec90065e17e99a1b5810ee661c6cfb12142159c6 --- /dev/null +++ b/package/hmpi/1.2.0/install.sh @@ -0,0 +1,28 @@ +#!/bin/bash +set -x +set -e +hmpi_version='1.2.0' +. ${DOWNLOAD_TOOL} -u https://github.com/kunpengcompute/hucx/archive/refs/tags/v${hmpi_version}-huawei.zip -f hucx-${hmpi_version}-huawei.zip +. ${DOWNLOAD_TOOL} -u https://github.com/kunpengcompute/xucg/archive/refs/tags/v${hmpi_version}-huawei.zip -f xucg-${hmpi_version}-huawei.zip +. ${DOWNLOAD_TOOL} -u https://github.com/kunpengcompute/hmpi/archive/refs/tags/v${hmpi_version}-huawei.zip -f hmpi-${hmpi_version}-huawei.zip +cd ${JARVIS_TMP} +yum install -y perl-Data-Dumper autoconf automake libtool binutils flex +rm -rf hmpi-${hmpi_version}-huawei hucx-${hmpi_version}-huawei xucg-${hmpi_version}-huawei +unzip ${JARVIS_DOWNLOAD}/hucx-${hmpi_version}-huawei.zip +unzip ${JARVIS_DOWNLOAD}/xucg-${hmpi_version}-huawei.zip +unzip ${JARVIS_DOWNLOAD}/hmpi-${hmpi_version}-huawei.zip +\cp -rf xucg-${hmpi_version}-huawei/* hucx-${hmpi_version}-huawei/src/ucg/ +sleep 3 +cd hucx-${hmpi_version}-huawei +./autogen.sh +./contrib/configure-opt --prefix=$1/hucx CFLAGS="-DHAVE___CLEAR_CACHE=1" --disable-numa --without-java +for file in `find . -name Makefile`;do sed -i "s/-Werror//g" $file;done +for file in `find . -name Makefile`;do sed -i "s/-implicit-function-declaration//g" $file;done +make -j64 +make install +cd ../hmpi-${hmpi_version}-huawei +./autogen.pl +./configure --prefix=$1 --with-platform=contrib/platform/mellanox/optimized --enable-mpi1-compatibility --with-ucx=$1/hucx +make -j64 +make install + diff --git a/package/kml/1.6.0/bisheng/install.sh b/package/kml/1.6.0/bisheng/install.sh new file mode 100644 index 0000000000000000000000000000000000000000..523f1a3d3e0e5c11151664d70906a2a2b43781c8 --- /dev/null +++ b/package/kml/1.6.0/bisheng/install.sh @@ -0,0 +1,58 @@ +#!/bin/bash +set -x +set -e +kml_version=1.6.0 +. ${DOWNLOAD_TOOL} -u https://kunpeng-repo.obs.cn-north-4.myhuaweicloud.com/Kunpeng%20BoostKit/Kunpeng%20BoostKit%2022.0.RC3/BoostKit-kml_${kml_version}_bisheng.zip +. ${DOWNLOAD_TOOL} -u https://github.com/Reference-LAPACK/lapack/archive/refs/tags/v3.9.1.tar.gz -f lapack-3.9.1.tar.gz +cd ${JARVIS_TMP} +if [ -d /usr/local/kml ];then + rpm -e boostkit-kml +fi +unzip -o ${JARVIS_DOWNLOAD}/BoostKit-kml_${kml_version}_bisheng.zip +rpm --force --nodeps -ivh boostkit-kml-${kml_version}-1.aarch64.rpm +# generate full lapack +netlib=${JARVIS_DOWNLOAD}/lapack-3.9.1.tar.gz +klapack=/usr/local/kml/lib/libklapack.a +kservice=/usr/local/kml/lib/libkservice.a +echo $netlib +echo $klapack + +# build netlib lapack +rm -rf netlib +mkdir netlib +cd netlib +tar zxvf $netlib +mkdir build +cd build +cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_POSITION_INDEPENDENT_CODE=ON ../lapack-3.9.1 +make -j +cd ../.. + +cp netlib/build/lib/liblapack.a liblapack_adapt.a + +# get symbols defined both in klapack and netlib lapack +nm -g liblapack_adapt.a | grep 'T ' | grep -oP '\K\w+(?=_$)' | sort | uniq > netlib.sym +nm -g $klapack | grep 'T ' | grep -oP '\K\w+(?=_$)' | sort | uniq > klapack.sym +comm -12 klapack.sym netlib.sym > comm.sym + +objcopy -W dsecnd_ -W second_ liblapack_adapt.a + +# add _netlib_ postfix to symbols in liblapack_adapt.a (e.g. dgetrf_netlib_) +while read sym; do \ + if ! nm liblapack_adapt.a | grep -qe " T ${sym}_\$"; then \ + continue; \ + fi; \ + ar x liblapack_adapt.a $sym.f.o; \ + mv $sym.f.o ${sym}_netlib.f.o; \ + objcopy --redefine-sym ${sym}_=${sym}_netlib_ ${sym}_netlib.f.o; \ + ar d liblapack_adapt.a ${sym}.f.o; \ + ar ru liblapack_adapt.a ${sym}_netlib.f.o; \ + rm ${sym}_netlib.f.o; \ +done < comm.sym + +# (optional) build a full lapack shared library +clang -o libklapack_full.so -shared -fPIC -Wl,--whole-archive $klapack liblapack_adapt.a $kservice -Wl,--no-whole-archive -fopenmp -lpthread -lgfortran -lm + +\cp libklapack_full.so /usr/local/kml/lib/ +echo "Generated liblapack_adapt.a and libklapack_full.so" +exit 0 diff --git a/package/kml/1.6.0/gcc/install.sh b/package/kml/1.6.0/gcc/install.sh new file mode 100644 index 0000000000000000000000000000000000000000..4b01ba7566b22802a04ce9e3fae66de95d4335b7 --- /dev/null +++ b/package/kml/1.6.0/gcc/install.sh @@ -0,0 +1,59 @@ +#!/bin/bash +set -x +set -e +kml_version=1.6.0 +. ${DOWNLOAD_TOOL} -u https://kunpeng-repo.obs.cn-north-4.myhuaweicloud.com/Kunpeng%20BoostKit/Kunpeng%20BoostKit%2022.0.RC3/BoostKit-kml_${kml_version}.zip +. ${DOWNLOAD_TOOL} -u https://github.com/Reference-LAPACK/lapack/archive/refs/tags/v3.9.1.tar.gz -f lapack-3.9.1.tar.gz +cd ${JARVIS_TMP} +if [ -d /usr/local/kml ];then + rpm -e boostkit-kml +fi +unzip -o ${JARVIS_DOWNLOAD}/BoostKit-kml_${kml_version}.zip +rpm --force --nodeps -ivh boostkit-kml-${kml_version}-1.aarch64.rpm + +# generate full lapack +netlib=${JARVIS_DOWNLOAD}/lapack-3.9.1.tar.gz +klapack=/usr/local/kml/lib/libklapack.a +kservice=/usr/local/kml/lib/libkservice.a +echo $netlib +echo $klapack + +# build netlib lapack +rm -rf netlib +mkdir netlib +cd netlib +tar zxvf $netlib +mkdir build +cd build +cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_POSITION_INDEPENDENT_CODE=ON ../lapack-3.9.1 +make -j +cd ../.. + +cp netlib/build/lib/liblapack.a liblapack_adapt.a + +# get symbols defined both in klapack and netlib lapack +nm -g liblapack_adapt.a | grep 'T ' | grep -oP '\K\w+(?=_$)' | sort | uniq > netlib.sym +nm -g $klapack | grep 'T ' | grep -oP '\K\w+(?=_$)' | sort | uniq > klapack.sym +comm -12 klapack.sym netlib.sym > comm.sym + +objcopy -W dsecnd_ -W second_ liblapack_adapt.a + +# add _netlib_ postfix to symbols in liblapack_adapt.a (e.g. dgetrf_netlib_) +while read sym; do \ + if ! nm liblapack_adapt.a | grep -qe " T ${sym}_\$"; then \ + continue; \ + fi; \ + ar x liblapack_adapt.a $sym.f.o; \ + mv $sym.f.o ${sym}_netlib.f.o; \ + objcopy --redefine-sym ${sym}_=${sym}_netlib_ ${sym}_netlib.f.o; \ + ar d liblapack_adapt.a ${sym}.f.o; \ + ar ru liblapack_adapt.a ${sym}_netlib.f.o; \ + rm ${sym}_netlib.f.o; \ +done < comm.sym + +# (optional) build a full lapack shared library +gcc -o libklapack_full.so -shared -fPIC -Wl,--whole-archive $klapack liblapack_adapt.a $kservice -Wl,--no-whole-archive -fopenmp -lpthread -lgfortran -lm + +\cp libklapack_full.so /usr/local/kml/lib/ +echo "Generated liblapack_adapt.a and libklapack_full.so" +exit 0 diff --git a/templates/agcm/4.0/agcm.arm.cpu.config b/templates/agcm/4.0/agcm.arm.cpu.config new file mode 100644 index 0000000000000000000000000000000000000000..e2eea601c02b566a84e99b8a15e9e8cc2fb10567 --- /dev/null +++ b/templates/agcm/4.0/agcm.arm.cpu.config @@ -0,0 +1,54 @@ +[SERVER] +11.11.11.11 + +[DOWNLOAD] +bcc-agcm/4.0 http://forecast.bcccsm.ncc-cma.net/web/?down_id=350 agcm.tar.gz + +[DEPENDENCY] +set -x +set -e +./jarvis -install bisheng/2.1.0 com +module purge +module use ./software/modulefiles +module load bisheng2/2.1.0 +export CC=`which clang` +export CXX=`which clang++` +export FC=`which flang` +./jarvis -install hmpi/1.1.1 bisheng +module load hmpi1/1.1.1 +./jarvis -bench mpi +./jarvis -install fftw/3.3.8 bisheng +./jarvis -bench mpi +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 -xzvf ${JARVIS_DOWNLOAD}/agcm.tar.gz + +[ENV] +source /etc/profile +module purge +module use /workspace/public/software/modules/ +module load compilers/bisheng/2.1.0/bisheng2.1.0 mpi/hmpi/1.1.1/bisheng2.1.0 libs/pnetcdf/1.12.1/bisheng2.1.0_hmpi1.1.1 libs/netcdf/netcdf_c_4.7.4_fortran_4.5.3/bisheng2.1.0_hmpi1.1.1 libs/fftw/3.3.8/bisheng2.1.0-hmpi1.1.1 +export USER_CC=mpicc +export USER_FC=mpifort + +[APP] +app_name = AGCM +build_dir = $JARVIS_ROOT/agcm/test/ +binary_dir = +case_dir = $JARVIS_ROOT/agcm/test/out + +[BUILD] +csh -f bld.csh + +[CLEAN] +cd bld +gmake clean + +[RUN] +#run = mpirun --allow-run-as-root -x LD_LIBRARY_PATH -x PATH -x OMP_NUM_THREADS=1 -x UCX_BUILTIN_ALLTOALLV_ALGORITHM=1 -map-by ppr:128:node:pe=1 --bind-to core +#binary = ../bld/bccam < ./namelist +run = dsub -s dsub_aqcm_12n.sh +binary = +nodes = 1 diff --git a/templates/agcm/4.0/agcm.x86.cpu.config b/templates/agcm/4.0/agcm.x86.cpu.config new file mode 100644 index 0000000000000000000000000000000000000000..34916c5db7e8abde85e66508464949e9fe081cf7 --- /dev/null +++ b/templates/agcm/4.0/agcm.x86.cpu.config @@ -0,0 +1,54 @@ +[SERVER] +11.11.11.11 + +[DOWNLOAD] +bcc-agcm/4.0 http://forecast.bcccsm.ncc-cma.net/web/?down_id=350 agcm.tar.gz + +[DEPENDENCY] +set -x +set -e +module purge +source /share/app/intel/oneapi/setvars.sh --force +export CC=mpicc CXX=mpicxx FC=mpifort F77=mpifort +./jarvis -install hdf5/1.10.1 icc+mpi +./jarvis -install pnetcdf/1.11.2 icc+mpi +./jarvis -install netcdf/4.7.0 icc+mpi +tar -xzvf ${JARVIS_DOWNLOAD}/agcm.tar.gz + +[ENV] +source /etc/profile +module purge +source /share/app/intel/oneapi/setvars.sh --force + +export HDF5=./env/HDF5 +export NETCDF=./env/NETCDF +export PNETCDF=./env/PNETCDF +export FFTW3=/home/huaweijishu/hwtest15/cn/bcc-agcm/libs/install/fftw-3.3.10 +export NETCDF_DIR=./env/NETCDF +export PNETCDF_DIR=./env/PNETCDF +export FFTW3_DIR=./fftw-3.3.10 +export LD_LIBRARY_PATH=$HDF5/lib:$NETCDF/lib:$PNETCDF/lib:$FFTW3/lib + +export LIB_FFTW3=./fftw-3.3.10/lib +export USER_CC=mpicc +export USER_FC=mpiifort + +[APP] +app_name = AGCM +build_dir = $JARVIS_ROOT/agcm/test/ +binary_dir = +case_dir = $JARVIS_ROOT/agcm/test/out + +[BUILD] +csh -f bld.csh + +[CLEAN] +cd bld +gmake clean + +[RUN] +#run = mpirun --allow-run-as-root -x LD_LIBRARY_PATH -x PATH -x OMP_NUM_THREADS=1 -x UCX_BUILTIN_ALLTOALLV_ALGORITHM=1 -map-by ppr:128:node:pe=1 --bind-to core +#binary = ../bld/bccam < ./namelist +run = dsub -s dsub_aqcm_12n.sh +binary = +nodes = 1 diff --git a/templates/octopus/10.3/data.octopus.arm.kpgcc.cpu.config b/templates/octopus/10.3/data.octopus.arm.kpgcc.cpu.config index 0c0ee946647d09a9e8ff5ebf43b0f788c9d36b84..7df6ee2db1b95979757a98b7d289d0f7123d1a5b 100644 --- a/templates/octopus/10.3/data.octopus.arm.kpgcc.cpu.config +++ b/templates/octopus/10.3/data.octopus.arm.kpgcc.cpu.config @@ -13,39 +13,37 @@ export CC=`which gcc` export CXX=`which g++` export FC=`which gfortran` ./jarvis -install hmpi/1.1.1 gcc -module load hmpi1/1.1.1 ./jarvis -install gsl/2.6 gcc -./jarvis -install fftw/3.3.8 gcc -./jarvis -install blas/3.10.0 gcc ./jarvis -install lapack/3.8.0 gcc ./jarvis -install libxc/4.3.4 gcc +./jarvis -install blas/3.10.0 gcc + +module load hmpi1/1.1.1 +export CC=`which mpicc` +export CXX=`which mpicxx` +export FC=`which mpifort` +export OPAL_PREFIX=$JARVIS_MPI/hmpi1-kgcc9/1.1.1 +./jarvis -install fftw/3.3.8 gcc+mpi +tar -xvf ${JARVIS_DOWNLOAD}/octopus-10.3.tar.gz [ENV] module use ./software/modulefiles module purge module load kgcc9/9.3.1 module load hmpi1/1.1.1 -export CC=`which mpicc` -export CXX=`which mpicxx` -export FC=`which mpifort` +export OPAL_PREFIX=$JARVIS_MPI/hmpi1-kgcc9/1.1.1 module load blas/3.10.0 module load lapack/3.8.0 module load gsl/2.6 module load libxc/4.3.4 - - [APP] app_name = octopus -build_dir = ${JARVIS_ROOT} +build_dir = ${JARVIS_ROOT}/octopus-10.3 binary_dir = ./software/apps/kgcc9/octopus/10.3 case_dir = [BUILD] -cd ${JARVIS_TMP} -rm -rf octopus-10.3 -tar -xvf ${JARVIS_DOWNLOAD}/octopus-10.3.tar.gz -cd octopus-10.3 ./configure --prefix=${JARVIS_ROOT}/software/apps/kgcc9/octopus/10.3 CFLAGS='-O3 -march=armv8.2-a -mtune=tsv110' FCFLAGS='-O3 -march=armv8.2-a -mtune=tsv110 ' LIBS="-Wl,-rpath=${JARVIS_ROOT}/software/compiler/kgcc/9.3.1/lib64/libhpc -L${JARVIS_ROOT}/software/compiler/kgcc/9.3.1/lib64/libhpc -lmathlib -lm " --with-gsl-prefix=${JARVIS_LIBS}/kgcc9/gsl/2.6 --with-libxc-prefix=${JARVIS_LIBS}/kgcc9/libxc/4.3.4 --with-fftw-prefix=${JARVIS_LIBS}/kgcc9/fftw/3.3.8 --with-blas=${JARVIS_LIBS}/kgcc9/lapack/3.8.0/lib/librefblas.a --with-lapack=${JARVIS_LIBS}/kgcc9/lapack/3.8.0/lib/liblapack.a --enable-mpi sed -i '185c\ conf%share = &' src/basic/global.F90 sed -i '185a\SHARE_DIR' src/basic/global.F90 @@ -58,8 +56,6 @@ sed -i '200a\FC' src/basic/global.F90 make -j make install - - [RUN] run = binary =