Welcome to Linux Forums! With a comprehensive Linux Forum, information on various types of Linux software and many Linux Reviews articles, we have all the knowledge you need a click away, or accessible via our knowledgeable members.
Write an article for LinuxForums Today! Win Great Prizes!
Does Linux SMP perform at its optimum in Intel Core i7?
This is a general technical question about Symmetric Multiprocessing in relation to the Intel Core i7. (Actually, it's more about Hyperthreading than i7.)
My understanding is that Symmetric Multiprocessing means that the operating system treats all processors as identical, and therefore it can assign a new thread to any free processor.
And that i7 appears to the OS as 8 processors, 0 thru 7.
But from a performance perspective, the 8 processors are not identical, because each core has 1 execution engine plus the ability to store the state of 2 threads. This is, as far as I understand it, the essence of Intel's Hyperthreading. So the execution engine can quickly switch between 2 threads, but only one at a time actually executes.
If, for example, there is one thread assigned to processor 0, and the OS then assigns a second thread to processor 1, the result is that both threads are competing for the same execution engine, while the other 3 cores are idle.
Is my understanding correct?
If so, does linux SMP take full advantage of Intel Hyperthreading (which existed also in an earlier Intel processor)? That is, does linux SMP assign threads in such a way that it attempts to choose an idle execution engine?
How about Windows? How does it handle the situation?
I've been thinking about going with an i7 myself and wondering the same thing. While researching the matter, I ran across this review that might answer some of your questions:
I'd love to have one but due to pricing, I don't want to get it until I'm sure that Linux can't take full benefit of all the features that come with these processors.
I have had a look at the article. There are some interesting benchmark results. There is also a very recent article on the same site comparing benchmarks of i7-870 and i7-920 (plus 2 other processors). It's an interesting site that I've come across a few times before, but never looked closely until you referred it.
It doesn't directly address the question I raised. However, it has some forums that might produce something interesting if I post the question there.
The price on the i7-920 is starting to look really good, so I'd probably go ahead and get one, but with the extra expense of the LGA 1366 motherboard and some rather expensive RAM, I'll probably hold off a little longer.
If you go forward with it, do let us know how it all works out for you.
Location: I can be found either 40 miles west of Chicago, or in a galaxy far, far away.
Posts: 2,662
AFAIK, the i7 is a quad-core processor, though as you note each core can run 2 threads concurrently (hyperthreading) so it looks to some OS's as 8 cores (not). A thread is a "light weight" process. They can run one process on each core, and two threads on each concurrently. I think if a single process has more than 2 threads that they can all run simultaneously, up to the limits of the CPU (4 cores, 8 threads). I do know than when I run a multi-threaded application like ffmpeg on my 8 core system with 8 threads enabled it runs almost 8x faster than with one thread.
__________________
Sometimes, real fast is almost as good as real time.
Open Source Security Myths Dispelled Dispel the five major myths surrounding Open Source Security and gain the tools necessary to make a truly informed decision for your IT organization subscribe
InformationWeek InformationWeek is the only newsweekly you'll need to stay on top of the latest developments in information technology. subscribe