シャコ・エビ日記

シャコパンチ、エビパチン研究者の記録

Google Computing Engine で rstan を動かすまで

前回のポストで、rstudio.cloud の紹介をした。{rstan}がインストールできなかったので、結局、Google Cloud Platform (GCP)にインストールした RStudio server を使用している。今はキャンペーン中で、1年間は無料で使える。なお、自分が仮想のコンピュータの管理者になれるので、当然ソフトウェア上の問題は自分でなんとかできる。   この記事の手順は、次の記事を参考にさせてもらい、ほぼ同じです。Ubuntu を選択したくらいしか違いはありませんが、{rstan}導入のところで、一度こけました。  

yoshidk6.hatenablog.com

 

インスタンスの作成

  ここではUbuntu 17.04 を選ぶ。

f:id:katsumushi:20171112181501p:plain

httpプロトコルを有効にして、ネットワークタグ allow-rstudio を有効にする(このタグ設定は別途必要。上記リンク先を参照)。

f:id:katsumushi:20171112222809p:plain      最新のR(現在3.4.2)のインストール  インスタンスを起動して、ブラウザSSHからログインする。  

echo "deb https://cran.rstudio.com/bin/linux/ubuntu $(lsb_release -cs)/" | sudo tee -a /etc/apt/sources.list

キーサーバーからキーを取得して登録する。

gpg --keyserver keyserver.ubuntu.com --recv-key E084DAB9 
gpg -a --export E084DAB9 | sudo apt-key add -

Rをインストール

sudo apt update
sudo apt install r-base

f:id:katsumushi:20171112232625p:plain

RStudio server のインストール

RStudio server のサイトの手順にしたがって、インストールする。

sudo apt-get install gdebi-core
wget https://download2.rstudio.org/rstudio-server-1.1.383-amd64.deb
sudo gdebi rstudio-server-1.1.383-amd64.deb

RStudio server を使用するユーザーを作成

sudo adduser scyllarus

パスワードも作成

インスタンスIPアドレスで接続

f:id:katsumushi:20171112234235p:plain

{tidyverse} のインストール

必要なライブラリをインストール

sudo apt-get install libcurl4-openssl-dev libssl-dev libxml2-dev

RStudio コンソールから、{tidyverse} をインストール。{rstan} のために必須というわけではないが。

install.packages("tidyverse")

{rstan} をインストール

必要なツールチェーンをインストール

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

これで、あとは、{rstan} を手順通りにインストールできるかと思いきや、ここでこけた。

結局、{devtools} をインストールして、github からインストール。その前に、Rコンソールで、次のように設定する。これは R Stan Getting Started) を参考にしている。

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)

cat("\nCXXFLAGS+=-flto -ffat-lto-objects  -Wno-unused-local-typedefs", 
    file = M, sep = "\n", append = TRUE)

cat("\nCXXFLAGS += -Wno-ignored-attributes -Wno-deprecated-declarations", 
    file = M, sep = "\n", append = TRUE)

install.packages("devtools")
devtools::install_github("stan-dev/rstan", ref = "develop", subdir = "rstan/rstan")

8schools.stan を動かしてみる

f:id:katsumushi:20171112235414p:plain