s******e 发帖数: 20 | 1 最近有个想法,就是想用C/C++做统计计算,因为用R,matlab都很慢,效率不高。
多点循环或者大点矩阵就out of memory了。
下面具体说下我的疑惑吧。
我的C的就是学过谭浩强那本C语言,然后就在没有接触其他的了。
我总是想有些在R里面很容易实现的东西在C里面好像很困难。
如 生存伪正态随机数,在R里就 rnorm 可以实现,
如 矩阵求逆,R 用 solve 即可,还有很多例子。而这些要
用C写的话,就很慢,出错的可能也增多,即使运行起来也是快白搭。
所以请板上用C/C++做统计计算的人,指点一下,应该怎么入门
用C做统计计算,要注意些什么。
如能推荐相关资料那是再好不过的了。 |
B******5 发帖数: 4676 | 2 很多人用C做统计计算的,你看看R里面很多package的核心都用C写的,R有个不错的
interface给C和fotran的
【在 s******e 的大作中提到】 : 最近有个想法,就是想用C/C++做统计计算,因为用R,matlab都很慢,效率不高。 : 多点循环或者大点矩阵就out of memory了。 : 下面具体说下我的疑惑吧。 : 我的C的就是学过谭浩强那本C语言,然后就在没有接触其他的了。 : 我总是想有些在R里面很容易实现的东西在C里面好像很困难。 : 如 生存伪正态随机数,在R里就 rnorm 可以实现, : 如 矩阵求逆,R 用 solve 即可,还有很多例子。而这些要 : 用C写的话,就很慢,出错的可能也增多,即使运行起来也是快白搭。 : 所以请板上用C/C++做统计计算的人,指点一下,应该怎么入门 : 用C做统计计算,要注意些什么。
|
t********e 发帖数: 7 | 3 谭浩强里面太细节的没啥用
会写loop, function, class, 和基本传指针参数啥的我觉得差不多就够了
反正只是做computation, 我是不能保证我程序最优化的:) 不过还是比R
快多了
还有好多现有的package可以去下载了直接用,比如lapack
【在 s******e 的大作中提到】 : 最近有个想法,就是想用C/C++做统计计算,因为用R,matlab都很慢,效率不高。 : 多点循环或者大点矩阵就out of memory了。 : 下面具体说下我的疑惑吧。 : 我的C的就是学过谭浩强那本C语言,然后就在没有接触其他的了。 : 我总是想有些在R里面很容易实现的东西在C里面好像很困难。 : 如 生存伪正态随机数,在R里就 rnorm 可以实现, : 如 矩阵求逆,R 用 solve 即可,还有很多例子。而这些要 : 用C写的话,就很慢,出错的可能也增多,即使运行起来也是快白搭。 : 所以请板上用C/C++做统计计算的人,指点一下,应该怎么入门 : 用C做统计计算,要注意些什么。
|
D******n 发帖数: 2836 | 4 I used GSL
【在 t********e 的大作中提到】 : 谭浩强里面太细节的没啥用 : 会写loop, function, class, 和基本传指针参数啥的我觉得差不多就够了 : 反正只是做computation, 我是不能保证我程序最优化的:) 不过还是比R : 快多了 : 还有好多现有的package可以去下载了直接用,比如lapack
|
d******e 发帖数: 7844 | 5 学fortran吧。
【在 s******e 的大作中提到】 : 最近有个想法,就是想用C/C++做统计计算,因为用R,matlab都很慢,效率不高。 : 多点循环或者大点矩阵就out of memory了。 : 下面具体说下我的疑惑吧。 : 我的C的就是学过谭浩强那本C语言,然后就在没有接触其他的了。 : 我总是想有些在R里面很容易实现的东西在C里面好像很困难。 : 如 生存伪正态随机数,在R里就 rnorm 可以实现, : 如 矩阵求逆,R 用 solve 即可,还有很多例子。而这些要 : 用C写的话,就很慢,出错的可能也增多,即使运行起来也是快白搭。 : 所以请板上用C/C++做统计计算的人,指点一下,应该怎么入门 : 用C做统计计算,要注意些什么。
|
A*****n 发帖数: 243 | 6 也可以直接修改R的一些函数的C代码,我以前就直接用ks.test的C代码修改之后编译,
中间可能用到GSL实现一些排序或者矩阵的运算。
没具体作过测试,但是想过去内存占用可能会少,不过运算速度可能不会提高很多,毕
竟R很多时候也是调用一些so文件。
【在 B******5 的大作中提到】 : 很多人用C做统计计算的,你看看R里面很多package的核心都用C写的,R有个不错的 : interface给C和fotran的
|
b****z 发帖数: 337 | 7 你需要个数学统计库函数, 如IMSL或者 numerical recipes
you do not want to write everything by yourself.
It is painful at first with debugging, but after that it should be fine.
I use Fortran (Compaq Visual Fortran, Intel Visual Fortran with IMSL),
not C/C++, but I think their computational power should be similar.
I once compared R and Fortran for one project
R: several hours (> 2.5)
Fortran: 1 min
Of course, I never care about optimization, as long as it works.
你说的这些函数,可以很方便地在LIBRARY中找到,如IMSL
call rnnoa/rnnof/
【在 s******e 的大作中提到】 : 最近有个想法,就是想用C/C++做统计计算,因为用R,matlab都很慢,效率不高。 : 多点循环或者大点矩阵就out of memory了。 : 下面具体说下我的疑惑吧。 : 我的C的就是学过谭浩强那本C语言,然后就在没有接触其他的了。 : 我总是想有些在R里面很容易实现的东西在C里面好像很困难。 : 如 生存伪正态随机数,在R里就 rnorm 可以实现, : 如 矩阵求逆,R 用 solve 即可,还有很多例子。而这些要 : 用C写的话,就很慢,出错的可能也增多,即使运行起来也是快白搭。 : 所以请板上用C/C++做统计计算的人,指点一下,应该怎么入门 : 用C做统计计算,要注意些什么。
|
v****s 发帖数: 1112 | 8 true, u just need a library.
【在 b****z 的大作中提到】 : 你需要个数学统计库函数, 如IMSL或者 numerical recipes : you do not want to write everything by yourself. : It is painful at first with debugging, but after that it should be fine. : I use Fortran (Compaq Visual Fortran, Intel Visual Fortran with IMSL), : not C/C++, but I think their computational power should be similar. : I once compared R and Fortran for one project : R: several hours (> 2.5) : Fortran: 1 min : Of course, I never care about optimization, as long as it works. : 你说的这些函数,可以很方便地在LIBRARY中找到,如IMSL
|
s******e 发帖数: 20 | 9 但是需要什么样的library呢?
去哪里装?
要是能有这方面的入门书或者别人写好的
C code来做simulation先学学就好了。
【在 v****s 的大作中提到】 : true, u just need a library.
|
B****n 发帖数: 11290 | 10 If you only need to use C to do one thing, you can consider writing a C
subroutine only for that purpose, and write other parts in R and call the C
subroutine.
【在 s******e 的大作中提到】 : 最近有个想法,就是想用C/C++做统计计算,因为用R,matlab都很慢,效率不高。 : 多点循环或者大点矩阵就out of memory了。 : 下面具体说下我的疑惑吧。 : 我的C的就是学过谭浩强那本C语言,然后就在没有接触其他的了。 : 我总是想有些在R里面很容易实现的东西在C里面好像很困难。 : 如 生存伪正态随机数,在R里就 rnorm 可以实现, : 如 矩阵求逆,R 用 solve 即可,还有很多例子。而这些要 : 用C写的话,就很慢,出错的可能也增多,即使运行起来也是快白搭。 : 所以请板上用C/C++做统计计算的人,指点一下,应该怎么入门 : 用C做统计计算,要注意些什么。
|
|
|
o****o 发帖数: 8077 | 11 可以到veryCDs上下IMSL的C函数库
http://www.verycd.com/topics/125157/
【在 s******e 的大作中提到】 : 但是需要什么样的library呢? : 去哪里装? : 要是能有这方面的入门书或者别人写好的 : C code来做simulation先学学就好了。
|
f*******e 发帖数: 9 | 12 我从来都很懒得去写c
而是写成可以高度并行化的东西放到cluster上去跑
毕竟R的用在开发上时间要比C短的多
可以节约更多的时间去作其他事情
钱吗。。。 我是80后。。。 |
f*******e 发帖数: 9 | 13 我一直在想如果用imsl作出来的东西是不是就不能写成R package拿来每个人都用了呢?
【在 o****o 的大作中提到】 : 可以到veryCDs上下IMSL的C函数库 : http://www.verycd.com/topics/125157/
|
o****o 发帖数: 8077 | 14 你买正版的IMSL,写个免费的R package应该还是可以的吧
呢?
【在 f*******e 的大作中提到】 : 我一直在想如果用imsl作出来的东西是不是就不能写成R package拿来每个人都用了呢?
|
n*****3 发帖数: 1584 | 15 so u get some 正版的IMSL, everybody else could use part of it?
I do not think so.
BTW it is very hard to use IMSL to write a R package,
u could not see the source code, which makes it very hard to debug/test.
Not the mention write open source software with some close source library.
better use GSL , lapack .....
just my 2 cents.
【在 o****o 的大作中提到】 : 你买正版的IMSL,写个免费的R package应该还是可以的吧 : : 呢?
|
d***g 发帖数: 15 | 16 我也懒得学C
对并行运算不了解,能不能展开讲讲,或给个链接。很想学学这方面的东西。
【在 f*******e 的大作中提到】 : 我从来都很懒得去写c : 而是写成可以高度并行化的东西放到cluster上去跑 : 毕竟R的用在开发上时间要比C短的多 : 可以节约更多的时间去作其他事情 : 钱吗。。。 我是80后。。。
|