Skip to content

Spack使用教程

一、简介

spack是一款针对于科学计算软件的包管理工具,它集成了module,可以一并加载其依赖库的环境变量。

本手册主要给用户提供:在灵犀易算平台下查询环境/软件信息、 加载软件环境变量,以便用户使用。

spack详细内容介绍可见官网,网址:Spack官网

二、分隔符

spack分隔符使用介绍如下:

  1. 使用"@"符号作为软件版本号的界定符
  2. 使用"%"符号作为编译器的界定符
  3. 使用"^"作为依赖的界定符
  4. 使用"+"符号作为特性的界定符

三、查询环境/软件信息

功能命令
查看基础信息spack info (Package_Name)

以cp2k为例:

  • 查看cp2k软件版本的信息:

spack info cp2k

img

功能命令
列出全部已安装的软件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

img

  • 查找指定gcc编译器的cp2k软件:spack find cp2k%gcc

img

  • 精确查找gcc-11.4.0编译器的cp2k 版本软件:
bash
spack find cp2k%gcc@11.4.0

img

  • 查看cp2k软件使用的依赖库:
bash
spack find -d cp2k

img

四、加载软件/环境变量

功能命令
加载环境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

img

  • 仅加载cp2k软件本身
bash
spack load --only package cp2k
  • 仅加载cp2k软件的依赖
bash
spack load --only dependencies cp2k

五、常用环境加载

下列列举了常用环境的加载方式,包括:编译器、MPI、conda、python、工具等,供参考使用。

  1. 编译器基础环境

注:基础的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