結論から先に言うと,OS環境下によって挙動が違いますよ、って話。特にMacは不利です(´Д` )
rstanのサンプルコードで8schoolsというのがありますが,それの実行にかかる時間が実は全然違う。
Ubuntuとwindowsはいずれもmacの仮想環境上で働いているんだけど,実行結果はこんな感じ。
まずUbuntu.
4つめの鎖だけですが,瞬殺(0.04sec)。次いでWindows.
これも0.05sec。ところがMacだと
0.5sec…。いや,十分速いんですけど,10倍の違いがあるのはびっくり。
これは簡単な回帰モデルだから,ほとんど時間を感じませんけど,今個人的に書いているコードはちょい複雑。なので,Macで300秒ぐらいかかって,仕方ねえなあと思っていましたが,共同研究者がどうも結果をスイスイ出すので,?とおもって環境を変えてUbuntuにしてみたら,13secで答えが出た。コレはちょっと驚き。
多分rstanのコードがmacのコンパイラに最適化されていないんでしょうね。詳しくないのでわかりませんが。
ちなみに,結果ですが,それはそんなに心配しなくてもOKだとおもう。順にUbuntu,Windows,Macでの結果をのせます。
乱数の発生機序がちがったりするから,同じになるはずは内し,まあ少なくとも1の位のオーダーでは狂ってないし,収束の程度(Rhat)も「こっちなら収束するのに?!」なんてことはないようです(たぶん)。
絵面を見ると,Mac>Ubuntu>Winの順で美しいですが,スピードが遅すぎるのはちょっと困るなぁ。ということで、当方しばらくは仮想環境上で仕事しようと思います。
※もし壮大な勘違いかなんかで,こうすればいいんだよ,というご指摘があればお願いします。