並列計算
タスク並列性は、「同じまたは異なるデータ群に関する全く異なる計算は並列に実行可能である」という並列プログラムの特性である。データ並列性がほぼ同じ計算を並列に実行するのとは対照的である。問題が大きくなっても、それに比例してタスク並列性が高くなることはない。
GPGPUに関しては、統合型シェーダーアーキテクチャの出現以降、NVIDIA社によるCUDA、KhronosグループによるOpenCL、マイクロソフト社によるDirectComputeといったAPIの整備・標準化も進んでいる。APIごとに特色はあるが、カーネル記述方式などに概ね似通った特徴を持つ。ただしCPUとGPUはメモリ空間が異なるため、まずCPU側のメモリからGPU側のメモリに入力データをコピーしてGPUに処理を実行させ、さらに処理後の結果を出力データとしてGPU側のメモリからCPU側のメモリにコピー(リードバック)する必要があるなど、プログラミングモデルは分散メモリ環境に近く、煩雑である。
AMDはCPUとGPUを統合したAPUを開発しているが、さらにCPUとGPUのメモリ空間までをも統合し、データ転送の手間を減らしてGPGPUアプリケーションソフトウェアの実装を容易にするための仕組みとしてHeterogeneous System Architecture (HSA) を提唱・推進している。
ASICを使って並列処理を行おうとする試みがいくつか行われている。
ASIC は本質的に特定用途を想定して設計されるため、その用途向けに完全に最適化される。結果として、その用途に関しては汎用コンピュータより高速に処理できることが多い。しかし、ASIC作成にはフォトマスクが必要であり、その設計は非常に費用がかかる。1つのマスクはアメリカ合衆国ドルで百万ドル以上になる(設計ルールが小さくなるほど、フォトマスク開発には費用が多くかかる)。一方ムーアの法則に従って、汎用コンピュータの性能は急激に向上しているため、1世代か2世代のプロセッサの進歩によってASICに追いつくという傾向がある。初期投資が大きいこと、汎用コンピュータに対する優位性が長続きしないことから、ASIC を使った並列計算はあまり現実的でないことが多い。