Make Multi and Hyper Threading

option, parallelism,...

Moderators: fgoudreault, mcote

Forum rules
Please have a look at ~abinit/doc/config/build-config.ac in the source package for detailed and up-to-date information about the configuration of Abinit 8 builds.
For a video explanation on how to build Abinit 7.x for Linux, please go to: http://www.youtube.com/watch?v=DppLQ-KQA68.
IMPORTANT: when an answer solves your problem, please check the little green V-like button on its upper-right corner to accept it.
Locked
Ngeah
Posts: 7
Joined: Wed Aug 18, 2010 1:44 am

Make Multi and Hyper Threading

Post by Ngeah » Tue Oct 19, 2010 11:36 pm

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

User avatar
pouillon
Posts: 651
Joined: Wed Aug 19, 2009 10:08 am
Location: Spain
Contact:

Re: Make Multi and Hyper Threading

Post by pouillon » Wed Oct 20, 2010 10:36 am

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.
Yann Pouillon
Simune Atomistics
Donostia-San Sebastián, Spain

User avatar
Alain_Jacques
Posts: 279
Joined: Sat Aug 15, 2009 9:34 pm
Location: Université catholique de Louvain - Belgium

Re: Make Multi and Hyper Threading

Post by Alain_Jacques » Wed Oct 20, 2010 8:00 pm

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

Ngeah
Posts: 7
Joined: Wed Aug 18, 2010 1:44 am

Re: Make Multi and Hyper Threading

Post by Ngeah » Thu Oct 21, 2010 1:15 am

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

User avatar
Alain_Jacques
Posts: 279
Joined: Sat Aug 15, 2009 9:34 pm
Location: Université catholique de Louvain - Belgium

Re: Make Multi and Hyper Threading

Post by Alain_Jacques » Thu Oct 21, 2010 2:09 pm

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

Ngeah
Posts: 7
Joined: Wed Aug 18, 2010 1:44 am

Re: Make Multi and Hyper Threading

Post by Ngeah » Mon Oct 25, 2010 8:20 pm

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

Locked