OpenMP(Open Multi-Processing)つまり共有メモリ型マルチプロセッサを有するPCのようなマシンで並列処理プログラミングを可能にするAPI(Application Programming Interface)を解説した本である。
当方まだ書店でパラパラと手にとってみただけなのだが、二次元配列の操作のような二重に入れ子になったループを並列処理させることができる等の楽し気なトピックスが色々とあるようで興味深い。
並列処理の有用性について私見を上げるならば、二分木ソートのように1000回の遂次処理が1000個の並列処理に分解できるものや、行列求解のように計算回数が並べた個数の3乗に比例する問題など、必然的に並列処理ありきと不可欠な技術と言える。故に、入門として座右に構え、じっくりと読んで試したくなるものだ。
本書は、プラットフォームや開発環境に依存しない並列プログラミング規格である、OpenMPの解説書です。OpenMPは、さまざまなレベルの並列化に対応するだけでなく、ほかの並列化手法よりも導入への敷居が低いので、並列プログラミングの入門にうってつけです。
本書では、まずOpenMPの概要を解説し、中盤でOpenMPのリファレンス、後半でOpenMPを使用したプログラミングの具体例ならびにOpenMPに関する留意点などを解説します。simd構文やtarget構文についても解説し、ヘテロジニアスな構成への対応やベクトル化もカバーしています。
発売日:2018年11月
著者/編集:北山洋幸
出版社:カットシステム
発行形態:単行本
ページ数:495p
ISBNコード:9784877834494 |
目次
- 第1章 OpenMP概論
- 1-1 逐次処理プログラムと並列処理プログラム
- 1-2 並列化の分類
- 1-3 なぜ並列化するか
- 1-4 並列化のアキレス腱
- 第2章 はじめてのプログラム
- 2-1 「hello openMP!」プログラム
- 2-2 並列化数を明示的に指定
- 2-3 ループを並列化
- 2-4 セクションで並列化
- 2-5 指示文
- 2-6 条件コンパイル
- 2-7 スレッドとの比較
- 2-8 まとめ
- 第3章 共有変数とプライベート変数
- 3-1 共有変数
- 3-2 プライベート変数
- 3-3 ループのインデックス
- 第4章 簡単な具体例
- 4-1 1次元配列に係数を乗ずる
- 4-2 1次元配列同士の乗算
- 4-3 1次元配列同士の乗算(オフロード)
- 4-4 1次元配列同士の乗算(OpenMP以外の手法で並列化)
- 4-5 ライプニッツの公式
- 4-6 行列の加算
- 4-7 行列の積
- 第5章 指示文と実行時ライブラリ
- 5-1 指示文
- 5-2 simd関連の構文
- 5-3 target関連の構文
- 5-4 指示句
- 5-5 実行時ライブラリ
- 5-6 環境変数
- 第6章 1次元配列の処理—音響処理
- 6-1 1次元データの偶数番の値をクリア
- 6-2 1次元データの加工(ステレオをモノラル化)
- 6-3 1次元データの加工(カラオケ化)
- 6-4 単純移動平均
- 6-5 積和でフィルタ
- 第7章 2次元の具体例
- 7-1 2次元行列生成
- 7-2 ネガティブ
- 7-3 フィルタ
- 7-4 幾何変換
- 第8章 同期・非同期・性能改善
- 8-1 性能改善
- 8-2 非同期処理
- 8-3 同期処理
- 第9章 OpenMPの罠
- 9-1 並列化困難なコード
- 9-2 犯しやすい間違い
- 付録
- 付録A WAVユーティリティーズ
- 付録B Bitmapユーティリティーズ
- 付録C Visual Studioのインストールと環境設定
- 付録D g++/gccの環境
- 付録E PGIコンパイラのOpenMP環境
楽天ブックスは品揃え200万点以上!