メニーコア

メニーコア(manycore; many-core)プロセッサとは、高度な並列処理を行うために設計された特殊なマルチコア・プロセッサのことで、多数のより単純で独立したプロセッサ・コア(数十コアから数千コア以上)を含んでいる。メニーコア・プロセッサは、組み込みコンピュータや高性能コンピューティングで広く使われている。 

 マルチコア・アーキテクチャとの対比 
メニーコア・プロセッサは、マルチコア・プロセッサとは異なり、が可能なように最適化されており、レイテンシとシングルスレッド性能を犠牲にして、スループット(または低消費電力)を高めるよう最初から最適化されている。 

対照的に、より広いカテゴリのマルチコア・プロセッサは、通常、並列コードと直列コードの両方を効率的に実行するように設計されているため、高いシングルスレッド性能 (例えば、より多くのシリコンをアウト・オブ・オーダー実行、より深いパイプライン、より多くのスーパースカラー実行ユニット、より大きな一般的なキャッシュに割り当てる) と共有メモリに重点を置いている。これらの技術は、単一スレッドで暗黙的な並列性を見つけることにランタイム・リソースを割いている。これらの技術は、シングルコア・プロセッサから(下位互換性を持って)継続的に進化してきたシステムで使用される。通常は「数個」のコア（例：2,4,8）を持ち、ヘテロジニアス・システム(異機種システム)では、GPUなどのマルチコア・アクセラレータで補完されることもある。 

 モチベーション 
キャッシュ・コヒーレンシーは、マルチコア・プロセッサのスケーリングを制限する問題である。メニーコア・プロセッサは、メッセージパッシング、スクラッチパッドメモリ、DMA、パーティション化グローバルアドレス空間、読み取り専用/非コヒーレントキャッシュなどの方法で、この問題を回避できる。とローカルメモリを使用したメニーコア・プロセッサは、ソフトウェアにタスクの空間レイアウトを明示的に最適化する機会を与える(TrueNorth用に開発されたツールで見られるように)。 

メニーコア・プロセッサは、クラスタやベクトル・プロセッサなどの高性能コンピューティングに由来する技術と(概念的に)より多くの共通点を持つ可能性がある"The Cell architecture is like nothing we have ever seen in commodity microprocessors, it is closer in design to multiprocessor vector supercomputers"。 

GPUは、複数のシェーダ処理ユニットを備えたメニーコア・プロセッサの一形態と考えられ、高度に並列化されたコード (高スループットだが、シングルスレッドの性能が極端に劣る) にのみ適している。 

 適切なプログラミングモデル 

 メッセージ・パッシング・インタフェース 
 OpenCL またはをサポートするその他のAPI 
 パーティション化グローバルアドレス空間 
 アクターモデル 
 OpenMP  
 データフロー 

 メニーコア・システムのクラス 

 メニーコア・ベクトルプロセッサとして説明できるGPU 
 超並列パラレルプロセッサアレイ 
 単純プロセッサの非同期配列 

 特定のメニーコア・アーキテクチャ 

 ZettaScaler - 日本のPEZY Computing 2048コアモジュール 
 Xeon Phiコ・プロセッサ - MIC(Many Integrated Cores)アーキテクチャ 
 Tilera 
 Adapteva Epiphany Architecture - PGAS スクラッチパッドメモリを使用したメニーコアチップ 
 Coherent Logix hx3100 Processor - HyperX Architecture をベースとした100コアDSP/GPPプロセッサ 
 Movidius Myriad 2 - マシンビジョンのためのメニーコアAIアクセラレータ 
 Kalray - データ集約型のタスクのためのメニーコアPCI-Eアクセラレータ 
 Teraflops Research Chip - メッセージパッシングを使用したメニーコアプロセッサ 
 TrueNorth - チップアーキテクチャ上にメニーコア・ネットワークを備えたAIアクセラレータ 
 Green arrays - 低消費電力アプリケーション向けのメッセージパッシングを使用したメニーコアプロセッサ 
 Eyeriss - 組み込みビジョンアプリケーション用の畳み込みニューラルネットを実行するために設計されたメニーコアプロセッサ

 100万以上のCPUコアを備えたメニーコア・コンピューター 
マルチコア・プロセッサで構築された多くのコンピューターは、100万個以上の個別のCPUコアを持っている。例として次のようなものがある： 

 Sunway TaihuLight - 超並列 (10M CPUコア) の中国製スーパーコンピュータ。1CPUあたり260コアのSW26010メニーコア・プロセッサを40,960個使用 
 Gyokou (Japanese:暁光 Hepburn: gyōkō, dawn light) - ExaScalerとPEZY Computingによって開発されたスーパーコンピュータ 
  - Human Brain Projectの一部として構築された超並列 (1M CPUコア)メニーコア・プロセッサ 

 参照項目 

 マルチコア 
 ベクトルプロセッサ 
 SIMD 
 高性能コンピューティング 
 コンピュータークラスター 
 チップ上マルチプロセッサシステム 
 画像処理装置 
 メモリアクセスパターン 
 キャッシュ・コヒーレンシ 
 驚異的並列 
 超並列 
 CUDA 

 参考文献 

 外部リンク 

 2010年2月19日に公開された、Manycoreの将来に向けたソリューションの設計 （スライド内の複数のリンク切れ） 
 Eyerissアーキテクチャ 

Category:並列コンピューティング
Category:コンピュータアーキテクチャ