 Simo, you have the screen. Yeah, just a second, I'll try to find the correct page. So yeah, so in this section, I'll quickly go through a quick example of how to install stuff, how stuff is usually installed in a cluster environment. And specifically, I'll talk about condi environments, because nowadays, Python is by far the most popular language for scientific computing. So like no, no, I'm going to say no favorites chosen, but it just happens to be because everybody's using it and it's a very simple language to use. So condi environments are these kinds of environments that are used to install Python with specific versions of specific packages that you need, because Python has a rich ecosystem of packages. So you usually need, for your code, you need some Python packages, usually specific packages to get your stuff rolling. And condi is nowadays also very influential to many other frameworks. Many other languages provide similar kinds of tools. So for example, has is one example, Julia has Julia packages and many other languages have a similar kind of a structure or similar kinds of tools to handle the same problems that condi tries to solve. So but without further ado, let's check what how we can install some condi packages. So this is a bit of a spoiler that we will be, I will be showing some things that you will see later on, such as connecting to the cluster. But but you will be able to do this later on. So how do how does stuff usually work with with condi is that you you basically you need the installer. So condi, like many other languages has this as well. But condi is this package manager. So basically you can use it to install various packages. And it can handle all of these packages yourself. So so in in the cluster, you first need to like tell condi what what what kind of environment it's working on. And this can change from side to side. But usually if you're working with condi, you need to load it in some sort of a module. We'll talk about this later. But you'll need to like get access to the condi. And then you will have to tell it to install stuff to the right place. So you need to run these commands, you know, to get it working. This is a good example also of how to read documentation in in our webpage or many other places. So in many places, you will see these kinds of like, like commands that you need to run first time, you set something up, and then you don't have to worry about them too much. So so if you have a problem with a specific software, you usually need to go to the documentation of the cluster, search for the application in in question, and see if there's instructions provided. Some of course, if the instructions are old or some some don't look good, or they don't work, you need to contact us. But basically, well, I have already run these. So I don't run them in a comment. But usually, you have something like this when you first start using a program. So you need to like, if you're going to use some program in a specific environment, you need to usually do some like cleaning up make make certain that program works in the system. But why is conda popular? Well, the reason is that usually, if you create these environments in in conda, you use can specify all of the dependencies in there. So many of you are probably going to be working with Python. And I highly recommend you start working with these environments already, because that will save you a lot of TS in the future, because usually in in this kind of computing environments, it's very hard to get like a consistent, like, everybody to work together, like all of the software that you want to work together. And conda is designed to like, make it as easy as possible to install, like very, very many different packages at the same time, and make certain that everything works together. Like, it's it's like, everybody, like, if you think about your laptop, your laptop might be a Windows machine, your laptop might be a Linux machine or Mac machine, it has different rules than an HPC cluster, which is a Linux machine, and probably some operating system you haven't ever heard of. So what you need to do is like, you need to bring your own like, own pasta with you, or your own own kinds of tools with you, your own kinds of stuff with you and conda manages to do it like conda brings your like, if you don't know what kind of food you're being offered, when you when you go to go to a French house, you might bring your own like food that you like. So so this is the case. So so in conda, you typically create an environment. So here's some like a quick example. So I have this environment here. I copy this name this. And I create an environment file for it. It's it's called like this environment Jameless. In this case, I have already already created this. There's a spoiler there. I will remove that line. But basically here I have an environment where I need to create an environment with certain packages. And with conda, you can simply, if you first do the initial steps that you load the module, you can simply create this environment using these commands. So conda and create. I might have already have this created. So I will need to remove it. Yeah. Once we install this, you will see what is the why, why, why this, these kinds of tools are important. So in, let's think at what we were talking with Enrico previously that you were working at your laptop, you might be working at the HPC cluster, you might be working in different places. You want the same tools to be available everywhere. And you want the installation procedure to be documented so that you can you can replicate the same environment. You want you don't want to like every time you go to a different kitchen to have like different try to find where are the utensils that you need. You don't want to like, like, you don't want to always try to figure out how do you get your code to run. So with conda and similar tools, you can simply create an environment in different places that are like the same, like you can get the same environment in different places. If you don't use these kinds of tools, or if you cannot use these kinds of tools, you still would benefit in having some sort of like an description of what you how do you install whatever you're doing. Because then you can replicate this instructions, even if the instructions are just like a text file for yourself, you can you can replicate it. And of course, in this case, the conda automatically does the thing. So you can see here that it it solved this environment. So it sold which packages it needs to install and then it does the installation for you. So this is conda is mainly used for Python and R nowadays, but it can also install Julia, I think as well. But similar tools are available for other other things. So now that you you have the environment, instead of using what it says here, you set and do what it says in the documentation. So use the source activate conda example. And if you just follow these orders, you get like an environment and now you can see that I'm this in this kind of an environment where where I have the packages installed. In the in the environment, now if I list whatever packages I have, you notice that there's a huge bunch of packages, huge bunch of software that was built, but was provided by the conda. And this is like a small, small example, small example environment. But in in general, when you are working with scientific code, you usually need to like, you need to specify quite repeatedly, the installation instructions, what you need to do, you need to specify the requirements. And and these requirements are usually defined from the top down. So instead of like, installing lots of like, if you have your own laptop, you might run some installation commands, and you try to build it from the bottom up, instead, you should look at what is the program data you want to use, and what does it require, and then work backwards from there. So in this case, for example, if I wanted to use NumPy and pandas, these popular Python packages, I set these as dependencies, and conda will handle like, it will draw all of these other packages automatically, and it will create me this environment that that that supports these packages that I actually require. And this is common thing in scientific software installation that you need to look at this documentation of the site, what the site provides. So in this case, what our documentation says, or what what your university's documentation says, you should look at the documentation of the actual packages, or the actual software that you want to use, and then work backwards from there and and install it or find out whatever those needs. Of course, some programs such as conda and they handle this for you, so you don't have to like worry about it. You will automatically get the prerequisites of those packages. There is over here in the documentation, there is description of how do you read these environment files. So so they're pretty self evident. Once you look at the documentation, so this where do you get the packages, what packages you need to install, you can specify, specify versions, and stuff like that, you can install stuff from peep as well. So if you need need like packages that are not yet provided by conda. There are various tools. And if, especially if you're going to be working in machine learning world. So this is part of the reason why we why we decided to give this talk here, even though it might not affect everybody. If you're going to be working with deep learning or machine learning, you will use GPUs. And in those cases, the GPU codes require other libraries and they require gigabytes worth of libraries to work. And to get that stuff working, you need to use these more complex conda environments to get it everything working together. And for that, I highly recommend checking some of these example, like if you know you're going to be using TensorFlow or Python or whatever. There's example environments here that you can use to do the installation. So in general, I would suggest that if you are going to be working with, well, any scientific code, this is related to conda, this example, but if you're going to be working with any scientific code, it's a good idea to check the documentation, ask us, and then work from the top down instead of from the bottom up. If you Google, like how to install, let's say TensorFlow, you will get blog posts from 2013 that describe the thing, how to do it. And they will lead you into this route of, okay, I need to like, I, I need to get this stuff working in order to get my stuff like the end product that I want to work. But that is not how it's nice to say it needs to be nowadays. So it's a good idea to start from the top, like start, what do you actually want? What software do you want to work? What software do you want to use? And then look at that and what that requires. So ask the software or the documentation, what does it need? And then work from there downwards. If there's any complications, if you have any problems, then that's why we are here to either write the documentation or to help with that. And there are plenty of tools such as conda that can do it automatically so that we don't, we don't need to like, we don't need to handcraft every installation out like by ourselves. Yeah, I don't, I don't know if I have more to say. Were there any questions? Yeah, so yeah, so this was a quick demo. So it was mainly like, yeah, this was not a typo long, because they were basically spoilers ahead, like something that we haven't yet, like we haven't yet connected to the cluster, we will do that after this talk. But in the future, you will encounter this situation where you want to install stuff. And then it's good idea to first check, do we have instructions to how to install this stuff? If we have instructions, then we'll use that. If those instructions don't work, then let us know because then we don't want to publish policy news. And if, if, yeah, yeah, so, so it's, but it's important to know that there's information around, like you don't want to be in a situation where you think that, okay, like, I need to figure it out myself. Because that's not how scientific computing works, like it's a shared system, everybody shares the problems, everybody has similar kinds of problems. There's like, you're not alone in this. You're not the only one doing what you're doing. So, so it's important to know that, okay, everybody else is fighting the same fight. And somebody might be using different tools, somebody might use another tool, but it's important to like learn from the whole field, like, okay, there's, there are things like these available, and then utilize them in your work. Do you expect anyone to be an expert on these topics after this course? No. Okay, no. So, like, like, like, for me, like, I, I personally learn, like, I, I forget everything almost immediately. And then I relearn it and relearn it. Time and time again. But the important thing is not to stop learning. Like, like the important thing is that, okay, you have a, have a problem. And then you figure out how to solve it. You forget how to, like you, you often, you end up in a situation where you install a software and finally manage to get it working. You forget how to do it. Then you have to do it again, like half a year later, that happens all the time. And that can be solved in the best way by documenting what you're doing. But if you're not documenting it, it's important to, like, relearn and keep, keep learning. And if, and in many cases, asking other people, like, hey, do you, do you know how to do this? Because, like, that is the best way of, of, of, like, getting the information, like, getting information that is the best way of doing stuff. Yeah. So I think I'm seeing a lot of questions here. A lot of these will be answered in future days, or it's more logical to answer them there. This was just sort of like a preview to get you interested in the next days, I think. And yeah, it's, it was like, like, this was just, like, this was just like, I just went through a small subset of the documentation of a single program in, in the cluster. And, and if you think about like, okay, this is only one program, this is one of the most popular. So that's why we gave it as an example. But there are hundreds of programs that people are running in the cluster, hundreds of different programs. And all of them have their own complications. And all of them have their own things. Like, and it's not only in the HPC world, it's if you try to install it in your own workstation, it might get complicated. So all of these occur, everything like this happens in scientific computing, because all of the software is interlinked and everything works together. So it's important to realize that, okay, you're not in this alone. You're not, like, like, like the vast majority of problems are solved by somebody else. Like, it's not solved by you, you find the solution in Stack Overflow, you find a solution in some, somebody else has written a program that fixes your problems. And it's important to get to this mindset that okay, before I try to do it for weeks and on end, to figure it out myself, you've, you've tried to find a solution outside. I was just like, yeah, I was just talking to one of my friends this weekend. And she said, I asked her the standard question, okay, I'm doing this course. What do you know now that you wish someone had taught you when he first started? And she had a really good point, like, ask for help when it's needed. And I might be hard to know, but like, she had developed the strategy, okay, like, I'll work on this problem for one hour, and then I'll go to garage and not waste much more time. And I thought that was a really good way to look at it somehow. Yes, so like, as scientists, people who work in scientific fields, everybody's curious, usually how to how to do stuff. And if you don't figure out how stuff works, you become, you can become irritated that okay, like, it shouldn't be that hard, I should be smarter than this, I should be able to understand this. Like that that's a natural, at least for me, that's a natural reflex. But, but there's always like this cost benefit analysis of is it something you really need to, like, is this something I really need to use my time on, or would it be better used in somewhere else, like actual doing something I like instead of like doing something I hate, and like, trying to trying to figure out how to install some stuff that I don't, I don't like the whole workflow, I don't like to do stuff. So in those cases, it's better to ask other people to find information in our documentation, in other places, that try to maybe describe what is the problem and try to solve it so that you don't you can focus on the stuff that you like. So because like, even though we don't want to talk about it that much, we're still part of it, basically, like, that like, or there is it kind of problems. And that is the most frustrating kind of problems when when you have like, you cannot get something installed. And in those cases, it's usually better to just like, find solutions that work for other people, maybe in the documentation, maybe somewhere else, and then use those instead of like, trying, trying to like, just get through by brute force and force of will. Okay, our time's almost up, I guess we can go to the break. So what we have next, so there'll be a one hour demo on secure shell. This is a special topic. And special means it varies each year. So if it's too boring for you, it's not strictly necessary to be there. And then one hour from now, at 15 Helsinki time, we have the connecting to an HPC cluster part. And this uses SSH and gets us ready for the next day for days two and three. So, yeah, so what's the point here? So in the next hour, we have a sort of general overview demo. Here's some things that you might not have known. And then we go to the the important part for the next day. So let's go to a break. And you can decide which of the next sessions you attend. Yeah, great. So see you soon. Bye.