Share via


同時実行ランタイム

C++ のヘルプの同時実行ランタイム信頼性が高く、スケーラブルで、応答性の高い並行アプリケーションを作成できます。このフレームワークでは抽象のレベルが引き上げられるので、同時実行に関連するインフラストラクチャの詳細を管理する必要はありません。また、アプリケーションのサービスの品質への要求を満たすスケジューリング ポリシーを指定するためにも使用できます。ために、これらのリソースを、同時実行ランタイムを使用します。

リファレンス ドキュメントについては、「参照 (同時実行ランタイム)」を参照してください。

ヒントヒント

同時実行ランタイムは C++11 機能に大きく依存しますが、最新 C++ のスタイルが使用されます。詳細については、C++ へようこそ (Modern C++)を参照してください。

同時実行ランタイムの機能の選択

同時実行ランタイムの概要

同時実行ランタイムが重要である理由とその主要機能について説明しています。

同時実行ランタイムとその他の同時実行モデルの比較

各自のアプリケーション要件に最も合った同時実行モデルを使用できるように、同時実行ランタイムと他の同時実行モデル (Windows スレッド プールや OpenMP など) の違いについて説明しています。

OpenMP から同時実行ランタイムへの移行

OpenMP と同時実行ランタイムと比較し、既存の OpenMP コードを同時実行ランタイムを使用するように移行する方法の例を示します。

並列パターン ライブラリ (PPL)

並列ループ、タスク、および並列コンテナーを提供する PPL について説明します。

非同期エージェント ライブラリ

非同期エージェントを使用する方法について説明し、簡単に組み込むのデータ フローおよび推進メッセージは、アプリケーションに委ねます。

タスク スケジューラ (同時実行ランタイム)

同時実行ランタイムを使用するようにデスクトップ アプリケーションのパフォーマンスを微調整できるタスク スケジューラについて説明します。

PPL のタスクの並列化

タスクの並列化 (同時実行ランタイム)

方法: 並列呼び出しを使用して並列並べ替えルーチンを記述する

方法: 並列呼び出しを使用して並列操作を実行する

方法: 遅延後に完了するタスクを作成する

非同期コードを記述し、小さい部分に並列処理を分解するために役立つタスク グループとタスクを定義します。

チュートリアル: フューチャの実装

同時実行ランタイムの機能の一部を行うためにまとめる方法を示します。

チュートリアル: ユーザー インターフェイス スレッドからの処理の除去

ワーカー スレッドへの MFC アプリケーションの UI スレッドによって実行される処理を実行する方法を示します。

並列パターン ライブラリに関するベスト プラクティス

同時実行ランタイムに関する全般的なベスト プラクティス

PPL を処理するためのヒントとベスト プラクティスについて説明します。

PPL でのデータの並列化

並列アルゴリズム

方法: parallel_for ループを記述する

方法: parallel_for_each ループを記述する

方法: マップ操作と縮小操作を並列実行する

parallel_forparallel_for_eachparallel_invokeおよび他の並列アルゴリズムについて説明します。データの収集を含む データの並列化 問題を解決するには、並列アルゴリズムを使用します。

並列コンテナーと並列オブジェクト

方法: 並列コンテナーを使用して効率を向上させる

方法: combinable を使用してパフォーマンスを向上させる

方法: combinable を使用して集合を結合する

combinable のクラス、または concurrent_vectorconcurrent_queueconcurrent_unordered_mapおよび他の並列コンテナーついて説明します。要素へのスレッド セーフなアクセスを提供するコンテナーを要求すると並列コンテナーと並列オブジェクトを使用します。

並列パターン ライブラリに関するベスト プラクティス

同時実行ランタイムに関する全般的なベスト プラクティス

PPL を処理するためのヒントとベスト プラクティスについて説明します。

タスクと並列アルゴリズムをクリックします。

PPL における取り消し処理

PPL でのキャンセル処理の役割について説明します。始まり、キャンセル要求に応答する方法を示します。

方法: キャンセル処理を使用して並列ループを中断する

方法: 例外処理を使用して並列ループを中断する

データ並列処理をキャンセル 2 とおりの方法を示します。

Windows ストア Apps

C++ における Windows ストア アプリ用の非同期操作の作成

キーの一部を Windows ストア アプリケーションの非同期操作を生成するには、同時実行ランタイムを使用する場合に考慮する点について説明します。

チュートリアル: タスクおよび XML HTTP 要求を使用した接続 (IXHR2)

HTTP GET 要求を送信 IXMLHTTPRequest2IXMLHTTPRequest2Callback のインターフェイスと PPL のタスクをまとめて方法を取得し、ポストします Windows ストア アプリケーションの Web サービスを要求を示します。

Windows ストア アプリケーションのサンプル

Windows 8のダウンロード可能コード例およびデモの apps が含まれます。C++ の例では UX の応答性を保つためにバックグラウンドでデータを操作する PPL のタスクなど、同時実行ランタイムの機能を使用します。

非同期エージェント ライブラリでプログラミングするデータ フロー

非同期エージェント

非同期メッセージ ブロック

メッセージ パッシング関数

方法: さまざまなプロデューサー/コンシューマー パターンを実装する

方法: call クラスおよび transformer クラスに処理関数を提供する

方法: データ パイプラインでトランスフォーマーを使用する

方法: 完了したタスクから選択する

方法: メッセージを定期的に送信する

方法: メッセージ ブロック フィルターを使用する

非同期エージェント、メッセージ ブロック、および同時実行ランタイムにデータ フローの操作を実行するためのレポート一部であるメッセージ パッシング関数を記述します。

チュートリアル: エージェント ベースのアプリケーションの作成

チュートリアル: データフロー エージェントの作成

基本的なエージェント ベースのアプリケーションを作成する方法を示します。

チュートリアル: イメージ処理ネットワークの作成

イメージ処理を実行する非同期メッセージ ブロックのネットワークを作成する方法を示します。

チュートリアル: join を使用したデッドロックの防止

"食事する哲学者の問題"を同時実行ランタイムを使用してアプリケーションでデッドロックを防止する方法を示すために使用します。

チュートリアル: カスタム メッセージ ブロックの作成

優先順位に従って順序の受信メッセージそのカスタム メッセージ ブロックの型を作成する方法を示します。

非同期エージェント ライブラリに関するベスト プラクティス

同時実行ランタイムに関する全般的なベスト プラクティス

エージェントを使用するためのヒントとベスト プラクティスについて説明します。

例外処理とデバッガー

同時実行ランタイムでの例外処理

同時実行ランタイムの例外を使用する方法について説明します。

並列診断ツール (同時実行ランタイム)

アプリケーションを微調整し、同時実行ランタイムを最も効果的に使用できるようにする方法について説明しています。

パフォーマンスの調整

並列診断ツール (同時実行ランタイム)

アプリケーションを微調整し、同時実行ランタイムを最も効果的に使用できるようにする方法について説明しています。

スケジューラ インスタンス

方法: スケジューラ インスタンスを管理する

スケジューラ ポリシー

方法: 特定のスケジューラ ポリシーを指定する

方法: 特定のスケジューラ ポリシーを使用するエージェントを作成する

の操作方法を管理するスケジューラ インスタンスおよびスケジューラ ポリシーを示します。デスクトップ アプリケーションの場合、スケジューラ ポリシーは、特定の種類の作業負荷にと特定の規則を関連付けることができます。たとえば、昇格したスレッド優先順位で一部のタスクを実行するようにスケジューラ インスタンスを 1 つ作成し、他のタスクについては既定のスケジューラを使用して通常のスレッド優先順位で実行することができます。

スケジュール グループ

方法: スケジュール グループを使用して実行順序に影響を与える

スケジュール グループ、またはグループ、関連のタスクを同時に affinitize の使用方法を示します。たとえば、それらのタスクが同じプロセッサ ノードの実行の利点を活用すると、関連のタスク間の局所性の昇格を必要とする場合があります。

軽量タスク

軽量タスクが作成するときに便利負荷の配分をキャンセルを要求しない方法、および同時実行ランタイムを使用する既存のコードを改変対しても使用した作業どのように使用されるかを説明します。

コンテキスト

方法: Context クラスを使用して協調セマフォを実装する

方法: オーバーサブスクリプションを使用して待機時間を短縮する

同時実行ランタイムによって管理されるスレッドの動作を制御する方法について説明します。

メモリ管理関数

方法: Alloc および Free を使用してメモリ パフォーマンスを改善する

同時実行方式でメモリの割り当てと解放するために同時実行ランタイムに用意されているメモリ管理がついて説明します。

その他のリソース

Hilo (C++ および XAML を使用して Windows ストア apps) 単一のプログラミング パターンとツールヒント

C++ を使用して Hilo の非同期操作 Windows ストア、アプリケーションと XAML の実装により、同時実行ランタイムを使用する方法について学習します。

Visual Studio 2010 で同時実行ランタイムと並列パターン ライブラリのサンプルを参照してください

同時実行ランタイムを示すサンプル アプリケーション、およびユーティリティを提供します。

Parallel Programming in Native Code (ネイティブ コードでの並列プログラミング) のブログ

同時実行ランタイムでの並列プログラミングに関する詳細なブログ記事を別途紹介しています。

Parallel Computing in C++ and Native Code (C++ およびネイティブ コードでの並列コンピューティング) のフォーラム

同時実行ランタイムに関するコミュニティ ディスカッションに参加できます。

.NET Framework の並列プログラミング

.NET Framework に用意されている並列プログラミング モデルについて説明しています。

参照

その他の技術情報

参照 (同時実行ランタイム)