マルチスレッド・アプリケーション開発のためのガイド

同カテゴリーの次の記事

並列プログラミングのエキスパートのようになるには - パート 1: 並行性 (コンカレンシー) と並列性 (パラレリズム)

このガイドは、インテル コーポレーションが提供するガイド「Intel Guide for Developing Multithreaded Applications」の日本語参考訳です。

第 1 章 – アプリケーションのスレッド化

並列パフォーマンスにおける一般的なトピックを紹介します。また、API 固有の問題についても触れています。

1-1 並列パフォーマンスの予測と測定

1-2 ループの最適化によるデータの並列パフォーマンスの強化

1-3 粒度と並列パフォーマンス

1-4 ロードバランスと並列パフォーマンス

1-5 人工的な依存関係の回避/排除による並列性の顕在化

1-6 スレッドの代替としてのタスクの使用

1-7 順序付きデータ構造におけるデータの並列化

1-8 アセンブリーや組込み関数を利用することなく AVX を使用するには

第 2 章 – 同期

同期が及ぼすパフォーマンスへの負の影響を緩和する手法を紹介します。

2-1 ロック競合の管理: 大小のクリティカル・セクション

2-2 スレッド API の同期ルーチンの使用

2-3 オーバーヘッドを最小限に抑える適切な同期プリミティブの選択

2-4 非ブロッキング・ロックの使用

第 3 章 – メモリー管理

スレッド化により、メモリー管理においては無視することのできない別の側面がもたらされます。ここでは、マルチスレッド・アプリケーションに特有のメモリーに関する問題について説明します。

3-1 スレッド間のヒープ競合の回避

3-2 スレッド・ローカル・ストレージを利用して同期を軽減する

3-3 マルチスレッド・アプリケーションのメモリー帯域飽和を検出する

3-4 スレッド間のフォルス・シェアリングの回避と特定

3-5 NUMA 向けのアプリケーションの最適化

第 4 章 – プログラミング・ツール

インテル® ソフトウェアを製品を使用して、マルチスレッド・アプリケーションの開発、デバッグ、最適化を行う方法を紹介します。

4-1 インテル® コンパイラーによる自動並列化

4-2 インテル® マス・カーネル・ライブラリー (インテル® MKL) での並列処理

4-3 スレッド化とインテル® インテグレーテッド・パフォーマンス・プリミティブ (インテル® IPP)

4-4 インテル® Parallel Inspector を使用した OpenMP* ベースのマルチスレッド・コードにおける競合状態の検出

4-4 (XE) インテル® Inspector XE 2011 を使用したマルチスレッド・コードのデータ競合の検出

4-5 インテル® Parallel Amplifier を使用したスレッド・インバランスの解消

4-6 インテル® Parallel Composer による並列実行コードの準備

4-7 データ構造とメモリー・アクセス・パターンを最適化してデータの局所性を高める

関連記事