Transcript Program

2008MAR28
1
多圏地球COEにおける
並列計算プログラミング教育(1/3)
• 近年,マイクロプロセッサの処理速度の上昇,並列計算機の発
達によって,計算機システムの処理能力は飛躍的に増加して
いる。
• TOP500リスト(2008年11月版,年2回更新)
– 世界最高速(約1.105 PFLOPS):IBM Roadrunner@LANL
• 約13万台のプロセッサ
– T2Kオープンスパコン(東大,2008年6月稼動:ピーク性能
140TFLOPS,1万5000コア)
2008MAR28
2
計算機ハードウェア発達の歴史
http://www.es.jamstec.go.jp/
2008MAR28
3
計算機ハードウェア発達の歴史
TOP500
http://www.top500.org/
2008MAR28
4
多圏地球COEにおける
並列計算プログラミング教育(2/3)
• 並列計算機の使用によって,より大規模で詳細なシミュレー
ションを高速に実施することが可能になり,新しい科学の開
拓が期待される・・・と言われている。
• しかしながら,いざ,自作のプログラムを並列計算機で動か
そうとすると中々容易ではない。参考になる文献も少なく,英
語のものが多い。
2008MAR28
5
多圏地球COEにおける
並列計算プログラミング教育(3/3)
• 「並列計算プログラミング」,「先端計算機演習I・II」は「地球
シミュレータ」に代表されるような大型並列計算機を使いこな
し,未解決の問題にチャレンジしていくような研究者を育成す
ることが重要な目標の一つである。
• これまで,計算機科学を専門としない学生に対して科学技術
シミュレーションのための並列プログラミング技術を体系的に
教える授業は,日本では皆無であった。
• 「並列計算プログラミング」,「先端計算機演習I・II」は,そうし
た試みの日本で最初の内の一つであると自負している。
– 現在でもこれだけの内容をカバーするものは世界的に見ても他に
例は無い!
2008MAR28
6
講義・演習の目標
• 科学技術計算における様々な手法・アルゴリズムを理解し,
各アルゴリズムにおいて並列性を引き出す様々な工夫をする
ことの重要性,に主眼を置く
• アルゴリズムを教えるだけでなく,プログラミングもちゃんと教
える
• 当初は,博士課程学生をターゲット
– 最近ではM1の受講者が多い,専攻外の受講者も多い(物理,天文)
– 元々は,「How-to」的な実用的内容を考えていたのであるが,受講者
の低年齢化も考慮し,より基本的なアルゴリズムも含んだ教育にシフ
トしている。
2008MAR28
7
沿 革(FY.2004~2007)(1/2)
• まず最初に
– 前例が無い・・・というのは,とにかく困った
– 4月1日に着任して,4月中に開講せよ・・・というのでまた困った
– 自身の教育経験の不足
• 「地球シミュレータ」用並列FEMコード(GeoFEM)チュートリアルが唯一の体験
– とは言え,モデルとしたものがあるにはあった
• 上述のチュートリアル,マンチェスター大学での集中講義(英語)
• Lawrence Berkeley National Laboratory
– Hands-on Sessions in ACTS Workshop(2003 August)
– UC Berkeley:Applications of Parallel Computers
– 前期:MPI(Message Passing Interface),後期:OpenMPを中心に
は教えるものの,文法ベースではなく,アプリケーション中心でやる,と
いう方針を固める:最初は一輪車操業,それなりに不安
2008MAR28
8
沿 革(FY.2004~2007)(2/2)
• FY.2004
– M1からD3まで40名以上の受講者:「How-to式」で進める
– 2005年2月:「SMASH」という言葉に出会い感銘を受ける
• SIAM Conference CSE05 (Computational Science & Engineering)
9
2008MAR28
Scientific Computing = SMASH
David Levermore (Univ.Maryland)
http://www.math.umd.edu/~lvrmr/
Science
Modeling
Algorithm
Software
Hardware
• 本当にこの順番に重要である?
• これだけ幅広い分野を扱わなければな
らない
• 分野間の協力の重要性を示していると
も言える。
• 一人で全てをカバーすることは難しいが,
「並列」シミュレーションコードを全て自力
で開発するためには,これだけの範囲の
知識と経験はそれぞれある程度必要
2008MAR28
10
沿 革(FY.2004~2007)(2/2)
• FY.2004
– M1からD3まで40名以上の受講者:「How-to式」で進める
– 2005年2月:「SMASH」という言葉に出会い感銘を受ける
• FY.2005
– 情報基盤センター演習室の端末の利用を開始
– 「地球物理数値解析」(4年生,大学院共通講義)担当を開始
– M1の受講者が増加し,いまひとつ手ごたえが悪くなる
• FY.2006
– 前年度の反省を踏まえ,基礎的なアルゴリズムの教育に重点
– VECPAR 2006でチュートリアル
• FY.2007
– 「スーパーコンピューティングニュース」に連載記事
– 「学際計算科学・工学 人材育成プログラム」検討
2008MAR28
11
再び,講義・演習の目標
• 科学技術計算における様々な手法・アルゴリズムを理解し,
各アルゴリズムにおいて並列性を引き出す様々な工夫をする
ことの重要性,に主眼を置く
• アルゴリズムを教えるだけでなく,プログラミングもちゃんと教
える
• もとのアルゴリズム,プログラムを理解しているのであれば,
そこから並列性を引き出すことはそれほど困難ではない
• 従って実は重要なのは「並列計算プログラミング」の前のプロ
セスである(実用アプリケーションのプログラミング)
– 偏微分方程式の数値解法,差分法・有限要素法プログラミング
– 2005年から「地球物理数値解析」を担当したことは有用であった
2008MAR28
12
講義・演習の概要
• 夏学期「並列計算プログラミング」,「先端計算機演習I」
– MPIの基本であるSPMD(Single Program Multiple Data)の考え方
をアプリケーションの並列化を通して学んでもらうことに主眼を置く
• これはとにかくしつこいくらい教えた
– MPIによる差分法,有限体積法,境界要素法などのアプリケーション
の並列化手法に関する講義,演習:部品化
– その他
• 線形方程式の解法,可視化,チューニング,最適化,グリッドコンピューティング
• 冬学期「先端計算機演習II」
– 共有メモリ型並列計算機における並列化に有効なOpenMP
– オーダリング
• 並列化,ベクトル化において必須のプログラミング技術
– 多重格子(Multigrid)法
• SMASH
2008MAR28
13
PE: Processing Element
プロセッサ,領域,プロセス
SPMD/SIMD
mpirun -np M <Program>
この絵が理解できればMPIは
9割方理解できたことになる。
コンピュータサイエンスの学
科でもこれを上手に教えるの
は難しいらしい。
PE #0
PE #1
PE #2
PE #M-1
Program
Program
Program
Program
Data #0
Data #1
Data #2
Data #M-1
各プロセスは「同じことをやる」が「データが違う」
大規模なデータを分割し,各部分について各プロセス(プロセッサ)が計算する
2008MAR28
題材
• 局所的手法(差分法,有限要素法等)
– 有限体積法(ガウス・グリーン型)
– 疎行列
• 大域的手法(境界要素法,スペクトル法等)
– 境界要素法:FY.2004,2005
– 粒子間熱伝導:FY.2006,2007
– 密行列
• 幅広いバックグラウンドの受講生への配慮
– 各大講座
– 天文,物理,工学系,情報理工学系
– FORTRAN,C
14
2008MAR28
実情,問題点
• 受講者数
– 前期:10~15名,後期:5~10名程度,M1多い
• バックグラウンド
– 数値解析,シミュレーション
• 外部からの入学者の問題
– 専攻,各自の興味
• 感想文を書いてもらうと色々な意見がある
• ボリューム
– ちょっと多すぎたかも:次第に減少させた
• 副読本
– これはあると良いという意見が多かった
– 教科書
15
2008MAR28
4年間(FY.2004~2007)を振り返って
• 前例が無いため,教材も含めて全て一から手作り,というのは
苦労も多いが,非常にやりがいのある仕事であった。
– 計算科学(シミュレーション)教育において大きな一歩であった
– 手探りで進めたこともあり,4年間で完成したとは言い難い。
– 2005年度から「地球物理数値解析(学部4年,大学院共通講義)」を担
当することになったことは有用であった(後述)。
• 効果が本当にあったのか・・・ということを知ることは難しい。
– 継続が重要
– 受講者はM1が多い,効果が出るのは時間もかかる
• 受講後の感想は「将来役に立つと思う」というものが大半であったが
• 今後
– 教科書
– 「学際計算科学・工学 人材育成プログラム」への展開
16