[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Help-gsl] Slow BLAS
From: |
Martin Jansche |
Subject: |
Re: [Help-gsl] Slow BLAS |
Date: |
Sun, 22 Oct 2006 19:32:10 -0400 |
On 10/22/06, Gong Yi Liao <address@hidden> wrote:
ATLAS takes 56.676 seconds (all the cases including the time for
generating gaussian random numbers) to compute SVD of a 1000 by 1000
matrix (all the cases are computed with the same sizes of the matrix);
GotoBLAS (with multi-threading support) takes 56.587 seconds to compute;
gslcblas takes 56.127 seconds to compute.
[snip, paste]
while, within the popular statistics programming environment, R, it just take
less then ten seconds
I don't think that only changing the BLAS implementation will make
much of a difference, since BLAS does not perform the SVD directly.
You're basically comparing two different SVD implementations: the one
used in GSL (backed by gslcblas, ATLAS, or GotoBLAS) vs. one of the
ones used in R, namely either a modified dsvdc from LINPACK
[http://www.netlib.org/slatec/lin/dsvdc.f], or dgesdd (for real
matrices) from LAPACK.
A quick solution for you might be to write a wrapper around the SVD
routines provided by GSL, LAPACK, or even LINPACK, then try all
combinations of SVD implementation and BLAS libraries. My guess is
that LAPACK + GotoBLAS will be fastest.
-- mj