The processing power of the CPU has been increasing as never before. In the earlier days it used to be a single CPU pushed strongly into the mother-board of the desktop computer. With the passage of time, advent of new technology and enhancements in the chip fabrication technology, engineers have become capable of embedding 2 or 4 CPUs on a single substrate of the chip.This used to be called as the spatial placement of the CPUs on the chip substrate. Now a days , what engineers do is they place the CPUs over other CPUs. This has led to spatial as well as vertical expansion of the chip substrate. This has enabled us to pull the number of cores on the CPU from 2-4 to 8 or 16. Withing few coming years, the CPUs with 16-32 cores will be available in the market. So in order to be always one step ahead of the technology, a programmer has to take into consideration the number of increasing cores on the CPU and write his application accordingly.
The application should be multi-threaded, parallel processing or a concurrent application. Such an application will harness more computing power of the CPU and the probability of the CPU to stay idle will be reduced.
The following facts from some of the renowned technology websites are evident of what I have already mentioned in the above paragraphs.