diff --git a/README.md b/README.md index 85355c7c95c500c87c58ed288cf26b1784249259..f2b89c6dbcc5d12cd05925551b34e79327f8f01d 100644 --- a/README.md +++ b/README.md @@ -53,7 +53,16 @@ source init.sh ``` -步骤2:生效应用模板 +步骤2:部署基础环境(目前仅支持HPCKit) +``` +#生效HPCKit安装模板 +./jarvis -use templates/basic_env/data.hpckit.config +#执行以下命令,完成基础环境部署 +./jarvis -dp +``` + + +步骤3:生效应用模板 进入hpcrunner根目录执行如下命令: ``` ./jarvis -use templates/xapp.config @@ -79,25 +88,25 @@ source init.sh -步骤3:下载安装包以及相关依赖 +步骤4:下载安装包以及相关依赖 ``` ./jarvis -d ``` -步骤4:安装应用依赖 +步骤5:安装应用依赖 ``` ./jarvis -dp ``` -步骤5:编译应用 +步骤6:编译应用 ``` ./jarvis -b ``` -步骤6:运行应用 +步骤7:运行应用 ``` ./jarvis -r diff --git a/init.sh b/init.sh index 44f303f394a7ae0b05b531b0329671b46aa39f76..7fc0db315a6599626cef962b093f7cbfe6486a27 100644 --- a/init.sh +++ b/init.sh @@ -53,13 +53,24 @@ else fi #判断hpckit是否安装,更新配套版本 -file_path="software/utils/hpckit/${HPCKIT_VERSION}/HPCKit/${HPCKIT_VERSION}/modulefiles/bisheng" +file_path="${JARVIS_ROOT}/software/utils/hpckit/${HPCKIT_VERSION}/HPCKit/${HPCKIT_VERSION}/modulefiles/bisheng" if [ -e "$file_path" ]; then echo -e "你正在使用 $HPCKIT_VERSION 版本的 HPCKit" export BISHENG_VERSION=`ls $file_path|grep compiler|awk -F "compiler" '{print $2}'` export HMPI_VERSION=`ls $file_path|grep hmpi|awk -F "hmpi" '{print $2}'` + module purge + module use ${JARVIS_ROOT}/software/utils/hpckit/${HPCKIT_VERSION}/HPCKit/${HPCKIT_VERSION}/modulefiles + module load bisheng/compiler${BISHENG_VERSION}/bishengmodule + module load bisheng/hmpi${HMPI_VERSION} + module load bisheng/kml${HMPI_VERSION}/kml > /dev/null 2>&1 + export HPCKIT_PATH=${JARVIS_UTILS}/hpckit/${HMPI_VERSION} + export KML_LIB_PATH=${HPCKIT_PATH}/HPCKit/${HMPI_VERSION}/kml/bisheng/lib + export KML_PATH=${HPCKIT_PATH}/HPCKit/${HMPI_VERSION}/kml + echo -e "已自动加载毕昇编译器、Hyper-MPI和鲲鹏数学库:" + module li else - echo -e "INFO: 检测到 $HPCKIT_VERSION 版本的 HPCKit 未进行安装,请继续执行\n" + echo -e "INFO: 检测到未安装 $HPCKIT_VERSION 版本的 HPCKit,请依次执行以下命令安装:" + echo -e "./jarvis -use templates/basic_env/data.hpckit.config\n./jarvis -dp" fi diff --git a/package/openblas/meta.sh b/package/openblas/meta.sh index 0ca62310938397b4456f43c62cac67e03f1178b8..5bac5f1afe701d22f522243b773daf38f8d7306a 100644 --- a/package/openblas/meta.sh +++ b/package/openblas/meta.sh @@ -11,7 +11,7 @@ mv OpenBLAS OpenBLAS-${openblas_ver} cd OpenBLAS-${openblas_ver} git checkout v${openblas_ver} else -. ${DOWNLOAD_TOOL} -u $JARVIS_PROXY/OpenMathLib/OpenBLAS/releases/download/v${openblas_ver}/OpenBLAS-v${openblas_ver}.tar.gz -f OpenBLAS-${openblas_ver}.tar.gz +. ${DOWNLOAD_TOOL} -u $JARVIS_PROXY/OpenMathLib/OpenBLAS/releases/download/v${openblas_ver}/OpenBLAS-${openblas_ver}.tar.gz -f OpenBLAS-${openblas_ver}.tar.gz cd ${JARVIS_TMP} rm -rf OpenBLAS-${openblas_ver} tar -xzvf ${JARVIS_DOWNLOAD}/OpenBLAS-${openblas_ver}.tar.gz diff --git a/src/downloadService.py b/src/downloadService.py index 5eee6026ad6ca57f6f4a8f47cc42e5dab68ba805..3bbf79ba335ab11a66f942c5d35aa73b2bb41980 100644 --- a/src/downloadService.py +++ b/src/downloadService.py @@ -5,6 +5,7 @@ from dataService import DataService from executeService import ExecuteService from toolService import ToolService + class DownloadService: def __init__(self): self.hpc_data = DataService() @@ -17,7 +18,7 @@ class DownloadService: def check_network(self): print(f"start network checking") - network_test_cmd=''' + network_test_cmd = ''' wget --spider -T 5 -q -t 2 www.baidu.com | echo $? curl -s -o /dev/null www.baidu.com | echo $? ''' @@ -53,8 +54,9 @@ yum makecache if len(url_list) == 3: filename = url_list[2].strip() filename_url_map[filename] = url_link - - print(filename_url_map) + + if filename_url_map: + print(filename_url_map) # start download for filename, url in filename_url_map.items(): download_flag = True @@ -69,4 +71,7 @@ yum makecache os.remove(file_path) if not download_flag: - print("The download list is empty!") + print("The download list is empty!\n[WARNING] Due to copyright restrictions and other related " + "considerations, we are unable to download the source code. Please manually upload the source code " + "of the corresponding version to the downloads directory before proceeding with the installation " + "steps.") diff --git a/templates/basic_env/data.hpckit.config b/templates/basic_env/data.hpckit.config new file mode 100644 index 0000000000000000000000000000000000000000..b685f6ed4361591f32548335e786d46557ce1d47 --- /dev/null +++ b/templates/basic_env/data.hpckit.config @@ -0,0 +1,26 @@ +[SERVER] +11.11.11.11 + +[DOWNLOAD] + +[DEPENDENCY] +set -e +./jarvis -install hpckit/${HPCKIT_VERSION} any + +[ENV] + +[APP] +app_name = +build_dir = ${JARVIS_ROOT} +binary_dir = +case_dir = + +[BUILD] + +[CLEAN] +./jarvis -remove hpckit + +[RUN] +run = +binary = +nodes = 1 diff --git a/templates/vasp/6.5.1/data.vasp.arm_clang.cpu.config b/templates/vasp/6.5.1/data.vasp.arm_clang.cpu.config index 5b556ca631c3759cd25239ffc201d4fb78ad632e..361fac9fd867847a859794f87f14286262510a55 100644 --- a/templates/vasp/6.5.1/data.vasp.arm_clang.cpu.config +++ b/templates/vasp/6.5.1/data.vasp.arm_clang.cpu.config @@ -1,44 +1,37 @@ [SERVER] 11.11.11.11 + [DOWNLOAD] + [DEPENDENCY] set -e set -x module purge -./jarvis -install hpckit/${HPCKIT_VERSION}/ any cd ${JARVIS_TMP} rm -rf ${JARVIS_TMP}/vasp.6.5.1 tar xf ${JARVIS_DOWNLOAD}/vasp.6.5.1.tgz - [ENV] -module purge -module use software/utils/hpckit/${HPCKIT_VERSION}/HPCKit/${HPCKIT_VERSION}/modulefiles -module load bisheng/compiler${BISHENG_VERSION}/bishengmodule -module load bisheng/hmpi${HMPI_VERSION} -module load bisheng/kml${HMPI_VERSION}/kml -module load bisheng/kml${HMPI_VERSION}/kblas/multi -export HPCKIT_PATH=$JARVIS_UTILS/hpckit/${HMPI_VERSION} -export KML_LIB=${HPCKIT_PATH}/HPCKit/${HMPI_VERSION}/kml/bisheng/lib -export KML_PATH=${HPCKIT_PATH}/HPCKit/${HMPI_VERSION}/kml -export LD_LIBRARY_PATH=${KML_LIB}/noarch:${KML_LIB}/${kp}:$LD_LIBRARY_PATH -export LD_LIBRARY_PATH=${KML_LIB}/${kp}/kblas/multi:$LD_LIBRARY_PATH +export LD_LIBRARY_PATH=${KML_LIB_PATH}/noarch:${KML_LIB_PATH}/${kp}:$LD_LIBRARY_PATH +export LD_LIBRARY_PATH=${KML_LIB_PATH}/${kp}/kblas/multi:$LD_LIBRARY_PATH kml_path="-L${HPCKIT_PATH}/HPCKit/${HMPI_VERSION}/kml/bisheng/lib/noarch -lkm -lkm_l9" kml_inc=${HPCKIT_PATH}/HPCKit/${HMPI_VERSION}/kml/bisheng/include blas_path="-L${HPCKIT_PATH}/HPCKit/${HMPI_VERSION}/kml/bisheng/lib/${kp}/kblas/multi -lkblas" fftw_path="-L${HPCKIT_PATH}/HPCKit/${HMPI_VERSION}/kml/bisheng/lib/${kp} -lkfft -L/usr/lib64 -lfftw3" scalapack_path="-L${HPCKIT_PATH}/HPCKit/${HMPI_VERSION}/kml/bisheng/lib/${kp}/ -lkscalapack_full -lklapack_full -lkservice" + [APP] app_name = VASP build_dir = ${JARVIS_TMP}/vasp.6.5.1 binary_dir = ${JARVIS_TMP}/vasp.6.5.1/bin case_dir = + [BUILD] sed -i ' s@^[[:space:]]*FORALL (N=1:SIZE(BSE_INDEX%INDEX,1)) W1(N)%WDES1 => WDESK1@ !FORALL (N=1:SIZE(BSE_INDEX%INDEX,1)) W1(N)%WDES1 => WDESK1\n DO N=1,SIZE(BSE_INDEX%INDEX,1)\n W1(N)%WDES1 => WDESK1\n ENDDO@ @@ -120,9 +113,11 @@ EOF echo `pwd` make DEPS=1 -j all + [CLEAN] make veryclean + [RUN] run = mpirun --allow-run-as-root -np 32 -x OMP_NUM_THREADS=1 binary = vasp_std 2>&1 | tee -a vasp.out