f***a 发帖数: 329 | 1 我是蛋疼,用r, matlab有点腻味了,正在鼓捣c++。有经验的同志能推荐几个好的
library吗?
linear algebra, statistics方面的。
我在用Armadillo,还有没有别的常用的?
多谢了~ |
y*****y 发帖数: 98 | 2 intel MKL library
imsl library
but i think they are commercial and not free :( |
f***a 发帖数: 329 | 3 intel MKL library 不free吗?应该是free吧
有没有statistics的library,就是包括些distribution random generater,pdf、cdf
计算
之类的library,都要自己写太麻烦了点
【在 y*****y 的大作中提到】 : intel MKL library : imsl library : but i think they are commercial and not free :(
|
y*****y 发帖数: 98 | 4 they are included in MKL.
Vector Statistical Library (VSL)
Summary Statistics Library (SSL) |
f***a 发帖数: 329 | 5 哦,我以为MKL也只是个加速linear algebra运算的library...
【在 y*****y 的大作中提到】 : they are included in MKL. : Vector Statistical Library (VSL) : Summary Statistics Library (SSL)
|
B******5 发帖数: 4676 | |
a***g 发帖数: 2761 | |
y*****y 发帖数: 98 | 8 research还是很多在用的. 比如大矩阵运算,1000阶普通矩阵或者几十万阶sparse
matrix, MCMC每次update算inverse,eigenvalues几十次,搞个几万次update.通常办法
是mission impossible了。所以一是要特殊算法,二是要高效底层语言。 |
a********6 发帖数: 14468 | 9 会c++的应该不少,里面没有同志把。蛋疼需要同志?
【在 f***a 的大作中提到】 : 我是蛋疼,用r, matlab有点腻味了,正在鼓捣c++。有经验的同志能推荐几个好的 : library吗? : linear algebra, statistics方面的。 : 我在用Armadillo,还有没有别的常用的? : 多谢了~
|
f***a 发帖数: 329 | 10 好的,初步总结下。
如下libaries挺好用的,而且都可以在ubuntu synaptic pckg manager上直接安装。
lapack, blas, atlas:基本的,优化运算;
GSL:强大全面,不过我就用了下random number generator 和 distribution pdf;
armadillo: 矩阵运算很好用。
其他还有个搞了半天没运行成功:
newran: 。。。
codecogs: 要钱,靠 |
|
|
s******h 发帖数: 539 | |
f***a 发帖数: 329 | 12 恩,我写个mcmc for GLMM with spatial random effects, spatial grid 40*40,
thining=100,iter=10000, R就抗不住了,一觉醒来也未必算得完。
matlab要快些,毕竟是“matrix lab”,呵呵。
估计用c++能快很多。
【在 s******h 的大作中提到】 : R太慢。
|
a***g 发帖数: 2761 | |
f***a 发帖数: 329 | 14 你run R的时候看看cpu usage。
现在的PC一般是用multi-core cpu with multi-threading technology,而R一般只能使用
一个线程来进行计算,所以即便是全力运行R一般只会使用很少的一部分cpu power。
譬如,我用的quad-core intel i7,R只能利用1/8的full cpu power。
如果你在bios里面禁用multi-threading的话,可以提高到1/4。
用matlab的话,cpu usage能到1/2(我在linux下用的matalb,windows下应该一样)。
所以光这一个原因就提高了4倍(如果你没禁用multi-threading的话)。
另外,matalb中Matrix computation算法是优化过的,比R快一些。
你也可以自己build R from source and include some libraries that optimizes
linear algebra computation, for example LAPACK, BLAS,速度会提高好几倍,不过
你要会bui
【在 a***g 的大作中提到】 : matlab比R时间上能快多少?
|
d******e 发帖数: 7844 | 15 Matlab什么都好就是写循环太慢了。
比R还要慢不少。
Matlab 64bit的版本比R的64bit版本也要好不少。
使用
【在 f***a 的大作中提到】 : 你run R的时候看看cpu usage。 : 现在的PC一般是用multi-core cpu with multi-threading technology,而R一般只能使用 : 一个线程来进行计算,所以即便是全力运行R一般只会使用很少的一部分cpu power。 : 譬如,我用的quad-core intel i7,R只能利用1/8的full cpu power。 : 如果你在bios里面禁用multi-threading的话,可以提高到1/4。 : 用matlab的话,cpu usage能到1/2(我在linux下用的matalb,windows下应该一样)。 : 所以光这一个原因就提高了4倍(如果你没禁用multi-threading的话)。 : 另外,matalb中Matrix computation算法是优化过的,比R快一些。 : 你也可以自己build R from source and include some libraries that optimizes : linear algebra computation, for example LAPACK, BLAS,速度会提高好几倍,不过
|
o****o 发帖数: 8077 | 16 我觉得你那个1/8到1/4也许只是禁用了CPU的hyperthreading后,windows就认为只有4
个核,而在开的情况下,4个虚拟核windows也跟物理核一样对待。但是实际上R利用的
计算能力还是那一个物理核,没有改变
另外我把R自带的RBLAS.DLL换成PM对应那个RBLAS.DLL,快了不少,不用自己build了
使用
【在 f***a 的大作中提到】 : 你run R的时候看看cpu usage。 : 现在的PC一般是用multi-core cpu with multi-threading technology,而R一般只能使用 : 一个线程来进行计算,所以即便是全力运行R一般只会使用很少的一部分cpu power。 : 譬如,我用的quad-core intel i7,R只能利用1/8的full cpu power。 : 如果你在bios里面禁用multi-threading的话,可以提高到1/4。 : 用matlab的话,cpu usage能到1/2(我在linux下用的matalb,windows下应该一样)。 : 所以光这一个原因就提高了4倍(如果你没禁用multi-threading的话)。 : 另外,matalb中Matrix computation算法是优化过的,比R快一些。 : 你也可以自己build R from source and include some libraries that optimizes : linear algebra computation, for example LAPACK, BLAS,速度会提高好几倍,不过
|
f***a 发帖数: 329 | 17 恩,我的意思就是禁用CPU的hyperthreading
你说的 “PM” 是啥?
4
【在 o****o 的大作中提到】 : 我觉得你那个1/8到1/4也许只是禁用了CPU的hyperthreading后,windows就认为只有4 : 个核,而在开的情况下,4个虚拟核windows也跟物理核一样对待。但是实际上R利用的 : 计算能力还是那一个物理核,没有改变 : 另外我把R自带的RBLAS.DLL换成PM对应那个RBLAS.DLL,快了不少,不用自己build了 : : 使用
|
o****o 发帖数: 8077 | 18 就是奔腾mobile.R对应不同的CPU有多个基于ATLAS的RBLAS.DLL
【http://cran.r-project.org/bin/windows/contrib/ATLAS/】。现在提供了给C2D编译的新RBLAS.DLL,更快一些。我把这个新的跟原来用的给老CPU的比较了一下, C2D的比原配在解SVD上快一倍:
原配 (R version 2.8.1)
> x<-matrix(rnorm(1000^2), ncol=1000)
> system.time(y<-svd(x))
用户 系统 流逝
8.42 0.05 8.50
>
###################
P3/P2:
> x<-matrix(rnorm(1000^2), ncol=1000)
> system.time(y<-svd(x))
用户 系统 流逝
6.50 0.11 6.69
>
###################
P4:
> x<-matrix(rnorm(1000^2), ncol=1000)
> system.time(y<-svd(x))
用户 系统 流逝
6.21 0.07 6. |
f***a 发帖数: 329 | 19 我就不明白为啥发布的R不直接把这些libraries都build进去
【在 o****o 的大作中提到】 : 就是奔腾mobile.R对应不同的CPU有多个基于ATLAS的RBLAS.DLL : 【http://cran.r-project.org/bin/windows/contrib/ATLAS/】。现在提供了给C2D编译的新RBLAS.DLL,更快一些。我把这个新的跟原来用的给老CPU的比较了一下, C2D的比原配在解SVD上快一倍: : 原配 (R version 2.8.1) : > x<-matrix(rnorm(1000^2), ncol=1000) : > system.time(y<-svd(x)) : 用户 系统 流逝 : 8.42 0.05 8.50 : > : ################### : P3/P2:
|
S******y 发帖数: 1123 | 20 我现在正在测试Amazon EC2: 64 bit R + 64 bit Linux (60 GB memory)。
如急用, 把你的R code 寄给我, 我可以帮你 跑 一下 MCMC |
f***a 发帖数: 329 | 21 多谢多谢~~~我不急用,呵呵
第一阶段的计算我上个月在自己的电脑用matlab算了一周算完了,用的小一点grid size
现在申请了学校cluster的account,以后再算就去那上面跑 :D
【在 S******y 的大作中提到】 : 我现在正在测试Amazon EC2: 64 bit R + 64 bit Linux (60 GB memory)。 : 如急用, 把你的R code 寄给我, 我可以帮你 跑 一下 MCMC
|
o****o 发帖数: 8077 | 22 为了兼容性?
反正提供了下载
【在 f***a 的大作中提到】 : 我就不明白为啥发布的R不直接把这些libraries都build进去
|