moduleコマンドのインストール方法

Linux

Linuxで環境変数の切り替えを簡単に行うことができるmoduleコマンド(Environment Modules)のインストール方法を解説します。

スポンサーリンク

インストール方法

以下のコマンドでインストールできます。
インストール先(–prefix)とmoduleファイルディレクトリ(–modulefilesdir)は任意の場所を設定してください。

wget https://github.com/cea-hpc/modules/releases/download/v5.4.0/modules-5.4.0.tar.gz
tar -zxvf modules-5.4.0.tar.gz
cd modules-5.4.0/
./configure --prefix=/home/apps/Modules --modulefilesdir=/home/apps/Modules/modulefiles
make
sudo make install

そしてシェルの起動と同時にmoduleを動くようにするには、インストール先にある以下のファイルのシンボリックリンクを/etc/profile.d/に置きます。

sudo ln -s /home/apps/Modules/init/profile.sh /etc/profile.d/modules.sh
sudo ln -s /home/apps/Modules/init/profile.csh /etc/profile.d/modules.csh
スポンサーリンク

modulefilesの追加方法

コマンド操作で追加する方法はこちらです。この設定方法ではシェルを閉じると設定が消えます。

module use --append /opt/nvidia/hpc_sdk/modulefiles

その場限りの設定ではなく、永続的な設定をしたい場合は2通りの方法があります。

方法1

スクリプトにmodulefilesのパスを記載する。

vi /home/apps/Modules/init/profile.sh

#このファイルに上記の module use --append を追記する

方法2

Modulepathを追加する。

vi /home/apps/Modules/etc/.modulespath

#このファイルにmodulefilesのパスを追記する

方法3

Moduleのファイルを方法2のModulepathが通っているディレクトリにコピーする。

スポンサーリンク

moduleコマンドの使用方法

moduleコマンドを使用するには予めinitのスクリプトが動いている必要があります。上記のインストール手順で/etc/profile.d/modules.shを設定していれば勝手に動くようになります。

なお、シェルスクリプト等でコマンドを実行したい場合は、スクリプトファイル内で以下のコマンドを書いておく必要があります。

. /etc/profile.d/modules.sh

これをやらないと module: not found と表示されてしまいます。

ではmoduleコマンドを打ってみましょう。

$ module
Modules Release 5.0.1 (2021-10-16)
Usage: module [options] [command] [args ...]

Loading / Unloading commands:
  add | load      modulefile [...]  Load modulefile(s)
:
:

ヘルプ的なものが表示されます。キーボードのqを押すと脱出できます。

よく使うコマンドは

module avail使用できるmoduleの一覧を表示
module show compiler/latest指定したmoduleの内容を表示(例 compiler/latest)
module load compiler/latest指定したmoduleを読み込む(例 compiler/latest)
module list現在読み込まれているmoduleを表示
module purge何も読み込まれていない状態に戻す

なお、moduleが動く状態では以下の環境変数が定義されます。

$MODULEPATHmoduleファイルが検索される場所
$MODULESHOMEmoduleのインストール場所
スポンサーリンク

WSLにNvidiaのHPC SDKを入れた場合は、上記の方法1で以下の内容を記載します。

module use --append /opt/nvidia/hpc_sdk/modulefiles

WSLにIntel OneAPIを入れた場合は、以下のコマンドを実行します。

cd /opt/intel/oneapi
./modulefiles-setup.sh

これによって /home/wsl/modulefiles ディレクトリにmoduleファイルが生成されます。(ユーザ名がwslの場合)
それを方法1のやり方で追記します。

module use --append /home/wsl/modulefiles

以上のようにHPC SDKとOneAPIが入っている状態では次のようにmoduleが読み込まれます。

$ module avail
----------------------- /home/apps/Modules/modulefiles -----------------------
dot  module-git  module-info  modules  null  use.own

---------------------- /opt/nvidia/hpc_sdk/modulefiles -----------------------
nvhpc-byo-compiler/23.11  nvhpc-hpcx/23.11   nvhpc-openmpi3/23.11
nvhpc-hpcx-cuda12/23.11   nvhpc-nompi/23.11  nvhpc/23.11

--------------------------- /home/wsl/modulefiles ----------------------------
advisor/2024.0          dev-utilities/latest        itac/2022.0
advisor/latest          dnnl/3.3.0                  itac/latest
ccl/2021.11.2           dnnl/latest                 mkl/2024.0
ccl/latest              dpct/2024.0.0               mkl/latest
compiler-rt/2024.0.2    dpct/latest                 mkl32/2024.0
compiler-rt/latest      dpl/2022.3                  mkl32/latest
compiler-rt32/2024.0.2  dpl/latest                  mpi/2021.11
compiler-rt32/latest    ifort/2024.0.2              mpi/latest
compiler/2024.0.2       ifort/latest                oclfpga/2024.0.0
compiler/latest         ifort32/2024.0.2            oclfpga/latest
compiler32/2024.0.2     ifort32/latest              tbb/2021.11
compiler32/latest       inspector/2024.0            tbb/latest
dal/2024.0.0            inspector/latest            vtune/2024.0
dal/latest              intel_ipp_intel64/2021.10   vtune/latest
debugger/2024.0.0       intel_ipp_intel64/latest
debugger/latest         intel_ippcp_intel64/2021.9
dev-utilities/2024.0.0  intel_ippcp_intel64/latest

Key:
modulepath

以上!

コメント

タイトルとURLをコピーしました