mbox series

[bug#69729,00/41] Improve performance in lapack dependent packages.

Message ID 20240311110423.10785-1-romain.garbage@inria.fr
Headers show
Series Improve performance in lapack dependent packages. | expand

Message

Romain GARBAGE March 11, 2024, 11:01 a.m. UTC
This patch series aims at improving the performance of several packages by changing the LAPACK library they depend on.

The package `lapack` is the reference implementation from netlib.org of a numerical linear algebra library, written in FORTRAN.

The package `openblas` is a optimized implementation of the LAPACK and BLAS APIs.

Among the modified packages affected by the change, the following don't build:
 * shogun: atlas dependency doesn't build (pre-existing error)
 * lush2: preexisting error
 * proteinortho: preexisting error (tests 2 and 3 fail)
 * superlu-dist: dependency failure (combinatorial-blas)


Also, the following packages have not been modified as it breaks the package:
 * xyce-serial
 * xyce-parallel
 * gnss-sdr
 * julia

Romain GARBAGE (41):
  gnu: arpack-ng: Switch to openblas.
  gnu: armadillo: Switch to openblas.
  gnu: octave-cli: Switch to openblas.
  gnu: scalapack: Switch to openblas.
  gnu: hypre: Switch to openblas.
  gnu: igraph: Switch to openblas.
  gnu: vosk-api: Remove dependency on lapack.
  gnu: jags: Switch to openblas.
  gnu: sbcl-lla: Switch to openblas.
  gnu: itpp: Switch to openblas.
  gnu: gmsh: Switch to openblas.
  gnu: ghc-hmatrix: Switch to openblas.
  gnu: fenics-dolfin: Remove dependency on lapack.
  gnu: ipopt: Switch to openblas.
  gnu: ceres: Remove dependency on lapack.
  gnu: sundials-julia: Switch to openblas.
  gnu: plink: Switch to openblas.
  gnu: p4est: Remove dependency on lapack.
  gnu: plink-ng: Remove lapack dep.
  gnu: dealii: Remove dependency on lapack.
  gnu: elemental: Remove dependency on lapack.
  gnu: superlu-dist: Remove dependency on lapack.
  gnu: bonmin: Switch to openblas.
  gnu: mpb: Switch to openblas.
  gnu: meep: Switch to openblas.
  gnu: casacore: Remove dependency on lapack.
  gnu: aoflagger: Remove dependency on lapack.
  gnu: apl: Switch to openblas.
  gnu: eigensoft: Remove dependency on lapack.
  gnu: proteinortho: Remove dependency on lapack.
  gnu: scilab: Remove dependency on lapack.
  gnu: python-cvxopt: Remove dependency on lapack.
  gnu: dlib: Remove dependency on lapack.
  gnu: grass: Remove dependency on lapack.
  gnu: harminv: Switch to openblas.
  gnu: giac: Switch to openblas.
  gnu: libflame: Switch to openblas.
  gnu: lush2: Remove dependency on lapack.
  gnu: shogun: Switch to openblas.
  gnu: kaldi-for-vosk: Remove dependency on lapack.
  gnu: ocaml-lacaml: Remove dependency on lapack.

 gnu/packages/algebra.scm          |  2 +-
 gnu/packages/apl.scm              |  2 +-
 gnu/packages/astronomy.scm        |  2 --
 gnu/packages/bioinformatics.scm   | 17 ++++++------
 gnu/packages/engineering.scm      |  6 ++--
 gnu/packages/geo.scm              |  6 +++-
 gnu/packages/graph.scm            |  2 +-
 gnu/packages/haskell-xyz.scm      |  9 ++----
 gnu/packages/lisp-xyz.scm         |  6 ++--
 gnu/packages/lisp.scm             |  1 -
 gnu/packages/machine-learning.scm | 15 ++++------
 gnu/packages/maths.scm            | 46 ++++++++++++++-----------------
 gnu/packages/ocaml.scm            |  9 ++++--
 gnu/packages/simulation.scm       |  3 +-
 gnu/packages/statistics.scm       |  6 +++-
 15 files changed, 65 insertions(+), 67 deletions(-)

Comments

Ludovic Courtès March 28, 2024, 10:40 a.m. UTC | #1
Hello,

Romain GARBAGE <romain.garbage@inria.fr> skribis:

> This patch series aims at improving the performance of several packages by changing the LAPACK library they depend on.
>
> The package `lapack` is the reference implementation from netlib.org of a numerical linear algebra library, written in FORTRAN.
>
> The package `openblas` is a optimized implementation of the LAPACK and BLAS APIs.
>
> Among the modified packages affected by the change, the following don't build:
>  * shogun: atlas dependency doesn't build (pre-existing error)
>  * lush2: preexisting error
>  * proteinortho: preexisting error (tests 2 and 3 fail)
>  * superlu-dist: dependency failure (combinatorial-blas)
>
>
> Also, the following packages have not been modified as it breaks the package:
>  * xyce-serial
>  * xyce-parallel
>  * gnss-sdr
>  * julia

<https://qa.guix.gnu.org/issue/69729> hasn’t processed it yet but it’s
already been more than two weeks.  Given that you tested all the
dependents on guix.bordeaux.inria.fr, I’m willing to go ahead and push
the series within a few days even if qa.guix hasn’t caught up yet.

Thoughts?

Ludo’.
Christopher Baines April 2, 2024, 8:52 p.m. UTC | #2
Ludovic Courtès <ludovic.courtes@inria.fr> writes:

> Hello,
>
> Romain GARBAGE <romain.garbage@inria.fr> skribis:
>
>> This patch series aims at improving the performance of several packages by changing the LAPACK library they depend on.
>>
>> The package `lapack` is the reference implementation from netlib.org of a numerical linear algebra library, written in FORTRAN.
>>
>> The package `openblas` is a optimized implementation of the LAPACK and BLAS APIs.
>>
>> Among the modified packages affected by the change, the following don't build:
>>  * shogun: atlas dependency doesn't build (pre-existing error)
>>  * lush2: preexisting error
>>  * proteinortho: preexisting error (tests 2 and 3 fail)
>>  * superlu-dist: dependency failure (combinatorial-blas)
>>
>>
>> Also, the following packages have not been modified as it breaks the package:
>>  * xyce-serial
>>  * xyce-parallel
>>  * gnss-sdr
>>  * julia
>
> <https://qa.guix.gnu.org/issue/69729> hasn’t processed it yet but it’s
> already been more than two weeks.  Given that you tested all the
> dependents on guix.bordeaux.inria.fr, I’m willing to go ahead and push
> the series within a few days even if qa.guix hasn’t caught up yet.

QA shouldn't block things, especially at the moment when it's not
keeping up. So yeah, please push.
Ludovic Courtès April 4, 2024, 3:17 p.m. UTC | #3
Hello,

Romain GARBAGE <romain.garbage@inria.fr> skribis:

>   gnu: arpack-ng: Switch to openblas.
>   gnu: armadillo: Switch to openblas.
>   gnu: octave-cli: Switch to openblas.
>   gnu: scalapack: Switch to openblas.
>   gnu: hypre: Switch to openblas.
>   gnu: igraph: Switch to openblas.
>   gnu: vosk-api: Remove dependency on lapack.
>   gnu: jags: Switch to openblas.
>   gnu: sbcl-lla: Switch to openblas.
>   gnu: itpp: Switch to openblas.
>   gnu: gmsh: Switch to openblas.
>   gnu: ghc-hmatrix: Switch to openblas.
>   gnu: fenics-dolfin: Remove dependency on lapack.
>   gnu: ipopt: Switch to openblas.
>   gnu: ceres: Remove dependency on lapack.
>   gnu: sundials-julia: Switch to openblas.
>   gnu: plink: Switch to openblas.
>   gnu: p4est: Remove dependency on lapack.
>   gnu: plink-ng: Remove lapack dep.
>   gnu: dealii: Remove dependency on lapack.
>   gnu: elemental: Remove dependency on lapack.
>   gnu: superlu-dist: Remove dependency on lapack.
>   gnu: bonmin: Switch to openblas.
>   gnu: mpb: Switch to openblas.
>   gnu: meep: Switch to openblas.
>   gnu: casacore: Remove dependency on lapack.
>   gnu: aoflagger: Remove dependency on lapack.
>   gnu: apl: Switch to openblas.
>   gnu: eigensoft: Remove dependency on lapack.
>   gnu: proteinortho: Remove dependency on lapack.
>   gnu: scilab: Remove dependency on lapack.
>   gnu: python-cvxopt: Remove dependency on lapack.
>   gnu: dlib: Remove dependency on lapack.
>   gnu: grass: Remove dependency on lapack.
>   gnu: harminv: Switch to openblas.
>   gnu: giac: Switch to openblas.
>   gnu: libflame: Switch to openblas.
>   gnu: lush2: Remove dependency on lapack.
>   gnu: shogun: Switch to openblas.
>   gnu: kaldi-for-vosk: Remove dependency on lapack.
>   gnu: ocaml-lacaml: Remove dependency on lapack.

Pushed as e6df74d2b1afb71121228330fce9b5020d00220a.

Thanks!

Ludo’.