— 23 —SENAC Vol. 50, No. 3（2017. 7）[報 告] 計算科学・計算機科学人材育成のためのスーパーコンピュータ無償提供利用報告

情報科学研究科 超高速情報処理論利用報告
滝沢寛之 後藤英昭 江川隆輔
東北大学サイバーサイエンスセンター
1. はじめに東北大学サイバーサイエンスセンターでは、計算科学・計算機科学分野での教育貢献・人材育成を目的として、大学院・学部における講義実習等の教育目的でのスーパーコンピュータ利用に対する負担金(利用料金)免除プログラム(以下、「スパコン教育利用制度」と呼ぶ)を平成 20 年度から始めています。現在この制度では、スーパーコンピュータ NEC
SX-ACE システムや並列コンピュータ NEC LX406Re-2 を教育目的であれば無償で利用することができます。この制度を利用して、共有メモリ型並列処理（OpenMP 等）、分散メモリ型並列処理（MPI 等）など、計算科学分野のシミュレーション開発で広く用いられている様々な高速化技術を実際のスーパーコンピュータ（スパコン）を使って学ぶことができます。
本稿では、スパコン教育利用制度を利用して行われた東北大学大学院情報科学研究科の超高速情報処理論について報告します。
2. 超高速情報処理論
現在、ケータイからスパコンまで、ありとあらゆるコンピュータのプロセッサは様々な方法でプログラムの並列性を利用することで、高性能を達成しています。特に、科学技術計算を実行するような大規模な高性能計算システムでは、プログラムの並列性をプログラマが明示的に指定しなければ、その性能を引き出すことができません。
東北大学大学院情報科学研究科博士課程前期 2 年の課程(修士課程)1 年生向けの講義である超高速情報処理論では、高性能計算を実現するスーパーコンピュータシステムについて、ハードウェアとソフトウェアの両面から概観します。本講義では、並列処理の重要性を述べた後に並列処理システムのハードウェア構成方式、並列アルゴリズム設計法、並列プログラミング手法、および性能評価方法について学習します。さらに、近年の計算システムでは性能への影響が大きいメモリシステムについても学びます。
平成 27 年度まで、同講義では並列プログラミングについて座学で基本的な概念を紹介していました。しかし、プログラミングの学習は「書いてナンボ、動かしてナンボ」の世界であり、机上で基本概念だけ説明しても理解しづらいのではないかとの懸念がありました。例年、並列プログラミングを試す環境を自力で用意し、レポート課題に取り組む受講生も何人かはいましたが、受講生全員にそれを期待するのは難しい状況でした。
そこで平成 28 年度からスパコン教育利用制度を利用し、超高速情報処理論の講義で並列プログラミングを実際に試せる環境を提供することにしました。

— 24 —

SENAC Vol. 50, No. 3（2017. 7）

3. 講義におけるスパコン利用方法
超高速情報処理論のように、東北大学サイバーサイエンスセンターのスパコンを講義で使うためには、講義中の短い時間で多くの受講生にスパコンへのログイン方法を説明する必要がありますし、いくつかの事前準備も必要です。スパコン教育利用制度を利用した講義を企画する際に参考となるように、事前の準備や説明が必要だった項目を以下に紹介します。
(1) ネットワーク接続
本講義ではネットワーク経由でスパコンに遠隔ログインしますので、受講者にはネットワークにアクセスする手段を提供する必要があります。そこで本講義では、eduroam[1]を使ってネットワーク接続する方法を受講生に説明しました。多くの受講生はすでにアカウントを持っていたため、本講義のこの段階で苦労する人はほとんどいませんでした。

図 1: eduroam に関する説明(2) SSH 接続用ソフトウェア
Windows には標準ではインストールされていませんので、SSH 端末ソフトウェアやファイル転送ソフトウェアをインストールして利用する必要があります。本講義では、SSH 端末ソフトウェアを対象として、PuTTY[2]のインストール方法と基本的な使い方を説明しました。また、ファイル転送ソフトウェアとしてはWinSCP[3]のインストール方法と基本的な使い方を説明しました。

情報科学研究科 超高速情報処理論利用報告— 25 —

図 2：PuTTY に関する説明(3) SSH 鍵生成
東北大学サイバーサイエンスセンターのスパコンでは、セキュリティ上の理由からパスワード認証でのログインを許しておらず、鍵認証でログインする必要があります。このため、同センターでは「鍵サーバ」(key.cc.tohoku.ac.jp)を用意しており、受講生には鍵サーバで SSH 鍵を生成してもらう必要があります。具体的には、利用者番号(ユーザアカウント)と初期パスワードを各受講生に渡し、鍵サーバにパスワード認証で SSH 接続してもらいます。鍵サーバには専用の cckey-gen コマンドが用意されており、一定の強度をもつパスフレーズつきの SSH 鍵を生成することができます。鍵生成方法の詳細に関しては同センターのウェブページ[4]をご覧ください。
(4) ジョブ管理システム
学生には、プログラミングの講義等で UNIX/Linux 環境の使い方を習う機会があったかもしれませんが、スパコンを使う機会はほとんどなかったはずです。両者の大きな違いの一つとして、スパコンではプログラム実行時にジョブ管理システムを使う必要がある点が挙げられます。ジョブ管理システムを使わなければならない理由として、スパコンは多数の利用者に共用されており、その公平で効率的な利用が非常に重要であることを説明し、さらにスパコンの大まかなシステム構成や、フロントエンドサーバから計算サーバにジョブを投入する方法などを説明しました。

— 26 —

SENAC Vol. 50, No. 3（2017. 7）

図 3：ジョブ投入等のスパコン利用のイメージ
これらの項目のうち、(3)と(4)に関しては講義時間中にも説明する必要がありますが、(1)と(2)に関しては受講生自身が事前に用意することで講義時間内の作業時間を削減することができます。また、(3)や(4)の説明用の講義資料もありますので、必要な方は東北大学サイバーサイエンスセンターの共同利用支援係までご連絡ください。
4. スパコン利用の目的と効果
例年、担当教員の都合に合わせて順番が多少前後しますが、シラバスに記載されている授業計画は以下のとおりです。
1.

並列処理入門2.

並列アーキテクチャ

3.

並列アルゴリズム設計 (1)4.

並列アルゴリズム設計 (2)5.

メッセージパッシングプログラミング

6.

共有メモリプログラミング

7.

並列処理の性能解析

8.

メモリ設計とデータ管理

9.

仮想メモリ

10. キャッシュメモリ (1)11. キャッシュメモリ (2)12. 並列計算システム
13. マルチプロセッサ用メモリシステム (1)14. マルチプロセッサ用メモリシステム (2)情報科学研究科 超高速情報処理論利用報告— 27 —

並列アルゴリズムを実装するための手段・道具として、第 5 回と第 6 回では MPI(Message Passing Interface) と OpenMP の基本概念をそれぞれ学びます。一回の講義時間は 90 分であり、かなり時間が限られていますので、細かいことを説明する時間的余裕はありません。また、受講生ごとにプログラミングの知識や経験には大きな差があります。そこで本講義では、MPI における SPMD (Single Program, Multiple Data)モデルや、OpenMP におけるスレッドの fork-join モデルといった基本的概念や世界観を説明し、詳しい文法や機能などを書籍やインターネットなどでさらに調べるために最低限必要な知識を中心に学びます。また、実装して実機上での性能を計測することを前提とすることで、第 7 回で説明する性能解析手法、性能モデルを使って、実際に計測された性能データをレポート課題で考察することもできるようになりました。
5. まとめ本稿で述べたように、東北大学大学院情報科学研究科の講義「超高速情報処理論」でスパコン教育利用制度を利用することによって、座学では体験できない実践的な内容を実際のスパコンを使って学べるようになりました。並列処理やプログラミングに関する基礎知識はもちろんのこととして、具体的なソフトウェアのインストール方法、その基本的な使い方、およびスパコン利用方法など、講義のあとにも役に立つ実用的な知識を提供できたものと思います。また、普通の日常生活では使うことのできないスパコンを使えるということで、受講生のやる気を引き出し、維持するうえでも効果的だったのではないかと思います。
本講義でスパコンを利用するのは初めての試みでしたので、実施方法にはまだまだ改善の余地があると考えています。この講義を契機としてスパコンを活用できる学生が一人でも増えるように、今後も講義内容の見直しと改善に努めていくつもりです。また、講義のノウハウの蓄積を通じて、東北大学サイバーサイエンスセンターのスパコン教育利用制度の利用促進にも貢献していきたいと思っています。
[1] eduroam JP, https://www.eduroam.jp/.
[2] PuTTY, https://www.chiark.greenend.org.uk/~sgtatham/putty/.
[3] WinSCP, https://winscp.net/.
[4] 東北大学サイバーサイエンスセンター, “SSH アクセス認証鍵生成サーバの利用方法,”
http://www.ss.cc.tohoku.ac.jp/application/key.html.