ホーム > システム > 玄界 > 利用方法 > ソフトウェアの利用方法(moduleコマンドの利用)

ソフトウェアの利用方法(moduleコマンドの利用)

最終更新日:2024年7月5日

moduleコマンドによる利用環境の切り替え

玄界には様々なソフトウェアがインストールされていますが、
全てのソフトウェアがすぐに起動できる状態にはなっていません。
Environment Modules(moduleコマンド)によって利用環境を切り替えて利用する必要があります。

慣れるまでは手間に感じるかもしれませんが、
同一ソフトウェアの異なるバーションを区別して利用するなどが容易に行えます。

本ページではmoduleコマンドの基本的な利用方法を紹介します。
moduleコマンドのより詳しい説明はman moduleまたは公式サイト
を確認してください。
玄界にインストールされた各ソフトウェアを利用するために必要なmoduleコマンドについては
それぞれのソフトウェアのページを確認してください。

利用可能なmodule環境の一覧表示

module avail
を実行することで、現在利用(load)可能なmodule環境の一覧を表示することができます。
特定のmoduleをloadしていることが条件となっているmoduleは表示されない点に注意してください。
(特定のmoduleをloadした状態でmodule avialを実行した場合にのみ表示されるmoduleがあります。)

module環境のロード(利用)

module load 対象module名
を実行することで対象のmodule環境がロードされ、
ソフトウェアなどが利用可能になります。
(多くの場合は環境変数 PATH などが更新されます。)

module avail により出力されたmodule一覧では、
/ によってmodule名とバージョン名などが区切られています。
module名だけ指定してloadすることも可能であり、
その場合(バージョン名などを指定しなかった場合)は (default) が付記されているものがloadされます。

コンパイラやライブラリによっては、プログラム作成時(ログインノード作業時)と
プログラム実行時(ジョブスクリプト内)に同じmoduleをloadしていなければ
実行できない(起動できない、正しく実行できない)ことに注意してください。
また、互いに排他(同時に利用できない)なmoduleもあります。
必要に応じてunloadやswitchなどを行ってください。

ロードされているmodule環境の一覧表示

module list
を実行することで現在loadされているmodule環境の一覧を表示することができます。

ロードしているmodule環境のアンロード(利用終了)

module unload 対象module名
を実行することでload済みのmodule環境をアンロードすることができます。

module環境の切り替え(入れ替え)

module switch 切り替え元module名 切り替え先module名
を実行することで
moduleの入れかえを行うことができます。

module環境の情報を得る

module help 対象module名
module whatis 対象module名
を実行することで、
対象module環境についてのヒントを得ることができます。
対象moduleに対応する情報が設定されている場合に限りますが、
簡単な利用方法や、関連するmoduleについての役に立つ情報が表示されることがあります。

module環境の初期化

module purge
を実行することで、load済みのmoduleを全てunloadし初期状態に戻すことができます。

利用例 1

moduleコマンドの実行例として、CUDAコンパイラ(nvcc)を利用する例を紹介します。
$ で始まっている行はコマンド実行、
# で始まっている行は説明用のコメントです。

# 利用可能なmodule一覧の確認
$ module avail
---------------------------------- /home/modules/modulefiles/LN/core ----------------------------------
cuda/11.8.0           gcc-toolset/12  intel/2023.2           nvidia/23.9(default)
cuda/12.2.2(default)  gcc/8(default)  intel/2024.1(default)

---------------------------------- /home/modules/modulefiles/LN/util ----------------------------------
avs/express85(default)     jupyter_notebook/7.2.1(default)  molpro/2024.1.0_mpipr
fieldview/2023(default)    marc/2024.1(default)             molpro/2024.1.0_sockets
gaussian/16.C.01(default)  mathematica/14.0(default)        nastran/2024.1(default)
julia/1.10.3(default)      matlab/R2024a(default)           singularity-ce/4.1.3(default)

# load済みmoduleの確認(初期状態ではloadされていない)
$ module list
No Modulefiles Currently Loaded.

# 初期状態ではCUDAコンパイラnvccが利用できない
$ nvcc --version
-bash: nvcc: command not found
# cuda moduleをloadするとnvccが利用可能になる
$ module load cuda
$ module list
Currently Loaded Modulefiles:
 1) cuda/12.2.2(default)
$ nvcc --version
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2023 NVIDIA Corporation
Built on Tue_Aug_15_22:02:13_PDT_2023
Cuda compilation tools, release 12.2, V12.2.140
Build cuda_12.2.r12.2/compiler.33191640_0

# loadするバージョンの変更
$ module switch cuda/12.2.2 cuda/11.8.0
$ module list
Currently Loaded Modulefiles:
 1) cuda/11.8.0
$ nvcc --version
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2022 NVIDIA Corporation
Built on Wed_Sep_21_10:33:58_PDT_2022
Cuda compilation tools, release 11.8, V11.8.89
Build cuda_11.8.r11.8/compiler.31833905_0

# module情報の確認
$ module help cuda
-------------------------------------------------------------------
Module Specific Help for /home/modules/modulefiles/LN/core/cuda/12.2.2:

1. How to use NVIDIA CUDA Toolkit

(1) Set environment
    [username@genkai0001 work]$ module load cuda/12.2.2

(2) Compile/link
    [username@genkai0001 work]$ nvcc [option] file

-------------------------------------------------------------------
$ module whatis cuda
---------------------------------- /home/modules/modulefiles/LN/core ----------------------------------
         cuda/11.8.0: CUDA Toolkit installed on 2024/06/13
         cuda/12.2.2: CUDA Toolkit installed on 2023/09/20

# moduleの初期化(全てunload)
$ module purge
$ module list
No Modulefiles Currently Loaded.

利用例2

moduleコマンドの実行例として、NVIDIA HPC SDKを利用する例を紹介します。
nvidia moduleをloadしないと関連するMPIライブラリのmoduleの情報が表示されない構成になっています。
moduleに依存関係がある場合の参考にしてください。

$ で始まっている行はコマンド実行、
# で始まっている行は説明用のコメントです。

# 初期状態で利用できるmodule一覧
$ module avail
----------------------------------------------------------------- /home/modules/modulefiles/LN/core -----------------------------------------------------------------
cuda/11.8.0  cuda/12.2.2(default)  gcc-toolset/12  gcc/8(default)  intel/2023.2  intel/2024.1(default)  nvidia/23.9(default)

----------------------------------------------------------------- /home/modules/modulefiles/LN/util -----------------------------------------------------------------
avs/express85(default)     julia/1.10.3(default)            mathematica/14.0(default)  molpro/2024.1.0_sockets
fieldview/2023(default)    jupyter_notebook/7.2.1(default)  matlab/R2024a(default)     nastran/2024.1(default)
gaussian/16.C.01(default)  marc/2024.1(default)             molpro/2024.1.0_mpipr      singularity-ce/4.1.3(default)

# nvidia moduleをloadするとavailで確認できるmoduleが増える
$ module load nvidia
$ module list
Currently Loaded Modulefiles:
 1) nvidia/23.9(default)
$ module avail
--------------------------------------------------------- /home/modules/modulefiles/LN/compiler/nvidia/23.9 ---------------------------------------------------------
nvhpcx/23.9  nvhpcx/23.9-cuda12  nvompi/23.9

----------------------------------------------------------------- /home/modules/modulefiles/LN/core -----------------------------------------------------------------
cuda/11.8.0  cuda/12.2.2(default)  gcc-toolset/12  gcc/8(default)  intel/2023.2  intel/2024.1(default)  nvidia/23.9(default)

----------------------------------------------------------------- /home/modules/modulefiles/LN/util -----------------------------------------------------------------
avs/express85(default)     julia/1.10.3(default)            mathematica/14.0(default)  molpro/2024.1.0_sockets
fieldview/2023(default)    jupyter_notebook/7.2.1(default)  matlab/R2024a(default)     nastran/2024.1(default)
gaussian/16.C.01(default)  marc/2024.1(default)             molpro/2024.1.0_mpipr      singularity-ce/4.1.3(default)

# nvhpcx(またはnvompi)をloadすることで、HPC SDKに含まれる「GPUに対応したMPI」も利用可能になる
$ module load nvhpcx
$ module list
Currently Loaded Modulefiles:
 1) nvidia/23.9(default)   2) nvhpcx/23.9