698a2e
Notes on the packaged version of ATLAS
698a2e
698a2e
by Quentin Spencer
698a2e
updated: October 4, 2005
698a2e
698a2e
updated by Deji Akingunola
698a2e
October 15, 2008
698a2e
698a2e
updated by Deji Akingunola
698a2e
June 15, 2011
698a2e
698a2e
updated by Frantisek Kluknavsky
698a2e
Nov 20, 2012
698a2e
698a2e
Because ATLAS relies on compile-time optimizations to obtain improved
698a2e
performance over BLAS and LAPACK, the resulting binaries are closely
698a2e
tied to the hardware on which they are compiled, and can likely result
698a2e
in very poor performance on other hardware.  For this reason,
698a2e
including a package like ATLAS in Fedora requires some compromises.
698a2e
Optimizing ATLAS for the most modern hardware can result in
698a2e
significant performance penalties for users using the same package on
698a2e
older hardware. A binary ATLAS package must perform reasonably well on the
698a2e
entire range of hardware on which it could potentially be installed.
698a2e
698a2e
The result is a set of libraries that will not
698a2e
necessarily achieve optimal performance on any given hardware but
698a2e
should still offer significant performance gains over the reference
698a2e
BLAS and LAPACK libraries on most hardware.  
698a2e
698a2e
In addition to the base 32bit build, subpackages are built for SSE, SSE2,
698a2e
and SSE3 ix86 extensions.
698a2e
698a2e
On 64bit x86 systems the default atlas package was built with SSE3
698a2e
optimization.
698a2e
  
698a2e
This packaging allows multiple installation of different atlas sub-packages
698a2e
at the same time. The alternatives system (read 'man alternatives' for usage)
698a2e
is used in the -devel subpackages to select the appropriate location for the 
698a2e
architectural dependent header files.
698a2e
 
698a2e
For users who want optimal performance on
698a2e
particular hardware, custom RPMs can be built from the source package
698a2e
by setting the RPM macro "enable_native_atlas" to a value of 1. This
698a2e
can be done from the command line as in the following example:
698a2e
698a2e
rpmbuild -D "enable_native_atlas 1" --rebuild atlas-3.8.3-1.src.rpm
698a2e