インテル® C++ コンパイラー 17.0 デベロッパー・ガイドおよびリファレンス

レデューサーについて

レデューサーは、データ競合を引き起こすことなく、並列コードで変数を段階的に更新して値を計算します。概念的には、レデューサーとは、並列に実行している複数のストランドが安全に使用できる変数です。ランタイムシステムは、各ワーカーが変数のプライベート・コピーにアクセスすることを保証し、ロックを使用せずにデータ競合の可能性を排除します。ストランドが同期するときに、それぞれの変数のインスタンスは 1 つの変数にマージ (レデュース) されます。

レデューサーには、いくつかのメリットがあります。

レデューサーは、ランタイムシステムにインターフェイスを提供する C++ テンプレートで定義されます。

独自のレデューサーを記述する場合は、「上級者向けトピック: 新しいレデューサーの記述方法」に詳細があります。