C/C++プログラマーのための
OpenMP並列プログラミング
- 著者 菅原清文
- 判型 B5変型判、328頁
- 本体価格 4,200円
- ISBN 978-4-87783-223-0
- 電子書籍の購入はこちら
本書について
アプリケーションの並列化がさまざまな分野で求められる昨今、開発者に求められる並列プログラミングのスキルは科学技術計算の分野のみならず、一般のコンシューマーアプリケーションや自社開発のアプリケーションでも求められるようになっています。
WindowsやLinuxをはじめとする近年のオペレーティングシステムは、マルチプロセスおよびマルチスレッドのプログラミング環境をサポートしていますが、残念ながらそれらは統一されたものではなく独自に実装されています。開発者はそれぞれの環境ごとにAPIなどの使い方を学習し、OSごとに異なるプログラムを開発しなければいけません。マルチスレッド環境以前にも皆さんはGUIのプログラミングなどで同じことを経験していることでしょう。プログラムがさらに複雑になるのは大変なことです。
異なるOS環境で同じプログラミング手法が利用できればそれに越したことはありません。OpenMPはそのような開発環境を提供する優れたプログラミング手法であり、スレッド化に際しプログラムの構造を変えることなく容易にマルチスレッド機能を実装することができます。
本書はC/C++プログラマー向けのOpenMP入門書として書かれています。皆さんが利用しているコンパイラーはすでにOpenMPをサポートしているかもしれません。ぜひこの機会にOpenMPプログラミングを始めてください。
電子書籍は下記のサイトからご購入できます
目 次
- 第1章 並列プログラミングを始めるにあたり
- 1-1 なぜ並列プログラミングが必須となるのか
- 1-2 マルチプロセスとマルチスレッド
- 1-3 コンカレンシー(並行性)とパラレリズム(並列性)
- 1-4 スレッドプログラミングと抽象化
- 第2章 OpenMPとは
- 2-1 OpenMPの経緯
- 2-2 OpenMPプログラミングを始める前に
- 2-3 OpenMPの仕組み
- 2-4 OpenMPプログラミングを始める
- 第3章 OpenMPを使ってみる
- 3-1 OpenMPで並列領域を定義する必須要件
- 3-2 並列領域とスレッド数
- 3-3 OpenMPの並列領域の範囲
- 3-4 データスコープとデータ属性
- 3-5 作業の分割とワークシェア
- 3-6 同期
- 3-7 タスク制御
- 第4章 OpenMP指示文
- 4-1 OpenMP標準指示文
- 4-2 インテルコンパイラー拡張指示文
- 第5章 OpenMP APIと環境変数
- 5-1 OpenMP環境変数
- 5-2 OpenMPランタイムAPI
- 第6章 OpenMPの活用例
- 6-1 forループ構文を利用するうえでの注意点
- 6-2 並列領域のネスト
- 6-3 タスク制御の例
- 6-4 OpenMPスレッドとアフィニティー
- 6-5 OpenMPスレッドとハイパースレッディング
- 6-6 プロセッサーに依存するスレッド固有のペナルティー
- 第7章 OpenMPスレッドの最適化とデバッグツール
- 7-1 OpenMPスレッドプログラムのデバッグ
- 7-2 OpenMPスレッドプログラムのパフォーマンスチューニング
- 第8章 他のAPIやツールとの共存
- 8-1 Windows APIとの共存
- 8-2 MPIとの共存
- 8-3 他のモジュールを呼び出してリンクする場合
- 付 録
- 付録A OpenMP宣言子一覧
- 付録B OpenMP API一覧
- 付録C OpenMP環境変数一覧
- 付録D インテルコンパイラーのOpenMP関連コンパイラーオプション
- 付録E OpenMP 2.5と3.0の仕様の違い