 Hello, hello. Hello. So it would be good to also see some MATLAB. And in our psychom.alto.fi, we have a long page dedicated to MATLAB with different examples here. Maybe the interactive usage of MATLAB is not what we're after right now. And most likely you're familiar with it, but it's nice to see how we can run, for example, CR scripts or re-jobs with MATLAB. In practice, the situation is quite similar to what we did with the Python case. So we wanna run a script. For example, I'm gonna call it MATLAB. . And let's call it serial.sh. All right. So now I copy what we have in our documentation, just for simplicity. Basically, of course, you already see that what we need to do is make sure that we have MATLAB there. Right now I'm just requesting for five minutes and nothing, small amount of memory and getting the output store somewhere. So then what we normally wanna use, the way we normally wanna use MATLAB in a batch, in a batch job in a CR script is that we don't actually need the graphical part. So often we don't need this Java virtual machine that is kind of needed to run all the IDE, integrated development environment of MATLAB and also this no splash. It's basically kind of similar thing that relates to the fact that we don't need the graphical interface. And then with minus r, it's like we are telling MATLAB to please run some common. So basically here it would go the actual, I'm gonna say the actual common that we need to run. So I'm inventing now some, let's call it my function. And maybe we can even pass some parameter to this my function. So I'm setting some parameters that we need to define previously. So let's say that n equals to three and m equals to two, something like this. But then something that is important, even though kind of they fixed it or something, this has changed recently with MATLAB. But in general, even though it might have changed, I think it's good practice to know that MATLAB has quit it. So after running the common MATLAB itself would not kind of shut down. So it's important to also add this exit zero. Idea being that, you know, you don't want to keep there. So if we are requesting only five minutes for this, for this job, but you don't want to, you know, wait basically that the time expires when you can already release the resources. Okay, so then you can already see the strategy or that these numbers that are changing, they could be for example, this array ID that you can then pass to your function, which can be a wrapper of something bigger that can take the array ID and then, you know, parallelized across multiple parameters, simple parameters. So of course you also need that something like all myfun.m, something silly in this case. So function myfun and it was m and n and maybe I don't know just that isp or something that you would do. I think the parameters might have been out of the way around, but I'm not certain. Oh yeah, the letters, yeah. I was finding, I thought it was alphabetical order, but... Is it important to have the same name for the function and the file as in the command? Well, it's like, if you do it like that, you make it easier for Matlab when you're looking for the help so that I could also write the help for this function here. Myfun does this and that. Then Matlab, it's easier life for Matlab, but otherwise this here could be or, you know, like it doesn't need to match, but you can use more of these interactive features if the name of the function, the name of the file are the same. So maybe first I test this interactively on the login node or actually even better, as we said many times, let's use the login road. I'm just getting some random node interactively. And okay, I got CS147, so I try module. Matlab to make sure, yeah, if my dyslexia wouldn't be. Yes, so now of course I'm not able to run any graphical, so this is the Matlab from 1996, basically, and then here in this folder, well, these were all the stuff that we run for the course, but there is this, myfun, which we can call with some numbers and it just displays the numbers that are passing. And it even, so, okay, seems that everything is working and I can get out of this specific node, so we're back to the login node and now we can have a last look at the job that we will submit, so it will load Matlab and with these two parameters, it's going to call myfun. I guess this will be very fast or kind of not too fast because Matlab always takes some time to start up, so I guess that will be most of the time that is needed, but yes, this is done. If we look at the history, so yeah, the last thing that was called was Matlab and the output file, I could reshape my screen a little bit, so it was serial Matlab.out, which just, so it's interesting actually that you even see in the output file kind of what you saw interactively that Matlab get started and you get also this output of the function. So in our example page, I don't know if I also should have shared the example page or I just wanted to show more about kind of more complex scenarios. Sure. So I need to, well, I can't actually because I'm now sharing only this window, so I would need to stop my stream, my sharing, so yeah, so I don't know what we can do now without me stopping the stream. Yeah, maybe you can describe what's in there, what kind of things are there in the Matlab page. Well, basically there are other ways of using the, like this, in this case, like this was a kind of one core Matlab that is running something simple and okay, you can scale it with the array jobs or with them, but in Matlab also uses some sort of internal parallelization because some functions are made so that if there is more than one CPU available in the node where they're running, they can run this multi-threading. So in our documentation, we also have examples on running this Matlab multi-thread idea being that some of the code, some of the code inside, let's say that you want to invert the matrix can actually utilize it's more than one CPU per task. So since I'm now in this window, I can show how it will look like. So with something like this, you would request, for example, four CPUs per task and two gigabytes of memories and this specifically then calls the Matlab function, which is basically the inversion of a matrix that utilizes the parallelization, meaning that in the node that you end up, the Matlab sees the 4 CPUs and then those can be used in parallel to invert the matrix. Matlab also uses other system for the parallelization like the so-called part pool or parallel toolbox and it's similar, somewhat similar to the kind of, to the irate jobs, it's just that now it happens within one node so that in the node that you are, for example, you end up, say, four CPUs per task, then those, the task that you're doing within the part four loop can take advantage of the multiple CPUs. Did you want to say something similar? No, I think it's quite clear that there's more stuff in the page and it's possible to find all kinds of information there. Okay, I guess, I don't know if you were planning other examples. Thanks a lot.