環境設定切り替えソフトウェア(Modules)

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ファイルの標準設定

・ロードされているmoduleファイルの確認

$ module list
Currently Loaded Modulefiles:
  1) XXX 

プログラミング環境の設定

各プログラミング環境利用のための包括的なModulesファイルセットとして,以下のものがあります.

  • Crayプログラミング環境 PrgEnv-cray
  • Intelプログラミング環境 PrgEnv-intel
  • PGIプログラミング環境 PrgEnv-pgi
  • GNUプログラミング環境 PrgEnv-gnu

プログラミング環境の切り替え

ログイン時はシステムのメインコンパイラ環境になっています.

・例 Cray環境からIntel環境に切り替える場合

$  module  switch  PrgEnv-cray  PrgEnv-intel

下記の短縮コマンドも利用可能です.

$  module  switch  PrgEnv/intel

コンパイラバージョンの切り替え方法

複数バージョンが利用可能な場合,利用するコンパイラバージョンを切り替えることができます.

・例 Crayコンパイラのバージョンを切り替える場合

$  module  switch  cce/X.X.X  cce/Y.Y.Y
  • Intelコンパイラの場合 intel/X.X.X
  • PGIコンパイラの場合 pgi/X.X.X

現在ロードしているバージョンの記述(上記例のcce/X.X.X)は省略することもできます.

$  module  switch  cce/Y.Y.Y

ユーザの利便性のために,短い入力でプログラミング環境の切り替えができるコマンドを用意しています.

書式:

PrgEnv (option) [environment's name] (version)

PrgEnvに続いてプログラミング環境名(intelなど)を指定することで,その環境に適合するコンパイラやライブラリの最新版がロードされます. コンパイラのバージョンを指定することも可能で,そのバージョンに合ったライブラリも共にロードされます. 詳細はPrgenv -hで確認できます.

使用例:

  • intel環境への切り替え
b59999@camphor1:~> PrgEnv intel
Switching to atp/2.0.2.
Switching to cray-mpich/7.4.2.
Switching to craype/2.5.6.
Switching to java/jdk1.8.0_51.
Switching to modules/3.2.10.4.
Switching to pmi/5.0.10-1.0000.11050.0.0.ari.
Switching to totalview/2016.04.08.
Switching to totalview-support/1.2.0.10.
b59999@camphor1:~>
  • 切り替え可能なプログラミング環境の一覧を表示
b59999@camphor1:~> PrgEnv -l
available compilers and versions are:
  PrgEnv cce     8.4.6
  PrgEnv cce     8.5.2
  PrgEnv gcc     4.9.3
  PrgEnv gcc     5.3.0
  PrgEnv gcc     6.1.0
  PrgEnv intel   15.0.7.235
  PrgEnv intel   16.0.3.210
  PrgEnv pgi     16.7.0
  • gnuの旧バージョンを指定しての切り替え
b59999@camphor1:~> PrgEnv gcc 4.9.3
Switching to atp/2.0.1.
Switching to cray-libsci/16.03.1.
Switching to cray-mpich/7.3.3.
Switching to craype/2.5.6.
Switching to gcc/5.3.0.
Switching to java/jdk1.8.0_51.
Switching to modules/3.2.10.4.
Switching to pmi/5.0.10-1.0000.11050.0.0.ari.
Switching to totalview/2016.04.08.
Switching to totalview-support/1.2.0.10.
b59999@camphor1:~>

moduleファイルの標準設定

・ロードされているmoduleファイルの確認

$ module list
Currently Loaded Modulefiles:
  1) XXX 

プログラミング環境の設定

各プログラミング環境利用のための包括的なModulesファイルセットとして,以下のものがあります.

  • Intelプログラミング環境 PrgEnv-intel
  • PGIプログラミング環境 PrgEnv-pgi
  • GNUプログラミング環境 PrgEnv-gnu

プログラミング環境の切り替え

ログイン時はシステムのメインコンパイラ環境になっています.

・例 Intel環境からPGI環境に切り替える場合

$  module  switch  PrgEnv-intel  PrgEnv-pgi

下記の短縮コマンドも利用可能です.

$  module  switch  PrgEnv/pgi

コンパイラバージョンの切り替え方法

複数バージョンが利用可能な場合,利用するコンパイラバージョンを切り替えることができます.

・例 Intelコンパイラのバージョンを切り替える場合

$  module  switch  intel/X.X.X  intel/Y.Y.Y
  • Intelコンパイラの場合 intel/X.X.X
  • PGIコンパイラの場合 pgi/X.X.X

現在ロードしているバージョンの記述(上記例のintel/X.X.X)は省略することもできます.

$  module  switch  intel/Y.Y.Y

システムB,Cの環境の切り替え

・例 システムB環境(デフォルト)からシステムC環境に切り替える

$  module  switch  lsf/SystemB lsf/SystemC

MATLABを利用する場合

moduleコマンドを実行し,環境設定を行います.(利用したいバージョンのmoduleファイルをロードします)

$ module load matlab/R2012a

MATLABの起動コマンドを実行します.

$ matlab

MALABのバージョンを切り替える場合(R2012a→R2011b)

moduleコマンドを実行し,環境設定の変更を行います.

$ module unload matlab/R2012a
$ module load matlab/R2011b

MATLABの起動コマンドを実行すると,R2011bバージョンのMATLABが起動します.

$ matlab

他のアプリケーションでのmoduleの使い方は,各アプリケーションページに記載しておりますので,そちらをご確認ください.

moduleファイルをユーザ自身で作成し,利用することができます.作成方法については, man page をご覧ください.作成したmoduleファイルを利用するためには,module useコマンドにmoduleファイルを格納したディレクトリを指定し,パスを追加してください.一度追加したパスを削除したい場合は,module unuseコマンドを実行してください.moduleファイルのパスは環境変数MODULEPATHで確認できます.

・例 moduleファイルパスの確認

## 作成したmoduleファイルを利用できるようにする
$ module use /home/x/x12345/mymodule

## moduleファイルのパスを確認する
$ echo $MODULEPATH
/home/x/x12345/mymodule:/opt/app/modulefiles/common:
/opt/app/modulefiles/app_ISV:
/opt/app/modulefiles/app_FREE:/opt/app/modulefiles/obsolete

## 追加したパスを削除する
$ module unuse /home/x/x12345/mymodule

## 作成したmoduleファイルを,元のパスより優先度を低くして利用できるようにする
$ module use -a /home/x/x12345/mymodule

## moduleファイルのパスを確認する
$ echo $MODULEPATH
/opt/app/modulefiles/common:/opt/app/modulefiles/app_ISV:
/opt/app/modulefiles/app_FREE:
/opt/app/modulefiles/obsolete:/home/x/x12345/mymodule   moduleファイルの切り替え(module_file_name1→module_file_name2) 

・例 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/app/modulefiles/common --------------------------
PrgEnv-gnu/1.0(default)          lsf/SystemB(default)
(略)

## 作成したmoduleファイルをロードする
$ module load ruby/2.1.2e   moduleファイルの切り替え(module_file_name1→module_file_name2) 

Welcome to the Environment Modules Project
Man page of Modulefile


Copyright © Academic Center for Computing and Media Studies, Kyoto University, All Rights Reserved.