diff --git a/package/kfft/1.0.0/install.sh b/package/kfft/1.0.0/install.sh index 2a6496a761ba3f4029d652f6e506769e8e124d83..3bc09fb2472e776569f2310ec0bb43dd0ec6f65f 100755 --- a/package/kfft/1.0.0/install.sh +++ b/package/kfft/1.0.0/install.sh @@ -1,17 +1,17 @@ -#!/bin/bash -set -x -set -e -lib_name='kml_adapter' -. ${DOWNLOAD_TOOL} -u https://gitee.com/openeuler/kml_adapter.git -t git -cd $JARVIS_DOWNLOAD -cd ./$lib_name/kml_fft_adapter -sed -i "s/\/usr\/local\/kml/\$ENV{KML_GCC_PATH}/g" CMakeLists.txt -export C_INCLUDE_PATH=$KML_GCC_PATH/include/ -export CPLUS_INCLUDE_PATH=$KML_GCC_PATH/include/ -chmod +x build.sh -dos2unix build.sh -rm -rf build -./build.sh -mkdir -p $1/lib -cp -rf build/* $1/lib +#!/bin/bash +set -x +set -e +lib_name='kml_adapter' +. ${DOWNLOAD_TOOL} -u https://gitee.com/openeuler/kml_adapter.git -t git +cd $JARVIS_DOWNLOAD +cd ./$lib_name/kml_fft_adapter +sed -i "s/\/usr\/local\/kml/\$ENV{KML_GCC_PATH}/g" CMakeLists.txt +export C_INCLUDE_PATH=$KML_GCC_PATH/include/ +export CPLUS_INCLUDE_PATH=$KML_GCC_PATH/include/ +chmod +x build.sh +dos2unix build.sh +rm -rf build +./build.sh +mkdir -p $1/lib +cp -rf build/* $1/lib cp -rf include $1/ \ No newline at end of file diff --git a/package/prefetch/1.0/install.sh b/package/prefetch/1.0/install.sh new file mode 100644 index 0000000000000000000000000000000000000000..172d71c845f1f09e9b29dd9c08961797c3d27bdd --- /dev/null +++ b/package/prefetch/1.0/install.sh @@ -0,0 +1,12 @@ +#!/bin/bash +set -x +set -e +cd ${JARVIS_TMP} +git clone --depth=1 https://gitee.com/openeuler/prefetch_tuning.git +cd prefetch_tuning +make clean && make +insmod prefetch_tuning.ko +lsmod | grep prefetch_tuning +#uninstall: rmmod prefetch_tuning +#use: echo 1 > /sys/class/misc/prefetch/policy +# 0-15是指CPU硬件预取算法预取数据的单位大小的级别,其中0表示禁用预取算法,1-3表示预取的单位大小为2、4、8个字节,4-7表示预取的单位大小为16、32、64、128个字节,8-15表示预取的单位大小为256、512、1024、2048、4096、8192、16384、32768个字节。选择合适的预取算法级别和单位大小可以帮助提高程序的运行速度。 \ No newline at end of file diff --git a/src/installService.py b/src/installService.py index eb535bee68bcfdad8d24c42fbbc6da97738ca660..c0e0eca3ea9828e039199bc0a0677657eecfd68d 100644 --- a/src/installService.py +++ b/src/installService.py @@ -401,6 +401,12 @@ chmod +x {install_script} self.json.add_data(install_path, software_dict) self.json.write_file() + def remove_prefix(self, software_path): + if software_path.startswith('package/') or software_path.startswith('./'): + software_path = software_path.replace('./', '', 1) + software_path = software_path.replace('package/', '', 1) + return software_path + def install(self, install_args): software_path = install_args[0] compiler_mpi_info = install_args[1] @@ -409,7 +415,7 @@ chmod +x {install_script} compilers = {"GCC":self.get_gcc_info, "CLANG":self.get_clang_info, "NVC":self.get_nvc_info, "ICC":self.get_icc_info, "BISHENG":self.get_clang_info} - software_path = software_path.replace("package/", '', 1) + software_path = self.remove_prefix(software_path) # software_path should exists abs_software_path = self.check_software_path(software_path) if not abs_software_path: return diff --git a/templates/BLAS-TESTER/dgemm.arm.config b/templates/BLAS-TESTER/dgemm.arm.config new file mode 100644 index 0000000000000000000000000000000000000000..a0246050a83e41d38eeba1a213b67640c12ea40e --- /dev/null +++ b/templates/BLAS-TESTER/dgemm.arm.config @@ -0,0 +1,41 @@ +[SERVER] +11.11.11.11 + +[DOWNLOAD] +BLAS-Tester/1.0 https://github.com/xianyi/BLAS-Tester/archive/refs/heads/master.zip BLAS-Tester.zip + +[DEPENDENCY] +set -x +set -e +./jarvis -install kml/1.6.0/gcc any +if [ ! -d BLAS-Tester-master ]; then + unzip ./downloads/BLAS-Tester.zip +fi + +[APP] +app_name = DGEMM +build_dir = $JARVIS_ROOT/BLAS-Tester-master +binary_dir = ./ +case_dir = $JARVIS_ROOT/BLAS-Tester-master/bin + +[ENV] +module purge +module use software/modulefiles +module load kml-gcc/1.6.0 +export OMP_NUM_THREADS=1 +export LD_LIBRARY_PATH=$KML_GCC_PATH/lib/kblas/omp:$LD_LIBRARY_PATH + +[BUILD] +make ARCH=ARM64 L2SIZE=524288 TEST_BLAS=$KML_GCC_PATH/lib/kblas/omp/libkblas.so + +[CLEAN] +make clean + +[RUN] +run = +#run = taskset -c 0-63 +binary = xdl3blastst -R gemm -A 1 N -B 1 N -m 100 -n 100 -k 100 +nodes = 1 + +[BATCH] +#! /bin/bash diff --git a/templates/CESM/2.1.3/cesm.arm.cpu.config b/templates/CESM/2.1.3/cesm.arm.cpu.config index 4c937c75f0c9dd7c2e4784da4e93a657ae72efb1..2f3d718d3f2039970bbeb14f17d463924f096ce9 100644 --- a/templates/CESM/2.1.3/cesm.arm.cpu.config +++ b/templates/CESM/2.1.3/cesm.arm.cpu.config @@ -7,53 +7,58 @@ CESM/2.1.3 https://github.com/ESCOMP/CESM/archive/refs/tags/release-cesm2.1.3.ta [DEPENDENCY] set -x set -e -#yum install perl-XML-LibXML -./jarvis -install kgcc/9.3.1 com +. $CHECK_ROOT && yum install -y perl-XML-LibXML ./jarvis -install bisheng/2.5.0 com module purge module use ./software/modulefiles -module load kgcc/9.3.1 -./jarvis -install kml/1.6.0/gcc gcc module load bisheng/2.5.0 export CC=`which clang` export CXX=`which clang++` export FC=`which flang` +./jarvis -install openblas/0.3.18 clang +#./jarvis -install kml/1.7.0/bisheng clang ./jarvis -install hmpi/1.2.0 bisheng module load hmpi/1.2.0 export CC=mpicc CXX=mpicxx FC=mpifort F77=mpifort -./jarvis -install hdf5/1.12.0/clang clang+mpi -module load hdf5-clang/1.12.0 -./jarvis -install pnetcdf/1.12.1 clang+mpi -module load pnetcdf/1.12.1 +./jarvis -install hdf5/1.10.1/clang clang+mpi +module load hdf5-clang/1.10.1 +./jarvis -install pnetcdf/1.11.2 clang+mpi +module load pnetcdf/1.11.2 if [ $HDF5_CLANG_PATH ];then echo $HDF5_CLANG_PATH else echo "HDF5 is not exists" exit 1 fi -./jarvis -install netcdf/4.8.1/clang clang+mpi -#tar -xzvf $JARVIS_DOWNLOAD/release-cesm2.1.3.tar.gz +./jarvis -install netcdf/4.7.4/clang clang+mpi + +if [ ! -d "CESM-release-cesm2.1.3" ]; then + tar -xzvf $JARVIS_DOWNLOAD/release-cesm2.1.3.tar.gz +fi [ENV] module purge -module use software/modulefiles -module use software/moduledeps +module use /hpcrunner/software/modulefiles module load bisheng/2.5.0 module load hmpi/1.2.0 -module load hdf5-clang/1.12.0 -module load pnetcdf/1.12.1 -module load netcdf-clang/4.8.1 -module load kgcc/9.3.1 -module load kml-gcc/1.6.0 +module load hdf5-clang/1.10.1 +module load pnetcdf/1.11.2 +module load netcdf-clang/4.7.4 +module load openblas/0.3.18 +#module load kml-bisheng/1.7.0 +#export LD_LIBRARY_PATH=$KML_BISHENG_PATH/lib/kblas/omp:$LD_LIBRARY_PATH export NETCDF_PATH=${NETCDF_CLANG_PATH} -export case_name=fangesm14 -export LD_LIBRARY_PATH=$KML_GCC_PATH/lib/kblas/omp:$LD_LIBRARY_PATH +export CESM_PATH=$JARVIS_ROOT/CESM-release-cesm2.1.3 +export CIMEROOT=$CESM_PATH/cime +export PYTHONPATH=$CIMEROOT/scripts/lib:$CIMEROOT/scripts/Tools:$PYTHONPATH +#ln -sf /usr/bin/python3 /usr/bin/python +export case_name=test2 [APP] app_name = CESM -build_dir = $JARVIS_ROOT/CESM-release-cesm2.1.3 -binary_dir = -case_dir = $JARVIS_ROOT/CESM-release-cesm2.1.3/cime/scripts +build_dir = $CESM_PATH +binary_dir = +case_dir = $CESM_PATH/cime/scripts/$case_name [BUILD] set -e @@ -61,20 +66,21 @@ set -x #./manage_externals/checkout_externals #./manage_externals/checkout_externals -S cd cime/scripts - #rm -rf $case_name -./create_newcase --case $case_name --compset F2000climo --res f09_f09_mg17 --mach openeuler --compiler gnu +if [ ! -d $case_name ]; then + ./create_newcase --case $case_name --compset F2000climo --res f09_f09_mg17 --mach openeuler --compiler gnu +fi cd $case_name -./xmlchange NTASKS=128,NTHRDS=1,ROOTPE=0 +./xmlchange NTASKS=32,NTHRDS=1,ROOTPE=0 ./case.setup #./check_case #不加download表示查看所有缺失文件 #./check_input_data --download -#./xmlchange STOP_OPTION=nhours,STOP_N=1 -#./xmlchange DOUT_S=FALSE +./xmlchange STOP_OPTION=nhours,STOP_N=1 +./xmlchange DOUT_S=FALSE #./xmlchange NTASKS_ATM=208,NTASKS_CPL=208,NTASKS_OCN=208,NTASKS_WAV=208,NTASKS_GLC=208,NTASKS_ICE=208,NTASKS_ROF=208,NTASKS_LND=208,NTASKS_ESP=1 #./case.setup --reset -./case.build +./case.build --skip-provenance-check [CLEAN] cd cime/scripts/$case_name @@ -84,8 +90,8 @@ cd cime/scripts/$case_name ./case.build --clean-all [RUN] -run = rm -rf cesm_* && chmod +x run.sh && dsub -s run.sh -#run = cd $case_name && ./case.submit +#run = rm -rf cesm_* && chmod +x run.sh && dsub -s run.sh +run = ./case.submit binary = nodes = 1 diff --git a/templates/copt/6.5/copt.arm.config b/templates/copt/6.5/copt.arm.config new file mode 100644 index 0000000000000000000000000000000000000000..5f9df0f11da8c640b73082dd34263ce4af1ef2c4 --- /dev/null +++ b/templates/copt/6.5/copt.arm.config @@ -0,0 +1,35 @@ +[SERVER] +11.11.11.11 + +[DOWNLOAD] +CardinalOptimizer/6.5.4 https://pub.shanshu.ai/download/copt/6.5.4/aarch64/CardinalOptimizer-6.5.4-aarch64_lnx.tar.gz + +[DEPENDENCY] +set -e +set -x +./jarvis -install prefetch/1.0 any +tar -xzvf ./downloads/CardinalOptimizer-6.5.4-aarch64_lnx.tar.gz + +[ENV] +echo 3 > /sys/class/misc/prefetch/policy +export NUSP_HOME=$JARVIS_ROOT/copt60 +export LD_LIBRARY_PATH=$NUSP_HOME/lib:$LD_LIBRARY_PATH +export PATH=$NUSP_HOME/bin:$PATH + +[APP] +app_name = COPT +build_dir = ./copt60/lib/python +binary_dir = ./ +case_dir = ./copt60/ + +[BUILD] +python setup.py install +copt_cmd + +[CLEAN] +python uninstall copt + +[RUN] +run = python +binary = testCOPTMPS.py +nodes = 1 \ No newline at end of file diff --git a/templates/gromacs/2021.3/.keep b/templates/gromacs/2021.3/.keep deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/templates/gromacs/2021.3/data.gromacs.arm.gpu.config b/templates/gromacs/2021.3/data.gromacs.arm.gpu.config index 92c20f2487cdc1ee1a517fe6ce2e61c17193287c..c931b2b17b7d8a0efc96379163a785c824f64c82 100644 --- a/templates/gromacs/2021.3/data.gromacs.arm.gpu.config +++ b/templates/gromacs/2021.3/data.gromacs.arm.gpu.config @@ -10,10 +10,10 @@ set -x module use ./software/modulefiles module purge ./jarvis -install kgcc/9.3.1 com +module load kgcc/9.3.1 ./jarvis -install openblas/0.3.18 gcc -module load kgcc9/9.3.1 ./jarvis -install hmpi/1.1.1 gcc -module load hmpi1/1.1.1 +module load hmpi/1.1.1 export CC=mpicc CXX=mpicxx FC=mpifort ./jarvis -install fftw/3.3.8 gcc+mpi tar -xvf ${JARVIS_DOWNLOAD}/gromacs-2021.3.tar.gz @@ -21,11 +21,11 @@ tar -xvf ${JARVIS_DOWNLOAD}/gromacs-2021.3.tar.gz [ENV] module use ./software/modulefiles module purge -module load kgcc9/9.3.1 +module load kgcc/9.3.1 +module load hmpi/1.1.1 +module load fftw/3.3.8 +module load openblas/0.3.18 export PATH=/usr/local/cuda/bin:$PATH -module load hmpi1/1.1.1 -module load ./software/moduledeps/kgcc9-hmpi1/fftw/3.3.8 -module load ./software/moduledeps/gcc7/openblas/0.3.18 export CC=mpicc CXX=mpicxx FC=mpifort export GMX_FORCE_UPDATE_DEFAULT_GPU=true export GMX_GPU_PME_PP_COMMS=true @@ -44,8 +44,6 @@ sed -i '498s/int fftwflags = FFTW_DESTROY_INPUT;/int fftwflags = 0;/g' src/groma rm -rf build mkdir build cd build -openblas_path=$JARVIS_LIBS/gcc7/openblas/0.3.18 -fftw_path=$JARVIS_LIBS/kgcc9/hmpi1/fftw/3.3.8 FLAGS="-mcpu=tsv110 -O3"; CFLAGS=$FLAGS CXXFLAGS="-mcpu=tsv110 -lgfortran -O3" CC=mpicc CXX=mpicxx FC=mpifort \ cmake \ -DCMAKE_INSTALL_PREFIX=$JARVIS_ROOT/gromacs \ @@ -58,10 +56,10 @@ cmake \ -DGMX_EXTERNAL_BLAS=on \ -DGMX_EXTERNAL_LAPACK=on \ -DGMX_FFT_LIBRARY=fftw3 \ --DGMX_BLAS_USER=$openblas_path/lib/libopenblas.a \ --DGMX_LAPACK_USER=$openblas_path/lib/libopenblas.a \ --DFFTWF_LIBRARY=$fftw_path/lib/libfftw3f.so \ --DFFTWF_INCLUDE_DIR=$fftw_path/include \ +-DGMX_BLAS_USER=$OPENBLAS_PATH/lib/libopenblas.a \ +-DGMX_LAPACK_USER=$OPENBLAS_PATH/lib/libopenblas.a \ +-DFFTWF_LIBRARY=$FFTW_PATH/lib/libfftw3f.so \ +-DFFTWF_INCLUDE_DIR=$FFTW_PATH/include \ -DGMX_GPU=CUDA \ -DGMX_MPI=off \ -DGMX_OPENMP=on \ diff --git a/templates/gromacs/2022.5/data.gromacs.arm.gpu.config b/templates/gromacs/2022.5/data.gromacs.arm.gpu.config index 95f0d4b9c6ec0912c61b647ec521914418ad8bc9..b27c28ec884c21012c44df1d0760634a1a9d38c5 100644 --- a/templates/gromacs/2022.5/data.gromacs.arm.gpu.config +++ b/templates/gromacs/2022.5/data.gromacs.arm.gpu.config @@ -9,35 +9,30 @@ gromacs/2022.3 http://ftp.gromacs.org/pub/gromacs/gromacs-2022.5.tar.gz #set -x module purge module use ./software/modulefiles -module use ./software/moduledeps ./jarvis -install bisheng/2.5.0 com -./jarvis -install openblas/0.3.18 gcc -module load kgcc/9.3.1 -module load kgcc9.3.1/kml-gcc/1.6.0 -./jarvis -install kfft/1.0.0 gcc module load bisheng/2.5.0 +./jarvis -install openblas/0.3.18 clang ./jarvis -install hmpi/1.2.0 clang module load hmpi/1.2.0 export CC=mpicc CXX=mpicxx FC=mpifort ./jarvis -install fftw/3.3.8 clang+mpi -#tar -xvf ${JARVIS_DOWNLOAD}/gromacs-2022.5.tar.gz +if [ ! -d gromacs-2022.5 ]; then + tar -xvf ${JARVIS_DOWNLOAD}/gromacs-2022.5.tar.gz +fi [ENV] module purge module use ./software/modulefiles module use ./software/moduledeps module load bisheng/2.5.0 -export PATH=/usr/local/cuda/bin:$PATH module load hmpi/1.2.0 -module load kgcc/9.3.1 module load fftw/3.3.8 -#module load kgcc9.3.1/kml-gcc/1.6.0 -#module load kgcc9.3.1/kfft/1.0.0 -module load gcc7.3.0/openblas/0.3.18 +module load openblas/0.3.18 export CC=mpicc CXX=mpicxx FC=mpifort export GMX_FORCE_UPDATE_DEFAULT_GPU=true export GMX_GPU_PME_PP_COMMS=true export GMX_GPU_DD_COMMS=true +export PATH=/usr/local/cuda/bin:$PATH [APP] app_name = gromacs @@ -52,7 +47,7 @@ sed -i '505s/int fftwflags = FFTW_DESTROY_INPUT;/int fftwflags = 0;/g' src/groma rm -rf build mkdir -p build cd build -FLAGS="-mcpu=tsv110 -O3"; CFLAGS=$FLAGS CXXFLAGS="-mcpu=tsv110 -O3" CC=mpicc CXX=mpicxx FC=mpifort cmake -DCMAKE_INSTALL_PREFIX=$JARVIS_ROOT/gromacs-kml -DBUILD_SHARED_LIBS=on -DBUILD_TESTING=on -DREGRESSIONTEST_DOWNLOAD=off -DGMX_BUILD_OWN_FFTW=off -DGMX_SIMD=ARM_NEON_ASIMD -DGMX_DOUBLE=off -DGMX_EXTERNAL_BLAS=on -DGMX_EXTERNAL_LAPACK=on -DGMX_FFT_LIBRARY=fftw3 -DGMX_BLAS_USER=${OPEBLAS_PATH}/lib/libopenblas.a -DGMX_LAPACK_USER=${OPEBLAS_PATH}/lib/libopenblas.a -DFFTWF_LIBRARY=$FFTW_PATH/lib/libfftw3f.so -DFFTWF_INCLUDE_DIR=$FFTW_PATH_PATH/include -DGMX_GPU=CUDA -DGMX_MPI=off -DGMX_OPENMP=on -DGMX_X11=off -DCUDA_TOOLKIT_ROOT_DIR=/usr/local/cuda ../ +FLAGS="-mcpu=tsv110 -O3 -lgfortran"; CFLAGS=$FLAGS CXXFLAGS="-mcpu=tsv110 -O3 -lgfortran" CC=mpicc CXX=mpicxx FC=mpifort cmake -DCMAKE_INSTALL_PREFIX=$JARVIS_ROOT/gromacs-kml -DBUILD_SHARED_LIBS=on -DBUILD_TESTING=on -DREGRESSIONTEST_DOWNLOAD=off -DGMX_BUILD_OWN_FFTW=off -DGMX_SIMD=ARM_NEON_ASIMD -DGMX_DOUBLE=off -DGMX_EXTERNAL_BLAS=on -DGMX_EXTERNAL_LAPACK=on -DGMX_FFT_LIBRARY=fftw3 -DGMX_BLAS_USER=${OPEBLAS_PATH}/lib/libopenblas.a -DGMX_LAPACK_USER=${OPEBLAS_PATH}/lib/libopenblas.a -DFFTWF_LIBRARY=$FFTW_PATH/lib/libfftw3f.so -DFFTWF_INCLUDE_DIR=$FFTW_PATH/include -DGMX_GPU=CUDA -DGMX_MPI=off -DGMX_OPENMP=on -DGMX_X11=off -DCUDA_TOOLKIT_ROOT_DIR=/usr/local/cuda ../ make -j40 V=1 make install @@ -66,6 +61,6 @@ make install [RUN] run = chmod +x run.sh && dsub -s run.sh # binary = gmx grompp -f pme.mdp -# binary = gmx mdrun -dlb yes -pin on -pinoffset 0 -pinstride 1 -ntmpi 1 -ntomp 48 -v -nsteps 100000 -resetstep 80000 -noconfout -nb gpu -bonded cpu -pme gpu -nstlist 400 -s ./topol.tpr +binary = gmx mdrun -dlb yes -pin on -pinoffset 0 -pinstride 1 -ntmpi 1 -ntomp 48 -v -nsteps 100000 -resetstep 80000 -noconfout -nb gpu -bonded cpu -pme gpu -nstlist 400 -s ./topol.tpr binary = nodes = 1