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