PCやコンパイラを更新したことでどのぐらい計算が高速化したか考えたいと思います。
PCの更新はcore-i7が第4世代から第6世代に進み、コンパイラは2009年ぐらいに購入したものを今年(2016年)に更新したというようなぐらいです。
そこで、全く同じ計算プログラム(Fortran)を両方で走らせてみました。新しい環境(PC,コンパイラ)と以前の環境(PC,コンパイラ)です。今、横並びで見ているのですが、ひょっとしたら以前の方が早いかもしれないという結果になっているのです。これはおかしなことだと思うのですが、いかがでしょうか。
あと考えられるのは新しい環境ではコンパイラオプションの有無で様子が大幅に異なるとかですが。
ここでいう環境の進化はお金をつぎ込んでものを買ったというだけのことであり、ソースコードの工夫とか並列による高速化は全く考えていません。でも早くなって欲しかったのですが。
第6世代というのは私が想像していたような高速化とは違うところの更新なのでしょうか。
大昔、DECアルファチップによる計算の高速化への驚きが忘れられません。ソースコードを全く手を加えずにコンピュータを変えてコンパイラを変えただけだったのですが。
どのようなものなのでしょうか。
No.4ベストアンサー
- 回答日時:
DEC alphaの時代はパソコンCPUはまだまだ遅くて大型計算機やスパコンの技術をパソコンCPUにダウンサイジングして簡単に性能が上がったのです。
今やスパコンにパソコン向けとほとんど同じCPUを使う時代です。昔、簡単に速度アップできた方法は既に尽くされているので、全く異なるアプローチをしないと性能アップは期待できません。そして今の性能アップの方向性は並列処理です。昔ながらのシングルスレッド処理はほとんど性能アップできなくなっています。
ちなみにCore i7のスペックを確認してみましたが、第4世代から第6世代では同等スペックでクロックが下がっているケースがあるので、処理によっては遅くなっても当然でしょう。
# https://ja.wikipedia.org/wiki/Intel_Core_i7#Core …
# 例えば 4790Kの4.0GHz(Max4.4GHz)と6700Kの4.0GHz(Max4.2GHz)
# 4790の3.6GHz(Max4.0GHz)と6700の3.4GHz(Max4.0GHz)
コンパイラオプションやソースコードの工夫で並列性を上げたり、CPUに依存する最適化をしない場合、数値演算系プログラムの実行性能はほぼクロックに依存します。
No.3
- 回答日時:
> core-i7が第4世代から第6世代
core i7と言ってもいろいろあります。演算性能はクロックとかキャッシュサイズとかで全然違いますので型式で言ってもらわないと妥当な比較をしているかどうか判断できません。あとメモリの種類と量も。
なお同等スペックというなら4xxxから6xxxだと素の整数演算性能は10%も変わらないんじゃないですか。
コンパイラについても同様です。具体的なコンパイラが分からないと何も言えません。
なおCPUの性能向上は最近はSIMD命令とかGPGPUとかのベクトル演算が中心です。
コンパイラも当然にそういうコードの性能を上げる方向に進化していると考えられます。
何の工夫もないシングルスレッドのコードだと吐くバイナリは一緒かもしれません。
あとコンパイラが最新CPUに対応していないと最適化チューニングが十分でない可能性もあります。
回答ありがとうございました。細々としたスペック依存ということですね。
DECアルファのときは、その速度の増加はけた違いで、数十万円の投資でしたが、すぐさま回収できたって感じでした。
最適なスペック、最適なチューニングをすれば早くなる、ということだと条件付き高速化ですのでそれに費やす時間の投資が回収できるかどうかわからないという気がしています。有無を言わさぬ高速化ということはもうないのだなという思いです。
No.2
- 回答日時:
車で例えるなら、パソコン(core-i7)は普通乗用車。
DECアルファチップは、旧式とはいえどもF1レースカー。
最近は性能が良くなってきたと言っても、走りに特化した
レースカーと使い勝手や乗り心地を重視した普通車とでは
差が出てくるのは当たり前。
#WindowsはGUI環境を実現する為にも、CPUやメモリ等を
#多く使用する為、計算速度の高速化に挑戦するには限度
#が有ります。
回答ありがとうございます。当時はPentium2ぐらいで計算していて数十万円でDecアルファを購入してその速さに仰天しました。その後Itanum2も使用しましたが、アルファ越えの感動はありませんでしたね。もうDecアルファはないのでしょうか。高速計算機の会社はXeonとGPUのマシンばかりで。GPUはアレコレ下調べしないと行けないからある意味投資も大きいわけです。
DECの感動を今一度と思っているのですが。
No.1
- 回答日時:
ちょっとFortranなどは全然知らないのですが、
プログラムがシングルスレッドであれば多コアにしても全然早くならない
ということはあるんでは無いでしょうか。
回答ありがとうございました。並列化を一生懸命やれば早くなるのかなとは思います。比較する対象が両方ともシングルスレッドなので、CPUを更新することでシングルスレッドとしての高速化はあるのかもしれないと思ったのですが。CPU比較をしているサイトがありますね。横方向の棒グラフでCPUの能力を比較するような。Spec int , Spec fpとかですかね? あの比率ぐらいでは早くなるだろうと思ったのですが。少なくとも遅くなるということは考えにくいです。(実際遅くなったような気もするのです。体感ですが。)
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ソフトの開発言語を調べる方法
-
BCC Developer開発環境でソケッ...
-
#pragmaとは
-
C++でデスクトップGUIアプリ開...
-
COBOLの論理演算子について
-
VisualStudioはQuadコア対応で...
-
unsigned long long 型のフォー...
-
プログラマーに向いている人の...
-
C言語を始めるにあたっての準備
-
C言語を勉強中で・・・・
-
AIXとCOBOLについて
-
C++でprintfが使えない?
-
printfなど、標準関数のソース...
-
main() 関数は、int を返値とす...
-
C言語はC言語でできている?
-
cc と gcc の違い
-
C言語でのコンパイラの作成方法
-
python エラー
-
アプリケーションのDLLファイル...
-
エクセルのエラーメッセージ「4...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
unsigned long long 型のフォー...
-
ソフトの開発言語を調べる方法
-
プログラマーに向いている人の...
-
printfなど、標準関数のソース...
-
cc と gcc の違い
-
組み込みソフト。ROM領域にデータ
-
C++Builder → Visual C++ 移植...
-
COBOLの論理演算子について質問...
-
COBOLのALPHABET...
-
VC++の/Zm オプションについて
-
リリースモードとデバッグモー...
-
C++でデスクトップGUIアプリ開...
-
PICでのI2C通信でのマスタ、ス...
-
C言語の規格
-
パーサとコンパイラの違いって?
-
void型のポインタで構造体の参照
-
VisualC++6.0でのProfessionalE...
-
OpenMAXというものについて、簡...
-
#pragmaとは
-
<conio.h>?
おすすめ情報