From Fedora Project Wiki
(Initial draft)
 
(add tracker bug, move affected package list to dependencies)
Line 5: Line 5:
  
 
== Owner ==
 
== Owner ==
* Name: [[User:Rathann|Dominik Mierzejewski]] and the [[Category:SciTech_SIG|SciTech SIG]]
+
* Name: [[User:Rathann|Dominik Mierzejewski]] and the SciTech SIG
 
* Release notes owner: <!--- To be assigned by docs team [[User:FASAccountName| Release notes owner name]] <email address> -->
 
* Release notes owner: <!--- To be assigned by docs team [[User:FASAccountName| Release notes owner name]] <email address> -->
 
<!--- UNCOMMENT only for Changes with assigned Shepherd (by FESCo)
 
<!--- UNCOMMENT only for Changes with assigned Shepherd (by FESCo)
Line 26: Line 26:
 
CLOSED as NEXTRELEASE -> change is completed and verified and will be delivered in next release under development
 
CLOSED as NEXTRELEASE -> change is completed and verified and will be delivered in next release under development
 
-->
 
-->
* Tracker bug: <strike>[https://bugzilla.redhat.com/show_bug.cgi?id= #N/A]</strike>
+
* Tracker bug: [https://bugzilla.redhat.com/show_bug.cgi?id=1506952 #1506952]
  
 
== Detailed Description ==
 
== Detailed Description ==
Line 63: Line 63:
  
 
== How To Test ==
 
== How To Test ==
 
  
 
== User Experience ==
 
== User Experience ==
 
  
 
== Dependencies ==
 
== Dependencies ==
No dependencies.
 
 
== Contingency Plan ==
 
* Contingency mechanism: (What to do?  Who will do it?) Change owners will revert the changes to BuildRequires: in modified packages and rebuild them.
 
* Contingency deadline: beta freeze
 
* Blocks release? No
 
* Blocks product? No
 
 
== Documentation ==
 
 
== Release Notes ==
 
 
 
[[Category:SystemWideChange]]
 
 
 
atlas (34):
 
atlas (34):
 
ceres-solver
 
ceres-solver
Line 124: Line 107:
 
octave-optim
 
octave-optim
  
openblas:
+
== Contingency Plan ==
armadillo
+
* 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.
arpack
+
* Contingency deadline: beta freeze
cp2k
+
* Blocks release? No
csdp
+
* Blocks product? No
dlib
+
 
elemental
+
== Documentation ==
elk
+
 
elpa
+
== Release Notes ==
ergo
+
 
exciting
+
[[Category:SystemWideChange]]
gpaw
 
hpl
 
hypre
 
MUMPS
 
nwchem
 
numpy
 
openmx
 
petsc
 
quantum-espresso
 
scalapack
 
scipy
 
sphinxbase
 
superlu_dist
 
SuperLUMT
 

Revision as of 09:50, 27 October 2017

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 (34): ceres-solver CheMPS2 cxsc DSDP freefem++ ga gromacs iml jblas libcint libghemical linbox Macaulay2 mpqc ncl python-nipy ocaml-gsl octave octave-odepkg opengrm-ngram psfex psi4 python-cvxopt python-scikit-learn qcint qm-vamp-plugins sagemath scamp sextractor shogun suitesparse SuperLU SuperLU43 wannier90

blas (2): octave-control octave-optim

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