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