Environment Modules

最終更新: 2024/4/12

はじめに

Environment Modules (module コマンド)の利用は必須ではありませんが、手動で設定を行うよりも便利な場合があります。

注意点

  • ログインシェルが bash 系で、ジョブスクリプトも sh, bash, zsh ならば特別な設定は必要ありません
  • ログインシェルやジョブスクリプトが csh の場合は追加の設定が必要
    • csh のジョブスクリプトでは module コマンド利用前に source /etc/profile.d/modules.csh を実行する必要があります。
    • ログインシェルが csh の場合にはジョブスクリプトで /bin/sh を使う場合にも source /etc/profile.d/modules.sh (あるいは . /etc/profile.d/modules.sh)を実行する必要があります。

基本的な利用方法

moduleコマンドで操作します。フロントエンドサーバー、計算ノードで共通に利用できます。ただし、上記の通り csh スクリプトでは特殊な注意が必要です。ログイン時に自動でいくつかのパッケージが読み込まれていることにもご注意ください。

module availアプリケーション一覧ページを参照して利用可能なパッケージを探し、module load コマンドで必要なパッケージを読み込むことが基本となります。現在読み込んでいるパッケージは module list で確認可能です。コマンドの使い方については次の項目もご確認ください。

アプリケーションによっては module を用意されていない場合があります。そのようなアプリについては上記アプリケーション一覧ページや /apl 内を直接探してください。

コマンド

基本的なコマンドについては以下に簡単な例を掲載していますが、他にも様々なコマンドがあります。
公式ページの module subcommand のセクションを確認したり、ウェブ検索するなどしてご確認ください。

ジョブスクリプトでの利用例

/bin/sh スクリプトの場合

#!/bin/sh
#PBS select=ncpus=1:mpiprocs=1:ompthreads=1:ngpus=1
#PBS -l walltime=72:00:00

if [ ! -z $PBS_O_WORKDIR ]; then
  cd $PBS_O_WORKDIR
fi

module -s load amber/20u13

pmemd.cuda -O -i mdin ......

ログインシェルが csh で、スクリプトだけsh, bashの場合は、module コマンド実行前に source /etc/profile.d/modules.sh が必要です。

/bin/csh スクリプトの場合

cshの場合、moduleコマンドは /etc/profile.d/modules.csh でaliasとして定義されています。
ログインして対話型シェルで使う場合には特に設定は要りませんが、
ジョブスクリプトで利用する場合には明示的に /etc/profile.d/modules.csh を読み込む必要があります。

#!/bin/csh -f
#PBS select=ncpus=1:mpiprocs=1:ompthreads=1:ngpus=1
#PBS -l walltime=72:00:00

if ( $?PBS_O_WORKDIR ) then
  cd $PBS_O_WORKDIR
endif

source /etc/profile.d/modules.csh # required!
module -s load amber/20u13

pmemd.cuda -O -i mdin .......

参考リンク