AWS EC2上にRevolution R Openをインストールするメモ。
Revolution R OpenはRevolution Analytics社よりリリースされている、オープンソースかつ無料で使える、より高速なRです。
オリジナルのRはデフォルトではシングルスレッドで動作しますが、Revolution R Openはマルチスレッド処理に対応します。
また、オリジナルのRスクリプトも変更なく使えます。
0. instance立ち上げ
EC2上にinstanceを立ち上げる。
とりあえず、お試しでm4.2xlarge (8 core)でも良いかも。
AWS m4.2xlarge
OS: Aamzon Linux
ツール、データはS3上に上げておくと、外部からダウンロードするより少し早いし、お財布にも少し優しい。
1. yum update
$ sudo yum -y update
2. swap設定
EC2instanceがt2.microのときswap領域を設定する
$ sudo dd if=/dev/zero of=/swap.img bs=1M count=2048
$ sudo chmod 600 /swap.img
$ sudo mkswap /swap.img
$ sudo bash -c 'echo "/swap.img swap swap defaults 0 0" >> /etc/fstab'
swapを有効にする
$ sudo swapon -a
3. 日本時間に設定
$ sudo bash -c 'sed -e "s/ZONE=\"UTC\"/ZONE=\"Asia\/Tokyo\"/" < /etc/sysconfig/clock > /etc/sysconfig/clock.new'
$ sudo mv /etc/sysconfig/clock.new /etc/sysconfig/clock
$ sudo ln -sf /usr/share/zoneinfo/Asia/Tokyo /etc/localtime
$ sudo reboot
4. その他のツールのインストール
- jq
sudo yum -y install jq
- tmux
sudo yum -y install tmux
vi ~/.tmux.conf
set-window-option -g utf8 on # 日本語環境なら今のところ必須。
set-window-option -g mode-keys vi # コピーモードのキーマップ。標準はemacs
set-window-option -g automatic-rename off # ウィンドウ名が自動的に更新されないように
# t_Coを指定しているとtmuxでは色が正しくでないのでコメントに
# set t_Co=88
- mosh
sudo yum --enablerepo=epel install -y mosh
moshを使うならUDPの60000-61000を空けておく
- Install Git
sudo yum install -y git
- parallel
wget http://linuxsoft.cern.ch/cern/centos/7/cern/x86_64/Packages/parallel-20150522-1.el7.cern.noarch.rpm
sudo rpm -ivh parallel-20150522-1.el7.cern.noarch.rpm
- mpstat
sudo yum install -y sysstat
-P ALL ですべてのコアの情報が表示される。
mpstat -P ALL
- dstat
sudo yum install -y dstat
時間,CPU使用率,ロードアベレージ,メモリ使用量をファイルに保存するには
dstat -tclm --output dstat_log.csv
参考:dstat使ってみる - tweeeetyのぶろぐ的めも http://tweeeety.hateblo.jp/entry/20140121/1390275336
5. Revolution R Open 3.2.2インストール(2015/12/25の時点)
sudo yum install -y gcc* curl-devel
wget https://mran.revolutionanalytics.com/install/RRO-3.2.2.el7.x86_64.rpm
sudo yum install -y RRO-3.2.2.el7.x86_64.rpm
wget https://mran.revolutionanalytics.com/install/RevoMath-3.2.2.tar.gz
tar zxvf RevoMath-3.2.2.tar.gz
cd RevoMath
sudo ./RevoMath.sh
Choose option 1 to install MKL and follow the onscreen prompts.
R
8coreなら半分の4coreをつかうようになる。(以下,起動時のメッセージ)
Multithreaded BLAS/LAPACK libraries detected. Using 4 cores for math algorithms.
適当にマルチスレッド関係のパッケージのインストール
# INSTALL PARALLELR COMMON PACKAGES
install.packages("foreach", "iterators")
# REGISTER A PARALLEL BACKEND FOR PARALLEL COMPUTING
# Basic parallel backend for Windows
install.packages("doParallel")
# Basic parallel backend for Linux, OS X
install.packages("doMC")
# Cluster parallel backend (multiple nodes connected via snow network) for any platform
install.packages("doSNOW")
install.packages("SuppDists")
動作確認
The Benefits of Multithreaded Performance with RRO · MRAN https://mran.revolutionanalytics.com/documents/rro/multithread/#mt-setget
wget https://gist.github.com/j-martens/a4d2fb38ed15147f7e47/raw/e0b283fd796c5d0f73646067e8eeb095b0c0e05d/mkl-benchmark-rro.R
wget https://gist.github.com/j-martens/834b021ef69953d6ff2c/raw/0114eb308fd399dcc59cb852cb1f437e5f467649/urbanek-benchmark-25.R
R --vanilla --slave < mkl-benchmark-rro.R
R --vanilla --slave < urbanek-benchmark-25.R