OK, so I ordered a machine and I pulled the second CPU from the order because the dogs who bark with more authority decided not to purchase the one software module that is multi-threaded. But now I’m thinking possibly the OS (NT 4) recognizes it and some tasks that temporarily fug up the machine (i.e., printing to the printer with no memory) might just be recognized as separate processes and be handled by the 2nd CPU. Did I screw up? Is there any advantage to running a second CPU under NT if the software is not multi-threaded?
If one CPU is busy WinNT will offload tasks to the second. No one application will run faster but it will allow you to run more apps with less of an impact on each other.
Thanks for the response. $800+ does seem like a lot for, as I can see it, an occasional printer buffer.
But the point, I guess, is NT will see the second processor and give it work outside of a particular application, so, say, dual runnings of the same application (on different projects), come number crunching time, will benefit, despite it (primary application) not being multi-threaded?
You’ll see a fairly big difference, if you were ever used to having your machine chug along, responding slowly. With a second CPU an application can hog a whole CPU and the computer is still peppy, opening windows, launching other apps, as if nothing much was going on. If you find you do a lot of big calculations (compiling, whatever) and they make the computer a bit sluggish, a second CPU could keep the computer usable all the way through.
Even if you got a great multithreaded app, it’s unlikely the second CPU would give you more than 150% of the speed of one CPU because of overhead. So to me, unless you’re going with many CPUs and a massively parallel job, the benefit of dual CPUs is to keep the computer usable under what would otherwise be a huge load.
But, this takes ram. And a fast HD. And with high-powered multitasking, SCSI serves better than EIDE. You can get a lot of SCSI RAID controllers to control a number of smaller harddrives as if they are one bigger faster one. This could be good if you find drive access slowing things down now. Throw that second CPU in and let it be used and you’ll really need a fast drive.
As for RAM. Double whatever you’d put in the single CPU machine. 256MB at a minimum, and 512 preferably.
But, don’t go crazy on CPUs. The point is better overall performance, not a little bit better on one task. You can get two 600s for the price of an 800, and you’ll get a much more responsive computer. To do two 800s would cost so much as to make it pointless. Better two slower CPUs and a better RAM/Disk infrastructure.
NT will split multiple processes across multiple processors, so you will get some benefit from a second processor just by running more than one application. How much benefit depends on a lot of factors, but I’d say that unless your app is multithreaded and your performance is highly dependant on the processor speed, you’ll get better performance from spending the $800 on other things (like a faster single proc, more ram, faster disk system, faster NIC, etc.)
Although processor speed is what most people think of when you talk about how fast a computer is, ram, video, disk, network, and other things generally have a much stronger overall effect on performance. I’d use the $800 to knock the ram up to half a gig before I’d get a second processor.
Also, if you feel like being really clever you can set the ‘processor affinity’ for a given program and NT will always try to run that proc on a given processor. This isn’t really useful unless you know what you’re doing, but is one of those nifty geek tricks you can play around with.
Kevin Allegood,
“At least one could get something through Trotsky’s skull.”
- Joseph Michael Bay
That should have been more like ‘This isn’t really useful unless you have a specific reason for doing it, …’
Kevin Allegood,
“At least one could get something through Trotsky’s skull.”
- Joseph Michael Bay
One other note: if you install NT on a dual-processor machine, it will recognize both processors. If you install it on a single-processor machine and later add a processor, you will have to manually change the configuration to get it to recognize the second processor.
- Rick
It is possible to automatically add a second processor in NT 4 without reinstalling.
The major change is replacing the Hardware Abstraction Layer (HAL) with a multiprocessor version. You can do this manually (How to Manually Add Support for a Second Processor) but it’s fraught with peril (especially since they give you no guidance in choosing the correct multiprocessor HAL). You can do it semi-automatically with UPTOMP.EXE (Use UPTOMP.EXE to Upgrade Single-Processor to Multiprocessor). There are bugs in some versions of UPTOMP (Upgrade from Uni- to Multiprocessor (Uptomp.exe) and Win32k.sys, Upgrading from Uni- to Multi-Processor Requires Service Pack, Windows NT - Tips).
You can get a version of UPTOMP that (I think) does not have these bugs at Windows NT 4.0 Resource Kit Support Tools. Before running it, locate HAL.DLL and note the size of the file. Locate the deirectory on the NT CD that contains HAL*.* and see if any of the HALs match your existing HAL in size. The most likely case is that HALAPIC matches your existing HAL, and that means that HALMPS is the proper HAL for a multiprocessor version of your system.
After upgrading you will have to reapply the latest service pack.
jrf
More RAM is always better.
However, I do OK with my dual Pentium Pro 200 with 128 MB RAM. I do have UWSCSI, and the swap file is split between two physical drives.
jrf
I have a dual processor machine here at work. I just upgraded from a single processor machine, and for business use at least, there’s a huge difference. I suppose it depends on how the machines are being used. I typically have 10-12 applications open at once, and move between them.
The biggest benefit so far is being able to post to the straight dope while I have a build going in the background (I’m a programmer - ‘build’ refers to compiling our software, about a 20 minute process.) A vast improvement to a single processor machine, where the build took up all my CPU cycles and I couldn’t do a damn thing.