メモ: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

5000万レコード×2変数の行列:約750M

5億レコード×2変数の行列:約7.6G

50億レコード×2変数の行列:扱えない(メモリ的にもサイズ的にも)

Rで扱える要素数は2^32=約40億個なのでそれを超えてるし、メモリも単純計算で80GとかいきそうなのでこのPCではダメっぽい。


a <- matrix(1, 50000000, 2)
system.time(plot(a))

通常のR

ユーザーシステム経過
56.41507.05568.00

約10分でプロットが描けた


セッティング無しのRevolutionR

ユーザーシステム経過
98.61524.52628.70

RevolutionRは3倍速いとの噂だけど、コア数の指定とかちゃんとやらないとパフォーマンスが出ないのかな?


Mac Book Airで通常のR

スペック:OS X LionCore i7、4G

ユーザーシステム経過
2051.3346.5582050.876

(あれ、ユーザーとシステム逆でメモってしまったかも、、、汗)

トータルで約35分。

ページTOPへ