diff --git a/.gitignore b/.gitignore index f1def4adcec1a235eb349b3dacbc1f656707ec67..192394149f8f95364dbcecacf3de72f5dad6e166 100644 --- a/.gitignore +++ b/.gitignore @@ -68,3 +68,8 @@ build.sh software/* avg installed +app/* +./*.config +test.sh +*.swp +workloads/* \ No newline at end of file diff --git a/images/wechat-group-qr.png b/images/wechat-group-qr.png index 793d0e1da32e17149d1844bd67b777f5cc770590..9cb188fea98b257a55e59433a6ac2c9f64d103bc 100644 Binary files a/images/wechat-group-qr.png and b/images/wechat-group-qr.png differ diff --git a/package/darshan/3.4/install.sh b/package/darshan/3.4/install.sh new file mode 100644 index 0000000000000000000000000000000000000000..6dc2794aa1197347abe4d32f854f9a11ab63de81 --- /dev/null +++ b/package/darshan/3.4/install.sh @@ -0,0 +1,25 @@ +#!/bin/bash +# please build with gcc/icc+openmpi +# gcc: export CC=mpicc +# icc: export CC=mpiicc +set -x +set -e +version='3.4.0' +#yum install -y texlive* gnuplot perl-Pod-LaTeX perl-HTML-Parser zlib-devel ghostscript +. ${DOWNLOAD_TOOL} -u https://ftp.mcs.anl.gov/pub/darshan/releases/darshan-${version}.tar.gz +cd ${JARVIS_TMP} +tar xvf ${JARVIS_DOWNLOAD}/darshan-${version}.tar.gz +cd darshan-${version} +./prepare.sh +# install darshan runtime to collect IO info. +cd darshan-runtime +mkdir -p $1/runtime +./configure --prefix=$1/runtime --with-mem-align=8 --with-log-path-by-env=DARSHAN_LOG_DIR_PATH --with-jobid-env=NONE +make -j +make install +# install darshan util to analysis IO info. +cd ../darshan-util +mkdir -p $1/util +./configure --prefix=$1/util +make -j +make install \ No newline at end of file diff --git a/package/hdf5/1.12.0/clang/install.sh b/package/hdf5/1.12.0/clang/install.sh new file mode 100644 index 0000000000000000000000000000000000000000..e2c320097621873abf925eb9911068039e139cc7 --- /dev/null +++ b/package/hdf5/1.12.0/clang/install.sh @@ -0,0 +1,14 @@ +#!/bin/bash +set -x +set -e +hdf5_big_version='1.12' +hdf5_version='${hdf5_big_version}.0' +. ${DOWNLOAD_TOOL} -u https://support.hdfgroup.org/ftp/HDF5/releases/hdf5-${hdf5_big_version}/hdf5-${hdf5_version}/src/hdf5-${hdf5_version}.tar.gz +cd ${JARVIS_TMP} +rm -rf hdf5-${hdf5_version} +tar -xvf ${JARVIS_DOWNLOAD}/hdf5-${hdf5_version}.tar.gz +cd hdf5-${hdf5_version} +./configure --prefix=$1 --enable-fortran --enable-static=yes --enable-parallel --enable-shared CFLAGS="-O3 -fPIC -Wno-incompatible-pointer-types-discards-qualifiers -Wno-non-literal-null-conversion" FCFLAGS="-O3 -fPIC" LDFLAGS="-Wl,--build-id" +sed -i '11835c wl="-Wl,"' libtool +make -j +make install diff --git a/package/hdf5/1.12.0/install.sh b/package/hdf5/1.12.0/install.sh new file mode 100644 index 0000000000000000000000000000000000000000..7c899721f65c5fabcc680b8826e6913ac2a4e6bf --- /dev/null +++ b/package/hdf5/1.12.0/install.sh @@ -0,0 +1,13 @@ +#!/bin/bash +set -x +set -e +hdf5_big_version='1.12' +hdf5_version='${hdf5_big_version}.0' +. ${DOWNLOAD_TOOL} -u https://support.hdfgroup.org/ftp/HDF5/releases/hdf5-${hdf5_big_version}/hdf5-${hdf5_version}/src/hdf5-${hdf5_version}.tar.gz +cd ${JARVIS_TMP} +rm -rf hdf5-${hdf5_version} +tar -xvf ${JARVIS_DOWNLOAD}/hdf5-${hdf5_version}.tar.gz +cd hdf5-${hdf5_version} +./configure --prefix=$1 --enable-fortran --enable-static=yes --enable-parallel --enable-shared +make -j +make install diff --git a/package/netcdf/4.7.4/install.sh b/package/netcdf/4.7.4/install.sh new file mode 100644 index 0000000000000000000000000000000000000000..25d8b0b87ebcf813eb08a2f0c9b565f8229dc060 --- /dev/null +++ b/package/netcdf/4.7.4/install.sh @@ -0,0 +1,29 @@ +#!/bin/bash + +set -x +set -e +netcdf_c_version='4.7.4' +netcdf_f_version='4.5.3' +. ${DOWNLOAD_TOOL} -u https://codeload.github.com/Unidata/netcdf-fortran/tar.gz/refs/tags/v${netcdf_f_version} -f netcdf-fortran-${netcdf_f_version}.tar.gz +. ${DOWNLOAD_TOOL} -u https://codeload.github.com/Unidata/netcdf-c/tar.gz/refs/tags/v${netcdf_c_version} -f netcdf-c-${netcdf_c_version}.tar.gz +cd ${JARVIS_TMP} +rm -rf netcdf-c-${netcdf_c_version} netcdf-fortran-${netcdf_f_version} +tar -xvf ${JARVIS_DOWNLOAD}/netcdf-c-${netcdf_c_version}.tar.gz +tar -xvf ${JARVIS_DOWNLOAD}/netcdf-fortran-${netcdf_f_version}.tar.gz +cd netcdf-c-${netcdf_c_version} +HDF5_DIR=${1%/*/*}/hdf5-clang/1.12.0 +PNETCDF_DIR=${1%/*/*}/pnetcdf/1.12.1 +./configure --prefix=$1 --build=aarch64-unknown-linux-gnu --enable-shared --enable-netcdf-4 --disable-dap --with-pic --disable-doxygen --enable-static --enable-pnetcdf --enable-largefile CPPFLAGS="-O3 -I${HDF5_DIR}/include -I${PNETCDF_DIR}/include" LDFLAGS="-L${HDF5_DIR}/lib -L${PNETCDF_DIR}/lib -Wl,-rpath=${HDF5_DIR}/lib -Wl,-rpath=${PNETCDF_DIR}/lib" CFLAGS="-O3 -L${HDF5_DIR}/lib -L${PNETCDF_DIR}/lib -I${HDF5_DIR}/include -I${PNETCDF_DIR}/include" + +make -j16 +make install + +export PATH=$1/bin:$PATH +export LD_LIBRARY_PATH=$1/lib:$LD_LIBRARY_PATH +export NETCDF=${1} + +cd ../netcdf-fortran-${netcdf_f_version} +./configure --prefix=$1 --build=aarch64-unknown-linux-gnu --enable-shared --with-pic --disable-doxygen --enable-largefile --enable-static CPPFLAGS="-O3 -I${HDF5_DIR}/include -I${1}/include" LDFLAGS="-L${HDF5_DIR}/lib -L${1}/lib -Wl,-rpath=${HDF5_DIR}/lib -Wl,-rpath=${1}/lib" CFLAGS="-O3 -L${HDF5_DIR}/HDF5/lib -L${1}/lib -I${HDF5_DIR}/include -I${1}/include" CXXFLAGS="-O3 -L${HDF5_DIR}/lib -L${1}/lib -I${HDF5_DIR}/include -I${1}/include" FCFLAGS="-O3 -L${HDF5_DIR}/lib -L${1}/lib -I${HDF5_DIR}/include -I${1}/include" +sed -i '11838c wl="-Wl,"' libtool +make -j16 +make install diff --git a/package/pnetcdf/1.12.1/install.sh b/package/pnetcdf/1.12.1/install.sh new file mode 100644 index 0000000000000000000000000000000000000000..aec4214a2bc8d54f8cfad0574934856ea64412a1 --- /dev/null +++ b/package/pnetcdf/1.12.1/install.sh @@ -0,0 +1,11 @@ +#!/bin/bash +set -x +set -e +pnetcdf_version='1.12.1' +. ${DOWNLOAD_TOOL} -u http://cucis.ece.northwestern.edu/projects/PnetCDF/Release/pnetcdf-${pnetcdf_version}.tar.gz +cd ${JARVIS_TMP} +tar zxvf ${JARVIS_DOWNLOAD}/pnetcdf-${pnetcdf_version}.tar.gz +cd pnetcdf-${pnetcdf_version} +./configure --prefix=$1 --build=aarch64-linux --enable-shared --enable-fortran --enable-large-file-test +make -j16 +make install diff --git a/src/dataService.py b/src/dataService.py index c110a4f6b02e087ed9a90bc3e1ee86858f8d4e83..b4522c3dece29e704dde68442f89018e114d17c1 100644 --- a/src/dataService.py +++ b/src/dataService.py @@ -171,9 +171,9 @@ cd {DataService.build_dir} run_cmd = DataService.run_cmd['run'] hostfile = '' if nodes > 1: - hostfile = '--hostfile hostfile' + hostfile = f'--hostfile {DataService.root_path}/hostfile' if 'mpi' in run_cmd: - run_cmd = f'{run_cmd} {hostfile}' + run_cmd = run_cmd.replace('mpirun', f'mpirun {hostfile}') binary = os.path.join(DataService.binary_dir, DataService.binary_file) return f'''{run_cmd} {binary} {DataService.binary_para}''' diff --git a/templates/agcm/4.0/agcm.arm.cpu.config b/templates/agcm/4.0/agcm.arm.cpu.config index e2eea601c02b566a84e99b8a15e9e8cc2fb10567..04564496f3e447d4dbe05032d0dbec563befd406 100644 --- a/templates/agcm/4.0/agcm.arm.cpu.config +++ b/templates/agcm/4.0/agcm.arm.cpu.config @@ -17,19 +17,26 @@ 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 +./jarvis -install fftw/3.3.10 bisheng+mpi +./jarvis -install hdf5/1.12.0/clang clang+mpi +./jarvis -install pnetcdf/1.12.1 clang+mpi +./jarvis -install netcdf/4.7.4 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 +module use ./software/modulefiles/ +module load bisheng2/2.1.0 +module load hmpi1/1.1.1 +module load fftw/3.3.10 +module load hdf5-clang/1.12.0 +module load pnetcdf/1.12.1 +module load netcdf/4.7.4 +export NETCDF_DIR=${JARVIS_LIBS}/bisheng2/hmpi1/netcdf/4.7.4 +export MPI_DIR=${JARVIS_MPI}/hmpi1-bisheng2/1.1.1 +export PNETCDF_DIR=${JARVIS_LIBS}/bisheng2/hmpi1/pnetcdf/1.12.1 +export FFTW_DIR=${JARVIS_LIBS}/bisheng2/hmpi1/fftw/3.3.10 export USER_CC=mpicc export USER_FC=mpifort diff --git a/templates/automake/1.16.5/data.automake.arm.bisheng.config b/templates/automake/1.16.5/data.automake.arm.bisheng.config index 540e57720fce24eab71d7c367fedaf3341bfbb46..df7356cfc71fd62996fa13786fd43c27a48519b2 100644 --- a/templates/automake/1.16.5/data.automake.arm.bisheng.config +++ b/templates/automake/1.16.5/data.automake.arm.bisheng.config @@ -8,9 +8,7 @@ module purge module use ./software/modulefiles module load bisheng2/2.1.0 -export CC=`which clang` -export CXX=`which clang++` -export FC=`which flang` +export CC='which clang' CXX='which clang++' FC='which flang' [APP] app_name = automake @@ -21,7 +19,6 @@ case_dir = [BUILD] ./jarvis -install automake/1.16.5 clang - [RUN] run = binary =