public inbox for gsl-discuss@sourceware.org
 help / color / mirror / Atom feed
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



       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).