ちょっとTea Time!? 速度を比較してみる??腑に落ちない・・・・ 2020.7.1
日々の計算に暗算をしないようになって、どのくらいの日がたったろう?(笑
すくなくとも2桁を越える掛け算になると電卓を探し回ることになります。
暗算でするのは、スーパでお買い物に行ったときに、どのくらい買っているかな〜と考えるときくらい。
でも、大体誤差が倍くらいあります。レジを通して初めて、頭がボロ計算機であることがわかります。
EXCELは便利だけど・・・
さて、家でも計算は最近はもっぱらEXCELです。まあ、簡単につかえるといえばそれまでですが、
考えたらEXCEL程度で計算できることしかしていないという裏返しでもあるので、寂しいいえば寂しい。
でも、ちょっと込み入った(技術的な)計算になると、EXCELというもは不便なところもあります。
中にはマクロを器用につかう人もいて、なんでもマクロで組んでしまいそうだけど、とても真似できません。
マクロについては何度が勉強しようとして、本をかったりしたけど、結局積読になっちゃいます。
複雑な計算はやっぱりプログラムで
でもって、EXCELで仕切れない計算がでていきたらデータを一旦すべてテキストに落とし込んで、
それをCプログラムで読み込んで処理です。一旦、データを配列に叩き込んでしまえば、複雑な計算も
プログラム次第なのでEXCELで色々と悩むより簡単です。
で、問題は使うCプログラムです。なかなかWINDOWSでつかえるC言語がみつかりません。
いっそのことLINUXにしてしまうという手もありますが、そうすれば他の処理ができなくなるし・・・・。
VISUAL Cとかでもいいのですが、別にWINDOWSアプリのプログラムを組むのが目的ではないので、
あまり大げさなものは必要ありません。コマンドラインでつかえるもので十分です。
WINDOW用のCプログラムは
その中で見つけたのが、学習用C言語です。 結構サブタイトルも面白く、オモチャ程度かと思っていましたが、
意外と中身はしっかりしています。
https://9cguide.appspot.com/p_9cide.html 色々と使わせていただいています。
ただ、問題はすべてメニューでコンパイルしたり、実行したりする形になるので、すこし取り扱いが面倒です。
それに実行形式のファイルの取り扱いできません。つねにソースをコンパイルして実行になります。
ただ、これしかなかったので便利に使わせていただいていました。
MinGWをみつけました!
そこで、最近ふとみつけたのがMinGWです。WINDOWS環境でGCCをつかえるとのことです。
http://www.mingw.org/ インストール方法などはWEBを探せば色々とでてきます。
ようやく使っているPCにまともなC言語がつかるようになって、ちょっと喜んでしまいました。
ひょっとして、これを使えば本格的な数値解析にも応用できるかもしれません。
いままでは、数値解析にC言語をつかうとなると、やはりLINUXが必要だから、面倒でもRasPIでもつかうかな〜と
思っていましたが、メインのPCでGCCが使えるなら、かなりの速度が期待できるはずです。
使っているPCとRasPiの速度比較!
そこで、どのくらいの計算速度があるか知らべてみました。
計算プログラムは極めて簡単なものを使用しました。
機器間での比較がメインなので、まあ計算回数が多くなるようにひたすらループを回します。
比較に用いた計算プログラムです。
測定結果は意外
で、測定結果ですがかなり予想とちがいました。かなり腑に落ちない結果となりました。
機器名 | 構成 | コンパイラ(*) | 計算速度 (秒) |
|
メインのPC DELL780 |
CORE QUAD 3GHz | GCC | 10 | 一応これが基準。 |
サブのPC DELL755 |
PENTIUM DUAL 2GHz | 学習用C言語 (Small C) |
8 | オモチャ(失礼!)と思っていましたが、 古いPCでも早い!メインより早いのはちょっとショック。 |
MS SURFACE (ノート) |
Core i5 2.5GHz | GCC | 8 | Core i5なのでもっと早いと思っていただけど ちょっと残念。一番高かったのに・・・・ |
Raspberry Pi 3 B+ | GCC | 16 | 意外と早いのにびっくり!ほとんどPC並みじゃん! | |
Raspberry Pi 2 B | GCC | 33 | Pi3の半分程度だけど、それでも結構早い! |
(*)コンパイルオプションの最適化はかけていません。最適化を最大にするさらに10倍程度早く走ります。
う〜ん、数値解析するならどれでも良さそうな結果になってしまいました。一番びっくりしたのが、3GのCORE
QUADが2GのPENTIUM DUALに
負けています。これはコンパイラーの差なんだろうけど、ちょっと意外です。
ちなみに、CPM68Kあたりだとどうだろう? CBASICコンパイラだと浮動小数点はサポートしているので計算はしてくれるでしょう。
でも、同じ計算をさせたら1日〜1週間くらいかかりそうです(単にCPUが遅いだけでなく、浮動小数点プロセッサが搭載されていないのが
致命的です)。
訂正・・・ 2020.7.2
コンパイルオプションの−O4の効果は人間と同じ最適化でした(笑。
(おしまい)