Performance
A CPU with more cores can work on several instructions at once, but that does not mean it will always be faster. Adding cores only helps when the work can actually be shared between them.
Some programs are written as a single sequence of instructions that runs from start to finish. A program like this can only use one core at a time, so the other cores cannot help with that program and its speed is limited by the single core it uses. To take advantage of extra cores, the software has to be deliberately designed to split its work into parts that can run side by side.
Other tasks are a chain of steps, where each step needs the answer from the one before. Imagine keeping a running total of money raised by a school charity: you cannot work out Friday's running total until Thursday's running total is known, so the calculation must happen in order on one core. Anything built on “do this, then use the result to do that” is stuck in a queue, however many cores you have.
Spreading a job across cores is not free. The work has to be divided into chunks, handed out to cores, and the answers joined back together, and all of that coordination takes time. The cores also share resources, such as access to RAM: if several cores need data from RAM at the same moment, they may have to take turns, so each one waits. Past a certain point, adding more cores can add more waiting.
This is why a CPU with more cores does not always finish a task in less time, and why the number of cores has to be weighed up alongside clock speed and cache size.
OCR GCSE Computer Science · Performance