p*****2 发帖数: 21240 | 1 Option Adoption Readiness Value Proposition Votes Details
MongoDB 71% 75% 273 Heatmap
Redis 74% 80% 168 Heatmap
Cassandra 73% 80% 165 Heatmap
Neo4j 66% 75% 149 Heatmap
Couchbase 68% 75% 123 Heatmap
CouchDB 61% 68% 93 Heatmap
HBase 66% 72% 85 Heatmap
Riak 67% 75% 78 Heatmap
Hazelcast 68% 78% 62 Heatmap
GemFire 68% 72% 59 Heatmap
RavenDB 68% 64% 55 ... 阅读全帖 |
|
n******7 发帖数: 12463 | 2 R的速度很慢,我感觉比python还慢一个数量级
当然我没有时间和动力去系统测试,只是实际使用的感受
之前用过同一个工具,有python和R的wrapper
R跑了一个上午,python跑了30min,我直接调用大概20min
R的原生工具性能普遍很差几年前我读一个比较大的数据
大概几个G吧
用read.table 一个小时都没有动静
换了data.table一分多搞定
这类工具现在挺多的 还有bigmemory什么的
我这几年都想用python取代R,也没深入了解过
其实用好了可以克服R的最大缺陷,还是挺值得学习的 |
|
n******7 发帖数: 12463 | 3 R的速度很慢,我感觉比python还慢一个数量级
当然我没有时间和动力去系统测试,只是实际使用的感受
之前用过同一个工具,有python和R的wrapper
R跑了一个上午,python跑了30min,我直接调用大概20min
R的原生工具性能普遍很差几年前我读一个比较大的数据
大概几个G吧
用read.table 一个小时都没有动静
换了data.table一分多搞定
这类工具现在挺多的 还有bigmemory什么的
我这几年都想用python取代R,也没深入了解过
其实用好了可以克服R的最大缺陷,还是挺值得学习的 |
|
发帖数: 1 | 4 试下bigmemory这个package
即使能用硬盘做临时内存,那个性能你能忍受吗?SSD也是会让你慢到以为hang了的
真的需要那么多数据吗?分割数据分批处理试试? |
|
g********r 发帖数: 8017 | 5 haha. 外事不决问google. 真让我找到了.有个library叫bigmemory. |
|
g********r 发帖数: 8017 | 6 24000*8用那么大内存?还是你计算过程用了更大矩阵?
如果真需要1.8G,看看物理内存够不够。
如果够,如果是windows,设置memory.size().
如果还不行,用library(bigmemory)。
我还是觉得24000*8只需要很小的内存。
But
error. |
|
a********a 发帖数: 346 | 7 Thanks goldmember,
The memory in my computer is only 1G. The problem is now I only want to get
120*8 matrix to test the program, but it stopped only give an output 66*8.
I tried to use library(bigmemory), it does not work.
If I use memory.size(max = TRUE), the memory only have a size 488.31
memory.size(max = TRUE)
>488.31
Do you have any other idea? |
|
g********r 发帖数: 8017 | 8 memory.size是用来设置最大内存的。但是你只有1G,不能分配1.8.
bigmemory不是call一下就可以的,你要用里面的方法来建立大矩阵。然后才能开始赋
值。
我觉得最关键的问题是你的矩阵根本不需要上G的内存。一定是什么地方出了问题。你
用什么
产生这个矩阵?
get |
|
e*****m 发帖数: 58 | 9 一直好奇R的内存管理。它不使用虚存?
memory.size是用来设置最大内存的。但是你只有1G,不能分配1.8.
bigmemory不是call一下就可以的,你要用里面的方法来建立大矩阵。然后才能开始赋
值。
我觉得最关键的问题是你的矩阵根本不需要上G的内存。一定是什么地方出了问题。你
用什么
产生这个矩阵?
get |
|
g********r 发帖数: 8017 | 10 可以使用,但是需要特定的package.比如bigmemory就是. |
|
e*****m 发帖数: 58 | 11 按我的理解,虚存应该是R和OS之间要交涉的事情,而对用户透明,用户只管用就可以
乐。
可以使用,但是需要特定的package.比如bigmemory就是. |
|
g********r 发帖数: 8017 | 12 我不明白怎么实现的.但是使用bigmemory的时候,系统报告R使用了很大的虚拟内存.我
怀疑这个包用了外部编程语言来实
现,比如qqzj提到的python.那个包的帮助提到,它分配的内存只能pass by reference.
基本上那个语言分配虚存,然后给R一
个指针. |
|
b*******x 发帖数: 100 | 13 R有相应的包处理大数据比如
bigmemory,foreach,还有其他的平行运算用的包
或者选择
revolution R
这个东西我预计不出2年,在商业应用领域beat SAS,或者至少平起平坐
看看现在的ubuntu的风靡,就可以想象的出revo R的未来。
最后,至少R它是门正经的编程语言。 |
|
b*******x 发帖数: 100 | 14 I know that bigmemory package can break this limits. |
|
b*******x 发帖数: 100 | 15 I tried bigmemory and foreach before, unless it is really a big data set
and some computation really slow down your code, those package won't
increase the speed a lot, but if you have multiple core on your computer,
or you have access to clusters, that's another case.
I haven't try revolution R yet, it look like they already have a released
version for Ubunton, anyway, based on the purpose of this project, I
really have high expectation for this version of R in the following years. |
|
c*******o 发帖数: 8869 | 16 I happened to be in a workshop taught by one of the authors of bigmemory. I
recall he mentioned that this package only work for all numerical matrix but
not mixed type data frame.....Maybe I was mistaken somehow...... |
|
n***i 发帖数: 15 | 17 One think I don't like bigmemory is that you can only create sub bigmatrix
from contiguous rows/columns from existing bigmatrix. Maybe I am wrong.
I
but |
|
b*******x 发帖数: 100 | 18 我只知道R有个bigmemory里面有个biglm.big.matrix函数fit线性的很快,处理大数据
的,非线性
回归不懂了就
SAS |
|
f***a 发帖数: 329 | 19 ff, bigmemory, bigGLM may help |
|
|
|
|
|
D**u 发帖数: 288 | 24 是挺麻烦的,又看了下bigmemory和ff,发现glm虽然可以做,但是data manipulation中
很多用到是与Base R 不同的语句。好麻烦啊!难道只有Revolution R了么? |
|
o****o 发帖数: 8077 | 25 looks like ff package helps on solving the problem where the file is TOO
large to fit in memory, like the bigmemory package does, but it doesn't help
on efficiency here as it maps data into disk.
Am I missing anything here?
>
> library(ff)
>
> system.time(
+ dsnff<-read.csv.ffdf(file="c:\_data\MNISTtrain.csv")
+ )
user system elapsed
22.44 9.30 42.17
>
> system.time(
+ dsn1<-read.csv(file="c:\_data\MNISTtrain.csv")
+ )
user system elapsed
13.71 0.04 13.77
>
>
> t<-Sys.t... 阅读全帖 |
|
D**u 发帖数: 288 | 26 matrix 是square的?nonzero 多不多?是不是sparse的?
anyway, 可以考虑Partial SVD + Lanczos diagonalization。
简单说:
Partial SVD 是用k dimension 去 approximate n dimesion (k
后类似 cross validation 看看是不是converge。
具体对每个k dimension的用Lanczos就是一个block接一个block的diagonalization,
然后算eigen value。
相同道理,类似的方法也有不少,不过不知道是不是你想要的答案
这些都是可以stream line的, 程序写起来很麻烦,不过如果用R早就有人package好了
。强烈推荐
R 的 irlba package参见
http://cran.r-project.org/web/packages/irlba/vignettes/irlba.pd
可以跟bigmemory package 一起用,100GB data no problem。 |
|
b*********n 发帖数: 2284 | 27 try bigmemory and ff package in R first. if they don't work, i suggest you
use perl or other script language to chop files into small pieces, then use
r to analyze. |
|