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