Environment Modules | GPUSOROBAN 計算クラスター

本記事では、GPUSOROBAN 計算クラスターのEnvironment Modulesについて解説しています。

GPUSOROBAN 計算クラスターでは、ソフトウェアで挙げた、さまざまな開発環境、MPI、ライブラリ、ユーティリティ等を提供しています。利用者はこれらのソフトウェアを「モジュール」として、組み合わせて利用できます。

Environment Modulesは、これらのモジュールを利用するのに必要な環境設定を柔軟かつ動的に行う機能を提供します。


目次[非表示]

  1. 1.利用方法
  2. 2.実行例
    1. 2.1.#モジュールのロード
    2. 2.2.#ロード済みのモジュールの一覧表示
    3. 2.3.#モジュールの設定内容の表示
    4. 2.4.#ロード済みのすべてのモジュールをアンロード(初期化)
    5. 2.5.#排他関係にあるモジュールのロード
    6. 2.6.#モジュールの切り替え
    7. 2.7.#ジョブスクリプトでの利用方法
    8. 2.8.#ロード可能なモジュール一覧の確認
    9. 2.9.#マルチノード実行時、通信がInfiniBandではなくEthernet経由になる場合
    10. 2.10.#モジュール一覧

利用方法

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

#出力例:

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



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

サブコマンド

説明

list

読み込み済みモジュールの一覧を表示する

avail

利用可能なモジュールの一覧を表示する

show <module>

指定したモジュールの設定内容を表示する

load <module>

指定したモジュールを読み込む

unload <module>

指定したモジュールを解除する

switch <moduleA> <moduleB>

モジュールを切り替える(moduleAをmoduleBに置き換える)

purge

読み込み済みのすべてのモジュールを解除(初期化)

help <module>

指定したモジュールの使い方を表示する

実行例

#モジュールのロード

#出力例:

$ 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}')

#モジュール一覧

現在提供されているモジュールは以下になります。

CUDA

12.1.1|12.2.2|12.3.2|12.4.1|12.5.1|12.6.3|12.8.1|12.9.1|13.0.1

cudnn

9.10.2_cuda12|9.13.0_cuda13

gcc

11|12|13

gdrcopy

2.5.1

julia

1.10.10|1.11.6

miniforge3

25.3.0-3

nccl

2.28.3_cuda12.9|2.28.3_cuda13.0

nvhpc

nvhpc-hpcx-2.20-cuda12/25.7|nvhpc-hpcx/25.7

oneapi

2025.1.0|2025.2.1

oneapi/compiler-rt

2025.1.0|2025.2.1

oneapi/compiler

2025.1.0|2025.2.1

oneapi/mkl

2025.1|2025.2

oneapi/mpi

2021.15|2021.16

oneapi/tbb

2022.1|2022.2

oneapi/umf

0.10.0|0.11.0

openmpi

4.1.7rc1

scala

2.13.16

singularitypro

4.1.9|4.3.3

ページトップへ戻る