Wow!
Sorry, the Quote feature doesn't seem to be working for me today. I'm doing it manually.
Quote:
Originally Posted by melgross
When NT first came out it supported two. It wasn't able to make a real push into the server space until Microsoft was able to support four processors. That took a lot of work, and didn't work well. In fact, support for four only worked well when they got the support to eight-way. Now it supports thirty two way, and works well up to sixteen.
macsrus:
Actually NT supported 4 processors way back in Windows NT 3.1 Advanced Server.....
And Believe it or not Unisys was building 32 processor NT servers using Intel pentiums back in 1995/96 (during the NT 3.51 days)
me:
Yes at 3 they WERE supporting four. But when it first came out, you know, ver 1.0, they were supporting two.
macsrus:
Actually IBM has been producing dual core processors for 3 years now... All Power 4 processors are dual core... and the Power 5 is dual core too.
me:
True, but I was talking about the 970, not the Power series.
AidenShaw:
Quote:
Originally Posted by melgross
When hyper-threading is turned on, some programs see two logical PROCESSES, but not two logical cpu's.
No, it's PROCESSORS.
With Windows (since OS X doesn't run on any HT chips, anything there is speculation) when HT is enabled you see twice as many PROCESSORS.
On my dual Xeons, the environment variable NUMBER_OF_PROCESSORS is 4. The Task Manager shows 4 CPU load windows in the performance pane.
me:
I agree. But the program being run doesn't see it that way.
maxvamp:
Quote:
OS X supports two logical processors. It's possible, from what I've read, that 10.4 will support four. The idea that it's easy to continue support up to sixteen, or higher, is wrong.
As of OSX.3, the OS supports at least two physical processors. I am not aware that it supports any logical ( hyper threaded ) processors.
me:
Sorry, I meant to say physical, not logical.
Quote:
When NT first came out it supported two. It wasn't able to make a real push into the server space until Microsoft was able to support four processors. That took a lot of work, and didn't work well. In fact, support for four only worked well when they got the support to eight-way. Now it supports thirty two way, and works well up to sixteen.
Memory, cache coherency, as well as issues with threading and program allocation, among others, are not easily gotten around.
These issues were due to MS's lack of technology. At the same time MS was having a hard time getting past 4 processors, IBM had OS/2 V2 up to 64 processor capable. Yes, the architecture of day was limited since multi proc 386s often shared a common cache, which got cleared often by mistake, but the technology did exist. UNIX and the Mach kernel was even more advanced than the OS/2 kernel.
It is not wise to try to use MS as an example of the latest in technology.
me:
Actually, all companies had problems getting past two processors, in the beginning. It wasn't just Microsoft. IBM had more experience than Microsoft did (they had none, really.).
Quote:
Most programs have one thread and only benefit from two processors if the OS can move system ops to one processor while keeping program usage on the other. Most programs won't benefit much from hyper-threading, and indeed, might suffer. Intel has found this to be a problem as well.
A program must be compiled for multiple threads, as well as multiple processors. The more threads and processors, the more difficult the problem becomes.
Very few programs will see a benefit from four way machines. If you are running more than one program, however, you might see an advantage if the OS is written properly.
Bull!!! Any programmer can simply call for a new thread for any task in their code. Furthermore, the classes that a programmer might call to do tasks such as GUI controls, or file system access will very often spawn threads, due to the nature of the built in classes in the OS ( Win32, .NET, Next Framework, etc ).
Unless you are sitting in Terminal, and launching a simple program such as tar, you will be hard pressed to find a single threaded program for Windows, OSX, or most any modern day OS. Case in point, I have written a small program in JAVA that reads and modifies file attributes. I have intentionally not threaded the app, but when it does launch, it uses 7 threads, because I use the system calls found in the File object. You cannot have a GUI interface without threading.
The compiler does not perform the threading, the programmer does.
About the only thing you are somewhat correct is that just because a system has many physical / logical processors, does not guarantee speed. multi processors are like torque in an engine. More torque doesn't make you go faster, it just takes a lot more of a load to slow you down.
me:
Bull! My, such a strong word. Please think with your head, and not with your heart. I do understand how threads are spawned. You are not paying attention to the point of the argument. I am talking about parallel execution. Maybe I should have been clearer. Many, if not most, programs can't effectively use multi-threading. Most super computers work on problems that can be broken down into single units that can be worked upon at the same time. That's why supercomputers shuch as the older Cray's had an avarage speed that was close to the peak rating. Not so with massively parralel machines. The peak is MUCH higher than the average, sometimes ten times higher.
Mr. Shaw explains this here in post #189.