[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]


From: Ludovic Courtès
Subject: LAPACK vs. OpenBLAS
Date: Thu, 24 Jun 2021 14:55:04 +0200
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/27.2 (gnu/linux)


A surprisingly large number of packages depend on ‘lapack’:

--8<---------------cut here---------------start------------->8---
$ guix refresh -l lapack
Building the following 261 packages would ensure 614 dependent packages are 
rebuilt: […]
--8<---------------cut here---------------end--------------->8---

Among them are Julia and Octave.  You can see the reverse dependency
graph with:

  guix graph -t reverse-bag lapack | xdot -

There are two cases:

  1. Packages that depend on both ‘lapack’ and ‘openblas’.  This is
     almost always a mistake because ‘openblas’ provides the same
     interfaces as ‘lapack’, only with a more efficient implementation.

  2. Packages that depend on ‘lapack’ only: for the same reason, they
     should depend on ‘openblas’ instead.

I’ve addressed a case like #1 for numpy/scipy in
6623d1cd7f3298f2e5c224299d11a77f7ae18bf5, and #2 with commit
c7a5c3e0bba2ac3d197b219d21527863308b75dd (petsc).

Julia references both lapack and openblas:

--8<---------------cut here---------------start------------->8---
$ guix graph --path -t references julia lapack
$ guix graph --path -t references julia openblas
--8<---------------cut here---------------end--------------->8---

Can a Julia-savvy person check whether this is justified?

I’ll look at some of the other cases.  Perhaps we could have a lint
checker warning against the use of lapack.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]