サイトポリシー サイトマップ
2019 年 08 月 23 日

提供ソフトウェアの利用方法

 

遺伝研スーパーコンピュータでは、Environment moduleをアプリケーション・ツールの 利用環境の動的な切り替えの為に導入しました。従来のように環境設定ファイルを編集することなく 各アプリケーションの動作環境の切り替えを行うことができます。 Environment Moduleの詳細については、開発プロジェクトサイトを参照願います。

以下に本システムでの基本的なmoduleコマンドの利用方法について記載します。 moduleコマンドの基本操作としては以下があります。

  • module list ロード済みの環境(モジュールファイル)の一覧
  • module avail 使用できる環境(モジュールファイル)の一覧取得
  • module show 環境名 環境(モジュールファイル)での設定内容の表示
  • module load 環境名 環境(モジュールファイル)のロード
  • module unload 環境名 環境のアンロード
  • module switch 環境名1 環境名2 環境の切り替え

以下に各コマンドの使用例を示します。

module list

ユーザ環境に読み込み(ロード)済みの環境(モジュールファイル)の一覧を取得します。

$ module list
Currently Loaded Modulefiles:
 1) gcc/7.2.0

module avail

本システム内に定義されており、ロードすることで使用可能な環境の一覧を取得します。

$ module avail
---------------------------- /cm/local/modulefiles -----------------------------
cluster-tools/8.1  java/1.8.0_45                 python/3.7.2
cmd                java/1.8.0_202                r/3.5.2
cuda-dcgm/1.3.3.1  lua/5.3.4                     ruby/1.9.3
dot                module-git                    ruby/2.6.0
freeipmi/1.5.7     module-info                   shared
gcc/7.2.0          null                          singularity/2.6.1
ipmitool/1.8.18    openldap
java/1.6.0_45      openmpi/mlnx/gcc/64/3.1.1rc1

module show

環境(モジュールファイル)内での環境設定内容の詳細を表示します。
(例)Tensorflowのmodulefile内での環境設定内容の表示

$ module show 

[lect01@at028 ~]$ module show tensorflow
-------------------------------------------------------------------
/cm/shared/modulefiles/tensorflow/1.7.0:

module-whatis   adds TensorFlow  to your environment variables
module load     cm-ml-pythondeps
module load     cudnn/7.0
module load     openblas
module load     cuda91/toolkit
module load     hdf5_18
prepend-path    PYTHONPATH      /cm/shared/apps/tensorflow/1.7.0/lib/python2.7/site-packages/
prepend-path    PYTHONPATH      /cm/shared/apps/tensorflow/1.7.0/lib64/python2.7/site-packages/
prepend-path    PATH    /cm/shared/apps/tensorflow/1.7.0/bin
-------------------------------------------------------------------

module load

環境(モジュールファイル)をロードすることで、環境設定をユーザ環境に反映し利用可能にします。
注意事項:本システムでは、環境名sharedを追加で読み込むと以下のような本システムで定義済みの 環境群がさらに追加される設定になっています(2019/3/5時点)。もし、ユーザの環境によって有効に なっていない場合は、以下のloadコマンドを実行することで環境設定を読み込んでください。

$ module load shared

$ module avail

---------------------------- /cm/shared/modulefiles ----------------------------
acml/gcc-int64/64/5.3.1                 intel/compiler/32/2017/17.0.8
acml/gcc-int64/fma4/5.3.1               intel/compiler/32/2018/18.0.5
acml/gcc-int64/mp/64/5.3.1              intel/compiler/64(default)
acml/gcc-int64/mp/fma4/5.3.1            intel/compiler/64/2017/17.0.8
acml/gcc/64/5.3.1                       intel/compiler/64/2018/18.0.5
acml/gcc/fma4/5.3.1                     intel/daal/64/2017/8.262
acml/gcc/mp/64/5.3.1                    intel/daal/64/2018/4.274
acml/gcc/mp/fma4/5.3.1                  intel/gdb/64/2017/8.262
bazel/0.11.1                            intel/gdb/64/2018/5.274
blacs/openmpi/gcc/64/1.1patch03         intel/ipp/64/2017/8.262
blas/gcc/64/3.8.0                       intel/ipp/64/2018/4.274
bonnie++/1.97.3                         intel/itac/2017/8.034
caffe/0.17                              intel/itac/2018/4.025
caffe2/0.8.1                            intel/mkl/64(default)
chainer/3.5.0                           intel/mkl/64/2017/8.262
cm-ml-python3deps/2.0.0                 intel/mkl/64/2018/4.274
cm-ml-pythondeps/2.0.0                  intel/mkl/mic/2017/8.262
cntk/5                                  intel/mpi/32/2017/8.262
cub/1.8.0                               intel/mpi/32/2018/4.274
cuda10.0/blas/10.0.130                  intel/mpi/64(default)
cuda10.0/fft/10.0.130                   intel/mpi/64/2017/8.262
cuda10.0/nsight/10.0.130                intel/mpi/64/2018/4.274
cuda10.0/profiler/10.0.130              intel/mpi/mic/2017/8.262
cuda10.0/toolkit/10.0.130               intel/tbb/32/2017/8.262
cuda80/blas/8.0.61                      intel/tbb/32/2018/4.274
cuda80/fft/8.0.61                       intel/tbb/64(default)
cuda80/nsight/8.0.61                    intel/tbb/64/2017/8.262
cuda80/profiler/8.0.61                  intel/tbb/64/2018/4.274
cuda80/toolkit/8.0.61                   intel/tbb/mic/2017/8.262
cuda90/blas/9.0.176                     iozone/3_471
cuda90/fft/9.0.176                      keras/2.1.5
cuda90/nsight/9.0.176                   lapack/gcc/64/3.8.0
cuda90/profiler/9.0.176                 ml-python3/keras/2.1.5
cuda90/toolkit/9.0.176                  ml-python3/mxnet/1.1.0
cuda91/blas/9.1.85                      ml-python3/pytorch/0.4.0a0
cuda91/fft/9.1.85                       ml-python3/tensorflow/1.7.0
cuda91/nsight/9.1.85                    mlpython/0.1
cuda91/profiler/9.1.85                  mpich/ge/gcc/64/3.2.1
cuda91/toolkit/9.1.85                   mpiexec/0.84_432
cuda92/blas/9.2.88                      mvapich2/gcc/64/2.3b
cuda92/fft/9.2.88                       mxnet/1.1.0
cuda92/nsight/9.2.88                    nccl/1.3.4
cuda92/profiler/9.2.88                  nccl2/2.1.15
cuda92/toolkit/9.2.88                   netcdf/gcc/64/4.5.0
cudnn/7.0                               netperf/2.7.0
default-environment                     openblas/dynamic(default)
digits/6.1.1                            openblas/dynamic/0.2.20
fftw2/openmpi/gcc/64/double/2.1.5       opencv3
fftw2/openmpi/gcc/64/float/2.1.5        openmpi/cuda/64/3.1.1
fftw3/openmpi/gcc/64/3.3.7              openmpi/gcc/64/1.10.7
gcc5/5.5.0                              pgi/64/18.4
gdb/8.0.1                               protobuf/3.2.1
globalarrays/openmpi/gcc/64/5.6.1       pytorch/0.4.0a0
hdf5/1.10.1                             scalapack/openmpi/gcc/64/2.0.2
hdf5_18/1.8.20                          sge/2011.11p1
horovod/0.12.1                          slurm/17.11.8
hpcx/2.0.0                              tensorflow/1.7.0
hpl/2.2                                 theano/1.0.1
hwloc/1.11.8                            torch7/7.0
intel-tbb-oss/ia32/2018_20180618oss     torque/6.1.1
intel-tbb-oss/intel64/2018_20180618oss

また、上記にリストされるソフトウェア環境の中には、システム管理者向け(権限がないと設定・利用できない) のものがあります。その点ご了承ください(例、slurm、torque等)) ここで、例えばIntelコンパイラが利用したい場合は、上記の出力結果内にある、intel/compiler/32/2017/17.0.8 をmodule load コマンドで指定してください。以下のようです。

[lect01@at032 compilers_and_libraries]$ which icc
/usr/bin/which: no icc in (/cm/shared/apps/intel/compilers_and_libraries/2018.4.274/linux/mpi/intel64/bin:/cm/local/apps/gcc/7.2.0/bin:/home/geadmin/UGER/bin/lx-amd64:/cm/local/apps/environment-modules/4.0.0//bin:/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/opt/ibutils/bin:/sbin:/usr/sbin:/cm/local/apps/environment-modules/4.0.0/bin:/home/lect01/.local/bin:/home/lect01/bin)
[lect01@at032 compilers_and_libraries]$ module load intel/compiler/32/2017/17.0.8
[lect01@at032 compilers_and_libraries]$ which icc
/cm/shared/apps/intel/compilers_and_libraries/2017.8.262/linux/bin/ia32/icc
[lect01@at032 compilers_and_libraries]$

module unload

ロードした環境を削除するにはunloadを使用します。

[lect01@at032 compilers_and_libraries]$ module unload intel/compiler/32/2017/17.0.8
[lect01@at032 compilers_and_libraries]$ which icc
/usr/bin/which: no icc in (/cm/shared/apps/intel/compilers_and_libraries/2018.4.274/linux/mpi/intel64/bin:/cm/local/apps/gcc/7.2.0/bin:/home/geadmin/UGER/bin/lx-amd64:/cm/local/apps/environment-modules/4.0.0//bin:/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/opt/ibutils/bin:/sbin:/usr/sbin:/cm/local/apps/environment-modules/4.0.0/bin:/home/lect01/.local/bin:/home/lect01/bin)

iccが参照できなくなっているのがわかります。

module switch

環境の切り替えを1コマンドで行います(unload/load)。 例としてOpenMPIからIntel MPIへの環境の切り替えは以下のように行います。

[lect01@at028 local]$ module load openmpi
[lect01@at028 local]$ which mpicc
/usr/mpi/gcc/openmpi-3.1.1rc1/bin/mpicc
[lect01@at028 local]$ module switch openmpi intel/mpi
[lect01@at028 local]$ which mpicc
/cm/shared/apps/intel/compilers_and_libraries/2018.4.274/linux/mpi/intel64/bin/mpicc

参照されるmpiccが切り替わっているのがわかります。