Appearance
Spack使用教程
一、简介
spack是一款针对于科学计算软件的包管理工具,它集成了module,可以一并加载其依赖库的环境变量。
本手册主要给用户提供:在灵犀易算平台下查询环境/软件信息、 加载软件环境变量,以便用户使用。
spack详细内容介绍可见官网,网址:Spack官网 。
二、分隔符
spack分隔符使用介绍如下:
- 使用"@"符号作为软件版本号的界定符
- 使用"%"符号作为编译器的界定符
- 使用"^"作为依赖的界定符
- 使用"+"符号作为特性的界定符
三、查询环境/软件信息
功能 | 命令 |
---|---|
查看基础信息 | spack info (Package_Name) |
以cp2k为例:
- 查看cp2k软件版本的信息:
spack info cp2k
功能 | 命令 |
---|---|
列出全部已安装的软件 | spack find |
查找某软件 | spack find (Package_Name) |
查找指定编译器的软件 | spack find (Package_Name)%(Compiler_Name) |
精确查找某编译器、某版本软件 | spack find (Package_Name)@(Package_version)%(Compiler_Name)@(Compiler_version) |
查找使用某个特性的软件 | spack find (Package_Name)%(Compiler_Name)^(Variants) |
查找使用库特性的软件 | spack find (Package_Name)%(Compiler_Name)+(Variants) |
查看软件使用的依赖库 | spack find -d (Package_Name)@(Package_version) |
查看软件使用的依赖库且显示安装位置 | spack find -d -p (Package_Name)@(Package_version) |
查找软件的详细信息 | spack find --json (Package_Name)@(Package_version) |
获取软件安装位置 | spack location -i (Package_Name)@(Package_version) |
比较两个包之间的差异 | spack diff (Package_Name1) (Package_Name2) |
列出所有软件版本以及所有依赖版本 | spack find --deps (Package_Name) |
以cp2k为例:
- 查找cp2k软件:spack find cp2k
- 查找指定gcc编译器的cp2k软件:spack find cp2k%gcc
- 精确查找gcc-11.4.0编译器的cp2k 版本软件:
bash
spack find cp2k%gcc@11.4.0
- 查看cp2k软件使用的依赖库:
bash
spack find -d cp2k
四、加载软件/环境变量
功能 | 命令 |
---|---|
加载环境 | spack load (Package_Name)@(Package_version)%(Compiler_Name)@(Compiler_version)^(Variants) |
取消加载环境 | spack unload (Package_Name)@(Package_version)%(Compiler_Name)@(Compiler_version)^(Variants) |
加载编译器环境 | spack load (Compiler_Name)@(Compiler_version) |
加载软件环境 | spack load (Package_Name)@(Package_version) |
加载某编译器、某版本的软件环境 | spack load (Package_Name)@(Package_version)%(Compiler_Name)@(Compiler_version) |
若相同环境存在多个,可使用hash值前7位加载 | spack load /hash |
仅加载软件本身 | spack load --only package (Package_Name)@(Package_version)%(Compiler_Name)@(Compiler_version) |
仅加载软件的依赖 | spack load --only dependencies (Package_Name)@(Package_version)%(Compiler_Name)@(Compiler_version) |
- 加载编译器环境:
bash
spack load intel-oneapi-compilers@2023.2.1
- 加载某mpi环境:
bash
spack load intel-oneapi-mpi@2021.10.0
- 加载某编译器、某版本的软件:此处以hdf5为例,加载gcc-11.4.0编译的hdf5-1.14.3:
bash
spack load hdf5@1.14.3%gcc@11.4.0
- 若加载时出现Error,就可使用hash值前7位加载:
bash
spack load /t4flfrt
- 仅加载cp2k软件本身
bash
spack load --only package cp2k
- 仅加载cp2k软件的依赖
bash
spack load --only dependencies cp2k
五、常用环境加载
下列列举了常用环境的加载方式,包括:编译器、MPI、conda、python、工具等,供参考使用。
编译器基础环境
注:基础的gnu环境无需加载
bash
spack load intel-oneapi-compilers
2、MPI环境
bash
spack load mpich
spack load intel-oneapi-mpi
spack load openmpi
3、conda环境
bash
spack load anaconda3
4、python环境
bash
spack load python
5、数学库环境
bash
spack load fftw
spack load netlib-blas
spack load netlib-lapack
spack load netlib-scalapack
spack load intel-oneapi-mkl
spack load openblas
6、数据处理库环境
bash
spack load netcdf-c
spack load netcdf-fortran
spack load hdf5
spack load zlib
7、工具环境
bash
spack load cmake
spack load automake