パーソナルな環境で実践的に学ぶ
並列コンピューティングの基礎
著者 | 北山 洋幸 |
---|---|
判型 | B5変型、488頁 |
ISBN | 978-4-87783-467-8 |
価格 | 本体5,000円 |
発行日 | 2019年 7月10日(初版第1刷) |
備考 | ダウンロードサービス:学習に使えるサンプルファイル |
本書について
近年になり、メニーコアを活用するOpenMP、アクセラレータを活用するOpenCL、OpenACC、ベクトル演算を可能にしたSIMD命令などといった環境を、フリーまたは安価に使用できるようになりました。それを受けて本書は、これらの並列処理の入門と、それぞれの利点や欠点、あるいは目的の違いなどについて解説します。
対象読者
- 並列コンピューティング入門者
- SIMD、スレッド、OpenMP、OpenCL、OpenACCなどのプログラミング入門者
- さまざまな並列化手法の間にある違いを知りたい人
- 並列処理と同期の入門者
目次
- 第1章 コンピュータ概論
- 1.1 ハードウェアから観察したコンピュータの構成
- 1.2 ソフトウェアから観察したコンピュータの構成
- 1.3 データモデル
- 第2章 CPU概論
- 2.1 CPUとは
- 2.2 CPUの内部構成
- 2.3 アドレス変換器
- 2.4 命令デコーダ
- 2.5 レジスタ群
- 2.6 制御器
- 2.7 CPUはどうやって命令を処理するのか
- 2.8 CPUの変遷
- 2.9 レジスタとは
- 2.10 実際のレジスタ
- 2.11 CPUの分類
- 2.12 まとめ
- 第3章 メモリ概論
- 3.1 ハードウェアから観察したメモリの構成
- 3.2 メモリの種類
- 3.3 データの流れ
- 3.4 キャッシュメモリ
- 3.5 RAMとROM
- 3.6 メモリとアドレス
- 3.7 二次記憶装置とは
- 第4章 並列化概論
- 4.1 逐次処理と並列処理
- 4.2 並列化の分類
- 4.3 並列化の限界
- 4.4 並列化の課題
- 第5章 スレッド
- 5.1 シングルスレッドとマルチスレッドの基礎
- 5.2 シングルスレッドプログラムとマルチスレッドプログラムの詳細
- 5.3 簡単なスレッドプログラム
- 5.4 1次元配列同士の乗算
- 第6章 OpenMP
- 6.1 概要
- 6.2 簡単なOpenMPプログラム
- 6.3 OpenMPらしいプログラム
- 6.4 指示文
- 6.5 共有変数とプライベート変数
- 6.6 1次元配列同士の乗算
- 第7章 OpenACC
- 7.1 概要
- 7.2 ディレクティブベースの魅力
- 7.3 OpenACCの機能
- 7.4 指示文の概要
- 7.5 データの移動
- 7.6 はじめてのプログラム
- 7.7 kernelディレクティブとparallelディレクティブ
- 7.8 dataディレクティブ
- 7.9 1次元配列同士の乗算
- 第8章 OpenCL
- 8.1 概論
- 8.2 データ並列とタスク並列
- 8.3 OpenCL C言語
- 8.4 はじめてのプログラム
- 8.5 1次元配列同士の乗算
- 第9章 ベクトル化
- 9.1 SIMDとは
- 9.2 SIMDの概要
- 9.3 SIMD命令で扱うデータ形式
- 9.4 SIMD命令とは
- 9.5 GPGPUのベクトル命令(SIMD)
- 9.6 はじめてのプログラム
- 9.7 1次元配列同士の乗算
- 9.8 OpenCLのベクトル
- 第10章 行列の積
- 10.1 逐次
- 10.2 OpenMP
- 10.3 OpenACC
- 10.4 OpenCL
- 第11章 メモリ
- 11.1 メモリアクセスとキャッシュメモリ
- 11.2 2次元配列の全要素を変更
- 11.3 データを局所化
- 11.4 OpenMPのメモリ
- 11.5 OpenACCのメモリ
- 11.6 OpenCLのメモリ
- 11.7 SIMDとメモリ
- 第12章 並列と同期
- 12.1 Fork-Joinモデル
- 12.2 処理内容
- 12.3 スレッドと同期
- 12.4 OpenMPと同期
- 12.5 OpenACCと同期
- 12.6 OpenCLと同期
- 第13章 OpenMPのリファレンス
- 13.1 指示文
- 13.2 simd関連の構文
- 13.3 target関連の構文
- 13.4 指示句
- 13.5 実行時ライブラリ
- 13.6 環境変数
- 第14章 OpenACCのリファレンス
- 14.1 Accelerator Computeディレクティブ
- 14.2 dataディレクティブ
- 14.3 enter dataとexit dataディレクティブ(OpenACC 2.0)
- 14.4 loopディレクティブ
- 14.5 実行時ライブラリ
- 第15章 OpenCLのリファレンス
- 15.1 OpenCL API
- 15.2 OpenCL構造体
- 15.3 OpenCL組込み関数