From 923836ce6bfce0ef13f8830c9accc7816eb634a3 Mon Sep 17 00:00:00 2001 From: iotwins Date: Mon, 21 Mar 2022 19:32:31 +0800 Subject: [PATCH 1/5] Add singularity install script --- package/go/1.18/install.sh | 7 ++++++ templates/singularity/singularity.config | 32 ++++++++++++++++++++++++ 2 files changed, 39 insertions(+) create mode 100644 package/go/1.18/install.sh create mode 100644 templates/singularity/singularity.config diff --git a/package/go/1.18/install.sh b/package/go/1.18/install.sh new file mode 100644 index 0000000..005c72a --- /dev/null +++ b/package/go/1.18/install.sh @@ -0,0 +1,7 @@ +#!/bin/bash +#Download: https://go.dev/d1/ +set -x +set -e +cd ${JARVIS_TMP} +rm -rf /usr/local/go +tar -xzvf ${JARVIS_DOWNLOAD}/go1.18.linux-arm64.tar.gz -C /usr/local diff --git a/templates/singularity/singularity.config b/templates/singularity/singularity.config new file mode 100644 index 0000000..00846a2 --- /dev/null +++ b/templates/singularity/singularity.config @@ -0,0 +1,32 @@ +[SERVER] +11.11.11.11 + +[DEPENDENCY] +set -e +# Install RPM packages for dependencies +sudo yum install -y libseccomp-devel squashfs-tools cryptsetup +./jarvis -install go/1.18 gcc +export PATH=/usr/local/go/bin:$PATH +# Install singrarity from https://github.com/sylabs/singularity.git + +[ENV] +export PATH=/usr/local/go/bin:$PATH + +[APP] +app_name = singularity +build_dir = /tmp/hpcrunner/singularity-ce-3.9.6/ +binary_dir = +case_dir = + +[BUILD] +./mconfig +make -C builddir +sudo make -C builddir install + +[CLEAN] +make clean + +[RUN] +run = +binary = singularity version +nodes = 1 \ No newline at end of file -- Gitee From 990cd3913b030116c998d0c202d447b367ed325e Mon Sep 17 00:00:00 2001 From: iotwins Date: Tue, 22 Mar 2022 19:12:18 +0800 Subject: [PATCH 2/5] 1. fix download cann't stop 2.modify data.qe.test.opt.config, replace kml with openblas --- .gitignore | 6 +++++- src/analysis.py | 5 ++++- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index 0bdf2b6..3d2d3e5 100644 --- a/.gitignore +++ b/.gitignore @@ -6,4 +6,8 @@ hostfile test.* porting* HPC-info* -tmp \ No newline at end of file +tmp +downloads/* +runner.log +depend_install.sh +.meta \ No newline at end of file diff --git a/src/analysis.py b/src/analysis.py index 1492550..8e68366 100644 --- a/src/analysis.py +++ b/src/analysis.py @@ -545,7 +545,10 @@ yum makecache continue download_url = self.gen_wget_url(self.download_path, url) self.tool.prt_content("DOWNLOAD " + filename) - os.popen(download_url) + output = os.popen(download_url) + data = output.read() + output.close() + if not download_flag: print("The download list is empty!") class Test: -- Gitee From 72ed985fc3d157e17781c59ba7548e42fbf666be Mon Sep 17 00:00:00 2001 From: iotwins Date: Tue, 22 Mar 2022 19:14:28 +0800 Subject: [PATCH 3/5] 1. fix download cann't stop 2.modify data.qe.test.opt.config, replace kml with openblas --- templates/qe/6.4/data.qe.test.opt.config | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/templates/qe/6.4/data.qe.test.opt.config b/templates/qe/6.4/data.qe.test.opt.config index 4b6d447..b191dcb 100644 --- a/templates/qe/6.4/data.qe.test.opt.config +++ b/templates/qe/6.4/data.qe.test.opt.config @@ -2,6 +2,8 @@ 11.11.11.11 [DEPENDENCY] +set -x +set -e ./jarvis -install bisheng/2.1.0 com module purge module use ./software/modulefiles @@ -12,7 +14,7 @@ export FC=`which flang` ./jarvis -install hmpi/1.1.1 bisheng module load hmpi1/1.1.1 ./jarvis -bench mpi -./jarvis -install kml/1.4.0/bisheng bisheng +./jarvis -install openblas/0.3.18 bisheng [ENV] source /etc/profile @@ -23,8 +25,9 @@ export CC=`which clang` export CXX=`which clang++` export FC=`which flang` module load hmpi1/1.1.1 -export BLAS_LIBS="-L/usr/local/kml/lib/kblas/omp -lkblas" -export LAPACK_LIBS="-L/usr/local/kml/lib/ -lklapack_full" +module load openblas/0.3.18 +export BLAS_LIBS="-L${JARVIS_LIBS}/bisheng2/openblas/0.3.18/lib -lopenblas" +export LAPACK_LIBS="-L${JARVIS_LIBS}/bisheng2/openblas/0.3.18/lib -lopenblas" [APP] app_name = QE -- Gitee From 91734957b4cd8aeae51111436706ffe3d4ae072e Mon Sep 17 00:00:00 2001 From: iotwins Date: Tue, 22 Mar 2022 19:33:44 +0800 Subject: [PATCH 4/5] fix ReadME --- README.md | 58 +++++++++++++++++++++++++++++-------------------------- 1 file changed, 31 insertions(+), 27 deletions(-) diff --git a/README.md b/README.md index 2cb97f9..b71739b 100644 --- a/README.md +++ b/README.md @@ -3,7 +3,7 @@ ### 项目背景 -因为HPC应用的复杂性,其依赖安装、环境配置、编译、运行、CPU/GPU性能采集分析的门槛比较高,导致迁移和调优的工作量大,不同的人在不同的机器上跑同样的应用和算例基本上是重头开始,费时费力,而且很多情况下需要同时部署鲲鹏/X86两套环境进行验证,增加了很多的重复性工作,无法聚焦软件算法优化。 +因为HPC应用的复杂性,其依赖安装、环境配置、编译、运行、CPU/GPU性能采集分析的门槛比较高,导致迁移和调优的工作量大,不同的人在不同的机器上跑同样的应用和算例基本上是重头开始,费时费力,而且很多情况下需要同时部署ARM/X86两套环境进行验证,增加了很多的重复性工作,无法聚焦软件算法优化。 ### 项目特色 @@ -11,7 +11,6 @@ - 根据HPC配置一键生成环境脚本、一键编译、一键运行、一键性能采集、一键Benchmark. - 所有配置仅用一个文件记录,HPC应用部署到不同的机器仅需修改配置文件. - 日志管理系统自动记录HPC应用部署过程中的所有信息. -- 常用HPC工具软件开箱即用. - 软件本身无需编译开箱即用,仅依赖Python环境. - (未来) 集成HPC领域常用性能调优手段、核心算法. - (未来) 集群性能分析工具. @@ -93,22 +92,33 @@ source init.sh option支持列表如下所示 -| 选项值 | 解释 | 安装目录 | -| ------------------ | ----------------------------- | ----------------------- | -| gcc | 使用当前gcc进行编译 | software/libs/gcc | -| gcc+mpi | 使用当前gcc+当前mpi进行编译 | software/libs/gcc/mpi | -| clang(bisheng) | 使用当前clang进行编译 | software/libs/clang | -| clang(bisheng)+mpi | 使用当前clang+当前mpi进行编译 | software/libs/clang/mpi | -| nvc | 使用当前nvc进行编译 | software/libs/nvc | -| nvc+mpi | 使用当前nvc+当前mpi进行编译 | software/libs/nvc/mpi | -| icc | 使用当前icc进行编译 | software/libs/icc | -| icc+mpi | 使用当前icc+当前mpi进行编译 | software/libs/icc/mpi | -| com | 安装编译器 | software/compiler | -| any | 安装工具软件 | software/compiler/utils | +| 选项值 | 解释 | 安装目录 | +| ----------- | ----------------------------- | ------------------------- | +| gcc | 使用当前gcc进行编译 | software/libs/gcc | +| gcc+mpi | 使用当前gcc+当前mpi进行编译 | software/libs/gcc/mpi | +| clang | 使用当前clang进行编译 | software/libs/clang | +| clang+mpi | 使用当前clang+当前mpi进行编译 | software/libs/clang/mpi | +| bisheng | 使用毕晟进行编译 | software/libs/bisheng | +| bisheng+mpi | 使用毕晟+当前mpi进行编译 | software/libs/bisheng/mpi | +| nvc | 使用当前nvc进行编译 | software/libs/nvc | +| nvc+mpi | 使用当前nvc+当前mpi进行编译 | software/libs/nvc/mpi | +| icc | 使用当前icc进行编译 | software/libs/icc | +| icc+mpi | 使用当前icc+当前mpi进行编译 | software/libs/icc/mpi | +| com | 安装编译器 | software/compiler | +| any | 安装工具软件 | software/compiler/utils | 注意,如果软件为MPI通信软件(如hmpi、openmpi),会安装到software/mpi目录 -(eg: ./jarvis -install fftw/3.3.8 gcc) +eg: + +``` +./jarvis -install bisheng/2.1.0 com #安装毕晟编译器 +./jarvis -install fftw/3.3.8 gcc+mpi #使用gcc和mpi编译fftw 3.3.8版本 +./jarvis -install openmpi/4.1.2 gcc #使用gcc编译openmpi 4.1.2版本 +``` + + + 5.一键安装所有依赖 ``` @@ -139,25 +149,19 @@ option支持列表如下所示 ./jarvis -p ``` -10.一键Kperf性能采集(生成TopDown) - -``` -./jarvis -kp -``` - -11.一键GPU性能采集(需安装nsys、ncu) +10.一键GPU性能采集(需安装nsys、ncu) ``` ./jarvis -gp ``` -12.一键输出服务器信息(包括CPU、网卡、OS、内存等) +11.一键输出服务器信息(包括CPU、网卡、OS、内存等) ``` ./jarvis -i ``` -13.一键服务器性能评测(包括MPI、OMP、P2P等) +12.一键服务器性能评测(包括MPI、OMP、P2P等) ``` ./jarvis -bench all #运行所有benchmark @@ -166,13 +170,13 @@ option支持列表如下所示 ./jarvis -bench gemm #运行矩阵运算 benchmark ``` -14.切换配置 +13.切换配置 ``` ./jarvis -use XXX.config ``` -15.其它功能查看(网络检测) +14.其它功能查看(网络检测) ``` ./jarvis -h @@ -184,7 +188,7 @@ option支持列表如下所示 贾维斯项目欢迎您的专业技能和热情参与! -小的改进或修复总是值得赞赏的;先从文档开始可能是一个很好的起点。如果您正在考虑对源代码的更大贡献,请先提交一个issue或者在maillist进行讨论。 +小的改进或修复总是值得赞赏的;先从文档开始可能是一个很好的起点。如果您正在考虑做出更大贡献,请提交一个issue或者在hpc.openeuler.org进行讨论。 编写代码并不是为贾维斯做出贡献的唯一方法。您还可以: -- Gitee From 3555da5d1d0d2ea1924a9c8149b488d43f19fe01 Mon Sep 17 00:00:00 2001 From: iotwins Date: Wed, 23 Mar 2022 09:52:27 +0800 Subject: [PATCH 5/5] fix go download link --- package/go/1.18/install.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) mode change 100644 => 100755 package/go/1.18/install.sh diff --git a/package/go/1.18/install.sh b/package/go/1.18/install.sh old mode 100644 new mode 100755 index 005c72a..a99b444 --- a/package/go/1.18/install.sh +++ b/package/go/1.18/install.sh @@ -1,5 +1,5 @@ #!/bin/bash -#Download: https://go.dev/d1/ +#Download: https://go.dev/dl/ set -x set -e cd ${JARVIS_TMP} -- Gitee