目次 - NA-INET.jp

iii
目次
第1章
1.1
1.2
1.3
1.4
1.5
数値計算と PC Cluster
何故,大規模計算が必要なのか
移流拡散方程式の近似数値計算
PC Cluster へ至る経緯 . . . . . .
MPI とは? . . . . . . . . . . . .
ネットワークの性能について . .
第2章
2.1
2.2
2.3
2.4
IEEE754 standard と多倍長浮動小数点数
PC の構成 . . . . . . . . . . . . . . . . . . .
IEEE754 倍精度 . . . . . . . . . . . . . . .
多倍長浮動小数点数: GMP と MPFR . . . .
MPFR の性能と現実的な多倍長精度の範囲
.
.
.
.
.
1
1
2
3
5
8
.
.
.
.
13
13
14
16
18
第3章
3.1
3.2
3.3
UNIX でのプログラミング初歩
最初の一歩 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
数値計算プログラミングの基礎 . . . . . . . . . . . . . . . . . . . .
多倍長計算プログラミング . . . . . . . . . . . . . . . . . . . . . . .
21
21
23
25
第4章
4.1
4.2
プログラムの時間計測方法
時間計測について . . . . . . . . . . . . . . . . . . . . . . . . . . . .
並列プログラムの実行速度計測 . . . . . . . . . . . . . . . . . . . .
31
31
32
第5章
5.1
5.2
初歩の BNCpack プログラミング
行列計算 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
数値積分 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
35
35
39
第6章
6.1
6.2
6.3
MPI プログラミングの初歩
MPI の動作原理 . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
プロセス (ランク) 毎の動作 . . . . . . . . . . . . . . . . . . . . . . .
プロセス間での 1 対 1 通信 . . . . . . . . . . . . . . . . . . . . . . .
43
43
45
48
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
iv
多倍長浮動小数点数を用いた MPI プログラム . . . . . . . . . . . .
50
第7章
7.1
7.2
7.3
7.4
7.5
7.6
7.7
MPI の集団通信
Bcast(ブロードキャスト) . .
Gather(ギャザ) . . . . . . . .
Scatter(スキャタ) . . . . . . .
Reduce(レデュース) . . . . .
Allgather(オールギャザ) . . .
Allreduce(オールレデュース)
Alltoall . . . . . . . . . . . .
.
.
.
.
.
.
.
57
57
60
64
67
70
74
77
第8章
8.1
8.2
8.3
8.4
8.5
8.6
8.7
最初の MPIBNCpack プログラミング
数値積分の並列化 . . . . . . . . . . . .
BNCpack プログラムのスケルトン . . .
ベクトルの数値計算 . . . . . . . . . . .
正方行列の数値計算 . . . . . . . . . . .
MPIBNCpack プログラムのスケルトン
ベクトルの数値計算の並列分散化 . . .
正方行列の数値計算の並列分散化 . . .
.
.
.
.
.
.
.
85
85
88
89
94
99
100
107
第9章
9.1
9.2
9.3
行列の積への応用
115
BNCpack による行列積 . . . . . . . . . . . . . . . . . . . . . . . . . 115
行列積の並列分散アルゴリズム . . . . . . . . . . . . . . . . . . . . 117
MPIBNCpack による行列積と時間計測方法 . . . . . . . . . . . . . . 121
第 10 章
10.1
10.2
10.3
10.4
Krylov 部分空間法への応用
CG 法 . . . . . . . . . . . . .
逐次計算プログラム . . . . .
並列プログラム . . . . . . .
最小計算時間の探索 . . . . .
第 11 章
11.1
11.2
11.3
DKA 法の実例
149
DKA 法のアルゴリズム . . . . . . . . . . . . . . . . . . . . . . . . . 149
逐次計算プログラム . . . . . . . . . . . . . . . . . . . . . . . . . . . 151
並列計算プログラム . . . . . . . . . . . . . . . . . . . . . . . . . . . 154
6.4
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
127
127
128
132
139
v
第 12 章 補外法を用いた数値積分への応用
161
12.1 逐次計算プログラム . . . . . . . . . . . . . . . . . . . . . . . . . . . 163
12.2 並列計算プログラム . . . . . . . . . . . . . . . . . . . . . . . . . . . 166
付 録 A LAPACK について
A.1 LAPACK とは? . . . . . . . . . . . . . . . . . . . . .
A.1.1 BLAS . . . . . . . . . . . . . . . . . . . . . . .
A.1.2 LAPACK . . . . . . . . . . . . . . . . . . . . .
A.1.3 LAPACK/CLAPACK のコンパイル . . . . . . .
A.1.4 連立一次方程式を解く . . . . . . . . . . . . .
A.1.5 実正方行列の固有値・固有ベクトルを求める .
A.2 パフォーマンス計測 . . . . . . . . . . . . . . . . . . .
A.3 g77 用のプログラム例 . . . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
173
173
173
174
175
175
177
178
179