マルチコア
マルチコア(英語:multi core)とは、ひとつの半導体チップの中に複数のCPUやGPUなどのコアがあるもののことである。
概要
一般的に常識的な範囲(1~8コア程度)では、コアの数が多いほど高性能とされる(要出典)
コアの数が多いと、BOINCで大量のタスクを処理することができ、有利になるとされる。
単にCPUコアを増やすのみではなく、たとえばCPUコアとGPUコアを組み合わせたAMDのAPUなども発売されている。 また、最近流行りのSoCもある種のマルチコアである。
利点
無駄が少ない
マルチコアCPUは、単純に複数のCPUをひとつのマザーボードに搭載する対称型マルチプロセッシング(SMP)と似ているが、マルチコアCPUではキャッシュなどを複数のコアで共有するなどの効率化が実現できる。
欠点
同期処理
コア数の増加に比例してコア間で同期をとるための処理に時間がかかるようになる。このため闇雲にコア数を増やす事はできない。
たとえばマルチスレッドを使うプログラムを組む際にはロック処理はほぼ確実に登場するが、その突入が異常なほど遅くなると考えればよい。
// C#のロック処理
lock (this) {
// 同期処理
}
なお、同期不要な独立性の高いプログラムを走らせることに特化している場合はこの限りではなく、基本的にピクセルごとに独立した処理が走るGPUなどでは極端なマルチコア化が進んでいる。たとえばGeForce GTX Titanなどでは2688コアも搭載している。
同様に個々のリクエストの独立性が高いウェブサーバーなど向けにアホみたいな数のコア数を搭載したサーバー向けCPUなども発売されている。 個々のコアの性能はほぼIntel Atomである。