It may be useful to explain a bit more how Linpack works and is optimized for given platform. The benchmark is distributed as source code, and can be compiled and ran on any platform, including non -x86, like IBM Power G5, Cell, Intel IA64 (Itanium) so on. The code uses calls to specific mathematical library of functions, called BLAS (Basic Linear Algebra Subprograms), which contains most frequently used operations with matrices and vectors. This BLAS library is heavily platform -optimized and distributed by each CPU vendor.
For example, Intel has MKL for their x86 and Itanium CPUs,
AMD has ACML. There are also non-vendor versions which
have optimizations for different CPUs (Goto BLAS, Atlas).
Then Linpack exe file is compiled from source, it is linked with some specific version of BLAS, thus achieving high optimization level for this specific CPU.
The above Intel Linpack is compiled and linked with some BLAS version. The BLAS used to link with 32bit version is very general and should run even on older Intel CPUs, 64bit version is linked with latest version of MKL, which is very heavily optimized for latest Intel CPUs. Hence the large difference both in performance and load on Core2.
The BLAS libraries are frequently linked with application which require high performance, for example mathematical packets like Mathematica, Maple, Mathcad , some encoders/decoders, distributed projects like Folding&Home and so on.
If Linpack fails, all these applications may also fail, though it may take (significantly) more time, and may go largely unnoticed, as most CPU errors do not lead to any abnormal termination.
Bookmarks