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