内容に関するご質問はida＠cc.u-tokyo.ac.jp
まで、お願いします。

[Reedbush編]
第119回 お試しアカウント付き
並列プログラミング講習会「 Altair HyperWorks実行」

スパコンへのログイン・
テストプログラム起動
東京大学情報基盤センター 特任准教授 伊田 明弘

1

スパコンへのログイン・
ファイル転送・基本コマンド

2

講習会：ライブラリ利用 [RB]

Reedbushへログイン
ターミナルから、以下を入力する$ ssh reedbush-u.cc.u-tokyo.ac.jp -l tYYxxx

「-l」はハイフンと小文字のＬ、「tYYxxx」は利用者番号（数字）“tYYxxx”は、利用者番号を入れる
接続するかと聞かれるので、 yes を入れる
鍵の設定時に入れた自分が決めたパスワード（パスフレーズ）を入れる
成功すると、ログインができる
3

講習会：ライブラリ利用 [RB]

Reedbushにおける注意 ログインするとホームディレクトリ(/home/gt00/t001XX)にいます。
 /home ファイルシステムは容量が小さく、ログインに必要なファイルだけを置くための場所です。
/home に置いたファイルは計算ノードから参照できません。ジョブの実行もできません。

 計算に必要なファイルは、/lustre ファイルシステムに移動(mv)させてください。
 ホームディレクトリ: /home/gt00/t001XX


cd コマンドで移動できます。

 Lustreディレクトリ: /lustre/gt00/t001XX
cdw コマンドで移動できます。
4

講習会：ライブラリ利用 [RB]PCのファイルをReedbushに置くターミナルから、以下を入力する

$ scp ./a.f90 tYYxxx@reedbush-u.cc.u-tokyo.ac.jp:「tYYxxx」は利用者番号（数字）“tYYxxx”は、利用者番号を入れる
 PCのカレントディレクトリにある”a.f90”を、Reedbush上のホームディレクトリに置く
 ディレクトリごと置くには、”-r” を指定$ scp -r ./SAMP tYYxxx@reedbush-u.cc.u-tokyo.ac.jp:
 PCのカレントディレクトリにあるSAMPフォルダを、その中身ごと、Reedbush上のホームディレクトリに置く
5

講習会：ライブラリ利用 [RB]

ReedbushのデータをPCに取り込む
ターミナルから、以下を入力する

$ scp tYYxxx@reedbush-u.cc.u-tokyo.ac.jp:~/a.f90 ./「tYYxxx」は利用者番号（数字）“tYYxxx”は、利用者番号を入れる
 Reedbush上のホームディレクトリにある”a.f90”を、PCのカレントディレクトリに取ってくる ディレクトリごと取ってくるには、”-r” を指定$ scp -r tYYxxx@reedbush-u.cc.u-tokyo.ac.jp:~/SAMP ./ Reedbush上のホームディレクトリにあるSAMPフォルダを、その中身ごと、PCのカレントディレクトリに取ってくる
6

講習会：ライブラリ利用 [RB]ＵＮＩＸ備忘録
 emacsの起動：

emacs 編集ファイル名 ^x^s （＾はcontrol） ：テキストの保存 ^x ^c ： 終了

（ ^z で終了すると、スパコンの負荷が上がる。絶対にしないこと。）

 ^g: 訳がわからなくなったとき。
 ^k : カーソルより行末まで消す。
消した行は、一時的に記憶される。
 ^y : ^kで消した行を、現在のカーソルの場所にコピーする。
 ^s 文字列 : 文字列の箇所まで移動する。
 ^M x goto-line : 指定した行まで移動する。

7講習会：ライブラリ利用 [RB]ＵＮＩＸ備忘録
 rm ファイル名： ファイル名のファイルを消す。
 rm *~ : test.c~ などの、~がついたバックアップファイルを消す。使う時は慎重に。*~ の間に空白が入ってしまうと、全てが消えます。
 ls : 現在いるフォルダの中身を見る。
 cd

フォルダ名： フォルダに移動する。

cd .. : 一つ上のフォルダに移動。
 cd ~ ：ホームディレクトリに行く。訳がわからなくなったとき。
 catファイル名： ファイル名の中身を見る make : 実行ファイルを作る（Makefile があるところでしか実行できない）
8

make clean : 実行ファイルを消す。
（clean がMakefileで定義されていないと実行できない）

講習会：ライブラリ利用 [RB]ＵＮＩＸ備忘録
 less

ファイル名： ファイル名の中身を見る(catでは画面がいっぱいになってしまうとき）
スペースキー : 1画面スクロール / : 文字列の箇所まで移動する。
 q ： 終了 （訳がわからなくなったとき） cp ファイル名

フォルダ名: ファイルをコピーする
 mv ファイル名 フォルダ名:ファイルを移動させる

9

講習会：ライブラリ利用 [RB]WinSCPによるReedbushへのファイル転送
・Reedbushへの接続

t00***

クリックして次頁へ

10

講習会：ライブラリ利用 [RB]WinSCPによるReedbushへのファイル転送・Reedbushへの接続の続きクリックして鍵ファイル選択11

講習会：ライブラリ利用 [RB]

スパコン上でのプログラムの実行[ReedBush編]「ジョブ」の実行形態と実行方法について

12

Reedbush-Uスーパーコンピュータシステムでのジョブ実行形態
 以下の２通りがあります インタラクティブジョブ実行

ＰＣでの実行のように、コマンドを入力して実行する方法
 スパコン環境では、あまり一般的でない デバック用、大規模実行はできない Reedbush-Uでは、以下に限定


１ノード利用（36コア，30分まで）
 4ノード利用（144コア，10分まで）
 バッチジョブ実行

バッチジョブシステムに処理を依頼して実行する方法
 スパコン環境で一般的
 大規模実行用
 Reedbush-Uでは、最大128ノード利用可能（4,608コア, 24時間まで)
13

講習会：ライブラリ利用 [RB]

バッチ処理とは スパコン環境では、通常は、インタラクティブ実行（コマンドラインで実行すること）はできません。
 ジョブはバッチ処理で実行します。
バッチキュー

ジョブの依頼

バッチ処理
システムがジョブを取り出す

実行
ユーザ
14

スパコン
講習会：ライブラリ利用 [RB]

バッチ処理を用いたジョブの実行方法
 Reedbushシステムにおいてバッチ処理は、Altair社のバッチシステム PBS Professionalで管理されています。
 ジョブの投入：
qsub <ジョブスクリプトファイル名>
キュー名#!/bin/bash#PBS -q u-lecture#PBS -Wgroup_list=gt00#PBS -l select=8:mpiprocs=36#PBS -l walltime=00:01:00
cd $PBS_O_WORKDIR. /etc/profile.d/modules.shmpirun ./hello
ジョブスクリプトファイルの例
15

講習会：ライブラリ利用 [RB]：u-lecture
利用グループ名：gt00

ジョブ待ち時間を減らすポイント 「walltime」を適切に設定しましょう！
投入ジョブ

・とりあえずと、最大時間を書いておくのは大損#!/bin/bash#PBS -q u-lecture#PBS -Wgroup_list=gt00#PBS -l select=8:mpiprocs=36#PBS -l walltime=00:01:00
cd $PBS_O_WORKDIR. /etc/profile.d/modules.shmpirun ./hello
ジョブスクリプトファイルの例
16

時間

ノード数
Backfillのイメージ図講習会：ライブラリ利用 [RB]

本講習会でのグループ名とキュー名 グループ: gt00

課金情報（財布）を管理するのに使用される
 キュー 名: u-tutorial

キューとは、スパコンにバッチジョブを投入する時の待ち行列の名前（詳細は後述）17

講習会：ライブラリ利用 [RB]

本お試し講習会でのキュー名
 本演習中のキュー名：
 u-tutorial 最大10分まで
 最大ノード数は8ノード(288コア) まで
 本演習時間以外（24時間）のキュー名：

 u-lecture 利用条件は演習中のキュー名と同様

18

講習会：ライブラリ利用 [RB]

Reedbush-Uのバッチジョブキュー
■通常キューの一覧
代表キュー名

キュー名

最大ノード数

実行制限時間（経過時間）

u-debug

u-debug

1-24

30 minu-shortu-short1-8

4h

u-regular

u-smallu-mediumu-large
u-x-large

4-16
17-32
33-64
65-128

48 h
48 h
48 h
24 h

■講習会用の特別キュー
u-tutorial

u-tutorial

1-8

10 minu-lectureu-lecture

1-810 min19

バッチ処理システムの使い方 主要コマンド（Reedbushの場合）
 ジョブの投入：

qsub <ジョブスクリプトファイル名> 自分が投入したジョブの状況確認： rbstat
 投入ジョブの削除： qdel <ジョブID>
 バッチキューの状態を見る： rbstat --rsc
 バッチキューの詳細構成を見る： rbstat –rsc -x
 投げられているジョブ数を見る： rbstat -b
 過去の投入履歴を見る： rbstat –H
 同時に投入できる数／実行できる数を見る： rbstat --limit20

講習会：ライブラリ利用 [RB]

rbstat --rsc の実行画面例$ rbstat --rsc
QUEUE
STATUS
u-debug[ENABLE ,START]
u-short[ENABLE ,START]
u-regular[ENABLE ,START]|---- u-small[ENABLE ,START]|---- u-medium[ENABLE ,START]|---- u-large[ENABLE ,START]|---- u-x-large[ENABLE ,START]
u-interactive[ENABLE ,START]|---- u-interactive_1 [ENABLE ,START]|---- u-interactive_4 [ENABLE ,START]
u-lecture[ENABLE ,START]
u-lecture8[DISABLE,START]
u-tutorial[ENABLE ,START]

使えるキュー名(リソースグループ)
21

現在
利用可能か
講習会：ライブラリ利用 [RB]NODE
5416288288288288
5454545454

利用可能ノード数

rbstat --rsc -x の実行画面例$ rbstat --rsc -x
QUEUE
STATUSMIN_NODE MAX_NODE MAX_ELAPSE REMAIN_ELAPSE MEM(GB)/NODE
u-debug[ENABLE ,START]
1
24 00:30:00
00:30:00
244GB
u-short[ENABLE ,START]
18 02:00:00
02:00:00
244GB
u-regular[ENABLE ,START]|---- u-small[ENABLE ,START]
4
16 12:00:00
12:00:00
244GB|---- u-medium[ENABLE ,START]17
32 12:00:00
12:00:00
244GB|---- u-large[ENABLE ,START]33
64 12:00:00
12:00:00
244GB|---- u-x-large[ENABLE ,START]
65
128 06:00:00
06:00:00
244GB
u-interactive[ENABLE ,START]|---- u-interactive_1 [ENABLE ,START]
1
1 00:15:00
00:15:00
244GB|---- u-interactive_4 [ENABLE ,START]
2
4 00:05:00
00:05:00
244GB
u-lecture[ENABLE ,START]
18 00:10:00
00:10:00
244GB
u-lecture8[DISABLE,START]
18 00:10:0000:10:00
244GB
u-tutorial[ENABLE ,START]
1
8 00:10:00
00:10:00
244GB

使えるキュー名(リソースグループ)
22

現在
利用可能か

ノードの実行情報

講習会：ライブラリ利用 [RB]PROJECT
pz0105,gcXX
pz0105,gcXX
gcXX,pz0105
gcXX
gcXX
gcXX
pz0105,gcXX
pz0105,gcXX
gt00,gtYY
gtYY
gt00

課金情報（財布）
実習では１つのみrbstat --rsc -b の実行画面例$ rbstat --rsc –b
QUEUE
STATUSTOTAL RUNNING QUEUED HOLD BEGUN WAIT EXIT TRANSIT NODE
u-debug[ENABLE ,START]
11000000 54
u-short[ENABLE ,START]
93510000 16u-regular[ENABLE ,START]|---- u-small[ENABLE ,START]38
106 220000 288|---- u-medium[ENABLE ,START]
22000000 288|---- u-large[ENABLE ,START]
42020000 288|---- u-x-large[ENABLE ,START]
10100000 288
u-interactive[ENABLE ,START]|---- u-interactive_1 [ENABLE ,START]
00000000 54|---- u-interactive_4 [ENABLE ,START]
00000000 54u-lecture[ENABLE ,START]
00000000 54
u-lecture8[DISABLE,START]
00000000 54
u-tutorial[ENABLE ,START]
00000000 54

使える
キュー名
(リソースグループ)
23

現在
使え
るか

ジョブ 実行しての総数 いるジョブの数
講習会：ライブラリ利用 [RB]

待たされているジョブの数

ノードの利用可能数

JOBスクリプトサンプルの説明（hello-pure.bash, C言語、Fortran言語共通）#!/bin/bash#PBS -q u-lecture#PBS -Wgroup_list=gt00#PBS -l select=8:mpiprocs=36#PBS -l walltime=00:01:00
cd $PBS_O_WORKDIR. /etc/profile.d/modules.shmpirun ./hello24

キュー名：u-lecture
利用グループ名：gt00
利用ノード数
ノード内利用コア数（ＭＰＩプロセス数）
実行時間制限：１分

MPIジョブを8＊36 = 288 プロセスカレントディレクトリ設定、環境変で実行する。 講習会：ライブラリ利用 [RB]
数設定（必ず入れておく）

バッチジョブ実行による標準出力、標準エラー出力
 バッチジョブの実行が終了すると、標準出力ファイルと標準エラー出力ファイルが、ジョブ投入時のディレクトリに作成されます。
 標準出力ファイルにはジョブ実行中の標準出力、標準エラー出力ファイルにはジョブ実行中のエラーメッセージが出力されます。

ジョブ名.oXXXXX --- 標準出力ファイル
ジョブ名.eXXXXX --- 標準エラー出力ファイル(XXXXX はジョブ投入時に表示されるジョブのジョブID)

25

講習会：ライブラリ利用 [RB]

おわりお疲れさまでした26

講習会：ライブラリ利用 [RB]