私は同じ C++ 実装を 2 つの異なる計算環境で実行しています。最初の環境は 48 Gb メモリの Xeon 2.3 GHz で、2 つ目は 3 Gb メモリの Core2 Duo 2.53 GHz です。コンパイルには、同様のオプションで g++ を使用しました。最初のシステムは 64 ビットの Red Hat、2 番目のシステムは 32 ビットの Ubuntu であることに注意してください。さらに、g++ のバージョンが異なり、最初のシステムではバージョン 4.1.2 がインストールされ、2 番目のシステムではバージョン 4.6.1 がインストールされます。
コードを実行すると、両方のシステムがまったく同じソリューションを返します。各システムの時間結果は次のとおりです。
System-1:
real 0m19.623s
user 2m13.588s
sys 0m3.118s
System-2:
real 0m11.229s
user 0m11.785s
sys 0m1.496s
2 つの質問があります。
- System-1 (より優れた計算環境) がこのコードを System-2 よりも劣って実行するのはなぜですか?
- System-1 では、リアルタイムとユーザー時間の差がかなりあります。なぜそのような状況が発生するのですか?