Colors and strands
Colors and strands
You're seeing logical processors listed as 16 because the system is managing multiple threads across cores, not because each core has 16 independent threads. It's like having a single CPU with many cores working together, but the OS splits tasks to utilize them efficiently.
2 threads per core equals 2 hands handling one mouth. This setup boosts performance by maintaining the core active through improved scheduling. It’s now applied to CPUs, motherboards, and memory.
Understanding hyperthreading involves knowing how it divides a processor. A hyperthreaded core splits into two logical processors, or threads. For instance, an i9 14900K has eight performance cores that are hyperthreaded and sixteen efficiency cores that aren't. From a logical standpoint, this means there are 32 threads in total—eight times two plus the sixteen non-hyperthreaded ones. In short, hyperthreading lets one core handle two tasks at once.
No, a thread is not the same as a core. If a thread was the same as a core, a CPU with 8 cores / 16 threads would simply be referred to as having 16 cores instead. Each core is essentially a CPU in its own right. Outside of some shared resources, like cache, they work independent from one another. If you have a task that can be parallelized, going from one core to two cores should give you close to +100% performance. A thread on the other hand turns a single core into two virtual cores, by providing two instruction queues for the same core. While that makes it look like two cores from an outside perspective, its the same worker behind both queues. In the best case this can provide roughly +30% better performance. This is known as Simultaneous Multi-Threading (SMT) or, in Intel marketing terms, "Hyperthreading". To give you an analogy, maybe think of a core like a ticket booth, with a line of people in front waiting for "processing". As always, take analogies with a grain of salt. If you double the number of booths (i.e. cores), that should double the number of people able to buy tickets at the same time. Of course how much of a "performance uplift" you get depends on how many people there are and whether you can split them across that many "cores" (e.g. a family of four goes to the same both, so you can't process them in parallel, in the same way some compute tasks can't be split, so more cores don't always make things move faster) Meanwhile, enabling "SMT" means that each ticket booth gets two queues of people, instead of just one. It's still only one person accepting payment and handing out tickets, but there are now two lines of people to process (the cashier alternating between processing people from queue 1 and 2). How does that improve performance? Imagine it a bit like this: while the person buying a ticket is busy searching their wallet or stowing the ticket they bought, the cashier in the booth can already start to take care of a customer waiting on the other line, instead of simply sitting idle. So it improves core utilization which, as I already said, can provide up to 30% better performance in some scenarios.
It seems like you're describing a complex system where each booth offers different payment methods. The idea is to have flexibility in how transactions are handled, with employees managing multiple options at once. A core is structured into specialized parts, each handling specific tasks—some for basic arithmetic, others for more complex operations. These units can work together in parallel, optimizing performance by assigning tasks based on what’s needed. In simpler terms, the system uses dedicated modules to process cash, cards, or prepaid passes, and smart scheduling ensures resources are used efficiently. Sometimes, units remain idle, but the scheduler anticipates future needs and prepares accordingly. The operating system manages these resources, possibly swapping programs between cores to enhance speed and efficiency.