diff --git a/package/grib_api/1.21.0/install.sh b/package/grib_api/1.21.0/install.sh new file mode 100644 index 0000000000000000000000000000000000000000..2dd3ad8179bf085152b405ecd2c871fd0ad291de --- /dev/null +++ b/package/grib_api/1.21.0/install.sh @@ -0,0 +1,20 @@ +#download from https://github.com/weathersource/grib_api/archive/refs/tags/v1.21.0.tar.gz +#module load bisheng2/2.1.0 hmpi1/1.1.1 netcdf/4.7.0 pnetcdf/1.11.2 +#!/bin/bash +set -x +set -e +. ${DOWNLOAD_TOOL} -u https://github.com/weathersource/grib_api/archive/refs/tags/v1.21.0.tar.gz grib_api-1.21.0.tar.gz +cd ${JARVIS_TMP} +rm -rf grib_api-1.21.0 +tar -xvf ${JARVIS_DOWNLOAD}/grib_api-1.21.0.tar.gz +cd grib_api-1.21.0 +mkdir build +cd build +export CC=mpicc CXX=mpicxx FC=mpifort F77=mpifort +cmake .. -DCMAKE_INSTALL_PREFIX=$1 +NETCDF_PATH=$1 +NETCDF_PATH=${JARVIS_DOWNLOAD%/*} +NETCDF_PATH=${NETCDF_PATH}/software/libs/bisheng2/hmpi1/netcdf/4.7.0/lib +sed -i "s%NETCDF_netcdf_LIBRARY_RELEASE:FILEPATH=NETCDF_netcdf_LIBRARY_RELEASE-NOTFOUND%NETCDF_netcdf_LIBRARY_RELEASE:FILEPATH=${NETCDF_PATH}/libnetcdf.so%g" ./CMakeCache.txt +make VERBOSE=1 +make install diff --git a/templates/amber/20/bisheng/data.amber.arm.gpu.config b/templates/amber/20/bisheng/data.amber.arm.gpu.config new file mode 100644 index 0000000000000000000000000000000000000000..f345e2963ef1019b7d17eb6ce5afbd08a4aca2d3 --- /dev/null +++ b/templates/amber/20/bisheng/data.amber.arm.gpu.config @@ -0,0 +1,66 @@ +[SERVER] +11.11.11.11 + +[DOWNLOAD] + +[DEPENDENCY] +module use ./software/modulefiles +module purge +./jarvis -install bisheng/2.1.0 com +module load bisheng2/2.1.0 +export CC=clang CXX=clang++ FC=flang +./jarvis -install hmpi/1.1.1 clang + +[ENV] +module use ./software/modulefiles +module purge +module load bisheng2/2.1.0 +module load hmpi1/1.1.1 +export CC=mpicc CXX=mpicxx FC=mpifort + +[APP] +app_name = Amber +build_dir = $JARVIS_ROOT +binary_dir = $JARVIS_ROOT/software/apps/bisheng2/hmpi1/amber20 +case_dir = $JARVIS_ROOT/software/apps/bisheng2/hmpi1/amber20/AmberTools/benchmarks/nab + +[BUILD] +#yum install cmake* flex* bison* boost* python2-pip -y +pip2 install numpy scipy matplotlib + +cd ${JARVIS_TMP} +rm -rf amber20_src +tar -xvf ${JARVIS_DOWNLOAD}/AmberTools21.tar.bz2 +cd amber20_src + +sed -i "136s/gfortran/flang/g" cmake/AmberCompilerConfig.cmake +sed -i '22{h;d};23G' AmberTools/src/reduce/libpdb/pdb++.cpp +sed -i '30d' AmberTools/src/reduce/libpdb/pdb++.cpp +sed -i '24a }' AmberTools/src/reduce/libpdb/pdb++.cpp + +sed -i '23{h;d};24G' AmberTools/src/reduce/libpdb/pdb_type.cpp +sed -i '33d' AmberTools/src/reduce/libpdb/pdb_type.cpp +sed -i '26a }' AmberTools/src/reduce/libpdb/pdb_type.cpp + +sed -i "27s/^/!/g" AmberTools/src/sebomd/se_etimer.F +sed -i "27a call cpu_time(tnow)" AmberTools/src/sebomd/se_etimer.F + +mpi_path=`which mpicc` +mpi_path=${mpi_path%/*/*} + +content='CFLAGS="-O3 -mllvm -force-customized-pipeline -march=armv8.2-a -mcpu=tsv110 -Wl,-z,muldefs -fuse-ld=lld" CXXFLAGS="-O3 -mllvm -force-customized-pipeline -march=armv8.2-a -mcpu=tsv110 -Wno-c++11-narrowing -Wl,-z,muldefs -fuse-ld=lld" FCFLAGS="-O3 -mllvm -force-customized-pipeline -march=armv8.2-a -mcpu=tsv110 -I'${mpi_path}'/include -L'${mpi_path}'/lib -fuse-ld=lld" cmake $AMBER_PREFIX/amber20_src -DCMAKE_INSTALL_PREFIX='$JARVIS_ROOT'/software/apps/bisheng2/hmpi1/amber20 -DCOMPILER=CLANG -DMPI=TRUE -DCUDA=FALSE -DINSTALL_TESTS=TRUE -DDOWNLOAD_MINICONDA=FALSE -DMINICONDA_USE_PY3=FLASE -DCMAKE_VERBOSE_MAKEFILE=ON -DCMAKE_C_FLAGS="-O3 -mllvm -force-customized-pipeline -march=armv8.2-a -mcpu=tsv110 -Wl,-z,muldefs -fuse-ld=lld" -DCMAKE_CXX_FLAGS="-O3 -mllvm -force-customized-pipeline -march=armv8.2-a -mcpu=tsv110 -Wno-c++11-narrowing -Wl,-z,muldefs -fuse-ld=lld" -DCMAKE_Fortran_FLAGS="-O3 -mllvm -force-customized-pipeline -march=armv8.2-a -mcpu=tsv110 -I'${mpi_path}'/include -L'${mpi_path}'/lib -fuse-ld=lld" 2>&1 | tee cmake.log' + +sed -i "39,44d" build/run_cmake +sed -i "39a $content" build/run_cmake + +cd build +./run_cmake +make install + +[CLEAN] +./clean_build + +[RUN] +run = +binary = +nodes = 1 diff --git a/templates/fvcom/4.1/data.fvcom.arm.gpu.config b/templates/fvcom/4.1/data.fvcom.arm.gpu.config new file mode 100644 index 0000000000000000000000000000000000000000..f061e6f5760f3ac73aa375236dfd0ca422db3037 --- /dev/null +++ b/templates/fvcom/4.1/data.fvcom.arm.gpu.config @@ -0,0 +1,109 @@ +[SERVER] +11.11.11.11 + +[DOWNLOAD] +FVCOM/4.1 http://fvcom.smast.umassd.edu/releases/fvcom-4.1.tar.gz +metis_patch/4.0 https://www.math-linux.com/IMG/patch/metis-4.0.patch + +[DEPENDENCY] +module use ./software/modulefiles +module purge +./jarvis -install bisheng/2.1.0 com +module load bisheng2/2.1.0 +export CC=clang CXX=clang++ FC=flang +./jarvis -install hmpi/1.1.1 clang +export CC=mpicc CXX=mpicxx FC=mpifort +./jarvis -install package/hdf5/1.10.1 clang+mpi +./jarvis -install package/pnetcdf/1.11.2 clang+mpi +./jarvis -install package/netcdf/4.7.0 clang+mpi + +[ENV] +module use ./software/modulefiles +module purge +module load bisheng2/2.1.0 +module load hmpi1/1.1.1 +module load hdf5/1.10.1 +module load pnetcdf/1.11.2 +module load netcdf/4.7.0 +export CC=mpicc CXX=mpicxx FC=mpifort + +[APP] +app_name = fvcom +build_dir = $JARVIS_ROOT +binary_dir = $JARVIS_ROOT/software/apps/bisheng2/hmpi1/fvcom +case_dir = $JARVIS_ROOT/software/apps/bisheng2/hmpi1/fvcom + +[BUILD] +set -x +set -e + +mkdir -p $JARVIS_ROOT/software/apps/bisheng2/hmpi1/fvcom +rm -rf $JARVIS_ROOT/software/apps/bisheng2/hmpi1/fvcom/* +cd $JARVIS_ROOT/software/apps/bisheng2/hmpi1/fvcom +tar -xvf ${JARVIS_DOWNLOAD}/fvcom-4.1.tar.gz +cp ${JARVIS_DOWNLOAD}/metis-4.0.patch FVCOM4.1/METIS_source/ + +cd FVCOM4.1 +cp Examples/Estuary/make.inc_example FVCOM_source/make.inc + +fvcom_path=`pwd` +sed -i "51s%$%${fvcom_path}/FVCOM_source%g" FVCOM_source/make.inc +sed -i '73c LIBDIR=-L$(INSTALLDIR)/lib -L../METIS_source/metis -L./libs/julian' FVCOM_source/make.inc +sed -i '74c INCDIR=-I$(INSTALLDIR)/include -I../METIS_source/metis -I./libs/julian' FVCOM_source/make.inc + + +hdf5_path=`which h5diff` +hdf5_path=${hdf5_path%/*/*} +netcdf_path=`nc-config --prefix` +bisheng_path=`which clang` +bisheng_path=${bisheng_path%/*/*} + +sed -i "97c IOLIBS=-L${netcdf_path}/lib -L${hdf5_path}/lib -lnetcdff -lnetcdf -lhdf5_hl -lhdf5 -lz -lcurl -lm" FVCOM_source/make.inc +sed -i "99c IOINCS=-I${netcdf_path}/include -I${hdf5_path}/include" FVCOM_source/make.inc +sed -i "534,539s/^/#/g" FVCOM_source/make.inc +#sed -i "554i CPP = ${bisheng_path}/bin/clang-cpp\nCOMPILER = -DGFORTRAN \nCC = mpicc \nCXX = mpicxx \nFC = mpif90 \nDEBFLGS = \nOPT = -O3 -ffree-form -ffree-line-length-none \nCLIB =" FVCOM_source/make.inc +sed -i "554i CPP = /usr/bin/cpp\nCOMPILER = -DGFORTRAN \nCC = mpicc \nCXX = mpicxx \nFC = mpif90 \nDEBFLGS = \nOPT = -O3 -ffree-form -ffree-line-length-none \nCLIB =" FVCOM_source/make.inc + +ln -sf FVCOM_source/make.inc ./ + +#编译METIS +cd ./METIS_source +tar -zxvf metis.tgz +cd metis +patch -p2 < ../metis-4.0.patch +mkdir -p ../../FVCOM_source/libs/install/lib +mkdir -p ../../FVCOM_source/libs/install/include +mkdir -p ../../FVCOM_source/libs/install/bin +make -j +make install + +#编译julian +cd ../../FVCOM_source/libs +tar -zxvf julian.tgz +cd julian +make -j +make install + + +cd ../.. +sed -i "51c Character( Len = 256 ) Function N_Fmt( c , n ) \n Character( Len = * ) , Intent( IN ) :: c \n Integer , Intent( IN ) :: n \n integer :: i , j \n character( len = 16 ) :: cn \n i = index( c , '<' ) \n j = index( c , '>' ) \n write( cn , '(g0)' ) n \n N_Fmt = c(:i-1) // Trim(adjustL(cn)) // c(j+1:) \n End Function N_Fmt" mod_newinp.F + +sed -i "352c write(*,N_Fmt('(A20,F10.4)',SIZE))trim(argname)//': ',fval(1:SIZE)" mod_newinp.F +sed -i "421c write(*,N_Fmt('(A20,I10)',SIZE))trim(argname)//': ',ival(1:SIZE)" mod_newinp.F +sed -i "494c write(*,N_Fmt('(A20,L10)',SIZE))trim(argname)//': ',cval(1:SIZE)" mod_newinp.F +sed -i "567c write(*,N_Fmt('(A20,A10)',SIZE))trim(argname)//': ',sval(1:SIZE)" mod_newinp.F + +sed -i 's/\/=\.TRUE\./\.neqv\.\.TRUE\./g' mod_scal.F +sed -i 's/==\.TRUE/\.eqv\.\.TRUE/g' internal_step.F +sed -i 's/==\.FALSE\./\.eqv\.\.FALSE\./g' adv_t.F +sed -i 's/==\.FALSE\./\.eqv\.\.FALSE\./g' adv_s.F + +make + +[CLEAN] +./clean_build + +[RUN] +run = +binary = +nodes = 1