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

Question about LINPACK benchmark

NKnmt
Beginner
251 Views

Hello,


Our customer is using the LINPACK benchmark to measure GFLOPS value below.

https://www.intel.com/content/www/us/en/docs/onemkl/developer-guide-windows/2024-2/intel-distribution-for-linpack-benchmark.html


They're using the Core i7-1187GRE and it has 4 cores and 8 threads.

However, they could not run the all 8 threads during LINPACK benchmark measurement.

They have tried changing the thread settings for LINPACK runs from 1 to 8 with the attachment results.


Is there any way to get all threads to work when LINPACK is running?


Regards,

Nobuharu

0 Kudos
5 Replies
Gennady_F_Intel
Moderator
170 Views

Nobuharu,

by default this benchmark will take all physical threads available. You could manage the number of threads by explicitly  number of OpenMP threads like as following: MKL_NUM_THREADS=4 ./xlinpack_xeon64 lininput_xeon64

you could track how many openmp threads linpack will use by enabling MKL_VERBOSE mode: 

MKL_VERBOSE=1 MKL_NUM_THREADS=4 ./xlinpack_xeon64 lininput_xeon64

--Gennady

0 Kudos
NKnmt
Beginner
128 Views

Gannady,

 

Thank you for your feedback.

 

My customer tried "MKL_VERBOSE=1 MKL_NUM_THREADS=4 ./xlinpack_xeon64 lininput_xeon64".
However, the CPU workload displayed in Task Manager remained unchanged with only 5 threads applied.
The Linpack report showed a record with "4" threads.

 

Originally, the customer used the "OMP_NUM_THREADS=8" command.
Even with 8 threads explicitly set, the CPU load itself displayed in Task Manager was only 5 threads.
However, on the Linpack report, the number of threads is recorded as "8".

 

Regards,

Nobuharu

0 Kudos
Mahan
Moderator
108 Views

Hello Nobuharu,


Please check the following

  1. Check if Hyper-Threading is enabled in BIOS: The Core i7-1187GRE has 4 physical cores but supports 8 threads with Hyper-Threading technology. Ensure that Hyper-Threading is enabled in your system's BIOS settings.
  2. Update to the latest version of the benchmark: If you're using an older version of the Intel Optimized LINPACK Benchmark, consider updating to the latest version. Newer versions may have better support for utilizing all available threads.

Finally, you can set the envs MKL_VERBOSE=1 MKL_NUM_THREADS=8 before running the benchmark


0 Kudos
NKnmt
Beginner
76 Views

Hello Mahan,


Thank you for your feedback.
Here are the answer against your check.

1. Hyper Threading was set enabled in BIOS.

2. Our customer tried the latest LINPACK, but their issue has not solved.
They're download the latest LINPACK from here.
https://www.intel.com/content/www/us/en/developer/articles/technical/onemkl-benchmarks-suite.html

Finally, you can set the envs MKL_VERBOSE=1 MKL_NUM_THREADS=8 before running the benchmark
===>
They have set up the following in the runme_xeon64.bat file, is this correct?
...
set KMP_AFFINITY=nowarnings,compact,1,0,granularity=fine
set MKL_VERBOSE=1 MKL_NUM_THREADS=8 . /xlinpack_xeon64 lininput_xeon64

 

BTW, When they run the above bat file with the zip unzipped file configuration, the command prompt disappears momentarily (Application error occurs).
If they store "libiomp5md.dll", which was used when Linpack was running on another platform in the past, in the same folder as the above bat file, the command prompt remains displayed and Linpack is running.
According to "Developer Guide for Intel® oneAPI Math Kernel Library for Windows", Distributing Your Custom Dynamic-link Library
To enable use of your custom DLL in a threaded mode, distribute libiomp5md.dll along with the custom DLL.

Do they need to customize "libiomp5md.dll" to eliminate the thread limitation?

 

Regards,

Nobuharu

0 Kudos
Mahan
Moderator
58 Views

Hi Nobuharu,


Thanks for the reply.


To answer your first question regarding ENVs, you can set them two ways, for example,

  1. Using the "set" command before running the application, like set OMP_NUM_THREADS = 8
  2. The other one is to use them directly while running the application, like OMP_NUM_THREADS = 8 ./application.exe


To answer your second question

The "libiomp5md.dll" file is a pre-built library provided by Intel that enables threaded execution when distributed alongside your custom DLL.

In your case, when you store the "libiomp5md.dll" file in the same folder as the batch file, it allows Linpack to run properly, likely by enabling threaded execution. The application error you encountered earlier was possibly due to the absence of this library file, which is required for threaded execution.

So, you do not need to customize the "libiomp5md.dll" file itself. You just need to ensure that it is present in the same directory as your Linpack executable and other required files for proper threaded execution.


0 Kudos
Reply