Environment Modules とは
Environment Modules とは,各ユーザの実行パスやライブラリ・パスなどの環境変数をコマンドによって書き換えることで,利用者の環境を動的に変更するソフトウェアです.
例えば,roo にログインした直後は,gcc
のバージョンは 4.8.2 です.
% ssh roo.cc.uec.ac.jp Last login: Tue Feb 11 09:42:26 2014 from 172.xx.xx.xx user@roo[~]% gcc --version gcc (GCC) 4.8.2
module
コマンドで gcc をアンロードすると,システムデフォルトのバージョン 4.4 が使われるようになります.
user@roo[~]% module unload gcc user@roo[~]% gcc --version gcc (GCC) 4.4.7 20120313 (Red Hat 4.4.7-4)
さらに module
コマンドでバージョン 4.9 をロードすると,以降は 4.9 が使われます.
user@roo[~]% module load gcc/4.9.0 user@roo[~]% gcc --version gcc (GCC) 4.9.0 20140209 (experimental)
このように,module
コマンドを使って,様々なソフトウェアやそのバージョンを切り替えながら使うことができます.
Intel MPI や MPICH のように,特徴の異なる同種のソフトウェア(ライブラリ)を切り替えて使うこともできます.
利用可能ソフトウェア一覧を見る
利用できるソフトウェアの一覧を確認するためには,コマンドから module avail
と入力します.
% module avail ------------- /etc/modulefiles ----------------------------- cuda/5.5 express/8.1.1 gcl/2.6.10 emacs/24.3 gaussian/09D.01 gnuplot/4.6.4
最初にcuda/5.5
という項目がありますが,cuda
がソフトウェア名,5.5
がバージョンです.
modules avail
でお使いのソフトウェアの新しいバージョンが追加されていないかご確認ください.
ソフトウェアをロードする
ソフトウェアをロードする時は,コマンドラインから module load <ソフトウェア名>/<バージョン>
と入力します.以下の例では,Maple をロードしています.
[user@roo ~]$ maple maple: Command not found. [user@roo ~]$ module load maple/17 [user@roo ~]$ maple |\^/| Maple 17 (X86 64 LINUX) ._|\| |/|_. Copyright (c) Maplesoft, a division of Waterloo Maple Inc. 2013 \ MAPLE / All rights reserved. Maple is a trademark of <____ ____> Waterloo Maple Inc. | Type ? for help. >
module maple/17
の実行後に maple
コマンドが使えるようになりました.
ロードされているソフトウェアを確認する
ロードされているソフトウェアを確認する時は,module list
コマンドを使います.以下の例では,Maple 17 がロードされていることがわかります.
% module list Currently Loaded Modulefiles: 1) maple/17
ソフトウェアをアンロードする
ソフトウェアをアンロードする時は,コマンドラインから module unload <ソフトウェア名>/<バージョン>
と入力します.以下の例では,Maple 17 をアンロードしています.
% module unload maple/17 % maple maple: コマンドが見つかりません.
ソフトウェアを切り替える
ソフトウェアを切り替えるとき,アンロードしてからロードする方法もありますが,コマンドラインから module switch <変更前ソフトウェア名>/<バージョン> <変更後ソフトウェア名>/<バージョン>
と入力すると,この操作を一度にできます.以下の例では,gcc を 4.5.4 から 4.6.4 に切り替えています.
% gcc --version gcc (GCC) 4.5.4 ・・・(略)・・・ % module switch gcc/4.5.4 gcc/4.6.4 % gcc --version gcc (GCC) 4.6.4 ・・・(略)・・・
ログイン時にソフトウェアを自動ロード/アンロードする
ログイン時にソフトウェアを自動ロード/アンロードしたい場合は,.tcshrc
や .bashrc
に module
コマンドを書いてください.以下の例は,tcsh を利用している場合に,ログイン時に Maple をロードし,MATLAB をアンロードする設定例です.
% vi ~/.tcshrc (エディタで .tcshrc を編集する.) module load maple/17 (.tcshrc に左の内容を追記する) module unload matlab/2013b
編集後,roo にログインをすると以下のように Maple がロードされ,MATLAB がアンロードされた状態から操作できます.
% ssh user@roo.cc.uec.ac.jp user@roo.cc.uec.ac.jp's password: Last login: Sat Feb 01 18:12:xx 2014 from 172.21.xx.xx [user@roo ~]$ module list Currently Loaded Modulefiles: 1) maple/17