Environment Modules | GPUSOROBAN 計算クラスター
本記事では、GPUSOROBAN 計算クラスターのEnvironment Modulesについて解説しています。
GPUSOROBAN 計算クラスターでは、ソフトウェアで挙げた、さまざまな開発環境、MPI、ライブラリ、ユーティリティ等を提供しています。利用者はこれらのソフトウェアを「モジュール」として、組み合わせて利用できます。
Environment Modulesは、これらのモジュールを利用するのに必要な環境設定を柔軟かつ動的に行う機能を提供します。
目次[非表示]
利用方法
利用者は、moduleコマンドを用いて環境の設定を行えます。
#出力例:
$ module [options] <sub-command> [sub-command options]
以下にサブコマンドの一覧を示します。
実行例
#モジュールのロード
#出力例:
$ module load cuda/12.6.3 cudnn/9.10.2_cuda12#ロード済みのモジュールの一覧表示
#出力例:
$ module list
Currently Loaded Modulefiles:
1) cudnn/9.10.2_cuda12 2) cuda/12.6.3#モジュールの設定内容の表示
#出力例:
$ module show cuda/12.6.3
-------------------------------------------------------------------
/home/apps/modulefiles/cuda/12.6.3:
module-whatis {CUDA Toolkit 12.6.3}
conflict cuda
prepend-path PATH /home/apps/nvidia/cuda-12.6.3/bin
prepend-path LD_LIBRARY_PATH /home/apps/nvidia/cuda-12.6.3/lib64
prepend-path LIBRARY_PATH /home/apps/nvidia/cuda-12.6.3/lib64
prepend-path CPATH /home/apps/nvidia/cuda-12.6.3/include
setenv CUDA_HOME /home/apps/nvidia/cuda-12.6.3
setenv CUDA_ROOT /home/apps/nvidia/cuda-12.6.3
setenv CUDA_PATH /home/apps/nvidia/cuda-12.6.3
setenv CC /home/apps/nvidia/cuda-12.6.3/bin/nvcc
setenv CXX /home/apps/nvidia/cuda-12.6.3/bin/nvcc
setenv NVCC /home/apps/nvidia/cuda-12.6.3/bin/nvcc
prepend-path CPATH /home/apps/nvidia/cuda-12.6.3/include
prepend-path C_INCLUDE_PATH /home/apps/nvidia/cuda-12.6.3/include
prepend-path CPLUS_INCLUDE_PATH /home/apps/nvidia/cuda-12.6.3/include
-------------------------------------------------------------------#ロード済みのすべてのモジュールをアンロード(初期化)
#出力例:
$ module purge
$ module list
No Modulefiles Currently Loaded.#排他関係にあるモジュールのロード
同一ライブラリの異なるバージョンのモジュールなど、排他関係にあるモジュールは同時に利用することはできません。
#出力例:
$ module list
Currently Loaded Modulefiles:
1) cudnn/9.13.0_cuda13
$ module load cudnn/9.10.2_cuda12
Loading cudnn/9.10.2_cuda12
ERROR: Module cannot be loaded due to a conflict.
HINT: Might try "module unload cudnn/9.13.0_cuda13" first.#モジュールの切り替え
#出力例:
$ module list
Currently Loaded Modulefiles:
1) cudnn/9.13.0_cuda13
$ module switch cudnn/9.13.0_cuda13 cudnn/9.10.2_cuda12
$ module list
Currently Loaded Modulefiles:
1) cudnn/9.10.2_cuda12#ジョブスクリプトでの利用方法
バッチ利用時のジョブスクリプトでmoduleコマンドを利用する場合には、以下のように初期設定を加える必要があります。
#出力例:
$ module list
Currently Loaded Modulefiles:
1) cudnn/9.13.0_cuda13
$ module switch cudnn/9.13.0_cuda13 cudnn/9.10.2_cuda12
$ module list
Currently Loaded Modulefiles:
1) cudnn/9.10.2_cuda12#ロード可能なモジュール一覧の確認
#出力例:
$ module avail#マルチノード実行時、通信がInfiniBandではなくEthernet経由になる場合
MASTER_ADDRをホスト名解決(getent)で取得しており、Ethernet側(bond0.202)のIPが選ばれてしまうため。
# 解決方法
IBインターフェース(ibs1)のIPv4を直接MASTER_ADDRに設定してIB経路を使用。
#出力例:
$ export MASTER_ADDR=$(ip -4 addr show ibs1 | grep -oP '(?<=inet\s)\d+(\.\d+){3}')#モジュール一覧
現在提供されているモジュールは以下になります。


