Set up ITO-A@kyushu-u supercomputer

Table of Contents

はじめに

九州大学スーパーコンピュータITO-Aのセットアップの備忘録です.Python環境構築に関して,以前の記事ではpyenvを用いましたが,今回は conda を使用します.

ホストへのログイン

Windows用の端末エミュレータとして MobaXterm が推奨されています.X Windowの画面表示ができるので, Jupyter Notebook 等のGUIを利用するソフトウエアも利用できるようになります.インストール方法はこちらです.

パーミッションの変更

指導教員やグループメンバーに見てもらって助言が得られるよう,パーミッションを変更しておきましょう.

$ chmod -R 750 /home/usr_num/account

/home/usr_num/account は自身のホームディレクトリで pwd で確認できます.

$ cd ~
$ pwd

3桁の数字の1番目はユーザー,2番目はグループ,3番目はその他,へのパーミッション(アクセス許可状態)で,数値の意味は以下の通りです.

0=none 1=execute 2=write 4=read 5=read/execute 6=read/write 7=read/write/execute

なお,770にしてはいけません.グループユーザがファイルを変更できるようになり,危険です.さらに,~/.ssh/ のパーミッションの問題でloginができなくなるようです.

Matlabの利用

ITO-Aのコマンドライン環境(CUI)またはX Window経由のグラフィックス環境(GUI)でMatlabが利用できます.詳細はこちらを参照ください.

Intelコンパイラを用いたバッチ処理

計算は主にbash scriptを用意し,バッチ処理で行います.詳細はこちらを参照ください.また,インテルコンパイラのマニュアルはこちらを参照ください. 以下にbash scriptの例を示します.#PJM -L rscgrp=ito-ss-dbg の部分はリソースグループ名で,詳細はこちらを参照ください.

  • rscgrp: リソースグループ.主なものは,1ノード,1時間以内は rscgrp=ito-ss-dbg,4ノード以内,1時間以内は ito-s-dbg,1ノード,96時間以内は ito-ss,4ノード以内,48時間以内は ito-sです.
  • vnode: 仮想ノード数
  • vnode-core: 仮想ノードあたりのコア数(最大36)を設定
  • elapse: 最大経過時間(HH:MM:SS).リソースグループの最大時間を越えない範囲で設定
  • OMP_NUM_THREADS: OpenMP並列数(スレッド数)を設定
  • NUM_NODES: 物理ノード数を設定(vnodeの値を自動的に設定)
  • NUM_CORES: 物理ノードあたりのコア数を設定(vnode-core と同じ値を設定)
  • NUM_PROCS: 起動するMPIプロセス数を設定 = NUM_CORES × vnode
  • I_MPI_PERHOST: 物理ノードあたりのMPIプロセス数設定
  • I_MPI_FABRICS: ノード内及びノード間の通信手段設定

ノード内スレッド並列(メモリ共有)

#!/bin/bash
#PJM -L rscunit=ito-a
#PJM -L rscgrp=ito-ss-dbg
#PJM -L vnode=1
#PJM -L vnode-core=36
#PJM -L elapse=01:00:00
#PJM -j
#PJM -X

module load intel/2018
NUM_CORES=36
export OMP_NUM_THREADS=$NUM_CORES
./a.out

フラットMPI並列

#!/bin/bash
#PJM -L rscunit=ito-a
#PJM -L rscgrp=ito-s-dbg
#PJM -L vnode=4
#PJM -L vnode-core=36
#PJM -L elapse=02:00:00
#PJM -j #PJM -X

module load intel/2018
NUM_NODES=${PJM_VNODES}
NUM_CORES=36
NUM_PROCS=144
export I_MPI_PERHOST=$NUM_CORES
export I_MPI_FABRICS=shm:ofa
export I_MPI_HYDRA_BOOTSTRAP=rsh
export I_MPI_HYDRA_BOOTSTRAP_EXEC=/bin/pjrsh
export I_MPI_HYDRA_HOST_FILE=${PJM_O_NODEINF}
mpiexec.hydra -n $NUM_PROCS ./a.out

Minicondaのインストール

環境をできるだけシンプルに保つため,Anacondaではなく,Miniconda をインストールします.こちらのサイトから最新版のMiniconda3-latest-Linux-x86-64.shを適当なディレクトリにダウンロードします(以下の例では,[~/src/].属性を実行形式に変換した後,以下のようにインストールします.デフォルトのままでよいでしょう.

~/src$ ./Miniconda3-latest-Linux-x86-64.sh

最初に環境を最新の状態にします.

$ conda update conda
$ conda update --all

仮想環境の構築方法はこちらの記事にまとめてあります.

基本パッケージのインストール

基本的なパッケージをインストールしておきます.

$ conda install jupyter notebook pandas matplotlib netcdf4 holoviews geoviews
$ conda install selenium
$ conda install phantomjs
$ pip install holoext
conda list

conda list で,インストールしたパッケージの一覧を取得できます.holoextHoloviewsを便利にするパッケージです.holoextをバージョンアップする場合は以下のように,一度アンインストールしてからインストールします.

$ pip uninstall holoext
$ pip install holoext

インストール時に以下のようなエラーが現れる場合はpipのバージョンが古いせいかもしれません.

mkl-random 1.0.1 requires cython, which is not installed.
mkl-fft 1.0.4 requires cython, which is not installed.
distributed 1.22.0 requires msgpack, which is not installed.

[/cc] その場合は pip 本体をバージョンアップします.

$ pip install --upgrade pip

PhantomJSのインストール

Holoviewsを動かすにはPhantomJSが必要です.こちらを参考に,インストールを進めます.最初にNVMをインストールします.

$ wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.33.10/install.sh | bash
$ source .bashrc
$ command -v nvm nvm

最後に nvm が現れれば成功です.
次にNodeJSをインストールします.利用可能な NodeJS のバージョンを確認できます.

$ nvm ls-remote

最新版をインストールします.

$ nvm install node

インストールされた NodeJS のバージョンを確認します.

$ nvm list
-> v10.8.0 default -> node (-> v10.8.0) node -> stable (-> v10.8.0) (default) stable -> 10.8 (-> v10.8.0) (default) iojs -> N/A (default) lts/* -> lts/carbon (-> N/A) lts/argon -> v4.9.1 (-> N/A) lts/boron -> v6.14.3 (-> N/A) lts/carbon -> v8.11.3 (-> N/A)

または node コマンドで確認できます.

$ node -v
v10.8.0

こちらを参考にして PhantomJS をインストールします.

$ npm install --save phantom phantomjs-prebuilt tough-cookie uuid

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください