Reply 24980 of 29603, by fosterwj03
Meatball wrote on 2023-08-19, 20:16:fosterwj03 wrote on 2023-08-19, 19:53:You might be thinking about Windows XP. […]
Meatball wrote on 2023-08-19, 19:26:Sounds great! […]
Sounds great!
I presume there's a "for fun" angle (of course!), but there are some caveats to be wary (of which you may already be aware):
You don't need Advanced server for multi-core or hyperthreaded machines. It is licensed by socket up to 8 physical sockets. Regular server is licensed up to 4 sockets. Professional is licensed up to 2 sockets. You won't see any advantage performance advantage for server versions. You could have a million threads and cores on a single socketed machine, and Professional is still the requirement.
Windows 2000 has no idea about hyper-threading (or cores for that matter). You should disable hyper-threading for Windows 2000 (and NT 4.0). You are likely hurting performance as the OS thinks they are actual physical processors. You can get away with multi-core, but still it not designed with cores in mind. With that said, to make sure you are getting your money's worth, check this thread: https://msfn.org/board/topic/174127-info-on-w … r-cpu-machines/ Alternatively, upgrade to Windows XP/2003. I know it's not the goal, but these are the first Microsoft OSs to recognize multi-core and hyper-threading.
If it's RAM you're concerned with, Professional and Server support/licensed up to 4GB, and 8GB is the maximum for Advanced Server. If you want more, you'd have to upgrade to Datacenter for support as high as 32GB.
You might be thinking about Windows XP.
While you're generally correct about the licensing, Windows 2000 treats each core (and virtual thread) as though they are separate socketed processors. I need to use the server version (or the server hack) to allow Windows to use more than two cores.
It is true that Windows 2000 was never officially updated to optimize hyperthreading, but it does see all eight virtual processors when enabled on the Xeon. While not optimal, multithreaded apps will use all of the threads.
It is just for fun. I don't really have a use case for Windows 2000, but I love retro rockets.
That Windows 2000 would only use the first two cores, I had no idea, so I learned something there. Yes, it does see eight virtual processors, but it treats them like physical processors as we've both outlined. And because hyperthreading shares many of the same resources with the primary core, they will have resource scheduling issues. It may be what is causing 3DMark issues. Anyway, I'm glad I responded as I learned something new!
I would have thought the same thing about the lack of optimization based on what I read about hyperthreading back in the early 2000's. Lots of articles said it wouldn't help or might hurt older OS's, but those articles never gave any real-world evidence. They probably just figured no one would ever bother to use an old OS on newer hardware.
I decided to run a couple of quick synthetic tests and one real-world test to see what the impact would be. Here are the results:
4 Cores; HT Disabled (4 Threads)
Sandra 2001 ALU - 47938
Sandra 2001 FPU - 19603
CPU-Z Single - 709
CPU-Z Multi - 2802
Crysis Run 0 - 56.28 FPS
Crysis Run 1 - 59.33 FPS
Crysis Run 2 - 59.35 FPS
Crysis Run 3 - 59.52 FPS
4 Cores; HT Enabled (8 Threads)
Sandra 2001 ALU - 58604
Sandra 2001 FPU - 35049
CPU-Z Single - 709
CPU-Z Multi - 3290
Crysis Run 0 - 56.21 FPS
Crysis Run 1 - 59.54 FPS
Crysis Run 2 - 59.33 FPS
Crysis Run 3 - 59.36 FPS
Based on these numbers, Windows 2000 hyperthreading works without detriment in the synthetic tests. These results indicate a 17 - 78% improvement in multi-processor scores with hyperthreading enabled. CPU-Z's single thread performance also seemed unaffected by the presence of hyperthreading.
Crysis also seems unaffected by hyperthreading with results in-line with the disabled results.
I wonder if Intel improved on-die thread scheduling in the Core i-series to the point where it didn't matter so much if the OS was "Hyperthreading Aware". Just a thought.