計算科学のための HPC 技術 2
ケイサンカガクノタメノエッチピーシーギジュツニ
- 著者:
- 下司雅章 / 南一生 / 高橋大介(ゲシ マサアキ / ミナミ カズキ / タカハシ ダイスケ)
- 注目:
- 総合 789 位
- 出版社:
- 大阪大学出版会
- 出版日:
- 2017年04月03日頃
- 一覧:
- 2017 年に出た技術書
- ISBN:
- 9784872595871
- 在庫:
- 在庫あり
なぜ注目されているか
書籍紹介
本書は姉妹本である『計算科学のための HPC 技術 1』 (大阪大学出版会) と比べて, より実践的な技術を多く含んでいる.日々進歩する計算機の世界の, 特にハイパフォーマンスコンピューティング (High Performance Computing:HPC) において,「京」で培った技術はアプリケーションの高速化技術として長く役立つ要素がいくつもあるに違いなく, 全ての分野の研究者や学生に役立つであろう.
まえがき
執筆者一覧
第 1 章スーパーコンピュータとアプリケーションの性能
1.1 スーパーコンピュータとは?
1.2 高性能アプリケーションとは?
第 2 章アプリケーションの性能最適化
2.1 性能評価方法
2.2 現状認識–ソースコードの調査
2.3 現状認識–測定法
2.4 現状認識–演算・通信カーネルの決定
2.5 問題点の把握–高並列に関する問題点の評価法
2.6 問題点の把握–CPU 単体性能に関する問題点の評価法
2.7 高並列に関する問題パターン別の性能最適化技術
2.8 CPU 単体性能に関する性能最適化
第 3 章アプリケーションの性能最適化の実例
3.1 「京」性能実証のためのアプリケーション
3.2 「京」のシステム概要
3.3 性能評価のための計算機環境
3.4 高並列性能最適化の実例の概要
3.5 RSDFT の性能最適化
3.6 PHASE の性能最適化
3.7 CPU 単体性能最適化の実例の概要
3.8 Seism3D の CPU 単体性能最適化の実例
3.9 FFB の CPU 単体性能最適化
第 4 章大規模系での高速フーリエ変換
4.1 高速 Fourier 変換
4.2 多次元 FFT
4.3 2 次元分割を用いた並列 3 次元 FFT アルゴリズム
4.4 GPU クラスタにおける並列 1 次元 FFT
4.5 まとめ
4.6 練習問題
第 5 章オーダー N 法
5.1 密度汎関数理論
5.2 電子の近視性 (Nearsightedness)
5.3 局在基底法
5.4 オーダー N 法
5.5 超並列化の方法
5.6 オーダー N 法の応用
5.7 数値厳密な低次スケーリング法
5.8 まとめ
第 6 章大規模 MD 並列化の技術
6.1 階層的並列化
6.2 トーラスネットワークの特徴を踏まえた並列化方法
6.3 並列性能を高めるためのデータ構造
6.4 分子動力学計算の概要
6.5 具体的な MPI 並列化事例
6.6 演算の効率化
6.7 まとめ
第 7 章大規模量子化学計算
7.1 量子化学計算の目的と種類
7.2 SCF 計算の構成要素
7.3 post-HF 計算の構成要素
7.4 大規模系に適用するための量子化学計算法
7.5 結びに
第 8 章 OpenAcc による GPU Computing
8.1 はじめに
8.2 OpenACC とは
8.3 OpenACC によるアプリケーションの GPU 化の推奨方法
8.4 ホットスポットの特定
8.5 ループの並列化
8.6 データ転送の最適化
8.7 ループの最適化
8.8 まとめ
第 9 章インテル Xeon Phi プロセッサ向け最適化、並列化概要
9.1 はじめに
9.2 プログラミング言語
9.3 ベクトル化
9.4 キャッシュ
9.5 インテル Xeon Phi プロセッサ (開発コード名 Knights Landing) 概要
9.6 MCDRAM の使用方法
9.7 ベクトル化を妨げる原因と解決方法
9.8 最適化ツールを使ったベクトル化
9.9 マルチスレッド化
9.10 MPI アプリケーション
9.11 まとめ
索引
技書の森解説
『計算科学のための HPC 技術 2』 (下司雅章 編集、南一生、高橋大介ほか 著、大阪大学出版会、2017 年 3 月刊) は、スーパーコンピューターの上で動くアプリケーションの性能を評価し、最適化していく進め方を、「京」での実例や個別の計算手法、GPU と Xeon Phi 向けの最適化まで含めて解説した書籍です。版元はこの本を、姉妹本の『計算科学のための HPC 技術 1』と比べて「より実践的な技術を多く含んでいる」と位置づけ、「全ての分野の研究者や学生に役立つであろう」と紹介しています。手元のアプリケーションのどこが遅いのかを測り、並列性能と CPU 単体性能のどちらの問題かを切り分けてから手を打つ流れを、実例とともに追える構成です。
全 9 章の構成、性能最適化の手順から Xeon Phi 向けの最適化まで
第 1 章「スーパーコンピュータとアプリケーションの性能」で前提をそろえ、第 2 章「アプリケーションの性能最適化」では、性能評価方法に続いてソースコードの調査、測定法、演算 / 通信カーネルの決定という現状認識の節を置き、高並列と CPU 単体性能のそれぞれについて問題点の評価法と性能最適化の節を並べています。第 3 章「アプリケーションの性能最適化の実例」は、「京」のシステム概要と性能評価のための計算機環境を示したうえで、高並列性能最適化の実例の概要に続いて RSDFT と PHASE の性能最適化を、CPU 単体性能最適化の実例の概要に続いて Seism3D と FFB の CPU 単体性能の最適化を取り上げます。
第 4 章から第 7 章は個別の計算手法の章です。第 4 章「大規模系での高速フーリエ変換」は多次元 FFT、2 次元分割を用いた並列 3 次元 FFT アルゴリズム、GPU クラスターにおける並列 1 次元 FFT を扱い、練習問題の節も備えます。第 5 章「オーダー N 法」は密度汎関数理論と電子の近視性から局在基底法、超並列化の方法へ進み、第 6 章「大規模 MD 並列化の技術」はトーラスネットワークの特徴を踏まえた並列化方法や具体的な MPI 並列化事例を、第 7 章「大規模量子化学計算」は SCF 計算と post-HF 計算の構成要素を扱います。最後の 2 章は特定のハードウェア向けで、第 8 章「OpenAcc による GPU Computing」はホットスポットの特定からループの並列化、データ転送の最適化へ、第 9 章「インテル Xeon Phi プロセッサ向け最適化、並列化概要」は Knights Landing の概要と MCDRAM の使用方法、ベクトル化を妨げる原因と解決方法、マルチスレッド化、MPI アプリケーションへと進みます。
並列性能と CPU 単体性能、2 つの問題を分けて測る理由
アプリケーションが遅いとき、原因は大きく 2 つに分かれます。1 つは並列数を増やしても速くならない問題で、通信待ちや負荷の偏り、逐次のまま残った処理が並列化の効果を打ち消します。もう 1 つは 1 コアあたりの実行効率の問題で、ベクトル演算器を使い切れていない、キャッシュから外れたメモリアクセスが多いといった原因で、理論性能の 1 割に届かない例も珍しくありません。どちらの対策が効くかは問題の種類によって違うため、まず演算と通信の時間がどこに集中しているかを測ってから手を入れるのが定石です。計算手法そのものの見直しも大きな手段で、密度汎関数理論による電子状態計算は素朴に解くと 計算量 が原子数の 3 乗で増えますが、遠く離れた電子どうしの影響が小さいことを使えば原子数に比例する手間まで下げられ、これがオーダー N 法の考え方です。GPU や Xeon Phi のように多数のコアを持つプロセッサーでは、ノード間を MPI の プロセス で分け、その中をスレッドやベクトル化で細かく分ける重ね方が性能を左右します。
1 巻との使い分けと、刊行時点のハードウェアを扱う章
1 巻は MPI と OpenMP の基礎、ハイブリッド並列化技法、BLAS と LAPACK の使い方といった基礎の技法を中心とし、版元も「より一般的で基礎的な内容」と位置づけています。並列化の書き方そのものに不慣れなら 1 巻から、すでに動いている並列アプリケーションの性能を詰めたいなら本書から、という順で選べます。第 8 章と第 9 章は 2017 年の刊行時点の GPU と Xeon Phi を対象にしており、MCDRAM のような Knights Landing に固有の機構を扱う節は、その機種を前提にした内容です。なお版元は 2017 年 6 月 7 日付で、本書に印刷上のミスが判明したことと交換の案内を出しています。
「京」のようなスーパーコンピューターの上で自分の分野のアプリケーションを動かし、並列数を増やしても伸びない、1 コアの効率が上がらないといった壁に当たっている研究者や学生にとって、性能評価から最適化までの手順と実在のアプリケーションでの実例、GPU と Xeon Phi 向けの手法を一冊で引ける本書は、手元のコードの改善策を探す手がかりの多い一冊です。
この本に興味がある方におすすめ
関連する本
下司雅章 の他の書籍
関連記事
OS / 低レイヤー本ガイド - コンピューターの仕組みを学ぶ技術書の選び方
OS、コンパイラー、ネットワークなど低レイヤーを学べる技術書の 4 ジャンルと、どこから始めるべきかの指針、賞味期限の見極め方を紹介します。
体系的に学ぶ 安全な Web アプリケーションの作り方 第 2 版は初版と何が違うか - 買い直し判断ガイド
通称「徳丸本」こと体系的に学ぶ 安全な Web アプリケーションの作り方 第 2 版 (2018 年) と初版 (2011 年) の違いを出版社公表の改訂内容から整理。章の削除 / 新設 / 追加点の一覧と、初版所有者が買い直すべきかの判断基準を解説します。
障害対応の夜に思い出す、あの本の 1 ページ
本番障害の緊迫した場面で、過去に読んだ技術書の知識が助けてくれることがあります。「いつか役立つ」知識が「今この瞬間」に変わる読書の価値を考えます。