初級並列機講習会...2020/06/18  · intel コンパイラ 2018 ifort icc icpc...

100
初級並列機講習会 - PCクラスタを使ってみよう - 2020/6/18 株式会社HPCソリューションズ 1

Upload: others

Post on 20-Jun-2020

5 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 初級並列機講習会...2020/06/18  · Intel コンパイラ 2018 ifort icc icpc PGIコンパイラ (NVIDIA HPC SDKへ移 行) 2018 2017 2016 pgfortran, pgf77, pgf90 nvfortran

初級並列機講習会- PCクラスタを使ってみよう -

2020/6/18

株式会社HPCソリューションズ

1

Page 2: 初級並列機講習会...2020/06/18  · Intel コンパイラ 2018 ifort icc icpc PGIコンパイラ (NVIDIA HPC SDKへ移 行) 2018 2017 2016 pgfortran, pgf77, pgf90 nvfortran

アジェンダ

⚫ PCクラスタ利用方法➢PCクラスタご紹介

➢ログイン方法/作業環境

➢開発環境/コンパイル方法

➢PBS利用方法

⚫便利な使い方とソフトウェア➢Condaの利用方法

➢コンテナ環境とアプリケーション

✓Tensorflow/Chainer/Caffe

➢汎用アプリケーション

✓Matlab/Gaussian

2

Page 3: 初級並列機講習会...2020/06/18  · Intel コンパイラ 2018 ifort icc icpc PGIコンパイラ (NVIDIA HPC SDKへ移 行) 2018 2017 2016 pgfortran, pgf77, pgf90 nvfortran

PCクラスタ利用方法ログイン/環境設定/ジョブの実行

3

Page 4: 初級並列機講習会...2020/06/18  · Intel コンパイラ 2018 ifort icc icpc PGIコンパイラ (NVIDIA HPC SDKへ移 行) 2018 2017 2016 pgfortran, pgf77, pgf90 nvfortran

vpccクラスタのご紹介

4

Page 5: 初級並列機講習会...2020/06/18  · Intel コンパイラ 2018 ifort icc icpc PGIコンパイラ (NVIDIA HPC SDKへ移 行) 2018 2017 2016 pgfortran, pgf77, pgf90 nvfortran

システム構成

共有ストレージ/home

ログインノードvpcc

共有ストレージ/work

計算ノード(48)

vpcc-XXX

GPUノード(8)

vpcc-gpuXXX

AWS EC2 ノード

5

Page 6: 初級並列機講習会...2020/06/18  · Intel コンパイラ 2018 ifort icc icpc PGIコンパイラ (NVIDIA HPC SDKへ移 行) 2018 2017 2016 pgfortran, pgf77, pgf90 nvfortran

システム構成(計算ノード)

⚫ 計算ノード (vpcc-011~vpcc-124)

Fujitsu PRIMERGY C400 M4

(C2460 M4 4ノードを搭載)

✓ ノード数 48(12シャシ)

✓ CPU数 96(2/ノード)

✓ 合計コア 1536(32/ノード)

✓ 主記憶容量 約3TB(64GB/ノード)

✓ OS CentOS 7.2

C400 M4

C2460 M4 x 4

6

Page 7: 初級並列機講習会...2020/06/18  · Intel コンパイラ 2018 ifort icc icpc PGIコンパイラ (NVIDIA HPC SDKへ移 行) 2018 2017 2016 pgfortran, pgf77, pgf90 nvfortran

システム構成(GPUノード)

⚫ GPUノード(vpcc-gpu011~vpcc-gpu042)

Fujitsu PRIMERGY C400 M4

(C2470 M4 2ノードを搭載)

✓ ノード数 8(4シャシ)

✓ CPU数 16(2/ノード)

✓ 合計コア 256(32/ノード)

✓ 主記憶容量 約1TB(128GB/ノード)

✓ GPU数(P100) 16(2/ノード)

✓ OS CentOS 7.2

C400 M4

C2470 M4 x 2

7

Page 8: 初級並列機講習会...2020/06/18  · Intel コンパイラ 2018 ifort icc icpc PGIコンパイラ (NVIDIA HPC SDKへ移 行) 2018 2017 2016 pgfortran, pgf77, pgf90 nvfortran

⚫ Amazon EC2ノード(ip-XXXX)

ノードあたり✓ CPU数 2

✓ 主記憶容量 16GB

✓ GPU数 1 (NVIDIA T4 Tensor Core)

✓ OS CentOS 7.2

講習会時やリソース不足,その他リクエストに応じて

一時的に利用可能になります.

利用情報はmpcグループメーリングリストにて案内予定

https://www.jaist.ac.jp/iscenter/mpc/manual/7/

システム構成(AWS EC2ノード)

8

Page 9: 初級並列機講習会...2020/06/18  · Intel コンパイラ 2018 ifort icc icpc PGIコンパイラ (NVIDIA HPC SDKへ移 行) 2018 2017 2016 pgfortran, pgf77, pgf90 nvfortran

システム構成(ログインノード,共有ストレージ)

⚫ ログインノード

JAISTプライベートクラウド仮想ノード✓ コア数 8✓ 主記憶容量 24GB ✓ OS CentOS 7.2

⚫ 共有ストレージ(/work)(並列計算機共有)✓ 実効容量 350TB✓ ファイルサービス Lustre

⚫ 共有ストレージ(/home)✓ JAIST全学共通領域をNFSマウント

9

Page 10: 初級並列機講習会...2020/06/18  · Intel コンパイラ 2018 ifort icc icpc PGIコンパイラ (NVIDIA HPC SDKへ移 行) 2018 2017 2016 pgfortran, pgf77, pgf90 nvfortran

アクセス方法

10

Page 11: 初級並列機講習会...2020/06/18  · Intel コンパイラ 2018 ifort icc icpc PGIコンパイラ (NVIDIA HPC SDKへ移 行) 2018 2017 2016 pgfortran, pgf77, pgf90 nvfortran

ログインサーバへのアクセス(1) Windowsからアクセス

⚫ 要件➢JAIST内のLDAPユーザアカウント

➢ネットワーク経由でvpccに接続できるPC

➢SSHクライアントソフトウェア(MobaXterm, teragterm, putty等)

⚫ 例~MobaXterm

11

Page 12: 初級並列機講習会...2020/06/18  · Intel コンパイラ 2018 ifort icc icpc PGIコンパイラ (NVIDIA HPC SDKへ移 行) 2018 2017 2016 pgfortran, pgf77, pgf90 nvfortran

JAISTプライベートクラウド~JAISTクラウドデスクトップ(Windows)

12

MobaXterm PuttyJP

X-Window利用可

X-Window不可

軽量

Page 13: 初級並列機講習会...2020/06/18  · Intel コンパイラ 2018 ifort icc icpc PGIコンパイラ (NVIDIA HPC SDKへ移 行) 2018 2017 2016 pgfortran, pgf77, pgf90 nvfortran

ログインサーバへのアクセス(2) Linux, Macからアクセス

⚫ ログイン方法

➢ターミナルを起動してsshコマンドでログインします

⚫ 接続例(hpc-solsユーザの例)

※MacOSXの場合アプリケーション→ユーティリティ→ターミナルをダブルクリック

[testuser@client ~]$ ssh username@vpcc

> ssh hpc-sols@vpcchpc-sols@vpcc‘s password: パスワードは入力しても表示されませんLast login: Mon Apr 20 11:55:25 2020 from fep0.jaist.ac.jp[hpc-sols@vpcc] 101 %

13

Page 14: 初級並列機講習会...2020/06/18  · Intel コンパイラ 2018 ifort icc icpc PGIコンパイラ (NVIDIA HPC SDKへ移 行) 2018 2017 2016 pgfortran, pgf77, pgf90 nvfortran

ログインサーバへのアクセス(3) 注意事項

⚫ 注意事項➢vpcc(ログインノード)上でプログラムを実行しないでください

➢コンパイル作業もログインノードではなく計算ノードで実行することをお勧めします

14

Page 15: 初級並列機講習会...2020/06/18  · Intel コンパイラ 2018 ifort icc icpc PGIコンパイラ (NVIDIA HPC SDKへ移 行) 2018 2017 2016 pgfortran, pgf77, pgf90 nvfortran

ハンズオン

⚫ログインノードへアクセスしてみましょう

✓それぞれお持ちの端末からvpccへログインしてください※パスワードは入力しても表示されません

⚫ハンズオンに必要なファイルをコピー✓今回の実習では/homeを使用します[testuser@vpcc ~]% mkdir -p /home/$USER/workshop

[testuser@vpcc ~]% cp -r /work/Samples/vpcc/Seminar/200618/* /home/$USER/workshop

[testuser@vpcc ~]% cd ~/workshop

[testuser@vpcc ~]% ls caffe chainer gaussian matlab mpitest tensorflow

15

Page 16: 初級並列機講習会...2020/06/18  · Intel コンパイラ 2018 ifort icc icpc PGIコンパイラ (NVIDIA HPC SDKへ移 行) 2018 2017 2016 pgfortran, pgf77, pgf90 nvfortran

作業環境

16

Page 17: 初級並列機講習会...2020/06/18  · Intel コンパイラ 2018 ifort icc icpc PGIコンパイラ (NVIDIA HPC SDKへ移 行) 2018 2017 2016 pgfortran, pgf77, pgf90 nvfortran

作業環境

⚫ ファイルシステム環境➢/home

✓通常の各ユーザのホームディレクトリ

✓JAIST内のWindows, Linux共用環境からアクセス可能

➢/work

✓pccクラスタ内およびlmpccクラスタ内サーバでのみ共用の高速ファイルシステム

✓他のシステムからのアクセス不可

✓バッチジョブ実行時に高速に利用できるファイルシステム

✓バッチジョブ投入時にオプションの指定でステージングにより利用

✓ファイル直接保存しない

17

Page 18: 初級並列機講習会...2020/06/18  · Intel コンパイラ 2018 ifort icc icpc PGIコンパイラ (NVIDIA HPC SDKへ移 行) 2018 2017 2016 pgfortran, pgf77, pgf90 nvfortran

開発環境

18

Page 19: 初級並列機講習会...2020/06/18  · Intel コンパイラ 2018 ifort icc icpc PGIコンパイラ (NVIDIA HPC SDKへ移 行) 2018 2017 2016 pgfortran, pgf77, pgf90 nvfortran

コンパイラとコンパイルコマンド

コンパイラ バージョン コマンド

Fortran C C++

gcc 4.8.5 gfortran gcc g++

Intel コンパイラ 2018 ifort icc icpc

PGIコンパイラ(NVIDIA HPC SDKへ移行)

201820172016

pgfortran, pgf77, pgf90nvfortran

pgccnvcc

pgc++nvc++

MPI

Intel MPI 2018 mpiifort mpiicc mpiicpc

openmpi 3.1.4 mpif77, mpif90 mpicc mpiCC, mpic++, mpicxx

cuda

cuda 10.0, 10.29.1, 9.08.0

- nvcc nvcc

19

Page 20: 初級並列機講習会...2020/06/18  · Intel コンパイラ 2018 ifort icc icpc PGIコンパイラ (NVIDIA HPC SDKへ移 行) 2018 2017 2016 pgfortran, pgf77, pgf90 nvfortran

コンパイル環境設定(moduleコマンド)(1)

moduleコマンド:

コンパイラやライブラリパス, MPIの実行環境(環境変数)を変更する

⚫ IntelコンパイラとIntel MPIの設定(デフォルト)

※ログイン時にはデフォルトでIntel開発環境が設定されている

⚫ 現在設定されているモジュールの一覧表示

[hpc-sols@vpcc] 101 % module load PrgEnv-intel

[hpc-sols@vpcc] 101 % module listCurrently Loaded Modulefiles:

1) intel/2018 2) PrgEnv-intel 3) cuda/10.2

20

Page 21: 初級並列機講習会...2020/06/18  · Intel コンパイラ 2018 ifort icc icpc PGIコンパイラ (NVIDIA HPC SDKへ移 行) 2018 2017 2016 pgfortran, pgf77, pgf90 nvfortran

コンパイル環境設定(moduleコマンド)(2)

⚫ 利用可能なモジュールの確認(一部抜粋)

基本的に環境変数はPrgEnv_XXXXを設定するのみで使用可能です

[hpc-sols@vpcc] 101 % module av------------------------------- /opt/modulefiles -------------------------------app_g09 cuda/9.1 openmpi/3.1.4/gccapp_g16 fftw/3.3.7 PrgEnv-gcc-openmpiapp_math intel/2018 PrgEnv-intelapp_matlab local PrgEnv-intel-openmpiapp_matlab_run2019 openmpi/2.1.2/gcc py27cuda/10.0 openmpi/2.1.2/intel py35cuda/10.2 openmpi/3.0.0/gcc singularitycuda/9.0 openmpi/3.0.0/intel----------------------------- /opt/pgi/modulefiles -----------------------------openmpi/1.10.2/2016 pgi/2016 pgi64/2017openmpi/2.1.2/2017 pgi/2017 pgi-llvmopenmpi/2.1.2/2018 pgi/2018 PrgEnv-pgi/16.5pgi/16.5 pgi64/16.5 PrgEnv-pgi/17.10pgi/17.10 pgi64/17.10(default) PrgEnv-pgi/18.1(default)pgi/18.1(default) pgi64/2016

21

Page 22: 初級並列機講習会...2020/06/18  · Intel コンパイラ 2018 ifort icc icpc PGIコンパイラ (NVIDIA HPC SDKへ移 行) 2018 2017 2016 pgfortran, pgf77, pgf90 nvfortran

コンパイル環境設定(moduleコマンド)(3)

⚫ モジュールのロード/アンロード

⚫ PGIコンパイラ(2018)を使用する場合

⚫ CUDA(10.0)を使用する場合

[hpc-sols@vpcc] 101 % module load <module name>[hpc-sols@vpcc] 101 % module unload <module name>

[hpc-sols@vpcc] 101 % module load PrgEnv-pgi/18.1

[hpc-sols@vpcc] 101 % module load cuda/10.0

22

Page 23: 初級並列機講習会...2020/06/18  · Intel コンパイラ 2018 ifort icc icpc PGIコンパイラ (NVIDIA HPC SDKへ移 行) 2018 2017 2016 pgfortran, pgf77, pgf90 nvfortran

コンパイル方法

23

Page 24: 初級並列機講習会...2020/06/18  · Intel コンパイラ 2018 ifort icc icpc PGIコンパイラ (NVIDIA HPC SDKへ移 行) 2018 2017 2016 pgfortran, pgf77, pgf90 nvfortran

Intel Cコンパイラの使い方

⚫ ソースファイルの作成

⚫ コンパイル

⚫ 実行

[hpc-sols@vpcc] 106 % cd ~/workshop/mpitest[hpc-sols@vpcc] 107 % cat hello.c#include <stdio.h>

int main(void){

printf("hello, world¥n");return 0;

}

[hpc-sols@vpcc] 109 % icc -o hello hello.c

[hpc-sols@vpcc] 110 % ./hellohello, world 24

Page 25: 初級並列機講習会...2020/06/18  · Intel コンパイラ 2018 ifort icc icpc PGIコンパイラ (NVIDIA HPC SDKへ移 行) 2018 2017 2016 pgfortran, pgf77, pgf90 nvfortran

Intel MPI(C)の使い方

⚫ ソースファイルの作成

⚫ コンパイル

⚫ 実行実行にはPBSバッチジョブシステムを利用します.

PBSの利用方法は後述のジョブの投入方法をご覧ください

[hpc-sols@vpcc] 106 % cd ~/workshop/mpitest[hpc-sols@vpcc] 107 % cat cpi.c#include "mpi.h"#include <stdio.h>#include <math.h>…中略・・・MPI_Finalize();

return 0;}

[hpc-sols@vpcc] 109 % mpiicc -o cpi cpi.c

25

Page 26: 初級並列機講習会...2020/06/18  · Intel コンパイラ 2018 ifort icc icpc PGIコンパイラ (NVIDIA HPC SDKへ移 行) 2018 2017 2016 pgfortran, pgf77, pgf90 nvfortran

PBS利用方法

26

Page 27: 初級並列機講習会...2020/06/18  · Intel コンパイラ 2018 ifort icc icpc PGIコンパイラ (NVIDIA HPC SDKへ移 行) 2018 2017 2016 pgfortran, pgf77, pgf90 nvfortran

PBS(バッチシステム)とは

⚫ PBS Professional:➢バッチジョブの管理を効率よく行うためのシステム

➢‘ジョブスケジューラ―’とも呼ばれる

➢一人のユーザがシステムを占有してしまうことを避け,各ユーザにシステム資源(CPU時間,メモリ領域)を公平に割り振る

①実行プログラム

②Scriptファイルを記述

prog1

・CPU時間・メモリ領域・ノード数など

PBS_run.sh

③ジョブの投入$qsub PBS_run.sh

PBS Server

計算ノード

27

Page 28: 初級並列機講習会...2020/06/18  · Intel コンパイラ 2018 ifort icc icpc PGIコンパイラ (NVIDIA HPC SDKへ移 行) 2018 2017 2016 pgfortran, pgf77, pgf90 nvfortran

ジョブとは

⚫ジョブを表示してみる

[testuser@vpcc ~]# qstatJob id Name User Time Use S Queue----------------------- ---------------- ---------------- ------------- --- -----114715.vpcc-con STDIN user01 16:48:02 R GPU-S115694.vpcc-con job1 user02 40:38:34 R SMALL115929.vpcc-con gaussian user03 10:32:19 R SINGLE116393.vpcc-con job2 user02 0 Q SINGLE

列名 説明

Job id ジョブが投入されたときに自動で付けられる識別子. ジョブをキャンセルするときなどに必要になります.

Name ジョブの名前. もし‘-N’ オプションが設定されていればここに表示されます.

User ジョブを投入したユーザー.

Time Use ジョブが費やしたCPU時間.

Sジョブのステータス. “R”→“Running”, “Q”→“Queued”, “E”→“exiting after having run”, “H”→”Holding"

Queue ジョブが実行されているキューの名前. 28

Page 29: 初級並列機講習会...2020/06/18  · Intel コンパイラ 2018 ifort icc icpc PGIコンパイラ (NVIDIA HPC SDKへ移 行) 2018 2017 2016 pgfortran, pgf77, pgf90 nvfortran

PBSジョブの扱い方

⚫ ユーザがすること➢ジョブが必要とするリソースから投入すべきqueueを決定する

✓リソース: CPU時間,メモリ領域,ノード数などを考慮

➢バッチジョブ用のスクリプトを記述する

➢qsubコマンドによってPBSにジョブを投入する

➢ジョブ終了後に結果を確認する

⚫ PBSがすること➢ジョブを要求されたリソースに基づいてqueueに配置する

➢このリソースが利用可能になった時に,ジョブを実行する

➢ジョブは実行が完了するか, リソース要求のリミットまで実行される

➢e-mailなどで完了を通知することも可能29

Page 30: 初級並列機講習会...2020/06/18  · Intel コンパイラ 2018 ifort icc icpc PGIコンパイラ (NVIDIA HPC SDKへ移 行) 2018 2017 2016 pgfortran, pgf77, pgf90 nvfortran

バッチキュークラスの構成

Queue ElapsTime

Node Core Chunk GPU 同時実行数 ユーザ当たり同時実行数

備考

TINY 30min. 1 1-32 1-4 0 20 1

SINGLE 1week 1 1-32 1-4 0 90 16 デフォルトキュー

SMALL 3days 1-2 1-64 1-12 0 16 4

MEDIUM 12hours 3-8 65-256 13-32 0 4 2

LARGE 12hours 9-16 257-512 33-64 0 2 1

LONG 3weeks 1 1-32 1-4 0 16 4

LONG-L 要申請 要申請 要申請 要申請 0 要申請 要申請

GPU-1 1day 0.25 1-32 1-2 1 16 3 GPUノード用

GPU-S 1day 1 1-32 1-4 1-2 16 1 GPUノード用

GPU-L 12hours 1-8 1-256 1-16 1-16 2 1 GPUノード用

GPU-EC2 要申請 要申請 要申請 要申請 要申請 要申請 要申請 AWS EC2(GPUあり)専用

• 上記以外に特定アプリケーションのための専用キューも存在(MaterialStudio)

• 参考ページ:https://www.jaist.ac.jp/iscenter/mpc/vpcc/2/#c2874

• リソースの指定はチャンク単位で行うことができる

1Chunk=0.5CPU(=8core)(ncpus=8) + 16GBメモリ(GPUノードは32GB)

1Node=4Chank, 2Node=8Chunk

• 2ノード以上を利用するにはMPIなどのノード間通信手順が必要 30

Page 31: 初級並列機講習会...2020/06/18  · Intel コンパイラ 2018 ifort icc icpc PGIコンパイラ (NVIDIA HPC SDKへ移 行) 2018 2017 2016 pgfortran, pgf77, pgf90 nvfortran

ジョブの投入方法

1. シェルスクリプトの作成➢PBSへのリソース要求やオプションを記述する必要がある

➢mkjob.pl というツールが用意されており, 必要なCPUや並列度を指定することでスクリプトのひな型が作成される

✓要求リソース対する適切なキューの選択

✓PBSパラメータの記述

✓(並列ジョブの場合)必要な環境変数の記述

✓(並列ジョブの場合)mpirunコマンドのひな形の記述

➢作成されるスクリプトを必要に応じて変更して利用する

2. jobのサブミット➢ qsubコマンド

31

Page 32: 初級並列機講習会...2020/06/18  · Intel コンパイラ 2018 ifort icc icpc PGIコンパイラ (NVIDIA HPC SDKへ移 行) 2018 2017 2016 pgfortran, pgf77, pgf90 nvfortran

ジョブの投入方法(シェルスクリプトの作成)

⚫ mkjob.pl利用方法(非並列ジョブの例)[hpc-sols@vpcc] 104 % mkjob.plHow many MPI processes do you want to run in your job? [1 - 512]: 1 ←MPI並列数を入力

How many OpenMP threads do you want to run per processes?(not per job!) [1-32]: 1 ←OpenMP並列数を入力

Your job size: Total 8 CPU Cores, 16 GB memory.( around 16 GB memory per process)

Do your job takes more than 30 mintes?(Y/N): n ←ジョブは30分以内に終了するか?Job Script was created as PBS_run.sh

[hpc-sols@vpcc] 104 % cat PBS_run.sh ←生成されたスクリプトの内容を確認してみる#!/bin/csh#### Job Script for VPCC, JAIST## created by mkjob.pl##PBS -N Test_Job#PBS -q TINY#PBS -joe #PBSに続けてPBSへのオプションを記述(キュー名、リソースが指定されている)#PBS -lselect=1:ncpus=8:mpiprocs=1#PBS -lplace=packcd ${PBS_O_WORKDIR}./a.out > result 実行したいプログラムや処理内容を記述

32

Page 33: 初級並列機講習会...2020/06/18  · Intel コンパイラ 2018 ifort icc icpc PGIコンパイラ (NVIDIA HPC SDKへ移 行) 2018 2017 2016 pgfortran, pgf77, pgf90 nvfortran

ジョブの投入方法(シェルスクリプトの作成)

⚫ mkjob.pl利用方法(並列ジョブの例)[hpc-sols@vpcc] 104 % mkjob.plHow many MPI processes do you want to run in your job? [1 - 512]: 8 ←MPI並列数を入力

How many OpenMP threads do you want to run per processes?(not per job!) [1-32]: 4 ←OpenMP並列数を入力

Your job size: Total 32 CPU Cores, 64 GB memory.( around 8 GB memory per process)

Do your job takes more than 30 mintes?(Y/N): y ←ジョブは30分以内に終了するか?Job Script was created as PBS_run.sh

[hpc-sols@vpcc] 104 % cat PBS_run.sh ←生成されたスクリプトの内容を確認してみる#!/bin/csh#### Job Script for VPCC, JAIST## created by mkjob.pl##PBS -N Test_Job#PBS -q SINGLE#PBS -joe #PBSに続けてPBSへのオプションを記述(キュー名、リソースが指定されている)#PBS -lselect=4:ncpus=8:mpiprocs=2#PBS -lplace=packcd ${PBS_O_WORKDIR}setenv OMP_NUM_THREADS 4 並列処理に必要な環境変数setenv KMP_AFFINITY disabledmpirun -machinefile ${PBS_NODEFILE} -np 8 ./your_appli > result 実行したいプログラムや処理内容を記述

33

Page 34: 初級並列機講習会...2020/06/18  · Intel コンパイラ 2018 ifort icc icpc PGIコンパイラ (NVIDIA HPC SDKへ移 行) 2018 2017 2016 pgfortran, pgf77, pgf90 nvfortran

ジョブの投入方法(qsubコマンド)

⚫ 例1➢作成したスクリプトをそのまま使用

[hpc-sols@vpcc] 101 % qsub PBS_run.sh4672.vpcc-con ←ジョブIDが表示される

⚫ 例2➢qsubコマンドの引数としてPBSのオプションを記述

✓ スクリプトにPBSのオプションを記述しない場合

✓ スクリプトに記述しているオプションを上書きしたい場合(キューを変える)など

[hpc-sols@vpcc] 101 % qsub ーq SINGLE -N myjob PBS_run.sh4673.vpcc-con ←ジョブIDが表示される

34

Page 35: 初級並列機講習会...2020/06/18  · Intel コンパイラ 2018 ifort icc icpc PGIコンパイラ (NVIDIA HPC SDKへ移 行) 2018 2017 2016 pgfortran, pgf77, pgf90 nvfortran

ジョブの投入方法(qsubコマンド)

⚫ 例3➢ジョブの開始時および終了時にメールで通知する

✓シェルスクリプトにオプションを追加する方法

✓qsubの引数に指定する方法

[hpc-sols@vpcc] 101 % [hpc-sols@vpcc] 104 % cat PBS_run#!/bin/csh#PBS -q TINY…#PBS -M [email protected] -m be ← -M メールアドレス –m (b begin, e end)…

[hpc-sols@vpcc] 101 % qsub -M [email protected] -m be PBS_run.sh4672.vpcc-con

35

Page 36: 初級並列機講習会...2020/06/18  · Intel コンパイラ 2018 ifort icc icpc PGIコンパイラ (NVIDIA HPC SDKへ移 行) 2018 2017 2016 pgfortran, pgf77, pgf90 nvfortran

ジョブの投入方法(qsubコマンド)

⚫ 例4➢インタラクティブジョブを実行する

✓計算ノードに直接ログインする方式[hpc-sols@vpcc] 112 % hostnamevpcc ←ログインノードから実行[hpc-sols@vpcc] 113 % qsub -I -q SINGLE ← -I オプションをつけてジョブをサブミット(シェルスクリプトは不要)qsub: waiting for job 2129665.vpcc-con to startqsub: job 2129665.vpcc-con ready

[hpc-sols@vpcc-082] 101 % hostname ←PBSサーバから割り当てられた計算ノードに自動的にログインvpcc-082[hpc-sols@vpcc-082] 102 % exit ←作業後は必ずログアウトしてインタラクティブジョブを終了させるlogout

qsub: job 2129665.vpcc-con completed ←ジョブの終了[hpc-sols@vpcc] 114 %

インタラクティブジョブを実行するキューにMaxRunで設定されている数より多くのジョブが投入されている場合,先に投入されているジョブが終了するまで処理がプロンプトが出てきません. プロンプトが出てくるまで待てない場合はCtrl+Cを押すことによりキャンセルすることができます.

36

Page 37: 初級並列機講習会...2020/06/18  · Intel コンパイラ 2018 ifort icc icpc PGIコンパイラ (NVIDIA HPC SDKへ移 行) 2018 2017 2016 pgfortran, pgf77, pgf90 nvfortran

qsubコマンドの主なオプション

オプション 説明

-q <queue_name> ジョブを投入したいキューを設定します.

-N <job_name> ジョブの名前を指定します. もし–N を指定しない場合はスクリプトのファイル名が割り当てられます.

-j oe 標準出力ファイルに標準エラーも混合で出力します. ファイル名は‘<ジョブ名>.o.<ジョブID>’となります.

-l <resouce> リソースの指定例:-l select=11チャンク(8core x1)を使用して実行.

-l select=1:mpiproc=8 (MPI使用時)1チャンク(8core x1)を使用してmpi8並列プログラムを実行.

-l place=pack1物理ノード内での実行を強制(32コアより多くのコアを同時に指定するとジョブが実行されな

いので注意)

-M <mail_address> -m be ジョブの開始/終了時にメールで知らせるメールアドレスを設定. メールを発信するタイミングを指定. (‘b’→‘start’, ‘e’→‘end’)

ーI インタラクティブジョブとして実行する

※ qsubのオプションとして、またはジョブスクリプトの中に記載することも可能です

参照:JAISTマニュアル ジョブオプションの指定 37

Page 38: 初級並列機講習会...2020/06/18  · Intel コンパイラ 2018 ifort icc icpc PGIコンパイラ (NVIDIA HPC SDKへ移 行) 2018 2017 2016 pgfortran, pgf77, pgf90 nvfortran

ジョブの表示(qstatコマンド)

列名 説明

Job id ジョブが投入されたときに自動で付けられる識別子. ジョブをキャンセルするときなどに必要になります.

Name ジョブの名前. もし‘-N’ オプションが設定されていればここに表示されます.

User ジョブを投入したユーザー.

Time Use ジョブが費やしたCPU時間.

Sジョブのステータス. “R”→“Running”, “Q”→“Queued”, “E”→“exiting after having run”, “H”→”Holding"

Queue ジョブが実行されているキューの名前.

[testuser@vpcc ~]# qstatJob id Name User Time Use S Queue----------------------- ---------------- ---------------- ------------- --- -----114715.vpcc-con STDIN user01 16:48:02 R GPU-S115694.vpcc-con job1 user02 40:38:34 R SMALL115929.vpcc-con gaussian user03 10:32:19 R SINGLE116393.vpcc-con job2 user02 0 Q SINGLE

38

Page 39: 初級並列機講習会...2020/06/18  · Intel コンパイラ 2018 ifort icc icpc PGIコンパイラ (NVIDIA HPC SDKへ移 行) 2018 2017 2016 pgfortran, pgf77, pgf90 nvfortran

ジョブの表示(qstatコマンド)

列名 説明

NDS 要求されたノードの数

TSK 並列タスクの数

Req'd Memory 要求された総メモリ

Req'd Time 要求された時間

Elap Time ジョブが実行されている場合, 経過時間あるいはCPU時間

[testuser@vpcc ~]# qstat -avpcc-con:

Req’d Req’d ElapJob ID Username Queue Jobname SessID NDS TSK Memory Time S Time------------------------ ------------------ -------- ----------- ---------- -------- --- ----------- --------- - -----114715.vpcc-con user01 GPU-S STDIN 82169 1 32 123gb 24:00 R 20:42115694.vpcc-con user02 SMALL job1 84871 2 64 31gb 72:00 R 39:00115929.vpcc-con user03 SINGLE gaussian 90738 2 16 32gb 168:0 R 164:5116393.vpcc-con user02 SINGLE job2 131000 2 32 31gb 168:0 R 160:5

39

Page 40: 初級並列機講習会...2020/06/18  · Intel コンパイラ 2018 ifort icc icpc PGIコンパイラ (NVIDIA HPC SDKへ移 行) 2018 2017 2016 pgfortran, pgf77, pgf90 nvfortran

ジョブのキャンセル(qdelコマンド)

[testuser@vpcc ~]# qstatJob id Name User Time Use S Queue----------------------- ---------------- ---------------- ------------- --- -----114715.vpcc-con STDIN user01 16:48:02 R GPU-S115694.vpcc-con job1 user02 40:38:34 R SMALL115929.vpcc-con gaussian user03 10:32:19 R SINGLE116393.vpcc-con job2 user02 0 Q SINGLE

[testuser@vpcc ~]# qdel 114715

[testuser@vpcc ~]# qstatJob id Name User Time Use S Queue----------------------- ---------------- ---------------- ------------- --- -----115694.vpcc-con job1 user02 40:38:34 R SMALL115929.vpcc-con gaussian user03 10:32:19 R SINGLE116393.vpcc-con job2 user02 0 Q SINGLE

40

Page 41: 初級並列機講習会...2020/06/18  · Intel コンパイラ 2018 ifort icc icpc PGIコンパイラ (NVIDIA HPC SDKへ移 行) 2018 2017 2016 pgfortran, pgf77, pgf90 nvfortran

ファイルのステージングについて (1)

⚫ ジョブ実行時に指定したファイルを実行ディレクトリに移動する機能➢ジョブ実行を高速な/workファイルシステムで実行するための指定

計算ノードvpcc-XXX

/home/$USER/xxx/ /work/running/pbsXXX/

qsub -W sandbox=PRIVATE ¥-W stagein= @ ¥-W stageout= @ ¥job.sh

41

Page 42: 初級並列機講習会...2020/06/18  · Intel コンパイラ 2018 ifort icc icpc PGIコンパイラ (NVIDIA HPC SDKへ移 行) 2018 2017 2016 pgfortran, pgf77, pgf90 nvfortran

ファイルのステージングについて(2)

ステージング指定例:

ジョブ実行前にジョブ実行ディレクトリが/work/running/固有ディレクトリ($PBS_JOBDIR)に作成され、そこに(sandbox=PRIVATE) stageinで指定したファイルが転送される、また終了時にstageoutで指定したファイル(またはディレクトリ)が指定場所(この場合ジョブを実行したディレクトリ)にコピーされる.

[hpc-sols@vpcc] 112 % qsub –W sandbox=PRIVATE ¥-W stagein=<file or dir>@vpcc:$PWD/<file or dir>¥-W stageout=<file or dir>@vpcc:$PWD job.sh

[hpc-sols@vpcc] % cat job.sh #!/bin/bash#cd $PBS_O_WORKDIR ← コメントアウトcd $PBS_JOBDIR ← この指定がこれまでと異なるので注意#以降に処理を記述

スクリプト作成時の注意点:

42

Page 43: 初級並列機講習会...2020/06/18  · Intel コンパイラ 2018 ifort icc icpc PGIコンパイラ (NVIDIA HPC SDKへ移 行) 2018 2017 2016 pgfortran, pgf77, pgf90 nvfortran

⚫シングルジョブのコンパイル~実行

[hpc-sols@vpcc] % module list 環境変数確認Currently Loaded Modulefiles:1) intel/2018 2) PrgEnv-intel 3) cuda/10.2

[hpc-sols@vpcc] % cd ~/workshop/mpitest/ 実行ディレクトリへ移動[hpc-sols@vpcc] % ls サンプルファイルの確認cpi.c hello.c pbs_intelmpi.csh pbs_single.csh

[hpc-sols@vpcc] % icc -o single.exe hello.c コンパイル[hpc-sols@vpcc] % cat pbs_single.csh シェルスクリプト確認#!/bin/tcsh#PBS -j oe -l select=1#PBS -q SINGLEcd $PBS_O_WORKDIR

./single.exe

ハンズオン - ソースコードからのジョブ実行

43

Page 44: 初級並列機講習会...2020/06/18  · Intel コンパイラ 2018 ifort icc icpc PGIコンパイラ (NVIDIA HPC SDKへ移 行) 2018 2017 2016 pgfortran, pgf77, pgf90 nvfortran

ハンズオン - ソースコードからのジョブ実行

前頁からの続き

[hpc-sols@vpcc] % qsub pbs_single.csh ; qstat -u $USER ジョブのサブミット、ステータス確認2133875.vpcc-con ジョブIDの表示

vpcc-con:Req'd Req'd Elap

Job ID Username Queue Jobname SessID NDS TSK Memory Time S Time--------------- -------- -------- ---------- ------ --- --- ------ ----- - -----2133875.vpcc-co hpc-sols SINGLE pbs_single -- 1 8 15gb 168:0 Q --[hpc-sols@vpcc] % lscpi.c pbs_intelmpi.csh pbs_single.csh.o2133875 ジョブ終了後に結果ファイルが戻るhello.c pbs_single.csh single.exe[hpc-sols@vpcc] 163 % cat pbs_single.csh.o2133875 結果ファイルの確認Warning: no access to tty (Bad file descriptor).Thus no job control in this shell.hello, world

44

Page 45: 初級並列機講習会...2020/06/18  · Intel コンパイラ 2018 ifort icc icpc PGIコンパイラ (NVIDIA HPC SDKへ移 行) 2018 2017 2016 pgfortran, pgf77, pgf90 nvfortran

⚫並列ジョブのコンパイル~実行

[hpc-sols@vpcc] % cd ~/workshop/mpitest/ 実行ディレクトリへ移動[hpc-sols@vpcc] % ls サンプルファイルの確認cpi.c hello.c pbs_intelmpi.csh pbs_single.csh

[hpc-sols@vpcc] % mpiicc -o impi.exe cpi.c コンパイル[hpc-sols@vpcc] % cat pbs_intelmpi.csh シェルスクリプト確認#!/bin/tcsh#PBS -j oe -l select=1:ncpus=8:mpiprocs=8#PBS -q SINGLEcd $PBS_O_WORKDIRset NPROCS = `cat $PBS_NODEFILE|wc -l`

mpirun -machinefile ${PBS_NODEFILE} -np ${NPROCS} ./impi.exe

ハンズオン - ソースコードからのジョブ実行

45

Page 46: 初級並列機講習会...2020/06/18  · Intel コンパイラ 2018 ifort icc icpc PGIコンパイラ (NVIDIA HPC SDKへ移 行) 2018 2017 2016 pgfortran, pgf77, pgf90 nvfortran

ハンズオン - ソースコードからのジョブ実行

前頁からの続き[hpc-sols@vpcc] % qsub pbs_intelmpi.csh ; qstat -u $USER ジョブのサブミット、ステータス確認2133921.vpcc-con ジョブIDの表示vpcc-con:

Req’d Req’d ElapJob ID Username Queue Jobname SessID NDS TSK Memory Time S Time-------------------- ----------- --------- ---------- --------- --- --- - ----- ----- - -----2133921.vpcc-co hpc-sols SINGLE pbs_intelm -- 1 8 15gb 168:0 Q --

[hpc-sols@vpcc] % lscpi.c impi.exe pbs_intelmpi.csh.o2133921 pbs_single.csh.o2133875hello.c pbs_intelmpi.csh pbs_single.csh single.exe[hpc-sols@vpcc] 163 % cat pbs_single.csh.o2133921 結果ファイルの確認Warning: no access to tty (Bad file descriptor).Thus no job control in this shell.Process 0 on vpcc-031---中略---Process 7 on vpcc-031pi is approximately 3.1416009869231245, Error is 0.0000083333333314wall clock time = 0.000231 46

Page 47: 初級並列機講習会...2020/06/18  · Intel コンパイラ 2018 ifort icc icpc PGIコンパイラ (NVIDIA HPC SDKへ移 行) 2018 2017 2016 pgfortran, pgf77, pgf90 nvfortran

便利な使い方とソフトウェアCondaの利用方法

コンテナ環境とアプリケーション

汎用アプリケーション

47

Page 48: 初級並列機講習会...2020/06/18  · Intel コンパイラ 2018 ifort icc icpc PGIコンパイラ (NVIDIA HPC SDKへ移 行) 2018 2017 2016 pgfortran, pgf77, pgf90 nvfortran

condaの利用方法

48

Page 49: 初級並列機講習会...2020/06/18  · Intel コンパイラ 2018 ifort icc icpc PGIコンパイラ (NVIDIA HPC SDKへ移 行) 2018 2017 2016 pgfortran, pgf77, pgf90 nvfortran

condaとは

⚫ Pythonパッケージ管理ツールから生まれたオープンソースパッケージ管理ツール(Python以外のパッケージも管理可能)

⚫ 自分のホームディレクトリなど任意の環境にインストール

⚫ 環境切り替えツールとしても機能する(pyenv, virtualenvの代用)

パッケージリポジトリ (JAIST学内)

ユーザーHOME環境

2.7.x 3.x

環境A 環境B

4.0.0 4.1.01.1.0 1.2.1

その他多数のパッケージ群

インストール インストール

切り替え

49

Page 50: 初級並列機講習会...2020/06/18  · Intel コンパイラ 2018 ifort icc icpc PGIコンパイラ (NVIDIA HPC SDKへ移 行) 2018 2017 2016 pgfortran, pgf77, pgf90 nvfortran

microcondaの概要

⚫ condaの軽量版

⚫ パッケージリポジトリはJAISTネットワーク上に存在

⚫ http://vpcc-repo/condaからインストーラをダウンロード

⚫ インストーラは2種類➢Python2.x系

➢Python3.x系

⚫ 自分のホームディレクトリにインストール

⚫ 好みのバージョンのパッケージの組み合わせでの環境構築

50

Page 51: 初級並列機講習会...2020/06/18  · Intel コンパイラ 2018 ifort icc icpc PGIコンパイラ (NVIDIA HPC SDKへ移 行) 2018 2017 2016 pgfortran, pgf77, pgf90 nvfortran

minicondaのインストール(1) ~ Python2.x系

[testuser@vpcc]% wget http://vpcc-repo/conda/MicroConda2-18.01-Linux-x86_64.sh

--2018-06-24 22:24:02-- http://vpcc-repo/conda/MicroConda2-18.01-Linux-x86_64.sh

Resolving vpcc-repo (vpcc-repo)… 150.65.180.42

---中略---

100%[=====================================>] 29,063,270 --.-K/s in 0.08s

2018-06-24 22:24:03 (334 MB/s) - ‘MicroConda2-18.01-Linux-x86_64.sh’ saved [29063270/29063270]

[testuser@vpcc]% bash MicroConda2-18.01-Linux-x86_64.sh -b -p /home/$USER/target-dir

PREFIX=/home/testuser/target-dir

installing: python-2.7.13-0 ...

Python 2.7.13 :: Continuum Analytics, Inc.

---中略---

WARNING:

You currently have a PYTHONPATH environment variable set. This may cause

unexpected behavior when running the Python interpreter in MicroConda2.

For best results, please verify that your PYTHONPATH only points to

directories of packages that are compatible with the Python interpreter

in MicroConda2: /home/testuser/target-dir 51

Page 52: 初級並列機講習会...2020/06/18  · Intel コンパイラ 2018 ifort icc icpc PGIコンパイラ (NVIDIA HPC SDKへ移 行) 2018 2017 2016 pgfortran, pgf77, pgf90 nvfortran

minicondaのインストール(2) ~ Python3.x系

[testuser@vpcc]% wget http://vpcc-repo/conda/MicroConda3-18.01-Linux-x86_64.sh

--2018-06-25 01:37:34-- http://vpcc-repo/conda/MicroConda3-18.01-Linux-x86_64.sh

Resolving vpcc-repo (vpcc-repo)... 150.65.180.42

---中略---

100%[=====================================>] 57,407,855 344MB/s in 0.2s

2018-06-25 01:37:34 (344 MB/s) - ‘MicroConda3-18.01-Linux-x86_64.sh’ saved [57407855/57407855]

[testuser@vpcc]% bash MicroConda3-18.01-Linux-x86_64.sh -b -p /home/$USER/target-dir

PREFIX=/home/testuser/target-dir

installing: python-3.6.4-hc3d631a_1 ...

---中略---

installation finished.

WARNING:

You currently have a PYTHONPATH environment variable set. This may cause

unexpected behavior when running the Python interpreter in MicroConda3.

For best results, please verify that your PYTHONPATH only points to

directories of packages that are compatible with the Python interpreter

in MicroConda3: /home/testuser/target-dir 52

Page 53: 初級並列機講習会...2020/06/18  · Intel コンパイラ 2018 ifort icc icpc PGIコンパイラ (NVIDIA HPC SDKへ移 行) 2018 2017 2016 pgfortran, pgf77, pgf90 nvfortran

miniconda環境設定

⚫ シェルのコマンドラインで実施

[testuser@vpcc]% setenv PATH /home/$USER/target-dir/bin:$PATH[testuser@vpcc]% source /home/$USER/target-dir/etc/profile.d/conda.csh

⚫ シェルのデフォルトにする

[testuser@vpcc]% echo ‘setenv PATH /home/$USER/target-dir/bin:$PATH’ >> $HOME/.cshrc[testuser@vpcc]% echo ‘source /home/$USER/target-dir/etc/profile.d/conda.csh’ >> $HOME/.cshrc

53

Page 54: 初級並列機講習会...2020/06/18  · Intel コンパイラ 2018 ifort icc icpc PGIコンパイラ (NVIDIA HPC SDKへ移 行) 2018 2017 2016 pgfortran, pgf77, pgf90 nvfortran

condaの更新~実行例

[testuser@vpcc]% conda update conda

Solving environment: done

## Package Plan ##

environment location: /home/hpc-sols/test/microconda2

added / updated specs:

- conda

The following packages will be downloaded:

package | build

--------------------------------|-----------------

conda-4.5.4 | py36_0 1.0 MB anaconda

openssl-1.0.2o | h20670df_0 3.4 MB anaconda

certifi-2018.4.16 | py36_0 142 KB anaconda

ca-certificates-2018.03.07 | 0 124 KB anaconda

------------------------------------------------------------

Total: 4.7 MB

54

Page 55: 初級並列機講習会...2020/06/18  · Intel コンパイラ 2018 ifort icc icpc PGIコンパイラ (NVIDIA HPC SDKへ移 行) 2018 2017 2016 pgfortran, pgf77, pgf90 nvfortran

conda環境の操作

⚫ 作成例[testuser@vpcc]% conda create -n test_env python=3.6

⚫ 作成された環境一覧

⚫ 環境切り替え

⚫ 環境削除

[testuser@vpcc]% conda env listor

[testuser@vpcc]% conda info -e

[testuser@vpcc]% conda activate <env_name>[testuser@vpcc]% conda deactivate

[testuser@vpcc]% conda remove -n <env_name>or

[testuser@vpcc]% conda remove --all55

Page 56: 初級並列機講習会...2020/06/18  · Intel コンパイラ 2018 ifort icc icpc PGIコンパイラ (NVIDIA HPC SDKへ移 行) 2018 2017 2016 pgfortran, pgf77, pgf90 nvfortran

condaパッケージの操作

⚫ インストールされているパッケージ一覧[testuser@vpcc]% conda list

⚫ 利用可能なパッケージ一覧

⚫ パッケージのインストール

⚫ パッケージのアンインストール

[testuser@vpcc]% conda searchor

[testuser@vpcc]% conda search <package name>

[testuser@vpcc]% conda install <package name>or

[testuser@vpcc]% conda install <package name>=<version>

[testuser@vpcc]% conda uninstall <package name>or

[testuser@vpcc]% conda uninstall <package name>=<version> 56

Page 57: 初級並列機講習会...2020/06/18  · Intel コンパイラ 2018 ifort icc icpc PGIコンパイラ (NVIDIA HPC SDKへ移 行) 2018 2017 2016 pgfortran, pgf77, pgf90 nvfortran

ハンズオン~conda(1)

⚫Minicondaインストール→アップデート

# Miniconda インストール(Python3.6)[vpcc] % wget http://vpcc-repo/conda/MicroConda3-18.01-Linux-x86_64.sh[vpcc] % bash MicroConda3-18.01-Linux-x86_64.sh -b -p ~/conda# 環境変数設定[vpcc] % setenv PATH ~/conda/bin:$PATH[vpcc] % source ~/conda/etc/profile.d/conda.csh# アップデート[vpcc] % conda update conda# pythonバージョン確認[vpcc] % python --versionPython 3.6.7 :: Anaconda, Inc.# 現在の環境確認[vpcc] % conda env list# conda environments:#base * /home/hpc-sols/conda#

57

Page 58: 初級並列機講習会...2020/06/18  · Intel コンパイラ 2018 ifort icc icpc PGIコンパイラ (NVIDIA HPC SDKへ移 行) 2018 2017 2016 pgfortran, pgf77, pgf90 nvfortran

ハンズオン~conda(2)

⚫環境作成~環境切り替え

# 新しい環境作成(python 2.7)[vpcc] % conda create -n python27 python=2.7# 現在の環境確認[vpcc] % conda env list# conda environments:#base * /home/hpc-sols/condapython27 /home/hpc-sols/conda/envs/python27## 作成した環境に切り替え[vpcc] % conda activate python27(python27) [vpcc]% # プロンプトが変わる# pythonバージョン確認(python27) [vpcc] % python --versionPython 2.7.15 :: Anaconda, Inc.# ベースの環境に戻す(python27)[vpcc] % conda deactivate[vpcc] % 58

Page 59: 初級並列機講習会...2020/06/18  · Intel コンパイラ 2018 ifort icc icpc PGIコンパイラ (NVIDIA HPC SDKへ移 行) 2018 2017 2016 pgfortran, pgf77, pgf90 nvfortran

ハンズオン~conda(3)

⚫プログラム検索~インストール(gccをベース環境にインストールする場合)

# プログラム検索(gccを探してインストール)[vpcc] % conda search gccLoading channels: done# Name Version Build Channelgcc 4.8.2 2 pkgs/free・・・(中略)gcc 7.3.0 0 gcc 8.2.0 0 conda/from.openmyroad/…利用可能なバージョンやチャネルが表示される# gccのインストール[vpcc] % conda install gcc=8.2.0# バージョン確認[vpcc] % gcc --versiongcc (GCC) 8.2.0・・・[vpcc] %

前項のように新たな環境を作成した後にインストールすることも可能です 59

Page 60: 初級並列機講習会...2020/06/18  · Intel コンパイラ 2018 ifort icc icpc PGIコンパイラ (NVIDIA HPC SDKへ移 行) 2018 2017 2016 pgfortran, pgf77, pgf90 nvfortran

ハンズオン~conda(4)

⚫プログラム検索~インストール(caffeをベース環境にインストールする場合)

# プログラム検索(caffeを探してインストール)[vpcc] % conda search caffeLoading channels: done# Name Version Build Channelcaffe 1.0.0rc3 np111py27_0 conda/from.anaconda/repo.continuum.io/pkgs/freecaffe 1.0.0rc3 np111py27_0 pkgs/free・・・(以下省略)利用可能なバージョンやチャネルが表示される# caffeのインストール[vpcc] % conda install caffe

# バージョン確認[vpcc] % caffe --versioncaffe version 1.0.0Debug build (NDEBUG not #defined)[vpcc] %

様々なプログラムを探してインストール、アンインストールなど試してください 60

Page 61: 初級並列機講習会...2020/06/18  · Intel コンパイラ 2018 ifort icc icpc PGIコンパイラ (NVIDIA HPC SDKへ移 行) 2018 2017 2016 pgfortran, pgf77, pgf90 nvfortran

Conda環境を計算ジョブに利用する

⚫ カスタマイズしたConda環境を計算ジョブに利用する➢ジョブファイル内でConda環境を呼び出しておく

#PBS -N test_python#PBS -j oe -l select=1#PBS -q SINGLE

setenv PATH ~/conda/bin:$PATHsource ~/conda/etc/profile.d/conda.csh

conda activate python27(← Conda環境名)

cd $PBS_O_WORKDIR

python --version

Page 62: 初級並列機講習会...2020/06/18  · Intel コンパイラ 2018 ifort icc icpc PGIコンパイラ (NVIDIA HPC SDKへ移 行) 2018 2017 2016 pgfortran, pgf77, pgf90 nvfortran

コンテナ環境

62

Page 63: 初級並列機講習会...2020/06/18  · Intel コンパイラ 2018 ifort icc icpc PGIコンパイラ (NVIDIA HPC SDKへ移 行) 2018 2017 2016 pgfortran, pgf77, pgf90 nvfortran

コンテナとは

⚫オープンソースの仮想化技術のひとつ(Docker, Singularity)

⚫ハイパーバイザー型とは異なり、高速に起動・実行可能

⚫アプリケーションソフトやライブラリを「コンテナ」にパッケージング

⚫Linuxディストリビューションに依存せずアプリケーションを実行可能

⚫このセミナーではSingularityについて取り上げる

OS

Singularity/Docker

Container Container Container

Appli. Appli. Appli.

OS

VM

OS OS OS

Appli. Appli. Appli.

コンテナ型 ハイパーバイザー型 63

Page 64: 初級並列機講習会...2020/06/18  · Intel コンパイラ 2018 ifort icc icpc PGIコンパイラ (NVIDIA HPC SDKへ移 行) 2018 2017 2016 pgfortran, pgf77, pgf90 nvfortran

Singularityとは

⚫ コンテナ化仮想化技術のひとつ

⚫ 米LBNL(LawrenceBerkeleyNationalLaboratory)生まれ

⚫ HPC環境で使うために生まれたコンテナ実装

⚫ GPU, InfiniBandが利用できる

⚫ MPIが利用できる

⚫ ユーザ権限でプログラムを実行, ストレージへアクセス可能

⚫ Dockerイメージを変換して利用可能

64

Page 65: 初級並列機講習会...2020/06/18  · Intel コンパイラ 2018 ifort icc icpc PGIコンパイラ (NVIDIA HPC SDKへ移 行) 2018 2017 2016 pgfortran, pgf77, pgf90 nvfortran

Dockerイメージ(Docker Hub)

https://hub.docker.com/search/?q=&type=image

65

Page 66: 初級並列機講習会...2020/06/18  · Intel コンパイラ 2018 ifort icc icpc PGIコンパイラ (NVIDIA HPC SDKへ移 行) 2018 2017 2016 pgfortran, pgf77, pgf90 nvfortran

Singularity Library

https://cloud.sylabs.io/library

Singularity イメージが公開されている

66

Page 67: 初級並列機講習会...2020/06/18  · Intel コンパイラ 2018 ifort icc icpc PGIコンパイラ (NVIDIA HPC SDKへ移 行) 2018 2017 2016 pgfortran, pgf77, pgf90 nvfortran

NVIDIA NGC

https://ngc.nvidia.com/catalog/all

GPU対応のDockerイメージが公開されているGPUドライバのバージョンに注意が必要

67

Page 68: 初級並列機講習会...2020/06/18  · Intel コンパイラ 2018 ifort icc icpc PGIコンパイラ (NVIDIA HPC SDKへ移 行) 2018 2017 2016 pgfortran, pgf77, pgf90 nvfortran

Singularityコマンド

User Guide: https://sylabs.io/guides/3.1/user-guide/

singularity コマンド [--nv] [オプション] イメージ名

コマンド pull Docker HubもしくはSingularity Hub からコンテナーのイメージを取得する際に使用します.

exec コンテナ内で任意のコマンドを実行します.

run コンテナ実行時, あらかじめ設定されたスクリプト実行後にジョブが実行されます.

shell コンテナ内に対話型シェルを自動的に生成します.

--nv GPUを使用する場合必須NVIDIA環境がコンテナ上で利用可能となります.

イメージ名 docker:アドレス Docker Hub上のイメージをURLで指定

library:アドレス Singularity library上のイメージをURLで指定

shub:アドレス Singularity Hub上のイメージをURLSで指定

ファイル名 Singularity イメージファイルの指定 68

Page 69: 初級並列機講習会...2020/06/18  · Intel コンパイラ 2018 ifort icc icpc PGIコンパイラ (NVIDIA HPC SDKへ移 行) 2018 2017 2016 pgfortran, pgf77, pgf90 nvfortran

コンテナ実行例

⚫ インタラクティブ利用の場合(GPU利用なし)

[testuser@vpcc]% qsub –I[testuser@vpcc-XXX]% singularity shell ¥/work/Samples/vpcc/Images/tensorflow_1.14.0-py3.sifSingularity tensorflow_1.14.0-py3.sif:~>python>>> import tensorflow as tf>>> print(tf.__version__)1.14.0>>> exit()Singularity tensorflow_1.14.0-py3.sif:~> exit[testuser@vpcc-XXX]% exit[testuser@vpcc]%

69

Page 70: 初級並列機講習会...2020/06/18  · Intel コンパイラ 2018 ifort icc icpc PGIコンパイラ (NVIDIA HPC SDKへ移 行) 2018 2017 2016 pgfortran, pgf77, pgf90 nvfortran

コンテナ実行例

⚫ インタラクティブ利用の場合(GPU利用あり)

[testuser@vpcc]% qsub –I –q GPU-S[testuser@vpcc-XXX]% singularity shell –nv ¥/work/Samples/vpcc/Images/tensorflow_1.14.0-gpu-py3.sifSingularity tensorflow_1.14.0-py3.sif:~> python>>> import tensorflow as tf>>> print(tf.__version__)1.14.0>>> exit()Singularity tensorflow_1.14.0-py3.sif:~> exit[testuser@vpcc-XXX]% exit[testuser@vpcc]%

70

Page 71: 初級並列機講習会...2020/06/18  · Intel コンパイラ 2018 ifort icc icpc PGIコンパイラ (NVIDIA HPC SDKへ移 行) 2018 2017 2016 pgfortran, pgf77, pgf90 nvfortran

コンテナ実行ファイルの作成

Singularityコンテナ実行環境は1つのファイルで構成されています.

作成したコンテナファイルをコピーして他の人に提供することも可能です.

➢ DockerHubやSingularity Libraryなどの外部レジストリ, またはJAIST内にあるDockerレジストリからイメージファイルをダウンロードすることが可能

➢ イメージをダウンロードする場合初回は時間がかかるが,2回目以降はホームディレクトリにキャッシュされるため若干早くなる

⚫ コンテナ作成については以下を参照くださいhttps://www.jaist.ac.jp/iscenter/jaist-cloud/container/コンテナ作成

71

Page 72: 初級並列機講習会...2020/06/18  · Intel コンパイラ 2018 ifort icc icpc PGIコンパイラ (NVIDIA HPC SDKへ移 行) 2018 2017 2016 pgfortran, pgf77, pgf90 nvfortran

JAISTで提供されるコンテナ環境

JAISTのvpcc環境で提供されるコンテナに関しては以下を参照のこと

⚫ コンテナの利用についてhttps://www.jaist.ac.jp/iscenter/mpc/vpcc/5/

⚫ JAISTプライベートレジストリについてhttps://www.jaist.ac.jp/iscenter/jaist-cloud/container/usage/

⚫ JAISTプライベートレジストリからのイメージ作成についてhttps://www.jaist.ac.jp/iscenter/mpc/vpcc/5/#c3710

72

Page 73: 初級並列機講習会...2020/06/18  · Intel コンパイラ 2018 ifort icc icpc PGIコンパイラ (NVIDIA HPC SDKへ移 行) 2018 2017 2016 pgfortran, pgf77, pgf90 nvfortran

コンテナ実行ファイルの作成

⚫ 実行例~必ず計算ノードで実行のこと

[hpc-sols@vpcc] % qsub –I インタラクティブジョブで計算ノードにログインqsub: waiting for job 2134550.vpcc-con to startqsub: job 2134550.vpcc-con ready[hpc-sols@vpcc-064] % singularity pull docker://nvcr.io/nvidia/tensorflow:20.03-tf2-py3

イメージを取得WARNING: Authentication token file not found : Only pulls of public images will succeedINFO: Starting build...Getting image source signatures---中略---Writing manifest to image destinationStoring signaturesINFO: Creating SIF file...INFO: Build complete: tensorflow_20.03-tf2-py3.sifhpc-sols@vpcc-064] % ls イメージファイルの確認tensorflow_20.03-tf2-py3.sif

73

Page 74: 初級並列機講習会...2020/06/18  · Intel コンパイラ 2018 ifort icc icpc PGIコンパイラ (NVIDIA HPC SDKへ移 行) 2018 2017 2016 pgfortran, pgf77, pgf90 nvfortran

コンテナ外部ディレクトリへのアクセス

⚫ 以下のディレクトリはコンテナ内にデフォルトでマウントされる➢$HOME

➢/work

➢/tmp

➢/dev

⚫ コンテナから上記以外のディレクトリにアクセスする必要がある場合はコンテナ起動時に--bindオプションを指定してコンテナ内外のディレクトリを紐づける必要がある

% singularity shell --bind /opt/intel container.sif

74

Page 75: 初級並列機講習会...2020/06/18  · Intel コンパイラ 2018 ifort icc icpc PGIコンパイラ (NVIDIA HPC SDKへ移 行) 2018 2017 2016 pgfortran, pgf77, pgf90 nvfortran

ハンズオン~コンテナを実行してみる(1)

⚫計算ノードへログイン~イメージファイルの作成~実行

[hpc-sols@vpcc] % qsub –I インタラクティブジョブで計算ノードにログイン[hpc-sols@vpcc-064] % cd ~/workshop[hpc-sols@vpcc-064] % singularity pull whalesay.sif docker://docker/whalesay

イメージを取得WARNING: Authentication token file not found : Only pulls of public images will succeed---中略---INFO: Build complete: whalesay.sif[hpc-sols@vpcc-064] % singularity exec whalesay.sif cowsay hello コンテナイメージの実行

< hello >-------

¥¥¥

## .## ## ## ==

## ## ## ## === /""""""""""""""“” ___/ ===

~~ {~~ ~~~~~~~ ~~ / ===- ~~~¥______ o __/¥ ¥ __/¥__¥______/

75

Page 76: 初級並列機講習会...2020/06/18  · Intel コンパイラ 2018 ifort icc icpc PGIコンパイラ (NVIDIA HPC SDKへ移 行) 2018 2017 2016 pgfortran, pgf77, pgf90 nvfortran

ハンズオン~コンテナを実行してみる(2)

⚫計算ノードへログイン~コンテナをインタラクティブで実行

[hpc-sols@vpcc] % qsub –I インタラクティブジョブで計算ノードにログイン[hpc-sols@vpcc-064] % cd ~/workshop [hpc-sols@vpcc-064] % singularity shell whalesay.sif インタラクティブジョブモードでコンテナを実行Singularity whalesay.sif:~/workshop/singularity> cowsay hello コンテナ内でコマンドを実行

< hello >-------

¥¥¥

## .## ## ## ==

## ## ## ## === /""""""""""""""“” ___/ ===

~~ {~~ ~~~~~~~ ~~ / ===- ~~~¥______ o __/¥ ¥ __/¥__¥______/

Singularity whalesay.sif:~/workshop/singularity> exit コンテナからログアウトexit[hpc-sols@vpcc-064] % exit 計算ノードからログアウト[hpc-sols@vpcc] %

76

Page 77: 初級並列機講習会...2020/06/18  · Intel コンパイラ 2018 ifort icc icpc PGIコンパイラ (NVIDIA HPC SDKへ移 行) 2018 2017 2016 pgfortran, pgf77, pgf90 nvfortran

コンテナアプリケーションの実行

⚫ Tensorflow

⚫ Chainer

⚫ Caffe

⚫ Jupyter-Notebook

77

Page 78: 初級並列機講習会...2020/06/18  · Intel コンパイラ 2018 ifort icc icpc PGIコンパイラ (NVIDIA HPC SDKへ移 行) 2018 2017 2016 pgfortran, pgf77, pgf90 nvfortran

Tensorflow ~ GPU利用による性能向上

⚫ GPUを利用することで性能向上が期待できます➢サンプル実行結果

CPUのみ:

GPU利用時:

・・・・・・・Step 8500 (epoch 9.89), 35.0 msMinibatch loss: 1.608, learning rate: 0.006302Minibatch error: 0.0%Validation error: 0.8%Test error: 0.8%

・・・・・・・Step 8500 (epoch 9.89), 3.2 msMinibatch loss: 1.617, learning rate: 0.006302Minibatch error: 1.6%Validation error: 0.8%Test error: 0.8% 78

Page 79: 初級並列機講習会...2020/06/18  · Intel コンパイラ 2018 ifort icc icpc PGIコンパイラ (NVIDIA HPC SDKへ移 行) 2018 2017 2016 pgfortran, pgf77, pgf90 nvfortran

Tensorflow ~ ジョブスクリプト例(PBS_tensor.sh)

#!/bin/bash

#PBS -q TINY

#PBS -N tensorflow PBSの設定

#PBS -l select=1

#PBS -j oe

cd ${PBS_O_WORKDIR}

singularity exec /work/Samples/vpcc/Images/tensorflow_1.14.0.sif

python convolutional.py (1行で記述)

コンテナ起動(ファイルから)→コンテナ内でpythonプログラムを実行(GPUなし)

79

Page 80: 初級並列機講習会...2020/06/18  · Intel コンパイラ 2018 ifort icc icpc PGIコンパイラ (NVIDIA HPC SDKへ移 行) 2018 2017 2016 pgfortran, pgf77, pgf90 nvfortran

Tensorflow ~ ジョブスクリプト例(PBS_tensor_gpu.sh)

#!/bin/bash

#PBS -q GPU-1

#PBS -N tensorflow PBSの設定

#PBS -l select=1

#PBS -j oe

cd ${PBS_O_WORKDIR}

singularity exec --nv /work/Samples/vpcc/Images/tensorflow_1.14.0-gpu.sif

python convolutional.py (1行で記述)

コンテナ起動(ファイルから)→コンテナ内でpythonプログラムを実行(GPUあり)

80

Page 81: 初級並列機講習会...2020/06/18  · Intel コンパイラ 2018 ifort icc icpc PGIコンパイラ (NVIDIA HPC SDKへ移 行) 2018 2017 2016 pgfortran, pgf77, pgf90 nvfortran

ハンズオン~Tensorflowを実行してみる(GPUなし)

⚫ジョブの投入→ファイルの確認

[hpc-sols@vpcc] 86 % cd ~/workshop/tensorflow[hpc-sols@vpcc] 87 % lsconvolutional.py PBS_tensor_gpu.sh PBS_tensor.sh

tensorflow使用のpythonプログラム ジョブ投入スクリプト

[hpc-sols@vpcc] 89 % qsub PBS_tensor.sh2141297.vpcc-con[hpc-sols@vpcc] 90 % qstat -u $USER

ジョブの終了を確認後ファイルを確認

[hpc-sols@vpcc] 108 % lsconvolutional.py data PBS_tensor_gpu.sh PBS_tensor.sh tensorflow.o2141297

結果ファイル81

Page 82: 初級並列機講習会...2020/06/18  · Intel コンパイラ 2018 ifort icc icpc PGIコンパイラ (NVIDIA HPC SDKへ移 行) 2018 2017 2016 pgfortran, pgf77, pgf90 nvfortran

ハンズオン~Tensorflowを実行してみる(GPUあり)

⚫ジョブの投入→ファイルの確認

[hpc-sols@vpcc] 86 % cd ~/workshop/tensorflow[hpc-sols@vpcc] 87 % lsconvolutional.py data PBS_tensor_gpu.sh PBS_tensor.sh

tensorflow使用のpythonプログラム ジョブ投入スクリプト

[hpc-sols@vpcc] 87 % rm –rf data #dataディレクトリが存在する場合[hpc-sols@vpcc] 89 % qsub PBS_tensor_gpu.sh2141298.vpcc-con[hpc-sols@vpcc] 90 % qstat -u USER

ジョブの終了を確認後ファイルを確認結果ファイル

[hpc-sols@vpcc] 108 % ls convolutional.py data PBS_tensor_gpu.sh PBS_tensor.sh tensorflow.o2141298

82

Page 83: 初級並列機講習会...2020/06/18  · Intel コンパイラ 2018 ifort icc icpc PGIコンパイラ (NVIDIA HPC SDKへ移 行) 2018 2017 2016 pgfortran, pgf77, pgf90 nvfortran

Chainer ~ ジョブスクリプト例(PBS_chainer.sh)

#!/bin/bash

#PBS -q GPU-1

#PBS -N chainer PBSの設定

#PBS -l select=1

#PBS -j oe

cd ${PBS_O_WORKDIR}

singularity exec --nv /work/Samples/vpcc/Images/chainer.sif python test.py

コンテナ起動(ファイルから)→コンテナ内でpythonプログラムを実行

⚫ ハンズオンはTensorflowと同様に実施できます(workshop/chainer)

83

Page 84: 初級並列機講習会...2020/06/18  · Intel コンパイラ 2018 ifort icc icpc PGIコンパイラ (NVIDIA HPC SDKへ移 行) 2018 2017 2016 pgfortran, pgf77, pgf90 nvfortran

Caffe ~ ジョブスクリプト例(PBS_caffe.sh)

#!/bin/bash

#PBS -q GPU-1

#PBS -N caffe PBSの設定

#PBS -l select=1

#PBS -j oe

cd ${PBS_O_WORKDIR}

singularity exec --nv /work/Samples/vpcc/Images/caffe-gpu_1902.sif ¥

./caffe.sh (1行に記述)

コンテナ起動(ファイルから)→コンテナ内でシェルスクリプトを実行

⚫ ハンズオンはTensorflowと同様に実施できます(workshop/caffe)

84

Page 85: 初級並列機講習会...2020/06/18  · Intel コンパイラ 2018 ifort icc icpc PGIコンパイラ (NVIDIA HPC SDKへ移 行) 2018 2017 2016 pgfortran, pgf77, pgf90 nvfortran

Jupyter Notebook実行手順(1)~GPU利用あり

⚫ 必要なコンテナの検索➢Docker Hub(https://hub.docker.com/)上でjupyter/tensorflow-notebookのキーワードで最新のコンテナを探す

85

Page 86: 初級並列機講習会...2020/06/18  · Intel コンパイラ 2018 ifort icc icpc PGIコンパイラ (NVIDIA HPC SDKへ移 行) 2018 2017 2016 pgfortran, pgf77, pgf90 nvfortran

Jupyter Notebook実行手順(2)~GPU利用あり

⚫ Docker pullコマンドの確認➢コンテナをダウンロードするためのdockerコマンドを確認

86

Page 87: 初級並列機講習会...2020/06/18  · Intel コンパイラ 2018 ifort icc icpc PGIコンパイラ (NVIDIA HPC SDKへ移 行) 2018 2017 2016 pgfortran, pgf77, pgf90 nvfortran

Jupyter Notebook実行手順(3)~GPU利用あり

⚫ コンテナの作成➢確認したコマンドをsingularity用に読み替えて実行する

✓tensorflow-notebook.sifはsingularityコンテナの名前であり、任意に指定が可能(省略可能)

➢実行例(計算ノードで実行する)

docker pull jupyter/tensorflow-notebook

singularity pull tensorflow-notebook.sif docker://jupyter/tensorflow-notebook

[hpc-sols@vpcc] 110 % qsub -I -q GPU-1[hpc-sols@vpcc-gpu011] % singularity pull tensorflow-notebook.sif ¥docker://jupyter/tensorflow-notebook

WARNING: Authentication token file not found : Only pulls of public images will succeedINFO: Starting build…---中略---INFO: Build complete: tensorflow-notebook.sifhpc-sols@vpcc-gpu011] % lstensorflow-notebook.sif

87

Page 88: 初級並列機講習会...2020/06/18  · Intel コンパイラ 2018 ifort icc icpc PGIコンパイラ (NVIDIA HPC SDKへ移 行) 2018 2017 2016 pgfortran, pgf77, pgf90 nvfortran

⚫ 実行

➢URLが表示されるのでそのまま手元のPCのWebブラウザでこのURLを参照する

➢コンテナを終了するにはCtl+Cを押す

[hpc-sols@vpcc-gpu011] % singularity run --nv tensorflow-notebook.sif[WARN tini (79810)] Tini is not running as PID 1 .Zombie processes will not be re-parented to Tini, so zombie reaping won't work.To fix the problem, run Tini as PID 1.Container [I 07:36:01.614 NotebookApp] Serving notebooks from local directory: /home/res/testuser[I 07:36:01.615 NotebookApp] The Jupyter Notebook is running at:[I 07:36:01.615 NotebookApp] http://vpcc-gpu011jaist.ac.jp:8888/?token=1467ea18a6a370c510d94f7996917aaeeff28e921068f34a[I 07:36:01.615 NotebookApp] or http://127.0.0.1:8888/?token=1467ea18a6a370c510d94f7996917aaeeff28e921068f34a[I 07:36:01.615 NotebookApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation).[C 07:36:01.628 NotebookApp]

To access the notebook, open this file in a browser:file:///res/testuser/.local/share/jupyter/runtime/nbserver-79832-open.html

or copy and paste one of these URLs:http://vpcc-gpu011jaist.ac.jp:8888/?token=1467ea18a6a370c510d94f7996917aaeeff28e921068f34a

or http://127.0.0.1:8888/?token=1467ea18a6a370c510d94f7996917aaeeff28e921068f34a

Jupyter Notebook実行手順(4)~GPU利用あり

88

Page 89: 初級並列機講習会...2020/06/18  · Intel コンパイラ 2018 ifort icc icpc PGIコンパイラ (NVIDIA HPC SDKへ移 行) 2018 2017 2016 pgfortran, pgf77, pgf90 nvfortran

⚫ 画面の確認➢ホームディレクトリが作業ディレクトリとなる

➢利用方法は通常のjupyter-notebookに従う

Jupyter Notebook実行手順(5)~GPU利用あり

89

Page 90: 初級並列機講習会...2020/06/18  · Intel コンパイラ 2018 ifort icc icpc PGIコンパイラ (NVIDIA HPC SDKへ移 行) 2018 2017 2016 pgfortran, pgf77, pgf90 nvfortran

汎用アプリケーションの利用方法

⚫ MATLAB

⚫ Gaussian

90

Page 91: 初級並列機講習会...2020/06/18  · Intel コンパイラ 2018 ifort icc icpc PGIコンパイラ (NVIDIA HPC SDKへ移 行) 2018 2017 2016 pgfortran, pgf77, pgf90 nvfortran

MATLAB ~ 利用方法 ジョブ実行の流れ

1. sample.mの準備

2. run.shの作成(PBSジョブ投入用スクリプトの作成)

3. ジョブの実行

4. 結果の表示

※ログインサーバーの下記ディレクトリにサンプルスクリプトがあります。

/work/Samples/vpcc/Seminar/200618/matlab

シングルコアのサンプルジョブです.マルチコア,マルチプロセスジョブについての詳細は2017年11月講習のテキストをご参照ください.

91

Page 92: 初級並列機講習会...2020/06/18  · Intel コンパイラ 2018 ifort icc icpc PGIコンパイラ (NVIDIA HPC SDKへ移 行) 2018 2017 2016 pgfortran, pgf77, pgf90 nvfortran

MATLAB ~ ジョブスクリプト例(run.csh)

#!/bin/csh

#PBS -N piMC

#PBS -l select=1

#PBS -j oe

#PBS -q SINGLE

module load app_matlab

cd $PBS_O_WORKDIR

hostname

echo ""

echo ""

echo "“

matlab -nodesktop -r sample¥(250000000¥)

PBSの設定:“-q”を指定しない場合デフォルトキュー(SINGLE)が設定される

MATLAB動作環境の設定:MATLABの起動・work領域などが設定される

MATLABの実行:“-r”でスクリプトファイルを指定,必要に応じて引数も記述

92

Page 93: 初級並列機講習会...2020/06/18  · Intel コンパイラ 2018 ifort icc icpc PGIコンパイラ (NVIDIA HPC SDKへ移 行) 2018 2017 2016 pgfortran, pgf77, pgf90 nvfortran

ハンズオン~MATLABを実行してみる

⚫ジョブの投入→ファイルの確認

[hpc-sols@vpcc] % cd ~/workshop/matlab[hpc-sols@vpcc] % lsrun.csh sample.m

ジョブ投入スクリプト(tcsh/csh用)matlab用入力ファイル

[hpc-sols@vpcc] % qsub run.csh2141299.vpcc-con[hpc-sols@vpcc] % qstat -u hpc-sols

ジョブの終了を確認後ファイルを確認

[hpc-sols@vpcc] 108 % lspiMC.o2141299 run.csh sample.m

結果ファイル93

Page 94: 初級並列機講習会...2020/06/18  · Intel コンパイラ 2018 ifort icc icpc PGIコンパイラ (NVIDIA HPC SDKへ移 行) 2018 2017 2016 pgfortran, pgf77, pgf90 nvfortran

ハンズオン~インタラクティブにMATLABを実行してみる

⚫計算ノードにログイン→MATLABの実行

[testuser@vpcc] % qsub -I -q TINYqsub: waiting for job 69457.vpcc-con to startqsub: job 69457.vpcc-con ready[testuser@vpcc-021] % module load app_matlab[testuser@vpcc-021] % cd .windows/My_Document/MATLAB[testuser@vpcc-021] % matlab -nodisplay

< M A T L A B (R) >Copyright 1984-2015 The MathWorks, Inc.R2015a (8.5.0.197613) 64-bit (glnxa64)

February 12, 2015

To get started, type one of these: helpwin, helpdesk, or demo.For product information, visit www.mathworks.com.

Academic License

>>94

Page 95: 初級並列機講習会...2020/06/18  · Intel コンパイラ 2018 ifort icc icpc PGIコンパイラ (NVIDIA HPC SDKへ移 行) 2018 2017 2016 pgfortran, pgf77, pgf90 nvfortran

Gaussian ~ 利用方法 ジョブ実行の流れ

1. gaussian入力ファイルの準備(GaussViewを使って作成)

2. PBS_g16.cshの作成(PBSジョブ投入用スクリプトの作成)

3. ジョブの実行

4. GaussViewで結果の確認

※ログインサーバーの下記ディレクトリにサンプルスクリプトがあります。

/work/Samples/vpcc/Seminar/200618/gaussian

95

Page 96: 初級並列機講習会...2020/06/18  · Intel コンパイラ 2018 ifort icc icpc PGIコンパイラ (NVIDIA HPC SDKへ移 行) 2018 2017 2016 pgfortran, pgf77, pgf90 nvfortran

Gaussian ~ ジョブスクリプト例(PBS_g16.csh)

#!/bin/csh

#PBS -l select=2

#PBS -j oe

#PBS -q LONG

cd $PBS_O_WORKDIR

module load app_g16

setenv GAUSS_SCRDIR $PBS_O_WORKDIR

echo “-P-16” > Default.Route

g16 < Et-OptFreq.com > Et-OptFreq.log

rm –f ./Default.Routej

PBSの設定:“-q”を指定しない場合デフォルトキュー(SINGLE)が設定される

Gaussian動作環境の設定:スクラッチファイルの作成場所,並列数の設定

Gaussianの実行:入力ファイルと出力ファイルの指定

96

Page 97: 初級並列機講習会...2020/06/18  · Intel コンパイラ 2018 ifort icc icpc PGIコンパイラ (NVIDIA HPC SDKへ移 行) 2018 2017 2016 pgfortran, pgf77, pgf90 nvfortran

ハンズオン~Gaussianを実行してみる

⚫ジョブの投入→ファイルの確認

[hpc-sols@vpcc] % cd ~/workshop/gaussian[hpc-sols@vpcc] % lsEt-OptFreq.com PBS_g16.csh

Gaussian用入力ファイル ジョブ投入スクリプト(tcsh/csh用)

[hpc-sols@vpcc] % qsub PBS_g16.csh2141300.vpcc-con[hpc-sols@vpcc] % qstat -u hpc-sols

ジョブの終了を確認後ファイルを確認

[hpc-sols@vpcc] 108 % lsEt-OptFreq.com Et-OptFreq.log PBS_g16.csh PBS_g09.csh.o146761

結果ファイル PBSの出力ファイル97

Page 98: 初級並列機講習会...2020/06/18  · Intel コンパイラ 2018 ifort icc icpc PGIコンパイラ (NVIDIA HPC SDKへ移 行) 2018 2017 2016 pgfortran, pgf77, pgf90 nvfortran

付録

98

Page 99: 初級並列機講習会...2020/06/18  · Intel コンパイラ 2018 ifort icc icpc PGIコンパイラ (NVIDIA HPC SDKへ移 行) 2018 2017 2016 pgfortran, pgf77, pgf90 nvfortran

ドキュメント一覧

⚫ Intelコンパイラドキュメント製品 ファイル(vpcc上)

Intel C++ /opt/intel/documentation_2018/ja/compiler_c/ps2018/get_started_lc.htm

Intel Fortran /opt/intel/documentation_2018/ja/compiler_f/ps2018/get_started_lf.htm

Intel MPI /opt/intel/documentation_2018/ja/mpi/get_started.htm

Intel idb /opt/intel/documentation_2018/ja/debugger/ps2018/get_started.htm

Intel MKL /opt/intel/documentation_2018/ja/mkl/ps2018/get_started.htm

Intel Thread Building Block /opt/intel/documentation_2018/ja/tbb/common/get_started.htm

Intel ipp /opt/intel//documentation_2018/ja/ipp/common/get_started.htm 99

Page 100: 初級並列機講習会...2020/06/18  · Intel コンパイラ 2018 ifort icc icpc PGIコンパイラ (NVIDIA HPC SDKへ移 行) 2018 2017 2016 pgfortran, pgf77, pgf90 nvfortran

ドキュメント一覧

⚫ PGIコンパイラドキュメントhttps://www.pgroup.com/resources/docs/19.10/x86/index.htm

⚫ CUDAドキュメント/opt/cuda/10.2/doc/pdf/*.pdf

⚫ Singularityユーザガイドhttps://sylabs.io/guides/3.1/user-guide/

⚫ PBS Professional ユーザガイドhttps://www.altair.com/pdfs/pbsworks/PBSUserGuide19.2.3.pdf

100