CFD Online Discussion Forums

CFD Online Discussion Forums (http://www.cfd-online.com/Forums/)
-   OpenFOAM Running, Solving & CFD (http://www.cfd-online.com/Forums/openfoam-solving/)
-   -   OF Parallel Processing with Core i7 - How to Handle Hyperthreading (http://www.cfd-online.com/Forums/openfoam-solving/97946-parallel-processing-core-i7-how-handle-hyperthreading.html)

dancfd February 28, 2012 21:23

OF Parallel Processing with Core i7 - How to Handle Hyperthreading
 
Hello all,

Does anyone have experience parallel processing with the Core i7 processor? It has 4 cores, however it appears as 8 in System Monitor due to hyperthreading of the cores. My question is this: I am running a 2-D airfoil simulation in a C-grid, which breaks up very nicely into 4 parts for parallel processing, but does not break up very nicely into 8. If I run in parallel on 4 processors I will only use half of my computer's processing power... any ideas on how I can best utilise the system's resources?

Thanks,

Dan

kmooney February 28, 2012 22:30

What kind of CPU utilization do you get with an 8 processor decomposition? I use an i7 and get pretty good efficiency with 7 or 8 threads.

flavio_galeazzo February 29, 2012 04:41

Hi dancfd,

I also work with i7 processors in our cluster. You already has the clues that lead to the answer: the i7 processor has 4 physical cores, that appear as 8 virtual cores due to Hyper-Treading (HT). The processing power is not doubled when using HT, the physical cores remain the same. I have tested OpenFoam in three configurations:

1. HT deactivated - running parallel with 4 nodes
2. HT activated - running parallel with 4 nodes
3. HT activated - running parallel with 8 cores

In all configurations I am saturating the processing power of the machine, independent of what the task manager says. The performance difference is very small, with an 2-3% advantage to the configuration 1 (probably due the overhead of the HT system in configurations 2 and 3).

In short, once you get all your physical cores full, there is no advantage in splitting a physical core into 2 virtual ones, and fill them up.

robbirobocop February 29, 2012 05:16

From my point of view you cannot estimate your performance by means of the number of cores or nodes. It heavily depends on the case you are running in parallel. I have an i7 as well and for the latest bigger case I run - that was a steam drum by the way - 5 cores (hierarchical method) was the fastest configuration...

So if you have a huge case which needs a simulation time of around 2 or 3 days, I recommend to firstly run a little parallelisation study to see which configuration needs the shortest amount of time. Thus, you can save computational time ;)

dancfd March 2, 2012 20:20

Hello all,

Thank you for the detailed responses. I will run a parallelization study and post the results here.

Regards,

Dan

dancfd March 5, 2012 22:43

Hello all,

In case anyone is still interested, I ran a 42k cell 2D airfoil C-grid mesh on 4, 6 and 8 processors, decomposed as follows with equal weighting given to each processor:

Code:

#Cores  Decomposition    Run Time [s]
4            2 2 1                  4231
6            2 3 1                  3103
8            2 4 1                  3252

I ran 3000 timesteps in simpleFoam, and found that the 6 cores were 27% faster than 4, and 8 cores were 23% faster than 4. I did not run any tests to verify the effect of changing the processor weighting or decomposition (e.g. 2-4-1 vs 4-2-1). For your information,

Dan


All times are GMT -4. The time now is 17:29.