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