2010-12-04 9 views
0

ハイパースレッディング付きのシングルコアCPUでマルチスレッドプログラムが安全に実行される場合、ハイパースレッディング付きのデュアルコアCPUでも安全に実行されますか?など[OK]をハイパースレッディング付きシングルコアPCでのテスト

EDIT

をスレッドの安全性については、私はより具体的にお願いいたします。私は、忘れてしまったか、または(並行性の)問題ではないことを確認できなかった悪いソースコード行を意味します。

1コアのhttは、デッドロック、クラッシュ、CPUスパイク、または2コアマシンでコードが引き起こす何かを防ぐことによって、「嘘つき」かもしれません。私はhttのPCの2(論理的な)プロセッサがデュアルコアPCの2つのプロセッサとどのように正確に異なっているか、どのように透過的なhttであるかは分かりません。何か問題があれば、おそらくそれのために2台目のPCを買うだろうから、私は尋ねた。

+0

"安全"とは、プログラムを繰り返し実行したときにクラッシュしたことがないということですか、コードに並行性の問題がないことを慎重に確認したことを意味しますか?前者の場合、あなたは幸運だったかもしれません。後者の場合、CPUコアの数は(理論的に)違いを生じるべきではありません。 – stakx

+0

私は並行性の問題を避けようとしています。しかし、私の現在のPCはシングルコアなので、デュアルコアは私のプログラムをより多くの問題にさらすのでしょうか?私のプログラムがうまく書かれていない場合は、シングルコアのhttpsのクラッシュが少なくなるでしょうか? – Karl

+0

...デッドロックのシナリオなど。おそらく、デュアルコアマシンを買うのがおそらく最高だと思います。理論的には、シングルコアのhttマシンがテストのためにうまくいくと確信するように試みました。 – Karl

答えて

1

あなたはあなたの質問をより正確にする必要があります。ちょうど "スレッド安全性などを投げて"質問の最後にスレッドを使用することが何を意味するかを私に納得させるものではありません。マルチスレッドアプリケーションはどんな言語で書かれていて、どのOSバージョンを使用していますか、どのチップセットを検討していますか?

これにもかかわらず、答えはOSにハイパースレッディング "嘘"があり、実際に存在するよりも多くの物理コアがマシンに存在することを確信します。 OSの観点からは、シングルコアハイパースレッド構成とデュアルコア非ハイパースレッド構成の間に違いはありません。デュアルコアハイパースレッディング構成は、利用可能な見かけの物理コアの数を2倍にするだけです。

ハイパースレッディングがどのように実装され、どのようにメモリ共有と同期を実装するかについての深い知識を得るために、使用しているチップセットに関する仕様書を読む必要があると思います。

+0

ああ、該当する文書が見つかりました:http://download.intel.com/design/processor/manuals/253665.pdf。ページ2-22は、ハイパースレッディングへの最初の参照です。 –

+0

私は忘れています、OS:Windows 7、言語:Cとアセンブリ – Karl

+0

興味深い。このような現代的なOSの場合、心配する必要はないと言えますし、(スレッドを公開するPythonではなく、すべてを同期するためにグローバルロックを使用するのではなく)実際のOSスレッドをcoddlingなしで公開する言語を使用しています。疑わしいときは、テストしてください。 –

関連する問題