由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Computation版 - 请教一个计算速度的问题
相关主题
mklman is by far the most grandious reference manual i've seen有没有用Lapack的?
Gfortran library[合集] 这里有lapack用的比较熟悉的人吗?
直接用NR的源程序需要注意什么吗?do you use blas/lapack?
Fast solver of linear equation systemlapack如何求解XA=B
C++里用Blas/Lapack的问题我们碰到的大麻烦——急寻计算机工作和博后机会 (转载)
Matlab C++ math lib的速度问题MKL的mkl_lapacke.h与哪个库文件联用?
有人用过superLU求解器吗?numerical recipe c++
求矩阵逆的算法lapack++ and blitz++
相关话题的讨论汇总
话题: matlab话题: gsl话题: solver话题: lu话题: 矩阵
进入Computation版参与讨论
1 (共1页)
s******n
发帖数: 6806
1
一直以为matlab计算很慢,所以在学着用GSL,
在求解一个线性系统Ax=b;
A大概是1000x1000的稀疏矩阵。
1.在matlab里面直接用x=A\b; 小于10秒的时间结果就出来了。
2. 但是,同样的数据,一样的规模,我在VC里面用GSL去算,
分别用了 LUsolver, svdSolver,和householder solver,
都非常慢,最快的是LUsolver,用了大概2.5mins。其他两个都大于5分钟,
我就给程序stop了。
这个速度的比较让我很失望,不知道为什么会差这么多,
如果这样那还不如就用matlab算了。
大家用过GSL里这些solver的,觉得速度怎么样呢?
a**a
发帖数: 416
2
速度取决于两个因素: 底层blas库,和稀疏矩阵的节点重排算法。Matlab这两者
几乎都是最好的(intel的MKL和最优的节点重排算法之一)。搞清楚这两个你才
可以超越Matlab. 否则你还是用回Matlab吧。

【在 s******n 的大作中提到】
: 一直以为matlab计算很慢,所以在学着用GSL,
: 在求解一个线性系统Ax=b;
: A大概是1000x1000的稀疏矩阵。
: 1.在matlab里面直接用x=A\b; 小于10秒的时间结果就出来了。
: 2. 但是,同样的数据,一样的规模,我在VC里面用GSL去算,
: 分别用了 LUsolver, svdSolver,和householder solver,
: 都非常慢,最快的是LUsolver,用了大概2.5mins。其他两个都大于5分钟,
: 我就给程序stop了。
: 这个速度的比较让我很失望,不知道为什么会差这么多,
: 如果这样那还不如就用matlab算了。

e********k
发帖数: 5
3
matlab是已经优化了的,一般的程序很难超越。。。
b***e
发帖数: 38
4
Even for a 1000 by 1000 dense matrix, it takes a LU solver written in C less
than 5 second on a 2.6 GHz processor. Besides, the LU solver is not
optimized at all. It seems your machine needs to be upgraded. The
performance of sparse LU is problem dependent. It's hard to predict the CPU
time just by the number of unknowns. Again on a 2.6 GHz CPU, you can solve a
matrix with 100,000 unknowns in less than 10 seconds or even 1 second with
a sparse LU solver written in C if the problem is nice.
Ma
s******n
发帖数: 6806
5
我的破电脑不是双核的,是2.3Ghz,
应该不至于慢很多吧。
双核应该没有区别吧。

less
CPU
a
with
and

【在 b***e 的大作中提到】
: Even for a 1000 by 1000 dense matrix, it takes a LU solver written in C less
: than 5 second on a 2.6 GHz processor. Besides, the LU solver is not
: optimized at all. It seems your machine needs to be upgraded. The
: performance of sparse LU is problem dependent. It's hard to predict the CPU
: time just by the number of unknowns. Again on a 2.6 GHz CPU, you can solve a
: matrix with 100,000 unknowns in less than 10 seconds or even 1 second with
: a sparse LU solver written in C if the problem is nice.
: Ma

s******n
发帖数: 6806
6
thanks,
看来我还是得用matlab

【在 a**a 的大作中提到】
: 速度取决于两个因素: 底层blas库,和稀疏矩阵的节点重排算法。Matlab这两者
: 几乎都是最好的(intel的MKL和最优的节点重排算法之一)。搞清楚这两个你才
: 可以超越Matlab. 否则你还是用回Matlab吧。

k******n
发帖数: 35
7
gsl用的是dense algorithms。在matlab里,如果你的矩阵是稀疏的,matlab会调用
umfpack来求解。即使对稠密矩阵,gsl也有可能比matlab慢,因为matlab用intel的
LAPACK。由于技术的原因,gsl还没有办法把LAPACK封装在其中,接口是主要的问题。
对于单纯的矩阵计算,超越matlab的效率是很难的。Actually, you are competing
with Intel's MKL and Tim Davis' UMFPACK.
a**a
发帖数: 416
8
不错.即使是稀疏矩阵计算, 里面使用的实际上是分块稀疏矩阵算法, 每一小块
又使用稠密的矩阵算法, 调用的是底层blas库, matlab的情况就是MKL. 所以
底层的blas库对于稀疏矩阵计算的效率也是至关重要的。

【在 k******n 的大作中提到】
: gsl用的是dense algorithms。在matlab里,如果你的矩阵是稀疏的,matlab会调用
: umfpack来求解。即使对稠密矩阵,gsl也有可能比matlab慢,因为matlab用intel的
: LAPACK。由于技术的原因,gsl还没有办法把LAPACK封装在其中,接口是主要的问题。
: 对于单纯的矩阵计算,超越matlab的效率是很难的。Actually, you are competing
: with Intel's MKL and Tim Davis' UMFPACK.

1 (共1页)
进入Computation版参与讨论
相关主题
lapack++ and blitz++C++里用Blas/Lapack的问题
求助:DGBTRS Matlab C++ math lib的速度问题
有啥好的optimization的c/c++库可以用有人用过superLU求解器吗?
windows 下如何编译使用cblas求矩阵逆的算法
mklman is by far the most grandious reference manual i've seen有没有用Lapack的?
Gfortran library[合集] 这里有lapack用的比较熟悉的人吗?
直接用NR的源程序需要注意什么吗?do you use blas/lapack?
Fast solver of linear equation systemlapack如何求解XA=B
相关话题的讨论汇总
话题: matlab话题: gsl话题: solver话题: lu话题: 矩阵