diff --git a/README.md b/README.md
index 3a2fa7c62eb661dbca2dca62c35f43a6332ce7fb..13837e4845d5036a55e39144e6340369ad3c4b05 100644
--- a/README.md
+++ b/README.md
@@ -1,13 +1,13 @@
# HPCRunner : 贾维斯智能助手
-## ***愿景:自动容器化助力极简部署,一站式调优HPC应用***
+## **愿景:自动容器化助力极简部署,一站式调优HPC应用**

-### 项目背景
+## 项目背景
HPC被喻为是IT行业“金字塔上的明珠”,其部署、编译、运行、性能采集分析的门槛非常高,不同的机器上部署HPC应用耗费大量精力,而且很多情况下需要同时部署ARM/X86两套环境进行验证,增加了很多的重复性工作,无法聚焦核心算法优化。

-### 项目特色
+## 项目特色
- 支持ARM/X86,一键部署,采用业界权威依赖目录结构管理海量依赖,自动生成module file
- 根据HPC配置实现一键编译运行、一键CPU/GPU性能采集、一键Benchmark.
@@ -19,11 +19,11 @@
- (未来) 集群性能分析工具.
- (未来) 智能调优.
-### 目录结构
+## 目录结构
| 目录/文件 | 说明 | 备注 |
| --------- | ---------------------------------- | -------- |
-| benchmark | 矩阵运算、OpenMP、MPI、P2P性能测试 | |
+| benchmark | HPL、Stream、矩阵运算、OpenMP、MPI、P2P等性能测试 | |
| doc | 文档 | |
| downloads | 存放依赖库源码包/压缩包 | |
| examples | 性能小实验 | |
@@ -36,252 +36,125 @@
| init.sh | 贾维斯初始化文件 | |
| jarvis | 贾维斯启动入口 | |
-### 支持安装的依赖列表
-| 软件名 | 软件信息 | 类别 |
-| ------- | -------------- | --------- |
-| antlr | 代码生成器,用于构建编译器和解释器 | 开发工具 |
-| cairo | 2D图形库,支持多种输出设备和格式 | 图像处理 |
-| fftw | 快速傅里叶变换库,支持多种算法和精度 | 数学库 |
-| go | 编程语言,具有高效的垃圾回收和并发特性 | 开发工具 |
-| htslib | 高通量测序数据处理库,支持多种常见格式的文件操作 | 数据库 |
-| kfft | 快速傅里叶变换库鲲鹏版本 | 数学库 |
-| libxml2 | 轻量级、可移植的XML解析库 | 开发工具 |
-| nvhpc | NVIDIA HPC SDK,包含CUDA和Fortran编译器 | 开发工具 |
-| osu | 基准测试套件,用于衡量系统性能 | 性能评估 |
-| Porting | HPC应用迁移工具,支持将应用迁移到鲲鹏 | 应用迁移 |
-| scotch | 科学计算软件包,包括图划分、矩阵操作等模块 | 科学计算 |
-| vis5dplus | 五维数据可视化软件,支持多种数据格式和渲染方式 | 可视化 |
-| arpack | 稀疏矩阵特征值计算库 | 数学库 |
-| automake | GNU Autotools工具集的一部分,用于生成Makefile | 开发工具 |
-| cmake | 用于管理C/C++软件构建和依赖关系的跨平台工具 | 开发工具 |
-| freetype | TrueType字体渲染引擎 | 图像处理 |
-| g2clib | 处理GRIB和GRIB2格式气象数据的库 | 数据库 |
-| grads | 可视化气象数据的软件 | 可视化 |
-| grib_api | 处理GRIB和BUFR格式气象数据的库 | 数据库 |
-| Hyper-tuner | 高性能计算任务调优工具 | 性能优化 |
-| hypre | 大规模稀疏线性系统求解器 | 数学库 |
-| kgcc | 基于鲲鹏平台极致优化的GCC编译器 | 开发工具 |
-| kml | 基于鲲鹏平台极致优化的数学库 | 数学库 |
-| mesa | 开源3D图形库 | 图像处理 |
-| metis | 图划分和重排列库 | 科学计算 |
-| oneapi | Intel开发的工具包,支持各种体系结构的HPC应用 | 开发工具 |
-| openblas | 线性代数库,实现BLAS接口 | 数学库 |
-| parmetis | 划分大型稀疏图形的高性能库 | 科学计算 |
-| petsc | 大规模科学计算软件包 | 科学计算 |
-| precice | 进程耦合库,用于将不同物理学模型耦合起来 | 应用部署 |
-| proj | 地理空间数据处理库 | 地理信息 |
-| singularity | 容器化解决方案 | 应用部署 |
-| slepc | 大规模特征值计算库 | 数学库 |
-| wxWidgets | 跨平台窗口工具包 | 开发工具 |
-| yaml-cpp | C++ YAML解析器和生成器 | 开发工具 |
-| bedtools | 用于基因组特征分析的软件 | 数据库 |
-| ctffind | 基于图像处理的电子显微镜聚焦软件 | 图像处理 |
-| gatk | 基因组变异分析工具 | 序列分析 |
-| gsl | GNU科学库,提供多种数学函数和数据结构 | 数学库 |
-| ImageMagick | 处理图像的开源软件 | 图像处理 |
-| lapack | 线性代数库,主要实现了BLAS接口 | 数学库 |
-| mfem | 可扩展有限元方法库 | 数学库 |
-| opencoarrays | 并行编程库 | 开发工具 |
-| picard | 处理生物信息数据的Java库 | 序列分析 |
-| python3 | Python编程语言的最新版本 | 开发工具 |
-| spglib | 空间群处理库 | 科学计算 |
-| zlib | 压缩库 | 工具库 |
-| bisheng | 基于鲲鹏极致优化的毕晟编译器,基于LLVM体系 | 开发工具 |
-| blas | 基本线性代数子程序 | 数学库 |
-| curl | 数据传输工具 | 工具库 |
-| cuda | NVIDIA的并行计算平台 | 并行编程 |
-| gcc | GNU C和C++编译器 | 开发工具 |
-| gdal | 用于地理空间数据转换和处理的开源库 | 地理信息 |
-| hdf4 | HDF4数据文件格式处理库 | 科学计算 |
-| hdf5 | HDF5数据文件格式处理库 | 科学计算 |
-| ioapi | 常见大气化学模型输出和输入预处理库 | 数据库 |
-| IPM | 描述HPC应用程序的性能测量的套件 | 性能优化 |
-| libint | 提供高精度库令积分的C库 | 数学库 |
-| libjpeg | JPEG图像压缩/解压缩库 | 图像处理 |
-| mpich | 高性能消息传递接口库 | 并行编程 |
-| mumps | 大规模稀疏线性系统求解器 | 数学库 |
-| opencv | 开源计算机视觉和机器学习软件库 | 图像处理 |
-| openjpeg | 用于压缩JPEG2000数据的开源库 | 图像处理 |
-| pio | 访问并行IO的工具 | 数据库 |
-| pixman | 图像处理和绘图库 | 图像处理 |
-| R | 开源统计计算和绘图软件 | 开发工具 |
-| spooles | 大规模稀疏线性代数Solver | 数学库 |
-| szip | 压缩库 | 工具库 |
-| boost | 十多年来一直是C++开发人员不可或缺的库 | 开发工具 |
-| bowtie2 | 测序匹配工具 | 序列分析 |
-| darshan | HPC应用程序性能分析工具,IO性能分析 | 性能优化 |
-| eigen3 | C++模版实现的线性代数库 | 数学库 |
-| glibc | GNU C语言库 | 工具库 |
-| git | 分布式版本控制系统 | 开发工具 |
-| hdf-eos2 | HDF-EOS2数据集处理库 | 科学计算 |
-| hdf-eos5 | HDF-EOS5数据集处理库 | 科学计算 |
-| jasper | 图像压缩/解压缩库 | 图像处理 |
-| jellyfish | 海星组装工具 | 序列分析 |
-| libpng | PNG图像格式处理库 | 图像处理 |
-| libvori | 计算相邻格点之间夹角,适用于大尺寸网格 | 科学计算 |
-| ncl | NCAR命令语言 | 开发工具 |
-| ncview | 可视化海洋和气象数据 | 可视化 |
-| openlb | 模拟流体现象的软件 | 科学计算 |
-| openmpi | 高性能消息传递接口库 | 并行编程 |
-| pkg-config | 安装GNU和Unix的编译器等工具所需的参数 | 工具库 |
-| plumed | 对构象变化进行统计物理和化学分析的软件包 | 序列分析 |
-| samtools | 处理NGS数据的磁盘和内存带索引文件的命令列表 | 数据库 |
-| salmon | 快速准确地从RNA-seq读数估计转录本表达水平 | 数据库 |
-| tau | HPC应用程序性能分析工具 | 性能优化 |
-| udunits | 单位标准化的C程序中用于解释单位 | 开发工具 |
-| bwa | 测序匹配工具 | 序列分析 |
-| elpa | 提供多种实现和算法的Eigenvalue求解器 | 数学库 |
-| gmp | 高精度计算库 | 数学库 |
-| hmpi | 高性能消息传递接口库 | 并行编程 |
-| kahip | 图划分库 | 图形计算 |
-| libxc | C语言库,可用于从交换关联功能获得DFT近似 | 数学库 |
-| netcdf | 处理气象和海洋科学等领域大型科学数据的C库 | 科学计算 |
-| optimized-routines | BLAS,LAPACK和这些程序中相关库的优化版本 | 数学库 |
-| pnetcdf | 访问并行I/O的工具库 | 数据库 |
-| scalapack | 大规模稠密线性代数求解器 | 数学库 |
-| valgrind | 内存调试和性能分析工具 | 开发工具 |
-
-### 支持安装的HPC应用列表
-
-| 应用名 | 应用信息 | 领域 |
-| ---------------- | --------------------------------------------- | --------- |
-| abinit | 第一个完全自主实现密度泛函理论的程序 | 科学计算 |
-| agcm | 气象局自主研发的全球大气环流谱模式 | 大气科学 |
-| amber | 分子动力学模拟软件 | 生命科学 |
-| bowtie2 | 测序匹配工具 | 序列分析 |
-| bwa | 分析二代测序数据 | 序列分析 |
-| calculix | 有限元分析代码 | 工程 |
-| duns | 模拟大气化学反应 | 大气科学 |
-| elmer | 多物理场模拟系统 | 数学库 |
-| grapes | 气象预报应用 | 大气科学 |
-| gromacs | 生物分子动力学软件 | 生命科学 |
-| imb | Intel MPI Benchmarks | 性能优化 |
-| ImageMagick | 图像处理命令行工具 | 图像处理 |
-| ioapi | I/O API支持emission和achimie模型 | 大气科学 |
-| mg-cfd | 并行计算流体力学软件 | 科学计算 |
-| mfem | 软件库,解决非线性问题和超大规模的并行问题 | 数学库 |
-| nco | 并行化Unix / Linux命令行工具,可用于处理NetCDF文件 | 科学计算 |
-| nwchem | 高性能计算量子化学模拟软件 | 化学 |
-| ncview | 可视化海洋和气象数据 | 可视化 |
-| openfoam | 开源的CFD软件 | 科学计算 |
-| openjpeg | 图像格式处理库 | 图像处理 |
-| openlb | 模拟流体现象的软件 | 科学计算 |
-| opencv | 开源计算机视觉库 | 计算机视觉 |
-| pytorch | Python语言驱动的深度学习框架 | 机器学习 |
-| qe | 第一个基于密度泛函理论的自由软件 | 科学计算 |
-| qmcpack | 基于Monte Carlo方法的量子物理仿真程序 | 物理学 |
-| samtools | 处理NGS数据的磁盘和内存带索引文件的命令列表 | 数据库 |
-| scotch | 图划分库 | 图形计算 |
-| siesta | 第一性原理计算软件 | 物理学 |
-| SU2 | 开源大规模CFD程序 | 科学计算 |
-| trinity | RNA-seq transcriptome拼装器 | 序列分析 |
-| udunits | C程序中用于解释单位的库 | 开发工具 |
-| bcc-esm | 全球气候系统模型 | 大气科学 |
-| bedtools | 常见的基因组工具 | 生命科学 |
-| blast | 序列匹配软件 | 序列分析 |
-| CMAQ | 使用化学传输模型的空气质量建模工具 | 大气科学 |
-| CP2K | 高精度物理和化学模拟 | 科学计算 |
-| CESM | 全球气候模型 | 大气科学 |
-| ctffind | 粒子旋转平均程序,用于酶成像等领域 | 生命科学 |
-| fvcom | 具有海洋生态动力学和水质应用的三维浪涌模型 | 海洋科学 |
-| gatk | 基因组变异检测框架 | 生命科学 |
-| grads | 可视化大气-土壤系统模型 | 数据可视化 |
-| hpcg | 并行HPC线性求解器性能基准 | 性能优化 |
-| hpl | HPL CheckRecd性能基准 | 性能优化 |
-| htslib | 用于高通量序列数据处理的C库 | 生命科学 |
-| jasper | JPEG-2000图像压缩库 | 图像处理 |
-| lammps | 大型分子动力学软件 | 生命科学 |
-| libjpeg | 压缩和解压缩JPEG影象 | 图像处理 |
-| miniFE | 有限元求解器 | 工程 |
-| mumps | 并行稠密和稀疏直接线性求解器 | 数学库 |
-| namd | 大规模分子动力学仿真软件 | 生命科学 |
-| ncl | NCAR Command Language,用于气象和大气科学 | 大气科学 |
-| octave | 数值计算软件包 | 数学库 |
-| octopus | 有限成键密度泛函理论程序 | 科学计算 |
-| OpenCoarrays | 使用Fortran COARRAYS的并行编程模式 | 并行编程 |
-| op2 | 一种快速GPU加速的稠密矩阵操作库 | 数学库 |
-| picard | 工具套件,用于操纵大规模数据集 | 生命科学 |
-| petsc | 并行线性代数工具 | 数学库 |
-| rmaps-now | 短时预报应用 | 大气科学 |
-| relion | 单粒子冷冻电镜图像处理软件 | 生命科学 |
-| roms | 海洋环境建模工具 | 海洋科学 |
-| SPECFEM3D_GLOBE | 全球弹性波地震模拟 | 地球物理 |
-| slepc | 大型特征值问题求解器 | 数学库 |
-| stream | 用于衡量计算机系统内存带宽的性能,为数据读写的不同操作提供独立的评估 | 性能优化 |
-| wannier90 | 转换Bloch波函数为Wannier函数的程序 | 物理学 |
-| wrf | 天气预报和研究模型 | 大气科学 |
-| wxWidgets | 用于创建跨平台GUI应用程序的开发工具 | 开发工具 |
-
-
-### 使用说明
-
-1.下载包解压之后初始化
+## 环境依赖
+
+- X86/ARM架构
+- python3
+- LinuxOS
+
+## 贾维斯使用流程
+
+1、开发应用模板
+
+贾维斯中包含典型HPC应用模板, 位于目录”hpcrunner/template”中,可直接使用。如要新增应用模板,需遵循一定的格式新建自定义文件app.config。
+
+配置文件格式如下所示
+
+| **配置项** | **说明** | **示例** |
+| ------------ | ------------------------------------------------------------ | ------------------------------------------------------------ |
+| [SERVER] | 指定节点列表,按行书写,用于自动生成hostfile | 11.11.11.11
22.22.22.22 |
+| [DOWNLOAD] | 格式:app/appversion download_url [alias]
**注:**在没有网络场景下,可提前将下载好的安装包放置在hpcrunner/downloads目录下 | cp2k/8.2 https://github.com/extdomains/github.com/cp2k/cp2k/releases/download/v8.2.0/cp2k-8.2.tar.bz2 |
+| [DEPENDENCY] | HPC应用所需安装的依赖软件 | ./jarvis -install gmp/6.2.0 clang
./jarvis -install boost/1.72.0 clang |
+| [ENV] | HPC应用编译运行所需的环境配置 | module use ./software/modulefiles
module load bisheng/3.2.0
module load boost/1.72.0 |
+| [APP] | HPC应用信息,包括应用名、构建路径、二进制路径、算例路径 | app_name = CP2K
build_dir = /home/cp2k-8.2/
binary_dir = /home/CP2K/cp2k-8.2/bin/ case_dir = /home/CP2K/cp2k-8.2/benchmarks/QS/ |
+| [BUILD] | HPC应用构建脚本 | ./configure
make -j
make install |
+| [CLEAN] | HPC应用编译清理脚本 | make clean |
+| [RUN] | HPC应用运行配置,包括前置命令、应用命令和节点个数 | run = mpirun -np 2
binary = cp2k.psmp H2O-256.inp
nodes = 1 |
+| [JOB] | HPC应用作业调度运行配置 | 多瑙作业调度脚本 |
+| [BATCH] | HPC应用批量运行命令**** | #!/bin/bash
mpirun -np 2 cp2k.psmp H2O-256.inp mpirun -np 2 cp2k.psmp H2O-512.inp |
+| [PERF] | 性能分析采集工具额外参数配置 | perf= -o
nsys=
ncu=--target-processes all --launch-skip 71434 --launch-count 1 |
+
+2、生效应用模板
+
+```
+./jarvis -use /path/app.config
+```
+
+3、下载安装包
```
-source ./init.sh
+./jarvis -d
```
-2.修改data.config或者套用现有模板,各配置项说明如下所示:
-
-| 配置项 | 说明 | 示例 |
-| :----------: | :----------------------------------------------------------- | :----------------------------------------------------------- |
-| [SERVER] | 服务器节点列表,多节点时用于自动生成hostfile,每行一个节点 | 11.11.11.11 |
-| [DOWNLOAD] | 每行一个软件的版本和下载链接,默认下载到downloads目录(可设置别名) | cp2k/8.2 https://xxx cp2k.8.2.tar.gz |
-| [DEPENDENCY] | HPC应用依赖安装脚本 | ./jarvis -install gcc/9.3.1 com
module use ./software/modulefiles
module load gcc9 |
-| [ENV] | HPC应用编译运行环境配置 | source env.sh |
-| [APP] | HPC应用信息,包括应用名、构建路径、二进制路径、算例路径 | app_name = CP2K
build_dir = /home/cp2k-8.2/
binary_dir = /home/CP2K/cp2k-8.2/bin/
case_dir = /home/CP2K/cp2k-8.2/benchmarks/QS/ |
-| [BUILD] | HPC应用构建脚本 | make -j 128 |
-| [CLEAN] | HPC应用编译清理脚本 | make -j 128 clean |
-| [RUN] | HPC应用运行配置,包括前置命令、应用命令和节点个数 | run = mpirun -np 2
binary = cp2k.psmp H2O-256.inp
nodes = 1 |
-| [JOB] | HPC应用作业调度运行配置 | 多瑙作业调度脚本 |
-| [BATCH] | HPC应用批量运行命令 | #!/bin/bash
nvidia-smi -pm 1
nvidia-smi -ac 1215,1410 |
-| [LOOP] | HPC循环优化工具 | 将循环代码自动生成可进行性能分析和精度对比的程序 |
-| [PERF] | 性能工具额外参数 | perf= -o
nsys=
ncu=--target-processes all --launch-skip 71434 --launch-count 1 |
-
-3.贾维斯命令大全
-| 功能 | 命令 | 示例/说明 |
-| --- | --- | --- |
-| 一键下载HPC应用 | ./jarvis -d | 应用将自动下载[DOWNLOAD]中地址到downloads目录 |
-| 安装依赖 | ./jarvis -install [package/][name/version/other] [option] | ./jarvis -install bisheng/2.1.0 com |
-| 一键卸载依赖 | ./jarvis -remove xxx | 支持模糊查询 ./jarvis -remove openblas/0.3.18 |
-| 一键下载并安装所有依赖 | ./jarvis -dp |读取配置文件中的[DEPENDENCY]字段内容并按顺序执行 |
-| 输出已安装的软件清单 | ./jarvis -l | 输出清单以相对路径列出 |
-| 查询已安装的软件 | ./jarvis -f xxx | 查询openblas安装路径 ./jarvis -f openblas |
-| 一键生成环境变量| ./jarvis -e | 读取配置文件中的[ENV]字段内容并生成env.sh脚本执行,执行-b/-r会自动生成 |
-| 一键编译 | ./jarvis -b | 自动进入[APP]字段中的build_dir目录,读取配置文件中的[BUILD]字段内容并生成build.sh脚本执行 |
-| 一键运行 | ./jarvis -r | 自动进入[APP]字段中的case_dir目录,读取配置文件中的[RUN]字段内容并生成run.sh脚本执行 |
-| 一键CPU性能采集 | ./jarvis -p | 读取配置文件中的[PERF]字段内容的perf选项 |
-| 一键GPU性能采集 | ./jarvis -gp | 需安装CUDA驱动 |
-| 一键输出服务器信息 | ./jarvis -i | 输出CPU、网卡、OS、内存等信息|
-| 一键服务器性能评测 | ./jarvis -bench all
./jarvis -bench mpi
./jarvis -bench omp
./jarvis -bench gemm | 包括MPI、OMP、P2P等评测 |
-| 切换配置| ./jarvis -use XXX.config | 优先读取环境变量中的JARVIS_CONFIG,否则读取XXX.config,配置文件路径会保存到.meta文件中 |
-| 根据当前配置生成Singularity容器定义文件 | ./jarvis -container docker-hub-address | ./jarvis -container openeuler:openeuler |
-| 更新依赖库的路径 | ./jarvis -u | 如果移动了贾维斯的路径,将自动更新software/modulefiles的路径 |
-| 生成Fortran循环优化代码 | ./jarvis -loop | |
-| 帮助信息 | ./jarvis -h | |
-
-安装依赖的option支持列表如下所示
-
-| 选项值 | 解释 | 安装目录 |
-| ----------- | ----------------------------- | ------------------------- |
-| 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/utils |
-
-### 路标
+4、安装应用依赖
+
+```
+./jarvis -dp
+```
+
+5、编译应用
+
+```
+./jarvis -b
+```
+
+6、运行应用
+
+```
+./jarvis -r
+```
+
+
+
+### 运行示例
+
+使用默认的应用配置部署运行应用QE
+
+```
+./jarvis -use data.config
+./jarvis -d
+./jarvis -dp
+./jarvis -b
+./jarvis -r
+```
+
+
+
+## 贾维斯命令大全
+
+| **功能** | **命令** | **示例/说明** |
+| ------------------------------- | ------------------------------------------------------------ | ------------------------------------------------------------ |
+| 帮助信息 | ./jarvis -h | |
+| 生效应用模板 | ./jarvis -use /path/app.config | 指定所需的应用模板配置文件 |
+| 一键下载HPC应用 | ./jarvis -d | 应用将自动下载[DOWNLOAD]中指定的安装包到downloads目录。
**注:**在没有网络场景下,可提前将下载好的安装包放置到downloads目录下 |
+| 安装依赖 | ./jarvis -install [package/][name/version/other] [option] | 支持安装的软件清单位于package目录下,可在package目录下获取[name/version/other]各字段信息,精确到”install.sh”的上一层目录
各参数具体含义:
package:可选
name:软件名
version:软件版本
other:子版本,”install.sh”的上一层目录
option:指定依赖的编译工具,支持的选项如下表
示例如下:
1. 安装编译器
./jarvis -install hpckit/x.x.x any
module use xxx
module load bisheng/xxx
2. 安装mpi
./jarvis -install hpckit/x.x.x any
module use xxx
module load hmpi/xxx
3. 安装依赖
module use software/module*
module load bisheng/x.x.x
module load hmpi/x.x.x
export CC=mpicc CXX=mpicxx FC=mpifort
./jarvis -install hdf5/1.8.20/clang bisheng+mpi
4. 安装工具
./jarvis -install hpckit/2025.3.30 any
./jarvis -install go/1.18 any |
+| 一键卸载依赖 | ./jarvis -remove xxx | 支持模糊查询 ./jarvis -remove openblas/0.3.18 |
+| 一键下载并安装所有依赖 | ./jarvis -dp | 需要提前指定应用模板./jarvis -use app.config
读取配置文件中的[DEPENDENCY]字段内容并按顺序执行 |
+| 输出已安装的软件清单 | ./jarvis -l | 输出清单以相对路径列出 |
+| 查询已安装的软件 | ./jarvis -f xxx | 查询openblas安装路径 ./jarvis -f openblas |
+| 一键生成环境变量 | ./jarvis -e | 读取配置文件中的[ENV]字段内容并生成env.sh脚本,执行./jarvis -b或./jarvis -r会自动生成并生效 |
+| 一键编译 | ./jarvis -b | 自动进入[APP]字段中的build_dir目录,读取配置文件中的[BUILD]字段内容并生成build.sh脚本执行 |
+| 一键运行 | ./jarvis -r | 自动进入[APP]字段中的case_dir目录,读取配置文件中的[RUN]字段下内容并组装生成run.sh脚本执行 |
+| 一键运行 | ./jarvis -rb | 自动进入[APP]字段中的case_dir目录,读取配置文件中的[BATCH]字段下内容并直接生成batch_run.sh脚本执行 |
+| 一键CPU性能采集 | ./jarvis -p | 读取配置文件中的[PERF]字段下的perf选项内容,然后使用perf工具进行采集信息 |
+| 一键GPU性能采集 | ./jarvis -gp | 读取配置文件中的[PERF]字段下的nsys选项内容,然后使用nsys工具进行采集信息 |
+| 一键输出服务器信息 | ./jarvis -i | 输出CPU、网卡、OS、内存等信息 |
+| 一键评测服务器性能 | ./jarvis -bench all ./jarvis -bench mpi ./jarvis -bench omp ./jarvis -bench gemm | 包括HPL、Stream、MPI、OMP、P2P等评测benchmark支持清单位于目录“hpcrunner/benchmark” |
+| 一键生成Singularity容器定义文件 | ./jarvis -container docker-hub-address | 需要事先指定应用配置./jarvis -use data.config
参数"docker-hub-address"指定基础镜像
示例:./jarvis -container openeuler/openeuler |
+| 更新依赖库的路径 | ./jarvis -u | 如果移动了贾维斯的路径,将自动更新software/modulefiles的路径 |
+
+### option支持列表如下所示
+
+| **选项值** | **解释** | **安装目录** |
+| ----------- | ------------------------------- | ------------------------- |
+| com | 安装编译器 | software/compiler |
+| gcc | 使用gcc进行编译 | software/libs/gcc |
+| gcc+mpi | 使用gcc和当前生效的mpi进行编译 | software/libs/gcc/mpi |
+| bisheng | 使用毕昇进行编译 | software/libs/bisheng |
+| bisheng+mpi | 使用毕昇和当前生效的mpi进行编译 | software/libs/bisheng/mpi |
+| any | 安装工具软件 | software/utils |
+
+## 路标

-### 欢迎贡献
+## FAQ
+
+Q1:如何在没有网络的环境下使用贾维斯部署软件?
+
+A:将事先下载好的安装包放置到downloads目录下即可进行后续安装操作。
+
+## 欢迎贡献
贾维斯项目欢迎您的专业技能和热情参与!
@@ -299,7 +172,7 @@ source ./init.sh

-### 技术文章
+## 技术文章
揭开HPC应用的神秘面纱:https://zhuanlan.zhihu.com/p/489828346