From Fedora Project Wiki
(Retarget to F30)
(update dependent packages list)
Line 67: Line 67:
  
 
== Dependencies ==
 
== Dependencies ==
atlas (34):
+
atlas (35):
ceres-solver
+
* ceres-solver
CheMPS2
+
* CheMPS2
cxsc
+
* cocoalib
DSDP
+
* cxsc
freefem++
+
* DSDP
ga
+
* ergo ''test failures?''
gromacs
+
* freefem++
iml
+
* ga '''DONE'''
jblas
+
* gromacs '''DONE'''
libcint
+
* iml
libghemical
+
* jblas
linbox
+
* libcint
Macaulay2
+
* libghemical
mpqc
+
* linbox
ncl
+
* Macaulay2
python-nipy
+
* mpqc
ocaml-gsl
+
* ncl
octave
+
* ocaml-gsl
octave-odepkg
+
* octave '''DONE'''
opengrm-ngram
+
* opengrm-ngram '''DONE'''
psfex
+
* psfex
psi4
+
* psi4
python-cvxopt
+
* python-cvxopt
python-scikit-learn
+
* python-nipy
qcint
+
* python-scikit-learn
qm-vamp-plugins
+
* qcint
sagemath
+
* qm-vamp-plugins
scamp
+
* sagemath
sextractor
+
* scamp
shogun
+
* sextractor
suitesparse
+
* shogun
SuperLU
+
* suitesparse '''DONE''
SuperLU43
+
* SuperLU '''DONE'''
wannier90
+
* SuperLU43 '''''retired'''''
 
+
* wannier90
blas (2):
 
octave-control
 
octave-optim
 
  
 
== Contingency Plan ==
 
== Contingency Plan ==

Revision as of 08:57, 20 August 2018

OpenBLAS as default BLAS implementation

Summary

Use OpenBLAS as the default BLAS library implementation.

Owner

Current status

Detailed Description

Most application use ATLAS because it's faster than reference BLAS. However, it doesn't support runtime CPU detection, so it must be built for a particular CPU. OpenBLAS is a competing BLAS implementation based on GotoBLAS2 that is and supports runtime CPU detection and all current Fedora primary arches.

Benefit to Fedora

Using a single default BLAS implementation will avoid bugs stemming from having two different BLAS libraries loaded at runtime that causes computation errors.

OpenBLAS detects CPU capabilities at runtime and selects the fastest computation kernel for the running hardware.

A lot of benchmarks around the net suggest openblas is faster than ATLAS in most workloads: https://github.com/tmolteno/necpp/issues/18 http://blog.nguyenvq.com/blog/2014/11/10/optimized-r-and-python-standard-blas-vs-atlas-vs-openblas-vs-mkl/ https://freddie.witherden.org/pages/blas-gemm-bench/ http://nghiaho.com/?p=1726

Scope

  • Proposal owners:

Modify the affected packages to BuildRequire: openblas-devel instead of atlas-devel or blas-devel and rebuild. Fix any failures.

  • Other developers:

N/A

  • Release engineering:

No help should be necessary. No mass rebuild necessary.

  • Policies and guidelines: N/A
  • Trademark approval: N/A

Upgrade/compatibility impact

How To Test

User Experience

Dependencies

atlas (35):

  • ceres-solver
  • CheMPS2
  • cocoalib
  • cxsc
  • DSDP
  • ergo test failures?
  • freefem++
  • ga DONE
  • gromacs DONE
  • iml
  • jblas
  • libcint
  • libghemical
  • linbox
  • Macaulay2
  • mpqc
  • ncl
  • ocaml-gsl
  • octave DONE
  • opengrm-ngram DONE
  • psfex
  • psi4
  • python-cvxopt
  • python-nipy
  • python-scikit-learn
  • qcint
  • qm-vamp-plugins
  • sagemath
  • scamp
  • sextractor
  • shogun
  • suitesparse 'DONE
  • SuperLU DONE
  • SuperLU43 retired
  • wannier90

Contingency Plan

  • Contingency mechanism: (What to do? Who will do it?) If switching to OpenBLAS breaks a particular package, changes to the package will be reverted and package rebuilt.
  • Contingency deadline: beta freeze
  • Blocks release? No
  • Blocks product? No

Documentation

Release Notes