4.11 FOCUSスパコンの使用法

FOCUSスパコンの使用法については下記のページも合わせて参考にしてください。
http://www.e-em.co.jp/FOCUS/index.html

4.11.1 CPUで計算する方法

ソースコードをコンパイル・リンクするには以下のmoduleをloadした後、 "4.1.2 Linux開発環境"を参考にしてください。
$ module load PrgEnv-gnu-6.3.0
$ module load MPI-openmpi-2.1.1+gnu-6.3.0+cuda-8.0

(1) 1ノードで実行するとき
1ノードで実行するときのスクリプトファイルは以下の通りです。
このうち、-p, -c, -t行とデータファイル名は適当に変えてください。

#!/bin/bash
#SBATCH -p f024h
#SBATCH -n 1
#SBATCH -c 40
#SBATCH -t 30
#SBATCH -J oth
#SBATCH -o stdout.%J
export OMP_NUM_THREADS=${SLURM_CPUS_PER_TASK}
./oth data/benchmark/benchmark100.oth

(2) 複数ノードで実行するとき
複数ノードで実行するときのスクリプトファイルは以下の通りです。
このうち、-p, -n, -t行とデータファイル名は適当に変えてください。

#!/bin/bash
#SBATCH -p f024h
#SBATCH -n 80
#SBATCH -t 30
#SBATCH -J oth_mpi
#SBATCH -o stdout.%J
module load MPI-openmpi-2.1.1+gnu-6.3.0+cuda-8.0
mpiexec -n ${SLURM_NTASKS} ./oth_mpi data/benchmark/benchmark100.oth

4.11.2 計算結果の取得

計算結果は以下のようにして確認します。

4.11.3 GPUで計算する方法

ソースコードをコンパイル・リンクするには以下のmoduleをloadした後、 "4.1.2 Linux開発環境"を参考にしてください。
$ module load PrgEnv-gnu-6.3.0
$ module load MPI-openmpi-2.1.1+gnu-6.3.0+cuda-8.0
$ module load PrgEnv-cuda-9.2

(1) 1ノードで実行するとき
1ノードで実行するときのスクリプトファイルは以下の通りです。
このうち、-p, -t行とデータファイル名は適当に変えてください。

#!/bin/bash
#SBATCH -p f024h_p100
#SBATCH -t 30
#SBATCH -J oth_cuda
#SBATCH -o stdout.%J
./oth_cuda data/benchmark/benchmark100.oth

(2) 複数ノードで実行するとき
複数ノードで実行するときのスクリプトファイルは以下の通りです。
このうち、-p, -N, -t行とデータファイル名は適当に変えてください。

#!/bin/bash
#SBATCH -p f024h_p100
#SBATCH -N 2
#SBATCH --ntasks-per-node=1
#SBATCH -t 30
#SBATCH -J oth_cuda
#SBATCH -o stdout.%J
module load MPI-openmpi-2.1.1+gnu-6.3.0+cuda-8.0
mpiexec ./oth_cuda_mpi data/benchmark/benchmark100.oth

4.11.4 ベクトル計算機の使用法

VシステムはNEC SX-Aurora TSUBASA (以下、SX)の2ノードから成ります。
SXでソースコードをコンパイル・リンクするには、 コマンドラインでOpenTHFDフォルダに移動した後、以下のコマンドを実行してください。
なお、SX用のプログラムはCPU版/GPU版の約3倍のメモリーを必要とします。

$ cd src
$ make -f Makefile_ncc clean
$ make -f Makefile_ncc    1ノード版(oth_ncc)が作成されます
$ cd ../mpi
$ make -f Makefile_ncc clean
$ make -f Makefile_ncc    MPI対応複数ノード版(oth_ncc_mpi)が作成されます
$ cd ..

(1) 1ノードで実行するとき
1ノードで実行するスクリプトファイルは下記の通りです。
このうち、-p, -t行とデータファイル名は適当に変えてください。
引数の"-n 8"はSXが8コアであることに対応しています。

#!/bin/bash
#SBATCH -p v024h
#SBATCH -t 30
#SBATCH -J oth_ncc
#SBATCH -o stdout.%J
./oth_ncc -n 8 data/benchmark/benchmark100.oth

(2) 複数ノードで実行するとき
2ノードで実行するスクリプトファイルは下記の通りです。
このうち、-p, -t行とデータファイル名は適当に変えてください。

#!/bin/bash
#SBATCH -p v024h
#SBATCH -N 2
#SBATCH -n 2
#SBATCH -t 30
#SBATCH -J oth_ncc
#SBATCH -o stdout.%J
module load PrgEnv-nec-1.5.0
module load MPI-nmpi-1.3.0
NODEFILE=`generate_pbs_nodefile`
mpiexec -machinefile $NODEFILE ./oth_ncc_mpi -n 8 data/benchmark/benchmark100.oth