module コマンド

スパコンシステムのアプリケーションの多くは Environment Modules (以下、module コマンドと表記)で管理されています。 利用したいアプリケーションの module を読み込む(loadする)ことで、そのアプリケーションが利用できるようになります。

利用方法

利用できるアプリケーションのmodule名を表示

$ module avail
$ module avail bl      # 名前が bl から始まるmodule だけを表示

$ module avail 2>&1 | less  # sh/bash系
$ (module avail) |& less    # csh/tcsh系
注意: module名は大文字・小文字が区別されます。

アプリケーションの module を読み込む

$ module load (module名)

現在読み込んでいる module の確認

$ module list
注意: 「gr_systat」という moduleが表示された場合は無視して下さい。

読み込んでいる module を破棄

$ module unload (module名)            # 指定した module を破棄
$ module purge                        # 現在読み込んでいる全ての module を破棄

設定内容の確認

module load した時に、どのような環境変数が設定されるかを確認します。

$ module show (module名)
例) abyss/2.0.0 を module load した時に行われる設定を確認。
$ module show abyss/2.0.0
-------------------------------------------------------------------
/usr/appli/modulefiles/abyss/2.0.0:

module           load mpich/3.2 
prepend-path     PATH /usr/appli/freeware/abyss/2.0.0/bin 
prepend-path     MANPATH /usr/appli/freeware/abyss/2.0.0/share/man 
-------------------------------------------------------------------
  • mpich/3.2 が module load されます。
  • 環境変数 PATH の先頭に /usr/appli/freeware/abyss/2.0.0/bin が追加されます。
  • 環境変数 MANPATH の先頭に /usr/appli/freeware/abyss/2.0.0/share/man が追加されます。

    * "prepend-path" ではなく、"append-path" の場合は、その環境変数の末尾に追加されます。

補足

  • シェルスクリプト、PBSのジョブスクリプトの中で module コマンドを使用する際は
    source /etc/profile.d/modules.sh          (sh/bashスクリプト)
    source /etc/profile.d/modules.csh        (csh/tcshスクリプト)
    
    を含めて下さい。
  • コマンドラインで moduleコマンド実行時に
    module: command not found
    
    といったエラーが出た場合も、上記の source を実行して下さい。
  • あるモジュールを読み込むと、そのアプリケーションが依存する別のモジュールもloadされることがあります。
    例)
    $ module purge
    $ module load abyss/2.0.2
    $ module list
    Currently Loaded Modulefiles:
      1) gcc/6.2.0     2) mpich/3.2     3) abyss/2.0.2
    
  • 同時に読み込むモジュールの組み合わせによっては、アプリケーションが動作不良を起こすことがあります(依存ライブラリ、アプリケーションのバージョンのコンフリクト、等) 。