Multicore processors in smartphones, does the increase in core count really guarantee better performance or is it just marketing hype?

M

This blog post questions the common perception that multicore processors in smartphones improve performance with more cores, and explains that in reality, more cores don’t make much of a performance difference because apps don’t utilize them effectively.

 

Multi-core processors are commonplace in today’s smartphones. As the specifications of smartphones have evolved, the number of cores has also increased, and as of 2024, there are smartphones with Nona cores (9 cores). With each increase in the number of cores, cell phone manufacturers have emphasized that “more cores means more speed” and advertised it heavily. At first glance, this seems plausible. But is it true that increasing the number of cores really improves the performance of a smartphone, and is more always better?
To answer this question, we first need to understand what a core is and what it does in a smartphone. In a smartphone, the core is inside the AP (Application Processor), which is responsible for all the computations on your smartphone. As the name implies, the AP is responsible for running apps on your smartphone and performing various operations within the apps. If you think of running apps as a cooking process, the cores are the fire that you need to cook with. A multicore processor can be compared to a gas stove with multiple burners (cooking zones).
Imagine boiling ramen noodles. First, you boil the water, then add the noodles and soup, and then simmer for a while longer. The speed at which ramen is cooked is most affected by the speed at which the water boils. So, if you use a stove with two burners, will it cook ramen faster than a stove with one burner?
If you’re using a single pot to boil ramen, you’re only using one burner, even if it has multiple burners, so the speed at which the water boils is no different than if you had a single burner. However, if you have two pots and two burners, and you put half the water for the ramen in each pot and put each pot on a burner to boil the water, the water will boil faster than if you had one burner. But you’ll need an extra pot, and you’ll have to put them back together after boiling the water, which is a hassle. Just as we wouldn’t go to the trouble of using two pots just to boil one ramen faster, programmers shouldn’t either. Most apps only use a single core, and using more than one core requires programmers to split the computational function into two parts. However, this isn’t done very often because it’s much more complicated than splitting water for boiling ramen noodles into two pots, and there are many more things to consider.
For example, consider how to apply multicore programming to the chat function, the main feature of Telegram, the most used app these days. First of all, we need to divide the computation into two parts: sending and receiving messages. These two operations are independent of each other, so they can run concurrently on different cores. However, in this case, if the message sending and receiving operations are executed simultaneously on different cores, the order of the messages can be reversed. Since the speed of computation is not always constant, it is possible that your phone finishes the computation of sending a message first, and the other phone finishes processing the message you sent later. This reverses the order in which the messages are seen by each other. This is a synchronization problem, one of the most important issues in multicore programming, and programmers need to take extra care to avoid it. Also, sending and receiving messages doesn’t require a lot of computation, so it takes much less time and effort to make it work on a single core than to apply multicore programming, and there’s no performance difference. Therefore, common apps like Telegram often don’t use multicore programming, and multicore doesn’t necessarily outperform single-core when running such apps.
That’s not to say that a large number of burners is useless. They can be useful if you’re cooking two different things at the same time, since you can cook different things on each burner. It’s also very useful if the process itself is such that you can do more than one thing at the same time. For example, in the case of pasta, you can boil the noodles on one burner while making the sauce on another burner to finish cooking much faster. From a programming perspective, multicore can also be very useful when running two or more different apps at the same time, or when running apps that are built to take advantage of multicore.
But for people who don’t cook often, a gas stove with three or four burners is a luxury. The smartphone experience is similar. On a smartphone, you rarely run more than two main apps at the same time. Sure, you might have more than one “app running in the background, not on the current screen,” such as listening to a song while running another app, or downloading one app while running another. But you can’t run multiple main apps, like playing a phone game and running a web browser at the same time. Also, very few apps are built to take advantage of multicore. Even if they are, they’re usually games that require high performance, and since cores are one of the most power-hungry parts of a smartphone, they’re not widely used because they can drain the battery.
To summarize, having multiple cores on a smartphone doesn’t necessarily give you a performance boost over single cores. In order to improve performance, apps need to support multicore. Realistically, there aren’t many apps that can take advantage of multicore to improve performance. In general, running a simple background app and a main app is the most common pattern. Therefore, the efficiency of a smartphone’s multicore processor is maximized at dual-core. Beyond that, as the number of cores increases, it’s unlikely that you’ll see a significant performance increase because you’ll rarely use all of them. In fact, even Apple’s newest phones don’t show much of a performance difference compared to other phones from the past. Sure, having more cores is an advantage when running multiple apps at the same time, or when running apps that can take full advantage of multicore. However, it’s rare that you’ll notice a significant performance difference, and using all the cores isn’t always a good thing, as it increases power consumption as much as it increases performance.
So far, we’ve seen the benefits of multicores on smartphones. In fact, more cores don’t really help much because smartphone apps rarely support multicore. Therefore, it’s time for smartphone manufacturers to focus more on software (apps) rather than hardware performance. I’m looking forward to seeing advertisements for products with better software, rather than just the number of cores.

 

About the author

Blogger

Hello! Welcome to Polyglottist. This blog is for anyone who loves Korean culture, whether it's K-pop, Korean movies, dramas, travel, or anything else. Let's explore and enjoy Korean culture together!