Symmetric Multi Threading (SMT)
A lot of people have been researching that how can we improve performance. Especially once we got multi-core processors which AMD released in the mid-2000s. Intel was the first to market with this technology and they branded it as hyper threading.If you’ve heard of hyper threading it’s really a SMT. What happens here is that you know the operating system is able to take advantage of new instructions like this is a new assembly level in instructions in the x86 processor itself. Where the OS can actually give some more information to the processor on how to run things in parallel.So, Inside of a processor a modern processor we execute an instruction in stages. We’ll give it some assembly instruction that says you know load this value or multiply these things together things like that. It’ll break it down into steps. Inside some of those steps in a processor which is called a pipeline they actually have multiple copies of the parts of the process that do the thing we want to do. Moreover, like modern processors for example; a single processor will have a thing called a floating-point unit and this is for doing like floating point multiplication but there’s actually more than one. There’s usually like between two and six kind of depends on the processor. Using these new instructions, we can say that the operating system can tell a processor. There are these two code things that come in, they actually come from different threads. You don’t have to worry about doing all the normal safety checks just run them in parallel if you can. This is not two completely separate CPU cores or separate processors. You don’t get like a two-time speed-up but you get a little bit you know it’s ranges from basically no speed-up up to about like 15 to 20 percent it depends on the kind of code you’re writing and so like with these systems.
We’re finally able to really run a lot of different code simultaneously now you might notice. I did a little bit of a switch. I was talking about multitasking and I switched sucking up multi-threading so two different words.They’re actually do mean different things.