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