From: Patrick Alken <alken@colorado.edu>
To: "gsl-discuss@sourceware.org" <gsl-discuss@sourceware.org>
Subject: Recursive linear algebra algorithms
Date: Thu, 30 May 2019 15:06:00 -0000 [thread overview]
Message-ID: <e62014d8-500f-934f-084b-067b430662cd@colorado.edu> (raw)
In-Reply-To: <5b929a7c-30d6-1e20-9ff8-eaa6d54b12f4@colorado.edu>
Hi all,
I have recently learned of a project called ReLAPACK
(https://github.com/HPAC/ReLAPACK, paper here:
https://arxiv.org/abs/1602.06763) which implements a number of LAPACK
algorithms (such as LU, Cholesky, Sylvester equations) using recursive
methods which can use Level 3 BLAS calls. The paper shows that most of
these algorithms out-perform the block Level 3 algorithms in LAPACK. The
main advantage is that LAPACK block algorithms require fixing the block
size ahead of time, which may not be optimal for a given architecture,
while the recursive methods don't require a block size parameter.
The recursive methods do however require a "base case" - i.e. at what
size matrix should it switch to the Level 2 BLAS based algorithms.
ReLAPACK fixes this currently at N=24.
Anyway, the recursive Cholesky variant is quite straightforward to
implement, and I have already coded it for GSL (both the decomposition
and inversion). I did some tests for N=10,000 with ATLAS BLAS and found
that it runs faster than DPOTRF from LAPACK. This fast Cholesky
decomposition will improve the performance also for the generalized
symmetric definite eigensolvers, and the least squares modules (linear
and nonlinear).
So GSL now has a competitive Cholesky solver, which I think should make
many GSL users happy :)
Work is currently underway to implement the recursive pivoted LU
decomposition in GSL.
Unfortunately the ReLAPACK authors state that the QR algorithm is not
amenable to recursive methods, so the block QR seems to still be the
best choice. It would be nice to implement this for GSL, in case any
volunteers are looking for a project ;)
Patrick
next parent reply other threads:[~2019-05-30 15:06 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <5b929a7c-30d6-1e20-9ff8-eaa6d54b12f4@colorado.edu>
2019-05-30 15:06 ` Patrick Alken [this message]
2019-06-08 20:45 ` Patrick Alken
2019-06-21 22:14 ` Patrick Alken
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=e62014d8-500f-934f-084b-067b430662cd@colorado.edu \
--to=alken@colorado.edu \
--cc=gsl-discuss@sourceware.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).