異種並列アーキテクチャとはなんですか


> GAME PROGRAMMING Gems 8 日本語版,P.565,7.1 OpenCLで異種並列アーキテクチャを使う

と書いてあったのですが、[OpenCL](https://www.khronos.org/opencl/)に利用されている異種並列アーキテクチャとはどういうものですか？




用語 "異種並列アーキテクチャ"
はあまり一般的ではないようですが、OpenCLとは[公式サイトでも謳っているとおり](https://www.khronos.org/opencl/)「異種システム(heterogeneous
system)上の並列プログラミングのための標準仕様」です。

「異種; ヘテロジニアス; heterogeneous」とは、例えば [CPU](http://ja.wikipedia.org/wiki/CPU) ＋
[(GP)GPU](http://ja.wikipedia.org/wiki/GPGPU)
システムのように、異なるアーキテクチャの複数プロセッサで構成されることを意味します。対義語として「同種; ホモジニアス;
homogeneous」、つまり複数のCPUからなるマルチプロセッサ・システムのように、同一アーキテクチャのプロセッサ群で構成されるシステムも存在します。

OpenCLの特徴として、特定のアーキテクチャを仮定しないことが挙げられます。類似技術のCUDAではnVIDIA社製GPUでしか動作しませんが、OpenCLで記述されたプログラムは各メーカGPUにとどまらず、CPUの外にある計算アクセラレーション・デバイスにも対応できます。

**注意:**
これはあくまでOpenCL仕様上の理想論であって、本当にサポートするかはGPUやデバイスのメーカ次第ですし、可搬性重視のトレードオフとして動作性能がイマイチという話もあります。




用語 "異種並列アーキテクチャ"
はあまり一般的ではないようですが、OpenCLとは[公式サイトでも謳っているとおり](https://www.khronos.org/opencl/)「異種システム(heterogeneous
system)上の並列プログラミングのための標準仕様」です。

「異種; ヘテロジニアス; heterogeneous」とは、例えば [CPU](http://ja.wikipedia.org/wiki/CPU) ＋
[(GP)GPU](http://ja.wikipedia.org/wiki/GPGPU)
システムのように、異なるアーキテクチャの複数プロセッサで構成されることを意味します。対義語として「同種; ホモジニアス;
homogeneous」、つまり複数のCPUからなるマルチプロセッサ・システムのように、同一アーキテクチャのプロセッサ群で構成されるシステムも存在します。

OpenCLの特徴として、特定のアーキテクチャを仮定しないことが挙げられます。類似技術のCUDAではnVIDIA社製GPUでしか動作しませんが、OpenCLで記述されたプログラムは各メーカGPUにとどまらず、CPUの外にある計算アクセラレーション・デバイスにも対応できます。

**注意:**
これはあくまでOpenCL仕様上の理想論であって、本当にサポートするかはGPUやデバイスのメーカ次第ですし、可搬性重視のトレードオフとして動作性能がイマイチという話もあります。

