Page 1 of 1

Make Multi and Hyper Threading

Posted: Tue Oct 19, 2010 11:36 pm
by Ngeah
Hello everyone,

I am running on an Intel I7 930, which has 4 physical cores which have Hyper Threading, so each physical core has 2 virtual cores (8 virtual cores total). I have successfully installed ABINIT on my system, and everything seems to be working fine, but I used the "make" command instead of the "make multi multi_nprocs=<n>" command.

I'm still a little shaky about the facts, but after a bit of googling, I want to say that I should have used the "make multi" command instead becuase a multi core processor is handled as an SMP architecture, and the cores are treated as multiple processors.

Now if all that is correct, and I should in fact be using "make multi multi_nprocs=<n>," am I supposed to set n to 4 or 8? I searched the ABINIT forums, but I don't think this has been addressed yet. If I'm wrong, can someone please link me to the correct thread? Any additional information would also be appreciated.

Thanks in advance.
Ngeah

Additional info:
Intel I7 930
6GB RAM
Ubuntu 10.10 Maverick Meerkat (amd64)
ABINIT 6.4.1

Re: Make Multi and Hyper Threading

Posted: Wed Oct 20, 2010 10:36 am
by pouillon
There is a "make multi_octo" shortcut for your kind of architecture. More generally, you can set the number of processes to the total number of cores + 1.

Re: Make Multi and Hyper Threading

Posted: Wed Oct 20, 2010 8:00 pm
by Alain_Jacques

Code: Select all

make multi
... to run 4 parallel threads. HT is only for decoration; looks cute for a "top" but no efficient hardware behind.

Alain

Re: Make Multi and Hyper Threading

Posted: Thu Oct 21, 2010 1:15 am
by Ngeah
Thank you both for your hasty replies. I am currently running a few jobs right now, so I won't be able to try until later tonight.

Alain_Jacques wrote:HT is only for decoration; looks cute for a "top" but no efficient hardware behind.


I had suspicions of this as well, but had little info to back it. Can you explain a little further? Or better yet, do you know where I can go to read more about this? Specifically why HT isn't effective for applications such as ABINIT?

Also, will I get some speed increase automatically, or will I have to play with the parallelisation input variables in order to get a change in performance? If so, which variables are most worthwhile? I realize this may asking a bit much, so please accept my apologies and disregard this last paragraph if you think that is the case.. I've still got a lot to learn.

Thanks again,
Ngeah

Re: Make Multi and Hyper Threading

Posted: Thu Oct 21, 2010 2:09 pm
by Alain_Jacques
Months ago, I made several tests on our brand new dual Xeon Nehalem workhorse - Gainstown X5570 CPUs. Nice system indeed with an option in the BIOS allowing to switch on/off hyperthreading. And so I ran all the combinations of 4 threads / 8 threads/CPU with HT on/off using Abinit parallel tests as benchmarks. The conclusion was that there is no speed improvement by activating HT - HT+8threads/CPU = 2 times slower than noHT+4threads/CPU // HT+4threads/CPU = noHT+4threads/CPU // HT+8threads/CPU = noHT+8threads/CPU. So even when overloading the CPU, HT was inefficient. I didn't test the effects on MKL multithreading - maybe Intel has some magic recipe to benefit from HT.

Kind regards,

Alain

Re: Make Multi and Hyper Threading

Posted: Mon Oct 25, 2010 8:20 pm
by Ngeah
Thanks again Alain, for the information. It sounds like you've done some rather extensive tests regarding the performance of HT. If I run across more information on this, I'll be sure to post it here as well.

Cheers,
Ngeah