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

How to run HPL on one node with 1 process on 1 core?

PRE_MITER
Novice
1,626 Views

Hello all!

My testing platform is a single node with two sockets. Each socket has an Intel Xeon CPU E5-2697 v2 @ 2.70GHz which has 12 cores and 24 threads. Below is my software environment.屏幕截图 2022-02-05 092323.png

I definitely know that one MPI process one socket is recommended, i.e. P x Q = 2. But I want to try and see the performance of 1 process on 1 core, which means P x Q = 24. Below is the HPL testbench in my server.

屏幕截图 2022-02-05 092606.png

I commonly run "runme_intel64_dynamic" with MPI_PROC_NUM = 2 and MPI_PER_NODE = 2. I want to know that how to set environment variables to ensure 1 process on 1 core.

By the way, I find that when running HPL, only physical cores are used. Does that means I don't need to care about HT? And will MKL HPL itself spawn threads to the max 24 cores?

0 Kudos
1 Solution
HemanthCH_Intel
Moderator
1,541 Views

Hi,

 

>>>"I want to know that how to set environment variables to ensure 1 process on 1 core."

If you want to run 1 process on 1 core, could you please follow the below steps?

1)create a file called sample

#!/bin/bash

export HPL_HOST_CORE=${PMI_RANK}

./runme_intel64_dynamic

 

2)add the executable permission to that file.

chmod +x sample

 

3)run the below command:

mpirun -n <no.of process> ./sample

>>"Does that means I don't need to care about HT"

In multi-processor systems, best performance will be obtained with the Intel® Hyper-Threading Technology turned off, which ensures that the operating system assigns threads to physical processors only. For more information refer to the below link:

https://www.intel.com/content/www/us/en/develop/documentation/onemkl-linux-developer-guide/top/intel-oneapi-math-kernel-library-benchmarks/intel-optimized-linpack-benchmark-for-linux/limits-of-the-intel-optimized-linpack-benchmark.html

 

>>>"does MKL HPL will itself spawn threads as much as possible?"
MKL HPL spawns multiple threads to exploit multi/many-cores, and it does not require running 1 MPI process per core.

 

Thanks & Regards,

Hemanth

 

 

View solution in original post

5 Replies
HemanthCH_Intel
Moderator
1,588 Views

Hi,

 

Thanks for reaching out to us.

 

Please try using the below command for running the HPL benchmark on 1 core.

HPL_HOST_CORE=0 ./runme_intel64_dynamic

 

For more information refer to the below link:

https://www.intel.com/content/www/us/en/develop/documentation/onemkl-linux-developer-guide/top/intel-oneapi-math-kernel-library-benchmarks/intel-distribution-for-linpack-benchmark-1/environment-variables.html

 

Since you want to run the Intel® Distribution for LINPACK* Benchmark binary "runme_intel64_dynamic" using 1 process on 1 core, could you please explain the use-case/intension behind it? So that it helps us to understand your scenario better and thus helps us to provide you better support.

 

>>"And will MKL HPL itself spawn threads to the max 24 cores?"

Could you please elaborate on the above statement?

 

Thanks & Regards

Hemanth.

 

 

0 Kudos
PRE_MITER
Novice
1,572 Views

Thanks for the response! Maybe I haven't expressed it clear what I mean. Sorry about that.

I want to compare the performance of HPL between the following two running ways. One is to run 2 MPI processes, i.e. one process on one socket. The other is to run 24 MPI processes, i.e. one process on one core. Though I know the later way is not recommended, I just want to know how much performance loss there will be.

 

As for ">>And will MKL HPL itself spawn threads to the max 24 cores?", I find this on the other topic "Need Help w/ MKL HPL scores and HPL.dat"(link: Need Help w/ MKL HPL scores and HPL.dat - Intel Communities). I also attached the related picture below:屏幕截图 2022-02-08 155142_LI.jpg

About this question, I want to know how to check and change the number of HPL threads on each process. Or does MKL HPL will itself spawn threads as much as possible? 

Thanks,

 John

0 Kudos
HemanthCH_Intel
Moderator
1,542 Views

Hi,

 

>>>"I want to know that how to set environment variables to ensure 1 process on 1 core."

If you want to run 1 process on 1 core, could you please follow the below steps?

1)create a file called sample

#!/bin/bash

export HPL_HOST_CORE=${PMI_RANK}

./runme_intel64_dynamic

 

2)add the executable permission to that file.

chmod +x sample

 

3)run the below command:

mpirun -n <no.of process> ./sample

>>"Does that means I don't need to care about HT"

In multi-processor systems, best performance will be obtained with the Intel® Hyper-Threading Technology turned off, which ensures that the operating system assigns threads to physical processors only. For more information refer to the below link:

https://www.intel.com/content/www/us/en/develop/documentation/onemkl-linux-developer-guide/top/intel-oneapi-math-kernel-library-benchmarks/intel-optimized-linpack-benchmark-for-linux/limits-of-the-intel-optimized-linpack-benchmark.html

 

>>>"does MKL HPL will itself spawn threads as much as possible?"
MKL HPL spawns multiple threads to exploit multi/many-cores, and it does not require running 1 MPI process per core.

 

Thanks & Regards,

Hemanth

 

 

PRE_MITER
Novice
1,527 Views
0 Kudos
HemanthCH_Intel
Moderator
1,522 Views

Hi,

 

Thanks for accepting our solution. If you need any additional information, please post a new question as this thread will no longer be monitored by Intel.

 

Thanks & Regards,

Hemanth

 

0 Kudos
Reply