コンテンツにスキップ

システムソフトウェア、フリーソフト

Info

本ページのコマンドライン例では、以下の表記を使用します。
[login]$ : ログインノード
[rNnN]$ : 計算ノード
[login/rNnN]$ : ログインノードまたは計算ノード
[yourPC]$ : ログインノードへの接続元環境

PyPI上にあるPythonのパッケージを使いたい (Theano等)

以下のコマンドでユーザのホームディレクトリにインストールすることができます。(下記例はTheanoの場合)

[login]$ pip install --user theano

python/3.9.18を用いて最新版のnumpy, mpi4py, chainer, tensorflow, cupy等をインストールする方法について

python/3.9.18を使って自分の環境下にnumpy, mpi4py, chainer, tensorflow等をインストールしたい場合は以下のようにします。

Info

cupy等GPUを用いるモジュールをインストールする場合は、qrshで計算ノードを確保してから行って下さい。

[rNnN]$ module purge
[rNnN]$ module load intel cuda openmpi
[rNnN]$ python3 -m pip install --user python_modules

バージョンを指定したい場合は

[login/rNnN]$ python3 -m pip install --user python_modules==version

Rで自分のライブラリをインストールして使いたい

TSUBAME4.0 ではR-4.3.2が利用できます。
基本パッケージ以外に標準で利用可能なライブラリは以下となります。

 Rmpi, rpud
その他の利用可能なライブラリはlibrary()コマンドでご確認ください。

上記以外のライブラリを利用したい場合には、ご自分でのインストール操作が必要となります。
パーミッションの関係で、Rのインストールディレクトリは不可ですので、ライブラリパスを指定の上、自分所有のライブラリをインストール/管理できますます。手順は以下となります。

ライブラリパスを$HOME/Rlib、ライブラリ名はtestlib、testlib.tar.gzはソースパッケージと仮定して、以下のように操作します。

[rNnN]$ module purge                                                 # モジュール設定のパージ
[rNnN]$ module load cuda openmpi R                                   # モジュールの読み込み
[rNnN]$ mkdir ~/Rlib                                                 # ライブラリインストールディレクトリの作成(無ければ)
[rNnN]$ wget https://cran.r-project.org/src/contrib/testlib.tar.gz   # パッケージのダウンロード
[rNnN]$ R CMD INSTALL -l $HOME/Rlib testlib.tar.gz                   # ライブラリインストール
[rNnN]$ export R_LIBS_USER=$HOME/Rlib                                # ご自分のインストールライブラリの設定
[rNnN]$ R                                                            # ライブラリの利用
> library(testlib)

openmpiのmpi4pyでmpi4py.futures.MPIPoolExecutorを実行するとエラーになる

openmpiを用いたmpi4pyでmpi4py.futures.MPIPoolExecutorを実行すると以下のようなエラーが起こることがあります。

[rNnN:xxxxx] [[60041,0],0] ORTE_ERROR_LOG: Not found in file orted/pmix/pmix_server_dyn.c at line 87
上記のエラーに遭遇した場合、以下のいずれかをお試し下さい。
1. 以下のコマンドの実行
[rNnN]$ mpirun -np <NP> python3 **-m mpi4py.futures** ./test.py
2. intel MPIを用いたmpi4pyを使用する

intel MPIでmpirun ... >& log.txt &とするとファイル出力が途中で止まってしまいます

intel MPIで

[rNnN]$ mpirun ... ./a.out >& log.txt &
としてバックグラウンド実行すると、log.txtへの出力が止まってしまうことがあります。
その場合は以下のようにすると出力が止まらずに実行できます。
[rNnN]$ mpirun ... ./a.out < /dev/null >& log.txt &

Intel® oneAPI Math Kernel Libraryをリンクしたいが、リンクオプションをどうすればよいですか?

Intel® oneAPI Math Kernel Libraryをリンクしたい場合、Intel® oneAPI Math Kernel Library Link Line Advisorに適切な項目を入力し、"Use this link line”からリンクオプションをコピーして下さい。

Intel OneAPIでifort,icc,icpcコマンドが使用できません

Intel oneAPI 2024から、iccコマンドおよびicpcコマンドが使用できなくなりました。
icxコマンドおよびicpxコマンドを使用してください。
また、Intel oneAPI 2025から、ifortコマンドが使用できなくなりました。
ifxコマンドを使用してください。

Intel oneAPI利用時にC++17関連のエラーが発生する。

Intel oneAPI 2024から、C++のデフォルトの規格がC++14からC++17に変更になりました。 それに伴い、以下のエラーが発生する場合があります。

  • error: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  • error: ISO C++17 does not allow dynamic exception specifications [-Wdynamic-exception-spec]

詳細についてはこちらのページをご参照ください。

本エラーが発生した場合、以下のいずれかをご検討ください。

  • C++17規格に適合するよう、ソースコードを修正する。
  • 翻訳時オプション -std=c++14 を指定し、C++14規格でコンパイルする。

python の module load が出来ません

TSUBAME4.0ではデフォルトでpython 3が利用可能です。
module load は必要ありません。

OpenMPI/Intel MPI実行時に、hcoll 関連のErrorやsegmentation faultが発生する。

以下の環境変数を指定することで改善される場合があります。

OpenMPI利用時:export OMPI_MCA_coll=^hcoll
Intel MPI利用時:export I_MPI_COLL_EXTERNAL=0
問題が解決しない場合、上記指定に加えて以下の指定もお試しください。
UCX_ROOT=/apps/t4/rhel9/free/ucx/1.16.0-rc4/gcc11.4.1/lib  
export LD_PRELOAD=$UCX_ROOT/libucm.so:$UCX_ROOT/libucp.so:$UCX_ROOT/libucs.so:$UCX_ROOT/libucs_signal.so:$UCX_ROOT/libuct.so  

Info

ここで紹介しているLD_PRELOAD対応を実施する場合、必ず1ノードで実行してください。本対応を実施したQUANTUM ESPRESSOをマルチノードで実行した際にカーネルパニックが発生する事象が確認されており、他のアプリケーションでも同様の問題が発生する恐れがあります。

Intel Compilerで -lblas を指定してコンパイルしたバイナリが、実行時に異常終了する

Intel Compilerでは、Intel MKLという数値計算ライブラリが用意されています。
Intel CompilerでBLASを利用する際は、 -lblasではなくIntel MKLのライブラリをリンクするようオプションを変更してください。リンク用のオプションについてはIntel MKLのリンク方法をご参照ください。
なお、数値計算ライブラリはIntel MKLのような専用ライブラリを含め、多種多様なライブラリが存在しています。その中には、ライブラリ間で依存関係にあるものや競合関係にあるものも存在します。
数値計算ライブラリでエラーが発生した場合、競合関係の確認や別のライブラリの利用もご検討ください。

TensorFlow実行時にGPUが使用されない

TensorFlowをGPU上で動作させる場合、利用するTensorFlow,python,cudnn,cudaの組み合わせに条件があります。
詳細については、Tensorflow をご参照ください。

Alphafold関連のデータベースを使用したい

以下のソフトウェアで利用するデータベースをTSUBAME上に用意しました。これらのデータベースファイルは容量が大きいため、可能な限り個別にダウンロードすることはお避け下さい
利用方法については、それぞれのリンク先をご参照ください。
- Alphafold2用データベース
- Alphafold3用データベース
- LocalColabfold用データベース

TSUBAME4.0に導入されていないバージョンのpythonを利用したい

TSUBAME4.0に導入されていないバージョンのpythonを利用したい場合、ご自身で導入いただく必要があります。
pythonの導入および確認方法について、3つの方法を紹介します。

Info

  • 本手順、およびご自身で導入されたpythonについてはサポート対象外となります。
  • ここではバージョン 3.13.4 の導入例を示します。別のバージョンを導入したい場合は 3.13.4 の部分を読み替えてください。
  • 本作業は必ず計算ノード上で実施してください。インタラクティブジョブ専用キュー(iqrsh)またはインタラクティブジョブ(qrsh)の利用を想定しています。

conda環境にインストールする

TSUBAME4.0に導入されているminicondaを利用する例を示します。

[rNnN]$ module load miniconda

# minicondaのmodule load時に「please do: eval~~~」というメッセージが出ますので、minicondaのページを参考に設定を行います。  
[rNnN]$ eval "$(/apps/t4/rhel9/free/miniconda/24.1.2/bin/conda shell.bash hook)"

# 導入したいpythonのバージョンを確認します。
[rNnN]$ conda search python | tail -n1    # 最新バージョンのみ表示する場合。全バージョンを表示したい場合は | tail -n1 を外してください。 

# pythonを含んだ仮想環境を作成します。  
[rNnN]$ conda create -n [仮想環境名] python==[pythonのバージョン] -y
インストールしたpythonを利用するには、以下の手順を実施してください。
[login/rNnN]$ module load miniconda
[login/rNnN]$ conda activate [仮想環境名]    # 作成した仮想環境の読み込み
(仮想環境名)[login/rNnN]$ python -V          # pythonのバージョンを確認 (任意)

ソースコードからインストールする

Info

利用可能なバージョンなどについてはpython.orgをご確認ください。

[rNnN]$ export pybase=[インストールパス]
[rNnN]$ export pyver=3.13.4                      # 導入するバージョンの設定
[rNnN]$ export pyinst=${pybase}/python${pyver}   # インストールパスの設定

# ソースコードのDL & 展開します。
[rNnN]$ mkdir ${pyinst} && cd ${pyinst}
[rNnN]$ wget https://www.python.org/ftp/python/${pyver}/Python-${pyver}.tgz
[rNnN]$ tar xf Python-${pyver}.tgz && cd Python-${pyver}

# 構成・ビルド・インストールします。 (オプション、log_ファイル名は必要に応じて変更してください)
[rNnN]$ ./configure --prefix=${pyinst} 2>&1 | tee -a log_config
[rNnN]$ make -j 2>&1 | tee -a log_make
[rNnN]$ make install 2>&1 | tee -a log_inst
インストールしたpythonを利用するには、以下の手順を実施してください。

Info

${pyinst} の部分は、自身で指定したインストールパスに置き換えてください。

[login/rNnN]$ export PATH=${pyinst}/bin:${PATH}     # インストールしたpythonへのパスを環境変数PATHに指定 
[login/rNnN]$ python -V                             # pythonのバージョンを確認 (任意)

pyenv環境にインストールする

Info

pyenv利用時の設定については環境によって異なります。公式サイトを参考にしてください。pyenvについてはTSUBAME4.0のサポート対象外です。

# pyenvをインストールします。
[rNnN]$ export pybase=[pyenvのインストールパス]    # pyenvのインストールパスの設定
[rNnN]$ export pyver=3.13.4                      # 導入するバージョンの設定

[rNnN]$ cd ${pybase}
[rNnN]$ git clone https://github.com/pyenv/pyenv
[rNnN]$ export PATH=${pybase}/pyenv/bin:${PATH}
[rNnN]$ pyenv --version

# pyenvで提供しているpythonのバージョンを確認します。
[rNnN]$ pyenv install --list | grep ${pyver}

# 指定したバージョンをインストールし、当該バージョンをpyenvのデフォルトに変更します。
[rNnN]$ pyenv install ${pyver}
[rNnN]$ pyenv versions
[rNnN]$ pyenv global ${pyver}

インストールしたpythonを利用するには、以下の手順を実施してください。

Info

  • ${pybase} , ${pyver} の部分は、インストール時に自身で指定した値に置き換えてください。
  • export PATH=${pybase}/pyenv/bin:${PATH} の指定は .bashrc に定義することで省略可能です。
[login/rNnN]$ export PATH=${pybase}/pyenv/bin:${PATH}  # インストールしたpyenvへのパスを環境変数PATHに指定 
[login/rNnN]$ pyenv global ${pyver}                    # pythonのバージョンを${pyver}に指定したバージョンに切り替え
[login/rNnN]$ python -V                                # pythonのバージョンを確認 (任意)

OpenMPI利用時にCPUコアの割当方法を設定したい

OpenMPI利用時にCPUコアの割当方法を設定する場合、代表的な方法として以下が挙げられます。

  • numactl コマンドを利用する
  • --bind-to , --map-by , --rand-by など mpirun コマンドのオプションを利用する

numactl コマンドの利用方法については man numactl を、mpirunコマンドの各オプションについてはman mpirun をご参照ください。

[例用例]

1プロセス 192スレッド実行の場合、デフォルトでは1つのコア(CPU)にスレッドが集中しました。
$ export OMP_NUM_THREADS=192
$ mpirun -npernode 1 -n 1 -x LD_LIBRARY_PATH -x OMP_NUM_THREADS ./a.out

(topコマンドにP(Last Used Cpu (SMP))を追加表示して確認 )
PID     USER     S  %CPU   TIME+   COMMAND        P   
3112554 ux00000  S   0.0   0:00.00 a.out          192
3112555 ux00000  S   0.0   0:00.00 a.out          192
3112556 ux00000  S   0.0   0:00.01 a.out          192
3112557 ux00000  S   0.0   0:00.00 a.out          192
3112558 ux00000  S   0.0   0:00.00 a.out          192
(以下略)

--bind-to numa オプションを指定することでnumaごとに分散して割り付けられました。
$ export OMP_NUM_THREADS=192
$ mpirun --bind-to numa -npernode 1 -n 2 -x LD_LIBRARY_PATH -x OMP_NUM_THREADS ./a.out

(topコマンドに、P(Last Used Cpu (SMP))を追加表示して確認 )
PID     USER     S  %CPU   TIME+   COMMAND        P   
3116060 ux00000  S   0.0   0:00.00 a.out           57 
3116061 ux00000  S   0.0   0:00.00 a.out          193
3116062 ux00000  S   0.0   0:00.00 a.out          194
3116063 ux00000  S   0.0   0:00.00 a.out          196
3116064 ux00000  S   0.0   0:00.00 a.out          199
(以下略)

Info

コンパイラとmpiモジュールの組み合わせについて

GNU、Intel oneAPI、NVDIA HPC SDK と OpenMPI の組み合わせで利用が可能です。

gcc についてはOS提供のものになります。 各コンパイラとOpenMPIの組み合わせの利用可能なバージョンについては以下のコマンドで確認してください。

[login/rNnN]$ gcc --version
[login/rNnN]$ module avail

Info

TSUBAME4.0で用意した下記OpenMPI以外を利用した場合、動作保証およびサポート対象外となりますのでご留意ください。
本ドキュメントに記載されたOpenMPIのバージョンは最新ではない可能性があります。 利用可能なバージョン一覧については module avail openmpi コマンドでご確認ください。( 特に理由がない場合、最新バージョンの利用を推奨します )

1. Intel版 OpenMPI

[rNnN]$ module purge
[rNnN]$ module load openmpi/5.0.2-intel
Loading openmpi/5.0.2-intel
  Loading requirement: intel/2024.0.2 cuda/12.3.2
[rNnN]$ mpicc -v
Intel(R) oneAPI DPC++/C++ Compiler 2024.0.2 (2024.0.2.20231213)
Target: x86_64-unknown-linux-gnu
Thread model: posix
InstalledDir: /apps/t4/rhel9/isv/intel/compiler/2024.0/bin/compiler
Configuration file: /apps/t4/rhel9/isv/intel/compiler/2024.0/bin/compiler/../icx.cfg
Found candidate GCC installation: /usr/lib/gcc/x86_64-redhat-linux/11
Selected GCC installation: /usr/lib/gcc/x86_64-redhat-linux/11
Candidate multilib: .;@m64
Candidate multilib: 32;@m32
Selected multilib: .;@m64
Found CUDA installation: /apps/t4/rhel9/cuda/12.3.2, version

2. GNU版 OpenMPI

[rNnN]$ module purge
[rNnN]$ module load openmpi/5.0.2-gcc
Loading openmpi/5.0.2-gcc
  Loading requirement: cuda/12.3.2
[rNnN]$ mpicc -v
Using built-in specs.
COLLECT_GCC=/usr/bin/gcc
COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-redhat-linux/11/lto-wrapper
OFFLOAD_TARGET_NAMES=nvptx-none
OFFLOAD_TARGET_DEFAULT=1
Target: x86_64-redhat-linux
Configured with: ../configure --enable-bootstrap --enable-host-pie --enable-host-bind-now --enable-languages=c,c++,f
ortran,lto --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=http://bugzilla.redhat.com/
bugzilla --enable-shared --enable-threads=posix --enable-checking=release --with-system-zlib --enable-__cxa_atexit -
-disable-libunwind-exceptions --enable-gnu-unique-object --enable-linker-build-id --with-gcc-major-version-only --en
able-plugin --enable-initfini-array --without-isl --enable-multilib --with-linker-hash-style=gnu --enable-offload-ta
rgets=nvptx-none --without-cuda-driver --enable-gnu-indirect-function --enable-cet --with-tune=generic --with-arch_6
4=x86-64-v2 --with-arch_32=x86-64 --build=x86_64-redhat-linux --with-build-config=bootstrap-lto --enable-link-serial
ization=1
Thread model: posix
Supported LTO compression algorithms: zlib zstd
gcc version 11.4.1 20230605 (Red Hat 11.4.1-2) (GCC)

3. NVIDIA HPC SDK版 OpenMPI

[rNnN]$ module purge
[rNnN]$ module load openmpi/5.0.2-nvhpc
Loading openmpi/5.0.2-nvhpc
  Loading requirement: nvhpc/24.1
[rNnN]$ mpicc -v
Export NVCOMPILER=/apps/t4/rhel9/isv/nvidia/hpc_sdk/Linux_x86_64/24.1
Export PGI=/apps/t4/rhel9/isv/nvidia/hpc_sdk
nvc-Warning-No files to process

TSUBAME4.0でDockerは利用できますか?

TSUBAME4.0でSingularityは利用できますか?

TSUBAME4.0でコンテナは利用できますか?

TSUBAME4.0ではDockerは利用できません。スパコン向けコンテナ管理ソフトウェアのApptainer(旧:Singularity)が利用可能です。
詳細についてはコンテナの利用をご参照ください。

Tsubame4.0でJupyter Labは利用できますか?

利用可能です。詳細についてはOpen OnDemand 利用の手引きをご参照ください。

マルチスレッド/マルチプロセスに対応したデバッガ/プロファイラを使用したい

Linaro Forge(旧:Arm forge)が使用できます。利用方法については講習会ページに掲載されている「並列プログラミング」をご参照ください。

Apptainer 利用時にGLIBC not found エラーが発生する

Apptainer でフェイクルート機能(--fakeroot)を使用する場合、ホストとコンテナの間でlibcのバージョンを一致させる必要があります。
一致しない場合、以下のようなエラーが出力される場合があります。

/.singularity.d/libs/faked: /lib/x86_64-linux-gnu/libc.so.6: version`GLIBC_2.33' not found (required by /.singularity.d/libs/faked)
/.singularity.d/libs/faked: /lib/x86_64-linux-gnu/libc.so.6: version`GLIBC_2.34' not found (required by /.singularity.d/libs/faked)
fakeroot: error while starting the `faked' daemon.
/.singularity.d/libs/fakeroot: 1: kill: Usage: kill [-s sigspec | -signum |-sigspec] [pid | job]... or
kill -l [exitstatus]
詳細については、fakeroot利用時の注意事項について を参照してください。

VS Codeを利用したい

VS Codeを使用したログインノードへのアクセスについては、ログインノードに大きな負荷がかかるため禁止されています。
ログインノードにおけるプログラムの実行制限
TSUBAME4.0では、code server(VS codeのクローン)を使用したOpen OnDemand経由による計算ノードへの接続が可能です。
code server の利用をご検討ください。利用方法についてはOpen OnDemandの利用の手引きをご参照ください。