アンドロイド

プログラマが4つ以上のコアを持つプロセッサを最大限に活用できるコードを書くための取り組みが行われている

ワンコと山登り♪

ワンコと山登り♪
Anonim

市販のアプリケーションは、最大4つのプロセッサコアを搭載したCPUで高速に実行されることがよくありますが、より多くのコアが追加されるにつれて悪化する可能性がある、と彼は述べた。ガートナーの最新の報告書もこの問題を強調しています。

チップメーカーとシステムビルダーは、開発者を教育し、マルチコアプログラミングのためのより良いツールを提供するための取り組みを開始しました。 1年前、インテルとマイクロソフトは、問題に取り組む米国の大学に2つの研究センターを開くために2000万ドルを投資すると述べた。 Gwennap氏によると、メインストリームの開発者向けのマルチコアプログラミングツールがないことは、おそらく今日業界が直面している最大の課題であるとGwennap氏は述べています。

数学問題の解決や画像のレンダリングなど、複数のコアで同時に分割して実行することは新しいものではありません。しかし、しばしば並列コンピューティングと呼ばれるこのモデルは、主に特殊な高性能コンピューティング環境に限られていました。しかし、近年、インテルとアドバンスト・マイクロ・デバイセズは、従来のクロック速度を上げるという慣習から大きく変わりました。 Intelは今後のNehalem-EXチップに8つのコアを組み込み、AMDはサーバ用の12コアチップを設計している。また、複数のコアを同時に複数のコード行で動作させるマルチスレッド機能を追加しています。これは、使用可能な追加のコアを利用するために主流のアプリケーションを別の方法で記述する必要があることを意味します。この作業はやりにくく、ソフトウェアバグの新しいタイプの可能性を生み出します。最も一般的なのは、競合状態です。計算の出力は、特定の順序で完了するタスクのさまざまな要素に依存します。そうでない場合、エラーが発生する可能性があります。

インテルのCおよびC ++用Parallel Studioなど、いくつかの並列プログラミングツールが利用できます。他のベンダーには、Codeplay、Polycore Software、Clik Artsがあります。 Khronos Groupによって開発され、Apple、Intel、AMD、Nvidiaなどの支援を受けているOpenCLという新しいCベースの並列プログラミングモデルもある。

しかし、利用可能なツールの多くはまだ進行中であり、 Multicore Expoは言った。組み込みチップのベンチマークを開発する非営利団体であるEEMBCのソフト・エンジニアリング担当シェイ・ガルオン(Shay Gal-on)氏は、ソフトウェア・コンパイラは並列化できるコードを特定し、それをプログラマから手作業ではなく並列化する必要があると述べているツールの欠如にもかかわらず、一部のソフトウェアベンダーは、イメージやビデオ処理などの単純なコンピューティングジョブのための並列コードを作成することは比較的簡単だと、Gwennapp氏は述べています。 Adobeは特定のx86コアに倍率や画像フィルタリングなどの任務を割り当てることができるようにPhotoshopを書き直し、パフォーマンスを3倍から4倍向上させると話している」と述べている。

"ビデオやグラフィックスを行っているなら、ピクセルを異なるCPUに割り当てることができます。そのように多くの並列性を得ることができます。しかし、より複雑なタスクでは、並列化できる一連の計算を特定し、それらを分割する単一のアプローチを見つけることは困難です。

プログラミングの面で最大の課題がありますが、メモリレイテンシや低速バス速度などの問題を克服するためには、ハードウェアの変更も必要です。 Gwennap氏によると、複数のコア間で単一のメモリキャッシュまたはデータバスを共有するとボトルネックが発生し、余分なコアが大いに浪費される。 「CPUが6〜8個になる頃には、彼らはお互いに話し合っていて、何か作業を進めていくのではない」と彼は言った。

最終的に開発者は、より良い並列プログラムを書くためのハードウェアとソフトウェア。多くのコーダーは、最新のハードウェア設計の開発をスピードアップしていない、とGal-onは述べています。彼は、データシートを開いて、チップのアーキテクチャを研究して、コードのパフォーマンスをよりよく理解する必要があると彼は述べています。