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