Automatic Multithreading?

Soccerman

Elite Member
Oct 9, 1999
6,378
0
0
we know that at any time only part of our CPU is typically in use (say you're running Seti@home, it's not necessarily using every pipe available at a time), and the P4s Hyperthreading is supposed to allow multiple threads to run at once in order to utilize more pipes (rather than having 2 cores to run more threads at once to achieve multithreading) correct?

is it not possible to do something like this in software? ie, the OS knows what kind of CPU u have so it can figure out how many pipes it has to fill, and then manages the multiple threads so that it can utilize all of the pipes without having programs be HyperThread aware in order to take advantage of say the P4's soon to come (if it's not in it already) HyperThreading ability. this way the CPU only sees one (I think) thread per pipe, though I'm not sure..

my memory is a bit hazy in this area though cause the last time I read up on multithreading was when Anand did his Hyperthreading article (though that wasn't all I read).
 

Nothinman

Elite Member
Sep 14, 2001
30,672
0
0
You can't make a non-multithreaded app multithreaded without a lot of data protection and locking, otherwise the app will fall on it's face very quickly. Otherwise everything would benefit from SMP out of the box.

What you're talking about is doing the P4's HT in software and I don't think that's possible either because the OS only has 1 set of registers to work with when it detects 1 CPU. There would have to be a way to tell the CPU where each set of registers was stored in either cache or memory and that would slow everything down significantly because of all the slower access to the simulated registers, which I'd be willing to bet would be slow enough to decrease overall performance.
 

Turkey

Senior member
Jan 10, 2000
839
0
0
Hyperthreading is basically a second set of registers that allows the OS to explicitly run multiple threads with only one processor. An app doesn't have to be HT-enabled to use HT, only the OS. The app only has to be multi-threaded.

You can extract some parallelism from non-multithreaded x86 code, but you can only do it at runtime & it's best done in hardware. This is the idea behind superscalar architecture... ex: if the processor needs 20 cycles to retrieve a piece of data from memory, it can identify it 20 cycles in advance to when the data will be needed and fetch it using a mem fetch unit, while the rest of the code in front of it continues executing in other logic units. This way when the data is needed by the program is it available.
 

zephyrprime

Diamond Member
Feb 18, 2001
7,512
2
81
You have a distorted view of pipes. If pipes operated like you're thinking of, each pipe would be like a little processor. This would make the chip a multi core sort of processor like the Sledge Hammer is going to be.

Pipes are just to take advantage of byte level parallelism in code. You should know that individual pipes aren't complete in and of themselves. Each pipe has some of the processors instruction set wil one or two pipes being more important and containing the most operations.
 
sale-70-410-exam    | Exam-200-125-pdf    | we-sale-70-410-exam    | hot-sale-70-410-exam    | Latest-exam-700-603-Dumps    | Dumps-98-363-exams-date    | Certs-200-125-date    | Dumps-300-075-exams-date    | hot-sale-book-C8010-726-book    | Hot-Sale-200-310-Exam    | Exam-Description-200-310-dumps?    | hot-sale-book-200-125-book    | Latest-Updated-300-209-Exam    | Dumps-210-260-exams-date    | Download-200-125-Exam-PDF    | Exam-Description-300-101-dumps    | Certs-300-101-date    | Hot-Sale-300-075-Exam    | Latest-exam-200-125-Dumps    | Exam-Description-200-125-dumps    | Latest-Updated-300-075-Exam    | hot-sale-book-210-260-book    | Dumps-200-901-exams-date    | Certs-200-901-date    | Latest-exam-1Z0-062-Dumps    | Hot-Sale-1Z0-062-Exam    | Certs-CSSLP-date    | 100%-Pass-70-383-Exams    | Latest-JN0-360-real-exam-questions    | 100%-Pass-4A0-100-Real-Exam-Questions    | Dumps-300-135-exams-date    | Passed-200-105-Tech-Exams    | Latest-Updated-200-310-Exam    | Download-300-070-Exam-PDF    | Hot-Sale-JN0-360-Exam    | 100%-Pass-JN0-360-Exams    | 100%-Pass-JN0-360-Real-Exam-Questions    | Dumps-JN0-360-exams-date    | Exam-Description-1Z0-876-dumps    | Latest-exam-1Z0-876-Dumps    | Dumps-HPE0-Y53-exams-date    | 2017-Latest-HPE0-Y53-Exam    | 100%-Pass-HPE0-Y53-Real-Exam-Questions    | Pass-4A0-100-Exam    | Latest-4A0-100-Questions    | Dumps-98-365-exams-date    | 2017-Latest-98-365-Exam    | 100%-Pass-VCS-254-Exams    | 2017-Latest-VCS-273-Exam    | Dumps-200-355-exams-date    | 2017-Latest-300-320-Exam    | Pass-300-101-Exam    | 100%-Pass-300-115-Exams    |
http://www.portvapes.co.uk/    | http://www.portvapes.co.uk/    |