Question to nerds in here.
How many apps, operating systems can actually use multi cores ?
MacBook Air with M1 processor can do everything 95% of people want to do.
most of us don't need 32 core M3 processor with 64 GB RAM.
The answer is complicated, but your hunch is right: as of 2023, few people will benefit from a 32-core processor, or from 64 GiB RAM.
Part of the answer is that the OS has dozens of background processes running. From things like the kernel and WindowServer (the thing that draws the user interface) to system-wide features like spell check to background tasks like Spotlight disk indexing or Time Machine backups. Then, on macOS, there's also GUI apps that run in the background. All of that already makes a second core useful: even if your current app takes up 100% of the first core, all those background processes can move to the second core.
On top of that, Apple (and several others now, including Intel) has the concept of different CPU tiers; Apple calls this p-cores and e-cores (for
performance and
efficiency).* Most of the examples I named above? They don't really need a
fast CPU core. They just need one to do
some computation. So macOS will schedule most of those tasks to occur on e-cores, which not only makes them take up a lot less energy, but also means, again, that apps that
do benefit from a fast core (a p-core) have more resources.
But as for whether your foreground app can actually make good use of many p-cores? That depends:
- what's the bottleneck? In reality, a lot of tasks these days aren't actually CPU-bound, but I/O-bound: they wait not for some computation, but for the SSD, or (increasingly commonly) for the network. Especially, of course, when you're on cellular.
- or, they're tasks that would be CPU-bound, but can actually be accelerated a different way: by having the GPU perform it. Or, perhaps, the Neural Engine. Again, that's very good, but it means your CPU cores are bored.
- finally, suppose they do run on the CPU. Then it's still a question of: can you actually parallelize them? Meaning, in layman's terms, can you split the task into say four smaller tasks of roughly equal effort, execute each of those on a different core, then when you're done merge the results back together and still have them make sense? Is that easy to program? Is the performance benefit big?
Therefore, the short answer is, and will be for a while, that the M3 (without suffix) having "only" four p-cores and four e-cores is fine. Perhaps Apple will move even more stuff to background tasks, and then increase e-cores to six or eight, for a "ten-core" CPU.
*) both Intel and Qualcomm have actually moved to
three CPU tiers now. Perhaps Apple will follow suit.