 What do we do with a computation? I think we have the demos. Yeah. So, Simo, I think yours was first, right? Yeah, I can give a demo, a quick demo. Okay. Your screen is there. So, what's the story of this demo? The schedule says large-scale computing with ArrayJobs. So, ArrayJob is a way to run one thing many times with slightly different parameters. Correct. Yeah, so this specific case is a situation where one of our researchers wanted to utilize already existing model that used this kind of a transformer deep learning networks to do analysis of music and sounds, basically, and it could recognize features from different sound sources. So different ambient sounds, it could extract features from these different sources and different music styles and stuff like that. And there were different models in this specific model that one could use, like different kinds of feature extraction methods. And so, basically, we have a situation where we want to do this kind of analysis for different kinds of genres, different kinds of things. We want to do this feature extraction. And we help the user to use the software by utilizing these singularity containers that we unfortunately don't have time in this course to go through too much. But basically, we help them install the software and then help them do the analysis in parallel fashion with these ArrayJobs. So, basically, running different parameters in different machines, because all of these jobs required like a very heavy GPU for about a half an hour to do it. So, I'll demo the script now. I'll show the script. So, in the folder here, there's the actual data that needs to be done. And then there's the script that will be used to analyze the data. So, if I use the less command, which is like this kind of... You can view a file with this kind of... You can scroll around the file. If I use it to view the file... So, this is the script that runs? This is the script that actually does the work? Yeah, we will learn how to write these scripts during the few coming days. So, how do you tell the system to do whatever you want it to do? And in this case, we wanted it to run on GPUs with quite a lot of memory requirements and stuff like that for a certain time. And we wanted it to use this array structure where it runs multiple of these jobs at the same time in different machines, probably. And then for each job, it would get its own value of a genre that it would then analyze. And then... So, it would run multiple different parameters at the same time on different jobs. And then it would do the analysis. So, basically... So, this is for you submitting 10 different jobs to do 10 different things, using that little piece there. So, you program something once... So, basically, now I'm hiring more Italians. Like, if we remember the analog previously, where each of these jobs could be a different, like, Italian. So, now I'm basically, like, instead of putting one person to boil the pasta, I invite 10 people to boil their own pastas at the same time. So, then I get 10 times the stuff done in the same time. So, these kinds of jobs, we will learn about more how to use them. But when they are submitted to the queue system, you will get this kind of a submitted job. And if we look around, we'll notice that all of these are running at the same time on different GPU machines. So, some of them are running on certain machines. Maybe I'll reduce the point of view. But they're all running at the same time. So, now there are 10 analyses being done at the same time for 10 different GPUs. So, all of these different genres that we would have are being analyzed at the same time. And this analysis is, well, it's short in time, but it requires a heavy GPU. So, you wouldn't be able to run this on your own machine, like ever, because it requires too powerful of a GPU. So, this kind of job utilizes both the GPUs but also the aga structure so that you can have multiple of these running at the same time. And then we get the output and we can see what we get. So, this kind of stuff you will learn on the next day. So, this was a real-world case where somebody needs to do something multiple times and they would utilize the Q2 to do it faster. Yeah. And then how do these all save to the same output file? Or do they, like, how do you get the results from 10 different things running at once? Yeah. So, we'll talk about this more when we go to the agai chapter, but all of them will produce their own output and all of them will produce their own features, their own results in their own files. So, they're completely independent things running at the same time. But this is, we'll go through this in much more detail tomorrow. Okay. So, we look at the other example. Yeah. So, okay. So, and I guess we can emphasize that what you just saw here that Simo did, this is the most common way for people to run a lot of things on Trayton. I don't know if I'd say most common. What do you say most common? Well, I would say it's the, like, it's, it can get, it might be a bit confusing at first, but then if you think about like, okay, am I going to be running this thing like a hundred times or 10 times, or am I going to be doing this again and again? Then if you think about like that, most likely this is the easiest way you can like do stuff at the same time by utilizing these agai jobs. So, it's a lot of our jobs are these agai jobs, but I would say that even more could be. So, this is something you should keep in mind when we talk about this in detail. Yeah. Okay, I see some commentary on HackMD, but I'll do the next example and then we can get back to there.