Introduced by Jack Dongarra, they measure how fast a computer solves a dense n × n system of linear equations Ax = b, which is a common task in engineering.
The latest version of these benchmarks is used to build the TOP500 list, ranking the world's most powerful supercomputers.
This matrix size was chosen due to memory and CPU limitations at that time: Over the years, additional versions with different problem sizes, like matrices of order 300 and 1000, and constraints were released, allowing new optimization opportunities as hardware architectures started to implement matrix–vector and matrix–matrix operations.
[2] In 1991, the LINPACK was modified for[6] solving problems of arbitrary size, enabling high-performance computers (HPC) to get near to their asymptotic performance.
Its small size and the lack of software flexibility doesn't allow most modern computers to reach their performance limits.
[2] LINPACK 1000 can provide a performance nearer to the machine's limit because in addition to offering a bigger problem size, a matrix of order 1000, changes in the algorithm are possible.
The only constraints are that the relative accuracy can't be reduced and the number of operations will always be considered to be
In HPLinpack the size n of the problem can be made as large as it is needed to optimize the performance results of the machine.
[17] HPL is a portable implementation of HPLinpack that was written in C, originally as a guideline, but that is now widely used to provide data for the TOP500 list, though other technologies and packages can be used.
HPL generates a linear system of equations of order n and solves it using LU decomposition with partial row pivoting.
[18] Coarsely, the algorithm has the following characteristics:[19][20] The LINPACK benchmark is said to have succeeded because of the scalability[21] of HPLinpack, the fact that it generates a single number, making the results easily comparable and the extensive historical data base it has associated.
[22] However, soon after its release, the LINPACK benchmark was criticized for providing performance levels "generally unobtainable by all but a very few programmers who tediously optimize their code for that machine and that machine alone",[23] because it only tests the resolution of dense linear systems, which are not representative of all the operations usually performed in scientific computing.
[24] Jack Dongarra, the main driving force behind the LINPACK benchmarks, said that, while they only emphasize "peak" CPU speed and number of CPUs, not enough stress is given to local bandwidth and the network.
"[26] According to Dongarra, "the organizers of the TOP500 are actively looking to expand the scope of the benchmark reporting" because "it is important to include more performance characteristic and signatures for a given system".
[28] With the advent of petascale computers, traversed edges per second have started to emerge as a complementary metric to FLOPS measured by LINPACK.
[29] According to Jack Dongarra, the running time required to obtain good performance results with HPLinpack is expected to increase.