 I'll try to speak loudly to stay where and let us know of course how can the microphone needs adjustment. So in this short talk it's just the 15 minutes to get you motivated and get you maybe not even just motivated but also to kind of understand physical pictures not just the conceptual picture of scientific computing. So well I mean what is scientific computing I don't know do we need to define it some definition would be the fact of using computers so recently what's the word data science came as a term that is very famous unlike this XKCD cartoon where they're saying you know this is your machine learning system well yeah of course you put the data into this big point of linear algebra and then collect the answer on the other side and if the answers are wrong you just hear the volume so often I cannot say that this is what we do and what we see but you know it is a bit messy it has always been a bit messy but I would say that things are getting you know better and better and I think the issue with the mission is that sometimes we miss the bigger picture including kind of the physical picture where the different bits of the system are so if you think of some sort of a conceptual flow chart of what could be data science or what could be computing or what could be even the scientific process or at least in academia you know there is some data that might come from an experiment or some simulation and then there's some models some hypothesis that you might want to test that might come from the literature or you are you know exploring the data and then there's the process so the process box that you see there is really you know getting the data fitting models especially statistics you know every field has different approaches but more or less conceptually we all agree that this is this is the way I'm doing it and then at the end there are derivatives so outputs that could be reprocessed file result much whatever the statistic and then papers and posters you know and this is what you're supposed to do if you work in academia if you work in science and then and then repeat the loop but what is missing often maybe because it's never thought maybe it's just always assumed that you heard it in high school or maybe you heard it in primary school maybe you heard it in the garden what is the computing happening what it's what's inside of the laptop or the computer where you are so most likely somewhere in your past in your years and your learning years you heard about terms like CPU around and whatever SSD hard drive in general just to remind what these things are so the CPUs that are the central processing unit is where they actually are computing it so that I've got some data that most likely stored in the RAM memory or read from the disk SSD or maybe from remote disk from a remote storage system gets gets a lot of gets you know maybe some numbers or some or multiplied or whatever is in operation so you need to do and then on top of these physical things that you you really have under your hands now if you're typing on your laptop there's the operating system that is managing all these physical resources and on top of that there's the applications that you might be using matlab are Python with spider or Python whatever and then there's the user at the end so here in this to be kind of for the sake of completeness we also added you know just like containers which are like a virtualization layer so that you can kind of you know include the full operating system with full software so that it's you know that I can give you my container so you're sure that you can rely the same thing but without you know if this is somewhat clear or what's happening in your laptop on your computer where you're sitting right now even in your phone actually or in your iPod more or less it's actually the same but it's less clear sometimes it's the bigger picture when we move away from the tiny laptop the tiny you know phone or tablet because our computer needs are so then you know working it's of course you could invest in buying a bigger laptop a bigger machine with most of you more around more storage but at some point things just don't scale it's just impossible to do this so then comes this type of map this type of physical map of the resources it's somewhat physical with somewhat conceptual but it's it's basically present in all universities or companies in recode there was a request in the chat that can you increase the microphone volume it's a full volume I can try to yeah maybe zoom is yeah making yeah I have to fix my microphone is picking up the laptop microphone so yeah but basically what we're trying to tell you here in the first 10 minutes short talk is that it's important they understand the physical map of the computing resources where the data stored and where the computing is happening so if you remember the previous pictures from the local machine from the local disk where you are it's clear that everything is there you don't maybe need to be connected to the internet to load the data on someone is this in practice though many many of these systems today is they still request some code from the internet or some libraries from the internet so it's very difficult to work with the separators on the internet but then we are computing needs are growing the ground is not enough the CPU is not enough and they used to be using software mode systems so in general in our organizations like at all to see a see or many others there are different type of storage system you might have some system that allow to store lots of amount of data but you can understand that the bigger and the slower the system the more data might be you know when the data starts to grow and grow and grow the access see the reading of the data the loading of the data might become my start of the slow and then you need to start thinking where do you want your computing to have so maybe you have a workstation at your apartments and then from home from your laptop you connect to your workstation through remote desktop and you do your stuff there because that's enough for you to have a little bit more powerful or maybe you don't have a workstation to make your desktop but you can use some of those services some of you must like to have familiar with jupyter notebooks so there are websites like jupyter triton service that you can basically request again and know it which is like a computer that for you will run a jupyter notebook through the internet you can interact with your scripts and load the data or then you know the notebook might not be enough no fix themselves or not the most efficient way the remote machine that you have in your office maybe that's also not enough so then you might really want to move your data-saving workflow onto an HPC so later we will talk about parallelization after HPC is connected to parallelization I don't think we even need parallelization because if you if all you need to do is manage big data it doesn't it doesn't really make sense that you slowly copy all this large data set on some external disk on your laptop and then try to work with that and then re-upload everything to the remote system it's you know why don't you just move your code to the remote system get one of the notes that you see here is little boxes from the cluster and do what you need to do as the data produce result and then what we need to move back to your laptop and then maybe the figure the final figure that you want to include in your report so in general I think it's important to understand this picture and maybe Simo you know we want to say we want to tell what the way what do I write here when I say HPC login node why the login node will be very important on day two and three yeah so so usually in this kind of like high-performance computing systems you need to have some sort of like a way of accessing the resources so because like the resources are usually shared among multiple users like because like what Enrico was saying like this kind of like a situation where when you have a laptop that's your laptop when you have a desktop that's probably your desktop but when the resources grow in size they also grow in cost so of course they become shared resources at some point because no single research group or single researcher can anymore afford to pay hundreds of thousands to millions of euros to get a computing cluster for themselves so they have to be shared among university or even like multiple like in case of let's say Lumi multiple countries and multiple universities in multiple countries so they become shared systems and in order to have a shared system you usually need to have some sort of like access point to that if you consider like a cloud infrastructure like Azure cloud or Amazon cloud or whatever they have they have their own web pages where you can do a lot of stuff in there in HPC clusters they're usually a login node where you log into the system and from there you can then submit your jobs into this kind of a Q system that we'll be talking later on so that you can get your share of the resources but basically because everything is shared you need to like work in the system you cannot work in there like completely without knowing how the system works because the hardware limitations cause like how it's set up cause it to have some sort of like system of behavior inside of it and how you're supposed to work with the system in order to get most of the resources into your like in order to access most of the resources if you notice in the picture here I put this sign which is if you have a driving license it's basically you're not supposed to even stop there you know not just parking your car and really stopping really hard and the idea is that often people think okay now I got an account activated for some HPC clusters you see you're driving on the car and we just log into the system with whatever let's say with a terminal and we just fire up your pencil flow or multi CPU Python well what happens is that the process the computing as we were saying earlier it's going to happen in this machine so the hardware of this machine but if this machine is accessed by hundreds of people in there are trying to access the little noise the other machines there you're actually going to stop the work of everything so the login node is a node where in practice you don't actually analyze anything you don't even you know use you go there you stay there just to check you know just to get access to a dedicated node or just to see how your non-interactive processes are are going so you can understand already that we're talking about different type of flavors different type of workflows that one can have some people might be happy to have the kind of local workflow that you know the kind of scientific method and scientific process that I showed earlier can all happen in a single machine because you have small data and you just have a you know you're happy with the laptop or with the desktop that they gave you at your office and that's about it but then often you start to mix your workflow maybe during the development stage you just need to have some sort of interactive workflow because you need to debug you need to plot some of the data but then when you have really lots of data you don't want to run something interactive that stays there for a month just to run whatever learning machine learning process so then you want to submit the jobs that as you were saying the minute that you have a script where doesn't need your attention anymore and you just have a system which is the script we will load some data we do some stuff with the data and we save some output the system will take it with scientific research you can go have a walk enjoy the summer and the speed is over you can look at the results yeah in in in general like because like there's this kind of like a natural law that not everything doesn't scale up it like you cannot make a machine like usually if you make a machine twice as big you get twice as many problems usually so so you have to like split the machine up usually to have multiple machines instead of like having one big machine because then it's a single point of failure and you don't want that so so whenever stuff scales up it becomes more distributed it becomes more distributed but in order to manage this this like that everything is distributed uh there are tools and and those tools are like the q system in the its business and stuff like that but uh in the end everything runs somewhere like everything like scientific computing this in the end it returns to like some application runs somewhere and uses some cpu and some memory and maybe a gpu and stuff like that some somewhere somewhere uh stuff is eventually being done like somebody's going to do the stuff but the question is like how do you manage it and and this is the question that you cannot simply reduce scientific computing usually that you do everything on your laptop you you can in some cases but in many cases you just you you just run out of laptops basically like you can buy another laptop and then and then try to work with two laptops but at some point you just have a have a problem that you cannot it doesn't scale anymore and then you need to like use systems that like the sbc systems that allow you to to to do the scaling but it like enrico said it's important to recognize what what are you currently doing is this the part of the job that actually requires the resources or not and then like figure out which parts are good to do in a laptop and which parts are good to do in a cluster because then it's it makes everything easier for you yeah and basically this was some sort of motivational introduction that you understand the hardware not just the hardware that you have on the your fingers right now but also the remote hardware and when do you need more of computing or around or storage or whatever of course it's a learning process at the beginning you might request too many resources or too little from then you will optimize just as a like a quick example many people are often surprised that let's say the cpus in the computing cluster they they don't have lots of gigahertz like people talk about gigahertz all the time when they talk about cpus like something is three gigahertz something is a turbo frequency whatever and and that's like a like a speed that that tells the speed of the system but that's not how it goes when you scale stuff up like for example even if you have the most like fast laptop do you want to run it constantly 24 hours in your own apartment running like sun hot in your lap like constantly running there in the background and recalculating some stuff no you want the stuff to be run in a compute cluster where it's in some server room it's causing noise there but you don't have to listen to it you just like some server does it energy efficiently like it's also a matter of energy efficiency that like many of these systems they might not be they might have some some of these complications that you didn't think about but they are there for a reason because at some point scaling needs to happen and that happens by doing these kinds of like optimizations all right our time is up the web page you got the link on the on our learning materials it's also not happening it there's a nice collection of list of services for doing this you know you don't need to be at alto or ask you to just see there's many services that can get you started immediately with computing and of course these free services free you know you might have you know services from your institution so you can from alto and check with them the link that we provide with this description of these strategies