プロセッサ親和性
しかし、二つの仮想 CPU はほとんどの演算処理や、キャッシュ、メモリ資源を利用する動作で互いに競合を引き起こすため、一般的には別のコアか CPU が利用できればプロセスをそちらに割り当てる方が効率的である。その場合、プロセスにはキャッシュにデータを入れなおすというペナルティが生じるが、プロセスが CPU 内の機能ユニット資源を巡って競合する必要がないため、おそらく総合的な性能は高い。
Linuxでは、プロセスの CPU 親和性を taskset(1) プログラムで変更することができる。 SGIのシステムでは、 dplace によってプロセスを複数の CPU に結びつける。 NetBSD 5.0 以上のバージョンでは、 pthread_setaffinity_np/pthread_getaffinity_np が利用可能である。また、psrset ユーティリティ によって、一群の CPU に対するスレッドの親和性を設定することができる。 Windows NTでは、スレッドとプロセスの CPU 親和性は、SetThreadAffinityMaskおよび SetProcessAffinityMask API を用いて別個に設定できる。プロセスの親和性はタスクマネージャーからも設定できる。