web-dev-qa-db-ja.com

コアの数と論理プロセッサの数の違いは何ですか?

私は Erdas Imagine を使用して自分のコンピューターで画像処理を行っています。具体的には、画像に対して5x5の中央値フィルターを実行しています。 Erdasバッチコマンドウィンドウ内で同時に発生するプロセスの数を指定できます。 16の同時プロセスを指定すると、異常な動作が観察され、マシンのプロセッサ数を再確認しました。次のコマンドプロンプトコマンドを使用して、プロセッサの数を評価しました。

wmic cpu > cpu.txt

(一部)が得られました:

Number of Cores: 8 
Number of Logical Processors: 16

コアの数は、ユーザーが同時プロセスの数を指定できる場所をErdasが想像するようなソフトウェアのコンテキストで、論理プロセッサの数とどのように異なりますか?効率を最大化するために、8または16の同時プロセスを指定する必要があるかどうかを判断しようとしています。

6
Borealis

ハイパースレッディング は、1つの物理コアをOSに2つとして表示します。

ハイパースレッディングでは、基本的に、命令の性質に応じて、1つのコアで2つの命令セットを同時に実行できます。それが最初に導入されたとき(2002年にさかのぼり、当時はかなりの話題であり、新しいブロガーがHTと真のマルチコアをめぐって議論を繰り広げていました。 」ハイパースレッディングの使用を既存のソフトウェアとオペレーティングシステムに対して透過的にするために、それらは2つのコアとして表示されるように設計されているため、カーネルは既存のスケジューリングとロードバランシングを引き続き使用し、変更なしでハイパースレッディングを利用できます(もちろん、後で、最適化が行われた)。それがそのように始まった理由です-ハイパースレッドのCPUは、とにかくすでにマルチプロセッサをサポートしているプラ​​ットフォームでのドロップインの置き換えになるだけです。

とにかく、効率はアプリケーションの性質に依存するため、8と16(およびプロセスがCPUにバインドされていないがネットワークまたはIOバインドされている場合はそれ以上)でベンチマークを実行することができます。 )。

14
Jason C

コアの数(8)は、物理コアの実際の数を表します。物理的に存在するプロセッサコアごとに、オペレーティングシステムは2つの仮想コアまたは論理コアに対応し、可能な場合はそれらの間でワークロードを共有します。

マルチプロセッシングシステムに複数の完全なプロセッシングユニットが含まれる場合、マルチスレッドは、命令レベルの並列処理だけでなくスレッドレベルの並列処理を使用して、単一コアの使用率を高めることを目的としています。 2つの手法は相補的であるため、複数のマルチスレッドCPUを備えたシステムと複数のマルチスレッドコアを備えたCPUで組み合わせられる場合があります。

HyperThreading および Multithreading に関するWikipediaの記事を参照してください。

3
Cornelius