スパコンを使う #1 〜申し込みからアクセスまで〜

# はじめに
研究でスパコンで並列処理を高速化したいと思ったので、大学のスパコンの利用申し込みをしました。今後使うかはわからないが、メモしておこうと思います。具体的な中身の話は参考にしたリンクを貼ったりするのでそれで確認ができるように随時更新していく（予定です）。

参考になりそうな対象
・ 東大の人（東大のスパコンを使うため）
・ 研究でスパコン使ってみたいけどパソコン初心者の人
・ スパコン使ってて研究してる感出したい人(?)

手元のパソコンの種類
Macbook Air(M1, 2020)
macOS Monterey ver.12.2.1　（2022/11/21現在）

といわけで手元での操作が必要なものは、Macの操作を想定しています。（Windous用の説明は別に書いてある場所がある場合はコメントしています。）

## 目次
1. [利用申し込み](#1-利用申し込み)
    1.1. [サイトにアクセス](#11-サイトにアクセス)
    1.2. [事前準備](#12-事前準備)
    1.3. [申し込み](#13-申し込み-1ヶ月無料お試し)
2. [スパコンにアクセスしてみる](#2-スパコンにアクセスしてみる)
    2.1. [SSHについて](#21-sshについて-pp26-29)
    2.2. [公開鍵の作成](#22-公開鍵の作成-pp30-33)
    2.3. [公開鍵の登録](#23-公開鍵の登録-pp34-37)
    2.4. [ログイン](#24-ログイン-pp40-41)

## 1. 利用申し込み

今回は東京大学のスーパーコンピューターを使ったのでこれが他の大学や組織が持っているスパコンと互換性があるのかわからないため、もし参考にする人はその点を留意してほしいです。（ちなみに自分が今回申し込んだ、お試し利用（**1ヶ月無料！**）は学外の人も利用できるのでおすすめです）

#### 1.1 [サイト](https://www.cc.u-tokyo.ac.jp/)にアクセス
東大には2022年現在2つのスーパーコンピュータが稼働中で、トップページを下にスクロールしていくと見ることができる。今回はそのうち[Oakbridge-CX](https://www.cc.u-tokyo.ac.jp/supercomputer/obcx/service/)を使用する。

下のようなページが出てくると思うので、「はじめての方へ」をクリック
![スパコン#1_01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1691898/d752f0ba-ed89-c3ca-8ab9-092ccf8d641a.png)

すると「[お試しスパコン利用](https://www.cc.u-tokyo.ac.jp/guide/trial/free_trial.php)」のページにいく。
スパコンは通常利用する際には（もちろん）お金を払わなくてはいけないが、初めて使う人限定で1ヶ月の無料体験ができる。ここから申し込みができる。

#### 1.2 事前準備
教えてもらいながら学んでいきたい初心者の人には、[お試しアカウント付き講習会](https://www.cc.u-tokyo.ac.jp/events/lectures/index.php)が不定期で開催しているのでタイミングが合えばそちらを利用してみるとよい。その時はおそらく下準備はほとんど要らず、スパコンにアクセスする用の自分のパソコンさえあれば問題ないと思う。
自分の場合は始めたいと思ったタイミングでは開催予定がなかったため自力でほぼ1から学ぶことにした。加えて今までの講習会の内容は講義動画やスライドが閲覧できるので、自分で学べばいいやと思ったのも理由の一つ。
自分はスパコンおろかパソコンもそこまで詳しくないので、過去の超初心者向けの講習会の資料を読んだ。講習会はWeteriaとOakbridgeで分けられており、自分はOakbridgeなのでその中で超初心者向けの講習会を探した。

自分が見た教材
- [講習会教育教材](https://www.cc.u-tokyo.ac.jp/events/lectures/materials/)：
並列処理解説I, IIは見ておくべき、重要な用語や機能を知るのに必要。IIIも余裕があれば。
- [第175回 2022年4月22日「スーパーコンピュータ超入門」](https://www.cc.u-tokyo.ac.jp/events/lectures/175/)：
ユーザーIDをもらってからスパコンにアクセスする具体的な方法から、実際に動かしてみるまで解説されている教材。SSH接続の方法などスパコンにアクセスするまでの手順は準備としては読んでおいておいた方が個人的には良いと思う。

#### 1.3 申し込み （1ヶ月無料お試し）
利用料金を払って使用する際はまた別途参照してほしい。
お試しでは、使用ノード数/GPU数/ジョブ数などに制約があるが（多分）十分だと思う。（パソコン初心者()なのでこの辺りのスペックや名称すら理解できていない。これも同時に学んでいく）
申し込む前にいくつか講習会のアーカイブ（動画、講習会資料）を見ておくとスムーズに導入できると思う。1ヶ月は多分あっという間にすぎると思うので申し込む前の下準備はしておくのが吉。（おすすめの講習会は後述）

ページを下に進んでいくと「Web申し込みフォーム」があるのでクリック（誓約書も必要と書いてあるが、まだ提出していない）
所属期間のメールアドレスを求められるので送信。数秒待てば詳細申し込みリンク付きのメールが送られてくるはずなので、それをクリック。指定された項目を入力し送信。申し込み内容はすぐに送られてくる。（参照：下画像）
<img alt="スパコン#1_02.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1691898/fcdd9181-b33b-8614-fb0e-9ff2c2b7d318.png" width="500">

自分は週末を挟んだので、4日ほどかかったが、ユーザーIDが発行されるので、使用できるようになる。申し込み時に使用開始日の希望を出すことができるのでおそらく一週間くらい準備期間があってもいいかも。
今回はOakbridge-CXを申し込んだ。理由としては、先輩から「使うならコア数が多いかつGNUコンパイラが使えるのにした方が良いよ」とアドバイスをもらったから。あと知識のない状態のお試し（後述）でもう一方の新しいスパコンを浪費したくなかったからというのもある。（まぁ導入が古いといって手元のPCよりははるかに早くなると思うので関係ないでしょう。）

これで申し込みは完了。利用者登録が完了すると、東京大学情報基盤センターから利用登録完了のお知らせメールが届く。そこに詳細などが書かれているので、利用者ポータルのパスワード設定や申告が必要なもののフォームを申請する。
![スパコン#1_03.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1691898/3ed55615-36f7-4d2b-6dc2-d4364a70f22a.png)
![スパコン#1_04.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1691898/a9995c06-dd2c-d307-431b-3ea1cfcdf0af.png)


次は実際にアクセスできるか試す。

## 2. スパコンにアクセスしてみる
ここからは[第175回 2022年4月22日「スーパーコンピュータ超入門」](https://www.cc.u-tokyo.ac.jp/events/lectures/175/)（以下「スパコン超入門」と略す）の講習会内容を主に参照しながら進めていくので細かい内容はそちらを読んでほしい(以下ページ数は参照スライドページ)。

#### 2.1. SSHについて （pp.26-29）
手元にあるパソコン（Mac）からスパコンへは**SSH接続**によってアクセスする。(Windowsは以下に示すやり方とは別の方法なので注意、詳細は[「スパコン超入門」](https://www.cc.u-tokyo.ac.jp/events/lectures/175/)で説明されている）
SSHについての詳細な説明は、検索すれば出てくるので別の記事などを参考にしてほしい（下のリンクは参考）。ここではざっくり、通信を暗号化して安全に遠隔操作する方法なんだなぁということでいい（？）。

https://qiita.com/shobooon/items/70cc74cd20c8b5b4fe15

SSH接続はSSHでローカルコンピューターからリモートコンピューターへアクセスすることをいう。SSHの通信では、「通信してやりとりする相手が本当に正しいか」を確認するために認証を行うが、今回はその中で「公開鍵認証方式」という認証方式でログインをする。
#### 2.2. 公開鍵の作成 (pp.30-33)
SSH クライアントは UNIX コマンドとして既に OS X に入っている。ターミナルを起動し以下を入力
```bash
~ $ ssh-keygen -t rsa
```
そうすると鍵の生成がはじまる。鍵の保管場所はとりあえずデフォルト（おそらく`/Users/username/.ssh/id_rsa`）で、パスワードの設定を求められるのでそれを設定。
成功すると鍵を暗号化したImageが表示されるはず。
保管場所を表示すると、以下のようになる。
```bash
$ ls ~/.ssh
id_rsa		id_rsa.pub
```
ここで`id_rsa`は秘密鍵（**漏れたらダメ**）で`id_rsa.pub`が公開鍵である。公開鍵をリモートアクセス先に登録することでSSH接続が可能になる。
#### 2.3. 公開鍵の登録 (pp.34-37)
まず公開鍵をコピーする。
```bash
$ cd ~/.ssh
$ ls
id_rsa		id_rsa.pub
$ cat id_rsa.pub
ssh-rsa AAAA~省略~= ユーザー名@使っているPC.local
```
`cat id_rsa.pub`で公開鍵がターミナル上に表示される（ここでは長いので省略するが「ssh-ras ~ .local」まで全部）のでこれをコピーする。
次に、スパコン側の設定。
1. Oakbridge-CXの利用支援ポータルから登録されたユーザーIDと設定したパスワードを入力しログインする。
2. ログインしたあと、左側のメニューにある「SSH公開鍵登録」をクリック。
3. 登録方式を「直接入力」にして、先ほどコピーした公開鍵を貼り付ける。
4. 「登録」ボタンを押してうまく登録できていたら画面が更新され、「登録方式」の上に「登録されている公開鍵」という項目が追加されている。

これで登録が完了しました。


#### 2.4. ログイン (pp.40-41)
手元のパソコンで
```bash
$ ssh (送られてきたユーザーID)@obcx.cc.u-tokyo.ac.jp
```
と入力するとパスワードを求められるので、SSHの鍵を作成した時のパスワードを入力する。
成功すると、今後のメンテナンスのスケジュールなどが表示される。メンテナンスは月に一回1日かけて行われる？のでその期間はスパコンは停止するので、**計算を始める際はこれに注意**。

```
Last login: Mon Nov 21 16:50:42 2022 from ~~~
--------------------------------------------------------------------------------
  Oakbridge-CX Information                                   Date: Oct. 26, 2022
--------------------------------------------------------------------------------

  Welcome to Oakbridge-CX system

  * Operation Schedule
     10/26(Wed) 20:00 - 11/22(Tue) 09:00  Normal Operation
     11/22(Tue) 09:00 - 11/22(Tue) 20:00  System Maintenance
     11/22(Tue) 20:00 -                   Normal Operation


    For more information about this service, see
    https://(問題ないと思うけど一応伏せておく)

  * How to use
    Users Guide can be found at the User Portal (https://(問題ないと思うけど一応伏せておく)).

  If you have any questions, please refer to the following URL and contact us:

    https://www.cc.u-tokyo.ac.jp/supports/contact/

  * Updated OBCX Users Guide 
     08/26(Fri): v1.16
[(username)@obcx06 ~]$ 
```
とりあえずここまででアクセスは完了です。

---

次回は実際にスパコンを使ってコードを動かすことを書いていこうと思います。
コメント等あればよろしくお願いします。

次の記事はこちら

https://qiita.com/Hidariuma_432/items/245fab3f5b9254a13884