メモ:Rでどれだけのデータが扱えるか?
PCのスペック
windows7 Professional
Core i7 870
16.0G
- 扱えるデータサイズのチェック
> memory.size() [1] 16.99 > a <- matrix(1, 50000000, 2) #50,000,000 > memory.size() [1] 779.58 > a <- matrix(1, 500000000, 2) #500,000,000 > memory.size() [1] 8406.95 > a <- matrix(1, 5000000000, 2) #5,000,000,000 以下にエラー matrix(1, 5e+09, 2) : 'nrow' の値が不正です(大きすぎるか NA です) 追加情報: 警告メッセージ: In matrix(1, 5e+09, 2) : 強制変換により NA が生成されました > memory.size() [1] 8406.99
50億レコード×2変数の行列:扱えない(メモリ的にもサイズ的にも)
Rで扱える要素数は2^32=約40億個なのでそれを超えてるし、メモリも単純計算で80GとかいきそうなのでこのPCではダメっぽい。
a <- matrix(1, 50000000, 2) system.time(plot(a))
通常のR
ユーザー | システム | 経過 |
---|---|---|
56.41 | 507.05 | 568.00 |
約10分でプロットが描けた
セッティング無しのRevolutionR
ユーザー | システム | 経過 |
---|---|---|
98.61 | 524.52 | 628.70 |
RevolutionRは3倍速いとの噂だけど、コア数の指定とかちゃんとやらないとパフォーマンスが出ないのかな?
ユーザー | システム | 経過 |
---|---|---|
2051.334 | 6.558 | 2050.876 |
(あれ、ユーザーとシステム逆でメモってしまったかも、、、汗)
トータルで約35分。