Welcome to Exploring Computing.
Today's video is Computer Hardware, Part 2,
A Closer Look at Processing.
In this video, I'd like to take a close look at the processing
component of our computers.
As we saw in the last video, processing
is one of the most important components of a computer.
And as you may know, the most important processing component
is the central processing unit, or the CPU.
But there's actually a bit more going on here.
And so I wanted to highlight a few things.
First of all, just so everyone's clear on what we're
talking about, if you've got a computer,
here are some of the common names for processors
you might run into.
If you've got an Intel processor,
the most common Intel processors on consumer level computers
are Core i3, Core i5, Core i7 and Core i9.
If you've got a computer with an AMD processor,
the common consumer level CPUs for them are Ryzen and Athlon.
Now, one of the things about the CPU
is the CPU tends to be a big bottleneck.
As we've seen, all processing goes through the CPU.
So in order to actually do anything,
the CPU has to do all the work.
Memory can remember things.
But ultimately in order for our computer
to actually act as a computer device,
the CPU needs to execute.
Now, there's a couple of ways around this.
One of them is we've started to get multicore CPUs.
Honestly, in some respects, this is
less because we really need multiple cores
and more because the electrical engineers have not
been good at getting CPU speeds faster.
For a long time, every year, CPUs
got faster and faster and faster.
And now we're starting to plateau out on the speed.
So the electrical engineers are like, hey, well,
we can't make the processor any faster,
but would you like more processors?
We can give you 2 cores.
We can give you 4 cores.
We can give you 6 cores.
We can give you 8 cores.
And here's the thing about multicore processors,
having a few cores is useful.
But in terms of actually being able to take advantage
of 4 or 6 or 8 cores, a lot of it
depends upon the type of work you're doing.
So you kind of think about it like, if I'm word-processing,
how am I going to take advantage of the multicores?
And it turns out that this is actually
an issue for programmers because programmers often
don't know how to take advantage of the multiple cores
in a multicore processor.
So ideally if you want your application to run quickly,
and you know you're running on a computer that
has multiple cores, you want your application
to take advantage of as many cores as possible.
And this has been kind of a problem.
I think programmers are getting a bit better at it,
but I remember when the first video game consoles
came out with multiple cores, this
was a huge deal with the gaming programmers.
Like, OK, I've got 8 cores.
How am I going to take advantage of these 8 cores?
I don't know what to do, how to split up the work
that my program needs to do in order to do these 8 cores.
So if I've got Microsoft Word, what
am I going to do with more than one core?
It's not always clear.
There are, however, some applications
that can definitely take advantage
of multicore processors.
So some things that multicore processors
could be really good at, if you're doing photo processing,
you can basically split up the photo into different parts.
And so you can have one core handle one part,
another core handle another part,
and a third core handle a third part.
I've got a little bit of a demo here.
So suppose we have a photograph of--
this is my old dog Molly the Flow pup.
So named because when I was a resident fellow in FlowMO
for 12 years, for any grad students listening that
aren't Stanford grads, that's the equivalent of Ivy League
housemaster.
Molly was my dog when I was in WestFlo.
So suppose we want to convert this image of her in color
and we want to convert to black and white,
so what I've got here is I've got a little demonstration
of what this might look like with a single core
and then multiple cores.
I've deliberately increased the size of the pixels
for this demo so it's much clearer exactly
what's going on.
OK, so our simulation is going to start off
showing what would happen with one processor.
And you can see that this is working.
We're just going along and processing each
of the pixels one at a time.
Now, if we switched to two processors,
you can see it's really easy to just split it up
and say, hey, the top half of the picture, one
processor, bottom half is second processor.
You go up to 4, again, way faster.
And then finally, we're going to do 8.
And you can see that this is really easy to just break
this process down to take advantage of additional cores,
because there's a clear way to divide up the work.
And so if we're doing tasks, like, say, weather simulations.
Again, really easy to figure out how to use multiple cores.
Just assign different cores to different parts of the country.
And in fact, supercomputers have many, many cores.
Like, literally tens of thousands of cores.
And they're often used for simulation work
for this very reason.
In addition to multicore processors though,
there's another way we can kind of
get around the CPU bottleneck.
And that is adding in specialized processors.
And so modern computers generally
have in addition to their main central processing unit, which
may be multicore, they also have a graphics processing unit.
Graphics processing units are probably
best known by consumers for their ability
to create 3D graphics for games.
Here, we've got a screenshot from Assassin's Creed Odyssey.
But the GPU can be used for other purposes as well.
They can be used for photo or video editing.
They can also be used for artificial intelligence
and neural networks.
They've rather infamous basically
been used for Bitcoin mining.
In fact, the Bitcoin miners use of graphical processing units
has really raised the prices and gamers are somewhat upset
about this.
Plus, it turns out that Bitcoin miners
are using a lot of electricity.
And it's really bad for the environment.
Anyway, I just wanted to give you
an idea of what the different things that are going on
with processors are.