Intel® oneAPI Math Kernel Library
Ask questions and share information with other developers who use Intel® Math Kernel Library.

Basic Intel Linpack Benchmark Questions

florianwiegand
Beginner
2,654 Views
Hello everyone,

my name is Florian and i have some basic questions for you about the Linpack Benchmark App. It has become a part of my responsibility at work to certify Workstation system for the Energy Star. About a week ago i received my first WS system and have to use the Linpack Suite to test it.

I originally come from Network Eng. and got moved to my new department, so please excuse my beginner questions and my english since this is not my native language.

If i understood correctly the Linpack App uses the Intel optimized librarys for the architecture to be tested. In my case its a 64bit dual xeon platform with 8GB of main memory. I have downloaded and installed the Linpack benchmark suite and executed it. It is running on a 64bit MS Windows OS. It is asking for several inputs

*leading dimensions of array
*trials to run
*number of equations to solve
*data alignment value

Could you please explain to me how to calculate these values and what they mean?

I am sorry to bother you with this most likely basic question but i would apreciate any help given.

Best regards

Florian
0 Kudos
8 Replies
Todd_R_Intel
Employee
2,654 Views

Florian,

There is quite a bit of good information in the benchmarkslinpack directory. Sounds like linpack_xeon64.exe is the right benchmark for you. You can run "linpack_xeon64.exe -e" to get a length discussion of parameters and what combinations are best. But maybe easier would be to start by just trying the example input file: "linpack_xeon64.exe < lininput_xeon64". The -e option help also discusses what each line of this input file does.

To address your question briefly:

  • leading dimension is the stride between columns of the matrix
  • trials to run is the number of times to run the problem (e.g., you might want more stability and run a problem multiple times, or you might want to run multiple sizes)
  • number of equations is the size of the matrix
  • data alignment value is the way the memory is aligned. From the extended help
    • The alignment value allows the arrays to be aligned to the value specified, zero means that no specific alignment will be performed - the arrays are used as they are allocated. The best performance is likely to be obtained when arrays are aligned to the page size boundary.

Todd

0 Kudos
florianwiegand
Beginner
2,654 Views
Thank you for the tips,

i have reviewed the programm a bit more. I am still wondering tough, how is the problem size determinded? I found a formula which states that the number of bytes (from main memory) should be divided by 8 and then by a 1000. The the root should be calculated based on that which is "n". What is the Matrix?

Kind regards

Florian
0 Kudos
Todd_R_Intel
Employee
2,654 Views

The Linpack benchmark performs an LUfactorization then solve of a matrix. So

Number of equations = size of matrix = problem size = "n"

Todd

0 Kudos
Aesha_P_
Beginner
2,654 Views

Hello,

I am Aesha, I want to do some analysis based on parameters present in o/p file of linpack_xeon64.exe .

Plz tell me meaning of following parameters:

1. Residual

2. Residual(norm)

3.Check

0 Kudos
Murat_G_Intel
Employee
2,654 Views

Hi Aesha,

Residual and residual norm indicate the accuracy of the solution. Residual vector is: r = b - A*x, where A is the coefficient matrix, x is the solution vector and b is rhs vector. The reported residual number is the absolute maximum value in the r vector. residual (norm) is similar, however this time the residual is scaled by the machine epsilon, norm of the matrix A and number of equations. The "Check" indicates that residual and residual (norm) is within acceptable error limits.

Thank you.

 

 

0 Kudos
Chatterjee__Saptarsh
2,654 Views

This article explains it nicely  https://stackoverflow.com/questions/49345420/understanding-linpack-input-configuration

Quoting from the article - 

 

This is the setup for Intel optimized Linpack benchmark. The parameters that you seem to be confused are all related to the way matrices are represented and accessed.

Linpack benchmark solves a system of N simultaneous linear equations.

a11 * x1 + a12 * x2 + .. + a1N * xN = b1
a21 * x1 + a22 * x2 + .. + a2N * xN = b2
...
aN1 * x1 + aN2 * x2 + .. + aNN * xN = bN

This is equivalent to solving a vector equation Ax=b where x and b are N-dimensional vectors and A is an N*N matrix.

An N*N matrix is represented in the memory as an N*N array where individual columns are stored at offsets 0,n,2*n etc. Note that we use a different symbol n instead of N. The reason is that when n=N the algorithm running in several parallel threads may run into a phenomenon known as cache thrashing. Do avoid this it is advised to set n>N inserting some padding between the column data. Often n is selected to be the smallest integer divisible by 8 that is greater than N. So we are done with lines 2 and 3. Line 2 is N and line 3 is n.

Linpack benchmark uses several arrays. Once again to use the cache efficiently it is advised to have all arrays start at the boundary of memory pages. So they are aligned to the 4k boundary. With larger pages it might make sense to set this value to a large number, e.g. 16, or 64. This is our line 5.

You should also have a look at the original High Performance LINPACK.

0 Kudos
Ravi_P_Intel
Employee
2,654 Views

Whether there is different tool for Atom processor?

from where i can download latest Intel(R) Optimized LINPACK Benchmark data tool? 

0 Kudos
Gennady_F_Intel
Moderator
2,654 Views

this is part of official mkl package. Please check the benchmark directory from official mkl build.

0 Kudos
Reply