WEBVTT 1 00:00:09.144 --> 00:00:34.433 Okay. 2 00:00:37.289 --> 00:00:49.920 Okay. 3 00:01:32.245 --> 00:02:12.085 Okay. 4 00:02:26.219 --> 00:02:32.099 Okay hey, good morning. Everyone while I'm waiting for people to arrive. 5 00:02:32.099 --> 00:02:35.430 Could you tell me if you can hear me. 6 00:02:35.430 --> 00:02:41.669 I've got the chat window open, so oh, great, Tom. Thank you. 7 00:02:41.669 --> 00:02:47.159 Hey, thanks, Amanda. Cause I, if I turn on the sound, I'll get feedback so. 8 00:02:47.159 --> 00:02:53.340 And while we're waiting for people to arrive, if anyone has any questions before the start of the lecture. Yeah. 9 00:02:55.650 --> 00:03:00.599 Okay, and. 10 00:03:00.599 --> 00:03:07.020 Okay, well it's good to set up. I've got while I'm waiting I'm actually have, um. 11 00:03:07.020 --> 00:03:13.590 2 machines in front of me, I've got an iPad, which is a host, and I also have my. 12 00:03:13.590 --> 00:03:19.139 Think pad here, which is a reasonable parallel computer and it's all right actually. 13 00:03:19.139 --> 00:03:22.919 And in the, um. 14 00:03:22.919 --> 00:03:28.979 Take pad, I got the chat window open, because for some reason, I can't get the chat window working on the iPad. 15 00:03:28.979 --> 00:03:40.199 So, I'm sharing the, I'm sharing the iPads, so I'm sharing the iPad screen so actually, I could do more of that, I guess. Okay. 16 00:03:41.250 --> 00:03:44.310 Great. Okay. 17 00:03:44.310 --> 00:03:49.740 Well, probably. 18 00:03:50.935 --> 00:04:03.805 Kind of just hard to start, so just we'll keeping stuff. I've got the chat window open and I'm in theory I'm watching it and you can also speak up. I think this is a small. This is a small class. 19 00:04:03.805 --> 00:04:07.615 So, 16 people registered last. I checked yesterday. 20 00:04:07.949 --> 00:04:12.120 So, okay. 21 00:04:14.250 --> 00:04:19.860 And I'm recording this, and if things work out, I can post a recording. 22 00:04:21.089 --> 00:04:25.949 All decide where to post it later? Um, possibly just on my own website. 23 00:04:27.718 --> 00:04:35.488 Okay, so, in any case, so this is the course of. 24 00:04:35.488 --> 00:04:41.639 Applied parallel computing for engineers I'm Franklin and. 25 00:04:41.639 --> 00:04:45.088 If anyone's not here to call me no joking. 26 00:04:45.088 --> 00:04:54.358 So that what I want to do today is go through the syllabus, give you a chance to ask any questions. 27 00:04:54.358 --> 00:05:01.889 And to, um, and then to go through an introduction to parallel computing, someone. 28 00:05:03.149 --> 00:05:07.139 And hello so. 29 00:05:07.139 --> 00:05:11.999 So, the idea is the point about this course. 30 00:05:11.999 --> 00:05:15.749 Is to get students and knowledge and experience hands on experience. 31 00:05:15.749 --> 00:05:19.319 And tools to develop parallel computing, um. 32 00:05:19.319 --> 00:05:25.019 Um, programs and applications, and I will largely in this course. 33 00:05:25.019 --> 00:05:28.139 Of our equipment, you can actually afford to buy. 34 00:05:28.139 --> 00:05:41.579 So this is, I'm comparing it to the same course over in computer science. Obviously he runs the Super computer center and we'll have you using. 35 00:05:41.579 --> 00:05:49.199 Um, very fast, but also, very expensive machines. All we teach you smaller machines. Um. 36 00:05:49.199 --> 00:06:01.168 1st, almost any application can use the smaller machines and 2nd is large machine. It's actually, at this point, an assembly, it blocks a smaller machines that I'll be teaching you about. 37 00:06:03.113 --> 00:06:14.634 And I'll be teaching you some software at some theory, but I'll be more in the applications as the title for the course. So so target for the courses generally, seniors and grads, though. 38 00:06:14.634 --> 00:06:18.923 I'm very welcoming to students from other departments and programs. So. 39 00:06:19.319 --> 00:06:25.619 Basically, if you want to take the course, you're welcome to take the course. And I don't, um. 40 00:06:25.619 --> 00:06:34.499 Again, I don't try to duplicate really Chris brother's course. So you're welcome to take both courses. 41 00:06:34.499 --> 00:06:45.418 And, for example, well, he's teaching some, but I will not teach him. Well, partly, um, for those of you who know what npi is, which is past the interface. 42 00:06:45.418 --> 00:06:58.228 Is I think, in most cases, it's useless, because in most cases, your job is not large enough that you need to distribute your, um. 43 00:06:58.228 --> 00:07:04.288 Program over the distributed machines, and also the overhead is considerable. 44 00:07:04.288 --> 00:07:17.488 So, in any case, you may take all the courses at the end of the course I make it. Oh, yeah. I'll put in a component of quantum computing at the end of the course, because it's fine. 45 00:07:17.694 --> 00:07:22.074 And and it's new and so on, 46 00:07:22.074 --> 00:07:26.903 and on a few pieces from the quantum computing course that I've taught in the fall, 47 00:07:27.384 --> 00:07:27.564 um, 48 00:07:27.564 --> 00:07:29.483 the hardware that I'll teach it, 49 00:07:29.514 --> 00:07:29.994 um, 50 00:07:30.593 --> 00:07:30.954 um, 51 00:07:30.954 --> 00:07:31.403 1st, 52 00:07:31.434 --> 00:07:33.233 multicolored Kelsey on. 53 00:07:33.833 --> 00:07:38.634 So, you know, everything is multi core. My iPhone is multi core and. 54 00:07:38.999 --> 00:07:43.949 The machine in my lab will tell you more about later, has some. 55 00:07:43.949 --> 00:07:50.608 Dual 14 cores. Each core is a hyper threaded, so that's like 56 threads on the machine. 56 00:07:50.608 --> 00:07:59.428 And so that's the, if you have to, or you wish to do an application in parallel to your 1st target. 57 00:07:59.428 --> 00:08:10.259 Oh, should be just a multi currency on for various reasons that its shared memory and is the learning curve is is, uh, much smaller. 58 00:08:10.259 --> 00:08:25.048 And so these are, um, this is the easiest firewall computer to start with the next step with that, which will also teaching the course of NVIDIA accelerator and. 59 00:08:25.048 --> 00:08:33.298 Because there you can have thousands of course, now invidious terminology changes some time to time. 60 00:08:33.298 --> 00:08:43.318 So, they've actually recently started deprecating the term CUDA f*** up. It's a not compute unit unified device architecture and. 61 00:08:43.318 --> 00:08:50.969 It so you can have thousands of threads running in parallel, but each core is much less powerful. 62 00:08:50.969 --> 00:08:54.688 And there's also as memory available, but. 63 00:08:54.688 --> 00:08:59.158 These have, um, you know, this is the way you'd scale up to. 64 00:08:59.158 --> 00:09:04.019 And also the, the fastest machines in the world. 65 00:09:04.019 --> 00:09:09.269 Tend to have thousands or tens of thousands of and. 66 00:09:09.269 --> 00:09:13.918 Well, such as Chris machine and. 67 00:09:13.918 --> 00:09:25.254 Progress and videos. Interesting. Of course, he started out as making Co processes for gaming on PCs and they, um, NVIDIA people are very smart, hardworking people that like to make money. 68 00:09:25.703 --> 00:09:29.663 They their customers observed that the 1st and video. 69 00:09:31.073 --> 00:09:45.474 We're very fast for doing some graphics Co processing things involving screen buffers and so on. So, people were contenting their applications to look like a graphics application. So they could run it on in video. 70 00:09:46.528 --> 00:09:53.999 And, um, this is had a field of research called graphics program. 71 00:09:53.999 --> 00:09:59.099 General programming and and the immediate people, they observed what. 72 00:09:59.099 --> 00:10:05.999 Their customers were trying to do, and they modified their. 73 00:10:05.999 --> 00:10:12.839 To be more generally useful. For example, they had I triple the standard double position floating point. For example. 74 00:10:12.839 --> 00:10:19.979 So, they're an interesting example of how to be business success, which is look at what your customers want and give it to them. 75 00:10:19.979 --> 00:10:23.219 You know, it's an interesting idea. It's a. 76 00:10:23.219 --> 00:10:30.629 Surprising that all companies don't do it, but some more more recently they've observed it. Don't. 77 00:10:30.629 --> 00:10:38.849 People want to do the machine learning and so on, and they've got it hardware to do a particular. They've identified a particular thing in machine learning. 78 00:10:38.849 --> 00:10:47.099 That was done a lot and it was half precision vector multiply an ad. 79 00:10:47.099 --> 00:11:00.568 The, um, there's not a lot of significant digits with a lot of machine learning data. So they used actually a 2 by 16 foot floating point and headway and added hardware to take a vector. And. 80 00:11:00.568 --> 00:11:09.808 Multiply matrix and that effect are very fast. Those are the Tensor units you have for and they've also getting back to the graphics roots have observed. Um. 81 00:11:09.808 --> 00:11:22.678 People like gray tracing, so they've added hardware to do things like, test array against the sphere or box and those would be their retracing units. And then what Nvidia did is they. 82 00:11:22.678 --> 00:11:31.469 Combined features, they got genuine synergy so they, they have something that's called real time. Retracing. And what? Um. 83 00:11:31.469 --> 00:11:38.759 And video does is they don't rate trace in detail, every pixel, these machine learning techniques. 84 00:11:38.759 --> 00:11:44.788 To determine which pixels are more important to compute more accurately and that's how they get effectively real time. Very tracing. 85 00:11:44.788 --> 00:11:58.318 So, it's a video and a case, and the most recent in video don't even have video out because they're high end. Customers are not doing graphics. Excellent general, Super computing. So that and video. 86 00:11:58.318 --> 00:12:09.958 Oh, so for a while they were calling them compute accelerators and they gave up on that back to GP. Okay. So that's the 2nd, architecture. 87 00:12:10.884 --> 00:12:24.323 And I'll have a little on then finding a middle module copy from my phone course on quantum computing. So those are the main types of architecture and I may have most and most of this will only be on a machine in my lab. 88 00:12:25.649 --> 00:12:29.729 Well, not real quantum computing, and I may do a little on, um. 89 00:12:29.729 --> 00:12:34.859 On, um, Amazon, perhaps I haven't decided yet. 90 00:12:36.928 --> 00:12:40.649 so that's hardware well for people that arrived 91 00:12:40.649 --> 00:12:46.708 More recently to this class, I have a chat window open and you're welcome to type. 92 00:12:46.708 --> 00:12:57.749 um chat questions if you wish and i'll i'll try to go ahead so let's if i see i'm not always watching the window flew off to the side of my site but i do have that open 93 00:12:57.749 --> 00:13:04.078 And so far as I know, I've not muted people also to speak a small class. You could even speak up. 94 00:13:04.078 --> 00:13:07.318 That was the hardware now the software. 95 00:13:07.318 --> 00:13:12.384 Um, um, there's various tools. 96 00:13:12.384 --> 00:13:25.854 Well, there's low level stuff we'll talk a little about and comment and put on the syllabus here about some models, um, parallel computation and these would be if you have a, a C plus plus program. Um. 97 00:13:26.844 --> 00:13:40.974 What does the standard say, for example, previous C plus plus the standard did not say the expression within a statement did not specify anything about the order they would get evaluated in so that if it's circle arguments to a function called argument was a. 98 00:13:42.808 --> 00:13:51.599 Was an expression said nothing about what order they'd be evaluated. Correct? So, we've got, um, standards about what the abstract machine model must say. 99 00:13:51.599 --> 00:13:55.078 The latest C plus plus, um. 100 00:13:55.078 --> 00:14:00.599 It's a little stricter on that actually, but we'll talk about some of the underlying parallel models. 101 00:14:00.599 --> 00:14:06.058 Now, the reason that he's underlying model to not specified things like, um. 102 00:14:06.058 --> 00:14:09.869 Strict ordering is that it's very expensive to implement that. 103 00:14:09.869 --> 00:14:14.548 Another way for you to look at that is if we have say, the multi core Intel. 104 00:14:14.548 --> 00:14:20.908 Let's see on and so they're all accessing a common memory. 105 00:14:21.894 --> 00:14:36.594 But if you force every reference to be written back to the local course cash into the common memory so that the memory view is consistent. That's very slow. 106 00:14:36.869 --> 00:14:40.769 Question from Tom that if we haven't taken chaos. 107 00:14:40.769 --> 00:14:44.129 Is there anything we should read about? 108 00:14:45.958 --> 00:14:52.139 Let me think about that 1. um, well, the stuff we're using from chaos will, um. 109 00:14:52.139 --> 00:14:58.109 Well, the big thing there is, you got this machine model of, um. 110 00:14:58.109 --> 00:15:04.438 An instruction and memory. Well, I'll talk about that in more detail later when, um. 111 00:15:04.438 --> 00:15:14.458 Actually later in this class, so okay, so, um, that's 1 thing I have in chaos also in Coco. Um. 112 00:15:14.458 --> 00:15:20.339 And it's also another reason I put chaos in a. 113 00:15:20.339 --> 00:15:24.328 There's a general cultural thing that you get more out of the. 114 00:15:24.328 --> 00:15:33.719 Higher level courses like this 1 if you have a broader background. So, if you know more general things about computer engineering, it's. 115 00:15:33.719 --> 00:15:37.229 They motivate, I guess you might say. 116 00:15:37.229 --> 00:15:41.969 The things otherwise you might take some of the things here. You don't understand the point of it. 117 00:15:41.969 --> 00:15:46.708 So, I, I guess that's the concept. So. 118 00:15:46.708 --> 00:15:52.828 Well, I think of a more specific antics here, but it's more the general. Um. 119 00:15:52.828 --> 00:15:57.418 Okay. Oh, good. General knowledge. Okay. 120 00:15:58.528 --> 00:16:09.208 And it's also fun it's fun to see how computer engineering developed and it's a very complex topic. And when you're working with a complex field of knowledge. 121 00:16:09.208 --> 00:16:12.869 You have to organize it and. 122 00:16:12.869 --> 00:16:23.399 So 1 thing that those courses, like, you know, features to teach you how this field is organized and they also teach you how. 123 00:16:23.399 --> 00:16:26.908 Difficult problems are solved. 124 00:16:26.908 --> 00:16:31.019 So, now there's a model for computing. I'll show you later. 125 00:16:31.019 --> 00:16:45.958 Um, and it's all BS logic unit you've got memory and so on and so on, you have a program calendar points to the next address and memory. You're gonna pull the next instruction out of you got some fast registers. 126 00:16:45.958 --> 00:16:57.178 That may look sort of obvious now, but it's, it wasn't obvious originally and some of those things were developed incrementally by trying lots of different ideas. 127 00:16:57.178 --> 00:17:00.568 And some. 128 00:17:00.568 --> 00:17:06.509 And then seeing what worked out, and you cannot always predict in advance. 129 00:17:06.509 --> 00:17:13.528 What will work out? You have to try it and see okay now, software, um. 130 00:17:13.528 --> 00:17:21.239 May do this thing random order? Um, the C plus plus competitor like fast is 1 from NVIDIA. 131 00:17:21.239 --> 00:17:27.269 Um, they bought it from a company PGI, I think, and. 132 00:17:27.269 --> 00:17:30.868 Well, 1st, it does parallel computing with videos. 133 00:17:30.868 --> 00:17:40.888 Hardware, and, um, it also is, I think, fairly up to date C. plus plus extension talking about the C. plus plus language I like this is the language I large to use. 134 00:17:40.888 --> 00:17:47.969 Let me tell you why C. plus plus has a conceptual unity to it. 135 00:17:47.969 --> 00:17:52.588 And so it's done by any stretch drop and it, um. 136 00:17:54.298 --> 00:17:58.469 So, things fit together, which makes it in a sense. Beautiful. 137 00:18:18.298 --> 00:18:23.398 Ecosystem around it of of toolkits, useful tools. 138 00:18:23.398 --> 00:18:30.838 The 3rd thing is, it produces code that runs very past and I like efficiency. 139 00:18:30.838 --> 00:18:35.249 And when you have, and in a sense, when you have larger. 140 00:18:35.249 --> 00:18:45.808 Problems efficiency can become more important because you're if you look at the acid product curve, you know, the X axis the size of problem with the Y, axis is time and. 141 00:18:45.808 --> 00:18:56.278 When your larger problems and better acid product performance becomes more important. So C plus plus it's really nice. So you can use good program. 142 00:18:56.278 --> 00:19:03.449 Techniques, for example, you could have little functions that encapsulate little ideas. 143 00:19:03.449 --> 00:19:11.338 And you can build them into the class structure so suppose you're working with both English and metric units to play. 144 00:19:11.338 --> 00:19:18.298 And some variables, like the English, and some variables might be metric that sounds like a totally crazy, logical system. 145 00:19:18.298 --> 00:19:22.229 Hello NASA, NASA lost the probe to Mars. 146 00:19:22.703 --> 00:19:31.374 Because, like, 1 contract are used English 1 used metric, and they didn't talk to each other properly and didn't convert and they lost the Mars. Bro. Okay. Well, and C. 147 00:19:31.374 --> 00:19:43.074 plus plus, you could have little functions that convert and you might be called billions of times. Well, they get inserted in line and optimized out so the function call ends up costing you nothing. 148 00:19:43.378 --> 00:19:49.078 That sort of thing you said, plus I don't think you can do it in Python, for example. So, and it. 149 00:19:49.078 --> 00:19:55.138 So, that's what I like about it and C plus plus is currently being updated every 3 years. 150 00:19:55.138 --> 00:19:58.739 So the latest standard is C plus plus 20. 151 00:19:58.739 --> 00:20:09.058 Um, the standard is out there, the most advanced compilers are starting to include some features for that. Previous 1 was C plus plus 17. 152 00:20:09.058 --> 00:20:20.364 Um, they were not as far as I remember, they were not major extensions there. There was not really plus 14, not really simple. Plus 11 brought in some major parallel computing ID. 153 00:20:20.364 --> 00:20:26.273 So the thing keeps getting updated and it gets instantiated and videos. Compiler. Um. 154 00:20:26.699 --> 00:20:30.929 Extension software we talked much then extending on top of that. 155 00:20:30.929 --> 00:20:36.989 For multi core over programming in general, there's something called open ACC. 156 00:20:36.989 --> 00:20:43.679 Look ahead of me for an open ACC dot Org and that's an extension to C. plus plus to help. 157 00:20:43.679 --> 00:20:51.269 If you have an algorithm, that's part of the hardest part being in this subject is to have algorithms. You told them that are parallel. 158 00:20:51.269 --> 00:20:57.388 And so if you have a loop, the different iterations of the loop are not interfering with each other. And. 159 00:20:57.388 --> 00:21:03.384 Um, 1, iteration is not creating not writing, just something in the next iteration will read, for example, then it gets hard to parallelize. 160 00:21:03.443 --> 00:21:04.314 So C, 161 00:21:04.523 --> 00:21:05.513 open ACC, 162 00:21:05.513 --> 00:21:06.834 our set of extensions, 163 00:21:06.834 --> 00:21:10.284 small extensions plus plus language, 164 00:21:10.614 --> 00:21:14.993 some practice into function calls to go in parallel with different back end, 165 00:21:15.624 --> 00:21:16.374 multi core, 166 00:21:16.374 --> 00:21:19.344 or the many multi core meeting to see on the mini core meeting. 167 00:21:19.949 --> 00:21:27.298 Typically video. Okay, I'll talk about the open ACC. Some odd. 168 00:21:27.624 --> 00:21:41.153 It's also a living thing, it's been extended there's another thing called open MTP I didn't put here. It's a slightly lower level thing that I used to teach in previous versions of the course. And that also adds primitives to your program. 169 00:21:41.574 --> 00:21:54.263 Seamless open MP MP for multi programming between open is to some extent replace in an open. Mp was very slow to work with Jeff a back end of the video. 170 00:21:54.598 --> 00:22:00.959 Another, um, parallel oh, another hardware thing I'll talk about. 171 00:22:00.959 --> 00:22:10.318 Um, I used to talk about, I don't know, um, Intel for some years, had a parallel thing called the, um. 172 00:22:10.318 --> 00:22:17.278 Color coat process of is he on 5 code processor? It was a board you'd plug into your, um. 173 00:22:17.278 --> 00:22:25.798 Into your until the machine that added, it would have a few 100 cores. The board had sort of Intel zones on it, but they were stripped it down. 174 00:22:25.798 --> 00:22:32.338 They did not have, um, pipelining and so on, but this was a way until had you have a few 100. 175 00:22:32.338 --> 00:22:37.288 Had a few 100 cores they brought the product line so that's why. 176 00:22:37.584 --> 00:22:51.144 I'm not teaching anymore. Okay, so we've got, um, the open ACC, another general parallel thing is called thrust, um, many of, you know, about the standard template library or all of you. 177 00:22:51.144 --> 00:22:54.473 Perhaps it has some paradigms and some standard. 178 00:22:54.689 --> 00:23:01.378 Ways to work with that. If the data looks like a vector, preferably vector some plain old data set. 179 00:23:01.378 --> 00:23:05.459 Plain old data would be in some floats and so on. So, um. 180 00:23:06.719 --> 00:23:10.888 Um, the standard template library gives you tools for. 181 00:23:10.888 --> 00:23:24.479 Doing a reduction over it and so on and working with that. So trust is a parallel extension of the. So we can work with vectors of data on a parallel machine. And, um. 182 00:23:25.679 --> 00:23:31.888 And we'll see some paradigms for parallel programming. So a paradigm is a. 183 00:23:49.588 --> 00:24:01.108 I think some of the back end stuff might be proprietary. I can't I don't jump past enough to know what's happening. They keep changing these things around, but the back end for thrust could be just a normal. 184 00:24:01.108 --> 00:24:06.898 Sequential machine, or it could be the many cores or the multi core. 185 00:24:06.898 --> 00:24:15.929 In video now, in theory, you change a compiler flag and re, compile your program. But, you know, the joke about. 186 00:24:15.929 --> 00:24:20.699 In theory, it's not difference in theory and practice on practice. There is a difference. Um. 187 00:24:20.699 --> 00:24:29.699 I find that the program sheet twiddling to work with different backend. But trust is cool. It's and to see their ideas and to see specific thing. 188 00:24:29.699 --> 00:24:36.118 Those are higher level things. I mentioned math lab and Mathematica, because they have. 189 00:24:36.118 --> 00:24:40.108 Some parallel extension so Matlab, for example. 190 00:24:40.108 --> 00:24:44.608 Their most common operations, like, for the matrix. 191 00:24:44.963 --> 00:24:59.933 You can do that in parallel. If Matlab lets be posted on a parallel machine. The Matlab, um, has licensing restrictions. Last I checked. No matter how many cores your machine had your host had. 192 00:25:00.028 --> 00:25:06.148 Bad, I would not use more than 8 of them at 1 point or something. Mathematica is, um. 193 00:25:06.148 --> 00:25:09.929 Most probably show mathematical later for people who aren't, um. 194 00:25:09.929 --> 00:25:18.088 Who are familiar with it? I don't know what's going on here. Um. 195 00:25:21.028 --> 00:25:31.019 Yeah, my screen, um, I got a newer message saying, attempted to start an invalid broadcast session. 196 00:25:31.019 --> 00:25:34.259 I don't know what's going on here. Um. 197 00:25:37.528 --> 00:25:47.249 Okay. 198 00:25:52.348 --> 00:25:59.969 We try and figure out what's going on here. 199 00:26:01.618 --> 00:26:13.199 Thanks very good. Um, the reason I'm broadcasting, uh, from the iPad is in case, I want to write stuff with good notes. 200 00:26:13.199 --> 00:26:21.239 And I haven't had an application on Linux, which is like, good notes. So, for 1 thing, my iPad is a touch screen. 201 00:26:21.239 --> 00:26:24.239 In this laptop does not, um. 202 00:26:24.239 --> 00:26:28.048 I'm going to try to broadcast from the other 1. um. 203 00:26:28.048 --> 00:26:37.078 I have a 2nd, I actually iPad the 2nd thing that here, which I could do just in case, but I don't want to start it. Oh, let me see what happens here. 204 00:26:44.999 --> 00:26:52.439 Okay, let's see. 205 00:27:01.618 --> 00:27:12.749 Okay, um, this is all I have 2 machines in front of me. Um, so what I just did is that I'm sharing from my Linux. 206 00:27:12.749 --> 00:27:18.659 Pad now oh, until that crash is then I'll go back to the iPad. 207 00:27:18.659 --> 00:27:24.298 I still have the chat window open. 208 00:27:25.439 --> 00:27:36.179 So, where it was, okay. 209 00:27:36.179 --> 00:27:39.628 Well, it was hardware, um. 210 00:27:42.509 --> 00:27:47.878 Yeah, very good. If you can tell me more later about how buggy iPads, and it says, workarounds. 211 00:27:47.878 --> 00:27:52.919 I don't know, I'm also not wedded to Webex if there's other tools out there, but it just. 212 00:27:52.919 --> 00:27:55.949 It works largely. 213 00:27:55.949 --> 00:28:05.159 Okay, so I told you about thrust, it's an extension to, um, standard template library. Um, 2nd, here. 214 00:28:05.159 --> 00:28:14.038 You're crashes no mind doesn't crash. Every time it gets. Let's make a deep into the lecture and then it stops working. 215 00:28:14.038 --> 00:28:18.838 Okay, I don't love computers. I'm, um. 216 00:28:18.838 --> 00:28:22.618 I like to joke that when I was an undergrad, um. 217 00:28:22.618 --> 00:28:26.068 I took more physics and anything else actually, but. 218 00:28:26.068 --> 00:28:40.499 I wasn't smart enough to do the theoretical physics and I was too klutzy to do the experimental physics. So I went into computer science because at that time, if you were in the same computer program twice, you got the same answer. 219 00:28:40.499 --> 00:28:43.919 Well, that was before networking time sharing. 220 00:28:43.919 --> 00:28:48.959 Now, we run the same thing twice. We don't get the same answer. Any case. 221 00:28:48.959 --> 00:28:53.189 So, the next tool I'll talk about somebody's CUDA. 222 00:28:53.189 --> 00:28:59.669 Could, uh, you might say is invidious assembly language programming. 223 00:28:59.669 --> 00:29:05.969 For their GP use and you're down at the low level you can and. 224 00:29:05.969 --> 00:29:16.078 You've got much more detailed control over the parallelism and so now, down at the, it's an interesting architecture. 225 00:29:16.078 --> 00:29:20.878 And we'll talk about it more later, but to give you a teaser, um. 226 00:29:20.878 --> 00:29:27.419 The way an Intel works is they throw billions of Gates some. 227 00:29:27.419 --> 00:29:34.528 Transistors at solving the problem of doing things in parallel and Z on on. 228 00:29:34.528 --> 00:29:41.638 If you, it's, it's got in 1 cycle can do about 5 different things. I think it can do in the future. 229 00:29:41.638 --> 00:29:51.989 An manager, operation, logic, Boolean test, it could also do a floating addition and also a floating modification. 230 00:29:51.989 --> 00:29:59.608 And do all those things in parallel with 1 cycle that's the Super scaler idea. And they got a lot of complicated logic architecture. 231 00:29:59.608 --> 00:30:02.969 Um, in the, um. 232 00:30:02.969 --> 00:30:15.898 On the, the NVIDIA GPU is a totally different philosophy. The CUDA course they're much simpler. In fact, for comp, they have separate cores. Um. 233 00:30:15.898 --> 00:30:24.148 The holding point would be a separate core, and it might take more than 1 cycle to do, say, a floating operation. 234 00:30:24.148 --> 00:30:31.588 so in one cycle they can do much less work but you might have several thousand 235 00:30:31.588 --> 00:30:44.003 Several 1000, um, could, of course that can run in parallel and they've got 5 different levels of memory, which are down at the CUDA level are visible to you, um, each thread. 236 00:30:44.034 --> 00:30:51.384 Oh, another thing they do is, they bundled, uh, thread is like 1 execution sequence. Okay, thread has a, um. 237 00:30:51.689 --> 00:31:04.409 Instruction pointer that points to the program counter routing points to the next is the address in memory where you're going to get the next instruction you got to execute and. 238 00:31:04.409 --> 00:31:14.189 And the thread has, and it's been executed on a local code core, and it's got, it's got a view into the memory. 239 00:31:14.189 --> 00:31:27.568 And, but in video bundles, the threads up and 32 threads, formal war analogy from where you can clock, and all 32 threads have to execute the same instruction. 240 00:31:27.568 --> 00:31:31.259 Or they might be flagged to be idle for that instruction. 241 00:31:31.259 --> 00:31:34.858 So, what this means is that. 242 00:31:34.858 --> 00:31:41.999 You look at the architecture, the real estate on the invidia GPU they have, um. 243 00:31:41.999 --> 00:31:45.898 They just space on the. 244 00:31:45.898 --> 00:31:56.759 You know, on the Silicon that encodes the instruction. Well, that space is amortized over 32 cooler. Course. So it's a much smaller fraction. 245 00:31:56.759 --> 00:32:05.094 Of space is used for decoding instructions, and also the video doesn't have the level of pipeline and so on. 246 00:32:06.023 --> 00:32:15.084 So the video spends relatively more space on looks fast registers and stuff like that. And special purposes that are not on. Is he on, like, the, um. 247 00:32:15.388 --> 00:32:23.669 Text her processors and so on. So, right at the top level, the have it. 248 00:32:23.669 --> 00:32:33.328 Quite a different policy for how you spend your resources and the resources are square millimeters on the Silicon. 249 00:32:33.328 --> 00:32:38.249 So, you're down with a low, low level and what they do, they got like, 5 levels the memory. 250 00:32:38.249 --> 00:32:44.699 So, there, each thread has some small cash register space. It's 256 words. 251 00:32:44.699 --> 00:32:50.759 And then it's got some larger local space. It's very slow and some shared space. It's fast and. 252 00:32:50.759 --> 00:33:02.128 It goes up at 5 levels, and these different levels of memory have a 100 to 1 ratio and their speed. So, a good NVIDIA. Um. 253 00:33:02.128 --> 00:33:09.209 Card might have 24 gigabytes now of memory on the GPU card. 254 00:33:10.163 --> 00:33:20.364 But it's 100 times slower to get to, you can stream it very fast, but it's got a very large agency to start moving it. So, Jonathan was it CUDA you can work with stuff like that. 255 00:33:20.364 --> 00:33:32.963 Also, in video has, like, 3 different levels of hierarchy for the threads, local threads that grouped into orgs and then you could have a block of threads called thread. Block might have 1000 threads. 256 00:33:34.199 --> 00:33:38.308 And the different warps are scheduled asynchronously they could. 257 00:33:38.308 --> 00:33:46.078 We're in separately of each other, but they couldn't pick up their local memory and then the whole block has. 258 00:33:46.078 --> 00:33:51.239 A, a set of shared memory that's visible to everything in the block. 259 00:33:51.239 --> 00:33:56.368 See, that the local work a threat, but thread you got to work with here. I took off the thread block. 260 00:33:56.368 --> 00:34:02.189 And your GPU now can have a number of thread blocked, might've dozens of thread blocks and they run asynchronously. 261 00:34:02.189 --> 00:34:07.169 And they have nothing in common with each other, except they can both access the global memory. 262 00:34:07.169 --> 00:34:19.018 And that's and these together make a parallel program, which Nvidia their terminology changes could be called a kernel sometimes. And then the GPU can have several colonels running. 263 00:34:19.018 --> 00:34:25.349 And, yeah, the past is supercomputer costs. 264 00:34:25.349 --> 00:34:30.568 Okay, yeah, in a few minutes I'll talk about that. Yeah, so, um. 265 00:34:31.043 --> 00:34:45.563 You've got this hierarchy of threats and on the GPU is is an operating system. They don't actually call it that that coordinates all this. So these things there's queues of stuff waiting to run. So, in the block, There'll be a queue of, um. 266 00:34:45.869 --> 00:34:51.268 Threads that are waiting to run because the threat needs some resources before. Good run. 267 00:34:51.268 --> 00:34:57.239 There may be some data from the global memory, has to be brought into a cash or something and. 268 00:34:57.239 --> 00:35:01.259 And then the whole colonel was at the top level, parallel programming some. 269 00:35:01.259 --> 00:35:04.978 It's resources of everything, so I could, of course so there's a couple of stuff. 270 00:35:04.978 --> 00:35:16.108 Who is a stock waiting to run and with the CUDA, you can get access to some of that. So kudo there's some C plus plus functions and there's also some minor extensions to the, um. 271 00:35:17.159 --> 00:35:20.489 Minor extensions to the language. 272 00:35:21.599 --> 00:35:28.259 Okay, so that gets into relating to that question. 273 00:35:28.259 --> 00:35:32.489 From Alan, these techniques are used and things like. 274 00:35:32.489 --> 00:35:36.059 Look at the fastest machines here. 275 00:35:38.219 --> 00:35:47.068 Okay, so there's a list here top 500 dot Org of the of the past is known machines. 276 00:35:47.068 --> 00:35:52.559 I say known machines because everyone figures that, um. 277 00:35:52.559 --> 00:35:58.768 There are very fast machines out there that people there almost don't talk about the Chinese just. 278 00:35:58.768 --> 00:36:03.509 Recently announced too fast machines that no 1 had known about and. 279 00:36:03.509 --> 00:36:10.619 Also here a 3 letter agency, you might perhaps in a very fast machine that no 1 talks about. 280 00:36:10.619 --> 00:36:20.278 And if you're an oil company in Houston, you may have passed Carl machines, you don't talk about. So it's not just classified purposes. So, in any case. 281 00:36:20.278 --> 00:36:23.818 So, if we look at some of them, um. 282 00:36:23.818 --> 00:36:30.389 Say, number 2, American machines, um. 283 00:36:32.429 --> 00:36:39.208 Okay, let's look at Summit. Let's say it's a faster. Okay, so the question was about the economy. 284 00:36:39.208 --> 00:36:50.248 Of these things add, economics are how that is funded and used. Okay. So the national labs in the United States, um. 285 00:36:50.248 --> 00:36:54.869 There's several. 286 00:36:54.869 --> 00:36:59.969 Um, um, look 1 more. 287 00:36:59.969 --> 00:37:04.648 Um, they started out in World War 2. 288 00:37:04.648 --> 00:37:08.998 To, uh, basically to test the atomic bombs. 289 00:37:08.998 --> 00:37:14.398 And so Oakridge was a. 290 00:37:16.079 --> 00:37:20.369 Was you're at 1 of the uranium verification? 291 00:37:20.369 --> 00:37:23.938 Techniques, um, so what the U. S get. 292 00:37:23.938 --> 00:37:27.028 And this is an interesting engineering thing. 293 00:37:27.028 --> 00:37:36.659 Is the U. S through money at the project in order to save time? So it wasn't known which. 294 00:37:36.659 --> 00:37:39.929 What was the good way to, um. 295 00:37:41.458 --> 00:37:44.878 To purify, separate. 296 00:37:44.878 --> 00:37:50.518 Which is like, point 7% of the year anymore. So they tried a couple of methods in parallel. 297 00:37:50.518 --> 00:37:54.659 It wasn't known whether uranium or plutonium bomb would work. 298 00:37:54.659 --> 00:37:59.548 So both were devised in parallel and these were the different Labs. 299 00:37:59.548 --> 00:38:05.668 And it turned out that almost every almost everything that was tried and ended up working. 300 00:38:05.668 --> 00:38:10.619 Well, I'm testing using the same ideas, for example, with space X. 301 00:38:10.619 --> 00:38:15.480 Throw money at the problem and try several things in parallel. Okay. 302 00:38:15.480 --> 00:38:23.550 So so, after the war, that was the cold war, they're working on, if any H bomb and so on and then they move to civilian uses. 303 00:38:23.550 --> 00:38:28.139 And so the new general, Super computing now, and. 304 00:38:28.139 --> 00:38:34.949 For solving other problems, we'll take, we'll talk about applications, so. 305 00:38:34.949 --> 00:38:42.449 They're funded by the Department of energy and the energy Labs Department of energy. So that's where the money comes. 306 00:38:42.449 --> 00:38:51.989 No, basically for these IBM, they had the blue jeans, for example, I knew were machines here and. 307 00:38:51.989 --> 00:39:04.650 So, IBM prompts the money in order to sell it to customers and customers that want very big things would be for example, I mentioned the oil companies that are modeling. We. 308 00:39:04.650 --> 00:39:08.639 Technology of the rocks to try to predict oil. 309 00:39:08.639 --> 00:39:15.659 Flight Simulator is mobile, so that's that's who pays for it. 310 00:39:15.659 --> 00:39:20.610 And I are the machine from the IBM, um. 311 00:39:20.610 --> 00:39:29.579 I think our gets some, you'd have to talk to Professor kruthers but, um, those are companies that buy time on the, um. 312 00:39:29.579 --> 00:39:32.940 On our computer for all. I know that might be, you know. 313 00:39:32.940 --> 00:39:40.320 A large amount of the income, so that's the how it's funded. 314 00:39:40.320 --> 00:39:45.599 For used now the energy Labs, you can apply to use them for free. 315 00:39:45.599 --> 00:39:49.559 So these are there, there's various. 316 00:39:49.559 --> 00:39:54.750 Government funded natural science foundation also enough to start of energy. 317 00:39:54.750 --> 00:39:58.019 Parallel machine Super machines out there in the country. 318 00:39:58.019 --> 00:40:01.349 That you can apply and. 319 00:40:01.349 --> 00:40:11.070 If you're in an application to say what you want to use it for, and if they like your ideas, they will give you an allocation of time for free. 320 00:40:11.070 --> 00:40:17.940 And it will say Mark guys thing. No, you can just you go out some time on the. 321 00:40:17.940 --> 00:40:23.610 Computer yeah, you so there's an application form on their website. I need to. 322 00:40:23.610 --> 00:40:35.849 Say, here's the time. I know I know a large amount of time. There was 1 site. I looked at, um, their initial they would give any 150,000 CPU hours. 323 00:40:35.849 --> 00:40:38.909 Just for asking, so this is, you know. 324 00:40:38.909 --> 00:40:50.190 250,000 hours was so small. It wasn't. You sort of like, hey, you've heard of parallel computing. You think you'd like to learn it is 50,000 hours. 325 00:40:50.190 --> 00:40:54.210 And if you want more than apply for it okay, so. 326 00:40:54.210 --> 00:41:02.730 So we look at the architecture for the summit here so it's from IBM. So you have a smaller version. This is they did a big version here. 327 00:41:02.730 --> 00:41:09.900 Um, look at the speed, 148 flops. It's a nice speed here. 328 00:41:09.900 --> 00:41:16.619 The benchmarks benchmarks for a lot of these things are very specific. They are, um. 329 00:41:16.619 --> 00:41:20.099 Typically matrix multiplication. 330 00:41:20.099 --> 00:41:33.719 Or it breaks down to doing a thought products of of vectors cause that's what makes qualification. There's lots of dark products of rows and columns. So it's a very specific benchmark. And in fact, hardware people can game it. 331 00:41:33.719 --> 00:41:36.719 Laptop is still considered to be useful. 332 00:41:36.719 --> 00:41:41.219 So, if you look at this, this structure here, so 4,000, no, it's it. 333 00:41:41.219 --> 00:41:45.239 The power 9 is an IBM is it's a very nice architecture. 334 00:41:45.239 --> 00:41:50.610 And it's IBM competitor to the Intel you might say. 335 00:41:50.610 --> 00:41:54.329 Well, as soon aside the until Zee on, um. 336 00:41:54.329 --> 00:42:02.070 That's not your standard Intel. It's on my laptop here is here, but it's a very good laptop. Um, your typical. 337 00:42:02.070 --> 00:42:08.130 Consumer machines don't have to the step below it. Well, to see on adds to the. 338 00:42:08.130 --> 00:42:14.429 Yeah, the core whatever machines it adds some hardware support for doing. 339 00:42:14.429 --> 00:42:25.380 Multi programming and virtual program, and more than the lower level of machines do it that support for more memory and stuff like that. Okay so we look at how the summit is organized here. 340 00:42:25.380 --> 00:42:30.329 So, 4,000 nodes with each node is a board with 2 power. 9. 341 00:42:30.329 --> 00:42:34.860 Is it power? I'm very nice architecture and they're multi core. Okay. 342 00:42:34.860 --> 00:42:40.469 And the power line has, um, 22 cores. 343 00:42:40.469 --> 00:42:44.820 And then 6 video, um. 344 00:42:44.820 --> 00:42:49.320 Um, now. 345 00:42:49.320 --> 00:42:55.679 Some more details here and video goes through generations. Um. 346 00:42:56.880 --> 00:43:00.570 The Tesla is like an architecture. 347 00:43:00.570 --> 00:43:03.659 Level, so, um. 348 00:43:03.659 --> 00:43:18.655 The lowest level for a video are the cheapest ones that are used for gaming and above the slide, there's the Quadro line, which has support for scientific computing. It will do. 349 00:43:19.914 --> 00:43:34.614 Say standard floating point um, I triple standard floating points so routing to be done correctly and so on. And that takes hardware to do that right? Floating point. So, that's what you get from the video going from the G force. 350 00:43:34.829 --> 00:43:42.989 To the Quadro, although the exact capital simple overlap and you go from the quarter up to the Tesla. 351 00:43:42.989 --> 00:43:48.539 The test the line that adds more support for the high end computing. 352 00:43:48.744 --> 00:44:03.655 And a Tesla JP might not have any video at all. I mean, these things here on the subject is gonna be no video I'm guessing at all. So, test is super peutic thing, but orthogonal to the G, fours quadrant test all the results on mobile live. 353 00:44:03.775 --> 00:44:04.824 But you're not talking about. 354 00:44:05.070 --> 00:44:18.150 My Avenue with a couple of times cars by Audi cars. Um, 2 in the in it, I think it's got 2 displays. Okay so orthogonal to that. Then there's things like the, um. 355 00:44:18.150 --> 00:44:24.300 Various slide, um, V means full time. So, as the years go on, they've got. 356 00:44:24.864 --> 00:44:39.775 For me, caterpillar, Maxwell, Pascal Volt and err and every, like, 2 year or 2 years that come up with another generation. And that's what the V stands for. And the 100 is just within the wholesale line. 357 00:44:41.880 --> 00:44:46.050 Talks about the size of the GPU, the number of credit cards and so on. 358 00:44:46.050 --> 00:44:51.809 Okay, and the hierarchy inside the course something called a streaming multi processor. 359 00:44:51.809 --> 00:44:58.050 Inside it and an extremely multi processor. Well, have hundreds of. 360 00:44:58.050 --> 00:45:03.690 For 50 or whatever could, of course, there's just several level hierarchy that she was talking about that. 361 00:45:03.690 --> 00:45:07.920 And. 362 00:45:07.920 --> 00:45:13.320 So, I can't remember the V100 it's got a I have a few 1000 who the cars. 363 00:45:13.320 --> 00:45:16.500 So you're gonna have a few 1000 times 6. 364 00:45:16.500 --> 00:45:19.559 It was 2 times 4,000. 365 00:45:19.559 --> 00:45:25.170 That is going to be up at a nice number of code, of course, and a very fast bandwidth. 366 00:45:25.170 --> 00:45:29.969 That's not the organization works and the thing is going to be happening. Um. 367 00:45:29.969 --> 00:45:34.320 Power consumption is, um, and the megawatt range, so. 368 00:45:35.670 --> 00:45:39.329 Professor Carlos about his electricity bill sometimes. 369 00:45:39.329 --> 00:45:45.449 And then in the summer, of course, he has to pay twice because he has to pay for the electricity. 370 00:45:45.449 --> 00:45:48.900 That's generating megawatts of heat then he has to pay for the. 371 00:45:48.900 --> 00:45:53.849 Electricity to run the air conditioner to take all that out. So he has to pay twice for the electricity. 372 00:45:53.849 --> 00:45:57.750 He's got a nice I'm guessing it's power bills millions of dollars here. 373 00:45:57.750 --> 00:46:01.170 That's a little bit how the real world things work. 374 00:46:04.230 --> 00:46:12.449 Okay, and so the top 500 list, 205 and 6 on the top few are. 375 00:46:14.039 --> 00:46:22.320 And is so, um, oh, 1, more thing a top 100 list if we look at the software, the operating system, they're running. 376 00:46:22.320 --> 00:46:27.389 They're all running some version of Linux or whatever. 377 00:46:27.389 --> 00:46:31.829 I used to be able to say that there was 1 machine running. Um. 378 00:46:31.829 --> 00:46:36.750 Wanting Microsoft Windows, but then it stopped. 379 00:46:36.750 --> 00:46:41.460 There was cut off at the top 500 so there are 0 machines running. Um. 380 00:46:41.664 --> 00:46:53.275 Windows on the list, including the machine at Microsoft owns. So, you know, Microsoft is starting to adopt Linux a little, you know, they've got Windows top system for Linux, um, under Windows. 381 00:46:53.275 --> 00:46:58.885 Now it's a virtual machine and that runs Linux on um. 382 00:47:00.869 --> 00:47:06.000 It runs Linux under Windows and I played with it a little. 383 00:47:06.000 --> 00:47:09.239 It's, it's a good Linux. It's virtualized at a low level. 384 00:47:09.239 --> 00:47:16.320 It's not just a PowerShell layer on top. Like they used to have this is running Linux at a low level. So I played with it so much. 385 00:47:16.320 --> 00:47:20.250 Oh, you like a Tom? Okay. Great. 386 00:47:20.250 --> 00:47:26.639 I thought about putting it on my latest laptop and then I got a little frightened that it was too fragile. I could not go on it. 387 00:47:26.639 --> 00:47:29.820 Type a wrong command and delete Michael off. 388 00:47:29.820 --> 00:47:35.880 System, so I went back to dual booting, which means I have to do over the top. 389 00:47:35.880 --> 00:47:40.199 1 of my machine, I've also got a licensed version of VMware. 390 00:47:40.199 --> 00:47:43.260 On my big machine here and that. 391 00:47:45.750 --> 00:47:56.579 And that, um, you know, right don't use a gooey. Oh, right. I have also another complaint I had was. 392 00:47:58.019 --> 00:48:07.469 Well, I, I couldn't mount an external partition inside it. It was really weird like my desk at different partitions and, um. 393 00:48:08.820 --> 00:48:14.519 For some reason, and of course, I'm using CFS, it's a file system. I like the best that I could not. 394 00:48:14.519 --> 00:48:19.980 So, it looked like a, I don't I wouldn't do it for any more. Okay. 395 00:48:19.980 --> 00:48:25.530 Well, let me just show you my, what my current system is actually, um. 396 00:48:27.090 --> 00:48:39.719 Let's see here. So this is a laptop now it's dual 6 core so it's running. Um, it's 12 cores here. 397 00:48:39.719 --> 00:48:42.900 Look at the memory. 398 00:48:42.900 --> 00:48:49.170 This machine has has 128 gigabytes of. 399 00:48:49.170 --> 00:49:02.369 I like memory, I don't swap he'll swap space because swap swapping is obsolete. It takes too much time to swap. It would take seconds to swap that amount of physical memory Internet once. So. 400 00:49:02.369 --> 00:49:11.489 Okay, you can see what we're looking at. I'm sorry I'm. 401 00:49:14.969 --> 00:49:26.849 Just a 2nd, um, it works better if I share applications, not the entire screen, but that requires. 402 00:49:29.550 --> 00:49:33.059 On okay. 403 00:49:33.059 --> 00:49:36.989 Um, that's running H, talk. 404 00:49:36.989 --> 00:49:50.429 Yeah, I, I can see it now. Okay, so this is a laptop. Now I've got 6. it's a Z on 6 core. Is he type for theaters? That's 12 threads. 405 00:49:50.429 --> 00:49:59.340 And look over here, 12,125 using binary 100 by the kernel used by the. 406 00:49:59.340 --> 00:50:03.000 I also, so it's 128 gigabytes of. 407 00:50:03.000 --> 00:50:06.000 Acc ACC. 408 00:50:06.000 --> 00:50:10.829 You know, so this is a very nice a laptop, I think. 409 00:50:10.829 --> 00:50:16.139 Okay, all the Chromium tabs. 410 00:50:16.139 --> 00:50:22.380 Well, that's the security thing in browsers. Now they run on each, they have many separate processes. 411 00:50:22.380 --> 00:50:30.480 And the hope is, in a sense, have walled gardens around each tab on your browser. And I think it works to some extent. 412 00:50:30.480 --> 00:50:36.809 Okay, just a 2nd, here back to the browser I I know it stopped. 413 00:50:54.655 --> 00:51:00.985 Okay, this appears to work for live, but if I share separate applications and a picture of the whole screen. 414 00:51:01.230 --> 00:51:12.239 Okay reference it can a little about me. I got my bachelors at Toronto, master's and PhD at Harvard. 415 00:51:12.239 --> 00:51:15.750 Technically, my Harvard PhD says applied bath. 416 00:51:15.750 --> 00:51:18.900 I diplomacy as a podcast, but it's really, um. 417 00:51:18.900 --> 00:51:25.710 In the computer science, so, and you don't want to know how long I've been programming. 418 00:51:25.710 --> 00:51:32.820 Okay, emails the best office out of our virtual to online for office hours. 419 00:51:32.820 --> 00:51:38.369 Basically, it holding me an email. I have many different email addresses. 420 00:51:38.369 --> 00:51:52.980 Address there and I have I've had my own domain now for 20 years or something. No girlfriend and her daughter. I also W, Randall Franklin go to work. I also, if you would like to send an encrypted email. 421 00:51:52.980 --> 00:52:01.739 Um, I have also a proton mail account over effective P. M. E. and we could also so proton mail set payments with. 422 00:52:01.739 --> 00:52:08.550 Encrypted service, and also we can exchange public. 423 00:52:08.550 --> 00:52:15.090 Keys if you'd like, and you can send me if you want, we could set up a new and send encrypted email. So. 424 00:52:15.090 --> 00:52:19.530 Um, I generally send from non RPI accounts. 425 00:52:19.530 --> 00:52:32.610 Cause I just gets so tedious to set up our all the time and you're welcome to send. And in fact, if you give me an RPA account, I'll add it to my list. So you'll get emails. I sent. 426 00:52:32.610 --> 00:52:46.469 Mostly, I, if I'm asking the whole class, I'll send it from my account probably, because otherwise will tag it as spam for the recipients on our API. The spammed it um. 427 00:52:46.469 --> 00:52:53.579 Spam assassin has its problems I mean, at 1 point it crap to an individual message from the provost to me. 428 00:52:53.579 --> 00:52:57.960 Not a multiple into it or message to her. It's it's critical what it does so. 429 00:52:57.960 --> 00:53:09.269 I mean, I check it spam filter every few days and that's all I know. But so you're welcome if you send me an email from some other account, it's really nice if your header makes it obvious who you are. 430 00:53:09.269 --> 00:53:17.789 And don't say Buffy the Vampire Slayer or something and if you tag it with the hashtag. 431 00:53:17.789 --> 00:53:26.130 And we can use Webex face time or whatever talking if you'd like, um. 432 00:53:26.130 --> 00:53:32.280 I deprecate FaceTime with required who use? Webex? Um, I have, um. 433 00:53:32.280 --> 00:53:42.150 My own domain here you see the blog, um, the nice quick way to, um, get to it is just Google. 434 00:53:44.039 --> 00:53:47.550 There it is. Okay. Um. 435 00:53:49.920 --> 00:53:57.840 No, no. 436 00:53:57.840 --> 00:54:06.960 There we go. Okay, office hours. I'm teaching probabilities starting at 2, so I don't have a lot of time after my parallel glass. 437 00:54:06.960 --> 00:54:16.469 But after probability we can talk as long as anyone wants to talk informal meetings, I'm willing to talk to people. If it's any talk. If it's legal and ethical, I'll just have to talk about it. 438 00:54:16.469 --> 00:54:21.510 Professor like talking, so, um, even after you leave. 439 00:54:21.510 --> 00:54:29.940 I'm teaching the course I created this course a few some years ago, so I'd like the topics. That's why I'm teaching it yet. 440 00:54:29.940 --> 00:54:34.889 I used to teach computer graphics. There's a slight overlap because I got confused and both of them. 441 00:54:34.889 --> 00:54:42.239 I got the webpage here, reading material. There's nothing that you have to buy. 442 00:54:42.239 --> 00:54:47.429 There's a few things that are on, you you welcome to buy. 443 00:54:47.429 --> 00:54:52.409 If you wish you don't have to, and I'll use a little from some of that. 444 00:54:52.409 --> 00:54:57.719 Now, there's a problem here when the field is changing. 1st really good books. 445 00:54:57.719 --> 00:55:02.699 Standards book, it's they, they have an updated it lately so there's lots of examples. 446 00:55:02.699 --> 00:55:06.449 But they haven't updated it. Another thing is that. 447 00:55:06.449 --> 00:55:17.250 Could have changing and even in hideous example programs don't catch up. Don't keep up with it. Now. Why it is relevant. 448 00:55:17.250 --> 00:55:20.940 Can I explain BCC? Okay. Yeah, I just saw that. Um. 449 00:55:20.940 --> 00:55:24.719 In a minute, um, okay. 450 00:55:24.719 --> 00:55:29.610 They're adding again is the video folks. 451 00:55:29.610 --> 00:55:35.489 There's a reason the company is such a high market cap stock is so high, is that they're doing good things. 452 00:55:35.489 --> 00:55:43.800 They're adding value, so they look at how their stuff is used and they look at the problems and they try to help. 453 00:55:43.800 --> 00:55:46.800 So you have a parallel. 454 00:55:46.800 --> 00:55:50.039 Program, so you have your, um. 455 00:55:51.059 --> 00:55:58.889 Okay um, okay, let me talk about this. So I'll come back to. 456 00:55:58.889 --> 00:56:05.610 Bcc, is there a correcting memory? Um, it's not just parity checking. It can correct and error. 457 00:56:05.610 --> 00:56:10.110 And it's just in case, you know, 128 gigabytes of memory. That's a lot of Gates. 458 00:56:10.110 --> 00:56:14.550 I can adapt with cause mccray's and so on then. 459 00:56:14.550 --> 00:56:18.449 And the flip a bed, it's nice that the fact that it doesn't. 460 00:56:18.449 --> 00:56:21.840 My file system or something, so. 461 00:56:21.840 --> 00:56:27.210 Why high amount or 2 reasons it's more necessary. 462 00:56:27.210 --> 00:56:41.454 When you have a lot of D round, cause the chance of an error is large, I think most most errors are not going to cause you're not even going to know it. It tends to be real, you know, computers are not that you flip a few random bits. Probably nothing will happen. Really? Okay. 463 00:56:41.545 --> 00:56:44.605 And, um, if something happens, it'll probably be minor. 464 00:56:44.880 --> 00:56:51.239 But still, you know, I like the liability on my file system. I mostly use DFS. 465 00:56:51.239 --> 00:56:56.369 Error correcting and checks off and everything and it also. 466 00:56:56.369 --> 00:57:03.090 In fact, you CFS Warren's that the greatest vulnerability of CFS now is, um. 467 00:57:04.230 --> 00:57:10.590 Took bets on the seat. Okay. The 2nd thing is if people large amounts of direct their bigger projects. 468 00:57:10.590 --> 00:57:18.750 So, they're not hobbyist trying to get a machine for 500 dollars. They've got more money so they can afford to pay for it. 469 00:57:19.800 --> 00:57:25.050 And cause it does cost money and the other thing is, I mentioned, I got the Z on on this laptop. 470 00:57:25.050 --> 00:57:28.980 And the lower end, like the core of view. 471 00:57:28.980 --> 00:57:32.880 I went up to 911, I guess I lose track of it. 472 00:57:32.880 --> 00:57:36.539 They cannot use memory, so. 473 00:57:36.539 --> 00:57:42.210 So, getting into ACC, it's part of the next level of spending money. 474 00:57:42.210 --> 00:57:50.280 So actually, my laptop here, when I configured it with an old, it's custom, it's not start. 475 00:57:50.280 --> 00:57:56.099 I got a call from their fraud person, you know, such a fancy machine. So. 476 00:57:56.099 --> 00:58:06.869 Okay, okay. I'm getting back now. It's an important point of problem here with so, in video they're adding stuff. 477 00:58:06.869 --> 00:58:21.420 To, um, they're adding stuff to their kudo. Okay. A big thing is, I'm talking about various well, I've heard of so you got your CPO and you got your GPU. 478 00:58:21.420 --> 00:58:25.800 And they've got separate memories. Okay. So. 479 00:58:25.800 --> 00:58:34.829 Another thing I'll show you here is I also have an on this laptop. It's not none of this integrated. 480 00:58:34.829 --> 00:58:37.920 Graphics thing, or it's, you know, part of Intel. 481 00:58:37.920 --> 00:58:41.159 It it has a separate. 482 00:58:41.159 --> 00:58:44.400 A separate NVIDIA. 483 00:58:44.400 --> 00:58:47.670 Let me show you let me. 484 00:58:47.670 --> 00:58:51.719 Up again, here just a 2nd, um. 485 00:59:00.690 --> 00:59:11.489 Okay, should thank you. So, is it in video. 486 00:59:11.489 --> 00:59:17.219 To the, um, here to Quadro 5,000. 487 00:59:17.219 --> 00:59:22.860 And there are 16, um, gigabytes. 488 00:59:22.860 --> 00:59:25.889 On the GPU. 489 00:59:25.889 --> 00:59:32.130 I like the laptop, so the Intel ziam is 12,825. 490 00:59:32.130 --> 00:59:38.849 And then the GPU with 16 gigabytes and so these are 2 separate memory spaces. 491 00:59:38.849 --> 00:59:47.010 And what you would have to do in the past is explicitly coffee data back and forth. So you're going to create a program. 492 00:59:47.010 --> 00:59:51.599 You want to do something on GPU 1st you have to copy the data to the G. 493 00:59:51.599 --> 00:59:56.190 And then you run your job, and then you copy of the result back. 494 00:59:56.190 --> 00:59:59.190 It's very tedious all this copy back and forth. 495 01:00:00.420 --> 01:00:04.739 Higher level crosstalk make it easy. So so, if the copy so now. 496 01:00:04.739 --> 01:00:12.869 What video now goes they've got virtual memory that is a unified address space with paging. 497 01:00:12.869 --> 01:00:15.989 That combines the. 498 01:00:15.989 --> 01:00:20.369 So, if you have an array on the heat on. 499 01:00:20.369 --> 01:00:26.309 Then you can refer to it. 1st, it's a unified address phase. 500 01:00:26.309 --> 01:00:30.780 It's a 4,949 bid virtual address. 501 01:00:30.780 --> 01:00:39.389 And that was the 1st step the 2nd step is a demand paging. So, if your GPU program. 502 01:00:39.389 --> 01:00:43.800 Refers to an address that is physically on the. 503 01:00:43.800 --> 01:00:46.800 The GPU pages it over to the GPU. 504 01:00:46.800 --> 01:00:55.199 And this is just new, it's a couple of years old. Oh, by the way, the hardest thing to get this implemented, I believe was Linux. 505 01:00:55.199 --> 01:01:00.090 Because this requires support in the Linux colonel. 506 01:01:00.090 --> 01:01:05.639 And it took years before the Linux colonel added the support and released it. I think. 507 01:01:05.639 --> 01:01:09.119 They were possibly worried that if it was done. 508 01:01:09.119 --> 01:01:12.570 If it had a bug in, it would really screw over the users. 509 01:01:12.570 --> 01:01:18.659 But so there is this, um, support analytics colonel for the on demand paging. 510 01:01:18.659 --> 01:01:22.320 Okay, so this makes writing. 511 01:01:22.320 --> 01:01:25.860 A graph a GPU program a lot easier. 512 01:01:25.860 --> 01:01:35.250 However, since this is new, a lot of your examples don't use it so you look at your examples could've by example. 513 01:01:35.250 --> 01:01:44.639 They do not the examples. Don't use this tool. So their examples I teach you all sleep technique. You don't have to worry who's any more probably. 514 01:01:44.639 --> 01:01:48.119 So, that's I actually just incentive to use the. 515 01:01:48.119 --> 01:01:52.230 Some of those books. 516 01:01:52.230 --> 01:01:58.170 Show you 1 other thing before I go back, um, let's see. 517 01:02:00.599 --> 01:02:04.769 So this is a lower so this just shows you, uh. 518 01:02:04.769 --> 01:02:12.239 What is this again? My laptop. Okay. Cuda has different versions of 11 point something. 519 01:02:12.239 --> 01:02:18.269 And it's got another type of every time they add a new function or something above the version. 520 01:02:18.269 --> 01:02:22.050 And the capability tells in another sense. 521 01:02:22.050 --> 01:02:25.320 What is available in the coda? 522 01:02:25.320 --> 01:02:29.039 Um, 16 gigabytes of memory. 523 01:02:29.039 --> 01:02:32.940 The laptop is 3000 could, of course. 524 01:02:32.940 --> 01:02:37.679 And so the multi processes, those are the streaming multi processors. 525 01:02:37.679 --> 01:02:41.369 At 48 of them each 1 and 60 could of course. 526 01:02:41.369 --> 01:02:47.369 Um, it has a cash it's 4 megabytes. Um. 527 01:02:47.369 --> 01:02:54.659 Ignore the texture um, so these are architecture decisions here. So if you're at NVIDIA. 528 01:02:54.659 --> 01:03:00.960 And you're inventing the next level, you've got to decide how much memory global remember you, you're going to have. 529 01:03:00.960 --> 01:03:05.190 Um, it's available to all of the processors. 530 01:03:05.190 --> 01:03:15.989 And how many so, the multi processors, how many each multi process? It's true. It also called the streaming multi processes. Um, is a big area on the chip. 531 01:03:15.989 --> 01:03:19.860 And how many of these obviously decide the clock rate. 532 01:03:19.860 --> 01:03:23.010 The cache is passed, but expensive. 533 01:03:23.010 --> 01:03:27.840 They take a piece of the cache and they have. 534 01:03:27.840 --> 01:03:33.480 A cons a read, only constant memory it's implemented as a cash view into the global memory. 535 01:03:33.480 --> 01:03:36.809 So, it's small, but it's the thing is, it's. 536 01:03:36.809 --> 01:03:40.349 It's it's shared by all of your threads. 537 01:03:41.579 --> 01:03:50.789 And then I mentioned the, your current on your parallel program is divided into independent blocks inside each block. There's some past shared memory. 538 01:04:07.170 --> 01:04:13.679 There are 65,000 registers in the block, the block and I've talked to a 1000 threads, 70, 60. 539 01:04:13.679 --> 01:04:17.909 564 registers per thread, but if you've got 2 or 3 ID script. 540 01:04:17.909 --> 01:04:21.119 There I kind of more registers, um. 541 01:04:21.119 --> 01:04:30.269 So you may your program may run past if you use your threads, but they need to spread it's more fast registered space because it doesn't have to spill over to the flow. 542 01:04:30.269 --> 01:04:39.059 Slower global memory and maximum. This is 32 threads all run the same instructions that. 543 01:04:39.059 --> 01:04:42.329 Um, so they have different program calendars. 544 01:04:42.329 --> 01:04:46.409 But, no, they have the same program counter. 545 01:04:46.409 --> 01:04:50.250 Okay, but different local memory. So they're running the same. 546 01:04:50.250 --> 01:04:53.400 The program memory is the same for all the threat to the war. 547 01:04:53.400 --> 01:04:56.969 They're running the same instruction, but their access in different memory. 548 01:04:56.969 --> 01:05:00.000 Remove on. 549 01:05:00.000 --> 01:05:03.300 And that's basically that. 550 01:05:03.300 --> 01:05:08.400 Unified address say is this carbon address base. 551 01:05:08.400 --> 01:05:12.059 Oh, the GPU has no, um. 552 01:05:12.059 --> 01:05:19.800 Unified memory is the common 49 bit address space for the host. That's the Intel Z on the device. 553 01:05:19.800 --> 01:05:23.159 That's the video. Okay. Um. 554 01:05:23.159 --> 01:05:27.929 And you can look at the high order bits and know which it is. 555 01:05:27.929 --> 01:05:32.039 The managed memory is the, um. 556 01:05:32.039 --> 01:05:37.050 Is the on demand paging between the host and device? This is the thing that's fairly new. 557 01:05:37.050 --> 01:05:42.210 A couple of years old, 2, years old or something, and other stuff. Um. 558 01:05:43.619 --> 01:05:47.909 I'm not completely certain what this is here. Okay. 559 01:05:47.909 --> 01:05:52.349 Colonels can start on the kernels and so on. 560 01:05:52.349 --> 01:05:55.500 Okay, back to the website. 561 01:05:57.480 --> 01:06:02.219 Here and again I'm sharing applications. 562 01:06:02.219 --> 01:06:05.369 Not the whole screen because it's more reliable. 563 01:06:07.469 --> 01:06:11.519 Give it a 2nd, come on. 564 01:06:11.519 --> 01:06:21.150 Gotcha. Okay so I'll go point to free material on the web here. 565 01:06:21.150 --> 01:06:24.599 Oh, the computer systems I'm using. 566 01:06:24.599 --> 01:06:36.300 What I'll talk on next is a good introduction to parallel computing. Is this free online tutorial and it's some Lawrence Livermore National Labs that. 567 01:06:36.300 --> 01:06:39.840 Again, Lawrence, Livermore, they started out making. 568 01:06:39.840 --> 01:06:46.230 Very energetic devices. Very, very, very energetic devices. Um. 569 01:06:46.230 --> 01:06:52.139 Let me tell you a sign I tell you stories, but real world engineering issues. 570 01:06:53.340 --> 01:06:59.190 You have programming mistakes. Okay. You write a computer program. 571 01:06:59.190 --> 01:07:03.059 That screws up, um, does something you did not expect um. 572 01:07:03.059 --> 01:07:09.300 Tell you a story about how 11 day, and I think a 154 when the physicists. 573 01:07:09.300 --> 01:07:13.469 Screwed up. They were designing an H bomb. 574 01:07:13.469 --> 01:07:21.150 And the name was castle Bravo, and they designed the H bomb to be about 5, Mega tons. 575 01:07:22.559 --> 01:07:25.920 They made it easy change. See little. 576 01:07:25.920 --> 01:07:34.800 Physics error and their computation. Oh, who hasn't made in little physics errors and they. 577 01:07:34.800 --> 01:07:38.699 Ignored a particular reaction pathway. 578 01:07:38.699 --> 01:07:42.210 So, there fine make a ton bomb. 579 01:07:42.210 --> 01:07:48.570 Turned out to be 15, Mega times. It ended up to be 2 and a half times larger. 580 01:07:48.570 --> 01:07:53.429 Then they predicted, so, this was the largest H ball in the U. S. that were exploded. 581 01:07:53.429 --> 01:07:57.000 And, um, can show you in fact, um. 582 01:08:06.780 --> 01:08:15.900 Okay. Um, okay, so 15 Mega intended to be like, 5. 583 01:08:15.900 --> 01:08:23.609 5 or 6 turned out to be 15 because of a minor little physics error. So this is just make errors too. 584 01:08:23.609 --> 01:08:37.050 As a result of this error, um, the experimenter's on the island survive, because they were in an over design bunker, and they were trapped for a while, but it did irradiates the crewman on a Japanese fishing boat downwind. 585 01:08:37.050 --> 01:08:43.739 Um, and I think killed some of them integrated some islanders. 586 01:08:43.739 --> 01:08:48.689 And actually led to. 587 01:08:48.689 --> 01:08:56.579 Godzilla, so this idea of a, you know, big bomb cause, you know, waking up creatures and so on. 588 01:08:56.579 --> 01:09:00.539 So, Godzilla was inspired by this physics error. 589 01:09:00.539 --> 01:09:07.859 And, in fact, I think a cloud, some of the radiation would actually fall in and Troy, because it went up in the. 590 01:09:07.859 --> 01:09:16.229 stratosphere um and was precipitated out by the weather and it's something that might be in landed here any case so 591 01:09:16.229 --> 01:09:21.210 You made computing error, your computing errors don't do this. So, you know. 592 01:09:21.210 --> 01:09:28.409 Could be life could be worse. Okay. And this is why the way it was the largest explosion that you guys did not do anything else. 593 01:09:28.409 --> 01:09:38.729 Okay, so, computer says so I'm just mentioning Lawrence Livermore, so okay, so computer systems I'm going to use, um. 594 01:09:42.989 --> 01:09:49.409 Okay, okay. So, um, I have a machine in my lab and cannot be a. 595 01:09:49.409 --> 01:09:53.369 So, to do a 14 CTC on. 596 01:09:53.369 --> 01:09:58.949 Now, each core is fairly, so you see 2 gigahertz. That's quite slow. Well, it. 597 01:09:58.949 --> 01:10:03.689 Over clocks that so, um, I hear interesting design things. 598 01:10:03.689 --> 01:10:08.279 The way these high end work is. 599 01:10:08.279 --> 01:10:12.239 The more parallel course they have the slower. 600 01:10:12.239 --> 01:10:19.859 They run because it's just hard getting the hardware working cross bar switches and all that stuff. So, the more parallel. 601 01:10:19.859 --> 01:10:29.760 The Intel processors that have more parallelism, have a have a slower clock speed. So when I was, I was checking out this machine to buy. 602 01:10:29.760 --> 01:10:33.600 Um, I went for more cores in the slower clock. 603 01:10:33.600 --> 01:10:37.319 And also keeping within my budget, of course, and now. 604 01:10:37.319 --> 01:10:42.270 The way it works is if you're not using the parallelism, the course, will actually over clock. 605 01:10:42.270 --> 01:10:48.720 So, if you're running a sequential program on this machine, then it goes much faster than that. 606 01:10:48.720 --> 01:10:56.250 Machine is several years old now. Okay. So this has a quarter terabyte of memory. So it's faster than. 607 01:10:56.250 --> 01:11:02.430 A lot better, be powered sort of thing and it has a better, um. 608 01:11:02.430 --> 01:11:06.989 It has the best Intel, the best and video. 609 01:11:06.989 --> 01:11:11.939 As of when I bought a couple of years ago. 610 01:11:11.939 --> 01:11:18.119 So, if so, this GPU has 48 gigabytes on the GPU card. 611 01:11:18.119 --> 01:11:30.600 Nice machine and a few more cores, but it has great tracing units on what the rate tracing unit does. It will do a quick test of array against the sphere or a box. 612 01:11:30.600 --> 01:11:34.649 And I'm going to stop, they could not going to update. 613 01:11:34.649 --> 01:11:45.210 Oh, okay. I have it and I have some machine machine, which we are from the cloud. So, what I'm going to do is give you all accounts on that to access from home. 614 01:11:45.210 --> 01:11:54.000 And again, we can, um, get data on and so, on here, um. 615 01:11:55.260 --> 01:12:00.539 If you wish, so, yeah, I'm not using the graphics on it. Um. 616 01:12:00.539 --> 01:12:06.479 Turing was a previous architecture before the vault because this is a couple years old. 617 01:12:06.479 --> 01:12:12.239 It's called a Quadro again, these different levels. Quadro Tesla. 618 01:12:12.239 --> 01:12:17.399 They overlap somewhat and so, and and video themselves. So. 619 01:12:18.479 --> 01:12:22.380 Actually, um. 620 01:12:22.380 --> 01:12:34.409 Nvidia themselves actually, they don't fall was wrong terminal because they keep changing things and some of the, um, the real time, very tracing cars. Um. 621 01:12:34.409 --> 01:12:47.640 Nice amount floating point performance here. 16 terra flops and a half performance. This is because again machine learning stuff doesn't have a lot of significant fits. So. 622 01:12:47.640 --> 01:13:01.380 Double precision to lot slower because they do that takes special hardware, tell you what an story about this. So we don't have to get 3 years ago. So I'm speaking out the machine to purchase. We have so purchasing thing. 623 01:13:01.380 --> 01:13:06.149 And the GPU here, and the lawyers. 624 01:13:06.149 --> 01:13:09.359 I saw this. 625 01:13:09.359 --> 01:13:20.430 And thought it was controlled technology. No, use the very detail export technology, export rules and they're surprisingly detail. 626 01:13:20.430 --> 01:13:27.779 And they have what the rules have been updated like, did they said any machine above? I can't remember the number. 627 01:13:27.779 --> 01:13:40.319 810 flocks or something was considered to be a military machine that was export control. So I got a note from our lawyers saying, um, well. 628 01:13:40.319 --> 01:13:45.720 Who is going to be using this machine and what's their citizenship and so on. 629 01:13:45.720 --> 01:13:54.270 And now, the thing about this card here is, at the time I bought this card, this card was this price or something like 600 dollars. 630 01:13:54.270 --> 01:13:57.960 Give or take, and it was available on Amazon. 631 01:13:57.960 --> 01:14:05.340 It was also available on Amazon, UK for 600 pounds. You know, the conversion um. 632 01:14:05.340 --> 01:14:17.845 Between an American, you know, high tech, pocket, computer product for 7 us and for sale, you know, you convert the price and I'm not joking. It's a character replaced when you change the dollar sign to a pound sign and you keep the digits the same. 633 01:14:18.265 --> 01:14:29.664 And that's what they in practice do with same, centrally. So 600 dollars in the state 600 pounds. So warriors I was saying, this is an export controlled machine, but it's available throughout the world on Amazon. So. 634 01:14:31.020 --> 01:14:37.470 I politely said that and said it's going to be used in class so they stopped bugging me but, um. 635 01:14:38.454 --> 01:14:52.675 You know, your work legal things. And the funny thing is that I also bought an Intel processor, the processor, which is even faster than this and they didn't complain about that because they didn't recognize it. They saw the purchase order and they stopped. 636 01:14:52.770 --> 01:14:58.590 But they saw also saw the I, I didn't know what his name was. I was saying. 637 01:14:58.590 --> 01:15:02.189 Okay, this is a nice fast machine here. 638 01:15:02.189 --> 01:15:05.340 Um, which you'll have accounts on. Okay. 639 01:15:05.340 --> 01:15:10.829 And again, um, so other stuff, um. 640 01:15:10.829 --> 01:15:18.270 We may do something on Amazon. I haven't planned to have Amazon actually has good values for some things. If you want to use. 641 01:15:18.270 --> 01:15:29.159 A high end video for some work, not for graphics latency. It'd be too big and bandwidth, but just for Super computing you can sometimes. 642 01:15:29.159 --> 01:15:36.210 Rented by the hour on Amazon for less than it would cost you to buy it advertised. 643 01:15:36.210 --> 01:15:44.010 At 1 point Amazon, I think had a GPU that would cost 10,000 dollars to buy. They were ready for a dollar an hour. 644 01:15:44.010 --> 01:15:53.880 Because you'd have to also figure out what for the CPO themselves that was good. I'll use grade scope for you used to submit home credit. Scopes is very nice for logging stuff in and quick creating stuff. 645 01:15:53.880 --> 01:15:57.180 So, and. 646 01:15:57.180 --> 01:16:09.630 Webex I'm just going to use only for distributing computed rates. I think it was great scope is it has no way in it for me to create a new column so to speak with gray tie compute. 647 01:16:09.630 --> 01:16:13.050 Elements says that the elements are horrible for everything else. 648 01:16:13.050 --> 01:16:16.590 So, distributed computer query to the end of the semester. 649 01:16:16.590 --> 01:16:20.489 Other stuff, if I see a new tool. 650 01:16:20.489 --> 01:16:33.060 I may use it, so how do you get grades homework's in term project and class presentations so well, more than teams, if you like, submit do a great scope teams to make 1. 651 01:16:33.060 --> 01:16:40.470 You can change your teams off as much as you want. You will be a term project at the end of the course, um, teams of any size. 652 01:16:40.470 --> 01:16:47.369 combine it with your thesis work with your grad school you combine it with another course you such a tell everyone that you're doing 653 01:16:47.369 --> 01:16:51.359 Yeah, okay. And you can build on existing work. You have to tell me. 654 01:16:51.359 --> 01:16:55.739 So, anything I've got on my website, it's an automatic yes. 655 01:16:55.739 --> 01:17:08.880 So she got to implement their demonstrate or document something related to cloud computing and implement something right up a paper and scientific paper style. 656 01:17:08.880 --> 01:17:14.100 and with some more detailed man and i want you to give a project proposal in class 657 01:17:14.100 --> 01:17:20.640 Middle semester, and then a presentation at the end it's in progress reports right now. Okay. 658 01:17:20.640 --> 01:17:26.189 Size of code it's impossible to say. 659 01:17:26.189 --> 01:17:40.800 um i've got an eight line program i wrote the test at the points and a polygon and wrote it many decades ago and still quoted occasionally and it's much shorter than other people's lives and as a story about bill gates he once was collaborating with ibm 660 01:17:40.800 --> 01:17:49.800 And, um, and Bill Gates is a very good program, a very good hacker. Okay. And, um. 661 01:17:49.800 --> 01:17:59.069 So, he took some IBM code, rewrote it to be shorter and it's probably faster simultaneously, but the unity was working with didn't like it because IBM. 662 01:17:59.069 --> 01:18:06.659 quantify work by lines of code produced and so bill gates had caused that unit to do negative work by their metrics so 663 01:18:06.659 --> 01:18:18.630 for most procedures i'm starting a virtual now switch to red line with rpm tells me too if i get to know this i haven't been on triple vaccinated i haven't gotten 664 01:18:18.630 --> 01:18:28.920 You know, I'll probably catch the wrong thing at some point in our will tell me to go virtual. So I'll try to keep you in the loop here. Um. 665 01:18:28.920 --> 01:18:35.760 I could set up. Yeah, you can I could I got so I could set up a Webex space if you wanted, but. 666 01:18:35.760 --> 01:18:39.210 Um, I might do some in class stuff. I don't know. 667 01:18:39.210 --> 01:18:47.159 30 warning system I'll use, so basically, if you tell me that you weren't able to do something. 668 01:18:47.159 --> 01:18:52.890 because of family problems i will probably tell the data students so that you're having problems 669 01:18:52.890 --> 01:18:58.050 Um, academic integrity is nothing new here and feedback. 670 01:18:58.050 --> 01:19:01.050 I created this course, um. 671 01:19:01.050 --> 01:19:10.109 I like the course, so I want to give you a good experience. If you have suggestions. 672 01:19:10.109 --> 01:19:14.159 You know, tell me in person if I don't scare you too much. 673 01:19:14.875 --> 01:19:28.614 Or tell someone else looking forward to it honestly the way the organization or professor Lou is the undergrad head, he organizes the undergrad classes and does assignments and prompts and you can tell him or I can tell him. 674 01:19:31.619 --> 01:19:44.430 I haven't set up the great great scope link. Yeah, I'll do it now. Okay. Class 1 this will be class 2. um, I do have homework out. Um, well, let me show organization of the blog here. 675 01:19:44.430 --> 01:19:49.770 And the archive lists, all the posts that we just sold postings. 676 01:19:49.770 --> 01:19:56.850 They are tagged. Okay. We've got the syllabus up here in my home page. 677 01:19:56.850 --> 01:20:00.479 The videos I'll probably, um. 678 01:20:00.479 --> 01:20:06.659 Um, I'll lower the make media site or else to hear both of them. 679 01:20:08.579 --> 01:20:14.279 My experience is that my backups are more reliable than backups. Um. 680 01:20:14.279 --> 01:20:20.670 So that I keep a copy of everything that I do all, you know. 681 01:20:20.670 --> 01:20:25.829 And last spring, the I get hit by the hackers and final exam period. 682 01:20:25.829 --> 01:20:28.979 I would say we're doing now. Um. 683 01:20:30.060 --> 01:20:33.600 Of course, um, I could just, um. 684 01:20:35.279 --> 01:20:43.020 The probability I just moved the course over to another off site hosts because my authoritative copy of it. 685 01:20:43.020 --> 01:20:46.949 On machines files with the files, that's. 686 01:20:46.949 --> 01:20:52.949 Okay. Homework. Okay. I've done enough talking. I'm getting worse. I want you to do some talking and we. 687 01:20:52.949 --> 01:20:57.539 Going to have and so I want you to pick some topics. 688 01:20:57.539 --> 01:21:02.850 And email me with your choices and I'll give you 1 of them. I'd like you to talk about it. 689 01:21:02.850 --> 01:21:09.329 Next Thursday, so that's a week and a half from now because next Monday is a holiday so. 690 01:21:09.329 --> 01:21:21.270 And you can do it, you can do it in the team. If you want on 2. if you want 35 to 10. I'm not going to jerk you off stage at 10 minutes. But, you know. 691 01:21:22.409 --> 01:21:31.319 Again, it's 5 to 10 should be 3 to 5. I'm going to shorten that. Sorry you know, several minute talk. So, and again, I'm gonna short these numbers here. 692 01:21:31.319 --> 01:21:41.520 And it may spill over to the call. So you tell me and I'll tell you which 1 of the 2 I pick. And basically it's a 1st come 1st served. I'll give you the 1st choice. 693 01:21:41.520 --> 01:21:47.880 Um, okay, so I'll start going from the Lawrence Livermore. 694 01:21:47.880 --> 01:21:51.000 Tutorial next Thursday, other than that. 695 01:21:52.109 --> 01:21:55.229 Um, if there's any questions. 696 01:21:55.229 --> 01:22:00.479 Hang around, if you'd like to ask any questions other than that. Um. 697 01:22:01.680 --> 01:22:12.000 You know, we'll start off with more stuff, so I wanted to use the time today to actually, you know, do sideways things to do introductions into stocks. And so I took the whole class. 698 01:22:13.380 --> 01:22:19.170 Um, okay. 699 01:22:19.170 --> 01:22:24.630 If there is no, let's see questions. 700 01:22:28.800 --> 01:22:32.909 Not to. 701 01:22:34.859 --> 01:22:41.069 Virtually. 702 01:22:43.020 --> 01:22:51.840 You're welcome. Oh, okay. What else? Okay. Bye. And I'll try to say the. 703 01:22:52.979 --> 01:22:56.369 It's this works with a video.