TL; DR:パフォーマンスコンピューティングを行っていますが、表面上は「弱い」マシンが「強い」マシンよりも桁違いに優れていることがわかりました。どうして?
プロジェクトのCコードをいくつか書きました。これには、擬似ランダムデータを生成する長いプロセスの10,000回の反復が含まれ、各反復後にデータをファイルに書き込みます。私#pragma omp parallel for
はタスクをマルチスレッド化するために使用しました。
プログラムを2台のマシンで実行できます。それらをsとdと呼びましょう。関連する仕様は次のとおりです(問題になる可能性のある他の仕様についてはお問い合わせください)。
- s:Linux Mint 15、Samsung 840 EVO SSD、8 GB RAM、クアッドコアIntel i3 CPU @ 2.40 gHZ
- d:Linux Mint 16、Intel SSD、8 gB RAM、8コアAMD FX-8320 CPU @ 3.5 gHZ
ここで大きな驚きがあります:sはdより1桁速くタスクを完了します。両方のマシンでプログラムを数回実行しましたが、sは約3〜4分でタスクを完了しますが、dは12分から30分以上かかります(時間の経過を失いました)。どちらも、コンピューティング中にコア(つまり、すべてのコアが100%)を完全に使い果たします。この現象は、sで開いている補助プログラム(Firefoxなど)でさえ、dで実行されているものはありません。
しかし、コードは同じです。コンパイラフラグは同じです。出力も同じです。私はsとdの両方からドライブを取り外し、それらを交換してから、プログラムを再度実行しました。その結果、現象は持続しました。クアッドコア2.4 gHZ CPUは、8コア3.5 gHZ CPUを大幅に上回りました。
もちろん、これは本当に不可解であり、完全に直感に反します。誰が何が起こっているのか教えてもらえますか?