メルセンヌ素数で”FLOPS vs. Memory Bandwidth”を体験する


 50番目のメルセンヌ素数が見つかった,つーか,素数であることの検証が済んだ,という記事に呼応して下記のようなTweetをした。

 これって,”FLOPS vs. Memory Bandwidth”に通じる話でもあるなと思ったので,ここでもう少し詳細にメモっておく。上記のTweetより少し手直ししたプログラムは下記の通り。

 Tweetに挙げたのは\(2^p\)(mpz_ui_pow_ui関数で計算)と\(2^{p – 1}\)(mpz_sub_ui関数で計算)の両方をファイルに書き出す奴だったので,後者のみ書き出すようにするとほぼ半分の時間で済む。

 10進数テキストで書き出すと大体45MBぐらいのファイルになる訳だが,ネット越しだとダウンロードする方が時間がかかる。100BASE-TXの環境でもイーブン。大体,計算そのものにかかる時間よりファイルに書き出す時間の方が問題で,更に言うと,メインメモリ内部のデータ移動の法に時間が費やされている。128MBぐらいのL3キャッシュがあれば,FLOPS(この場合は整数演算だからMIPSだけど)上げるよりもずっと高速に計算終了している筈で,さらに言えば,ファイルに書き出しせずにオンメモリで済むならもっと高速。つまりCPU内部の演算効率よりメモリ帯域(memory bandwidth)の方がよっぽど問題,というお話になるわけで。

 という自分用メモ。

[2018-01-26(Fri) 追記] 「多倍長数値計算入門(仮)」執筆開始につき,上記のCプログラムをJuliaスクリプトで書き直してみた。なーるほど,これは使いやすいや。

2018年1月1日(月・祝)?

 明けましておめでとうございます。本年もよろしくお願い致します。

 昨年は殆ど更新しなかったが,今年はせめて週報とか月報程度のことは書いていきたいものである。遅ればせながら英語やり始めたり,「LAPACK/BLAS入門」の出張講義したり(PDF),出るあてがあるんだかないんだか分らん本のリライトを始めたりして,年なりにできることをチマチマやってきたので,本年はそれを継続していきたい。

 ま,守れないのはいつものことだが,年初ぐらいは抱負を語るのも悪くないかな。ともかく,今後ともよろしくお願い致しまする。

8/12(土) 駿府・?

 今週は月曜日午後から職場がロックアウトされているので,自宅でシコシコダラダラ過ごす。積ん読していた漫画類をほぼクリアした以外は,神さんとWindowsマシンとワシの自宅MacBook AirをWindows 10 1703にアップデートする作業に費やしていた。

 神さんのマシンはWin10化していたのだが,何故だか7月のupdateしてたらブート途中でブルースクリーンになる症状が出てオジャンになっていたのを,Windows 7に戻してから(Office 2010 Personal入れなきゃならんので)改めてWindows 10にするという,途中のUpdate時間だけがやたらにかかる作業。ハードウェアのトラブルではないらしく,HDDは正常だったので原因は不明だが,一応元に戻せたのでよしとする。一つ感心したのは,Windows 10のライセンスは,以前,無料アップデート期間中にWin7 -> Win10にした時にアクティベーションしたものがそのまま使えたこと。当たり前のことなんだけど,改めてライセンス取り直しで金払うとなればアホらしいからねぇ。

 ワシのMacBook Airは,Boot Camp環境のWin 8.1を10にしたこと。そのままアップデートできればよかったのだが,あいにくDreamSparkのWin8.1 Enterprise版を入れてしまっていたので,Win10のEnterprise版にするには改めてクリーンインストールせねばならず,それならばPro版にしておこうということで改めてインストールし直ししたのであった。

 結局2台ともクリーンインストールではあったが,古い環境を一掃できたのはよかったかなと。Cloud時代になって,必要なデータファイルはiCloud,Google Drive(Backup & Sync),OneDriveに入れてあるのも幸いした。おかげでmacOS SerraでもWin10でもアプリさえ入れなおせばすぐに作業が続けられるのも時代であるなぁとシミジミ。

 そういえば,今日はVPSへ移動させたワシのWebアプリをPerl CGiからPHPに変換したのであった。今更Perl CGI環境を維持したところで良いことないし,セキュリティ的にもイヤ。時代的にもPHPは必要最小限,サーバ側のデータ入出力だけにとどめ,殆どのUIはJavaScriptで実装という流れだし,Webアプリもどんどん分業化が進む昨今である。

 ボチボチ寝ます。

6/10(金) 霧島温泉->駿府・晴

 第45回数値解析シンポジウム3日目である。昨日は若い人に交じってただ一人40代後半のPCセッション発表者となり,汗だくで発表を終えたのであった。温泉の見事さ・デカさを除いても有意義な三日間であった。

IMAG1131

 しかし,45回目ということは45年目ということで,第1回目の参加者(確か主催者でもあったはず)のワシの大師匠がご存命どころかご健勝であることは誠にめでたいことである。第40回目を最後に引退するのよ私と言い残してからのほうがお元気なような気がするのは気のせいではあるまい。

IMAG1114

 近年の数値解析はすっかり数学解析というべき様相を経ていて,一見さんには難しい中身が多い(ワシのは初等的過ぎ)。つまりそれだけ数値計算ニーズはユビキタスとなり,それをいかに高度化して複雑化する一方の現代社会に適用するためのツールとして定着しているという証でもある。最後の講演は通販サイトのrecommendationをSVDを介して行うという内容であったが,当たり前のように基底とか特異値という言葉が出てくるあたり,ボチボチ線形代数というものの中味も変えるべき時期に来ているんじゃないのかなぁという気がしてくる。実用直結のテキスト,誰か書きなさい。
 英気を養ったので,今後は精進して研究と執筆と神さん孝行に徹する日々を送るのである。

 神さんとシミジミしてから寝ます。

5/30(月) 駿府・雨後曇

 この5月はGW依頼暑い日が続いていたが,本日は肌寒く雨がそぼ降る朝となった。今週は明日以降晴れが続くようで,梅雨入りは来週になりそうとのこと。気候不順で風邪をひいたのか,ゴホゴホ咳き込む奴らが目立つ昨今である。

 本体と共に注文したつもりのSurface Pro 4用キーボードパッド,注文が通ってなかったことが判明して手続きを取り,ようやく本体とくっついた。おかげで快適快適。MacBook Airに比べてちょっとキーが固いが,十分実用に耐える。純正日本語109キーボードだけあって,Mac独特のキーなどない分,スムーズに打ててなかなか良い。鹿児島の霧島温泉NAS2016では活躍しそうである。

 LAPACK/BLAS入門(仮),まだ手元にゲラも来てないのだが,本年9月以降に発行と相成った。よろしくお願い致します。

 2016 05 30 9 55 Office Lens

 多倍長数値解析入門の方も早く上げなきゃいかんなぁ。6月は頑張らないとえらいことになるのである。つーことで何とか本日で整数演算アルゴリズムのところをざっと書き上げて次のステップに進むことにするのである。

 あ,そうそう,M先生のご尽力により,職場のメールがOffice365で運用されることになった。つーことでおにゅうなアドレスを使い始めている。どこにいても送受信できる職場ドメインのアドレス,ほしかったんだよねぇ。ありがとうございました。つーことでおにゅうなOffice365のアドレスはおいおい告知していくことにして,Webには極力出さないようにしよう。プライベートなやりとりはGmailかYahoo! Japanメールで十分だしねぇ。

 もっとまめに書かねばならんなぁと思いつつ,余裕がないと書けないのである。ま,気長に付き合っていくことにしよう。

 寝ます。