マルチコア

提供: MonoBook
ナビゲーションに移動 検索に移動

マルチコア英語:multi core)とは、ひとつの半導体チップの中に複数のCPUGPUなどのコアがあるもののことである。

概要[編集 | ソースを編集]

一般的に常識的な範囲(1~8コア程度)では、コアの数が多いほど高性能とされる(要出典

コアの数が多いと、BOINCで大量のタスクを処理することができ、有利になるとされる。

単にCPUコアを増やすのみではなく、たとえばCPUコアとGPUコアを組み合わせたAMDAPUなども発売されている。 また、最近流行りのSoCもある種のマルチコアである。

利点[編集 | ソースを編集]

無駄が少ない[編集 | ソースを編集]

マルチコアCPUは、単純に複数のCPUをひとつのマザーボードに搭載する対称型マルチプロセッシングSMP)と似ているが、マルチコアCPUではキャッシュなどを複数のコアで共有するなどの効率化が実現できる。

欠点[編集 | ソースを編集]

同期処理[編集 | ソースを編集]

コア数の増加に比例してコア間で同期をとるための処理に時間がかかるようになる。このため闇雲にコア数を増やす事はできない。

たとえばマルチスレッドを使うプログラムを組む際にはロック処理はほぼ確実に登場するが、その突入が異常なほど遅くなると考えればよい。

// C#のロック処理
lock (this) {
    // 同期処理
}

なお、同期不要な独立性の高いプログラムを走らせることに特化している場合はこの限りではなく、基本的にピクセルごとに独立した処理が走るGPUなどでは極端なマルチコア化が進んでいる。たとえばGeForce GTX Titanなどでは2688コアも搭載している。

同様に個々のリクエストの独立性が高いウェブサーバーなど向けにもアホみたいな数のコア数を搭載したサーバー向けCPUなども発売されている。これらの個々のコアの性能はほぼIntel Atomである。

関連項目[編集 | ソースを編集]

参考文献[編集 | ソースを編集]