6.3.1. Spackの利用方法

Spackの概要#

本サービスでは、利用可能なソフトウェア一覧に記載した大半のプリインストールアプリケーションをspackを使用してインストールしています。
spackコマンドは、これらのアプリケーションの環境設定を行う機能を提供します。

利用方法#

利用者はspackコマンドを用いて環境の設定を行えます。

$ spack [options] <sub-command> [sub-command options]

以下にサブコマンドを示します。

サブコマンド 説明
find -x インストール済みパッケージの一覧表示
find -v package インストール済みパッケージの構築時オプション表示
find -l package インストール済みパッケージのハッシュ値表示
load package インストール済みパッケージのロード
unload package インストール済みパッケージのアンロード
info package パッケージの説明
help spack の使用方法の表示

利用例#

  • spackの環境設定
$ . /fefs1/app/spack/spack-0.18.0/share/spack/setup-env.sh
  • インストール済みパッケージの一覧表示
$ spack find -x
==> 20 installed packages
-- linux-rhel8-a64fx / fj@tcsds-1.2.35 --------------------------
frontistr@5.3  lammps@20190807  lammps@20220107  openfoam@2112  quantum-espresso@6.6
  
-- linux-rhel8-icelake / intel@2021.6.0 -------------------------
gromacs@2021.4  lammps@20220107  lammps@20220107
  
-- linux-rhel8-icelake / intel@2021.8.0 -------------------------
gromacs@2021.4  lammps@20220107
  
-- linux-rhel8-icelake / oneapi@2022.1.0 ------------------------
frontistr@5.3  gromacs@2021.4  lammps@20220107  lammps@20220107  openfoam@2112  quantum-espresso@7.0
  
-- linux-rhel8-icelake / oneapi@2023.0.0 ------------------------
frontistr@5.3  gromacs@2021.4  lammps@20220107  quantum-espresso@7.0

パッケージの表示内容に関する留意事項

  • spack環境では、oneapi@~はIntel oneapi compiler(icx, icpx, ifx)を指し、intel@~はIntel classic compiler(icc, icpc, ifort)を指します。
  • 利用可能なパッケージは更新・変更される場合があります。最新の情報はログインノードにおいてspack find -xコマンドを実行し、ご確認ください。
  • インストール済みパッケージのロード
$ spack load frontistr@5.3
  • インストール済みパッケージのアンロード
$ spack unload frontistr@5.3

パッケージロード時の注意事項

インストール済みパッケージの一覧表示で同一のパッケージ/バージョンが複数表示される場合、パッケージをロードする際にパッケージを区別するための付加情報が必要となります。こうしたパッケージを使用する際は、以下の使用例をご確認ください。

  • インストール済みパッケージのHash値と構築時オプションを表示して、パッケージ間の差異を確認します。
$ spack find -vl lammps
==> 8 installed packages
~
-- linux-rhel8-icelake / intel@2021.8.0 -------------------------
z6opytw lammps@20220107~asphere~body~class2~colloid~compress~coreshell+cuda+cuda_mps~dipole~exceptions+ffmpeg~granular~ipo+jpeg+kim~kokkos~kspace~latte+lib~manybody~mc~meam~misc~mliap~molecule+mpi~mpiio~opencl+openmp~opt~peri+png~poems~python~qeq~replica~rigid~shock~snap~spin~srd~user-adios~user-atc~user-awpmd~user-bocs~user-cgsdk~user-colvars~user-diffraction~user-dpd~user-drude~user-eff~user-fep~user-h5md~user-lb~user-manifold~user-meamc~user-mesodpd~user-mesont~user-mgpt~user-misc~user-mofff~user-netcdf+user-omp~user-phonon~user-plumed~user-ptm~user-qtb~user-reaction~user-reaxc~user-sdpd~user-smd~user-smtbq~user-sph~user-tally~user-uef~user-yaff~voronoi build_type=RelWithDebInfo cuda_arch=80
# Hash値:z6opytw, +cudaと表示されるためGPU対応版のパッケージ
~
-- linux-rhel8-icelake / oneapi@2023.0.0 ------------------------
b6hoox6 lammps@20220107~asphere~body~class2~colloid~compress~coreshell~cuda~cuda_mps~dipole~exceptions+ffmpeg+granular~ipo+jpeg+kim~kokkos+kspace~latte+lib+manybody~mc~meam~misc~mliap+molecule+mpi~mpiio~opencl+openmp~opt~peri+png~poems~python~qeq~replica+rigid~shock~snap~spin~srd~user-adios~user-atc~user-awpmd~user-bocs~user-cgsdk~user-colvars~user-diffraction~user-dpd~user-drude~user-eff~user-fep~user-h5md~user-lb~user-manifold~user-meamc~user-mesodpd~user-mesont~user-mgpt~user-misc~user-mofff~user-netcdf+user-omp~user-phonon~user-plumed~user-ptm~user-qtb~user-reaction~user-reaxc~user-sdpd~user-smd~user-smtbq~user-sph~user-tally~user-uef~user-yaff~voronoi build_type=RelWithDebInfo
# Hash値:b6hoox6, ~cudaと表示されるためGPU非対応版のパッケージ
  • インストール時に付加されるHash値で区別する場合は以下のように、package名の後ろに/Hash値を指定します。
$ spack load lammps /z6opytw
  または
$ spack load lammps /b6hoox6
  • インストールに使用したコンパイラで区別する場合は以下のように、package名の後ろに%コンパイラ名もしくは、%コンパイラ名@バージョンを指定します。
$ spack load lammps %intel@2021.8.0
  または
$ spack load lammps %oneapi@2023.0.0