已开启
金丝雀版本合入 #1068
sunlock0653创建于 1月13日
金丝雀版本合入 #1068
已开启
sunlock0653创建于 1月13日
Canary合入到master
71 个文件变更+375-202
MREADME.md+50-54
@@ -17,11 +17,10 @@ HPC被喻为是IT行业“金字塔上的明珠”,其部署、编译、运行
17 17 
18## 下载贾维斯18## 下载贾维斯
19 19 
20-执行如下命令安装相关依赖并下载贾维斯20+执行如下命令下载贾维斯
21 21 
22```22```
23-yum -y install git time zlib zlib-devel gcc gcc-c++ environment-modules python python3 python3-devel python3-libs python3-pip cmake make numactl numactl-devel numactl-libs rpmdevtools wget libtirpc libtirpc-devel unzip flex tar patch glibc-devel rpcbind csh perl-XML-LibXML xorg-x11-xauth curl curl-devel libcurl-devel23+git clone https://gitcode.com/openeuler/hpcrunner.git
24-git clone https://gitee.com/openeuler/hpcrunner.git
25```24```
26 25 
27## 贾维斯目录结构26## 贾维斯目录结构
@@ -44,50 +43,47 @@ git clone https://gitee.com/openeuler/hpcrunner.git
44 43 
45## 使用贾维斯安装应用流程44## 使用贾维斯安装应用流程
46 45 
47-以安装 xapp 为例:46+以安装某应用(xapp 为例:
48 47 
49-步骤1:配置网络代理48+步骤1:(可选)配置git代理
49+执行proxy脚本,并选择合适的git源
50 50 
51```51```
52-#执行proxy脚本,并选择合适的源
53./proxy.sh52./proxy.sh
54-#执行初始化脚本,完成环境变量配置53+```
54+ 
55+步骤2:初始环境变量,并检查环境
56+执行初始化脚本,同步检查配置环境并下载安装基础依赖,<font color="red">&zwnj;**确保初始化成功,无ERROR回显再继续执行**
57+&zwnj;</font>
58+ 
59+```
55source init.sh60source init.sh
56```61```
57 62 
58-步骤2部署基础环境(目前仅支持HPCKit)63+步骤3生效应用模板
59- 
60-```
61-#生效HPCKit安装模板
62-./jarvis -use templates/basic_env/data.hpckit.config
63-#执行以下命令,完成基础环境部署
64-./jarvis -dp
65-```
66- 
67-步骤3:生效应用模板
68进入hpcrunner根目录执行如下命令:64进入hpcrunner根目录执行如下命令:
69 65 
70```66```
71./jarvis -use templates/xapp.config67./jarvis -use templates/xapp.config
72```68```
73 69 
74-注:贾维斯中包含典型HPC应用模板, 位于目录”hpcrunner/template”中,可直接使用。如要新增应用模板,需遵循一定的格式新建自定义文件app.config。70+注:贾维斯中包含典型HPC应用模板, 位于目录”hpcrunner/template”中,可直接使用。
75- 71+如要新增应用模板,需遵循一定的格式新建自定义文件app.config。
76配置文件格式如下所示72配置文件格式如下所示
77 73 
78-| **配置项** | **说明** | **示例** |74+| **配置项** | **说明** | **示例** |
79-|--------------|-----------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------|75+|--------------|-----------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
80-| [SERVER] | 指定节点列表,按行书写,用于自动生成hostfile | 11.11.11.11<br>22.22.22.22 |76+| [SERVER] | 指定节点列表,按行书写,用于自动生成hostfile | 11.11.11.11<br>22.22.22.22 |
81-| [DOWNLOAD] | 格式:app/appversion download_url [alias]<br>**注:**在没有网络场景下,可提前将下载好的安装包放置在hpcrunner/downloads目录下 | cp2k/8.2 https://github.com/extdomains/github.com/cp2k/cp2k/releases/download/v8.2.0/cp2k-8.2.tar.bz2 |77+| [DOWNLOAD] | 格式:app/appversion download_url [alias]<br>**注:**在没有网络场景下,可提前将下载好的安装包放置在hpcrunner/downloads目录下 | cp2k/8.2 https://github.com/extdomains/github.com/cp2k/cp2k/releases/download/v8.2.0/cp2k-8.2.tar.bz2 |
82-| [DEPENDENCY] | HPC应用所需安装的依赖软件 | ./jarvis -install gmp/6.2.0 clang<br>./jarvis -install boost/1.72.0 clang |78+| [DEPENDENCY] | HPC应用所需安装的依赖软件 | ./jarvis -install gmp/6.2.0 clang<br>./jarvis -install boost/1.72.0 clang |
83-| [ENV] | HPC应用编译运行所需的环境配置 | module use ./software/modulefiles<br>module load bisheng/3.2.0<br>module load boost/1.72.0 |79+| [ENV] | HPC应用编译运行所需的环境配置 | module use ./software/modulefiles<br>module load bisheng/3.2.0<br>module load boost/1.72.0 |
84-| [APP] | HPC应用信息,包括应用名、构建路径、二进制路径、算例路径 | app_name = CP2K <br>build_dir = /home/cp2k-8.2/ <br>binary_dir = /home/CP2K/cp2k-8.2/bin/ case_dir = /home/CP2K/cp2k-8.2/benchmarks/QS/ |80+| [APP] | HPC应用信息,包括应用名、构建路径、二进制路径、算例路径 | app_name = CP2K <br>build_dir = $JARVIS_ROOT/tmp/cp2k-8.2/ <br>binary_dir = $JARVIS_ROOT/software/apps/bisheng${BISHENG_VERSION}-hmpi${HPCKIT_VERSION}/cp2k-8.2/bin/ <br>case_dir = $JARVIS_ROOT/workloads/cp2k-8.2/benchmarks/QS/ |
85-| [BUILD] | HPC应用构建脚本 | ./configure <br>make -j<br>make install |81+| [BUILD] | HPC应用构建脚本 | ./configure <br>make -j<br>make install |
86-| [CLEAN] | HPC应用编译清理脚本 | make clean |82+| [CLEAN] | HPC应用编译清理脚本 | make clean |
87-| [RUN] | HPC应用运行配置,包括前置命令、应用命令和节点个数 | run = mpirun -np 2 <br>binary = cp2k.psmp H2O-256.inp <br>nodes = 1 |83+| [RUN] | HPC应用运行配置,包括前置命令、应用命令和节点个数 | run = mpirun -np 2 <br>binary = cp2k.psmp H2O-256.inp <br>nodes = 1 |
88-| [JOB] | HPC应用作业调度运行配置 | 多瑙作业调度脚本 |84+| [JOB] | HPC应用作业调度运行配置 | 多瑙作业调度脚本 |
89-| [BATCH] | HPC应用批量运行命令**** | #!/bin/bash <br>mpirun -np 2 cp2k.psmp H2O-256.inp mpirun -np 2 cp2k.psmp H2O-512.inp |85+| [BATCH] | HPC应用批量运行命令 | #!/bin/bash <br>mpirun -np 2 cp2k.psmp H2O-256.inp mpirun -np 2 cp2k.psmp H2O-512.inp |
90-| [PERF] | 性能分析采集工具额外参数配置 | perf= -o <br>nsys= <br>ncu=--target-processes all --launch-skip 71434 --launch-count 1 |86+| [PERF] | 性能分析采集工具额外参数配置 | perf= -o <br>nsys= <br>ncu=--target-processes all --launch-skip 71434 --launch-count 1 |
91 87 
92步骤4:下载安装包以及相关依赖88步骤4:下载安装包以及相关依赖
93 89 
@@ -115,11 +111,11 @@ source init.sh
115 111 
116## 运行示例112## 运行示例
117 113 
118-使用默认的应用配置部署运行应用QE-6.4114+使用默认的应用配置部署运行应用QE-7.3
119 115 
120```116```
121source init.sh117source init.sh
122-./jarvis -use data.config118+./jarvis -use templates/qe/7.3/data.qe.arm.cpu.sve.clang.config
123./jarvis -d119./jarvis -d
124./jarvis -dp120./jarvis -dp
125./jarvis -b121./jarvis -b
@@ -130,26 +126,26 @@ source init.sh
130 126 
131## 功能指令介绍127## 功能指令介绍
132 128 
133-| **功能** | **命令** | **示例/说明** |129+| **功能** | **命令** | **示例/说明** |
134-|-----------------------|----------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|130+|-----------------------|----------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
135-| 帮助信息 | ./jarvis -h | |131+| 帮助信息 | ./jarvis -h | |
136-| 生效应用模板 | ./jarvis -use /path/app.config | 由高到低,模板使用优先级顺序:<br>1.通过环境变量JARVIS_CONFIG指定模板, 支持多用户并行使用贾维斯。<br>export JARVIS_CONFIG=/path/app.config<br>2.通过命令”./jarvis -use /path/app.config”指定模板。<br>3.贾维斯根目录下默认模板data.config。 |132+| 生效应用模板 | ./jarvis -use /path/app.config | 由高到低,模板使用优先级顺序:<br>1.通过环境变量JARVIS_CONFIG指定模板, 支持多用户并行使用贾维斯。<br>export JARVIS_CONFIG=/path/app.config<br>2.通过命令”./jarvis -use /path/app.config”指定模板。<br>3.贾维斯根目录下默认模板data.config。 |
137-| 一键下载HPC应用 | ./jarvis -d | 应用将自动下载[DOWNLOAD]中指定的安装包到downloads目录。<br>**注:**在没有网络场景下,可提前将下载好的安装包放置到downloads目录下 |133+| 一键下载HPC应用 | ./jarvis -d | 应用将自动下载[DOWNLOAD]中指定的安装包到downloads目录。<br>**注:**在没有网络场景下,可提前将下载好的安装包放置到downloads目录下 |
138-| 安装依赖 | ./jarvis -install [package/][name/version/other] [option] | 支持安装的软件清单位于package目录下,可在package目录下获取[name/version/other]各字段信息,精确到”install.sh”的上一层目录<br>各参数具体含义:<br>package:可选<br>name:软件名<br>version:软件版本<br>other:子版本,”install.sh”的上一层目录<br>option:指定依赖的编译工具,支持的选项如下表<br>示例如下:<br>1. 安装编译器<br>./jarvis -install hpckit/x.x.x any<br>module use xxx<br>module load bisheng/xxx<br>2. 安装mpi<br>./jarvis -install hpckit/x.x.x any<br>module use xxx<br>module load hmpi/xxx<br>3. 安装依赖<br>module use software/module*<br>module load bisheng/x.x.x<br>module load hmpi/x.x.x<br>export CC=mpicc CXX=mpicxx FC=mpifort <br>./jarvis -install hdf5/1.8.20/clang bisheng+mpi<br>4. 安装工具<br>./jarvis -install hpckit/2025.3.30 any<br>./jarvis -install go/1.18 any |134+| 安装依赖 | ./jarvis -install [package/][name/version/other] [option] | 支持安装的软件清单位于package目录下,可在package目录下获取[name/version/other]各字段信息,精确到”install.sh”的上一层目录<br>各参数具体含义:<br>package:可选<br>name:软件名<br>version:软件版本<br>other:子版本,”install.sh”的上一层目录<br>option:指定依赖的编译工具,支持的选项如下表<br>示例如下:<br>1. 安装编译器<br>./jarvis -install hpckit/x.x.x any<br>module use xxx<br>module load bisheng/xxx<br>2. 安装mpi<br>./jarvis -install hpckit/x.x.x any<br>module use xxx<br>module load hmpi/xxx<br>3. 安装依赖<br>module use software/module*<br>module load bisheng/x.x.x<br>module load hmpi/x.x.x<br>export CC=mpicc CXX=mpicxx FC=mpifort <br>./jarvis -install hdf5/1.8.20/clang bisheng+mpi<br>4. 安装工具<br>./jarvis -install hpckit/2025.3.30 any<br>./jarvis -install go/1.18 any <br>5.自定义安装目录 <br>./jarvis -install hpckit/25.1.0 any --prefix=/path/to/software |
139-| 一键卸载依赖 | ./jarvis -remove xxx | 支持模糊查询 ./jarvis -remove openblas/0.3.18 |135+| 一键卸载依赖 | ./jarvis -remove xxx | 支持模糊查询 ./jarvis -remove openblas/0.3.18 |
140-| 一键下载并安装所有依赖 | ./jarvis -dp | 需要提前指定应用模板./jarvis -use app.config<br>读取配置文件中的[DEPENDENCY]字段内容并按顺序执行 |136+| 一键下载并安装所有依赖 | ./jarvis -dp | 需要提前指定应用模板./jarvis -use app.config<br>读取配置文件中的[DEPENDENCY]字段内容并按顺序执行 |
141-| 输出已安装的软件清单 | ./jarvis -l | 输出清单以相对路径列出 |137+| 输出已安装的软件清单 | ./jarvis -l | 输出清单以相对路径列出 |
142-| 查询已安装的软件 | ./jarvis -f xxx | 查询openblas安装路径 ./jarvis -f openblas |138+| 查询已安装的软件 | ./jarvis -f xxx | 查询openblas安装路径 ./jarvis -f openblas |
143-| 一键生成环境变量 | ./jarvis -e | 读取配置文件中的[ENV]字段内容并生成env.sh脚本,执行./jarvis -b或./jarvis -r会自动生成并生效 |139+| 一键生成环境变量 | ./jarvis -e | 读取配置文件中的[ENV]字段内容并生成env.sh脚本,执行./jarvis -b或./jarvis -r会自动生成并生效 |
144-| 一键编译 | ./jarvis -b | 自动进入[APP]字段中的build_dir目录,读取配置文件中的[BUILD]字段内容并生成build.sh脚本执行 |140+| 一键编译 | ./jarvis -b | 自动进入[APP]字段中的build_dir目录,读取配置文件中的[BUILD]字段内容并生成build.sh脚本执行 |
145-| 一键运行 | ./jarvis -r | 自动进入[APP]字段中的case_dir目录,读取配置文件中的[RUN]字段下内容并组装生成run.sh脚本执行 |141+| 一键运行 | ./jarvis -r | 自动进入[APP]字段中的case_dir目录,读取配置文件中的[RUN]字段下内容并组装生成run.sh脚本执行 |
146-| 一键运行 | ./jarvis -rb | 自动进入[APP]字段中的case_dir目录,读取配置文件中的[BATCH]字段下内容并直接生成batch_run.sh脚本执行 |142+| 一键运行 | ./jarvis -rb | 自动进入[APP]字段中的case_dir目录,读取配置文件中的[BATCH]字段下内容并直接生成batch_run.sh脚本执行 |
147-| 一键CPU性能采集 | ./jarvis -p | 读取配置文件中的[PERF]字段下的perf选项内容,然后使用perf工具进行采集信息 |143+| 一键CPU性能采集 | ./jarvis -p | 读取配置文件中的[PERF]字段下的perf选项内容,然后使用perf工具进行采集信息 |
148-| 一键GPU性能采集 | ./jarvis -gp | 读取配置文件中的[PERF]字段下的nsys选项内容,然后使用nsys工具进行采集信息 |144+| 一键GPU性能采集 | ./jarvis -gp | 读取配置文件中的[PERF]字段下的nsys选项内容,然后使用nsys工具进行采集信息 |
149-| 一键输出服务器信息 | ./jarvis -i | 输出CPU、网卡、OS、内存等信息 |145+| 一键输出服务器信息 | ./jarvis -i | 输出CPU、网卡、OS、内存等信息 |
150-| 一键评测服务器性能 | ./jarvis -bench all ./jarvis -bench mpi ./jarvis -bench omp ./jarvis -bench gemm | 包括HPL、Stream、MPI、OMP、P2P等评测benchmark支持清单位于目录“hpcrunner/benchmark” |146+| 一键评测服务器性能 | ./jarvis -bench all ./jarvis -bench mpi ./jarvis -bench omp ./jarvis -bench gemm | 包括HPL、Stream、MPI、OMP、P2P等评测benchmark支持清单位于目录“hpcrunner/benchmark” |
151-| 一键生成Singularity容器定义文件 | ./jarvis -container docker-hub-address | 需要事先指定应用配置./jarvis -use data.config <br>参数"docker-hub-address"指定基础镜像<br>示例:./jarvis -container openeuler/openeuler |147+| 一键生成Singularity容器定义文件 | ./jarvis -container docker-hub-address | 需要事先指定应用配置./jarvis -use data.config <br>参数"docker-hub-address"指定基础镜像<br>示例:./jarvis -container openeuler/openeuler |
152-| 更新依赖库的路径 | ./jarvis -u | 如果移动了贾维斯的路径,将自动更新software/modulefiles的路径 |148+| 更新依赖库的路径 | ./jarvis -u | 如果移动了贾维斯的路径,将自动更新software/modulefiles的路径 |
153 149 
154## option介绍150## option介绍
155 151 
@@ -30,7 +30,7 @@
30 30 
31# **代码合入指导**31# **代码合入指导**
32 32 
33-## **GITEE提交前提工作**33+## **AtomGit提交前提工作**
34 34 
35**1.设置SSH**35**1.设置SSH**
36 36 
@@ -40,7 +40,7 @@
40 40 
41​ cat id_rsa.pub41​ cat id_rsa.pub
42 42 
43-​ 复制内容到Gitee-设置-SSH Key里面43+​ 复制内容到AtomGit-设置-SSH Key里面
44 44 
45**2.设置用户名和密码**45**2.设置用户名和密码**
46 46 
@@ -54,11 +54,11 @@
54 54 
55**3.Fork主仓库,克隆个人分支(以iotwins为例,以实际的为主)**55**3.Fork主仓库,克隆个人分支(以iotwins为例,以实际的为主)**
56 56 
57-​ git clone git@gitee.com:iotwins/hpcrunner.git57+​ git clone git@gitcode.com:iotwins/hpcrunner.git
58 58 
59**4.建立个人仓库和远程主仓库的联系**59**4.建立个人仓库和远程主仓库的联系**
60 60 
61-git remote add upstream git@gitee.com:openeuler/hpcrunner.git61+git remote add upstream git@gitcode.com:iotwins/hpcrunner.git
62 62 
63 63 
64 64 
@@ -84,9 +84,9 @@ git commit --no-verif -m "Add XXX function"
84 84 
85git push origin new_branch85git push origin new_branch
86 86 
87-**5.在gitee创建PR**87+**5.在AtomGit创建PR**
88 88 
89-https://gitee.com/iotwins/hpcrunner89+https://atomgit.com/iotwins/hpcrunner
90 90 
91 91 
92## **FAQ**92## **FAQ**
@@ -14,7 +14,7 @@ From: openeuler/openeuler
14 yum install -y gcc gcc-c++ make cmake automake zlib-devel bzip2-devel xz-devel curl-devel openssl-devel14 yum install -y gcc gcc-c++ make cmake automake zlib-devel bzip2-devel xz-devel curl-devel openssl-devel
15 source /etc/profile || true15 source /etc/profile || true
16 git config --global http.sslVerify false16 git config --global http.sslVerify false
17- git clone https://gitee.com/openeuler/hpcrunner.git17+ git clone https://atomgit.com/openeuler/hpcrunner.git
18 cd hpcrunner18 cd hpcrunner
19 source ./init.sh19 source ./init.sh
20 ./jarvis -i20 ./jarvis -i
@@ -13,7 +13,7 @@ From: openeuler/openeuler
13 yum install -y gcc gcc-c++ make cmake libgfortran automake zlib-devel bzip2-devel xz-devel curl-devel openssl-devel13 yum install -y gcc gcc-c++ make cmake libgfortran automake zlib-devel bzip2-devel xz-devel curl-devel openssl-devel
14 source /etc/profile || true14 source /etc/profile || true
15 git config --global http.sslVerify false15 git config --global http.sslVerify false
16- git clone https://gitee.com/openeuler/hpcrunner.git16+ git clone https://atomgit.com/openeuler/hpcrunner.git
17 cd hpcrunner17 cd hpcrunner
18 source ./init.sh18 source ./init.sh
19 ./jarvis -i19 ./jarvis -i
@@ -12,7 +12,7 @@ From: openeuler/openeuler
12 # Install the necessary development environment12 # Install the necessary development environment
13 source /etc/profile || true13 source /etc/profile || true
14 git config --global http.sslVerify false14 git config --global http.sslVerify false
15- git clone https://gitee.com/openeuler/hpcrunner15+ git clone https://atomgit.com/openeuler/hpcrunner.git
16 cd hpcrunner16 cd hpcrunner
17 source ./init.sh17 source ./init.sh
18 ./jarvis -i18 ./jarvis -i
@@ -14,7 +14,7 @@ From: openeuler/openeuler
14 yum install -y gcc gcc-c++ gcc-gfortran glibc-devel make libgfortran14 yum install -y gcc gcc-c++ gcc-gfortran glibc-devel make libgfortran
15 source /etc/profile || true15 source /etc/profile || true
16 git config --global http.sslVerify false16 git config --global http.sslVerify false
17- git clone https://gitee.com/openeuler/hpcrunner.git17+ git clone https://atomgit.com/openeuler/hpcrunner.git
18 cd hpcrunner18 cd hpcrunner
19 source ./init.sh19 source ./init.sh
20 ./jarvis -i20 ./jarvis -i
@@ -12,7 +12,7 @@ From: openeuler/openeuler
12 # Install the necessary development environment12 # Install the necessary development environment
13 source /etc/profile || true13 source /etc/profile || true
14 git config --global http.sslVerify false14 git config --global http.sslVerify false
15- git clone https://gitee.com/openeuler/hpcrunner15+ git clone https://atomgit.com/openeuler/hpcrunner.git
16 cd hpcrunner16 cd hpcrunner
17 source ./init.sh17 source ./init.sh
18 ./jarvis -i18 ./jarvis -i
@@ -13,7 +13,7 @@ From: openeuler/openeuler
13 yum install -y environment-modules git wget unzip make flex tar13 yum install -y environment-modules git wget unzip make flex tar
14 source /etc/profile || true14 source /etc/profile || true
15 git config --global http.sslVerify false15 git config --global http.sslVerify false
16- git clone https://gitee.com/openeuler/hpcrunner16+ git clone https://atomgit.com/openeuler/hpcrunner.git
17 cd hpcrunner17 cd hpcrunner
18 source ./init.sh18 source ./init.sh
19 ./jarvis -i19 ./jarvis -i
@@ -42,7 +42,7 @@ From: centos:8.2.2004
42 yum install -y tcsh tcl lsof tk bc42 yum install -y tcsh tcl lsof tk bc
43 source /etc/profile || true43 source /etc/profile || true
44 git config --global http.sslVerify false44 git config --global http.sslVerify false
45- git clone https://gitee.com/openeuler/hpcrunner45+ git clone https://atomgit.com/openeuler/hpcrunner.git
46 cd hpcrunner46 cd hpcrunner
47 source ./init.sh47 source ./init.sh
48 # add your personal files here48 # add your personal files here
@@ -15,7 +15,7 @@ From: openeuler/openeuler:20.03
15 yum install -y tcsh tcl lsof tk bc 15 yum install -y tcsh tcl lsof tk bc
16 source /etc/profile || true16 source /etc/profile || true
17 git config --global http.sslVerify false17 git config --global http.sslVerify false
18- git clone https://gitee.com/openeuler/hpcrunner18+ git clone https://atomgit.com/openeuler/hpcrunner.git
19 cd hpcrunner19 cd hpcrunner
20 source ./init.sh20 source ./init.sh
21 # add your personal files here21 # add your personal files here
@@ -19,7 +19,7 @@ From: openeuler/openeuler:22.03-lts-sp2
19 git config --global http.sslVerify false19 git config --global http.sslVerify false
20 git config --global user.name 'chenshaoheng'20 git config --global user.name 'chenshaoheng'
21 git config --global user.email 'chenshaoheng3@h-partners.com'21 git config --global user.email 'chenshaoheng3@h-partners.com'
22- git clone https://gitee.com/openeuler/hpcrunner.git22+ git clone https://atomgit.com/openeuler/hpcrunner.git
23 cd /hpcrunner23 cd /hpcrunner
24 24
25 #install mlnx25 #install mlnx
@@ -21,7 +21,7 @@ From: helloxusuo/repo/base:oe2203sp2
21 git config --global http.sslVerify false21 git config --global http.sslVerify false
22 git status22 git status
23 23
24- #git pull https://gitee.com/openeuler/hpcrunner24+ #git pull https://atomgit.com/openeuler/hpcrunner.git
25 mkdir tmpppp25 mkdir tmpppp
26 cd tmpppp26 cd tmpppp
27 git clone -b container https://gitee.com/chenshaoheng/hpcrunner.git27 git clone -b container https://gitee.com/chenshaoheng/hpcrunner.git
@@ -15,7 +15,7 @@ From: openeuler/openeuler:20.03
15 yum install -y tcsh tcl lsof tk bc 15 yum install -y tcsh tcl lsof tk bc
16 source /etc/profile || true16 source /etc/profile || true
17 git config --global http.sslVerify false17 git config --global http.sslVerify false
18- git clone https://gitee.com/openeuler/hpcrunner18+ git clone https://atomgit.com/openeuler/hpcrunner.git
19 cd hpcrunner19 cd hpcrunner
20 source ./init.sh20 source ./init.sh
21 # add your personal files here21 # add your personal files here
@@ -15,7 +15,7 @@ From: openeuler/openeuler:20.03
15 yum install -y tcsh tcl lsof tk bc 15 yum install -y tcsh tcl lsof tk bc
16 source /etc/profile || true16 source /etc/profile || true
17 git config --global http.sslVerify false17 git config --global http.sslVerify false
18- git clone https://gitee.com/openeuler/hpcrunner18+ git clone https://atomgit.com/openeuler/hpcrunner.git
19 cd hpcrunner19 cd hpcrunner
20 source ./init.sh20 source ./init.sh
21 # add your personal files here21 # add your personal files here
@@ -14,7 +14,7 @@ From: openeuler/openeuler:20.03
14 yum install -y tcsh tcl lsof tk bc 14 yum install -y tcsh tcl lsof tk bc
15 source /etc/profile || true15 source /etc/profile || true
16 git config --global http.sslVerify false16 git config --global http.sslVerify false
17- git clone https://gitee.com/openeuler/hpcrunner17+ git clone https://atomgit.com/openeuler/hpcrunner.git
18 cd hpcrunner18 cd hpcrunner
19 source ./init.sh19 source ./init.sh
20 # add your personal files here20 # add your personal files here
@@ -22,7 +22,7 @@ From: helloxusuo/repo/base:oe2203sp2
22 git config --global http.sslVerify false22 git config --global http.sslVerify false
23 git status23 git status
24 24
25- git pull https://gitee.com/openeuler/hpcrunner25+ git pull https://atomgit.com/openeuler/hpcrunner.git
26 cd ../ 26 cd ../
27 mkdir linshi27 mkdir linshi
28 cd linshi28 cd linshi
@@ -22,7 +22,7 @@ From: helloxusuo/repo/base:oe2203sp2
22 git config --global http.sslVerify false22 git config --global http.sslVerify false
23 git status23 git status
24 24
25- git pull https://gitee.com/openeuler/hpcrunner25+ git pull https://atomgit.com/openeuler/hpcrunner.git
26 cd ../ 26 cd ../
27 mkdir linshi27 mkdir linshi
28 cd linshi28 cd linshi
@@ -19,7 +19,7 @@ From: helloxusuo/repo/base:oe2203sp2
19 git init19 git init
20 git config --global http.sslVerify false20 git config --global http.sslVerify false
21 21
22- #git pull https://gitee.com/openeuler/hpcrunner22+ #git pull https://atomgit.com/openeuler/hpcrunner.git
23 mkdir tmpppp23 mkdir tmpppp
24 mkdir -p /hpcrunner/templates/octopus/11.424 mkdir -p /hpcrunner/templates/octopus/11.4
25 cd tmpppp25 cd tmpppp
@@ -19,7 +19,7 @@ From: helloxusuo/repo/base:oe2203sp2
19 git init19 git init
20 git config --global http.sslVerify false20 git config --global http.sslVerify false
21 21
22- #git pull https://gitee.com/openeuler/hpcrunner22+ #git pull https://atomgit.com/openeuler/hpcrunner.git
23 mkdir tmpppp23 mkdir tmpppp
24 mkdir -p /hpcrunner/templates/octopus/11.424 mkdir -p /hpcrunner/templates/octopus/11.4
25 cd tmpppp25 cd tmpppp
@@ -19,7 +19,7 @@ From: helloxusuo/repo/base:oe2203sp2
19 git init19 git init
20 git config --global http.sslVerify false20 git config --global http.sslVerify false
21 21
22- #git pull https://gitee.com/openeuler/hpcrunner22+ #git pull https://atomgit.com/openeuler/hpcrunner.git
23 mkdir tmpppp23 mkdir tmpppp
24 mkdir -p /hpcrunner/templates/octopus/11.424 mkdir -p /hpcrunner/templates/octopus/11.4
25 cd tmpppp25 cd tmpppp
@@ -13,7 +13,7 @@ From: openeuler/openeuler
13 yum install -y environment-modules git wget unzip make flex tar hostname13 yum install -y environment-modules git wget unzip make flex tar hostname
14 source /etc/profile || true14 source /etc/profile || true
15 git config --global http.sslVerify false15 git config --global http.sslVerify false
16- git clone https://gitee.com/openeuler/hpcrunner16+ git clone https://atomgit.com/openeuler/hpcrunner.git
17 cd hpcrunner17 cd hpcrunner
18 source ./init.sh18 source ./init.sh
19 ./jarvis -i19 ./jarvis -i
@@ -14,7 +14,7 @@ From: openeuler/openeuler
14 yum install -y gcc gcc-c++ gcc-gfortran glibc-devel make libgfortran hostname14 yum install -y gcc gcc-c++ gcc-gfortran glibc-devel make libgfortran hostname
15 source /etc/profile || true15 source /etc/profile || true
16 git config --global http.sslVerify false16 git config --global http.sslVerify false
17- git clone https://gitee.com/openeuler/hpcrunner.git17+ git clone https://atomgit.com/openeuler/hpcrunner.git
18 cd hpcrunner18 cd hpcrunner
19 source ./init.sh19 source ./init.sh
20 ./jarvis -i20 ./jarvis -i
@@ -14,7 +14,7 @@ From: openeuler/openeuler
14 yum install -y gcc gcc-c++ make cmake automake libX11-devel14 yum install -y gcc gcc-c++ make cmake automake libX11-devel
15 source /etc/profile || true15 source /etc/profile || true
16 git config --global http.sslVerify false16 git config --global http.sslVerify false
17- git clone https://gitee.com/openeuler/hpcrunner.git17+ git clone https://atomgit.com/openeuler/hpcrunner.git
18 cd hpcrunner18 cd hpcrunner
19 source ./init.sh19 source ./init.sh
20 source /etc/profile.d/modules.sh20 source /etc/profile.d/modules.sh
@@ -14,7 +14,7 @@ From: openeuler/openeuler
14 yum install -y gcc gcc-c++ make cmake automake libX11-devel14 yum install -y gcc gcc-c++ make cmake automake libX11-devel
15 source /etc/profile || true15 source /etc/profile || true
16 git config --global http.sslVerify false16 git config --global http.sslVerify false
17- git clone https://gitee.com/openeuler/hpcrunner.git17+ git clone https://atomgit.com/openeuler/hpcrunner.git
18 cd hpcrunner18 cd hpcrunner
19 source ./init.sh19 source ./init.sh
20 source /etc/profile.d/modules.sh20 source /etc/profile.d/modules.sh
@@ -15,7 +15,7 @@ From: openeuler/openeuler
15 yum install -y flex tcsh tcl lsof tk bc15 yum install -y flex tcsh tcl lsof tk bc
16 source /etc/profile || true16 source /etc/profile || true
17 git config --global http.sslVerify false17 git config --global http.sslVerify false
18- git clone https://gitee.com/openeuler/hpcrunner18+ git clone https://atomgit.com/openeuler/hpcrunner.git
19 cd hpcrunner19 cd hpcrunner
20 source ./init.sh20 source ./init.sh
21 ./jarvis -i21 ./jarvis -i
@@ -15,7 +15,7 @@ From: openeuler/openeuler
15 yum install -y tcsh tcl lsof tk bc 15 yum install -y tcsh tcl lsof tk bc
16 source /etc/profile || true16 source /etc/profile || true
17 git config --global http.sslVerify false17 git config --global http.sslVerify false
18- git clone https://gitee.com/openeuler/hpcrunner18+ git clone https://atomgit.com/openeuler/hpcrunner.git
19 cd hpcrunner19 cd hpcrunner
20 source ./init.sh20 source ./init.sh
21 ./jarvis -i21 ./jarvis -i
@@ -13,7 +13,7 @@ From: openeuler/openeuler
13 yum install -y environment-modules git wget unzip make flex tar13 yum install -y environment-modules git wget unzip make flex tar
14 source /etc/profile || true14 source /etc/profile || true
15 git config --global http.sslVerify false15 git config --global http.sslVerify false
16- git clone https://gitee.com/openeuler/hpcrunner16+ git clone https://atomgit.com/openeuler/hpcrunner.git
17 cd hpcrunner17 cd hpcrunner
18 source ./init.sh18 source ./init.sh
19 ./jarvis -i19 ./jarvis -i
@@ -14,7 +14,7 @@ From: openeuler/openeuler
14 yum install -y gcc gcc-c++ gcc-gfortran glibc-devel make libgfortran14 yum install -y gcc gcc-c++ gcc-gfortran glibc-devel make libgfortran
15 source /etc/profile || true15 source /etc/profile || true
16 git config --global http.sslVerify false16 git config --global http.sslVerify false
17- git clone https://gitee.com/openeuler/hpcrunner.git17+ git clone https://atomgit.com/openeuler/hpcrunner.git
18 cd hpcrunner18 cd hpcrunner
19 source ./init.sh19 source ./init.sh
20 ./jarvis -i20 ./jarvis -i
@@ -13,7 +13,7 @@ From: openeuler/openeuler
13 yum install -y environment-modules git wget unzip make flex tar13 yum install -y environment-modules git wget unzip make flex tar
14 source /etc/profile || true14 source /etc/profile || true
15 git config --global http.sslVerify false15 git config --global http.sslVerify false
16- git clone https://gitee.com/openeuler/hpcrunner16+ git clone https://atomgit.com/openeuler/hpcrunner.git
17 cd hpcrunner17 cd hpcrunner
18 source ./init.sh18 source ./init.sh
19 ./jarvis -i19 ./jarvis -i
@@ -14,7 +14,7 @@ From: openeuler/openeuler
14 yum install -y gcc gcc-c++ gcc-gfortran glibc-devel make libgfortran14 yum install -y gcc gcc-c++ gcc-gfortran glibc-devel make libgfortran
15 source /etc/profile || true15 source /etc/profile || true
16 git config --global http.sslVerify false16 git config --global http.sslVerify false
17- git clone https://gitee.com/openeuler/hpcrunner.git17+ git clone https://atomgit.com/openeuler/hpcrunner.git
18 cd hpcrunner18 cd hpcrunner
19 source ./init.sh19 source ./init.sh
20 ./jarvis -i20 ./jarvis -i
@@ -13,7 +13,7 @@ From: openeuler/openeuler
13 yum install -y environment-modules git wget unzip make flex tar hostname13 yum install -y environment-modules git wget unzip make flex tar hostname
14 source /etc/profile || true14 source /etc/profile || true
15 git config --global http.sslVerify false15 git config --global http.sslVerify false
16- git clone https://gitee.com/openeuler/hpcrunner16+ git clone https://atomgit.com/openeuler/hpcrunner.git
17 cd hpcrunner17 cd hpcrunner
18 source ./init.sh18 source ./init.sh
19 ./jarvis -i19 ./jarvis -i
@@ -14,7 +14,7 @@ From: openeuler/openeuler
14 yum install -y gcc gcc-c++ gcc-gfortran glibc-devel make libgfortran hostname14 yum install -y gcc gcc-c++ gcc-gfortran glibc-devel make libgfortran hostname
15 source /etc/profile || true15 source /etc/profile || true
16 git config --global http.sslVerify false16 git config --global http.sslVerify false
17- git clone https://gitee.com/openeuler/hpcrunner.git17+ git clone https://atomgit.com/openeuler/hpcrunner.git
18 cd hpcrunner18 cd hpcrunner
19 source ./init.sh19 source ./init.sh
20 ./jarvis -i20 ./jarvis -i
@@ -13,7 +13,7 @@ From: openeuler/openeuler
13 yum install -y environment-modules git wget unzip make flex tar13 yum install -y environment-modules git wget unzip make flex tar
14 source /etc/profile || true14 source /etc/profile || true
15 git config --global http.sslVerify false15 git config --global http.sslVerify false
16- git clone https://gitee.com/openeuler/hpcrunner16+ git clone https://atomgit.com/openeuler/hpcrunner.git
17 cd hpcrunner17 cd hpcrunner
18 source ./init.sh18 source ./init.sh
19 ./jarvis -i19 ./jarvis -i
@@ -14,7 +14,7 @@ From: openeuler/openeuler
14 yum install -y gcc gcc-c++ gcc-gfortran glibc-devel make libgfortran14 yum install -y gcc gcc-c++ gcc-gfortran glibc-devel make libgfortran
15 source /etc/profile || true15 source /etc/profile || true
16 git config --global http.sslVerify false16 git config --global http.sslVerify false
17- git clone https://gitee.com/openeuler/hpcrunner.git17+ git clone https://atomgit.com/openeuler/hpcrunner.git
18 cd hpcrunner18 cd hpcrunner
19 source ./init.sh19 source ./init.sh
20 ./jarvis -i20 ./jarvis -i
@@ -15,7 +15,7 @@ From: openeuler/openeuler
15 pip3 install numpy -i https://pypi.tuna.tsinghua.edu.cn/simple15 pip3 install numpy -i https://pypi.tuna.tsinghua.edu.cn/simple
16 source /etc/profile || true16 source /etc/profile || true
17 git config --global http.sslVerify false17 git config --global http.sslVerify false
18- git clone https://gitee.com/openeuler/hpcrunner.git18+ git clone https://atomgit.com/openeuler/hpcrunner.git
19 cd hpcrunner19 cd hpcrunner
20 source ./init.sh20 source ./init.sh
21 # Switch config21 # Switch config
@@ -15,7 +15,7 @@ From: openeuler/openeuler
15 pip3 install numpy -i https://pypi.tuna.tsinghua.edu.cn/simple15 pip3 install numpy -i https://pypi.tuna.tsinghua.edu.cn/simple
16 source /etc/profile || true16 source /etc/profile || true
17 git config --global http.sslVerify false17 git config --global http.sslVerify false
18- git clone https://gitee.com/openeuler/hpcrunner.git18+ git clone https://atomgit.com/openeuler/hpcrunner.git
19 cd hpcrunner19 cd hpcrunner
20 source ./init.sh20 source ./init.sh
21 # Switch config21 # Switch config
@@ -15,7 +15,7 @@ From: openeuler/openeuler
15 yum install -y tcsh tcl lsof tk bc 15 yum install -y tcsh tcl lsof tk bc
16 source /etc/profile || true16 source /etc/profile || true
17 git config --global http.sslVerify false17 git config --global http.sslVerify false
18- git clone https://gitee.com/openeuler/hpcrunner18+ git clone https://atomgit.com/openeuler/hpcrunner.git
19 cd hpcrunner19 cd hpcrunner
20 source ./init.sh20 source ./init.sh
21 # add your personal files here21 # add your personal files here
@@ -15,7 +15,7 @@ From: openeuler/openeuler
15 yum install -y tcsh tcl lsof tk bc 15 yum install -y tcsh tcl lsof tk bc
16 source /etc/profile || true16 source /etc/profile || true
17 git config --global http.sslVerify false17 git config --global http.sslVerify false
18- git clone https://gitee.com/openeuler/hpcrunner18+ git clone https://atomgit.com/openeuler/hpcrunner.git
19 cd hpcrunner19 cd hpcrunner
20 source ./init.sh20 source ./init.sh
21 # add your personal files here21 # add your personal files here
@@ -0,0 +1,72 @@
1+if [[ $UseDev -eq 1 ]]; then
2+ set -x
3+else
4+ set +x
5+fi
6+#!/bin/bash
7+#安装编译器并加载对应的环境变量
8+rm -rf $JARVIS_ENV
9+function load_hpckit() {
10+ echo "export BISHENG_VERSION=`ls $file_path|grep compiler|awk -F "compiler" '{print $2}'` " >> $JARVIS_ENV
11+ echo "export HMPI_VERSION=`ls $file_path|grep hmpi|awk -F "hmpi" '{print $2}'` " >> $JARVIS_ENV
12+ echo "module use ${JARVIS_ROOT}/software/utils/hpckit/${HPCKIT_VERSION}/HPCKit/${HPCKIT_VERSION}/modulefiles " >> $JARVIS_ENV
13+ echo "module load bisheng/compiler${BISHENG_VERSION}/bishengmodule " >> $JARVIS_ENV
14+ echo "module load bisheng/hmpi${HMPI_VERSION}/release " >> $JARVIS_ENV
15+ echo "module load bisheng/kml${HMPI_VERSION}/kml " >> $JARVIS_ENV
16+ echo "module load bisheng/kml${HPCKIT_VERSION}/kblas/multi " >> $JARVIS_ENV
17+ 
18+ echo "export HPCKIT_PATH=${JARVIS_UTILS}/hpckit/${HMPI_VERSION} " >> $JARVIS_ENV
19+ echo "export KML_LIB_PATH=${HPCKIT_PATH}/HPCKit/${HMPI_VERSION}/kml/bisheng/lib " >> $JARVIS_ENV
20+ echo "export KML_PATH=${HPCKIT_PATH}/HPCKit/${HMPI_VERSION}/kml " >> $JARVIS_ENV
21+ echo "export BLAS_LIBS=\"-L${JARVIS_ROOT}/software/utils/hpckit/${HPCKIT_VERSION}/HPCKit/${HPCKIT_VERSION}/kml/bisheng/lib/${kp}/kblas/multi -lkblas\" " >> $JARVIS_ENV
22+ echo "export LAPACK_LIBS=\"-L${JARVIS_ROOT}/software/utils/hpckit/${HPCKIT_VERSION}/HPCKit/${HPCKIT_VERSION}/kml/bisheng/lib/${kp} -lklapack_full\" " >> $JARVIS_ENV
23+ 
24+ echo -e "已自动加载${HPCKIT_VERSION} 版本的hpckit套件"
25+ module li
26+}
27+ 
28+function check_hpckit() {
29+ #判断hpckit是否安装,更新配套版本
30+ file_path="${JARVIS_ROOT}/software/utils/hpckit/${HPCKIT_VERSION}/HPCKit/${HPCKIT_VERSION}/modulefiles/bisheng"
31+ if [ -e "$file_path" ]; then
32+ echo -e "你正在使用 $HPCKIT_VERSION 版本的 HPCKit"
33+ load_hpckit
34+ else
35+ echo -e "INFO: 检测到未安装 $HPCKIT_VERSION 版本的 HPCKit,正在重新安装:"
36+ #./jarvis -use templates/basic_env/data.hpckit.config
37+ #./jarvis -dp
38+ ./jarvis -install hpckit/${HPCKIT_VERSION} any > /dev/null
39+ load_hpckit
40+ fi
41+}
42+ 
43+ 
44+#检查编译器
45+function check_com() {
46+ if [ -e ".meta" ]; then
47+ ifclang=`cat .meta | awk -F '/' 'END{print $NF}'|grep clang`
48+ ifbisheng=`cat .meta | awk -F '/' '{print $(NF-1)}'|grep bisheng`
49+ ifgcc=`cat .meta | awk -F '/' 'END{print $NF}'|grep gcc`
50+ if [ -n "$ifclang" ]; then
51+ return 1
52+ elif [ -n "$ifbisheng" ]; then
53+ return 1
54+ elif [ -n "$ifgcc" ]; then
55+ return 2
56+ else
57+ return 0
58+ fi
59+ fi
60+}
61+ 
62+ 
63+check_com
64+if [ $? -eq 1 ]; then
65+ echo "using bisheng complier"
66+ check_hpckit
67+elif [ $? -eq 2 ]; then
68+ echo "using gcc complier"
69+else
70+ echo ""
71+fi
72+source $JARVIS_ENV
@@ -238,7 +238,7 @@ ${MPIRUN} ./multiple_arithmetics_example
238### 1.克隆仓库238### 1.克隆仓库
239 239 
240```bash240```bash
241-git clone https://gitee.com/openeuler/hpcrunner.git241+git clone https://atomgit.com/openeuler/hpcrunner.git
242```242```
243 243 
244## 2.初始化hpcrunner 和 安装必要软件包244## 2.初始化hpcrunner 和 安装必要软件包
@@ -124,7 +124,7 @@ make random-test
124### 1.克隆仓库124### 1.克隆仓库
125 125 
126```bash126```bash
127-git clone https://gitee.com/openeuler/hpcrunner.git127+git clone https://atomgit.com/openeuler/hpcrunner.git
128```128```
129 129 
130## 2.初始化hpcrunner 和 安装必要软件包130## 2.初始化hpcrunner 和 安装必要软件包
@@ -123,7 +123,7 @@ sed -i "/cd duns.*/a\ sed -i '1,42d' *.f include/*" testscript
123### 1.克隆仓库123### 1.克隆仓库
124 124 
125```bash125```bash
126-git clone https://gitee.com/openeuler/hpcrunner.git126+git clone https://atomgit.com/openeuler/hpcrunner.git
127```127```
128 128 
129## 2.初始化hpcrunner 和 安装必要软件包129## 2.初始化hpcrunner 和 安装必要软件包
@@ -150,7 +150,7 @@ mpirun -n $(nproc) IMB-IO
150### 1.克隆仓库150### 1.克隆仓库
151 151 
152```bash152```bash
153-git clone https://gitee.com/openeuler/hpcrunner.git153+git clone https://atomgit.com/openeuler/hpcrunner.git
154```154```
155 155 
156## 2.初始化hpcrunner 和 安装必要软件包156## 2.初始化hpcrunner 和 安装必要软件包
@@ -187,7 +187,7 @@ make test
187## 1.克隆仓库187## 1.克隆仓库
188 188 
189```bash189```bash
190-git clone https://gitee.com/openeuler/hpcrunner.git190+git clone https://atomgit.com/openeuler/hpcrunner.git
191```191```
192 192 
193## 2.初始化hpcrunner 和 安装必要软件包193## 2.初始化hpcrunner 和 安装必要软件包
@@ -238,7 +238,7 @@ ${MPIRUN} ./multiple_arithmetics_example
238### 1.克隆仓库238### 1.克隆仓库
239 239 
240```bash240```bash
241-git clone https://gitee.com/openeuler/hpcrunner.git241+git clone https://atomgit.com/openeuler/hpcrunner.git
242```242```
243 243 
244## 2.初始化hpcrunner 和 安装必要软件包244## 2.初始化hpcrunner 和 安装必要软件包
@@ -417,7 +417,7 @@ ncl -v
417### 1.克隆仓库417### 1.克隆仓库
418 418 
419```bash419```bash
420-git clone https://gitee.com/openeuler/hpcrunner.git420+git clone https://atomgit.com/openeuler/hpcrunner.git
421```421```
422 422 
423## 2.初始化hpcrunner 和 安装必要软件包423## 2.初始化hpcrunner 和 安装必要软件包
@@ -232,7 +232,7 @@ ctest -R short -LE unstable # 快速测试(测试结果符合统计学规律
232### 1.克隆仓库232### 1.克隆仓库
233 233 
234```bash234```bash
235-git clone https://gitee.com/openeuler/hpcrunner.git235+git clone https://atomgit.com/openeuler/hpcrunner.git
236```236```
237 237 
238## 2.初始化hpcrunner 和 安装必要软件包238## 2.初始化hpcrunner 和 安装必要软件包
@@ -632,7 +632,7 @@ OpenLB同样会生成供Paraview应用进行解析的数据,可使用Paraview
632通过克隆git库安装hpcrunner632通过克隆git库安装hpcrunner
633 633 
634```bash634```bash
635-git clone https://gitee.com/openeuler/hpcrunner.git635+git clone https://atomgit.com/openeuler/hpcrunner.git
636```636```
637 637 
638### 4.2 初始化hpcrunner638### 4.2 初始化hpcrunner
@@ -225,7 +225,7 @@ make test
225### 1.克隆仓库225### 1.克隆仓库
226 226 
227```bash227```bash
228-git clone https://gitee.com/openeuler/hpcrunner.git228+git clone https://atomgit.com/openeuler/hpcrunner.git
229```229```
230 230 
231## 2.初始化hpcrunner 和 安装必要软件包231## 2.初始化hpcrunner 和 安装必要软件包
@@ -243,7 +243,7 @@ ctest -R short -LE unstable # 快速测试(测试结果符合统计学规律
243### 1.克隆仓库243### 1.克隆仓库
244 244 
245```bash245```bash
246-git clone https://gitee.com/openeuler/hpcrunner.git246+git clone https://atomgit.com/openeuler/hpcrunner.git
247```247```
248 248 
249## 2.初始化hpcrunner 和 安装必要软件包249## 2.初始化hpcrunner 和 安装必要软件包
@@ -188,7 +188,7 @@ make test
188### 1.克隆仓库188### 1.克隆仓库
189 189 
190```bash190```bash
191-git clone https://gitee.com/openeuler/hpcrunner.git191+git clone https://atomgit.com/openeuler/hpcrunner.git
192```192```
193 193 
194## 2.初始化hpcrunner 和 安装必要软件包194## 2.初始化hpcrunner 和 安装必要软件包
@@ -233,7 +233,7 @@ make test
233### 1.克隆仓库233### 1.克隆仓库
234 234 
235```bash235```bash
236-git clone https://gitee.com/openeuler/hpcrunner.git236+git clone https://atomgit.com/openeuler/hpcrunner.git
237```237```
238 238 
239## 2.初始化hpcrunner 和 安装必要软件包239## 2.初始化hpcrunner 和 安装必要软件包
@@ -149,7 +149,7 @@ ${JARVIS_LIBS}/stream-1.8/bin/stream_mpi_c && ${JARVIS_LIBS}/stream-1.8/bin/stre
149### 1.克隆仓库149### 1.克隆仓库
150 150 
151```bash151```bash
152-git clone https://gitee.com/openeuler/hpcrunner.git152+git clone https://atomgit.com/openeuler/hpcrunner.git
153```153```
154 154 
155## 2.初始化hpcrunner 和 安装必要软件包155## 2.初始化hpcrunner 和 安装必要软件包
@@ -184,7 +184,7 @@ make test_trinity
184### 1.克隆仓库184### 1.克隆仓库
185 185 
186```bash186```bash
187-git clone https://gitee.com/openeuler/hpcrunner.git187+git clone https://atomgit.com/openeuler/hpcrunner.git
188```188```
189 189 
190## 2.初始化hpcrunner 和 安装必要软件包190## 2.初始化hpcrunner 和 安装必要软件包
@@ -208,7 +208,7 @@ make test-parallel
208### 1.克隆仓库208### 1.克隆仓库
209 209 
210```bash210```bash
211-git clone https://gitee.com/openeuler/hpcrunner.git211+git clone https://atomgit.com/openeuler/hpcrunner.git
212```212```
213 213 
214## 2.初始化hpcrunner 和 安装必要软件包214## 2.初始化hpcrunner 和 安装必要软件包
Minit.sh+56-39
@@ -6,25 +6,28 @@ chmod -R +x ./test
6chmod +x ./*.sh6chmod +x ./*.sh
7chmod +x jarvis7chmod +x jarvis
8mkdir -p tmp8mkdir -p tmp
9-export JARVIS_ROOT=${CUR_PATH} #hpcrunner所在路径9+ 
10-export JARVIS_COMPILER=${CUR_PATH}/software/compiler10+#设置hpcrunner相关环境变量
11-export JARVIS_MPI=${CUR_PATH}/software/mpi11+ 
12-export JARVIS_LIBS=${CUR_PATH}/software/libs12+export JARVIS_ROOT=$(dirname "$(realpath "$0")") #hpcrunner所在路径
13-export JARVIS_UTILS=${CUR_PATH}/software/utils13+export JARVIS_COMPILER=${JARVIS_ROOT}/software/compiler
14-export JARVIS_DOWNLOAD=${CUR_PATH}/downloads #应用包下载存放路径14+export JARVIS_MPI=${JARVIS_ROOT}/software/mpi
15-export JARVIS_MODULES=${CUR_PATH}/software/modulefiles15+export JARVIS_LIBS=${JARVIS_ROOT}/software/libs
16-export JARVIS_MODULEDEPS=${CUR_PATH}/software/moduledeps16+export JARVIS_UTILS=${JARVIS_ROOT}/software/utils
17-export JARVIS_TMP=/tmp #应用安装路径17+export JARVIS_DOWNLOAD=${JARVIS_ROOT}/downloads #应用包下载存放路径
18-export JARVIS_TMP_DOWNLOAD=${CUR_PATH}/tmp18+export JARVIS_MODULES=${JARVIS_ROOT}/software/modulefiles
19-export JARVIS_EXE=${CUR_PATH}/exe19+export JARVIS_MODULEDEPS=${JARVIS_ROOT}/software/moduledeps
20+export JARVIS_TMP=${JARVIS_ROOT}/tmp #应用安装路径
21+export JARVIS_TMP_DOWNLOAD=${JARVIS_ROOT}/tmp
22+export JARVIS_EXE=${JARVIS_ROOT}/exe
20export JARVIS_PROXY=https://github.com #github网络代理,默认使用官方源23export JARVIS_PROXY=https://github.com #github网络代理,默认使用官方源
21export UseGitee=1 #下载源是否优先使用gitee,1代表优先使用24export UseGitee=1 #下载源是否优先使用gitee,1代表优先使用
25+export UseDev=0 #确定是否使用开发者模式,1代表使用
22export UseLatest=0 #依赖是否优先安装最新版,1代表优先使用26export UseLatest=0 #依赖是否优先安装最新版,1代表优先使用
23- 27+export JARVIS_ENV=${JARVIS_ROOT}/bashrc #jarvis环境变量文件
24-export DOWNLOAD_TOOL=${CUR_PATH}/package/common/download.sh28+export DOWNLOAD_TOOL=${JARVIS_ROOT}/package/common/download.sh
25-export CHECK_DEPS=${CUR_PATH}/package/common/check_deps.sh29+export CHECK_DEPS=${JARVIS_ROOT}/package/common/check_deps.sh
26-export CHECK_ROOT=${CUR_PATH}/package/common/check_root.sh30+export CHECK_ROOT=${JARVIS_ROOT}/package/common/check_root.sh
27- 
28export kp=neon31export kp=neon
29ifsme=`lscpu|grep sme`32ifsme=`lscpu|grep sme`
30ifsve=`lscpu|grep sve`33ifsve=`lscpu|grep sve`
@@ -37,10 +40,10 @@ elif [ -n "$ifsve" ]; then
37elif [ -n "$ifneon" ]; then40elif [ -n "$ifneon" ]; then
38 export kp=neon41 export kp=neon
39else42else
40- echo "not in kunpeng architecture"43+ echo "[INFO] 当前运行环境非ARM架构"
41fi44fi
42 45 
43-#判断hpckit使用版本46+#设置依赖相关环境变量
44if [ ${UseLatest} -eq 0 ];then47if [ ${UseLatest} -eq 0 ];then
45 export HPCKIT_VERSION=25.1.048 export HPCKIT_VERSION=25.1.0
46 export BISHENG_VERSION=4.2.0.249 export BISHENG_VERSION=4.2.0.2
@@ -48,35 +51,49 @@ if [ ${UseLatest} -eq 0 ];then
48elif [ ${UseLatest} -eq 1 ];then51elif [ ${UseLatest} -eq 1 ];then
49 export HPCKIT_VERSION=latest52 export HPCKIT_VERSION=latest
50else53else
51- echo "[ERROR] UseLatest=${UseLatest}, unsupported value."54+ echo "[ERROR] UseLatest=${UseLatest}, UseLatest只支持'0'或'1'"
52 exit 155 exit 1
53fi56fi
54 57 
55-#判断hpckit是否安装,更新配套版本58+ 
56-file_path="${JARVIS_ROOT}/software/utils/hpckit/${HPCKIT_VERSION}/HPCKit/${HPCKIT_VERSION}/modulefiles/bisheng"59+function check_network() {
57-if [ -e "$file_path" ]; then60+ ./jarvis -net
58- echo -e "你正在使用 $HPCKIT_VERSION 版本的 HPCKit"61+}
59- export BISHENG_VERSION=`ls $file_path|grep compiler|awk -F "compiler" '{print $2}'`62+ 
60- export HMPI_VERSION=`ls $file_path|grep hmpi|awk -F "hmpi" '{print $2}'`63+#检查编译器
61- #module purge64+ 
62-# module use ${JARVIS_ROOT}/software/utils/hpckit/${HPCKIT_VERSION}/HPCKit/${HPCKIT_VERSION}/modulefiles65+function check_deps() {
63-# module load bisheng/compiler${BISHENG_VERSION}/bishengmodule66+ ifdep=`rpm -qa|grep flex`
64-# module load bisheng/hmpi${HMPI_VERSION}/release67+ if [ -n "$ifdep" ]; then
65-# module load bisheng/kml${HMPI_VERSION}/kml > /dev/null 2>&168+ echo "[INFO] 环境已完成基础依赖安装"
66-# export HPCKIT_PATH=${JARVIS_UTILS}/hpckit/${HMPI_VERSION}69+ else
67-# export KML_LIB_PATH=${HPCKIT_PATH}/HPCKit/${HMPI_VERSION}/kml/bisheng/lib70+ yum -y install git time zlib zlib-devel gcc gcc-c++ environment-modules python python3 python3-devel \
68-# export KML_PATH=${HPCKIT_PATH}/HPCKit/${HMPI_VERSION}/kml71+ python3-libs python3-pip cmake make numactl numactl-devel numactl-libs rpmdevtools wget libtirpc \
69-# echo -e "已自动加载毕昇编译器、Hyper-MPI和鲲鹏数学库:"72+ libtirpc-devel unzip flex tar patch glibc-devel rpcbind csh perl-XML-LibXML xorg-x11-xauth curl \
70-# module li73+ curl-devel libcurl-devel
71-else74+ if [ $? -ne 0 ]; then
72- echo -e "INFO: 检测到未安装 $HPCKIT_VERSION 版本的 HPCKit,请次执行以下命令安装"75+ echo "[ERROR] 基础安装失败"
73- echo -e "./jarvis -use templates/basic_env/data.hpckit.config\n./jarvis -dp"76+ exit 1
74-fi77+ fi
78+ fi
79+}
80+ 
81+#命令执行
82+ 
83+check_network
84+check_deps
75 85 
76 86 
77#Install modules87#Install modules
78if ! type module >/dev/null 2>&1;then88if ! type module >/dev/null 2>&1;then
79 echo "Install environment-modules"89 echo "Install environment-modules"
80 . $CHECK_ROOT && yum install -y environment-modules || apt install -y environment-modules90 . $CHECK_ROOT && yum install -y environment-modules || apt install -y environment-modules
91+ if [ $? -ne 0 ]; then
92+ echo "[ERROR] environment-modules安装失败"
93+ exit 1
94+ fi
81 source /etc/profile95 source /etc/profile
82fi96fi
97+ 
98+echo "[INFO] 成功完成初始化"
99+ 
Mjarvis+11-7
@@ -1,10 +1,14 @@
1#!/bin/bash1#!/bin/bash
2-echo -e "\e[1;31m __ ___ .______ ____ ____ __ _______. ";2+CUR_SESSION_LEADER_ID=$(ps -o sid= -p $$)
3-echo -e "\e[1;32m | | / \ | _ \ \ \ / / | | / | ";3+CUR_PPID=$PPID
4-echo -e "\e[1;33m | | / ^ \ | |_) | \ \/ / | | | (----\` ";4+if [[ ${CUR_PPID} == ${CUR_SESSION_LEADER_ID} ]]; then
5-echo -e "\e[1;34m .--. | | / /_\ \ | / \ / | | \ \ ";5+ echo -e "\e[1;31m __ ___ .______ ____ ____ __ _______. ";
6-echo -e "\e[1;35m | \`--' | / _____ \ | |\ \----. \ / | | .----) | ";6+ echo -e "\e[1;32m | | / \ | _ \ \ \ / / | | / | ";
7-echo -e "\e[1;36m \______/ /__/ \__\ | _| \`._____| \__/ |__| |_______/ ";7+ echo -e "\e[1;33m | | / ^ \ | |_) | \ \/ / | | | (----\` ";
8-echo -e "\e[0m"8+ echo -e "\e[1;34m .--. | | / /_\ \ | / \ / | | \ \ ";
9+ echo -e "\e[1;35m | \`--' | / _____ \ | |\ \----. \ / | | .----) | ";
10+ echo -e "\e[1;36m \______/ /__/ \__\ | _| \`._____| \__/ |__| |_______/ ";
11+ echo -e "\e[0m"
12+fi
9#prevent whitespace problems13#prevent whitespace problems
10python3 ./src/jarvis.py "$@"14python3 ./src/jarvis.py "$@"
@@ -5,6 +5,31 @@ url=
5filename=5filename=
6OPTIND=16OPTIND=1
7 7 
8+function downloadfile(){
9+ if [ "$type_" == "wget" ];then
10+ if [[ $UseDev -eq 1 ]]; then
11+ echo -e "\033[0;32m[Info]\033[0m:Using commands: wget $url -O $exist_path --no-check-certificate"
12+ fi
13+ wget $url -O $exist_path --no-check-certificate || rm -rf $exist_path
14+ elif [ "$type_" == "git" ];then
15+ if [[ $UseDev -eq 1 ]]; then
16+ echo -e "\033[0;32m[Info]\033[0m:Using commands: git clone $url $exist_path"
17+ fi
18+ git clone $url $exist_path
19+ else
20+ echo -e "\033[0;31m[Error]\033[0m:Unsupported download mode:"$type_
21+ exit 0
22+ fi
23+ 
24+ #下载失败
25+ if [ $? != 0 ];then
26+ rm -rf $exist_path
27+ echo -e "\033[0;31m[Error]\033[0m:Download failed:"$url
28+ exit 0
29+ fi
30+}
31+ 
32+ 
8while getopts ":u:f:t:" opt;33while getopts ":u:f:t:" opt;
9do34do
10 case $opt in35 case $opt in
@@ -36,23 +61,13 @@ fi
36 61 
37#判断文件是否存在62#判断文件是否存在
38if [ ! -e $exist_path ];then63if [ ! -e $exist_path ];then
39- if [ "$type_" == "wget" ];then64+ downloadfile
40- echo -e "\033[0;32m[Info]\033[0m:Using commands: wget $url -O $exist_path --no-check-certificate"
41- wget $url -O $exist_path --no-check-certificate || rm -rf $exist_path
42- elif [ "$type_" == "git" ];then
43- echo -e "\033[0;32m[Info]\033[0m:Using commands: git clone $url $exist_path"
44- git clone $url $exist_path
45- else
46- echo -e "\033[0;31m[Error]\033[0m:Unsupported download mode:"$type_
47- exit 0
48- fi
49- 
50- #下载失败
51- if [ $? != 0 ];then
52- rm -rf $exist_path
53- echo -e "\033[0;31m[Error]\033[0m:Download failed:"$url
54- exit 0
55- fi
56else65else
57- echo -e "\033[0;32m[Info]\033[0m:"$exist_path" already exist"66+ fileSize=`ll $exist_path |awk '{print $5}'`
67+ if [ "$fileSize" -eq 0 ]; then
68+ rm -rf $exist_path
69+ downloadfile
70+ else
71+ echo -e "\033[0;32m[Info]\033[0m:"$exist_path" already exist"
72+ fi
58fi73fi
@@ -1,5 +1,9 @@
1#!/bin/bash1#!/bin/bash
2-set -x2+if [[ $UseDev -eq 1 ]]; then
3+ set -x
4+else
5+ set +x
6+fi
3set -e7set -e
4#hpckit_ver="24.0.RC1"8#hpckit_ver="24.0.RC1"
5. ${DOWNLOAD_TOOL} -u https://mirrors.huaweicloud.com/kunpeng/archive/HPC/HPCKit/HPCKit_${hpckit_ver}_Linux-aarch64.tar.gz9. ${DOWNLOAD_TOOL} -u https://mirrors.huaweicloud.com/kunpeng/archive/HPC/HPCKit/HPCKit_${hpckit_ver}_Linux-aarch64.tar.gz
@@ -11,7 +15,7 @@ fi
11cd HPCKit_${hpckit_ver}_Linux-aarch6415cd HPCKit_${hpckit_ver}_Linux-aarch64
12sh install.sh -y --prefix=$116sh install.sh -y --prefix=$1
13 17 
14-software_path="$1/../../.."18+software_path="${JARVIS_ROOT}/software"
15if [ ! -d ${software_path}/modulefiles/hpckit${hpckit_ver} ];then19if [ ! -d ${software_path}/modulefiles/hpckit${hpckit_ver} ];then
16 ln -s $1/HPCKit/latest/modulefiles ${software_path}/modulefiles/hpckit${hpckit_ver}20 ln -s $1/HPCKit/latest/modulefiles ${software_path}/modulefiles/hpckit${hpckit_ver}
17 21
@@ -23,9 +27,9 @@ if [ ! -d ${software_path}/modulefiles/hpckit${hpckit_ver} ];then
23fi27fi
24 28 
25export HPCKIT_VERSION=${hpckit_ver}29export HPCKIT_VERSION=${hpckit_ver}
26-file_path="${JARVIS_ROOT}/software/utils/hpckit/${HPCKIT_VERSION}/HPCKit/${HPCKIT_VERSION}/modulefiles/bisheng"30+file_path="$1/HPCKit/${HPCKIT_VERSION}/modulefiles/bisheng"
27export BISHENG_VERSION=`ls $file_path|grep compiler|awk -F "compiler" '{print $2}'`31export BISHENG_VERSION=`ls $file_path|grep compiler|awk -F "compiler" '{print $2}'`
28export HMPI_VERSION=`ls $file_path|grep hmpi|awk -F "hmpi" '{print $2}'`32export HMPI_VERSION=`ls $file_path|grep hmpi|awk -F "hmpi" '{print $2}'`
29 33 
30echo -e "HPCKit has installed in your environment."34echo -e "HPCKit has installed in your environment."
31-echo -e "你正在使用 $HPCKIT_VERSION 版本的 HPCKKit"35+echo -e "你正在使用 $HPCKIT_VERSION 版本的 HPCKit"
@@ -2,5 +2,5 @@
2git config core.fileMode false2git config core.fileMode false
3git config --global user.name 'xxx'3git config --global user.name 'xxx'
4git config --global user.email 'xxx@qq.com'4git config --global user.email 'xxx@qq.com'
5-git remote add upstream https://gitee.com/openeuler/hpcrunner.git5+git remote add upstream https://atomgit.com/openeuler/hpcrunner.git
6-#git remote set-url upstream https://gitee.com/openeuler/hpcrunner.git6+#git remote set-url upstream https://atomgit.com/openeuler/hpcrunner.git
@@ -80,8 +80,8 @@ class AnalysisService:
80 def env(self):80 def env(self):
81 self.jenv.env()81 self.jenv.env()
82 82
83- def install(self,install_args):83+ def install(self,install_args, prefix=None):
84- self.jinstall.install(install_args)84+ self.jinstall.install(install_args, prefix)
85 85
86 def get_install_list(self):86 def get_install_list(self):
87 self.jinstall.list()87 self.jinstall.list()
@@ -1,9 +1,15 @@
1#!/usr/bin/env python31#!/usr/bin/env python3
2# -*- coding: utf-8 -*- 2# -*- coding: utf-8 -*-
3import os3import os
4+import subprocess
4from dataService import DataService5from dataService import DataService
5from executeService import ExecuteService6from executeService import ExecuteService
6from toolService import ToolService7from toolService import ToolService
8+def run_command(command):
9+ # 使用os.system执行命令
10+ os.system(command)
11+ 
12+ 
7 13 
8class ConfigService:14class ConfigService:
9 def __init__(self):15 def __init__(self):
@@ -26,5 +32,7 @@ class ConfigService:
26 print(f"key [{key}] not found in {config_file}, switch failed.")32 print(f"key [{key}] not found in {config_file}, switch failed.")
27 return33 return
28 self.tool.write_file(self.meta_path, config_file.strip())34 self.tool.write_file(self.meta_path, config_file.strip())
35+ #os.system('bash -c "source dep_install/install_hpckit.sh"')
36+ run_command("source dep_install/install_hpckit.sh")
29 print("Successfully switched. config file saved in file .meta")37 print("Successfully switched. config file saved in file .meta")
30 38 
@@ -27,7 +27,7 @@ From: {image}
27 yum install -y tcsh tcl lsof tk bc 27 yum install -y tcsh tcl lsof tk bc
28 source /etc/profile || true28 source /etc/profile || true
29 git config --global http.sslVerify false29 git config --global http.sslVerify false
30- git clone https://gitee.com/openeuler/hpcrunner30+ git clone https://atomgit.com/openeuler/hpcrunner.git
31 cd hpcrunner31 cd hpcrunner
32 source ./init.sh32 source ./init.sh
33 # add your personal files here33 # add your personal files here
@@ -71,6 +71,7 @@ class DataService(object,metaclass=Singleton):
71 return DataService.config_file71 return DataService.config_file
72 return self.tool.read_file(DataService.meta_file)72 return self.tool.read_file(DataService.meta_file)
73 73 
74+
74 def get_data_config(self):75 def get_data_config(self):
75 file_name = self.get_config_file_name()76 file_name = self.get_config_file_name()
76 file_path = self.get_abspath(file_name)77 file_path = self.get_abspath(file_name)
@@ -19,8 +19,8 @@ class DownloadService:
19 def check_network(self):19 def check_network(self):
20 print(f"start network checking")20 print(f"start network checking")
21 network_test_cmd = '''21 network_test_cmd = '''
22-wget --spider -T 5 -q -t 2 www.baidu.com | echo $?22+curl -s --connect-timeout 5 --head --request GET https://gitee.com > /dev/null
23-curl -s -o /dev/null www.baidu.com | echo $?23+if [ $? -ne 0 ]; then echo "[ERROR] 当前网络异常,无法连接gitee,请检查网络"; env | egrep "http_proxy|https_proxy" > /dev/null; if [ $? -ne 0 ]; then echo "[WARNING] 未配置proxy代理"; fi; dns_info1=$(cat /etc/resolv.conf | grep -v "#" | grep nameserver); dns_info2=$(nmcli device show | grep DNS); if [ -z "${dns_info1}" ] && [ -z "${dns_info2}" ]; then echo "[WARNING] 未配置DNS信息"; fi; fi
24 '''24 '''
25 self.exe.exec_raw(network_test_cmd)25 self.exe.exec_raw(network_test_cmd)
26 26 
@@ -112,7 +112,7 @@ class InstallService:
112 def get_hmpi_info(self):112 def get_hmpi_info(self):
113 name = 'hmpi'113 name = 'hmpi'
114 114 
115- ucg_info = self.get_cmd_output("ucg_info -v |grep version")[0]115+ ucg_info = self.get_cmd_output("ucg_info -v |grep version")[-1]
116 if "UCG" in ucg_info:116 if "UCG" in ucg_info:
117 version = ucg_info.split()[3]117 version = ucg_info.split()[3]
118 else:118 else:
@@ -415,7 +415,6 @@ setenv {sname.upper().replace('-','_')}_PATH {install_path}
415 other_args_uni = ' '.join(other_args)415 other_args_uni = ' '.join(other_args)
416 #print(other_args)416 #print(other_args)
417 install_cmd = f'''417 install_cmd = f'''
418-source ./init.sh
419cd {abs_software_path}418cd {abs_software_path}
420chmod +x {install_script}419chmod +x {install_script}
421./{install_script} {install_path} {other_args_uni}420./{install_script} {install_path} {other_args_uni}
@@ -427,6 +426,12 @@ chmod +x {install_script}
427 print("install failed")426 print("install failed")
428 sys.exit(1)427 sys.exit(1)
429 428 
429+ def ensure_symlink(self, real_path, logical_path):
430+ if os.path.islink(logical_path) or os.path.exists(logical_path):
431+ return
432+ self.tool.mkdirs(os.path.dirname(logical_path))
433+ os.symlink(real_path, logical_path)
434+ 
430 def add_install_info(self, software_info, install_path):435 def add_install_info(self, software_info, install_path):
431 software_dict = {}436 software_dict = {}
432 software_dict['name'] = software_info['sname']437 software_dict['name'] = software_info['sname']
@@ -441,14 +446,14 @@ chmod +x {install_script}
441 software_path = software_path.replace('package/', '', 1)446 software_path = software_path.replace('package/', '', 1)
442 return software_path447 return software_path
443 448 
444- def install(self, install_args):449+ def install(self, install_args, prefix=None):
445 software_path = install_args[0]450 software_path = install_args[0]
446 compiler_mpi_info = install_args[1]451 compiler_mpi_info = install_args[1]
447 other_args = install_args[2:]452 other_args = install_args[2:]
448 self.tool.prt_content("INSTALL " + software_path)453 self.tool.prt_content("INSTALL " + software_path)
449 compilers = {"GCC":self.get_gcc_info, "CLANG":self.get_clang_info,454 compilers = {"GCC":self.get_gcc_info, "CLANG":self.get_clang_info,
450 "NVC":self.get_nvc_info, "ICC":self.get_icc_info,455 "NVC":self.get_nvc_info, "ICC":self.get_icc_info,
451- "BISHENG":self.get_clang_info}456+ "BISHENG":self.get_clang_info}
452 software_path = self.remove_prefix(software_path)457 software_path = self.remove_prefix(software_path)
453 # software_path should exists458 # software_path should exists
454 abs_software_path = self.check_software_path(software_path)459 abs_software_path = self.check_software_path(software_path)
@@ -456,6 +461,7 @@ chmod +x {install_script}
456 compiler_mpi_info = self.check_compiler_mpi(compilers.keys(), compiler_mpi_info)461 compiler_mpi_info = self.check_compiler_mpi(compilers.keys(), compiler_mpi_info)
457 if not compiler_mpi_info: return462 if not compiler_mpi_info: return
458 software_info = self.get_software_info(software_path, compiler_mpi_info)463 software_info = self.get_software_info(software_path, compiler_mpi_info)
464+ software_name = software_info.get('sname')
459 stype = software_info['type']465 stype = software_info['type']
460 # get compiler name and version466 # get compiler name and version
461 env_info = self.get_compiler_info(compilers, compiler_mpi_info)467 env_info = self.get_compiler_info(compilers, compiler_mpi_info)
@@ -469,20 +475,28 @@ chmod +x {install_script}
469 print(f"Use Compiler: {env_info['cname']} {cfullver}")475 print(f"Use Compiler: {env_info['cname']} {cfullver}")
470 476
471 # get install path477 # get install path
472- install_path = self.get_install_path(software_info, env_info)478+ logical_install_path = self.get_install_path(software_info, env_info)
473- if not install_path: return479+ if not logical_install_path:
480+ return
481+ if prefix:
482+ real_install_path = logical_install_path.replace(self.SOFTWARE_PATH, os.path.join(prefix, "software"), 1)
483+ else:
484+ real_install_path = logical_install_path
474 # get install script485 # get install script
475- self.install_package(abs_software_path, install_path, other_args)486+ self.install_package(abs_software_path, real_install_path, other_args)
487+ # create soft link from realpath to hpcrunner/software
488+ self.ensure_symlink(real_install_path, logical_install_path)
476 # add install info489 # add install info
477- self.add_install_info(software_info, install_path)490+ self.add_install_info(software_info, logical_install_path)
478 # gen module file491 # gen module file
479- self.gen_module_file( install_path, software_info, env_info)492+ if software_name == 'hpckit':
493+ return
494+ self.gen_module_file(logical_install_path, software_info, env_info)
480 495 
481 def install_depend(self):496 def install_depend(self):
482 depend_file = 'depend_install.sh'497 depend_file = 'depend_install.sh'
483 print(f"start installing dependendcy of {DataService.app_name}")498 print(f"start installing dependendcy of {DataService.app_name}")
484 depend_content = f'''499 depend_content = f'''
485-source ./init.sh
486{DataService.dependency}500{DataService.dependency}
487'''501'''
488 self.tool.write_file(depend_file, depend_content)502 self.tool.write_file(depend_file, depend_content)
@@ -18,6 +18,7 @@ class Jarvis:
18 parser.add_argument("-loop","--loop", help=f"get loop simulation code", action="store_true")18 parser.add_argument("-loop","--loop", help=f"get loop simulation code", action="store_true")
19 #accept software_name/version GCC/GCC+MPI/CLANG/CLANG+MPI19 #accept software_name/version GCC/GCC+MPI/CLANG/CLANG+MPI
20 parser.add_argument("-install","--install", help=f"install dependency", nargs='+')20 parser.add_argument("-install","--install", help=f"install dependency", nargs='+')
21+ parser.add_argument("-prefix","--prefix", help="custom install root for software (only valid with -install)", default=None)
21 #remove22 #remove
22 parser.add_argument("-remove","--remove", help=f"remove software", nargs=1)23 parser.add_argument("-remove","--remove", help=f"remove software", nargs=1)
23 #find24 #find
@@ -63,7 +64,7 @@ class Jarvis:
63 64 
64 def main(self):65 def main(self):
65 if self.args.version:66 if self.args.version:
66- print("V1.0")67+ print("V2.4.1.RC1")
67 68
68 if self.args.info:69 if self.args.info:
69 self.analysis.get_machine_info()70 self.analysis.get_machine_info()
@@ -78,7 +79,7 @@ class Jarvis:
78 self.analysis.install_deps()79 self.analysis.install_deps()
79 80 
80 if self.args.install:81 if self.args.install:
81- self.analysis.install(self.args.install)82+ self.analysis.install(self.args.install, prefix=self.args.prefix)
82 83
83 if self.args.remove:84 if self.args.remove:
84 self.analysis.remove(self.args.remove[0])85 self.analysis.remove(self.args.remove[0])
@@ -1,6 +1,6 @@
1测试流程1测试流程
21、下载jarvis21、下载jarvis
3-git clone https://gitee.com/openeuler/hpcrunner.git3+git clone https://atomgit.com/openeuler/hpcrunner.git
4cd hpcrunner4cd hpcrunner
5 5 
62、获取jarvis应用模板62、获取jarvis应用模板
@@ -18,7 +18,6 @@ rm -rf hpl-2.3
18tar -xzvf $JARVIS_DOWNLOAD/hpl-2.3.tar.gz18tar -xzvf $JARVIS_DOWNLOAD/hpl-2.3.tar.gz
19 19 
20[ENV]20[ENV]
21-source ./init.sh
22module purge21module purge
23module use ./software/modulefiles22module use ./software/modulefiles
24module load bisheng/2.5.023module load bisheng/2.5.0
@@ -20,7 +20,6 @@ if [ ! -d "hpl-2.3" ]; then
20fi20fi
21 21 
22[ENV]22[ENV]
23-source ./init.sh
24module purge23module purge
25module use ./software/modulefiles24module use ./software/modulefiles
26module load bisheng/2.5.025module load bisheng/2.5.0
@@ -0,0 +1,43 @@
1+[SERVER]
2+11.11.11.11
3+ 
4+[DOWNLOAD]
5+qe/7.3 https://gitlab.com/QEF/q-e/-/archive/qe-7.3/q-e-qe-7.3.tar
6+ 
7+[DEPENDENCY]
8+source $JARVIS_ENV
9+ 
10+[ENV]
11+source $JARVIS_ENV
12+export PATH=${JARVIS_ROOT}/q-e-qe-7.3-kml/bin:$PATH
13+ 
14+ 
15+[APP]
16+app_name = QE
17+build_dir = ${JARVIS_TMP}/q-e-qe-7.3
18+binary_dir =
19+case_dir =
20+ 
21+[BUILD]
22+if [[ $UseDev -eq 1 ]]; then
23+ set -x
24+else
25+ set +x
26+fi
27+ 
28+cd ${JARVIS_TMP}
29+tar -xf ${JARVIS_DOWNLOAD}/q-e-qe-7.3.tar
30+cd q-e-qe-7.3
31+ 
32+./configure F90=flang F77=flang FC=flang MPIF90=mpifort MPIF77=mpifort CC=mpicc FCFLAGS="-O3 -mcpu=hip09 -mllvm -force-customized-pipeline=true" CFLAGS="-O3 -mcpu=hip09 -mllvm -force-customized-pipeline=true" --with-scalapack=no --enable-openmp --prefix=$JARVIS_ROOT/q-e-qe-7.3-kml
33+sed -i 's/gfortran/flang/g' make.inc
34+make -j pwall
35+make install
36+ 
37+[CLEAN]
38+make clean
39+ 
40+[RUN]
41+run =
42+binary =
43+nodes = 1