On 09/23/2013 08:46 AM, Susi Lehtola wrote:
On Mon, 23 Sep 2013 14:34:50 +0200
Kevin Kofler <kevin.kofler@chello.at> wrote:
Matthew Miller wrote:
Actually, what ATLAS upstream intends is for the program to be
recompiled on every installation (or boot, even). I think we used
to have packages that did that; this is a compromise.
Yes, ATLAS upstream has always been smoking deep crack. It looks like 
OpenBLAS is the much better option, now that it is available. (ATLAS
used to be the best available as Free Software back when GotoBLAS was
still proprietary, but now that the Goto code has been freed, ATLAS
is not looking so great anymore.)
Well, it's not too hard to understand why ATLAS does things the way it
does. It's already in the acronym: Automatically Tuned Linear Algebra
Software. You generate a library that is optimal for your processor. In
comparison, GotoBLAS (OpenBLAS) has been hand-tuned in assembly for
every supported CPU.

On the other hand, I'm not sure why they don't just take their tool and
pregenerate lists of optimal parameters for every available CPU. That
way you could compile everything in the same package and do runtime CPU
detection. Currently binary distributions have to do some hackaround to
generate a reasonably efficient one-size-fits-all library.
They can't cover every combination of CPU microarchitecture/cache sizes and main memory configuration and speed. It can't even be a per-motherboard configuration, because one could put in different speed DIMMs. and in principle that could change the optimal ATLAS setup. Recompiling it at every boot is a little extreme, though, albeit in principle someone could change the memory between boots.