(→Dependencies: update status for listed packages) |
(→Current status: Retarget to F33.) |
||
Line 16: | Line 16: | ||
== Current status == | == Current status == | ||
* Targeted release: [[Releases/ | * Targeted release: [[Releases/33 | Fedora 33 ]] | ||
* Last updated: <!-- this is an automatic macro — you don't need to change this line --> {{REVISIONYEAR}}-{{REVISIONMONTH}}-{{REVISIONDAY2}} | * Last updated: <!-- this is an automatic macro — you don't need to change this line --> {{REVISIONYEAR}}-{{REVISIONMONTH}}-{{REVISIONDAY2}} | ||
<!-- After the change proposal is accepted by FESCo, tracking bug is created in Bugzilla and linked to this page | <!-- After the change proposal is accepted by FESCo, tracking bug is created in Bugzilla and linked to this page |
Revision as of 21:02, 5 April 2020
OpenBLAS as default BLAS implementation
Summary
Use OpenBLAS as the default BLAS library implementation.
Owner
- Name: Dominik Mierzejewski and Christian Dersch
- Release notes 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.
- List of deliverables: all
- Policies and guidelines: N/A
- Trademark approval: N/A
Upgrade/compatibility impact
How To Test
User Experience
Dependencies
atlas (35):
- ceres-solver
- CheMPS2 DONE
- cocoalib DONE
- cxsc DONE
- DSDP
- ergo test failures?
- freefem++
- ga DONE
- gromacs DONE
- iml DONE
- jblas
- libcint
- libghemical
- linbox DONE
- Macaulay2 DONE
- mpqc
- ncl DONE
- numpy DONE
- ocaml-gsl DONE
- octave DONE
- opengrm-ngram DONE
- psfex
- psi4 DONE
- python-cvxopt DONE
- python-nipy
- python-scikit-learn
- qcint
- qm-vamp-plugins
- sagemath DONE
- scamp
- sextractor
- suitesparse DONE
- SuperLU DONE
- SuperLU43 retired
- wannier90
blas/lapack(1):
- shogun retired
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