次世代スーパーコンピューティング・シンポジウム2008
2008年9月16 17日
2008年9月16-17日
MY PLAZAホール

次世代スーパーコンピュータと
次世代
タ
人材育成
平尾 公彦

Scienceのしっかりした基盤が重要
Scienceのしっかりした基盤が重要
21世紀は21
世紀は予測の科学の時代、予測の科学の時代、計算科学はその計算科学はその基盤
基盤
数値実験による新しい概念形成こそイノベーション
異分野融合と人材育成が重要
若い人のフレッシュなアイデアをいかに生かすか内容21
21世紀の科学技術と人材育成
世紀
世紀の科学技術と人材育成
科学技術と人材育成
スーパーコンピュータでブレークスルーを
パ
ピ
タ ブ
ク
を
計算科学の人材育成への東京大学の試み
計算科学 人材育成
東京大学 試み
まとめ

3

20世紀の科学
20
世紀の科学技術の発展
技術の発展
20世紀の科学技術は飛躍的な進歩をとげた。量子論と相対論
20世紀の科学技術は飛躍的な進歩をとげた量子論と相対論という、より基本的な法則が誕生したためである。
新しい概念による自然科学の意識革命がなされ、それを実証してきた世紀である。素粒子論、物質論、生命論、宇宙論によって私たちの自然観は根底から覆された。
科学技術は「自由」を獲得する人間の知的活動、偶然や宿命などに支配されない自由の枠組みを拡大する活動である。

20世紀はどんな時代だったのか
20
世紀はどんな時代だったのか
世紀
な時代
20世紀の技術革新
1. 電力
2 自動車
2.
3. 航空機4. 安
安全な水
5. 電子技術
6. ラジオ・テレビ
7. 農業機械化
8. コンピュータ
9 電話 ・通信
9.
10.空調・冷凍

11．高速道路12 宇宙船12．宇宙船13．インターネット
14．画像技術
像技術
15．家庭用電化製品
16. 医療技術
17. 石油・石油化学
石油 石油化学
アメリカ工学アカデミー2005
18. レーザー・光ファイバー
19 原子力技術
19.
20. 高性能材料

いずれもその源は基礎科学にある

今、私たちはどのような時代に
今 私たちはどのような時代に生きているのか？
生きてる か
この100年、世界人口は15億から66億に、先進国の寿命は40
年
界
億
億
先進
寿命
歳から80歳へ。CO2濃度は280ppmから379ppm (2005) まで
上昇、環境劣化と気候変動は待ったなしで地球温暖化へと向かう。南北格差は拡大し、人口の20%は極貧で、毎年1,600万人が餓死している。これが現実であり、この解決が21世紀の課
題である。

6

社会のための科学と技術
真理の探求のための科学研究は今後も尽きることがないが、21
世紀の科学は 知識のためだけでなく 社会 平和 開発のた
世紀の科学は、知識のためだけでなく、社会、平和、開発のためにあらねばならない
人類社会の目標は、肥大化した人間圏を地球と共生しうる持続的な的なシステムとして再構築すること、未来と富を再配分すること、テムとして再構築すること 未来と富を再配分すること
健康で快適な生活と安全で安心な社会を保証することにある
他方、地球規模で解決すべき環境や資源エネルギーなどの深刻化な問題を共有しつつ、文化的生活、福祉、倫理、個人の尊厳などをいかに担保するかが重要わが国に期待されること
国 期待
わが国独自の文化と感性に根ざした科学技術、省エネルギー
わが国独自の文化と感性に根ざした科学技術
省エネルギ
技術などの技術移転で世界の環境にも経済にも貢献できる
今後、先進国各国で予想される人口減少、高齢化、環境、エ
ネルギ の課題をわが国が率先して克服し 豊かな国家社会
ネルギーの課題をわが国が率先して克服し、豊かな国家社会を造る模範を示すいい機会である
技術革新と女性、外国人を含めた優れた人材の育成が鍵個
個人を基軸とする活力ある社会を創ることが目標
基軸
社会 創

8

21世紀の人類社会の課題
21
世紀の人類社会の課題
環境問題
地球温暖化
南北問題
人口増加
エネルギー問題
水 食糧問題
水・食糧問題
高齢化社会…
いずれも極めて複雑、多岐の分野にまたがる複合的な課題
相関関係を重視 た俯瞰的学術 創成が必要
相関関係を重視した俯瞰的学術の創成が必要
これまでの方法論で解決できるのだろうか？
9

計算科
計算科学
計算科学は実験、理論と並ぶ第三の科学であり、21世紀の計算科学は実験理論と並ぶ第三の科学であり 21世紀の予測の科学の基盤をつくる
今、求められているのは個々の複雑な現象を定量的に解明
し、相互作用を理解しつつ、部分を組み合わせて持続可能なシステムとして全体を創り上げること計算科学は理論、実験とは異なるコンピュ
計算科学は理論
実験とは異なるコンピュータによる数値実タによる数値実験という新しい研究手法を実現し、新しい概念を提出し、科学にブレークスルーをもたらすものとして期待されている

計算科学で何ができるのか？
再現： すでにわかっている事象を再構築して理解（地震、津波などの自然災害）
最適化： すでにわかっているシナリオを最適化（工学的プロセスや産業プロセス）
予測： 未来または未知の状況を予測（地球環境、物質設計、新現象の発見）
未来にわれわれが強い関心を示すのは、人間に予測能力
未来にわれわれが強い関心を示すのは人間に予測能力がもともと欠けているところにその理由があるのではないか計算科学の拡大
ナノテクノロジー
ライフサイエンス
素粒子・宇宙物理
素粒
宇宙物
地球・環境
原子力
ものづくり
防災・気象
宇宙・航空
…
New Science近代科学の発展は自然現象を数学で表すことから始まったデカルト、パスカル、フェルマー、ニュートン、ライプニッツ
微分積分学
偏微分方程式
拡散方程 、波動方程 、非線 現象
拡散方程式、波動方程式、非線型現象

基本的な法則の認識に果たした数学
基本的な法
数学
数学の役割
割
は大きい

複雑さを科学し、法則を見出す計算科学
複雑さを科学し 法則を見出す計算科学
複雑さを計算する多様性科学は、非線形工学をベースとした科学であり、科学技術の領域を広げる上で重要計算科学はランダムな振る舞いやカオス的な振る舞いの裏にも数値計算で表せる法則があり、解析不可能と思われて算いた領域にも科学的にアプローチできる可能性を示唆
心理学や社会科学、経済学など実験や論証のしにくい領域にも数値実験による分析、切り口を提供

コンピュータはわれわれに欠けている能力を補ってくれる
補 てくれる
コンピュータは数学の脆弱性を補う（4色問題）
コンピュータは数学の脆弱性を補う
ピ
タは数学 脆弱性を補う（4色問題）
脆弱性を補うコンピュータは測定不能、あるいは実現不能な境界領域の場のコンピ
タは測定不能 あるいは実現不能な境界領域の場の解析を行う（宇宙や深海、人体といった領域）
解析を行う
コンピュータは未来を予測する(気象予報、地球温暖化）
コンピュータは未来を予測する
コンピュータはコンピュータはランダム、カオス的振る舞いの裏にある法則を見出す（複雑さを計算する多様性科学を確立）
出す（複雑さを計算する多様性科学を確
複雑さを計算する多様性科学を確
複雑さを計算する多様性科学を確立））

理論、実験からでなく数値実験から新概念形成

将棋ソフト Bonanza
チェスでは1996年にIBMのDeep BlueがGarry
Garry Kasparovに勝
Kasparov
利して以来、次第に人間がコンピュータに勝つのは難しくなっ
ている
将棋は？
B
Bonanza(2005年理論物理学者保木邦仁さんが開発、保木さ(2005年理論物理学者保木邦仁さんが開発 保木さんは将棋についてはほとんど知らないという）
2007年3月21日渡辺竜王と対戦、結果は112手で渡辺竜王の勝ちとなったが、渡辺竜王は、「人間では発想できない良手を指した意外な強さ」を指摘

人類は大型コンピュータを駆使する数値実験によって複雑な自然現象や社会現象を認験験によって複雑な複雑な自然現象や社会現象を認
複雑な自然現象や社会現象を認識・予測する新しい科学的アプローチを手に入れたといえる
今こそ、計算科学の振興と人材育成が重要

国家プロジェクトとしての国家プ ジ クトとしての次世代スーパーコンピュータ
次世代ス
パ コンピュ タ
開発の目的

科学技術のブレークスルーの実現
計算科学の革新と人材育成
計算科学 革新 人材育成

グランドチャレンジ
高い目標を掲げ、妥協のないプロジェクト実施す高標を掲げ 妥協 な プ ジ
ト実施すべき
明確な科学技術上の目標設定
確 科学 術定原点に立ち戻ったモデル化とアルゴリズムを
ソフトウエアもスクラッチから創ることを覚悟

計算科学の革新は、妥協のない努力の積み重ね
計算科学の革新は 妥協のない努力の積み重ねと分野融合の促進ではじめて実現しうる次世代スーパーコンピュータへの期待
次世代スパコンが、顕微鏡の世界ではつまらない
次世代ス
ンが、顕微鏡の世界ではつまらない
見えないものが大切、次世代スパコンでしか到達できない
世界 重要
世界が重要

コンピュータが発達したおかげで可能になる科学をタ 発達 たお げ 可能になる科学を
encourageすべき
encourage
すべき
数学、非線形科学、数学、非線形科学、カオス的振る舞いの裏にある法則
振 舞
裏則

科学の発展は不連続、ブレークスルーは現在の延長
科学 発展 不連続、
現在 延長
にはない
質的に新しい可能性を誘起する研究システム、人材育成
新材育システムと環境が必要次世代スーパーコンピュータは超並列計算機であること
計算科学は極めて学際的であること

コンピュータの発展
ンピュ タの発展

並列計算機
並列計算機

Cray-1
Cray地球
地球シミュレータ

0.16 GFLOPS
45TFLOPS
5,120CPUs
Blue Gene/L
478TFLOPS
212,992CPUs
T2Kオープンスパコン東大
T2K
オープンスパコン東大
140TFLOPS
15232CPUs
15,232CPUs
IBM Roadrunner 1PFLOPS
12 960 IBM PowerXCell8i CPUs
12,960and 6,480 AMD Opteron dualdual-coreprocessors
Bl e WatersBlue
2PFLOPS
次世代スーパーコンピュータ
10PFLOPS
Massively Parallel

コンピュータの発展

超並列計算機コンピュータ利用環境の健全な配備
ン
タ利用環境の健全な配備
重層的配備の重要性
10Petaスーパーコンピュータ
10Petaス
パ コンピュ タ
T2K…
研究室のPCクラスター
…
•
•
•
•

最高速システムとともに複数の中規模システムを配備
単 分野集中ではなく 計算科学の多様な分野を支える
単一分野集中ではなく、計算科学の多様な分野を支える
重点分野は科学技術の発展とともに変遷
今日の発展途上分野から明日の重点分野の発展を促す

計算科学全体の持続的かつ厚みのある発展計算科学は学際的Id i C
Identity
Crisis
ii
数理科学

情報科学
計算機科学

計算科学

科学//工学科学

関係 双方向、計算科学 発展 それぞれ関係は双方向、計算科学の発展がそれぞれの分野の変革を促す

Scientific Computing = SMASHDavid Levermore (Univ. of Maryland)

ScienceModeling
Algorithm
SoftwareHardware• これだけ幅広い分野を扱わなければならない• 分野間の協力の重要性• 超並列計算機を使いこなさねばならない

計算科学全体像
素粒子

大気 海洋 固体地学
大気・海洋
金融工学系

物性系

ScienceSi(対象領域）

第一原理

宇宙

構造
系

流体系

データマイニング
画像処理

化学系

分子軌道法

分子動力学

有限要素法

ゲノム情報系•ポアソン方程式•ラプラス方程式•ナビアストーク方程式
ビ•ブラックショールズ方程式•シュレディンガー方程式•マクスウェル方程式•ニュートン方程式•

モンテカルロ法

分野によらず共通

Modeling
差分法

スペクトル法
ペク
法

数値解析：誤差解析、積分、ニュートン法、
常微分方程式、連立一次方程式、固有値、最小二乗法、乱数、FFT,偏微分方程式
最法、 数、 ,偏微分 程

線形計画法

データ構造とアルゴリズム
木、グラフ、ネットワーク

分野によらず共通

Algorithms
可視化プログラミング入門：Fortran, C, C++, JAVA、
シェル、エディタ、UNIX上でのプログラミング

並列プログラミング：OpenMP,
並列プ
グラミング OpenMP, MPI, 集団通信アル
集団通信アルゴリズム
リズム
並列計算機アーキテクチャ：ベクトル並列計算機、共有メモリ
並列計算機、分散メモリ並列計算機、インターコネクション

計算機システム：データ表現、機械語、パイプライン、記憶階層、仮想記憶、性能評価、ファイルシステム、ネットワーク、オペレーティングシステム

Software & Hardware2わたしの専門分野
量子化学 分子 理論
量子化学－分子の理論

ScienceModeling
Algorithm
SoftwareHardware物質科学:Multi
物質科学:Multi--Scale Hierarchical Approach
El tElectrons

At
Atoms

原子分子

1Å

M l l
Molecules
ナノ・材料・生命N
Nanoparticles
ti l
D iDevices
環境・エネルギー
健康・安全

1nm

Femto Picoseconds
Femto-Picoseconds

1m

1μm

Pico Nano Microseconds
Pico-Nano-Microseconds

Seconds Minutes
Seconds-Minutes

Q i kTi ý Ç²TIFFÅiLZWÅj êLí£ÉvÉçÉOÉâÉÄ
Ç™Ç±ÇÃÉ ÉNÉ`ÉÉÇ¾å©ÇÈÇžÇ½Ç ÇÕïKó Ç Ç ÅB

分子設計・反応設計
分子設計
反応設計
量子化学

超分子設計・生物化学
分子動力学

元素戦略・グリーン
元素戦略
グリ
エネルギー・医療連続体モデル原子分子の基礎方程式
N個の原子核とn個の電子から成る系のSchrödinger方程式

HΨ = EΨnZα Z β
Zα
∇α2
∇ i2
1
H = −∑−∑−∑+∑ +∑2 α ,i rαi i > j rij α , β Rαββ
α 2M
i
N

Ψ ≡ Ψ (r1 , r2 , L , rn ; R1 , R2 ,L , RN )2階の微分方程式を解析的展開法を利用して、行列式の固有値問題という代数の問題に帰着させて近似的に解く。波動関数、エネルギーいう代数の問題に帰着させて近似的に解く
は電子の軌道関数の汎関数Ψ ≡ Ψ ({ϕi }),E ≡ E ({ϕi })軌道関数も原子軌道で展開

ϕ = ∑χ C
m

i

p

p

pi

分子・分子集合体の計算科学
素粒子

大気 海洋 固体地学
大気・海洋
金融工学系

物性系

ScienceSi(対象領域）

宇宙

構造
系

流体系

データマイニング
画像処理

化学系

ゲノム情報系•ポアソン方程式•ラプラス方程式•ナビアストーク方程式•ブラックショールズ方程式•シュレディンガー方程式
シュレディンガ 方程式•マクスウェル方程式•ニュートン方程式
•

第一原理

分子軌道法

分子動力学

有限要素法

モンテカルロ法

Modeling
差分法

スペクトル法
ペク
法

数値解析：誤差解析、積分、ニュートン法、
常微分方程式、連立一次方程式、固有値、最小二乗法、乱数、FFT,偏微分方程式
最法、 数、 ,偏微分 程

線形計画法

データ構造とアルゴリズム
木、グラフ、ネットワーク

Algorithms
可視化プログラミング入門：Fortran, C, C++, JAVA、
シェル、エディタ、UNIX上でのプログラミング

並列プログラミング：OpenMP,
並列プ
グラミング OpenMP, MPI, 集団通信アル
集団通信アルゴリズム
リズム
並列計算機アーキテクチャ：ベクトル並列計算機、共有メモリ
並列計算機、分散メモリ並列計算機、インターコネクション

計算機システム：データ表現、機械語、パイプライン、記憶階層、仮想記憶、性能評価、ファイルシステム、ネットワーク、オペレーティングシステム

Software & Hardware

3

分子計算の悩み
分子計算 悩み
系の大きさ(N)依存性が極めて大きい
計算時間はN3.0で増加
増

200

150

Ｔ ｉｍ ｅ

計
算
時
間

O(N
( 3)
100

50

O(N)
0
0

1

2

3

4

5

6

7

ＳｙｓｔｅｍＳｉｚｅ (N )系の大きさ、N系の大きさ、
N

N依存性を下げる理論(Linear Scaling)が求められている！

8

9

10

ネックはCoulomb
ネックはCoulomb積分の計算
積分の計算
Coulomb積分1(ab cd ) = ∫∫ χ a (r1 ) χ b (r1 ) χ c (r2 ) χ d (r2 )dr1dr2
r12
通常は電子密度をガウス型基底関数で展開し、解析的解析的に求積(高速多重極展開法(FMM)やRI法 Cholesky分解法との併用）(高速多重極展開法(FMM)やRI法、Cholesky分解法との併用）
基底関数の数をNとするとCoulomb積分の数はN4で増加
Nが大きくなると、あっという間に積分の数は莫大になる

大規模系には不向きなアルゴリズム

Coulombポテンシャルを数値的に求める
Coulomb
ポテンシャルを数値的に求める
CoulombポテンシャルV(r)は

1
2 ∞ ∞ −t 2 ( r1 − r2 ) 2
V (r ) = ∫ρ (r2 )dr2 =eρ (r2 )dr2 dt∫−∞ r
0 ∫− ∞π12∞(1) ポアソン方程式を解くことでV(r)を数値的に求める(2) 積分を離散問題に近似してV(r)を数値的に求める
CoulombポテンシャルV(r)が得られればCoulomb積分は

E J = ∫ ρ (r )V (r )dr = ∫∫ρ (r1 ) ρ (r2 )r12

dr1dr2分子系のCoulomb
分子系のCoulombポテンシャルの特徴
ポテンシャルの特徴•原子核上では鋭くスパイク状に原子核上では鋭くスパイク状に立っている•Coulomb力は長距離力であり、原Coulomb力は長距離力であり、原子核から遠く離れたところでも減衰せずに残っている

性格の異なる2つの領域をどうやどうやってうまく表現するか？
うまく表現するか計算科学というより、Scienceの問題

ClF3

Gaussian & Finite
Finite--Element Coulomb (GFC)法(GFC)法
ポアソン方程式を解いてV
ポアソン方程式を解いてV(r)(r)を数値的に求めるを数値的に求める
CoulombポテンシャルをGauss型と有限要素の混合基底を
ャ を
有限要素 混合基底を用いて展開する

V (r ) = ∑ ciFEξ iFE (r ) + ∑ ciGaussξ iGauss (r )i

Coulombポテンシャルはポアソン方程式を解いて得られる
得∇ V ( r ) = − 4πρ ( r )2Linear Scalinggi

3次元ダイヤモンド
CPU
時間

O(N2.9)10075
50

962 原子 (C650H312)
10,660 基底関数

25

O(N1.2)基底関数の数スペクトル・エレメント法
積分を離散問題に近似してV積分を離散問題に近似してV(r)((r)を数値的に求める)を数値的に求める)を数値的に求めるNρ (r ) = ∑ d lmnTl ( x)Tm ( y )Tn ( z )電子密度をChebyshev 多項式
で展開

Nt
1
−t 2p ( r1 −r2 ) 2= ∑ wper12
pCoulomb演算子の離散化

lmn

Nt

Nx

vuvw = ∑ w p ∑ F

xp
ul

p

1

zp
wn

F

l

= ∫ Tn ( z )eNyNz∑F ∑F dypvmm−t 2p ( z w − z ) 2

zp
wn

lmn

n

dz

−1

高速多重極展開法(FMM)
Chebyshev 多項式を利用した求積

境界値問題、大次元連立１次方程式が不用
並列計算機に適したアルゴリズム

スペクトル・エレメント法
BLYP/SVP density
Cell = 0.5 bohr
Nx < 32

1D アルケン3D ダイヤモンド

Low scaling:alkanes ~ O(N1.01)
diamond ~ O(N0.89)

Linear Scaling
10PFLOPS, 1万原子系のDynamicsが可能
原 系
が可能

コンピュータの使い方以前の問題として、
タ 使 方以前 問題として、
Scienceや数学
Scienceや数学をしっかり教育する必要がある、をしっかり教育する必要がある、
これは大学の仕事
れ 大学 仕事
革新は「知」から

波動関数理論のための人工知能
若い人のフレッシュなアイデア
若コンピュータに式を導出させ、並列プログラムを作成
させよう
さ
よう
• 与えられた任意の波動関数法の式導出
与えられた任意 波動関数法 式導出と高性能並列プログラム生成を完全自動化する• ハードウェアの高速化・ソフトウェア
技術の進歩– 算術演算– より高度な論理演算・人工知能

結合クラスター法
結合クラタ 法
Coupled Cluster (CCCC))法
量子化学計算でもっとも高精度で系統的な多体理論
CCD CCSD
CCD,
CCSD, CCSDT
CCSDT, CCSDTQCCSDTQ, …
Ψ = exp(T )Φ 0
T12
T22
+ T3 + T1T2 + T4 ++L
T = T1 + T2 + L = T1 + T2 +2!
2!

1950年代に核物理の分野でF. CoesterとH. Kümmel によって提唱され、60年代にJ. ČížekとJ. Paldusによって量子化学分野に導入されて大きく発展。最近、核物理の分野に逆輸入なぜ自動化するのか？
Coupled-Cluster
CoupledCluster Singles & Doubles で既にこれだけ複雑
[

]

[

]

[

]

E = Φ 0 e −T1 −T2 He T1 +T2 C Φ 0 ; 0 = Φ ia e −T1 −T2 He T1 +T2 C Φ 0 ; 0 = Φ ijab e −T1 −T2 He T1 +T2 C Φ 0
E = [ + 1.0 ] * Sum ( h1 p2 ) * f ( h1 p2 ) * t ( p2 h1 )+[ + 0.25 ] * Sum ( h3 h4 p1 p2 ) * t ( p1 p2 h3 h4 ) * v ( h3 h4 p1 p2 )+[ + 0.5 ] * Sum ( h2 h4 p1 p3 ) * t ( p1 h2 ) * t ( p3h4 ) * v ( h2 h4 p1 p3 )0 = [ + 1.0 ] * f ( p2 h1 )+[ - 1.0 ] * Sum ( h3 ) * f ( h3 h1 ) * t ( p2 h3 )+[ + 1.0 ] * Sum ( p3 ) * f ( p2 p3 ) * t ( p3 h1 )+[ - 1.0 ] * Sum ( h4 p3 ) * t ( p3 h4 ) * v ( h4 p2 h1 p3 )+[ + 1.0 ] * Sum ( h3 p4 ) * f ( h3 p4 ) * t ( p4 p2 h3 h1 )+[ + 0.5 ] * Sum ( h4 h5 p3 ) * t ( p3 p2 h4 h5 ) * v ( h4 h5 h1 p3 )+[ + 0.5 ] * Sum ( h5 p3 p4 ) * t ( p3 p4 h5 h1 ) * v ( h5 p2 p3 p4 )+[ - 1.0 ] * Sum ( h4 p3 ) * t ( p3 h1 ) * t ( p2 h4 ) * f ( h4 p3 )+[ - 1.0 ] * Sum ( h3 h5 p4 ) * t ( p2 h3 ) * t ( p4 h5 ) * v ( h3 h5 h1 p4 )+[ - 1.0 ] * Sum ( h5 p3 p4 ) * t ( p3 h1 ) * t ( p4 h5 ) * v ( h5 p2 p3 p4 )+[ - 0.5 ] * Sum ( h4 h5 p3 p6 ) * t ( p3 p2 h4 h5 ) * t ( p6 h1 ) * v ( h4 h5 p3 p6 )+[ - 0.5 ] * Sum ( h5 h6 p3 p4 ) * t ( p3 p4 h5 h1 ) * t ( p2 h6 ) * v ( h5 h6 p3 p4 )+[ + 1.0 ] * Sum ( h4 h6 p3 p5 ) * t ( p3 p2 h4 h1 ) * t ( p5 h6 ) * v ( h4 h6 p3 p5 )+[ - 1.0
1 0 ] * Sum ( h4 h6 p3 p5 ) * t ( p3 h1 ) * t ( p2 h4 ) * t ( p5 h6 ) * v ( h4 h6 p3 p5 )0 = [ + 1.0 ] * v ( p3 p4 h1 h2 ) + [ - 1.0 + 1.0 * P( p3 p4 h1 h2 => p4 p3 h1 h2 ) ] * Sum ( h5 ) * t ( p3 h5 ) * v ( h5 p4 h1 h2 )+[ + 1.0 - 1.0 * P( p3 p4 h2 h1 => p3 p4 h1 h2 ) ] * Sum ( p5 ) * t ( p5 h2 ) * v ( p3 p4 h1 p5 )+[ - 1.0 + 1.0 * P( p3 p4 h1 h2 => p3 p4 h2 h1 ) ] * Sum ( h5 ) * f ( h5 h1 ) * t ( p3p4 h5 h2 )+[ - 1.0 + 1.0 * P( p4 p3 h1 h2 => p3 p4 h1 h2 ) ] * Sum ( p5 ) * f ( p4 p5 ) * t ( p5 p3 h1 h2 ) +[ + 0.5 ] * Sum ( h5 h6 ) * t ( p3 p4 h5 h6 ) * v ( h5 h6 h1 h2 )+[ + 1.0 - 1.0 * P( p3 p4 h2 h1 => p4 p3 h2 h1 ) - 1.0 * P( p3 p4 h2 h1 => p3 p4 h1 h2 ) + 1.0 * P( p3 p4 h2 h1 => p4 p3 h1 h2 ) ] * Sum ( h6 p5 ) * t ( p5 p3 h6 h2 ) * v ( h6 p4
h1 pp5 )+[ + 0.5 ] * Sum ( p5 p6 ) * t ( p5 p6 h1 h2 ) * v ( p3 p4 p5 p6 ) +[ + 1.0 ] * Sum ( h5 h6 ) * t ( p3 h5 ) * t ( p4 h6 ) * v ( h5 h6 h1 h2 )+[ - 1.0 + 1.0 * P( p3 p4 h2 h1 => p4 p3 h2 h1 ) + 1.0 * P( p3 p4 h2 h1 => p3 p4 h1 h2 ) - 1.0 * P( p3 p4 h2 h1 => p4 p3 h1 h2 ) ] * Sum ( h6 p5 ) * t ( p5 h2 ) * t ( p3 h6 ) * v (h6 p4 h1 p5 )+[ + 1.0 ] * Sum ( p5 p6 ) * t ( p5 h1 ) * t ( p6 h2 ) * v ( p3 p4 p5 p6 ) +[ - 1.0 + 1.0 * P( p3 p4 h2 h1 => p3 p4 h1 h2 ) ] * Sum ( h5 p6 ) * f ( h5 p6 ) * t ( p3 p4 h5 h2 ) * t ( p6h1 )+[ + 1.0 - 1.0 * P( p3 p4 h1 h2 => p4 p3 h1 h2 ) ] * Sum ( h5 p6 ) * f ( h5 p6 ) * t ( p6 p3 h1 h2 ) * t ( p4 h5 )+[ + 0.5 - 0.5 * P( p3 p4 h2 h1 => p3 p4 h1 h2 ) ] * Sum ( h5 h6 p7 ) * t ( p3 p4 h5 h6 ) * t ( p7 h2 ) * v ( h5 h6 h1 p7 )+[ - 1.0
1 0 + 11.0
0 * P( p33 p44 h2 h1 =>> p44 p33 h2 h1 ) + 1.0
1 0 * P( p33 p44 h2 h1 =>> p33 p44 h1 h2 ) - 1.0
1 0 * P( p33 p44 h2 h1 =>> p44 p33 h1 h2 ) ] * SumS( h6 h7 p55 ) * t ( p55 p33 h6 h2 ) * t ( p44
h7 ) * v ( h6 h7 h1 p5 )+[ - 1.0 + 1.0 * P( p3 p4 h2 h1 => p3 p4 h1 h2 ) ] * Sum ( h5 h7 p6 ) * t ( p3 p4 h5 h2 ) * t ( p6 h7 ) * v ( h5 h7 h1 p6 )+[ - 1.0 + 1.0 * P( p3 p4 h2 h1 => p4 p3 h2 h1 ) + 1.0 * P( p3 p4 h2 h1 => p3 p4 h1 h2 ) - 1.0 * P( p3 p4 h2 h1 => p4 p3 h1 h2 ) ] * Sum ( h6 p5 p7 ) * t ( p5 p3 h6 h2 ) * t ( p7
h1 ) * v ( h6 p4 p5 p7 )+[ - 0.5 + 0.5 * P( p3 p4 h1 h2 => p4 p3 h1 h2 ) ] * Sum ( h7 p5 p6 ) * t ( p5 p6 h1 h2 ) * t ( p3 h7 ) * v ( h7 p4 p5 p6 )+[ + 1.0 - 1.0 * P( p3 p4 h1 h2 => p4 p3 h1 h2 ) ] * Sum ( h7 p5 p6 ) * t ( p5 p3 h1 h2 ) * t ( p6 h7 ) * v ( h7 p4 p5 p6 )+[[ + 0.5 - 0.5 * P( p4 p3 h1 h2 =>> p3 p4 h1 h2 ) ] * Sum ( h7 h8 p5 p6 ) * t ( p5 p4 h1 h2 ) * t ( p6 p3 h7 h8 ) * v ( h7 h8 p5 p6 )+[ + 0.25 ] * Sum ( h7 h8 p5 p6 ) * t ( p5 p6 h1 h2 ) * t ( p3 p4 h7 h8 ) * v ( h7 h8 p5 p6 )+[ - 0.5 + 0.5 * P( p3 p4 h1 h2 => p3 p4 h2 h1 ) ] * Sum ( h5 h8 p6 p7 ) * t ( p3 p4 h5 h1 ) * t ( p6 p7 h8 h2 ) * v ( h5 h8 p6 p7 )+[ - 1.0 + 1.0 * P( p4 p3 h1 h2 => p3 p4 h1 h2 ) ] * Sum ( h6 h8 p5 p7 ) * t ( p5 p4 h6 h1 ) * t ( p7 p3 h8 h2 ) * v ( h6 h8 p5 p7 )+[ + 1.0 - 1.0 * P( p3 p4 h2 h1 => p3 p4 h1 h2 ) ] * Sum ( h6 h7 p5 ) * t ( p5 h2 ) * t ( p3 h6 ) * t ( p4 h7 ) * v ( h6 h7 h1 p5 )+[ - 1.0 + 1.0 * P( p3 p4 h1 h2 => p4 p3 h1 h2 ) ] * Sum ( h7 p5 p6 ) * t ( p5 h1 ) * t ( p6 h2 ) * t ( p3 h7 ) * v ( h7 p4 p5 p6 )+[ + 0.5 ] * Sum ( h7 h8 p5 p6 ) * t ( p5 h1 ) * t ( p6 h2 ) * t ( p3 p4 h7 h8 ) * v ( h7 h8 p5 p6 )+[[ + 1.0 - 1.0 * P(( pp4 p3 h1 h2 =>> p3 p4
p h1 h2 ) - 1.0 * P(( pp4 p3 h1 h2 =>> p4
p p3 h2 h1 ) + 1.0 * P(( pp4 p3 h1 h2 =>> p3 p4
p h2 h1 ) ]* Sum ( h6 h8 p5 p7 ) * t ( p5 h1 ) * t ( p4 h6 ) * t ( p7 p3 h8 h2 ) * v ( h6 h8 p5 p7 )+[ + 1.0 - 1.0 * P( p3 p4 h1 h2 => p3 p4 h2 h1 ) ] * Sum ( h7 h8 p5 p6 ) * t ( p5 h1 ) * t ( p6 h7 ) * t ( p3 p4 h8 h2 ) * v ( h7 h8 p5 p6 )+[ + 0.5 ] * Sum ( h5 h6 p7 p8 ) * t ( p3 h5 ) * t ( p4 h6 ) * t ( p7 p8 h1 h2 ) * v ( h5 h6 p7 p8 )+[ - 1.0 + 1.0 * P( p4 p3 h1 h2 => p3 p4 h1 h2 ) ] * Sum ( h5 h7 p6 p8 ) * t ( p4 h5 ) * t ( p6 h7 ) * t ( p8 p3 h1 h2 ) * v ( h5 h7 p6 p8 )+[ + 1.0 ] * Sum ( h7 h8 p5 p6 ) * t ( p5 h1 ) * t ( p6 h2 ) * t ( p3 h7 ) * t ( p4 h8 ) * v ( h7 h8 p5 p6 )

人工知能
人 知能
(平田

聡博士）

波動関数法は系統的:
CCSD(1.3万行), CCSDT(3.4万 行), CCSDTQ(8万行), …
– 波動関数法の大多数は第2量子化によって定義される– 導出される方程式は、｢テンソル表現｣をとる– プログラムは、行列の足し算・掛け算の組合わせ– 従って、波動関数法の式導出およびプログラム作成は
抽象化・自動化できるコンピュータの算術演算以外の側面、より高度な論理演算や人工知能をもっと積極的に活用すべき
若い人のフレッシュなアイデアを生か
若い人のフレ シ なアイデアを生かすシステムを！

学際計算科学・工学人材
学際計算科学・
工学人材育成育成プログラムプログラム
東京大学の試み

次世代スーパーコンピュータを駆使した大規模シミュレーションを実施し、新しい科学を開拓する人材の育成
新しい科学を開拓する人材 育成

学際計算科学・工学人材育成委員会
育平尾公彦
東京大学情報基盤センター
米澤明憲センター長
石川 裕教授、中島研吾教授、片桐孝洋准教授
常行真司教授（理学系）、奥田洋司教授（工学系）
中谷明弘准教授（新領域）、須田礼仁准教授（情報理工）加藤千幸教授（生研）
部局横断的な学際領域の教育をどう実現するのか？

一般論－どういう人材を育てるのか？
般論 どういう人材を育てるのか？
アプリプログラムを上手に使える人材
アプリプログラムを上手に使える人材
実験/理論と計算シミュレーションの両方を使いこなせる

アプリケーションソフトを研究開発できる人材
新しい計算モデルを創造し実現することができる人材モデル
アルゴリズム、並列プログラミングを一体で扱えなければブレークス
ゴ ズ
並列プ グ
グを 体 扱えなけ ばブ
ルーはない

開発ツールを作れる人材
並列計算機システムを研究開発できる人材
並列計算機のアーキテクチャ、OS、ミドルウェア、プログラミング環境を研究する人材、このままではスーパーコンピュータシステムを開発できる人材が枯渇してしまう

東京大学はどういう人材を育てるのか？
グランドチャレンジを自ら作り上げる人
デル、アル リ、ソフトウ アを自ら開発できる人
モデル、アルゴリズム、ソフトウエアを自ら開発できる人
グランドチャレンジに果敢に挑戦する人
システム・アーキテクチャを共同開発できる人システム ア キテクチャを共同開発できる人

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

計算科学教育
より深い理解専門とする科学/工学については、よりファンダメンタル
ファンダメンタルなことを、より深く、きっちりと教える、深い理解には汎用性
解汎用性がある汎

ふくらみをもった幅広い視野
専門の科学/工学を深く理解するとともに、応用数学、計算機科学を 体系的に理解させる
科学を、体系的に理解させる

全学体制で計算科学の人材育成プログラムを実施
全学体制で計算科学
人材育成プ グラ を実施

学際計算科学・工学人材育成プログラム• 情報科学は学際的であり、全学体制による環境整備が重要– 教育＋その後の研究支援– 単に数年の教育だけでなく，HPC技術を駆使した研究を生涯支援するための環境整備（＝開発基盤，協力体制）
支援
境整 （
協 体 ）
が必要
• 計算科学と計算機科学、数理科学の融合，スパイラル効果に計算科学と計算機科学 数理科学の融合 スパイラル効果による発展
工学系研究科
理学系研究科

学際計算科学・工学
人材育成プログラム
新領域創成科学研究科

情報理工学系研究科

気候システム研究センター
研究

生産技術研究所 情報基盤センター

49

これまでの東京大学の計算科学教育
理学研究科地球惑星科学専攻の例•

一般教育（1, 2年）における情報科学教育•

地球惑星物理学演習（3年）
計算機リテラシー、FORTRAN、基本的な数値解析
計算機漬け

•

地球物理数値解析（4年）
偏微分方程式の数値解法•

並列計算プログラミング
並列計算プログラミング、先端計算演習（大学院）MPIを使って差分法、有限要素法などのアプリの並列化技術 先駆的化技術、先駆的50これまでの経験からの教訓
れまで 経験から 教訓• 並列計算プログラムは決して難しくない
列計算
ラ
決
難 くな
• 重要なのは背景にある科学/工学、基本となるアルゴリズ
ム Science, Modeling, Algorithmである－その上でのプログラミング• 計算機に使われてはならない• 良い並列プログラムはよいシリアルプログラム（serial
program，単独CPUのためのプログラム）から生まれる• もっとも重要なのは「並列プログラミング」に先立つ「実用的なアプリケーションのプログラミング」の習得• プログラミング能力（SMASH）をつけるために，徹底してプ グラミ グ能力（）を けるために 徹底して
実アプリケーションコードのソースを「読む」能力をつける
51

並列プログラミングへの道のり① 計算機リテラシー
計算機リテラシ
プログラミング言語② 科学技術計算基礎論・演習（数値解析・プログラミングの基礎）
ここに厚い壁③ アプリケーションの実用的プログラ
ミング（有限要素法等）

Scienceg
Modeling
Algorithm
SoftwareHardware④ 並列プログラミング①～④の各レベル（縦糸）において「SMASH」（横糸）③ 最も重要，③が最も重要，かつ教育困難
教育困難
現状はアルゴリズム中心

e-Learning
L
Learningとi とCertification
C tifi ti
e-Learning– 様々なバックグラウンドの受講者の多様なニーズに柔様 なバ クグラウ ド 受講者 多様な
ズに柔軟に対応– 受講者の負担を極力増やさない
コマ数をなるべく増やさない

Certification– 単位、認定証（certification）、Double Major
第三者による評価，検定53東大人材育成体制

遠隔講義・単位互換
単位

筑波大
京大
講師派遣
講師派

理学系研究科

工学系研究科

生産技術研究所

学際計算科学・工学人材養成委員会

情報基盤センター
教員＋特任教員群
教員
特任教員群• データ構造とアルゴリズム• 計算機システム• 並列計算機アーキテクチャ• 並列プログラミング入門

情報理工学系研究科

新領域創成科学研究科

気候システム研究センター

教育責任部局： 工学系、情報理工系
認定証： 受講者所属の研究科から
54

カリキュラム案（連続体力学）
学際計算科学・工学人材育成プログラム
学際計算科学
工学人材育成プログラム
計算機科学向け←
共通→計算科学向け

各学科・専攻全学ゼミ：
プログラミング
入門

情報

駒
場

全学ゼミ：大規模シミュレーション
入門■：A型以上，■：共通
1

本
郷

大
学
院
・
修
士

計算機
リテラシー
リテラシ
科学技術計算基礎論・同演習

2
2

数値解析

3

偏微分方程式
数値解法

4

並列計算
プログラミング

計算機科学向け←

有限要素法
境界要素法
等

並列
プログラミング I
片桐（工）科学技術計算プログラミング
中島（情報）

3
並列
プログラミング II
中島（理）

3
4

3

4

アプリケーション
実用プログラミング

並列有限要素法 並列境界要素法
プログラミング
プログラミング
4講習会，特別講義
講習会
特別講義 等共通
並列
プログラミング
短期集中

4→計算科学向け

T2K利用

チューニング入門

HPC-MW

RSS21
アプリケーション

科学技術計算基礎論・同演習
短期集中

連立一次方程式
解法

並列可視化
アプリケーション
使用法

各種ライブラリ
LAPACK
55
PETSc等長期的スケジュール：モデル講義•

H20年度冬学期以降開講（赤字は既存，開講決定）– ②• 科学技術計算基礎論（情報理工）① 計算機リテラシー
プログラミング言語– ③，④② 科学技術計算基礎論・演習• 有限要素法プログラミング（工）（数値解析・プログラミングの基礎）• 分子動力学プログラミング（理）ここに厚い壁
• 差分法
差分法プログラミング（工?）ラミ（）③ アプリケーションの実用的プログラ• 境界要素法プログラミング（新領域?）
ミング（有限要素法等）• 基礎的共通講義④ 並列プログラミング– 並列計算プログラミング（連続体）（理）– 科学技術計算プログラミング（有限要素法）（情報理工）– 非数値分野プログラミング（新領域）– ④• 並列計算アーキテクチュア（情報理工）計算（情報）• スパコンプログラミング（工）56計算科学領域の確立
計算科学は学際領域であり、発展の激しい分野
異分野融合、学際領域の開拓とともに、新しいディシ
プリンの構築 体系化が必要
プリンの構築、体系化が必要
計算科学のディシプリンの確立、マッピングあるいは学術体系化は、学術体系化は、この分野の研究や教育に参加する若分野 研究や教育に参加する若者にとっては道案内役として重大な役割を負う
57

人材養成面でAll
人材養成面でAll Japan体制作りに協力
Japan体制作りに協力
z 全国の教育機関と連携し、人材養成ネットワークを作り
全国 教育機関と連携し 人材養成ネ ト
クを作りz 遠隔講義・演習を活用し
z 単位・資格認定の相互乗り入れを可能にしz 演習用マシンの相互乗り入れを可能にしz 教育人材の交流を図り

大学と連携し、次世代スパコン施設にも人材養成の機能を！

啓発活動
z 優れた潜在的ユーザー、分野の掘り起こし
z コンピュータには見向きもしなかった人々への教育・ンピ
タには見向きもしなか た人々 の教育
啓発システムをz 次世代スーパーコンピュータで得られる研究成果を小中学生を含む子供たちに発信できる仕組みを
z 国際共同研究の推進と人材養成をScienceのしっかりした基盤が重要
Scienceのしっかりした基盤が重要
21世紀は21
世紀は予測の科学の時代、予測の科学の時代、計算科学はその計算科学はその基盤
基盤
数値実験による新しい概念形成こそイノベーション
異分野融合と人材育成が重要
若い人のフレッシュなアイデアをいかに生かすか