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
© Copyright 2025 ExpyDoc