tokyo.r 白熱教室「これからのrcppの話をしよう」

Post on 15-Jan-2015

4.956 Views

Category:

Technology

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

第29回R勉強会@東京(#TokyoR)の資料

TRANSCRIPT

Tokyo. 白熱教室 「これからのRcppの話をしよう」

第29回 勉強会@東京(#TokyoR)

@teramonagi

2

Rcpp て何?

Rcppって?

3 (出所)CRAN・Rcppパッケージのサイトより

Rcppって?

4 (出所)CRAN・Rcppパッケージのサイトより

R言語の中で C++が使える

どのくらい 凄いのか?

5

魔・獣・召・喚 6 (出所)DeNA・神撃のバハムート・オフィシャルサイトより

1:R言語&C++(C言語) の昔の連携法

7

グワーッ!!! 8

.C・.Callという2つの方法 • .C関数による呼び出し

–生のCで書かんといかん –R側で関数を呼ぶのがとても手間

• .Call関数による呼び出し – (R側の)メモリ管理を自分でしないといけない –SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP

• 共通 –ShellからR CMD SHLIBで共有ライブラリ化&

dyn.load関数でR側にロード

9

コード・サンプル(.Call版)

10 (出所)第7回R勉強会@東京「RとC/C++の連携」 written by @sfchaos

くわしくはこちら

11 (出所)第7回R勉強会@東京「RとC/C++の連携」 written by @sfchaos

幾人もの勇者が帰らぬ人となった

12

2:Rcppの今

13

♥♥Heaven♥♥ 14

インストールのお話

• 本資料の対象OS:windows 7 64bit

–Mac:Xcode, gfortranあたり入れとけ

–Linux: r-base-dev or 開発系入れとけ

• 要するにC++コンパイラが必要

• わかんなかったら

–「Frequently Asked Questions about Rcpp」(PDF)

–Stackoverflowを「Rcpp」+関連用語検索

15

Rを入れます

16 (出所)CRAN

Rtoolsを入れます

17

(出所)CRAN、C++コンパイラ+linuxコマンド少々が入る。デフォルトのインストール先でOK、インストール済みのRのバージョンをcompatibilityに合わせる。C:¥Rtools¥binとC:¥Rtools¥gcc-ver¥binにはパスを通しておいた方が良い(今回の例では不要。ただしinlineパッケージを使う際には必要となる。よくpythonのパスと競合する点に注意)

Rstudioもいれます

18 (出所)RStudio、Recommendされた版で良いかと。インストール先もデフォルトでOK

Rstudioを起動してC++書きます

19

C++のコード(fibCpp.cpp)

20

Rのコード(script.R)

21 ※ここではfibCpp.cppはこのスクリプトと同じフォルダに保存してあるとする

計算を実行して速度比較

22

3000倍高速…!?!?

23

これからの Rcppの話をしよう 24

Rcppついに書籍化

25 (出所)Amazon.com

JSSにRcppEigen掲載

26 (出所)Jounal of Statistical Software

Rcppのこれからの活躍にご期待ください

27

top related