いろいろなrstanの入れ方

rstanをWindows,Mac,Ubuntuに入れた雑感。

一番入れやすかったのはUbuntu.普段のパッケージもコンパイルしながら遣って行くことが多いからか,あっという間に終わる、ということはないんだけど,丁寧に一つ一つRcpp,inline,rstanをコンパイルして入れていく。特にエラーもないので,待っているだけでいい。g++コンパイラとの相性の良さがありがたい。(参考記事)

次に入れやすかったのはWindows.Rtoolsというソフトの追加インストールが必要で,そこにcygwinのコンパイラが入っているが,ユーザーは気にするほどでもない。インストールするときに,PATHを書き加えることを忘れずに。後はRcppやinlineをパッケージとして入れればよし。ただ,Program Filesフォルダなど,デフォルトの場所にパッケージ等を入れてしまうと,rstanのインストールのときにこける。私はCドライブ直下にmyRlibフォルダを作って回避した。後はスイスイ進みます。

Ubuntuとwindowsの場合,コンパイラがちゃんと入っているかどうかを確認するコードで,cxxfunction関数を使うところがあるけど,ここでエラーが出ることもある。そんな場合は,cppFunctionで書き直すとよい。これらの違いはよくわかってないんだけど,ここはコンパイラがあるかどうかを各にするだけのところだから,ね。(参考記事1/参考記事2)

 

面倒だったのがMac。コンパイラを入れるためにXcodeをインストールする必要がある。さらに,コンパイルのオプション指定等でMakevarsファイルを不可視フォルダに作る必要があり,インストール最中も公式サンプルの通りにやるとwarningが出る。このwarning,出たまま無視していてもrstanはなんとか入るんだけど,実際の計算時にちょっと挙動が怪しい。

rstan users MLの記事を参考に,Makevarsファイルを次のようにしたらエラーなくコンパイルできるようになる。

CXX=clang++ -arch x86_64 -ftemplate-depth-256 -stdlib=libstdc++
CXXFLAGS="-mtune=native -O3 -Wall -pedantic -Wconversion

g++をclang++に変えるところがミソね。関連記事は自前だけどこちら

 

まあコンパイルできてしまえば,後はいいんだけどね。コンパイル後のマシン性能の比較については、別記事を立てる予定。

※ちなみに,当方メインはMac.Ubuntu,Windows8はParallels desktopで仮想環境をくんでいます。