moduleコマンドによる利用環境の切り替え
玄界には様々なソフトウェアがインストールされていますが、
全てのソフトウェアがすぐに起動できる状態にはなっていません。
Environment Modules(moduleコマンド)によって利用環境を切り替えて利用する必要があります。
慣れるまでは手間に感じるかもしれませんが、
同一ソフトウェアの異なるバーションを区別して利用するなどが容易に行えます。
本ページではmoduleコマンドの基本的な利用方法を紹介します。
moduleコマンドのより詳しい説明はman moduleまたは公式サイト
を確認してください。
玄界にインストールされた各ソフトウェアを利用するために必要なmoduleコマンドについては
それぞれのソフトウェアのページを確認してください。
利用可能なmodule環境の一覧表示
を実行することで、現在利用(load)可能なmodule環境の一覧を表示することができます。
特定のmoduleをloadしていることが条件となっているmoduleは表示されない点に注意してください。
(特定のmoduleをloadした状態で
module avial
を実行した場合にのみ表示されるmoduleがあります。)
module環境のロード(利用)
を実行することで対象のmodule環境がロードされ、
ソフトウェアなどが利用可能になります。
(多くの場合は環境変数
PATH
などが更新されます。)
module avail
により出力されたmodule一覧では、
/
によってmodule名とバージョン名などが区切られています。
module名だけ指定してloadすることも可能であり、
その場合(バージョン名などを指定しなかった場合)は (default)
が付記されているものがloadされます。
コンパイラやライブラリによっては、プログラム作成時(ログインノード作業時)と
プログラム実行時(ジョブスクリプト内)に同じmoduleをloadしていなければ
実行できない(起動できない、正しく実行できない)ことに注意してください。
また、互いに排他(同時に利用できない)なmoduleもあります。
必要に応じてunloadやswitchなどを行ってください。
ロードされているmodule環境の一覧表示
を実行することで現在loadされているmodule環境の一覧を表示することができます。
ロードしているmodule環境のアンロード(利用終了)
を実行することでload済みのmodule環境をアンロードすることができます。
module環境の切り替え(入れ替え)
module switch 切り替え元module名 切り替え先module名 |
を実行することで
moduleの入れかえを行うことができます。
module環境の情報を得る
や
を実行することで、
対象module環境についてのヒントを得ることができます。
対象moduleに対応する情報が設定されている場合に限りますが、
簡単な利用方法や、関連するmoduleについての役に立つ情報が表示されることがあります。
module環境の初期化
を実行することで、load済みのmoduleを全てunloadし初期状態に戻すことができます。
利用例 1
moduleコマンドの実行例として、CUDAコンパイラ(nvcc)を利用する例を紹介します。
$
で始まっている行はコマンド実行、
#
で始まっている行は説明用のコメントです。
$ 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)
$ module list
No Modulefiles Currently Loaded.
$ nvcc --version
-bash: nvcc: command not found
$ 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
$ 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 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 purge
$ module list
No Modulefiles Currently Loaded.
|
利用例2
moduleコマンドの実行例として、NVIDIA HPC SDKを利用する例を紹介します。
nvidia moduleをloadしないと関連するMPIライブラリの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)
$ 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)
$ module load nvhpcx
$ module list
Currently Loaded Modulefiles:
1) nvidia/23.9(default) 2) nvhpcx/23.9
|