My laptop is five years old. The hard drive has been replaced; the fan makes an odd clanking sound; and the screen assembly is duct-taped. Its days are numbered, and I am itching to buy a new computer.
My first real computer was an Apple IIe. It had an 8-bit central processing unit (CPU) that could hum along at about 500,000 instructions per second. For most of the history of personal computing, CPUs have had a single core. In 2001, IBM led the move to non-embedded multi-core CPUs when it used the POWER4 dual-core chip in its RS/6000 workstation. Today’s CPUs, such as the Intel Sandy Bridge family (i3, i5, i7), are 64-bit chips with multiple cores and are capable of billions of instructions per second. Much of their processing power is due to the presence of two or more cores.
A single-core CPU can only do one thing at a time (referred to as a thread). Think of a thread as an executable unit of software code that can run independently of others. Single-core CPUs give the illusion of simultaneously executing threads by allotting a brief period of time to each thread in turn. Since a single-core CPU is capable of executing billions of instructions per second, users rarely notice the switching that occurs between threads because it happens so fast. Common applications such as word processors and browsers spend more time waiting for user input than doing computations; therefore, running them concurrently rarely results in a significant decrease in a computer’s responsiveness. However, if the programs being used require a lot of computation, say 3D graphics, then running multiple programs will result in a noticeable slowdown.
When multiple cores are present, each core can execute a thread. Thus, a quad-core CPU can get four times as much done in the same period of time as a single-core system—at least theoretically. Utilization of multiple cores may occur on two levels–operating system and individual application.
When an operating system detects multiple cores, it distributes active applications among them. An example may make this clearer. If you are listening to music and doing 3D graphics on a quad-core computer, the operating system might assign one core to the music player and another to the graphics application. The remaining two cores can then work on background chores such as managing the disk drive or downloading files. Using one core for each application will make the computer more responsive, but does not take advantage of all of the processing power of the CPU. Realizing the maximum benefit of multi-core CPUs requires applications written for parallel execution—something that is easier said than done.
Applications written for multi-core processors are designed to divide the work they do into threads that can run independently. Using the above example, if the 3D graphics application were written to take advantage of threads, it could farm out one additional thread to each of the two underutilized cores. This would allow three threads to run at full speed. The 3D graphics application could then assign one thread to the user interface, one to performing image calculations, and the last to reading data from a drive without the three activities slowing one another down. As a result, computationally intensive applications, when written for parallel execution, run much faster on multi-core CPUs. (Here is a list of multi-core aware applications.)
(On Windows 7, if you have a multi-core processor and want to see how the cores are being utilized, press CTRL-ALT-DEL, select Task Manager from the menu, then go to the Performance tab. There will be a real-time graph for each core of your CPU. Try opening a few applications and see how it affects CPU usage.)
I am considering an i7 laptop (four cores). The performance profiles for all systems under consideration look great, and the prices are reasonable. Weight will play a role. I am tired of lugging my laptop through airports. I have not ruled out a MacBook (soon I will be the only person in my household without one). In addition, it has the advantage of being able to run Windows 7 as well as LAMP (or MAMP).
I don’t know what it says about me, but I am just as excited about getting a new laptop now as I was when I bought the Apple IIe nearly 30 years ago. Important decisions take time, though. I will have to pour over specs, hang out in the Apple store, read computer magazines, and email other techies. Tough work, but it has to be done. (Does Barnes & Noble still have good oatmeal raisin cookies?)