Intel® oneAPI Math Kernel Library
Ask questions and share information with other developers who use Intel® Math Kernel Library.
Announcements
The Intel sign-in experience is changing in February to support enhanced security controls. If you sign in, click here for more information.
6680 Discussions

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

PRE_MITER
Novice
548 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
463 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...

 

>>>"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
510 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...

 

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.

 

 

PRE_MITER
Novice
494 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

HemanthCH_Intel
Moderator
464 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...

 

>>>"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
449 Views
HemanthCH_Intel
Moderator
444 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

 

Reply