学際計算科学・ 工学 人材育成 プログラム

Download Report

Transcript 学際計算科学・ 工学 人材育成 プログラム

学際計算科学・工学人材育成体制
中島 研吾
東京大学情報基盤センター
2009年11月
2
2009NOV
•
•
•
•
学際計算科学・工学 人材育成プログラム
第一の柱:HPC教育
第二の柱:並列シミュレーションコード開発環境
まとめ
3
2009NOV
「T2Kオープンスパコン」,「次世代スーパーコンピュータ」
並列計算機を駆使した大規模シミュレーション,新しい科学の開拓
計算機科学(CS),計算科学(CSE)の協力が不可欠
超大規模スパコンを駆使して
新しい科学の開拓につなげるためには
両分野の知見が必要
計算科学
計算機科学
学際的研究分野
学際計算科学・工学
4
2009NOV
学際計算科学・工学の
人材育成
(1)
人材育成
(2)
大規模並列アプリケーション
開発支援体制の構築
学部・大学院・
社会人向け
「学際計算科学・
工学 人材育成
プログラム」
並列
アプリケーション
開発環境
修了後
HPCミドルウェア
開発・整備
5
2009NOV
人材育成:環境整備が重要⇒持続的な教育+持続的な研究開発支援
学部・大学院・社会人向け
「学際計算科学・工学
人材育成プログラム」
• SMASHの体系的な教育
並列シミュレーションコード
開発環境
(HPCミドルウェア)
• 更なる持続性の軸の付与
– 修士課程までに終わらせる
• 多様な人材の育成
– 単なる「教育プログラム」との違い
• 自動チューニング機能
– スパコンアプリを使える人
– スパコンアプリを作れる人
– システムをいじれる人
– 計算機環境が変化しても,研究
者・技術者のアクティビティを生涯
にわたって持続的に支援
• HPCミドルウェア
• 新規ハードウェア
Science
Modeling
Algorithm
Software
Hardware
様々な専門家
(SMASH)の
結集が必要⇒
第二の柱の確
立が急務
FEM code developed on PC
I/F for
I/O
I/O
I/F for
Mat.Ass.
Matrix
Assemble
I/F for
Solvers
Linear
Solver
I/F for
Vis.
Vis.
HPC-MW for T2K
第一の柱については
一部始動している
(学際計算科学・工学
人材育成委員会)
I/O
Matrix
Assemble
Linear
Solver
Vis.
HPC-MW for Earth Simulator
I/O
Matrix
Assemble
Linear
Solver
Vis.
HPC-MW for
Next Generation Supercomputer
6
2009NOV
どんな人材を育てるか ?
• 「HPCのわかるアプリの人材」が基本
– 「アプリのわかるCSの人材」も必要
• スパコンアプリを使える人(C型)
• スパコンアプリを作れる人(A型,B型)
• システムをいじれる人(S型)
– S型:学際計算科学・工学を担う人材
• 次世代の学際計算科学・工学人材育成を担う人材
7
2009NOV
第3の科学=大規模並列シミュレーションへの大いなる期待
現状:どちらの柱についても具体的な方策が立てられていない
重要性・緊急性
学部・大学院・社会人向け
「学際計算科学・工学
人材育成プログラム」
並列シミュレーションコード
開発環境
(HPCミドルウェア)
• 大規模並列シミュレーションプログ
ラムを開発するための体系的な教
育プログラム
• ハードウェア技術の急速な高度化,
複雑化,多様化⇒計算能力を最大
限引き出すアプリ開発は困難
– 科学技術計算は様々な基盤技術
の積み重ね(SMASH),アプリの
特性に即した体系的教育必要
– 本学における幾つかの事例を除く
と,世界的に見ても無い
計算科学・工学の持続的な発展を促進するための
人材育成,開発支援体制の整備が急務
SMASH (Science-Modeling-Algorithm-Soft/Hardware)
素粒子
大気・海洋
物性系
固体地学
構造系
宇宙
金融工学系
Sciences
(対象領域)
第一原理
データマイニング
流体系
画像処理
化学系
分子軌道法
分子動力法
有限要素法
ゲノム情報系
モンテカルロ法
•ポアソン方程式
•ラプラス方程式
•ナビアストーク方程式
•ブラックショールズ方程式
•シュレディンガー方程式
•マクスウェル方程式
•ニュートン方程式
•…
モデルごとに使用するア
ルゴリズムを教える
Modeling
差分法
スペクトル法
数値解析:誤差解析、積分、ニュートン法、
常微分方程式、連立一次方程式、固有値、
最小二乗法、乱数、FFT,偏微分方程式
線形計画法
データ構造とアルゴリズム
木、グラフ、ネットワーク
アルゴリズムの肝を網羅
的に教えることにより、
将来研究で必要になっ
たときに備える
Algorithms
可視化
プログラミング入門:Fortran, C, C++, JAVA、
シェル、エディタ、UNIX上でのプログラミング
並列プログラミング:OpenMP, MPI, 集団通信アルゴリズム
並列計算機アーキテクチャ:ベクトル並列計算機、共有メモリ
並列計算機、分散メモリ並列計算機、インターコネクション
計算機システム:データ表現、機械語、パイプライン、記憶階層、仮想記憶、性能評価、
Programming
ファイルシステム、ネットワーク、オペレーティングシステム
(Software) &
Computer Architecture (Hardware)
2009NOV
正しい(スケーラブルな)プログラミングを
身につけるために必要な一般教養
8
9
2009NOV
4S型人材育成戦略
「4つのS」:System,Stage, Status, Style
• System
• Stage:4つの段階
– SMASH
– 科学技術計算の真髄
– バランスが重要
– 並列プログラミングへの道
– ③が最も重要,かつ教育困難
• 現状:理論中心
– ①,②:ガイドライン策定
Science
A S
① 計算機リテラシー
プログラミング言語
Modeling
A S H
② 科学技術計算基礎論・演習
(数値解析・プログラミングの基礎)
ここに厚い壁
Algorithm
Software
Hardware
S M A S H
③ アプリケーションの実用的プログラ
ミング(有限要素法等)
S M A S H
④ 並列プログラミング
10
2009NOV
4S型人材育成戦略(続き)
「4つのS」:System,Stage, Status, Style
• System
• Stage:4つの段階
– SMASH
– 科学技術計算の真髄
– バランスが重要
– 並列プログラミングへの道
– ③が最も重要,かつ教育困難
• 現状:理論中心
– ①,②:ガイドライン策定
• Status:多様な人材
– スパコンアプリを動かせる人
– スパコンアプリを作れる人
– システムをいじれる人(HPCミドルウェア,新規ハードウェア)
• Style:様々な形態
– 講義・演習,集中講義,(遠隔)講習会,e-Learning
– 様々なバックグラウンドの受講者の多様なニーズに柔軟に対応
• 大学院よりの進学者,社会人も
– 受講者の負担を極力増やさない:コマ数をなるべく増やさない
11
2009NOV
理学系研究科
工学系研究科
• 有限体積法
• 並列アルゴリズム
• 有限要素法
• 並列可視化手法
学際計算科学・工学
人材育成プログラムの戦略
生産技術研究所
学際計算科学・工学人材育成委員会
情報基盤センター
特任教員群
•
•
•
•
データ構造とアルゴリズム
計算機システム
並列計算機アーキテクチャ
並列プログラミング入門
情報理工学系研究科
① 計算機リテラシー
プログラミング言語
② 科学技術計算基礎論・演習
(数値解析・プログラミングの基礎)
ここに厚い壁
③ アプリケーションの実用的プログラ
ミング(有限要素法等)
④ 並列プログラミング
• バイオインフォマティックス
• 並列探索処理
新領域創成科学研究科
• ①,②レベルは各学科に任せる
– 既存の講義・演習あり
– 人材育成委員会はガイドライン策定⇒認定
• e-Learning教材は必要
• ③,④レベルは手法ごとに全学的共通講義を研
究科単位で開講:各研究科・専攻で単位認定
12
2009NOV
2009-02-13
本計画の現状
• 学際計算科学・工学人材育成委員会
– (H20.2~平尾副学長,H21.4~松本副学長),4研究科,1研究所による連携
– WG組織,教育プログラム策定,実施(H20年度:5回開催)
– 「4S型人材育成戦略」:「System,Stage,Status,Style」
• 現在開講中の講義
– 「並列計算プログラミング,先端計算機演習(有限体積法)」(理・地球惑星・大学院教育高度
化プログラム)(H16~,多圏地球COEにて開講)
– 「スパコンプログラミング」(工)(H19~)
– 「コンピュータ科学特別講義Ⅰ(有限要素法)」(情報)(H20~)
– 各種講習会
• H21年度以降開講予定
–
–
–
–
–
コンピュータ科学特別講義Ⅰ・Ⅱ(並列有限要素法)(情報)(H21~)
実践コンピュータシステムⅠ・Ⅱ(情報)(H21~)
大規模「非」数値データ処理(新領域)(H22~)
科学技術計算基礎論・演習(情報)(H22~)
各種講習会
• 検討中
– 各種講習会,e-Learning,差分法,境界要素法,スペクトル法等の講義
13
2009NOV
学際計算科学・工学人材育成プログラムのカリキュラム
各学科・専攻
学
部
前
半
大
学
院
・
修
士
数値解析②
偏微分方程式
数値解法
有限要素法
境界要素法
等
H →
全学ゼミ:スパコン
プログラミング入門④
情報
計算機
リテラシー①
学
部
後
半
← S
学際計算科学・工学 人材育成プログラム
M
A
S
ガ
イ
ド
ラ
イ
ン
科学技術計算基礎論・
同演習(情)②
スパコンプログラミング
(工)④
コンピュータ科学特講Ⅰ 並列計算プログラミング
有限要素法(情)③
先端計算機演習
(理)③④
コンピュータ科学特講Ⅱ
並列有限要素法(情)④
高性能生物情報処理
特論(新領域)③④
実践コンピュータ
システムⅠ・Ⅱ(情)④
講習会,特別講義 等
並列
プログラミング
短期集中
T2K利用
MPI入門
チューニング
入門
HPC-MW
RSS21
アプリケーション
科学技術計算
基礎論・同演習
短期集中
マルチコア
プログラミング
入門
連立一次方程式
解法
並列可視化
アプリケーション
使用法
各種ライブラリ
LAPACK
PETSc等
14
2009NOV
•
•
•
•
学際計算科学・工学 人材育成プログラム
第一の柱:HPC教育(東大における現状)
第二の柱:並列シミュレーションコード開発環境
まとめ
15
2009NOV
学際計算科学・工学 人材育成
プログラム(東京大学)
• 地球惑星物理学科・地球惑星科学専攻における取り
組みがモデルとなっている
– 1990年代から世界的にも他に類を見ない充実した計算機・
プログラミング教育が行なわれている
– FY.2004~:並列プログラミング教育(21世紀COE)
• FY.2008からは理学系フロンティア科目
2009NOV
地球惑星物理学科,地球惑星科学専攻
• 地球惑星物理学演習:3年夏(週2コマ×3)①②
– 計算機リテラシー,FORTRAN,基本的な数値解析
• 地球物理数値解析:4年夏,大学院(2005~改革)③
– 偏微分方程式の数値解法
– 差分法,有限要素法
• 並列計算プログラミング,先端計算機演習(2004~)④
– 有限体積法,境界要素法
– SPMDの考え方,MPI,OepMP
– http://nkl.cc.u-tokyo.ac.jp/08s/, FY.2008からはT2K使用
• この他「地球物理データ解析」,「時系列データ解析」など
• 拙著:究極の「並列プログラミング教育」を目指して
– http://www.cc.u-tokyo.ac.jp/publication/news/VOL10/No3/200805nakajima.pdf
16
17
2009NOV
並列プログラミングへの道
A S
① 計算機リテラシー
プログラミング言語
A S H
② 科学技術計算基礎論・演習
(数値解析・プログラミングの基礎)
ここに厚い壁
S M A S H
③ アプリケーションの実用的プログラ
ミング(有限要素法等)
S M A S H
④ 並列プログラミング
• ③がとにかく重要
– もとのアプリをよく理解していれば「並列化」は困難では無い
– 理論中心,体系的なプログラミング教育はほぼ皆無
– 実アプリケーションに触れるのは研究室配属後
2009NOV
18
基本方針(1/2)
• ①,②については既存の講義
を活用
– ガイドラインに従い多少の変更
• ③,④:ほとんど無い
– 各研究科レベルで整備
– 離散化手法別
– 必ずサイエンスを教える(簡単
なものでも)
① 計算機リテラシー
プログラミング言語
② 科学技術計算基礎論・演習
(数値解析・プログラミングの基礎)
ここに厚い壁
③ アプリケーションの実用的プログラ
ミング(有限要素法等)
④ 並列プログラミング
• 大学院からの進学者への配慮
– 集中講義
– 講習会,e-Learning⇒社会人でも履修可能
• 学生の負担は増やさない,教員の負担は増える
• 認定制度
19
2009NOV
基本方針(2/2)
• ④までを修士課程のうちに終了
– 博士課程では,どんどん大規模シミュレーションをできる
– 就職・・・
• 基礎をしっかり学ぶ
• チューニング,最適化の意識(「SMASH」の「H」)
– ②の段階で教える:ガイドラインで考慮
• FORTRAN,Cの両ユーザーをカバーできるように工夫
• ②⇒③に壁,そして③が最も重要
– 徹底して「実アプリケーション」コードのソースを「読む」能力をつ
けるところに重点を置く(特に学部4年~大学院初級):英語漢
文の音読のごとく
– これまでの経験で効果は確認済
20
2009NOV
学際計算科学・工学人材育成プログラムのカリキュラム
各学科・専攻
学
部
前
半
大
学
院
・
修
士
数値解析②
偏微分方程式
数値解法
有限要素法
境界要素法
等
H →
全学ゼミ:スパコン
プログラミング入門④
情報
計算機
リテラシー①
学
部
後
半
← S
学際計算科学・工学 人材育成プログラム
M
A
S
ガ
イ
ド
ラ
イ
ン
科学技術計算基礎論・
同演習(情)②
スパコンプログラミング
(工)④
コンピュータ科学特講Ⅰ 並列計算プログラミング
有限要素法(情)③
先端計算機演習
(理)③④
コンピュータ科学特講Ⅱ
並列有限要素法(情)④
高性能生物情報処理
特論(新領域)③④
実践コンピュータ
システムⅠ・Ⅱ(情)④
講習会,特別講義 等
並列
プログラミング
短期集中
T2K利用
MPI入門
チューニング
入門
HPC-MW
RSS21
アプリケーション
科学技術計算
基礎論・同演習
短期集中
マルチコア
プログラミング
入門
連立一次方程式
解法
並列可視化
アプリケーション
使用法
各種ライブラリ
LAPACK
PETSc等
21
2009NOV
現在開講中の講義・演習
• 並列計算プログラミング・先端計算機演習(理・地球惑
星科学)
– 有限体積法
• スパコンプログラミング(工)
• スパコンプログラミング(全学ゼミ)(教養)
– 数値解法
• コンピュータ科学特別講義I・II(情報理工)
– 有限要素法
• 実践コンピュータシステムI・II(情報理工)
• 全ての講義でT2Kオープンスパコン(東大)を利用した
プログラミング実習あり(4ノード,16コア)
– 教育用アカウント
22
2009NOV
受講者数(登録者)
H21
(見込含む)
科目名
実施部局
スパコンプログラミング
工学部,工学系研研究科
スパコンプログラミング
(全学ゼミ)
教養学部
13
18
9
並列計算プログラミング,
先端計算機演習
理学系研究科
22
34
47
コンピュータ科学特別講義I
(有限要素法)
情報理工学系研究科
ー
20
12
H19
H20
110
97
(前後期計) (前後期計)
24
(前期)
23
2009NOV
受講人数
• 多ければ良いというものでもない。
• ③,④レベルの講義では20名が限界
– 教育のできる人材の育成,確保が急務
• 東大全体で④までを修了する人数
– 毎年100名程度を目標
•
•
•
•
•
有限要素法
有限体積法
差分法,スペクトル法,境界要素法
分子動力学
数値解析,非数値分野
– 少なすぎるという人も居るが,学内の意見では50名程度で充
分という声も多い
• まず,教えられる人の養成が急務
24
2009NOV
将来展望
• H21年度
– 並列有限要素法プログラミングI・II
– 計算科学向け計算機科学
• 「プログラミング」だけでは不十分というCS側からの意見
• H22年度
– 非数値分野:探索
• 現在まだカバーしきれていない分野:新規人材を必要と
する分野
– 差分法,分子動力学,スペクトル法
• ある程度現有のメンバーで対処可能であるが,新規人材必要
– 境界要素法
• 特に高速多重極展開(日本にそもそも専門家が少ない)
実践コンピュータシステム I, II
•
•
•
•
•
担当:石川 裕
対象者:大学院
開講時期&単位数
集中講義
– I: 7月末2コマx3日(最終日3コマ)、1単位
– II:9月末2コマx3日(最終日3コマ) 、1単位
履修条件
– IIを履修するものは、Iを履修していなければなら
ない
– 情報科学科学生の卒業単位および情報科学科
卒業生の大学院卒業単位としては認めない
概要
–
–
–
–
本講義では、並列コンピュータ上で先端的アプリケーシ
ョンを設計・実装するために必要な基礎知識を学ぶ。
Iにおいては、コンピュータの仕組みを理解するために、
機械語によるプログラミングを行う。キャッシュ、ページ
ングによる計算性能のインパクト、バッファオーバフロー
やメモリリークなどの問題点を学ぶ。コンピュータの性能
評価の基本を学ぶ。
IIにおいては、ベクトル並列コンピュータ、共有メモリ型
並列コンピュータ、分散メモリ型並列コンピュータの仕組
みを学ぶ。演算性能、メモリ性能、通信性能が及ぼすア
プリケーション性能の影響を学ぶ。
I, IIとも課題のレポート採点で成績をつける
1. 概要、データ表現
2. 機械語その1
– ロード・ストア、演算、分岐
3. 機械語その2
– サブルーチン、再帰
4. パイプライン、メモリ階層、仮想メモリ
5. オペレーティングシステム
6. 性能評価
7. 実験(PalyStation 3を使用)
1. 並列コンピュータアーキテクチャその1
– スカラ、ベクトル
2. 並列コンピュータアーキテクチャその2
3.
4.
5.
6.
7.
– 共有メモリ、分散メモリ、相互結合
網
プロセス、スレッド、同期
通信モデル、通信ライブラリの仕組み
並列プログラミング言語
– OpenMP, UPC, …
性能評価
実験(T2Kオープンスパコンを使用)
25
科学技術計算プログラミング(有限要素法) I, II
•
•
•
•
担当:中島研吾
対象者:大学院
開講時期&単位数
– I: 夏学期,2単位
– II: 冬学期,2単位
履修条件
– IIを履修する者は:
• I(またはコンピュータ科学特別講義I(2008冬))を
履修していなければならない
• 情報科学科以外の卒業者は「実践コンピュータシ
ステム I, II」を履修していることが望ましい
•
概要
–
–
–
–
Iでは,科学技術シミュレーションで広く使用されている有
限要素法の基礎的な理論から実用的なプログラムの作
成法まで,連立一次方程式解法等周辺技術も含めて講
義を実施し,プログラミングの実習を行う。
IIでは,並列有限要素法のためのデータ構造,並列プロ
グラムの作成法,「HPC-MW」等の大規模並列シミュレー
ションコード開発基盤についても講義し, T2Kオープンス
パコンによるプログラミング実習を実施する。
大規模並列シミュレーションにおいては,科学・工学と計
算機科学の専門家の密接な協力が必要である。本講義
は,単に並列アプリケーション開発技術を習得するだけ
でなく,特にコンピュータ科学専攻の学生がアプリーケ
ーション側のニーズを把握し,両分野の融合領域を開拓
する問題意識を育てることを目的としている。
I, IIとも課題のレポート採点で成績をつける
夏学期(I)
1. 概要
2. 有限要素法の基礎理論
3. ガラーキン法による有限要素法の実装
4. 疎行列解法,前処理手法
5. 有限要素法プログラミング解説
– 一次元問題
– 三次元問題
6. プログラミング実習(情報基盤センター
ECCS2008システムを使用)
冬学期(II)
1. 概要
2. 並列計算プログラミング入門
3. 並列有限要素法のデータ構造
4. 並列有限要素法プログラムの開発
5. 大規模並列シミュレーションコード開発
基盤
6. プログラミング実習(T2Kオープンスパコ
ンを使用)
26
高性能生物情報処理特論(H22年度より開講予定)
•
•
•
•
担当:中谷明弘
対象者:大学院
開講時期&単位数
– 冬学期,1単位
履修条件
–
•
概要
–
–
基礎的なプログラミングの経験
1. 組み合わせの列挙と最適化:表現型
に関連した遺伝子座の組み合わせ効
果の評価
2. 探索空間の構築: 大域情報と局所
情報
3. 探索空間と最適化:分散分析と関連
解析
4. 探索空間の縮小:A*アルゴリズムと分
枝限定法
5. 探索処理の逐次実装:優先度付きキュ
ーを用いた実装
6. 探索処理の並列化(1):並列計算入門
7. 探索処理の並列化(2):優先度付き
キューの並列化
–
–
–
–
表現型に関連する遺伝子座の組み合わせ効果(エピス
タシス)を解析するための組み合わせ最適化手法につ
いて扱う。
生物学的な背景や意義から、数理的な枠組みでの定式
化、最適化アルゴリズムの設計、網羅的な探索による実
用的なプログラムの作成法まで、実際の観測データへ
の適用を含めて講義を実施し、並列化も含めたプログラ
ミングの実習も行う。
「連続系アルゴリズム」と対になる「非連続系アルゴリズ
ム」の一つの例題として、生物学的な問題を題材にした
離散的な探索問題を扱う。
対象とする問題は、表現型と遺伝子型の間の因果関係
に注目した関連解析(アソシエーション・スタディー)に帰
着でき、計算機科学と統計遺伝学の境界領域に相当す
る内容であるが、エピスタシス解析用途のプログラミン
グまではいずれの分野でもカバーされていない。
また、解析手法が必ずしも確立し切っているとは言えず
、組み合わせ最適化に関連して、分枝限定法やA*アル
ゴリズムといった既存の手法を学びながらも、実データ
の特質の考慮や大規模な計算機資源の活用など、自ら
工夫して取り組む必要がある。
大学院レベルの探求的な内容の講義・実習として実施
することが相応しい内容である。
27
28
2009NOV
将来展望(特に①,②段階)
• 多様な学生のバックグラウン
ドを考慮するとこの部分も実
は重要である
• 短期集中講義,講習会,eLearning
• 短い期間で効果的に学べる
システムが重要
• 例:準備コース(RWTH
Aachen)
① 計算機リテラシー
プログラミング言語
② 科学技術計算基礎論・演習
(数値解析・プログラミングの基礎)
ここに厚い壁
③ アプリケーションの実用的プログラ
ミング(有限要素法等)
④ 並列プログラミング
29
2009NOV
•
•
•
•
学際計算科学・工学 人材育成プログラム
第一の柱:HPC教育
第二の柱:並列シミュレーションコード開発環境
まとめ
30
2009NOV
マルチフィジックスシミュレーション向け
大規模並列計算コード開発基盤
• マルチフィジックス・マルチスケールの並列大規模連成シ
ミュレーションを円滑に実施するためのフレームワーク
• 連立一次方程式ソルバー,形状処理,可視化,コード間
連成などの共通処理に関する機能を提供し,並列大規
模連成シミュレーションコードを開発するための支援環境
• PC上のプログラムを「plug-in」すればPCクラスタから「ペ
タスケール計算機」まで様々なハードウェアに対して最適
化並列プログラムが自動的に生成される・・・のが理想
– GeoFEM,HPC-MW(Middleware),HEC-MW
31
2009NOV
何がうれしいか
Science
• アプリケーション開発者のチューニング
(並列,単体)からの解放
– SMASHの探求に専念
– SMASHをカバー
Hardware
• コーディングの量が減る
• 本来誰がやる仕事か? とい
う問題はある
– アメリカ:Scientific Computing
Programの卒業者
– 「学際計算科学・工学」の仕事
• 計算科学研究機構の仕事
Algorithm
Software
• 一生SMASHと付き合うのはきつい
– 50%未満
Modeling
計算科学
計算機科学
Computational
Sci. & Eng.
Computer Science
学際計算科学・工学
Interdisciplinary Comp. Sci. & Eng.
人材育成,大規模並列シミュレーション開発支援体制
学部・大学院・
社会人向け
「学際計算科学・
工学 人材育成
プログラム」
並列シミュレーション
コード開発環境
(HPCミドルウェア)
32
2009NOV
大規模並列計算コード開発基盤:例
• GeoFEM(FY.1998-FY.2002)@RIST
– 科学技術振興調整費 科学技術総合研究委託「高精度の固体地
球変動予測のための並列ソフトウェアの開発に関する研究」
– 固体地球シミュレーション用並列有限要素法プラットフォーム
– 地球シミュレータ
• HPC-MW(FY.2002-FY.2003)@東大生研
– 文部科学省ITプログラム「戦略的基盤ソフトウェアの開発」
• RSS21「革新的シミュレーションソフトウェアの研究開発(FY.2005-2008)」
• 「イノヴェーション基盤シミュレーションソフトウェアの研究開発(FY.2008-)」
• 観測・計算を融合した階層連結地震・津波予測システム
(FY.2005-FY.2010(予定))@東大地球惑星
– 科学技術振興機構戦略的創造研究推進事業(CREST)
– 「階層連結シミュレーション」,「連成」を重視
33
2009NOV
GeoFEM: FY.1998-2002
http://geofem.tokyo.rist.or.jp/
• 文部科学省「科学技術振興調整費総合研究」
– 「高精度の地球変動予測のための並列ソフトウェア開発に
関する研究」の一部
• 地球シミュレータ
– リーダー:奥田洋司教授(東大・人工物)
• 固体地球シミュレーション用並列有限要素法プラッ
トフォーム
– 並列I/O,並列線形ソルバー,並列可視化をサポート
• HPCと自然科学の緊密な協力
34
2009NOV
Results on Solid Earth Simulation
Complicated Plate Model around Japan Islands
Magnetic Field of the Earth : MHD code
Dh=5.00
Dh=1.25
Simulation of Earthquake Generation Cycle
in Southwestern Japan
T=100
T=200
T=300
T=400
T=500
Transportation by Groundwater Flow
through Heterogeneous Porous Media
TSUNAMI !!
35
2009NOV
GeoFEM:「plug-in」の発想
Pluggable Analysis Modules
Utilities
One-domain mesh
Partitioner
Structure
Fluid
Wave
Comm.
I/F
構造計算(Static linear)
構造計算(Dynamic
構造計算(
linear)
Contact)
Solver
I/F
Vis.
I/F
Platform
Parallel Equation Visualizer
solvers
I/O
Partitioned mesh
PEs
GPPView
Visualization data
36
2009NOV
GeoFEM
• 最初は「プラットフォーム」,「フレームワーク」というアイ
ディアは無し
• 「並列有限要素法プログラム」を作っているうちにこうい
う発想が出てきた
– 有限要素法⇒並列計算向け,モジュラリティが高い
– 大勢で集まって作業した成果か?
• 実際に開発したアプリケーションから共通的機能を抽出
– アプリケーションとして動いているからこそ役に立つ
– ただのライブラリとは違う
• 計算機科学,応用数理的なライブラリとは異なった発想
37
2009NOV
HPC-MW
PCクラスタから「地球シミュレータ」まで
• GeoFEMにおける「Plug-in」のアイディアに基づく
• 科学技術計算(特に有限要素法)における共通プロセス
の最適化チューニング,並列化等のライブラリ化による
隠蔽
• 「HPC-MW」によって,PC上で開発されたコードを,PC
クラスタから「ES」まで,様々なハードウェアで最適な性
能によって稼動させることができる
– GeoFEMで「ES」向け最適化をやったのが契機
• HPC-MW は GeoFEM と 比 較 し て , よ り 広 い 機 能 を カ
バーし,さらに各ハードウェアへの最適化の考えを導入
• ⇒FRONT-STR
38
2009NOV
並列有限要素法のプロセス
Pre-Processing
Main
Post-Processing
Initial Grid Data
Data Input/Output
Post Proc.
Partitioning
Matrix Assemble
Visualization
Linear Solvers
Domain Specific
Algorithms/Models
39
2009NOV
HPC-MWのサポートする機能
•
•
•
•
•
•
•
データ入出力
適応格子,動的負荷分散
並列可視化
線形ソルバー
有限要素処理(コネクティビティ処理,係数行列生成)
カップリング
関連ユーティリティ(領域分割等)
Initial Mesh
Mises Stress
Adapted Mesh
40
2009NOV
HPC-MWの利用イメージ
PC(単独CPU)上で開発されたFEMコード
FEM code developed on PC
I/O
Matrix
Assemble
Linear
Solver
Vis.
41
2009NOV
HPC-MWの利用イメージ
HPC-MWを使用する場合,共通部分は不要
FEM code developed on PC
42
2009NOV
HPC-MWの利用イメージ
各H/W用に最適化されたライブラリ
FEM code developed on PC
I/O
Matrix
Assemble
Linear
Solver
Vis.
HPC-MW for Earth Simulator
I/O
Matrix
Assemble
Linear
Solver
HPC-MW for T2K/Tokyo
I/O
Matrix
Assemble
Linear
Solver
Vis.
HPC-MW for Next Generation SC
Vis.
43
2009NOV
HPC-MWの利用イメージ
各ライブラリに対して同じインタフェース
FEM code developed on PC
I/F for
I/O
I/O
Matrix
Assemble
Linear
Solver
I/F for
Mat.Ass.
I/F for
Solvers
I/F for
Vis.
I/O
Matrix
Assemble
Vis.
HPC-MW for Earth Simulator
Linear
Solver
HPC-MW for T2K/Tokyo
I/O
Matrix
Assemble
Linear
Solver
Vis.
HPC-MW for Next Generation SC
Vis.
44
2009NOV
HPC-MWの利用イメージ
「地球シミュレータ」用最適化コード
FEM code developed on PC
I/F for
I/O
I/O
I/F for
Mat.Ass.
Matrix
Assemble
I/F for
Solvers
Linear
Solver
I/F for
Vis.
Vis.
HPC-MW for Earth Simulator
I/O
Matrix
Assemble
Linear
Solver
HPC-MW for T2K/Tokyo
I/O
Matrix
Assemble
Linear
Solver
Vis.
HPC-MW for Next Generation SC
Vis.
45
2009NOV
HPC-MW
PCクラスタから「地球シミュレータ」まで
• このような基盤(ミドルウェア)は以下のそれぞれに対し
て作る必要がある:
• 各アプリケーション
• 各ハードウェア
– ベクトル,スカラー
– Flat MPI,Hybrid
2009NOV
46
GeoFEM,HPC-MWの成果
• 「MPI並列」については一定の成果あり
– アプリケーションにある程度特化したことが成功の理由
• 計算機科学,情報科学の専門家⇒万能のライブラリを作ろうと
してしまう
• アプリケーションの特徴を利用した並列化
– データ構造の定義
– 様々な機能
• 並列可視化,適応格子・動的負荷分散
• 単体チューニング
– ベクトルプロセッサ中心
2009NOV
47
現 状
• より多様な計算機環境
– マルチコア
• Hybrid並列プログラミングモデル
– GPGPU
– Heterogeneous Environment
• Roadrunner
• チューニング⇒アプリケーション
開発者にとっては「より」負担
– ベクトル機ほど単純では無い
– 利用可能なコア数の増加
• HPC-MW的なものへの要求はより高まる
– 2008年12月3日・4日日本応用数理学会「秋の学校」「科
学技術計算のためのマルチコアプログラミング入門」
2009NOV
48
Hybrid並列プログラミングモデル
• ASCI,地球シミュレータ
core
core
core
core
memory
core
memory
core
core
core
core
core
core
core
core
core
core
• SC08ではTutorialもあった
• NUMA(Non Uniform Memory Access)
core
core
core
core
memory
Hybrid:Hierarchal Structure
memory
– マルチコア,メニーコア
– MPIだけで大丈夫 ?
– Hybridの可能性を探るのは
当然の帰結
core
memory
•
コア数増加(>106)
Flat-MPI:Each PE -> Independent
memory
– Flat MPIが中心
– GeoFEMでは実施
core
core
core
core
– 最適化はとても難しい
• 地味だが,アプリレベルで取り組むべき問題の一つ
– 急速に注目度が高まっている:Hybrid Multicore Consortium
2009NOV
49
当面の目標(新HPC-MW)
• 見直し
• T2K(東大)上での稼動
• マルチコア対応
– Hybrid+自動チューニング(Automatic Tuning:疎行列
では例があまり無いが)
• 多様な手法への拡張
– 有限要素法
– 差分法,ボクセル型差分法
– スペクトル法 等
• 学際計算科学・工学人材育成プログラムとの育成
• T2K⇒ペタスケール⇒エクサスケール
– シームレスな開発環境
2009NOV
50
ずっと先の目標
いつまでも手作りというわけには行かない
HPC-MW
Generator
I/O
DB
HPC Middleware
for Existing H/W
I/O
Matrix
Assemble
Linear
Solver
Matrix
Assemble
Linear
Solver
Vis.
HPC-MW for Exaflops Computer
Vis.
HPC-MW for T2K (Tokyo)
I/O
Matrix
Assemble
Linear
Solver
Vis.
HPC-MW for IBM BG/L/P
I/O
Matrix
Assemble
Linear
Solver
Vis.
HPC-MW for Earth Simulator
DB
H/W Parameters
Runtime
AT Optimizer
I/O
Matrix
Assemble
DB
Monitored
Performance
Linear
Solver
Vis.
HPC-MW for Exaflops Computer
OPTIMIZED
51
2009NOV
•
•
•
•
学際計算科学・工学 人材育成プログラム
第一の柱:HPC教育
第二の柱:並列シミュレーションコード開発環境
まとめ
52
2009NOV
「T2Kオープンスパコン」,「次世代スーパーコンピュータ」
並列計算機を駆使した大規模シミュレーション,新しい科学の開拓
計算機科学(CS),計算科学(CSE)の協力が不可欠
超大規模スパコンを駆使して
新しい科学の開拓につなげるためには
両分野の知見が必要
計算科学
計算機科学
学際的研究分野
学際計算科学・工学