Multiple Processor Systems - Computerphile

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
How many computers in here do you think we've got multiple processors in? Ok, um, yeah, I don't think any of them have got multiple processors in the way that I would think of multiple processors My edit machine has two Intel processors in it, physical chips Ok, so you define a multiprocessor system as having two physical chips? That's what I'm thinking. Okay, or we could also take multiple cores. Where it's the same thing on the same pieces of the silicon. Okay, so you've got two physical chips being two physical processors which machine or multiple cores which machines in here do you think are multiprocessor? We'll just use that term to refer to both of them systems. Okay. Well, I reckon these new Macs here have got multiple cores. Yup, they're all quad core machines of various types Your phone maybe? Yeah the phone will but you've got all these vintage machines around So starting over here with the apple macintosh LC 475. Well, let's just say I said, you've got one processor in it. There's also a PowerPC laptop under there underneath the surface underneath the multi processor motherboard So the surface is real depressed is just sitting under there the Atari ST That one we could count this as we'll say it isn't why? Could we count it out? Because the keyboard has got a CPU in it. Okay. Yeah, I've got an intelligent keyboard. So the CPUs got a microcontroller in there which scans the keyboard and then sends over a serial link the key presses to The main CPU and so on so so proprietor in there. I've got the Atari Falcon under here how many processors? I'm guessing that there's a trick here. So I'm going for two. Yes got two processors in it. It's got a 68030 cpu and it's also got a five six zero zero one DSP both motorola Processors in that don't think any of that acorn stuff which are now relatively. Well. Yep So they're all single processor systems. Although the risk PC did have two prices of slots So it could have read a separate 486 put in there and let's say managed to get hold of the one existing Hydra card in Enable you to have multiple ARM chip so that single processor their original IBM PC Single processor BBC micro I think if that's a special one then possibly but if just under one man, no So that is a special one. That's actually got what a Concord they're tube system Which if you watch the videos on Steve Furber? Talks more about this, but they initially released the second processor not Co prices over the second processor for the system Which was a complete another computer inside there with a 6502 Ram and so on in their 64k of Ram Showed that old it was and that was then connected to the BBC micro which had its 32k of RAM and its 6502 on there the master turbo I've got over there has that built into the motherboard and so that's technically a multiprocessor system. It's got two CPUs in there She's got two CPUs at the same time Running a slightly different speeds but to CPS at the same time Apple to single processor the acorn and the Amiga and the Atari Again, the Amiga I think you could possibly make an argument. It was a multiprocessor system, but not in the way We're thinking about it. Why have we just done that? Well, it shows that there's there's two ways you can design a multiprocessor system So your system home your editing system the Macs on here. They have two processes. That are of the same design to Intel court or two core. Shall we say or multiple cores all of the same design And those purchases are identical and they use pretty much to do any of the tasks of things It's what we call a symmetric multiprocessor system So each CPU in there can be allocated by the operating system to run programs It can answer io and things and just do anything that you need to do. They can split the tasks up To do different things by comparison the Falcon and the BBC micro system the BBC master turbo They have multiple processes in them and you can use them for general purpose tests But the general idea is that their processes do different tasks. So it's an asymmetric multiprocessor system Say for example on the Falcon The idea was at the 68030 would run you the main system whatever thing is doing and then he fueled you to do some sort of person that would benefit from The DSP chip the five six zero zero one that's in there You would offload your processing onto that feed the data and it would president it would feed the data back out So it's effectively running as a separate Subsystem and so on On the BBC micro system. The idea was since that you'd have the 6502 chip There's in there's normal running the IO Drawing things on the screen handling the keyboard and so on and then you'd have your main processor That would do most of the processing work and occasionally would tell the other processor to load a file into memory or to tell the other processor to do things so you can design a Multi-person system in two ways. You can either have it So all the CPUs are working on the same task and in that case They probably will all connect to the same piece of shared memory and they'd all work on the same task and they'd all talk to the same bit memory and Communicate along that or you can say now I'm gonna have different processes perhaps of different types different speeds doing different jobs So multiprocessor systems have been around for quite a while in various different guises There's a sort of suggestion here that the idea of parallel is the more modern way of doing it surely with things like GPUs Coming we've got hybrids now, right? Well, yeah. Well, yeah, but I mean the GPU is generally being used for a specific task things whether that's graphics processing or Bitcoin mining or whatever it is able to do on it and depending on whether you're wanting to make Money or lose money and I can let you work out which one of that is going to do which and surely we're using Multiple cores purely because we ran out of horsepower on single cores So one reason with 4 cores good question So the things you want to fight the problem run as fast as possible and you've got two ways to do that You can either make the computer run faster for example, speak fast you get more words per second and so on and you get it going and you get your computer doing more and more and More more and more more more more more more more faster and faster faster faster and faster, the problem with Is that is you get to a point where you can't actually push the computer faster. There's a thing called the power wall That's the point where you can no longer dissipate the heat away from the CPU We actually hit that quite a while ago what you're able to reduce the voltages used on the chips which meant you could get a bit more and again, but a Platinum getting to the point now where the voltages are, so different is really logic zero and a logic one is so low that Actually, you could take it any lower you'd get a leakage between the transistors on the chip itself. And so it's not possible So you can push the speed in one way the other way you can make the problem Make the program run faster is to split it up into multiple chunks To do them all at the same time so one way for example to make sandwiches faster is that you butter the bread faster you put the filling in faster you put the Bread faster the other person if you get two people doing it And then it takes in the same amount of time to make one summary's but you have two people doing it So they make twice as many sandwiches each time. They make a sandwich same with the computer we can either make the computer processor faster or We can have multiple cores each working on part of the problem at the same speed and then we have them produce the problem Produce the result faster to do that We need to be able to break the problem down into multiple chunks and x:q each of those chunks separately Which is one problem you need to work out and can you break the problem down can be quite simple if you will say Processing an image you want to say make it 50% the brightness Then you can process the top half process the bottom half separately do them at the same time You have the time it takes to process the whole image But the tasks are harder to break down because you need to work out how you want to break down the algorithm to run over different things asymmetric and symmetric Multiprocessors aren't really competing for each other. It's not this is how we used to do it This is how we do it now You would find that there are multi person systems back in the 80s and 90s Parallel processing was a big thing in the late 80s early 90s People were looking at parallel architectures for doing all sorts of things In fact, one of the things which describes how parallel systems work Flynn's taxonomy was created in 1966. So The ideas have been around for a while I think it's more that for a lot of things when you you've got a task that you want to do in different things symmetric multiprocessing makes sense for other things having an asymmetric system Whether that's your DSP IO processor a GPU a tensorflow type thing and so on makes more sense like that So how we design a multiprocessor system is very much based on what you're wanting to do What are you trying to do with it? I mean Flynn's taxonomy is an interesting thing because you then get some really weird processor types coming up so you can either have a system which has got a single instruction stream or Multiple instruction streams and a single data stream or you can have multiple data streams So you'll end up with a single instruction stream single data system or most multiple destruction streams single data system single instruction multiple data system or multiple instruction stream Multiple data systems so a modern multi-core CPU. Well actually at times behave like a single instruction stream system at times behave like a SIMD single instruction stream multiple data stream system and At times behave like a multiple instruction stream Multiple data system and we end up with these all being used at different times The easiest way I think about it as a single instruction stream Single data stream price is that that's the sort of classic model of a processor you've got a set of instructions that your program is executing and You could think of these flowing through the CPU one after the other okay with the occasional branches Like water flowing through a stream if you look at one point the water flows through at that point That's what these two options are doing. They're flowing through the CPU And each of those instructions is probably going to be loading a value from memory or doing some processing on the value That's come from memory and then putting it back out to memory. So if we say you I don't know. Let's say it's rendering 3d graphics you're going to be doing lots of matrix multiplications and things on that that you can then pull the data in do the Calculations and write out the new points and so on now what Intel did around who late 90s they introduced what's called the multimedia extensions MMX and that was followed by sse sse2 AMD's 3d now and those other things that do different things which basically add one Accord single instruction multiple data instructions So these instructions are still a single stream of instructions that so we're going to add something. We're going to multiply something But rather just acting on one piece of data at a time They can act on multiple pieces of data and if you think back to that 3d graphics You for example will have your X Y Z coordinates for Say your shape and you normally actually store that as four coordinates because you have the x y&z and then you have a 1 in the vetch because it makes the map slightly simpler. And so you might actually then call that You need to multiply that by a matrices and with us SIMD type instruction. You can read those four values and Read the four values from one column of your matrix And multiply them all together, which is four separate operations But if you can use an SIMD instruction, you can do that in one operation working on four separate bits of data So it multiplies the first player together the second pair together the third player together and the four pair together all in one instruction so they added extra bits new al use new designs for doing things that and they will them to have These instructions if your data restricts the data, your pricing is such that you can take advantage of that you can get some significant speed boost because rather than doing four instructions you have to do one and but you take advantage of what's called data level parallelism the data the pricing you want to do enables you to Do those instructions on multiple data options at the same time and you get some sort of speed-up It works for some tasks 3d graphics. For example, for other tasks. It's less useful and so you don't benefit from them but the other thing our CPUs can do is that they have a multiple cores and modern CPUs the intel i7 AMD's and so on are all Multiple instruction multiple data things so they have separate calls each of richer running their own stream of instructions So they're on different bits of the program or different programs altogether processing different bits of data still a single stream per processor instance But unless it's an SIMD bit and so you can have multiple data streams and So you have them? Running all of these things and that is pretty much what people think of as parallel processing multi processing of things is you've got multiple CPU cores running their own programs processing their own set of data So we can build up different things So they've been around for years and we've had various different types symmetric asymmetric the different ones of Flynn's Tessa Nanami you've been around For a while that leaves us with this weird one in the top right corner of the diagram, which is the multiple instruction stream So got multiple streams of instructions acting on a single data stream Yeah, they're weird. Not many of them exist these days I think the most prominent example that I've heard of I've never actually had to program it more's the pity is the space shuttle guidance computer Left our flowers probably the Space Shuttle guidance computer used a multiple instruction stream single data stream machine And that's one of the reasons you might want to do that. Is that enables you to say do? Multiple calculations and then get some sort of fault tolerance, perhaps out of it touchdown so you can build parallel processing in different ways but the one that we're perhaps most familiar with is that we've got multiple of CPUs in our computer whether they're physical chips physical cores as it happens to be all their Multiple cores on the same piece of silicon and if we're doing that we need to make those Multiple processors do useful things. So the simplest thing we could do is get the operating system to schedule multiple Programs multiple processes across each of the different CPUs, but that enables had to run multiple programs really good but it doesn't really give us any speed-up in terms of Running a single program to solve a single task and to do that we actually need to break the problem down into multiple chunks and Execute a chunk of each of that problem on each of the different processes. We've got available to us. Whether that's 2 4 6 8 32 However many we've actually got to deal with so we need to break our problem down Into multiple what often refer to with threads of execution and run them on different? CPU cores Is that same a1 so that he can decrypt the message and read it? Right? So Alice maybe wants to send another one So she's going to tick this KDF function again She's going to produce a new key and a2 I she's going to send that to Bob He's going to take this receiving function a2 now. Bob wants to send a message. So he's going to tick
Info
Channel: Computerphile
Views: 125,448
Rating: 4.8897719 out of 5
Keywords: computers, computerphile, computer, science, Computer Science, University of Nottingham, Dr Steve Bagley, Multi-Processor, Multi-Core, Hardware, Computing
Id: 3RvkfuXUv1c
Channel Id: undefined
Length: 14min 51sec (891 seconds)
Published: Fri Dec 07 2018
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.