Multi-core processors are the industry’s answer to the continuing struggle to make processors faster. These CPUs have 2, 4, or 8 CPUs on 1 chip. Software doesn’t necessarily use multiple cores at once, making them not as fast as they could be. Software developers must learn new skills to make use of the multi-core processors.
Most programs cannot execute themselves over 2 processors, much less 4 or 8. The problem lies with the design of the application. Most designers decide to make use of only 1 processor from the get go. Designing an app to run on 1 or more processors is an engineering feat!
Programs that can run on multiple processors are called multi-threaded, meaning that they allow for multiple threads of execution. This type of software hits home on a multi-core machine. However, many times it requires a lot of extra work.
Servers started the multi-core trend, so almost all server software is multi-threaded. Desktop multi-cores are really just getting started. Some analysts expect to have many-core processors, which will have 8 or more processors on a single chip, by 2010. Keep an eye out for a multi-threaded programming tutorial on this site soon.