オンライン講習会の手引き「MPI+OpenMPによって並列化されたFortranプログラムのGPU移行手法」
東京大学情報基盤センター
質問は山崎まで：
kyamazaki(at)cc.u-tokyo.ac.jp

1

はじめに
• 東京大学情報基盤センター（以下，本センター）ではお試しアカウント付き並列プログラミング講習会「MPI+OpenMPで並列化されたFortranプログラムのGPUへの移行手法」を開催します。
• 本講習会では文字通り、Wisteria/BDEC-01システムを利用した実習を実施します。
• 本講習会は，ZoomおよびSlackを用いたオンライン講習会として実施します。

• 本資料は，オンライン講習会受講のための事前準備について記載します。
• 本講習会においては，Wisteria/BDEC-01システムへログインできるようになっていることを前提とします。

2

お願い等
• ハンズオンのためのPC，Zoom及びスパコンへ接続するためのネットワーク環境は各受講者でご準備ください。
• PCは Windows/Microsoft Update，Apple Security Updateなどで最新のセキュリティアップデートを行ってください。
• 必ずウィルス対策ソフトウェアをインストールし，ウィルス検索を実行して問題がないことを事前に確認してから受講してください。
• セキュリティ対策未実施の場合はオンライン講習会受講を認めません。

• OSは、Windows、Macどちらでも構いませんが、SSHを用いてセンターのスーパーコンピューターへ接続ができることが必要です（後述）。
• 演習の実施に当たり，受講生にセンターのスーパーコンピューターを1月間利用できる無料アカウント（お試しアカウント）を発行します。
3• PC上のソフトウェア類の準備• スパコンへのログイン• ログインしたら・・・• 講習会で使うコミュニケーションツール(Zoom, Slack)の設定

SSH環境の準備• Mac/Linuxの方はTerminalからsshコマンドが実行できればOK➢Macは アプリケーション ＞ ユーティリティ ＞ ターミナル➢$ sudo dnf install openssh-clients # RHEL系ディストリビューションの場合➢$ sudo apt install openssh-client # Debian系ディストリビューションの場合• Windowsの方の場合，下記の選択肢があります➢OpenSSHクライアントをインストールして，PowerShellから使用• [Win＋i」 > アプリ > オプション機能 で，OpenSSHクライアントを追加（デフォルトで入っていなかった場合）• （SSHしたいだけであれば）この方法が一番簡単だと思われます• この資料では，この手順だけ説明します➢WSLを使用（インストールに管理者権限が必要．簡単にLinuxを使う方法）➢VirtualBox/VMware上に構築したLinuxを使用（中・上級者向け）➢Cygwinを使用（管理者権限は不要だが，手順が煩雑）
5

Windows PowerShellの起動方法
1. [Windows] + r を入力し，「ファイル名を指定して実行」
2. 名前とある欄に「powershell」と入力し，[Enter]（あるいは，「OK」をクリック）• 上記は手軽に起動する方法の一例• スタート画面にピン止めしておく，などとすると楽• デフォルトで入っているバージョンは古いので，表示される画面にしたがってアップデートしておくことを推奨• アップデート後には，上記の「名前」欄には「pwsh」と入力すれば見つかる
6

OpenSSHクライアントの確認（1/4）
1. [Windows] + i で「Windowsの設定」を開く
2. 「アプリ」をクリック

Windows 11の例

Windows 10の例

7

OpenSSHクライアントの確認（2/4）•「オプション機能」をクリック

Windows 11の例

Windows 10の例

8

OpenSSHクライアントの確認（3/4）• 「インストールされている機能」に「OpenSSHクライアント」が含まれていれば，何もしなくてOK• 含まれていなかったら，「機能の追加」から「OpenSSHクライアント」をインストール➢ 注：「OpenSSHサーバー」は不要です• 右側はWindows 11の例
➢ Windows 10の例は次のページ
9

OpenSSHクライアントの確認（4/4）• 「インストールされている機能」に「OpenSSHクライアント」が含まれていれば，何もしなくてOK• 含まれていなかったら，「機能の追加」から「OpenSSHクライアント」をインストール➢ 注：「OpenSSHサーバー」は不要です• 右側はWindows 10の例

10

11

• PC上のソフトウェア類の準備• スパコンへのログイン• ログインしたら・・・• 講習会で使うコミュニケーションツール(Zoom, Slack)の設定

スパコンへのログイン• SSH公開鍵認証（SSH Public Key Authentication,SSH=Secure Shell）に基づく– パスワード認証よりも安全，と言われている• 手順– Windows：PowerShellを立ち上げる，Mac・Unix：Terminal起動– ①PC上で鍵（秘密鍵，公開鍵）を生成する• 秘密鍵，公開鍵• パスフレーズ（Passphrase）：鍵認証のためのパスワード– ②スパコンポータルサイトにログインする• センターから供給された利用者ＩＤ（tVWXYZ）と「初期パスワード」を使用• ポータルサイトにログイン後，パスワード（Password）変更を求められる，字数，使用文字等に色々規則があるので注意すること– ③スパコンポータルサイトに「公開鍵」を登録する– ④ＰＣからsshによってスパコンにログインする①PC上で鍵（秘密鍵，公開鍵）を生成（1/3）$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/user/.ssh/id_rsa):
Enter passphrase (empty for no passphrase): Your Favorite Passphrase
Enter same passphrase again: Same Passphrase
EnterYour identification has been saved in /home/user/.ssh/id_rsa.
Your public key has been saved in /home/user/.ssh/id_rsa.pub.

EnterEnter

The key fingerprint is:
SHA256:vt88O+PTcscHkOyabvxGjeRsMWLAWds+ENsDcReNwKo nakajima@KNs-NEW-VAIO
The key's randomart image is:+---[RSA 2048]----+|. o=oo.o+ ||+ O... .|操作手順|.+o+.
||+oB.
|• ssh-keygen –t rsa <Enter>|So *o*|• <Enter>|.E
B.o |• お好きなPassphrase <Enter>|.. = . o ||.=oB o +|• 同じPassphrase <Enter>|.+o+*O ..|+----[SHA256]-----+

①PC上で鍵（秘密鍵，公開鍵）を確認（2/3）$ cd .ssh$ ls
id_rsaid_rsa.pub⇒秘密鍵（Private Key）
⇒公開鍵（Public Key）

$ cat id_rsa.pub
ssh-rsa
AAAAB3NzaC1yc2EAAAADAQABAAABAQDa6InmOYYaCrWjQDukjiNEfdW8veUwJyZtEI3
oDu0A28eey6p0wbtI7JB09xnI17O7HG4yYvOM81+/nlAHy5tAfJly0dsPzjTgdTBLdg
i3cSf5pWEY6U96yaEr0Ei8Wge1HkXrhcwUjGDVTzvT0Refe6zLdRziL/KNmmesSQfR5lsZ/ihsjMgFxGaKsHHq/IErCtHIIIf9V/Ds2yj6vkAaWH6asBn+ZsRiRFvwHPhkYAnp/j3LY6b8Qfqg0p4WZRenh/HgySWTYIGi8x67VzMaUlm9qlK0QFMCaK2rivX1fmbwyWJ/vrWDqiek6YXoxLDu+GPeQ4CPvxJcZnqF9gf3 nakajima@KNs-NEW-VAIO

①公開鍵をコピー（3/3）$ cd .ssh

操作手順• cat id_rsa.pub <Enter>$ ls• “ssh-rsa”にカーソルを合わせid_rsa• 最後まで選択して「Copy」によって記憶id_rsa.pub• 最後の部分(ここではnakajima@KNs-NEW-VAIO)に漢字$ cat id_rsa.pubが含まれている場合は、後でペーストがうまくいかないことがあるので注意する
ssh-rsa
AAAAB3NzaC1yc2EAAAADAQABAAABAQDa6InmOYYaCrWjQDukjiNEfdW8veUwJyZtEI3oDu0A
28eey6p0wbtI7JB09xnI17O7HG4yYvOM81+/nlAHy5tAfJly0dsPzjTgdTBLdgi3cSf5pWEY
6U96yaEr0Ei8Wge1HkXrhcwUjGDVTzvT0Refe6zLdRziL/KNmmesSQfR5lsZ/ihsjMgFxGaK
sHHq/IErCtHIIIf9V/Ds2yj6vkAaWH6asBn+ZsRiRFvwHPhkYAnp/j3LY6b8Qfqg0p4WZRenh/HgySWTYIGi8x67VzMaUlm9qlK0QFMCaK2rivX1fmbwyWJ/vrWDqiek6YXoxLDu+GPeQ4CP
vxJcZnqF9gf3 nakajima@KNs-NEW-VAIO

②スパコンポータルサイトにログイン（1/3）
情報基盤センターから送付されたファイル（教育利用）

Wisteria/BDEC-01 利用登録のお知らせ
Wisteria/BDEC-01)

塙 敏博 様下記のとおり登録しましたのでお知らせします。

2021年5月12日

2021年5月20日
東京大学情報基盤センター長

講義名

スパコンプログラミング(1)、スパコンプログラミング(Ｉ)

利用期間
利用登録者数

プロジェクトコード

2021年5月 ～ 2021年9月
2021年6月2021年7月
ディスク量
70 名

tVWXYZ
キュー名※ lecture-o,lecture8-o,lecture-a,lecture8-a01234567

情報基盤センターから送付された利講義時間中：
lecture8-o
用者ID（tVWXYZ）

情報基盤センター
その他のキューは使用できません。
から送付された初期パスワード（8桁）※ 教育利用では以下の「講義用キュー」のみ利用可能です。

公印
省略

gt68

24 TB

②スパコンポータルサイトにログイン（2/3）
https://wisteria-www.cc.u-tokyo.ac.jp/cgi-bin/hpcportal.ja/index.cgi

情報基盤センターから送付された利用者ID（tVWXYZ）

情報基盤センターから送付された初期パスワード

②初期パスワードの変更（3/3）
情報基盤センターから送付された初期パスワード

変更後のパスワードを入力（2回）

パスワード規約に注意

③ 公開鍵登録（id_rsa.pub） (1/2)

1. 「SSH公開鍵登録」を選択
2. 先ほどCopyした「id_rsa.pub」を貼り付ける
3. 「登録」をクリック

③ 公開鍵登録（id_rsa.pub） (2/2)

4. ここを確認！

④PCからログイン（1/2）（初回）$ ssh tVWXYZ@wisteria.cc.u-tokyo.ac.jp Enter
The authenticity of host ‘wisteria.cc.u-tokyo.ac.jp' can't beestablished.
ECDSA key fingerprint is SHA256:/XXXXX …
Are you sure you want to continue connecting (yes/no/[fingerprint])? yesEnter

Warning: Permanently added ‘wisteria.cc.u-tokyo.ac.jp' to the listof knownhosts.
Enter passphrase for key '/home/user/.ssh/id_rsa: Your PassphraseEnter

1. ssh tVWXYZ@wisteria.cc.u-tokyo.ac.jp <Enter>2. yes <Enter>3. 鍵生成時に打ち込んだPassphrase <Enter>④PCからログイン（1/2）（2回目以降）$ ssh tVWXYZ@wisteria.cc.u-tokyo.ac.jp
Enter passphrase for key '/home/user/.ssh/id_rsa: Your PassphraseEnter

1. ssh tVWXYZ@wisteria.cc.u-tokyo.ac.jp <Enter>2. 鍵生成時に打ち込んだPassphrase <Enter>④PCからログイン（2/2）-------------------------------------------------------------------------------Wisteria/BDEC-01 Information
Date: May. 28, 2021-------------------------------------------------------------------------------Welcome to Wisteria/BDEC-01 system* Operation Schedule
05/28(Fri) 22:00 - 06/09(Fri) 08:30
06/09(Wed) 08:30 - 06/09(Wed) 17:30
06/09(Wed) 17:30 - 06/25(Fri) 09:00
06/25(Fri) 09:00 - 06/25(Fri) 22:00
06/25(Fri) 22:00 -Normal Operation
HPC Challenge
Normal Operation
System Maintenance
Normal Operation

ログインに成功したら，今後のメインテナンスのスケジュールなどが表示される

For more information about this service, see
https://www.cc.u-tokyo.ac.jp/supercomputer/schedule.php* How to use
Users Guide can be found at the User Portal (https://wisteria-www.cc.u-tokyo.ac.jp/).

If you have any questions, please refer to the following URL and contact us:
https://www.cc.u-tokyo.ac.jp/supports/contact/
Last login: Sat May 29 21:35:15 2021 from 133.11.59.131[tVWXYZ@wisteria01 ~]$SSH公開鍵認証の手順（1/4）①PC上での秘密鍵・公開鍵作成$> ssh-keygen –t rsa
id_rsa
秘密鍵/Private Key+ Passphrase
id_rsa.pub
公開鍵/Public Key

WisteriaOBCXPortal Site
Wisteria

id_rsa
秘密鍵/Private Key+ Passphrase
id_rsa.pub
公開鍵/Public KeytIJKLM+ Password

tVWXYZ+ Password

Portal Site
OBCX

SSH公開鍵認証の手順（2/4）②スパコンポータルサイトへのログイン

Wisteria

OBCX

SSH公開鍵認証の手順（3/4）③公開鍵（id_rsa.pub）の登録

id_rsa.pub
公開鍵/Public Key

Portal Site
Wisteria

同じ公開鍵を複数のスパコンに登録可能

id_rsa.pub
公開鍵/Public Key
id_rsa
秘密鍵/Private Key+ Passphrase

Portal Site
OBCX

Wisteria

OBCX

SSH公開鍵認証の手順（3/4）③公開鍵（id_rsa.pub）の登録
Portal Site
Wisteria

同じ公開鍵を複数のスパコンに登録可能
id_rsa.pub
公開鍵/Public Key

id_rsa
秘密鍵/Private Key+ PassphrasePortal Site
OBCXWisteria

id_rsa.pub
公開鍵/Public KeyOBCXSSH Public Key Authentication
SSH公開鍵認証
SSH= Secure Shell• id_rsa• Private Key（秘密鍵） ：PC上
• 文字通り「秘密」にしておくこと• 他の人に送ってはいけない• 基本的には作成した場所からコピーしたり移動することもしないこと• id_rsa.pub• Public Key（公開鍵）：スパコン上• コピー可能，他の人にe-mailで送ることも可能• もし複数のPCからスパコンにログインする場合は，各PCごとに「公開鍵・秘密鍵」のペアをssh-keygenによって作成• 各スパコンに複数の公開鍵を登録することは可能• スパコン上の公開鍵のうちの一つがPC上の「秘密鍵＋Passphrase」とマッチすると確認されるとログインできる

28

SSH公開鍵認証の手順（4/4）④PCからスパコンへのログイン

id_rsa秘密鍵/Private Key+ Passphrase

id_rsa.pub
公開鍵/Public Key

Wisteria

Portal Site
OBCX

id_rsa
秘密鍵/Private Key+ Passphrase

Portal Site
Wisteria

秘密鍵（id_rsa）＋Passphrase

id_rsa.pub
公開鍵/Public Key
OBCX複数のPCからスパコンへログインする場合には各PCで「公開鍵・秘密鍵」のペア作成
Portal Site
Wisteria$> ssh-keygen –t rsa

id_rsa.pub
公開鍵/Public Key

id_rsa
秘密鍵/Private Key

id_rsa
秘密鍵/Private Key+ Passphrase
id_rsa.pub+ Passphrase

公開鍵/Public Key

公開鍵/Public Key

id_rsa.pub

Portal Site
OBCX

Wisteria

id_rsa.pub
OBCX
公開鍵/Public Key
OBCXスパコンには複数の公開鍵を登録できる

スパコンには複数の公開鍵を登録できる$ cd .ssh$ ls authorized_keys
authorized_keys.ssh/authorized_keysには登録された公開鍵が格納されている。このファイルの後ろに新たな公開鍵（new_public.key）
を付け加えることもできる。

$ cat authorized_keys
ssh-rsa
HGCAB3NzaC1yc2EAAAABIwAAAQEA1r0Hr8M1JIJBO2n9S0GQm0xzGCwh3PpcJo7Z8oDr6HCAXhbKz
HA0ibRMJFCwDJCRGNJlYiHEYHWzouuXGNa9teso7aXYkq2PxbO76C60ZCPoLqf/jQRqnUSnjHJ4Ug
mDdlQWaAks+q/2ExOwjBB6GZmaHGijTximOFGiM1DI78OHkHC8pFzjvP2kT9yRvykvOVvlG10VYi+5CawYfuROiRBjfUS47RSOlCzjNP20pYO57DUCfOv+/8B1+l1wilbjKQHjuNp5XuclFfFdGaxfJchD/sB5sRxtYfz80xzwGmN8pVecpUjd//xAqdYYHmLAKUE2oH8MnBIRybpWGVie6w64
ssh-rsa
AAAAB3NzaC1yc2EAAAADAQABAAABAQDa6InmOYYaCrWjQDukjiNEfdW8veUwJyZtEI3oDu0A28eey
6p0wbtI7JB09xnI17O7HG4yYvOM81+/nlAHy5tAfJly0dsPzjTgdTBLdgi3cSf5pWEY6U96yaEr0E
i8Wge1HkXrhcwUjGDVTzvT0Refe6zLdRziL/KNmmesSQfR5lsZ/ihsjMgFxGaKsHHq/IErCtHIIIf9V/Ds2yj6vkAaWH6asBn+ZsRiRFvwHPhkYAnp/j3LY6b8Qfqg0p4WZRenh/HgySWTYIGi8x67VzMa
Ulm9qlK0QFMCaK2rivX1fmbwyWJ/vrWDqiek6YXoxLDu+GPeQ4CPvxJcZnqF9gf3$ cp authorized_keys tmp$ cat tmp new_public.key > authorized_keys

id_rsa
秘密鍵/Private Key

id_rsa
秘密鍵/Private Key+ Passphrase
id_rsa.pub+ Passphrase

公開鍵/Public Key

公開鍵/Public Key

id_rsa.pub

Portal SiteOBCX$> ssh-keygen –t rsa

Portal Site
Wisteria

各スパコンに複数の鍵を登録する
id_rsa.pub
公開鍵/Public Key

id_rsa.pub
公開鍵/PublicWisteria Key
id_rsa.pub
OBCX
公開鍵/Public Key

id_rsa.pub
OBCX
公開鍵/PublicKey• PC上のソフトウェア類の準備• スパコンへのログイン• ログインしたら・・・• 講習会で使うコミュニケーションツール(Zoom, Slack)の設定

PCからログイン$ ssh tVWXYZ@wisteria.cc.u-tokyo.ac.jp
Enter passphrase for key '/home/user/.ssh/id_rsa: Your PassphraseEnter

1. ssh tVWXYZ@wisteria.cc.u-tokyo.ac.jp <Enter>2. 鍵生成時に打ち込んだPassphrase <Enter>ログインしたら$ pwd/home/tVWXYZ$ cd /work/gt00/tVWXYZ$ pwd/work/gt00/tVWXYZ
$ cd
$ pwd
/home/tVWXYZ

1. ログインしたら「/home/tVWXYZ」に入る
2. /homeは容量が少ないので「/work/gt00/tVWXYZ」に移動すること
3. 「cd」でホームに戻れます37

Copy：PC to Wisteria$ scp ./a.dat

tVWXYZ@wisteria.cc.u-tokyo.ac.jp:

PC上のCurrent Directoryに例えば「a.dat」というファイルがあるとき、「a.dat」をWisteriaのホームディレクトリ（/home/tVWXYZ）の下にコピーする$ scp ./a.dat

tVWXYZ@wisteria.cc.u-tokyo.ac.jp:/work/gt00/tVWXYZ/test/

PC上のCurrent Directoryに例えば「a.dat」というファイルがあるとき、「a.dat」をWisteria上のディレクトリ「/work/gt00/tVWXYZ/test」の下にコピーする$ scp -r ./testL tVWXYZ@wisteria.cc.u-tokyo.ac.jp:
PC上のCurrent Directory下に例えば「testL」というディレクトリがあるとき、「testL」及びその中身をWisteriaのホームディレクトリ（/home/tVWXYZ）の下にコピーする$ scp -r ./testL tVWXYZ@wisteria.cc.u-tokyo.ac.jp:/work/gt00/tVWXYZ/test
PC上のCurrent Directory下に例えば「testL」というディレクトリがあるとき、 「testL」及びその中身をWisteria上のディレクトリ「/work/gt00/tVWXYZ/test」の下にコピーする38

Copy：Wisteria to PC$ scp tVWXYZ@wisteria.cc.u-tokyo.ac.jp:~/a.dat ./Wisteriaのホームディレクトリ（/home/tVWXYZ）下に例えば「a.dat」があるとき、PC上のCurrentDirectory下に「a.dat」をコピーする$ scp tVWXYZ@wisteria.cc.u-tokyo.ac.jp:/work/gt00/tVWXYZ/test/a.dat ./Wisteria上にディレクトリ「/work/gt00/tVWXYZ/test/」があり、その中に「a.dat」があるとき、「a.dat」をPC上のCurrent Directoryにコピーする$ scp -r tVWXYZ@wisteria.cc.u-tokyo.ac.jp:~/L1 ./Wisteriaのホームディレクトリ（/home/tVWXYZ）下にディレクトリ「L1」があるとき、「L1」とその中身をPC上のCurrent Directoryにコピーする$ scp -r tVWXYZ@wisteria.cc.u-tokyo.ac.jp:/work/gt00/tVWXYZ/test/L1 ./Wisteria上のディレクトリ「/work/gt00/tVWXYZ/test/L1」があるとき、「L1」とその中身をPC上のCurrent Directoryにコピーするポータルサイトでのマニュアル等閲覧（1/2）

ポータルサイトでのマニュアル等閲覧（2/2）

• PC上のソフトウェア類の準備• スパコンへのログイン• ログインしたら・・・• 講習会で使うコミュニケーションツール(Zoom, Slack)の設定

Zoomの準備• ダウンロード：https://zoom.us/download• クライアントを事前にインストールしてください。
– 今回、各自のZoomアカウントを作る必要はありません。

• インストール済みの方は、必ず最新バージョンに更新してください。
– 最新バージョンでないと接続できない可能性があります• 使い方：
https://utelecon.adm.u-tokyo.ac.jp/zoom/usage/Slackの登録• 質疑応答には、Slackを使います。
• 講習会開始2時間前までに準備してください。
– 会議室に入室するためのリンクは事前にお送りしています。
– 専用アプリもありますが、今回の講習会のみであれば、Webブラウザで十分です。

• 本講習会に関連する質問は、Slack中の#第230回-fortran2gpuチャンネルでお願いします。

質疑応答チャンネルへの移動• 左側のメニューバーのチャンネル一覧内に「第230回-fortran2gpu」があるので，クリック• 表示されていない場合
1. 「チャンネルを追加する」をクリック
2. 「チャンネル一覧を確認する」をクリック
3. 「第230回-fortran2gpu」があるので，「参加する」をクリック