Short‑answer:
No. A “single‑threaded” CPU (i.e. a CPU that can execute only one instruction stream at a time) cannot be made to run a multi‑threaded program faster by adding more cores. The only way to get speed‑ups is to use a CPU that has multiple cores (or a multi‑processor system) so that several threads can run truly in parallel.
A multi‑threaded program is designed so that several independent threads can be executed simultaneously.
If the processor has only one core (or if all cores are forced to run in a single‑threaded mode), the operating system can only run one thread at a time.
The other threads must wait in a queue and are scheduled later.
The total elapsed time is therefore the sum of the times of all threads – it cannot be reduced by adding more “virtual” threads.
The only way to reduce the total runtime is to give the program real parallelism – i.e. a processor that can execute several threads at the same time. That is exactly what a multi‑core CPU does.
| Feature | Single‑core CPU | Multi‑core CPU |
|---|---|---|
| Number of execution units | 1 | ≥ 2 (often 4, 6, 8, …) |
| Simultaneous instruction streams | 1 | N (one per core) |
| Thread scheduling | One thread at a time | Multiple threads can run concurrently |
| Cache sharing | Shared L1/L2/L3 (depends on design) | Each core has its own L1/L2; L3 may be shared |
| Performance on multi‑threaded code | No speed‑up | Speed‑up proportional to the number of useful threads (up to the number of cores) |
A multi‑core CPU does not magically “make the single core faster”; it simply gives the operating system more than one core to schedule threads on. The speed‑up comes from true parallel execution, not from a single core doing more work.
Single‑threaded CPU – a processor that can execute only one instruction stream at any instant. Even if the CPU has multiple cores, if the OS is forced to run only one thread on all cores (e.g., by disabling SMT or by setting a strict CPU affinity), the program behaves as if it were running on a single‑threaded CPU.
Single‑threaded program – a program that contains only one thread of execution. Adding more cores does not help this program, because there is nothing to run in parallel.
If you have a multi‑threaded program and you want it to run faster, you need a processor that can execute several threads at the same time – i.e. a multi‑core CPU or a multi‑processor system. A single‑threaded CPU cannot provide that parallelism, no matter how many cores it has.
So the answer to the question is no – you cannot “speed up a multi‑threaded program on a single‑threaded CPU” by adding more cores. You need a true multi‑core CPU to get a performance benefit.