Modulesソフトウェアパッケージは、コンパイラ・ライブラリ・アプリケーションの利用に必要な環境設定をmoduleコマンドを実行することで、動的に切り替えて設定することができます。 異なるバージョンのコンパイラ・ライブラリ・アプリケーションを切り替えて利用する際に、簡単に環境設定を変更することができます。
コマンド | 説明 |
---|---|
module list | ロード済みmoduleファイルの一覧表示 |
module avail | 使用できる全moduleファイルの一覧表示 |
module show [module_file_name] | moduleファイルの設定内容の表示 |
module load [module_file_name] | moduleファイルのロード |
module unload [module_file_name] | moduleファイルのアンロード |
module switch [module_file_name1] [module_file_name2] | moduleファイルの切り替え(module_file_name1→module_file_name2) |
モジュールファイル間の依存関係により module load / unload / switch のエラーが発生する場合があります。 依存関係に異常が生じる可能性をご理解の上であれば、-f オプションを使うことで、強制的にモジュールファイルのロードやスイッチをすることができます。
## ログイン直後の状態
$ module list
Currently Loaded Modulefiles:
1) slurm/2022 2) SysB/2022 3) intel/2022.3(default) 4) intelmpi/2022.3(default) 5) PrgEnvIntel/2022(default)
## intelコンパイラを 2018.4 に切り替えようとしてもエラーになる
$ module switch intel/2018.4
Unloading intel/2022.3
ERROR: intel/2022.3 cannot be unloaded due to a prereq.
HINT: Might try "module unload PrgEnvIntel/2022" first.
Switching from intel/2022.3 to intel/2018.4
ERROR: Unload of switched-off intel/2022.3 failed
## -f オプションを使用した強制的な切り替え
$ module switch intel/2018.4 -f
Unloading intel/2022.3
WARNING: Dependent 'PrgEnvIntel/2022' is loaded
## 変更後の状況
$ module list
Currently Loaded Modulefiles:
1) slurm/2022 2) SysB/2022 3) intelmpi/2022.3(default) 4) PrgEnvIntel/2022(default) 5) intel/2018.4
各プログラミング環境利用のための包括的なModulesファイルセットとして、以下の3種を用意しています。 これらのモジュールファイルにより、コンパイラの環境とMPIの環境の初期設定が行われます。
現在のモジュール環境を確認するには module list
コマンドを使用してください。
$ module list
Currently Loaded Modulefiles:
1) XXX
ログイン時はシステムのメインコンパイラ環境になっています。 以下にプログラミング環境を切り替える例を記載しています。
例 Intel環境からNVIDIA環境に切り替える場合
$ module switch PrgEnvIntel PrgEnvNvidia
複数バージョンが利用可能な場合、利用するコンパイラバージョンを切り替えることができます。 以下にintelコンパイラの場合の操作方法を例示しています。
例 用意されているプログラミング環境を切り替える場合
$ module switch PrgEnvIntel/2022 PrgEnvIntel/2018
例 Intelコンパイラの別バージョンを追加でロードする場合(後からロードしたほうが優先されます)
$ module load intel/Y.Y
例 Intelコンパイラのバージョンを個別に切り替える場合(-fが必要)
$ module switch intel/X.X intel/Y.Y -f
現在ロードしているバージョンの記述(上記例のintel/X.X)は省略することもできます。
$ module switch intel/Y.Y -f
MATLABを利用する場合の例
moduleコマンドを実行し、環境設定を行います。(利用したいバージョンのmoduleファイルをロードします)
$ module load matlab/R2020b
MATLABの起動コマンドを実行することができるようになります。
$ matlab
MALABのバージョンを切り替える場合(R2020b→R2021a)
moduleコマンドを実行し、環境設定の変更を行います。
$ module unload matlab/R2020b
$ module load matlab/R2021a
または
$ module switch matlab/R2021a
他のアプリケーションでの使い方は、利用可能なソフトウェアのページをご確認ください。
moduleファイルをユーザ自身で作成し、利用することができます。 作成方法については、 man page をご覧ください。 作成したmoduleファイルを利用するためには、module use コマンドにmoduleファイルを格納したディレクトリを指定し、パスを追加してください。 一度追加したパスを削除したい場合は、module unuseコマンドを実行してください。 moduleファイルのパスは環境変数MODULEPATHで確認できます。
例 moduleファイルパスの確認
## 作成したmoduleファイルを利用できるようにする(x12345ユーザの場合)
$ module use /home/x/x12345/mymodule
## moduleファイルのパスを確認する
$ echo $MODULEPATH
/home/x/x12345/mymodule:/opt/app/modulefiles/common:
/opt/system/app/env/intel/isv:
/opt/system/app/env/intel/oss:
## 追加したパスを削除する
$ module unuse /home/x/x12345/mymodule
## 作成したmoduleファイルを、元のパスより優先度を低くして利用できるようにする
$ module use -a /home/x/x12345/mymodule
## moduleファイルのパスを確認する
$ echo $MODULEPATH
/opt/app/modulefiles/common:/opt/system/app/env/intel/isv:
/opt/system/app/env/intel/oss:
/home/x/x12345/mymodule:
例 moduleファイルの追加と利用
## 作成したmoduleファイルを確認する
$ ls -F /home/x/x12345/mymodule
ruby/
$ ls -F /home/x/x12345/mymodule/ruby
1.8.7 1.9.3 2.1.2
## 作成したmoduleファイルを利用できるようにする
$ module use /home/x/x12345/mymodule
## 作成したmoduleファイルが表示されることを確認する
$ module avail
--------------------------- /home/x/x12345/mymodule/ ---------------------------
ruby/1.8.7 ruby/1.9.3 ruby/2.1.2
------------------------- /opt/system/app/intel/ --------------------------
PrgEnvIntel/2022 intel/2022.3
(略)
## 作成したmoduleファイルをロードする
$ module load ruby/2.1.2e
Welcome to the Environment Modules Project
Man page of Modulefile