WEBVTT

00:00:00.080 --> 00:00:07.600
Hyperthreading technology from Intel has been on their computer processors for

00:00:04.240 --> 00:00:10.559
over 10 years. And yet, much like the

00:00:07.600 --> 00:00:15.839
elusive fox, most people know very little about what it says. Let's start

00:00:12.880 --> 00:00:21.279
with an analogy. Let's say I am a CPU and I'm trying to process food or eat as

00:00:19.439 --> 00:00:25.359
some people call it. I can only do as much eating as one mouth can do. If I

00:00:23.680 --> 00:00:30.400
could add more mouths, then I could process more. This is what multi-core

00:00:28.080 --> 00:00:34.800
processors do. But due to cost constraints among other things, it's not

00:00:32.640 --> 00:00:38.800
always possible to take that approach. So, I've got just one mouth. I can use

00:00:37.200 --> 00:00:44.079
my hand to pick up the food, bring it to my mouth, then grab another bite while

00:00:41.600 --> 00:00:47.760
my mouth is busy. If I finish chewing before my hand is ready to deliver me

00:00:46.000 --> 00:00:52.239
more food, however, then my mouth is just sitting there doing nothing. If

00:00:50.000 --> 00:00:56.960
only I could use two hands to prepare food for my mouth. Then even though my

00:00:54.399 --> 00:01:02.320
mouth can't actually work any faster, I wouldn't waste any time. Oh, wait. I can

00:01:00.079 --> 00:01:06.799
do that. That's hyperthreading. One processor and intelligent scheduling to

00:01:05.119 --> 00:01:12.479
make sure that it's always working. Pretty awesome, right? Well, usually

00:01:10.159 --> 00:01:16.799
hyperthreading can't do much for single threaded workloads where you can only

00:01:14.560 --> 00:01:20.960
work on one thing at a time. For example, if you wanted to eat a two

00:01:18.720 --> 00:01:25.280
scoop ice cream cone, you can't work on the bottom scoop until the top scoop has

00:01:23.119 --> 00:01:30.960
already been consumed. And heaven help you if you try to eat the cone first.

00:01:28.720 --> 00:01:35.680
In this example, there is no benefit to adding more mouths or more hands. The

00:01:33.759 --> 00:01:40.079
opposite of this would be eating from a bowl of candies. Grabbing and eating a

00:01:37.759 --> 00:01:44.400
red candy does not in any way depend on finishing the blue candy that's already

00:01:41.920 --> 00:01:48.479
in my mouth. In fact, if I had some friends to help me eat it, we could

00:01:46.079 --> 00:01:52.960
consume the candy very quickly by adding more hands and more mouths. This is an

00:01:50.960 --> 00:01:57.200
example of a multi-threaded workload, and hyperthreading can definitely help

00:01:55.680 --> 00:02:00.320
with this. All right, so let's bring it away from the eating analogy for a

00:01:58.799 --> 00:02:04.799
minute and bring it back to the real world. Computing tasks that benefit from

00:02:02.640 --> 00:02:10.239
hyperthreading and multiple processing cores are video editing, 3D rendering,

00:02:07.520 --> 00:02:14.560
and heavy multitasking on your PC. Video editing is a great example because one

00:02:12.239 --> 00:02:18.319
frame of a video can be processed while the next one is queued up because the

00:02:16.319 --> 00:02:21.920
video is already shot. The PC doesn't have to guess what's going to be in the

00:02:19.760 --> 00:02:25.760
next frame. It already knows. Here's another multitasking example. One

00:02:24.000 --> 00:02:29.920
processor can be handling your light tasks like Skype and music playback,

00:02:28.080 --> 00:02:33.920
antivirus, and whatever else you have running in the background, while another

00:02:31.599 --> 00:02:38.560
one can focus all its attention on running a power- hungry video game in

00:02:36.000 --> 00:02:42.640
the foreground. So, with that out of the way, how do you actually choose a

00:02:40.239 --> 00:02:46.400
processor for your PC? The first thing I hope you got out of this is that

00:02:44.319 --> 00:02:51.599
whatever task manager might say, hyperthreading is not the same as

00:02:49.440 --> 00:02:55.920
doubling your processing course. It's basically a clever trick for more

00:02:53.680 --> 00:03:00.239
efficient scheduling of the work that is done by the processing cores that you

00:02:57.920 --> 00:03:04.959
have. It also increases power consumption and heat output a little

00:03:02.640 --> 00:03:09.280
bit, but the benefits usually outweigh this drawback. In the real world, you

00:03:07.040 --> 00:03:13.360
can get huge double-digit performance improvements all the way to no

00:03:11.519 --> 00:03:17.680
performance improvement at all and in very rare cases even very slightly

00:03:15.519 --> 00:03:21.280
decreased performance depending on how the software is optimized. So, it's

00:03:19.599 --> 00:03:25.200
important to do your research about the software you'll be running. If the work

00:03:23.120 --> 00:03:28.640
you do isn't heavily multi-threaded, then you might do just as well to save

00:03:26.959 --> 00:03:32.480
your money and buy a processor that doesn't have hyperthreading. Most games

00:03:30.720 --> 00:03:36.879
right now, for example, can't take advantage of more than a couple of

00:03:33.920 --> 00:03:40.799
threads. However, if the work you do is heavily multi-threaded, then remember

00:03:38.480 --> 00:03:44.480
this general rule. Hyperthreading is better than no hyperthreading, but is

00:03:42.640 --> 00:03:49.360
not nearly as good as adding more physical processors. In an ideal world,

00:03:47.200 --> 00:03:53.200
lots of physical processors, each with hyperthreading, is where it's at.

00:03:51.440 --> 00:03:56.879
Speaking of where it's at, audible.com gives you a free audiobook just for

00:03:55.120 --> 00:04:00.319
setting up a new account. And if you use the audible.com/Linus

00:03:58.640 --> 00:04:04.159
link below me, then it makes me look pretty good. They've got over 150,000

00:04:02.640 --> 00:04:08.080
books with everything from fiction to self-help to business. I checked out The

00:04:06.159 --> 00:04:12.239
Four Hour Work Week by Timothy Ferris, which is why I am in Hawaii right now.

00:04:10.319 --> 00:04:17.199
That's right, suckers. I recorded this before I left and now I'm on vacation.

00:04:15.040 --> 00:04:22.320
Actually, I'm I'm not on vacation. I'm in Hawaii working, but um you know, I'm

00:04:20.239 --> 00:04:26.560
taking a few days to not work while I'm there. So, you know, yeah, YouTube's a

00:04:24.560 --> 00:04:30.240
tough gig, but you can help by heading over to audible.com/Linus

00:04:28.400 --> 00:04:33.759
and getting your free audio book today. This has been another episode of Fast as

00:04:32.240 --> 00:04:36.880
Possible here on TechQuicki. Don't forget to subscribe for more videos like

00:04:35.360 --> 00:04:40.880
this. And if you check out the other link in the video description, you can

00:04:38.639 --> 00:04:44.479
suggest future topics for fast as possible. And that is exactly why we're

00:04:42.639 --> 00:04:48.720
doing this one about hyperthreading. So many people requested it. So we do read

00:04:46.080 --> 00:04:48.720
them and we do
