rstan2.6登場〜

rstan2.6が来ましたねえ。今度rstanの導入を人前で話すので,このタイミングでの登場はありがたいかなあ(直前にこられたら対応できないもんね)。

ということで,いつものベンチマーク。今回は,最近見つけたんだけど,rstanの本家サイトで並列化処理のやり方が書いてあったので,これは,と思って取り入れてみました。

関数の前と後ろにproc.time()関数で時間を取って引き算したので,コンパイルも含めて実際にかかった時間がわかるという寸法よ。

まずは母艦から。

rstan2.6Mac

 

やったぜ。速いぜ。15秒ぐらいで出来るようです。あ,数字の「経過」のところが所要時間。上が非並列,下が並列化した数字です。サンプリングそのものは遅いみたいだけど,全体としてはかなり早い印象。あと,並列化すると結果がいっぺんにドバッと出てきて面白いね。

次にUbuntu.MacのParallels10から使ってます。これに8コア,メモリはありったけ(仮想の上限?27764MB)与えてやってみたらこんな感じ。34〜37秒で終わっているようです。

rstan2.6Ubuntu

 

最後にWindows(via Parallels 10)。これも8コアで,メモリも仮想マシンにありったけ(27764MB)のせてます。で,並列処理の書き方が他とちょっと違うので,これで8コアちゃんと使えているのか自信がないけど。43〜44秒ってとこですね。

 

rstan2.6_win

 

ということで,結果はMac>Ubuntu>Windowsとなったわけです。今まではコンパイルの時間を入れてなかったから?Macが遅いかなあと思っていたんだけど,こうしてみるとそうでもないんだよねー。仮想マシンはやっぱり実機にかてるわけじゃないのか。

あと,共通して,並列処理させてもそんなに結果が変わらないってことがわかりますね。

ひとまず。

投稿日:
カテゴリー: Rstan