Google Cloud PlatformのRにRStanをインストールする

RStudio ServerをGoogle Computing Engineで動かす - yoshidk6’s blog に引き続き、VMインスタンスにRStanをインストールします。
以下の記事を参考にしてインストールを進めていきます。
Installing RStan on Mac or Linux · stan-dev/rstan Wiki · GitHub

Toolchain

build-essential, g++, libssl-dev をインストールします。

sudo apt-get update
sudo apt-get install build-essential g++ libssl-dev

Configuration

dpkg -s g++でg++のバージョンが4.9以降であることを確認します。 RStudio serverにログインし、以下のコードを実行してMakevarsファイルを作成します。

dotR <- file.path(Sys.getenv("HOME"), ".R")
if (!file.exists(dotR)) dir.create(dotR)
M <- file.path(dotR, "Makevars")
if (!file.exists(M)) file.create(M)
cat("\nCXXFLAGS=-O3 -mtune=native -march=native -Wno-unused-variable -Wno-unused-function", 
    file = M, sep = "\n", append = TRUE)

# Run only if g++ version is 4.9 or higher
cat("\nCXXFLAGS+=-flto -ffat-lto-objects  -Wno-unused-local-typedefs", 
    file = M, sep = "\n", append = TRUE)

Installing RStan

引き続きRStudio server上で以下のコードを実行し、RStanをインストールします。

install.packages("rstan", repos = "https://cloud.r-project.org/", dependencies=TRUE)

インストールに成功したら、Session -> Restart R でRを再起動します。
以下のコードを実行し、10が返されることを確認すればRStanのインストールは完了です。

fx <- inline::cxxfunction( signature(x = "integer", y = "numeric" ) , '
    return ScalarReal( INTEGER(x)[0] * REAL(y)[0] ) ;
' )
fx( 2L, 5 ) # should be 10