Q: What kinds of applications will benefit the most from the Intel and AMD quad-core chips?
A: Certainly databases like Oracle 10g and Microsoft SQL Server 2005 can benefit from running on quad-core chips, because they have already been optimized to run on SMP [symmetric multiprocessor] servers. But there are plenty of other applications that might not see any advantage. I think people are going to have a lot of unpleasant surprises with this. Just because the operating system kernel can schedule parts of your application to run on different cores doesnt mean theres going to be any improvement in performance. It might even make performance worse if there is a lot of thrashing, if the software isnt smart enough to take advantage of multiprocessing. This is something thats very hard to benchmark. Unless the vendors come out and announce that their software has been specifically optimized for quad-core processors, you cant be sure. Oracle and SQL Server will do well. But at this point I dont think anyone knows if things like Microsoft Exchange or common application tier software packages will see performance go up or down with quad-core.
Q: Will quad-core chips be more effective than dual core chips?
A: Not necessarily. It all depends on whether the software is smart enough to take advantage of the extra cores. For example, in the 1990s, the Sybase database ran well on dual processor machines, even though it assigned all network i/o to a single processor. But when it scaled up to four and eight processor machines, performance dropped because that single i/o processor became a bottleneck, the software didnt know how to spread the network i/o around to multiple processors. Sybase eventually fixed that problem, but now youre going to get similar problems cropping up unexpectedly as people transition from dual core to quad-core chips. Also, theres the question of clock speed. AMDs quad-core Barcelona chip is going to slow down the cores compared to their dual core chips. That saves power consumption, but it might not be good for performance. Ideally, its better for performance to have one superfast processor than lots of slower processors, because then you have less overhead. Imagine you are a customer waiting in a bank for access to a row of teller windows. When you finally arrive at a window, you only get a certain slice of time with your teller. When that time is up you have to interrupt your transaction and go stand in line again. Thats the way multicore servers work. Now if the tellers are slow, youre going to get interrupted often and spend a lot of time going back to wait in line before your transaction is completed. But if you had only one superfast teller, a teller who was as fast as all the slow tellers put together, then you would get your transaction done without losing any time to interruptions, even though you would still have to wait your turn in line. Its like that for multicore chips. More isnt necessarily better, unless you have really smart software that knows how to take advantage of the hardware. Unfortunately, it doesnt look like a lot of the software that is designed to run on so-called “commodity” servers is smart in this sense.