Make Multi and Hyper Threading
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.
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.
Make Multi and Hyper Threading
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
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
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
Simune Atomistics
Donostia-San Sebastián, Spain
- Alain_Jacques
- Posts: 279
- Joined: Sat Aug 15, 2009 9:34 pm
- Location: Université catholique de Louvain - Belgium
Re: Make Multi and Hyper Threading
Code: Select all
make multi
Alain
Re: Make Multi and Hyper Threading
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.
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
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
- Alain_Jacques
- Posts: 279
- Joined: Sat Aug 15, 2009 9:34 pm
- Location: Université catholique de Louvain - Belgium
Re: Make Multi and Hyper Threading
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
Kind regards,
Alain
Re: Make Multi and Hyper Threading
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
Cheers,
Ngeah