同じコード、異なるコンピューター-直感に反するパフォーマンスの大きな違い


0

TL; DR:パフォーマンスコンピューティングを行っていますが、表面上は「弱い」マシンが「強い」マシンよりも桁違いに優れていることがわかりました。どうして?

プロジェクトのCコードをいくつか書きました。これには、擬似ランダムデータを生成する長いプロセスの10,000回の反復が含まれ、各反復後にデータをファイルに書き込みます。私#pragma omp parallel forはタスクをマルチスレッド化するために使用しました。

プログラムを2台のマシンで実行できます。それらをsdと呼びましょう。関連する仕様は次のとおりです(問題になる可能性のある他の仕様についてはお問い合わせください)。

  • 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

ここで大きな驚きがあります:sdより1桁速くタスクを完了します。両方のマシンでプログラムを数回実行しましたが、sは約3〜4分でタスクを完了しますが、dは12分から30分以上かかります(時間の経過を失いました)。どちらも、コンピューティング中にコア(つまり、すべてのコアが100%)を完全に使い果たします。この現象は、sで開いている補助プログラム(Firefoxなど)でさえ、dで実行されているものはありません。

しかし、コードは同じです。コンパイラフラグは同じです。出力も同じです。私はsdの両方からドライブを取り外し、それらを交換してから、プログラムを再度実行しました。その結果、現象は持続しました。クアッドコア2.4 gHZ CPUは、8コア3.5 gHZ CPUを大幅に上回りました。

もちろん、これは本当に不可解であり、完全に直感に反します。誰が何が起こっているのか教えてもらえますか?


プロファイラーと測定を取得します。
ドゥールハイアーチ14

アムダールの法則および異なるシステムは、並列部分に加えて異なる速度で順次分数を実行します。
ブライアン14

Intelプロセッサはi3および4 コアですか?第4世代でも。i3、箱舟は2コアバージョンのみを表示します。おそらくあなたはXeon E3を意味しましたか?(4 スレッドのみの場合、これは比較をさらにゆがめます。)4倍のパフォーマンスの違いは奇妙に見えます。SPEC CPU2006 FP Rateは、パフォーマンスは向上しますが、「類似の」システム(AMD FX-8150対Intel Xeon E3-1220--Intelの34%の優位性)は、Intelシステムがおおよそ 10-15%だけ高速であるべきであることを暗示しているようです。。
ポールA.クレイトン14

また、彼らは同じコードを実行していると確信していますか?ポータブルバイナリには、異なるシステムをサポートするために複数のコードパスが含まれている場合があり、AMDシステムでは選択が最適ではない場合があります(Intel Cコンパイラはこの種の問題を抱えていました)。
ポールA.クレイトン14

@ PaulA.Clayton私のシステム診断によると、Intelプロセッサには4つのコアがあります。スクリーンショットは次のとおりです。imgur.com / fYKceHeコードの実行に関して良い点があります。おそらく、AMDプロセッサの選択は最適ではないでしょう。これについて何ができますか?これをどのようにテストできますか?使用できる別のコンパイラはありますか?(現時点ではGCCを使用しています。)
Newb 14

回答:


1

あなたが話しているのはメガヘルツ神話です。実際の計算速度はアーキテクチャと設計要因に依存するため、数値が大きいほど良いとは限りません。この問題に関する素晴らしいWebページを次に示します。


AMDプロセッサは、同時マルチスレッドと従来のマルチコアの間の設計でもあります。2つの「コア」は、フロントエンド(およびFP / SIMD機能)を共有するモジュールを形成しますが、整数実行とL1データキャッシュは別々です。すなわち、「中核神話」効果もあります。
ポールA.クレイトン14
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.