- 締切済み
計算機のスペックとプログラム実行速度について
以下のような2つのPCがあります。 A Intel(R) Core(TM) i5-8400 CPU @ 2.80GHz 2.81 GHz B Intel(R) Core(TM) i9-10900X CPU @ 3.70GHz 3.70 GHz この計算機に全く同じソースコードで同じコンパイラで実行させてみました。両者とも高速化に関する工夫を全くしない状態です。 言語はFortranで、コンパイラはgfortranです。時間発展計算で、計算の実行時間は1時間ぐらいでしょうか。 私はコンパイラの性能の分だけの違いが出るはずだと思っていましたのでBの方が3割ぐらい早いかなと思っていたのですが。実行の様子をみるとほぼ互角でひょっとするとAが勝っているような感じです。 計算の進行に従って画面にプリント表示する時間ステップの進行速度での印象です。 高性能のCPUの力を出し切るような環境になっていないとその性能は引き出せないし、逆の結果にさえなるということでしょうか。 CPUの性能をフルに引き出すにはソースコードの工夫、高機能コンパイラ、最適なコンパイラオプションの選択ということになるのでしょうか。Aの方も同様に工夫しても高速化が改善されずBがどんどん早くなる、ということなのでしょうか。
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- superside0
- ベストアンサー率64% (463/719)
回答No.4
- f272
- ベストアンサー率46% (8653/18507)
回答No.3
- superside0
- ベストアンサー率64% (463/719)
回答No.2
- superside0
- ベストアンサー率64% (463/719)
回答No.1
お礼
回答ありがとうございます。実行時にタスクマネージャで稼働率のグラフを見てみると20%ぐらいであり、CPUのコアをフルに使っていないことが分かりました。律速段階(ホットスポット)についてはどこということはなく、時間発展に関して足踏み(反復処理)をしているところはありません。1000x1000ぐらいの2次元配列を掃過して時間発展を求めていくので負荷は一様だと思われます。とにかくCPUのパワーを引き出すようなコードになっていないようです。ただ、CPUのパワーを引き出してないにしてもそれも同じ条件なのだからCPUのスペックが違うならその差は出るだろうと思ったのですが。