ちょっと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)
オモチャ(失礼!)と思っていましたが、
古い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の効果は人間と同じ最適化でした(笑。

(おしまい)