データ並列性
実際のプログラムのほとんどはタスク並列性とデータ並列性の間のどこかに落ち着く。
ソフトウェアレベルでは並列化の実装単位にプロセスやスレッドが利用される。通常、タスクを実行するCPUをアプリケーションソフトウェアレベルで明示的に指定することはほとんどなく、プロセスまたはスレッドといった抽象化された実行単位を割り当てるだけにとどめて、実際の計算ノードへのプロセス/スレッド割り当てはオペレーティングシステムやフレームワークが担当する。また、プロセッサの命令レベルでのデータ並列化の概念および機構として、SIMDおよびSIMT(英語版)がある。
データ量が十分に多く、かつデータごとの処理内容が十分に長い場合は、通例シングルコアCPUで処理を逐次実行するよりもマルチコアCPUで並列実行したほうが高速になるが、データ量が少なかったり、データごとの処理内容が極端に短かったり、あるいはキャッシュの偽共有(英語版)が発生してしまったりする場合は、かえって並列化のためのデータ分割処理やスレッドの起動および待ち合わせといった準備にかかるオーバーヘッドなどのほうがかさんでしまい、結果として逐次実行した場合よりも低速になるということもありえる。