SlideShare une entreprise Scribd logo
1  sur  32
Rやってみた
〜高速化編〜
自己紹介
 約40年前 大阪に誕生
 約20年前 大学にてニューラルネットワーク&最適化
 約15年前 開発会社にて各種開発を5年くらい
 約10年前 現在(コンピュータ業界の)インフラ屋
 趣味
 3DCG
 プログラミング(主にAndroid)
 統計学はド素人、Rは素人
前回、Rを触ってみて結構面白かった
おやすみ
おはよう
個人的に
おっぱい
グラフからの推測
• 7時頃に起きる人が多い
• 0時頃に寝る人が多い
(寝る時間も時間に左右される)
→時計に縛られる日本人
・煩悩は夜に宿る ← new!
まじめにテーマを考える
 前回、前々回も出ていたモテモテのテーマ、それは…
高速化!
• 前半…“遅い”の詳細
• 後半…高速化
R業界の嫌われ者といえば「for」
 「forを使うな…」
 「forは遅い」
 「forは…」
どのページを見てもforの悪口だらけ
なぜ遅い?
エクセレントコード ウンコード
そもそもなぜfor文が遅いか?
 「ベクトルa」の平方根を「ベクトルb」に代入
OS
R
for(i in 1:10^6) b[i]<-sqrt(a[i])
関数
Rインタプリタ
OS
R
b<-sqrt(a)
関数
Rインタプリタ
ユーザ システム 経過
0.001 0.001 0.001
ユーザ システム 経過
16.440 7.205 23.681
という“推測”
推測を確認する
 Rでは処理時間の詳細(プロファイル)を調べる「Rprof()」を用いる
エクセレントコード ウンコード
> a <- c(1:10^7)
> Rprof()
> for( i in 1:1) b <- sqrt(a)
> Rprof(NULL)
> summaryRprof()
$by.total
total.time total.pct self.time self.pct
"sqrt" 0.18 100 0.18 100
> a <- c(1:10^5)
> b <- c()
> Rprof()
> for( i in 1:length(a)) b[i] <- sqrt(a[i])
> Rprof(NULL)
> summaryRprof()
$by.total
[1] total.time total.pct self.time self.pct
<0 行> (または長さ 0 の row.names)
R上では原因を観測できない
バグ?
→0.02秒間隔では検出不可(Rprof.out)
(ドつぼにはまっているが)
推測を「本腰入れて」確認する
 これ以上詳細を調査しようとすると
1. Rから詳細なログを出力して動きを追う
2. Rより下のレイヤから動きを追う
Instruments(プロファイルツール)
想像を本腰入れて確認する
〜エクセレントコード〜
a <- c(1:10^7)
for( i in 1:1) b <- sqrt(a)
ポイントは、平方根を取る目的の処理が
84%(262ms)の時間を使っているところ
 arithmetic.c
想像を本腰入れて確認する
do_math1の正体
SEXP attribute_hidden do_math1(SEXP call, SEXP op, SEXP args, SEXP env)
{
SEXP s;
checkArity(op, args);
check1arg(args, call, "x");
if (DispatchGroup("Math", call, op, args, env, &s))
return s;
if (isComplex(CAR(args)))
return complex_math1(call, op, args, env);
#define MATH1(x) math1(CAR(args), x, call);
switch (PRIMVAL(op)) {
case 1: return MATH1(floor);
case 2: return MATH1(ceil);
case 3: return MATH1(sqrt);
case 4: return MATH1(sign);
math関数呼び出し
/* Mathematical Functions of One Argument */
static SEXP math1(SEXP sa, double(*f)(double), SEXP lcall)
{
SEXP sy;
double *y, *a;
R_xlen_t i, n;
int naflag;
if (!isNumeric(sa))
errorcall(lcall, R_MSG_NONNUM_MATH);
n = xlength(sa);
/* coercion can lose the object bit */
PROTECT(sa = coerceVector(sa, REALSXP));
PROTECT(sy = allocVector(REALSXP, n));
a = REAL(sa);
y = REAL(sy);
naflag = 0;
for (i = 0; i < n; i++) {
if (ISNAN(a[i]))
y[i] = a[i];
else {
y[i] = f(a[i]);
if (ISNAN(y[i])) naflag = 1;
}
}
ここでSQRT処理
想像を本腰入れて確認する
〜ウンコード〜(2時間でギブアップ)
a <- c(1:10^7)
b <- c()
for( i in 1:10^7) b[i] <- sqrt(a[i])
このVectorAssignが99%の時間
を食っている
平方根を取る処理が
0.1%未満!
想像を本腰入れて確認する
〜ウンコード〜
a <- c(1:10^7)
b <- numeric(10^7)
for( i in 1:10^7) b[i] <- sqrt(a[i])
7,321,955ms(以上)から
31,276msへ改善!
事前に領域確保
平方根を取る目的の処理が
3,886ms(以上) から 2,159msに改善
for文は遅いのまとめ
 For文で処理をまわすなら迷わず領域を事前確保するべき
(2時間以上 → 30秒)
 領域を事前準備した場合
全体では約100倍の差
メインの処理(sqrt)の時間は約8倍の差
→内部の処理が時間差のほとんどを占める
全体(ms) math1 その他 備考
エクセレントコード 305 262 48
ウンコード 31,276 2,159 29,117 10^7回ループ
10^7回のループで
10^2の処理時間
は許容範囲
ここから
今回のメインテーマ
ベクトル化できない場合
そんなときは…
 アルゴリズム、プログラムの工夫
 並列化(複数スレッドを使用する)
 並列化(複数マシンを使用する)
 GPU並列化 変態向け
賢い人向け
玄人向け
マニア向け
色々ありそうなのでパス
対応関数が少ない
並列化(環境と動作イメージ)
 今回は4ノードを準備
Switch
ssh
① ノードでRを起動する。
② クラスタノードを指定する。
③ 並列化処理を実行
R
R
R
R
R
R
R
R
R
R
R
R
R
R R
R
④ 各ノードで指定された数だけRプ
ロセスを起動して処理
⑤ 結果を元のRに集約
・Xeon(R) CPU E31220
(4コア、3.10GHz)
・メモリ 16GB
並列化(Rでの書式)
① ノードでRを起動する。
② クラスタノードを指定する。
③ 並列化処理を実行
④ 各ノードで指定された数だけR
プロセスを起動して処理
⑤ 結果を元のRに集約
① ターミナルにて「r」を実行
② cl <- makeCluster(c(“サーバ名”,〜略〜), type = “SOCK”)
registerDoSNOW(cl)
③ foreach(i = 1:1000) %dopar% { sum(rnorm(10000)) }
④ ※ライブラリがやります
⑤ ※ライブラリがやります
並列化(使用するパッケージ)
以下のパッケージを使うことで別ノードを使用した並列化を容易に実
現
(すべてのノードにパッケージを事前にインストール)
 snow ・・・ Simple Network of Workstations
 foreach ・・・ for文を並列化する
 Iterators ・・・ 展開
 doSNOW ・・・ snowの簡易化(registerDoSNOW関数のみ)
単一ノード(スレッド)と複数ノードを
同じ様に扱うことができる
並列化評価
気になる2つのポイント
 並列化は本当に早くなるの?
 ネットワークはボトルネックにな
らないの?
Switch
ssh
R
R
R
R
R
R
R
R
R
R
R
R
R
R R
R
ボトル
ネック?
転送データ 小/大
処理時間 短/長
並列化(転送データ 小、処理時間 短)
 乱数ベクトルの合計を求める
system.time(for( i in 1:10^3 ) sum(rnorm(10^5)))
ユーザ システム 経過
8.486 0.000 8.483
単一プロセス
cl <- makeCluster(c("localhost”…), type = "SOCK")
registerDoSNOW(cl)
system.time(
foreach(i = 1:10^3) %dopar%{
sum(rnorm(10^5)) })
stopCluster(cl)
並列化
0
2
4
6
8
10
12
14
16
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
時間(秒)
並列度
並列度と処理時間(5回平均)
処理時間
7.1倍の高速化!
並列化(転送データ 小、処理時間 長)
 乱数ベクトルの合計を求める
system.time(for( i in 1:10^2 ) sum(rnorm(10^7)))
ユーザ システム 経過
84.372 0.576 85.008
単一プロセス
cl <- makeCluster(c("localhost”…), type = "SOCK")
registerDoSNOW(cl)
system.time(
foreach(i = 1:10^2) %dopar%{
sum(rnorm(10^7)) })
stopCluster(cl)
並列化
10^3から
変更
10^5から
変更
約10倍
0
10
20
30
40
50
60
70
80
90
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
時間(秒)
並列度
並列度と処理時間(5回平均)
処理時間
13.2倍の高速化!
「転送データ 大」の準備
 大きなデータの代表、画像データを処理しよう!
画像処理業界でおなじみ
の「Lena」たん
自主規制
(続きはWebで!)
Width:1084
Height:2318
Rで画像処理ってどういうこと?
 色を減らす「減色処理」に使える。
クラスター分析じゃない?RGB空間を色の数で分割
元画像 減色画像
並列化(転送データ 大、処理時間 短)
対象:LENAフル画像
処理:ランダムな点を返す
自主規制!
Width:1084
Height:2318
system.time(for(i in 1:10^3)
myimage[floor(runif(1,1,MAX_VALUE))])
ユーザ システム 経過
0.02 0.00 0.03
単一プロセス
cl <- makeCluster(c("localhost”…), type = "SOCK")
registerDoSNOW(cl)
system.time(
foreach(i = 1:num,.export=c(“myimage”,“MAX_VALUE”))
%dopar% myimage[floor(runif(1,1,MAX_VALUE))])
stopCluster(cl)
並列化
character vector of
variables to export.
0
2
4
6
8
10
12
14
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
時間(秒)
並列度
並列度と処理時間(5回平均)
処理時間
0
1000
2000
3000
4000
5000
6000
7000
8000
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
時間(秒)
並列度
並列度と処理時間
処理時間
並列化(転送データ 大、処理時間 長)
対象:LENAフル画像
処理:k-meansで減色
自主規制!
Width:1084
Height:2318
for(i in 1:16)
kmeans(myimage2,centers=255,iter.max=10,nstart=i)
ユーザ システム 経過
0.02 0.00 2時間以上
単一プロセス
ret_better <- function(x,y) {
if (x$tot.withinss < y$tot.withinss) x
else y
}
res_kmean <- foreach(i =
1:16,.combine="ret_better") %dopar%{
kmeans(myimage2,centers=255,iter.max=50,nstart=i)
}
並列化
減色例
元画像(フルカラー) 画像アプリ減色(256色) R減色(256色)
注:時間は数十倍、数百倍かかっています
高速化検証のまとめ
 やっぱりベクトル化した処理が早い
 for文使うときは事前に領域を準備することにより高速化
(個人的な感覚としては、なるべくforはさけた方がよいレベル)
 繰り返し処理はforeachを用いた並列化を積極的におすすめ!
 マルチコアマシンで容易に並列化
 マルチノードでも容易に並列化
 大きなデータは遅くなる場合がある
→処理が長ければ許容できる
転送データ量
大 小
処
理
時
間
長 ◎ ◎
短 × ○ぜひ、並列化を!
付録
並列化(転送データ 小、処理時間 中)
 コラッツの問題(未解決問題)
以下を繰り返すとどんな
値も1に集約する
・偶数なら2で割る
・奇数なら3を掛け1を足す
0
0.5
1
1.5
2
2.5
3
3.5
4
4.5
5
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
時間(秒)
並列度
並列度と経過時間(5回平均)
経過時間
ちなみに、コラッツの問題のグラフ化
 X軸方向に初期値、Y軸方向に繰り返し回数
付録(コラッツの問題)
do_cluster <- function(num=10^4, client_num=1){
cl <- makeCluster(c("localhost","localhost",中略,"Slave03")[1:client_num], type = "SOCK")
registerDoSNOW(cl)
ret = system.time(foreach(i = 1:num,.combine = "cbind") %dopar% {
n <- i
while(n != 1){
if( n %% 2 == 0 ) n <- n / 2
else n <- 3 * n + 1
}
})
stopCluster(cl)
ret
}
rm(ret)
test_count <- 15
ret <- c()
for (i in 0:test_count) ret <- cbind(ret,do_cluster(num=10^3, client_num = (i%%16)+1))
付録(減色処理)
library("biOps”)
myimage <- readJpeg("l_hires.jpg")
myimage2 <- matrix(myimage,ncol=3)
HEIGHT <- dim(myimage)[1]
WIDTH <- dim(myimage)[2]
ret_better <- function(x,y) {
if (x$tot.withinss < y$tot.withinss) x
else y
}
registerDoSNOW(makeCluster(2, type = "SOCK"))
res_kmean <- foreach(i = 1:30,.combine="ret_better") %dopar%{
kmeans(myimage2,centers=255,iter.max=50,nstart=i)
}
plot(imagedata(c(res_kmean$centers[res_kmean$cluster,]),type="rgb",ncol=HEIGHT,nrow=
WIDTH))

Contenu connexe

Tendances

[DL輪読会]Deep Learning 第18章 分配関数との対峙
[DL輪読会]Deep Learning 第18章 分配関数との対峙[DL輪読会]Deep Learning 第18章 分配関数との対峙
[DL輪読会]Deep Learning 第18章 分配関数との対峙Deep Learning JP
 
パターン認識第9章 学習ベクトル量子化
パターン認識第9章 学習ベクトル量子化パターン認識第9章 学習ベクトル量子化
パターン認識第9章 学習ベクトル量子化Miyoshi Yuya
 
機械学習モデルのハイパパラメータ最適化
機械学習モデルのハイパパラメータ最適化機械学習モデルのハイパパラメータ最適化
機械学習モデルのハイパパラメータ最適化gree_tech
 
FDRの使い方 (Kashiwa.R #3)
FDRの使い方 (Kashiwa.R #3)FDRの使い方 (Kashiwa.R #3)
FDRの使い方 (Kashiwa.R #3)Haruka Ozaki
 
スペクトラル・クラスタリング
スペクトラル・クラスタリングスペクトラル・クラスタリング
スペクトラル・クラスタリングAkira Miyazawa
 
相関と因果について考える:統計的因果推論、その(不)可能性の中心
相関と因果について考える:統計的因果推論、その(不)可能性の中心相関と因果について考える:統計的因果推論、その(不)可能性の中心
相関と因果について考える:統計的因果推論、その(不)可能性の中心takehikoihayashi
 
DiagrammeRと仲良くなった話ーグラフィカルモデルのためのDiagrammeR速習ー
DiagrammeRと仲良くなった話ーグラフィカルモデルのためのDiagrammeR速習ーDiagrammeRと仲良くなった話ーグラフィカルモデルのためのDiagrammeR速習ー
DiagrammeRと仲良くなった話ーグラフィカルモデルのためのDiagrammeR速習ーTakashi Yamane
 
グラフニューラルネットワーク入門
グラフニューラルネットワーク入門グラフニューラルネットワーク入門
グラフニューラルネットワーク入門ryosuke-kojima
 
最適輸送の解き方
最適輸送の解き方最適輸送の解き方
最適輸送の解き方joisino
 
パターン認識 第10章 決定木
パターン認識 第10章 決定木 パターン認識 第10章 決定木
パターン認識 第10章 決定木 Miyoshi Yuya
 
RでGPU使ってみた
RでGPU使ってみたRでGPU使ってみた
RでGPU使ってみたKazuya Wada
 
論文の図表レイアウト例
論文の図表レイアウト例論文の図表レイアウト例
論文の図表レイアウト例Sunao Hara
 
最適化計算の概要まとめ
最適化計算の概要まとめ最適化計算の概要まとめ
最適化計算の概要まとめYuichiro MInato
 
プログラミングコンテストでの動的計画法
プログラミングコンテストでの動的計画法プログラミングコンテストでの動的計画法
プログラミングコンテストでの動的計画法Takuya Akiba
 
初めてのグラフカット
初めてのグラフカット初めてのグラフカット
初めてのグラフカットTsubasa Hirakawa
 
階層モデルの分散パラメータの事前分布について
階層モデルの分散パラメータの事前分布について階層モデルの分散パラメータの事前分布について
階層モデルの分散パラメータの事前分布についてhoxo_m
 

Tendances (20)

[DL輪読会]Deep Learning 第18章 分配関数との対峙
[DL輪読会]Deep Learning 第18章 分配関数との対峙[DL輪読会]Deep Learning 第18章 分配関数との対峙
[DL輪読会]Deep Learning 第18章 分配関数との対峙
 
パターン認識第9章 学習ベクトル量子化
パターン認識第9章 学習ベクトル量子化パターン認識第9章 学習ベクトル量子化
パターン認識第9章 学習ベクトル量子化
 
機械学習モデルのハイパパラメータ最適化
機械学習モデルのハイパパラメータ最適化機械学習モデルのハイパパラメータ最適化
機械学習モデルのハイパパラメータ最適化
 
Rcppのすすめ
RcppのすすめRcppのすすめ
Rcppのすすめ
 
FDRの使い方 (Kashiwa.R #3)
FDRの使い方 (Kashiwa.R #3)FDRの使い方 (Kashiwa.R #3)
FDRの使い方 (Kashiwa.R #3)
 
スペクトラル・クラスタリング
スペクトラル・クラスタリングスペクトラル・クラスタリング
スペクトラル・クラスタリング
 
相関と因果について考える:統計的因果推論、その(不)可能性の中心
相関と因果について考える:統計的因果推論、その(不)可能性の中心相関と因果について考える:統計的因果推論、その(不)可能性の中心
相関と因果について考える:統計的因果推論、その(不)可能性の中心
 
DiagrammeRと仲良くなった話ーグラフィカルモデルのためのDiagrammeR速習ー
DiagrammeRと仲良くなった話ーグラフィカルモデルのためのDiagrammeR速習ーDiagrammeRと仲良くなった話ーグラフィカルモデルのためのDiagrammeR速習ー
DiagrammeRと仲良くなった話ーグラフィカルモデルのためのDiagrammeR速習ー
 
グラフニューラルネットワーク入門
グラフニューラルネットワーク入門グラフニューラルネットワーク入門
グラフニューラルネットワーク入門
 
最適輸送の解き方
最適輸送の解き方最適輸送の解き方
最適輸送の解き方
 
R seminar on igraph
R seminar on igraphR seminar on igraph
R seminar on igraph
 
パターン認識 第10章 決定木
パターン認識 第10章 決定木 パターン認識 第10章 決定木
パターン認識 第10章 決定木
 
RでGPU使ってみた
RでGPU使ってみたRでGPU使ってみた
RでGPU使ってみた
 
論文の図表レイアウト例
論文の図表レイアウト例論文の図表レイアウト例
論文の図表レイアウト例
 
最適化計算の概要まとめ
最適化計算の概要まとめ最適化計算の概要まとめ
最適化計算の概要まとめ
 
プログラミングコンテストでの動的計画法
プログラミングコンテストでの動的計画法プログラミングコンテストでの動的計画法
プログラミングコンテストでの動的計画法
 
階層ベイズとWAIC
階層ベイズとWAIC階層ベイズとWAIC
階層ベイズとWAIC
 
lsh
lshlsh
lsh
 
初めてのグラフカット
初めてのグラフカット初めてのグラフカット
初めてのグラフカット
 
階層モデルの分散パラメータの事前分布について
階層モデルの分散パラメータの事前分布について階層モデルの分散パラメータの事前分布について
階層モデルの分散パラメータの事前分布について
 

En vedette

RのffとbigmemoryとRevoScaleRとを比較してみた
RのffとbigmemoryとRevoScaleRとを比較してみたRのffとbigmemoryとRevoScaleRとを比較してみた
RのffとbigmemoryとRevoScaleRとを比較してみたKazuya Wada
 
Rstudio上でのパッケージインストールを便利にするaddin4githubinstall
Rstudio上でのパッケージインストールを便利にするaddin4githubinstallRstudio上でのパッケージインストールを便利にするaddin4githubinstall
Rstudio上でのパッケージインストールを便利にするaddin4githubinstallAtsushi Hayakawa
 
経験過程
経験過程経験過程
経験過程hoxo_m
 
シンギュラリティを知らずに機械学習を語るな
シンギュラリティを知らずに機械学習を語るなシンギュラリティを知らずに機械学習を語るな
シンギュラリティを知らずに機械学習を語るなhoxo_m
 
Rユーザのためのspark入門
Rユーザのためのspark入門Rユーザのためのspark入門
Rユーザのためのspark入門Shintaro Fukushima
 
5分でわかるベイズ確率
5分でわかるベイズ確率5分でわかるベイズ確率
5分でわかるベイズ確率hoxo_m
 
文字列カーネルによる辞書なしツイート分類 〜文字列カーネル入門〜
文字列カーネルによる辞書なしツイート分類 〜文字列カーネル入門〜文字列カーネルによる辞書なしツイート分類 〜文字列カーネル入門〜
文字列カーネルによる辞書なしツイート分類 〜文字列カーネル入門〜Takeshi Arabiki
 
チェビシェフの不等式
チェビシェフの不等式チェビシェフの不等式
チェビシェフの不等式hoxo_m
 
SparkRをつかってみた(Japan.R)
SparkRをつかってみた(Japan.R)SparkRをつかってみた(Japan.R)
SparkRをつかってみた(Japan.R)__john_smith__
 
Rで学ぶミニミニビッグデータ分析入門-第1回
Rで学ぶミニミニビッグデータ分析入門-第1回Rで学ぶミニミニビッグデータ分析入門-第1回
Rで学ぶミニミニビッグデータ分析入門-第1回Naruhiko Shiratori
 
Rをはじめからていねいに
RをはじめからていねいにRをはじめからていねいに
RをはじめからていねいにTsukasa Fukunaga
 
ベイズ統計学
ベイズ統計学ベイズ統計学
ベイズ統計学Monta Yashi
 
R を起動するその前に
R を起動するその前にR を起動するその前に
R を起動するその前にKosei ABE
 
R6パッケージの紹介―機能と実装
R6パッケージの紹介―機能と実装R6パッケージの紹介―機能と実装
R6パッケージの紹介―機能と実装__nakamichi__
 
Rのデータ構造とメモリ管理
Rのデータ構造とメモリ管理Rのデータ構造とメモリ管理
Rのデータ構造とメモリ管理Takeshi Arabiki
 
データの不備を統計的に見抜く (Gelman’s secret weapon)
データの不備を統計的に見抜く (Gelman’s secret weapon)データの不備を統計的に見抜く (Gelman’s secret weapon)
データの不備を統計的に見抜く (Gelman’s secret weapon)hoxo_m
 
関東第3回ゼロはじめるからR言語勉強会ー グラフ
関東第3回ゼロはじめるからR言語勉強会ー グラフ関東第3回ゼロはじめるからR言語勉強会ー グラフ
関東第3回ゼロはじめるからR言語勉強会ー グラフPaweł Rusin
 
統計的学習の基礎 4.4~
統計的学習の基礎 4.4~統計的学習の基礎 4.4~
統計的学習の基礎 4.4~Atsushi Hayakawa
 

En vedette (20)

RのffとbigmemoryとRevoScaleRとを比較してみた
RのffとbigmemoryとRevoScaleRとを比較してみたRのffとbigmemoryとRevoScaleRとを比較してみた
RのffとbigmemoryとRevoScaleRとを比較してみた
 
Rstudio上でのパッケージインストールを便利にするaddin4githubinstall
Rstudio上でのパッケージインストールを便利にするaddin4githubinstallRstudio上でのパッケージインストールを便利にするaddin4githubinstall
Rstudio上でのパッケージインストールを便利にするaddin4githubinstall
 
経験過程
経験過程経験過程
経験過程
 
シンギュラリティを知らずに機械学習を語るな
シンギュラリティを知らずに機械学習を語るなシンギュラリティを知らずに機械学習を語るな
シンギュラリティを知らずに機械学習を語るな
 
Rユーザのためのspark入門
Rユーザのためのspark入門Rユーザのためのspark入門
Rユーザのためのspark入門
 
5分でわかるベイズ確率
5分でわかるベイズ確率5分でわかるベイズ確率
5分でわかるベイズ確率
 
文字列カーネルによる辞書なしツイート分類 〜文字列カーネル入門〜
文字列カーネルによる辞書なしツイート分類 〜文字列カーネル入門〜文字列カーネルによる辞書なしツイート分類 〜文字列カーネル入門〜
文字列カーネルによる辞書なしツイート分類 〜文字列カーネル入門〜
 
チェビシェフの不等式
チェビシェフの不等式チェビシェフの不等式
チェビシェフの不等式
 
SparkRをつかってみた(Japan.R)
SparkRをつかってみた(Japan.R)SparkRをつかってみた(Japan.R)
SparkRをつかってみた(Japan.R)
 
Rで学ぶミニミニビッグデータ分析入門-第1回
Rで学ぶミニミニビッグデータ分析入門-第1回Rで学ぶミニミニビッグデータ分析入門-第1回
Rで学ぶミニミニビッグデータ分析入門-第1回
 
R入門編
R入門編R入門編
R入門編
 
Rをはじめからていねいに
RをはじめからていねいにRをはじめからていねいに
Rをはじめからていねいに
 
ベイズ統計学
ベイズ統計学ベイズ統計学
ベイズ統計学
 
R を起動するその前に
R を起動するその前にR を起動するその前に
R を起動するその前に
 
R6パッケージの紹介―機能と実装
R6パッケージの紹介―機能と実装R6パッケージの紹介―機能と実装
R6パッケージの紹介―機能と実装
 
Rのデータ構造とメモリ管理
Rのデータ構造とメモリ管理Rのデータ構造とメモリ管理
Rのデータ構造とメモリ管理
 
データの不備を統計的に見抜く (Gelman’s secret weapon)
データの不備を統計的に見抜く (Gelman’s secret weapon)データの不備を統計的に見抜く (Gelman’s secret weapon)
データの不備を統計的に見抜く (Gelman’s secret weapon)
 
関東第3回ゼロはじめるからR言語勉強会ー グラフ
関東第3回ゼロはじめるからR言語勉強会ー グラフ関東第3回ゼロはじめるからR言語勉強会ー グラフ
関東第3回ゼロはじめるからR言語勉強会ー グラフ
 
統計的学習の基礎 4.4~
統計的学習の基礎 4.4~統計的学習の基礎 4.4~
統計的学習の基礎 4.4~
 
Dslt祭り2夜
Dslt祭り2夜Dslt祭り2夜
Dslt祭り2夜
 

Similaire à R高速化

openFrameworks Workshop in Kanazawa v001
openFrameworks Workshop in Kanazawa v001openFrameworks Workshop in Kanazawa v001
openFrameworks Workshop in Kanazawa v001Teruaki Tsubokura
 
20120317 IT系勉強会 in 神戸
20120317 IT系勉強会 in 神戸20120317 IT系勉強会 in 神戸
20120317 IT系勉強会 in 神戸Takahiro Iwase
 
2016年2月4日 空間OSのためのビッグデータ技術基盤
2016年2月4日 空間OSのためのビッグデータ技術基盤2016年2月4日 空間OSのためのビッグデータ技術基盤
2016年2月4日 空間OSのためのビッグデータ技術基盤aitc_jp
 
Ruby で高速なプログラムを書く
Ruby で高速なプログラムを書くRuby で高速なプログラムを書く
Ruby で高速なプログラムを書くmametter
 
動的計画法の並列化
動的計画法の並列化動的計画法の並列化
動的計画法の並列化Proktmr
 
Html5勉強会資料 2012821
Html5勉強会資料 2012821Html5勉強会資料 2012821
Html5勉強会資料 2012821Cohei Aoki
 
Spanner移行について本気出して考えてみた
Spanner移行について本気出して考えてみたSpanner移行について本気出して考えてみた
Spanner移行について本気出して考えてみたtechgamecollege
 
FM音源をいじれるWebサービスを作った
FM音源をいじれるWebサービスを作ったFM音源をいじれるWebサービスを作った
FM音源をいじれるWebサービスを作ったCHY72
 
20190625 OpenACC 講習会 第3部
20190625 OpenACC 講習会 第3部20190625 OpenACC 講習会 第3部
20190625 OpenACC 講習会 第3部NVIDIA Japan
 
Enjoy handwritten digits recognition AI !!
Enjoy handwritten digits recognition AI !!Enjoy handwritten digits recognition AI !!
Enjoy handwritten digits recognition AI !!KAIKenzo
 
第3回 JavaScriptから始めるプログラミング2016
第3回 JavaScriptから始めるプログラミング2016第3回 JavaScriptから始めるプログラミング2016
第3回 JavaScriptから始めるプログラミング2016kyoto university
 
TokyoR24 - PerformanceRvsC#
TokyoR24 - PerformanceRvsC#TokyoR24 - PerformanceRvsC#
TokyoR24 - PerformanceRvsC#ta2c
 
ハードウェアを用いてPythonを学ぶ
ハードウェアを用いてPythonを学ぶハードウェアを用いてPythonを学ぶ
ハードウェアを用いてPythonを学ぶYuta Kitagami
 
20120405 setsunaセミナー
20120405 setsunaセミナー20120405 setsunaセミナー
20120405 setsunaセミナーTakahiro Iwase
 
(Pythonで作って学ぶ) Youtube の動画リストを作るアプリの開発 
第2回
(Pythonで作って学ぶ) Youtube の動画リストを作るアプリの開発 
第2回(Pythonで作って学ぶ) Youtube の動画リストを作るアプリの開発 
第2回
(Pythonで作って学ぶ) Youtube の動画リストを作るアプリの開発 
第2回Project Samurai
 
x64 のスカラー,SIMD 演算性能を測ってみた @ C++ MIX #10
x64 のスカラー,SIMD 演算性能を測ってみた @ C++  MIX #10x64 のスカラー,SIMD 演算性能を測ってみた @ C++  MIX #10
x64 のスカラー,SIMD 演算性能を測ってみた @ C++ MIX #10Muneyoshi Suzuki
 

Similaire à R高速化 (20)

openFrameworks Workshop in Kanazawa v001
openFrameworks Workshop in Kanazawa v001openFrameworks Workshop in Kanazawa v001
openFrameworks Workshop in Kanazawa v001
 
20120317 IT系勉強会 in 神戸
20120317 IT系勉強会 in 神戸20120317 IT系勉強会 in 神戸
20120317 IT系勉強会 in 神戸
 
2016年2月4日 空間OSのためのビッグデータ技術基盤
2016年2月4日 空間OSのためのビッグデータ技術基盤2016年2月4日 空間OSのためのビッグデータ技術基盤
2016年2月4日 空間OSのためのビッグデータ技術基盤
 
Ruby で高速なプログラムを書く
Ruby で高速なプログラムを書くRuby で高速なプログラムを書く
Ruby で高速なプログラムを書く
 
Mt basic as-os_on_danbot
Mt basic as-os_on_danbotMt basic as-os_on_danbot
Mt basic as-os_on_danbot
 
動的計画法の並列化
動的計画法の並列化動的計画法の並列化
動的計画法の並列化
 
Html5勉強会資料 2012821
Html5勉強会資料 2012821Html5勉強会資料 2012821
Html5勉強会資料 2012821
 
Spanner移行について本気出して考えてみた
Spanner移行について本気出して考えてみたSpanner移行について本気出して考えてみた
Spanner移行について本気出して考えてみた
 
FM音源をいじれるWebサービスを作った
FM音源をいじれるWebサービスを作ったFM音源をいじれるWebサービスを作った
FM音源をいじれるWebサービスを作った
 
20190625 OpenACC 講習会 第3部
20190625 OpenACC 講習会 第3部20190625 OpenACC 講習会 第3部
20190625 OpenACC 講習会 第3部
 
2012 ce116 crowbar_snct_shirai
2012 ce116 crowbar_snct_shirai2012 ce116 crowbar_snct_shirai
2012 ce116 crowbar_snct_shirai
 
20120721_ishkawa
20120721_ishkawa20120721_ishkawa
20120721_ishkawa
 
Enjoy handwritten digits recognition AI !!
Enjoy handwritten digits recognition AI !!Enjoy handwritten digits recognition AI !!
Enjoy handwritten digits recognition AI !!
 
第3回 JavaScriptから始めるプログラミング2016
第3回 JavaScriptから始めるプログラミング2016第3回 JavaScriptから始めるプログラミング2016
第3回 JavaScriptから始めるプログラミング2016
 
TokyoR24 - PerformanceRvsC#
TokyoR24 - PerformanceRvsC#TokyoR24 - PerformanceRvsC#
TokyoR24 - PerformanceRvsC#
 
MVSR Schedulerを作るための指針
MVSR Schedulerを作るための指針MVSR Schedulerを作るための指針
MVSR Schedulerを作るための指針
 
ハードウェアを用いてPythonを学ぶ
ハードウェアを用いてPythonを学ぶハードウェアを用いてPythonを学ぶ
ハードウェアを用いてPythonを学ぶ
 
20120405 setsunaセミナー
20120405 setsunaセミナー20120405 setsunaセミナー
20120405 setsunaセミナー
 
(Pythonで作って学ぶ) Youtube の動画リストを作るアプリの開発 
第2回
(Pythonで作って学ぶ) Youtube の動画リストを作るアプリの開発 
第2回(Pythonで作って学ぶ) Youtube の動画リストを作るアプリの開発 
第2回
(Pythonで作って学ぶ) Youtube の動画リストを作るアプリの開発 
第2回
 
x64 のスカラー,SIMD 演算性能を測ってみた @ C++ MIX #10
x64 のスカラー,SIMD 演算性能を測ってみた @ C++  MIX #10x64 のスカラー,SIMD 演算性能を測ってみた @ C++  MIX #10
x64 のスカラー,SIMD 演算性能を測ってみた @ C++ MIX #10
 

Plus de Monta Yashi

AIと最適化の違いをうっかり聞いてしまう前に v2
AIと最適化の違いをうっかり聞いてしまう前に v2AIと最適化の違いをうっかり聞いてしまう前に v2
AIと最適化の違いをうっかり聞いてしまう前に v2Monta Yashi
 
AIと最適化の違いをうっかり聞いてしまう前に
AIと最適化の違いをうっかり聞いてしまう前にAIと最適化の違いをうっかり聞いてしまう前に
AIと最適化の違いをうっかり聞いてしまう前にMonta Yashi
 
13 blender+αの大発表会
13 blender+αの大発表会13 blender+αの大発表会
13 blender+αの大発表会Monta Yashi
 
Blender x docker(簡単分散環境構築)
Blender x docker(簡単分散環境構築)Blender x docker(簡単分散環境構築)
Blender x docker(簡単分散環境構築)Monta Yashi
 
04 これが(多分)最後! ベンチマークs
04 これが(多分)最後! ベンチマークs04 これが(多分)最後! ベンチマークs
04 これが(多分)最後! ベンチマークsMonta Yashi
 
お見合いで趣味を聞かれたときに 「IoTとビッグデータを少々」と答えたいSEが読む資料
お見合いで趣味を聞かれたときに 「IoTとビッグデータを少々」と答えたいSEが読む資料お見合いで趣味を聞かれたときに 「IoTとビッグデータを少々」と答えたいSEが読む資料
お見合いで趣味を聞かれたときに 「IoTとビッグデータを少々」と答えたいSEが読む資料Monta Yashi
 
blenderとunreal engine4
blenderとunreal engine4blenderとunreal engine4
blenderとunreal engine4Monta Yashi
 
More photorealistic!
More photorealistic!More photorealistic!
More photorealistic!Monta Yashi
 
大人の分散レンダリング
大人の分散レンダリング大人の分散レンダリング
大人の分散レンダリングMonta Yashi
 
Rデータ入力編
Rデータ入力編Rデータ入力編
Rデータ入力編Monta Yashi
 

Plus de Monta Yashi (11)

AIと最適化の違いをうっかり聞いてしまう前に v2
AIと最適化の違いをうっかり聞いてしまう前に v2AIと最適化の違いをうっかり聞いてしまう前に v2
AIと最適化の違いをうっかり聞いてしまう前に v2
 
AIと最適化の違いをうっかり聞いてしまう前に
AIと最適化の違いをうっかり聞いてしまう前にAIと最適化の違いをうっかり聞いてしまう前に
AIと最適化の違いをうっかり聞いてしまう前に
 
Blender15
Blender15Blender15
Blender15
 
13 blender+αの大発表会
13 blender+αの大発表会13 blender+αの大発表会
13 blender+αの大発表会
 
Blender x docker(簡単分散環境構築)
Blender x docker(簡単分散環境構築)Blender x docker(簡単分散環境構築)
Blender x docker(簡単分散環境構築)
 
04 これが(多分)最後! ベンチマークs
04 これが(多分)最後! ベンチマークs04 これが(多分)最後! ベンチマークs
04 これが(多分)最後! ベンチマークs
 
お見合いで趣味を聞かれたときに 「IoTとビッグデータを少々」と答えたいSEが読む資料
お見合いで趣味を聞かれたときに 「IoTとビッグデータを少々」と答えたいSEが読む資料お見合いで趣味を聞かれたときに 「IoTとビッグデータを少々」と答えたいSEが読む資料
お見合いで趣味を聞かれたときに 「IoTとビッグデータを少々」と答えたいSEが読む資料
 
blenderとunreal engine4
blenderとunreal engine4blenderとunreal engine4
blenderとunreal engine4
 
More photorealistic!
More photorealistic!More photorealistic!
More photorealistic!
 
大人の分散レンダリング
大人の分散レンダリング大人の分散レンダリング
大人の分散レンダリング
 
Rデータ入力編
Rデータ入力編Rデータ入力編
Rデータ入力編
 

Dernier

Divorce agreements in administrative work.pdf
Divorce agreements in administrative work.pdfDivorce agreements in administrative work.pdf
Divorce agreements in administrative work.pdfoganekyokoi
 
My Inspire High Award 2024「老いることは不幸なこと?」
My Inspire High Award 2024「老いることは不幸なこと?」My Inspire High Award 2024「老いることは不幸なこと?」
My Inspire High Award 2024「老いることは不幸なこと?」inspirehighstaff03
 
My Inspire High Award 2024「スーパーマーケットで回収されたキャベツ外葉は廃棄されているの?」
My Inspire High Award 2024「スーパーマーケットで回収されたキャベツ外葉は廃棄されているの?」My Inspire High Award 2024「スーパーマーケットで回収されたキャベツ外葉は廃棄されているの?」
My Inspire High Award 2024「スーパーマーケットで回収されたキャベツ外葉は廃棄されているの?」inspirehighstaff03
 
【ゲーム理論入門】ChatGPTが作成した ゲーム理論の問題を解く #3 Slide
【ゲーム理論入門】ChatGPTが作成した ゲーム理論の問題を解く #3 Slide【ゲーム理論入門】ChatGPTが作成した ゲーム理論の問題を解く #3 Slide
【ゲーム理論入門】ChatGPTが作成した ゲーム理論の問題を解く #3 Slidessusere0a682
 
My Inspire High Award 2024「なぜ議会への関心が低いのか?」
My Inspire High Award 2024「なぜ議会への関心が低いのか?」My Inspire High Award 2024「なぜ議会への関心が低いのか?」
My Inspire High Award 2024「なぜ議会への関心が低いのか?」inspirehighstaff03
 
My Inspire High Award 2024「Yakushima Islandってなんか変じゃない?」.pdf
My Inspire High Award 2024「Yakushima Islandってなんか変じゃない?」.pdfMy Inspire High Award 2024「Yakushima Islandってなんか変じゃない?」.pdf
My Inspire High Award 2024「Yakushima Islandってなんか変じゃない?」.pdfinspirehighstaff03
 
My Inspire High Award 2024「世の中の流行はどのようにして生まれるのか」
My Inspire High Award 2024「世の中の流行はどのようにして生まれるのか」My Inspire High Award 2024「世の中の流行はどのようにして生まれるのか」
My Inspire High Award 2024「世の中の流行はどのようにして生まれるのか」inspirehighstaff03
 
My Inspire High Award 2024「なぜ人は他人と違うところがあってもそれをなかなか誇れないのか?」
My Inspire High Award 2024「なぜ人は他人と違うところがあってもそれをなかなか誇れないのか?」My Inspire High Award 2024「なぜ人は他人と違うところがあってもそれをなかなか誇れないのか?」
My Inspire High Award 2024「なぜ人は他人と違うところがあってもそれをなかなか誇れないのか?」inspirehighstaff03
 
Establishment and operation of medical corporations.pdf
Establishment and operation of medical corporations.pdfEstablishment and operation of medical corporations.pdf
Establishment and operation of medical corporations.pdfoganekyokoi
 
My Inspire High Award 2024「他者と自分、対立を防ぐには?」
My Inspire High Award 2024「他者と自分、対立を防ぐには?」My Inspire High Award 2024「他者と自分、対立を防ぐには?」
My Inspire High Award 2024「他者と自分、対立を防ぐには?」inspirehighstaff03
 
International Politics I - Lecture 1
International Politics I - Lecture 1International Politics I - Lecture 1
International Politics I - Lecture 1Toru Oga
 
My Inspire High Award 2024      「家族とは何か」
My Inspire High Award 2024      「家族とは何か」My Inspire High Award 2024      「家族とは何か」
My Inspire High Award 2024      「家族とは何か」inspirehighstaff03
 
My Inspire High Award2024「外国人が日本のテーブルマナーに驚く理由は?」
My Inspire High Award2024「外国人が日本のテーブルマナーに驚く理由は?」My Inspire High Award2024「外国人が日本のテーブルマナーに驚く理由は?」
My Inspire High Award2024「外国人が日本のテーブルマナーに驚く理由は?」inspirehighstaff03
 
What I did before opening my business..pdf
What I did before opening my business..pdfWhat I did before opening my business..pdf
What I did before opening my business..pdfoganekyokoi
 
My Inspire High Award 2024 「本当の『悪者』って何?」
My Inspire High Award 2024 「本当の『悪者』って何?」My Inspire High Award 2024 「本当の『悪者』って何?」
My Inspire High Award 2024 「本当の『悪者』って何?」inspirehighstaff03
 
My Inspire High Award 2024 「AIと仲良くなるには?」
My Inspire High Award 2024 「AIと仲良くなるには?」My Inspire High Award 2024 「AIと仲良くなるには?」
My Inspire High Award 2024 「AIと仲良くなるには?」inspirehighstaff03
 
My Inspire High Award 2024    「孤独は敵なのか?」
My Inspire High Award 2024    「孤独は敵なのか?」My Inspire High Award 2024    「孤独は敵なのか?」
My Inspire High Award 2024    「孤独は敵なのか?」inspirehighstaff03
 
My Inspire High Award 2024  「正義って存在するの?」
My Inspire High Award 2024  「正義って存在するの?」My Inspire High Award 2024  「正義って存在するの?」
My Inspire High Award 2024  「正義って存在するの?」inspirehighstaff03
 
3年前期 交通基盤工学 第一回 ガイダンス 交通基盤工学の概要  パワーポイント
3年前期 交通基盤工学 第一回 ガイダンス 交通基盤工学の概要  パワーポイント3年前期 交通基盤工学 第一回 ガイダンス 交通基盤工学の概要  パワーポイント
3年前期 交通基盤工学 第一回 ガイダンス 交通基盤工学の概要  パワーポイントshu1108hina1020
 
My Inspire High Award 2024「なぜ、好きなことにいつかは飽きるの」
My Inspire High Award 2024「なぜ、好きなことにいつかは飽きるの」My Inspire High Award 2024「なぜ、好きなことにいつかは飽きるの」
My Inspire High Award 2024「なぜ、好きなことにいつかは飽きるの」inspirehighstaff03
 

Dernier (20)

Divorce agreements in administrative work.pdf
Divorce agreements in administrative work.pdfDivorce agreements in administrative work.pdf
Divorce agreements in administrative work.pdf
 
My Inspire High Award 2024「老いることは不幸なこと?」
My Inspire High Award 2024「老いることは不幸なこと?」My Inspire High Award 2024「老いることは不幸なこと?」
My Inspire High Award 2024「老いることは不幸なこと?」
 
My Inspire High Award 2024「スーパーマーケットで回収されたキャベツ外葉は廃棄されているの?」
My Inspire High Award 2024「スーパーマーケットで回収されたキャベツ外葉は廃棄されているの?」My Inspire High Award 2024「スーパーマーケットで回収されたキャベツ外葉は廃棄されているの?」
My Inspire High Award 2024「スーパーマーケットで回収されたキャベツ外葉は廃棄されているの?」
 
【ゲーム理論入門】ChatGPTが作成した ゲーム理論の問題を解く #3 Slide
【ゲーム理論入門】ChatGPTが作成した ゲーム理論の問題を解く #3 Slide【ゲーム理論入門】ChatGPTが作成した ゲーム理論の問題を解く #3 Slide
【ゲーム理論入門】ChatGPTが作成した ゲーム理論の問題を解く #3 Slide
 
My Inspire High Award 2024「なぜ議会への関心が低いのか?」
My Inspire High Award 2024「なぜ議会への関心が低いのか?」My Inspire High Award 2024「なぜ議会への関心が低いのか?」
My Inspire High Award 2024「なぜ議会への関心が低いのか?」
 
My Inspire High Award 2024「Yakushima Islandってなんか変じゃない?」.pdf
My Inspire High Award 2024「Yakushima Islandってなんか変じゃない?」.pdfMy Inspire High Award 2024「Yakushima Islandってなんか変じゃない?」.pdf
My Inspire High Award 2024「Yakushima Islandってなんか変じゃない?」.pdf
 
My Inspire High Award 2024「世の中の流行はどのようにして生まれるのか」
My Inspire High Award 2024「世の中の流行はどのようにして生まれるのか」My Inspire High Award 2024「世の中の流行はどのようにして生まれるのか」
My Inspire High Award 2024「世の中の流行はどのようにして生まれるのか」
 
My Inspire High Award 2024「なぜ人は他人と違うところがあってもそれをなかなか誇れないのか?」
My Inspire High Award 2024「なぜ人は他人と違うところがあってもそれをなかなか誇れないのか?」My Inspire High Award 2024「なぜ人は他人と違うところがあってもそれをなかなか誇れないのか?」
My Inspire High Award 2024「なぜ人は他人と違うところがあってもそれをなかなか誇れないのか?」
 
Establishment and operation of medical corporations.pdf
Establishment and operation of medical corporations.pdfEstablishment and operation of medical corporations.pdf
Establishment and operation of medical corporations.pdf
 
My Inspire High Award 2024「他者と自分、対立を防ぐには?」
My Inspire High Award 2024「他者と自分、対立を防ぐには?」My Inspire High Award 2024「他者と自分、対立を防ぐには?」
My Inspire High Award 2024「他者と自分、対立を防ぐには?」
 
International Politics I - Lecture 1
International Politics I - Lecture 1International Politics I - Lecture 1
International Politics I - Lecture 1
 
My Inspire High Award 2024      「家族とは何か」
My Inspire High Award 2024      「家族とは何か」My Inspire High Award 2024      「家族とは何か」
My Inspire High Award 2024      「家族とは何か」
 
My Inspire High Award2024「外国人が日本のテーブルマナーに驚く理由は?」
My Inspire High Award2024「外国人が日本のテーブルマナーに驚く理由は?」My Inspire High Award2024「外国人が日本のテーブルマナーに驚く理由は?」
My Inspire High Award2024「外国人が日本のテーブルマナーに驚く理由は?」
 
What I did before opening my business..pdf
What I did before opening my business..pdfWhat I did before opening my business..pdf
What I did before opening my business..pdf
 
My Inspire High Award 2024 「本当の『悪者』って何?」
My Inspire High Award 2024 「本当の『悪者』って何?」My Inspire High Award 2024 「本当の『悪者』って何?」
My Inspire High Award 2024 「本当の『悪者』って何?」
 
My Inspire High Award 2024 「AIと仲良くなるには?」
My Inspire High Award 2024 「AIと仲良くなるには?」My Inspire High Award 2024 「AIと仲良くなるには?」
My Inspire High Award 2024 「AIと仲良くなるには?」
 
My Inspire High Award 2024    「孤独は敵なのか?」
My Inspire High Award 2024    「孤独は敵なのか?」My Inspire High Award 2024    「孤独は敵なのか?」
My Inspire High Award 2024    「孤独は敵なのか?」
 
My Inspire High Award 2024  「正義って存在するの?」
My Inspire High Award 2024  「正義って存在するの?」My Inspire High Award 2024  「正義って存在するの?」
My Inspire High Award 2024  「正義って存在するの?」
 
3年前期 交通基盤工学 第一回 ガイダンス 交通基盤工学の概要  パワーポイント
3年前期 交通基盤工学 第一回 ガイダンス 交通基盤工学の概要  パワーポイント3年前期 交通基盤工学 第一回 ガイダンス 交通基盤工学の概要  パワーポイント
3年前期 交通基盤工学 第一回 ガイダンス 交通基盤工学の概要  パワーポイント
 
My Inspire High Award 2024「なぜ、好きなことにいつかは飽きるの」
My Inspire High Award 2024「なぜ、好きなことにいつかは飽きるの」My Inspire High Award 2024「なぜ、好きなことにいつかは飽きるの」
My Inspire High Award 2024「なぜ、好きなことにいつかは飽きるの」
 

R高速化