 All right recording has now started. So for those of you on the recording, we just introduced Dana Andreessen Dave Turner and Adam Tiger and We're all part of the team getting things together here for Baio shock Trying to and here we have some just initial training what's going on on the administrative side here while we get started Ask you to leave your microphones off your microphones muted unless you're asking a question Feel free to unmute and ask questions at any time or ask questions in the chat either one of those was fine But you know we background noises things like that Like I think we just got somebody with background noises so so feel free to unmute when you're asking a question If you on the other hand if you don't mind it wouldn't I would like it if you would turn on your cameras if you could And if you feel like you don't want to that's fine too But that just helps me see faces as I'm giving the presentation and I can see if you got that glazed look in your eyes Or if you're actually paying attention or whatever. I mean look at it If you if you if you got to go away or whatever turn it off. That's fine I'm getting a I Commute everyone. Yes. I understand that please grant permission for recording. I've already got I'm already recording it Yeah, it's not zoom. It's just my own personal gaze tracking like I said It's just getting some feedback. So if you see something and it's making sense, you know Give me the head nod if you're like what give me the strange look, you know And that's why I just try to keep a look at the screen to see what's going on. So all right, so Introducing what's going on with Bayo shock? So first of all using the reactions at the bottom How many of you say you have at least some familiar knowledge with what Bayo shock and HPC in general is? If the reactions give me a thumbs up there's raise and good. That's most of you. That's maybe not all but a Good portion of you. Thank you. Okay So just a quick layout We're going to take about the first hour or so and go through HPC in general This is not going to talk anything about Bayo shock specifically for about the first hour I'm going to use Bayo shock as an example, but if that's not really where we're what we're looking at here So introduction to Bayo shock first thing we need to know is How we get stuff in and out and how we log in we're well first thing you need to know is to get an account I'm assuming you've all got that by this point. If not go to the support page docs.hvc.wich.dot.edu We have SSH clients I put a couple of these in as being noob safe. That means they're pretty Straightforward you can't really mess them up and I have one of those here online I use MOBA X term and I'll show you why I like that. First of all it does both an SSH client and It does SCP or SFDP that that is the file transfer to get you in and out and I'll demonstrate those here real quick. I'm going to go over to MOBA X term And you can see I haven't even logged in yet. So I'm going to log in Actually, let's go ahead and create a session here So I actually took my session out for Bayo shock. So I'm going to create a new session SSH It's HPC-login.wichita.edu I'm going to specify my username Which in my case is Y6982262 and That should be all we really need to know. So I'm logging in there. It asks for my password I'm going to cheat and use my password manager from another screen and I'm going to paste it in there And now I'm logged in. Now, you notice when I pasted it in It didn't show anything up on the screen. It didn't have any stars. It didn't have any asterisks anything like that It just goes. So now I am logged into Bayo shock The nice thing about MOBA X term is now I have a session here that says HPC login with this name So to log in again now all I need to know is my password. I double click this and I'm sitting it knows who what my username is it and the host all I have to do is paste my password in there I've pasted it again. You don't see anything on the screen until I hit enter. I hit enter access denied Wonder if it lost my copy here just like I'm recop my password again. Yep. Must have there we go So that's what we need we need an SSH client on Linux and on Mac. There's already a terminal application built in. I also have another session here This is a using WSL the window system for Linux Substance for Linux. This is giving me and a boon to so if I'm at a boon to screen Same sort of thing except I just have to type it from the command line. It's SSH by 698 262 at HPC log in dot Which taught I'd eat you that type of something. I actually tried this earlier and it worked Cut set up. It should do the same thing. I don't know what I typoed there But it's going to the same place and again. I must need to recopy my password paste There we go, and I'm logged back in That's how we get in and everything we do here is all command line. You notice There's nothing much I can do with the mouse mouse is only used for copying and pasting So if I highlight this in MOBA X term and then right-click a paste that same thing So I copied that automatically just important and and face it back in but other than that There's really no graphical capabilities here and that's pretty typical of an HPC system There is some things we can do to get around that but we won't get into that for right now You need a client to transfer files in and out you can see these are my files over here This is why I like MOBA X term as opposed to putty or some of the other ones And that is because I can actually drag and drop files. So let's see if I want to take this file right here. I Can take and drag it come on bring up my Because I got this in full screen mode Back all tab. We're going to get back to another screen here Explorer so I can take and I'm not in full screen mode There we are got that get out of full screen mode there and I can Take this file. I can drag it down to Windows Explorer and drop it right there Not in my quick access. It won't take it to quick access. I Can drop it into my downloads for instance And you can see it follow it just downloaded the file and there's that file that I just Brought down. That's probably the one of the easiest ways to get in and out There are directions for using SAP SCP from the command line If you're on a Mac file Zilla works really well for that MOBA X term is only a Windows program. So we like to use file Zilla on a Mac and file Zilla is also available on Windows to complete that file And go back to our presentation The first thing we're going to need to know about to work on an HPC system is some basics about Linux And it just so happens I we do have some documentation here for Linux basics. I Was getting there Adam. I was going to say that to the end So There there is on-demand which we're going to demonstrate right toward the end Is kind of an easier way of getting files in and out and and of doing Logging in a few if you just have a web browser for access This is our next basic page on the On the on the Beo shock wiki again docs.hbc.wichita.edu. This is a wiki you log in can log in with your WSU ID credentials and change it. So please feel free to do that. We we want this to be better. I Am not the best writer in the world when it comes to like Organization and that kind of thing. So if you see something here that works better, please feel free to go ahead and do that. So Here is the How to log in again, this is using this is telling you where to find the tools Give you some basics on how to transfer files in and out if you're not using a graphical interface and we're going to need to know some basics about Linux First thing we didn't know is some of the terminology a directory is what we call a folder a directory is Where files are found in the file system? We call that a directory in Linux. So I kind of use the terms Folder and directly direct directory interchangeably It's just a spot where files are stored and if you look back here at my own you can see that I have Couple of directories here. I have a bin directory. I have a GPU burn directory an intro directory that's where I'm going to put my stuff here from today and a Director so that that's kind of a folder now like I said over here I can click on it when I'm here if I do a file listing which we do with the LS command all it shows is The names of all the files and folders in there And you can you if you know what you're doing you can kind of tell the blue wins are folders the green ones are executables And the white ones are just plain files So if I want to change the directory, I want to CD space intro And then I can do tells me I'm in the intro directory So I'm looking in there now and you can see that I have a couple files in there that are Executable screen. I want to tell more about this. This is this is what I really wanted to show here is LS dash L and what I see I see this gives me a whole bunch of information about The these files in this directory The first or what we call the permissions These you'll see this a the first One here is a dash that dash means it's not a it means the plain file. It's not a directory It's not a link. It'll be a L from link and and a D for directory. Otherwise the plain file This next set you see RW X are Nothing X are nothing X. These are the permissions of the file What these are is either for the three groups of people that are involved. This is for the user the the person who's who's the owner of the file They have read write and execute execute capabilities on this. So right now I have read write and execute abilities on this file my group Has read and execute but not right and The rest of the world. This is anybody who has Access to the system has read and execute ability, but not right. So if you were in my directory, you could execute this file You couldn't write over it, but you could read it and you could execute it Now I said user and group that is all depend on this part. This is my WSU ID So that's who has the read write and execute permissions Actually, let's do this too. So you guys can see this a little better. Let's that better Don't strain your eyes quite so hard the This is my user ID and I'm the one that has read write execute This is my group by default all your groups is your user ID With underscore users and you're the only person in that group and we can't change who's in that group If you're on a system that you own you can go ahead and change that so right now You're the only person the group. So user and group right now are pretty much synonymous with each other We are we do have a way of getting research groups in here. So you can set your group to be a A Particular research group. So if we had I don't know a physics class or something like that We could have we could set that as your group and then we could change that permission So the group would have permission without having everybody have it and then this last bit like I said is the entire world This next part is how what is the size of the file? So this is 8,064 bytes and it tells you the last date and time that it was That it was created So this was Yesterday two days ago. Yeah, two days ago at 2 30 in the afternoon. I created this file. So that is a Super-duper quick rundown of users now the one thing we see more often than anything else is People that don't have execute permission on their files when you transfer a file over it might not have execute permission So for instance, I'm going to CD which is change directory And I want to go to my home directory. So that is a My keyboard is hidden. I can't see my tilde. There it is a Tilda is the name of your own home directory. So I say CD Tilda that gets me back to my own directory So if I look here, you'd see the same files that you saw That when we first got started they are Again these directories I can do the ls-l you can kind of see this that you got the d over here for directories And pretty much everything has the same permissions read write execute that kind of thing these don't have any execute permission So if I wanted to execute one of these That's not a good example. Let's make a new file I'm going to use nano here to begin with Nano is a very easy file editor. And if you want to use edit files, I would suggest you use that to get started If you're going to be using a lot of file editing on Linux like I do I use VIM and I highly suggest that it has A learning curve somewhat akin to a brick wall You will like the most common question ever asked on Stack Overflow is how do I get out of VIM Because once you get in it's not intuitive at all. However, it has some really nice features, especially if you Not used to using a if you can't use a mouse. Yes Right rex. He knows the answer. He put it in there But you also have to push the skate first. Don't forget that it's gate first So now I know I'm going to create a test file .sh and I'm going to create this file and run the hosting command I'm these Carats at the bottom mean control so I'm going to exit it with control X Save yes File name to write test file that sh so Now if I try to run test file that sh which I do by running dot flash That's file that sh It tells me permission denied because even though I'm the one that wrote it. I don't have permission because if I look at it That's file that sh does not have execute permission So I need to change that to give myself execute permission. I do that with the ch MOD change mode command Plus X Yes, that's another way of doing it And now if you look at it now, we've added that X on there So now I can run test file that sh and it tells me that I'm running on that no, no one There's a lot of tricks to the permissions here as John said in the chat you could do ch mod 7 5 5 what that is this is you can think of these as binary numbers here So this is a this is worth one this is worth two and this is worth four So I want if I want read write and execute we add one two and four that gives us seven this one is Four plus one if we don't let everybody else have read access so they have Four plus one that's five and the same thing with this last group the four five five We do talk about that on the support wiki Of some some things we can do to figure out where we are and and how to do this So let's go through a few of these commands here together First one print working directory. That's telling you where am I now so if I say PWD It tells me I'm in my home directory of home why six nine eight g two six two if I change to my intro directory that I was in a little bit ago PWD Now I have my prompt to set so that it shows the last bit here Do I even have I don't think I have anything that was sub directory sub sub directories in there, but We can Especially if you get way deep and you put sub director inside sub director inside sub directories you can get a lot of those in there and You lose track of where you are so PWD is the command that shows print working directory These are kind of cryptic. These are all back from these All these tools are written back in like the late 60s and early 70s when space was at a premium so It was People were Saving as much typing as possible. So that's why you have names like PWD for print working directory a list and Is LS as we saw before and LSS LH is also interesting because it will tell you the size in human readable format So these are only 185 bytes. This is 1.2 K, which is kind of the way we think of files in K Yeah, and as is also who would want to type print working directory all the time exactly Go back Changing directories is with the CD change directory command So we can say we can get back to my home directory by doing CD Tilda Adam what's your WSU ID? He's not gonna tell me these are people there. We are he told me here Ah Took the wrong place. So he has this copy So I can say CD Tilda and then His WSU ID He hasn't locked down. He has permission to deny it on his but that is saying by putting the the Tilda and The user ID. He said he just told me it's unlocked. So I do it again Apparently not still have permission denied. That's okay We can But that's how you change to somebody else's directory So if you have like a working group and you want to be in somebody else's home directory, that's how we get there is with CD and Tilda name and then their WSU ID I'm guessing from whoever's permission. This is But it's probably open So who I'm not sure who this person is but they've opened their files up Look like they've done some of the same kind of things. I am the hello MP Yes, that's an example that I use a little bit ago So to be able to change into a directory you have to have execute and to be able to see what's in the directory I'd have read so directories are a little bit strange on on on permissions That is all covered On this page though We can CD dot-dot to get to the parent directory. So right now I'm in My own home directory CD without anything by the way This is something that didn't happen in the old days when I learned but CD without anything bad like you see right I did above that takes you all that's the same as CD With the Tilda to your own home directory. I could do CD dot-dot to go up a directory And I can do CD dot-dot to go up another directory. So now I'm at the root So this is everything on the whole file system and so I do see the inner again. That takes me back to my own home directory And I can see where I'm at there. There are hidden files in here. We didn't show on this part So let's look at my files if I went here Go up a directory. Nope. That's upload the wrong button You can see that their files should have to begin with a dot anything that begins with a dot by convention is not shown so If I do LS dash AL that shows me all including hidden files. There's nothing hidden Like in Windows where you can't get to it and that kind of thing They just we just start files with a dot and that says hide them from me unless I'm specifically looking for it So now if I do a LS dash AL that's all files with a long listing You can see That we have all these others like my dot batch history. That's that's file. That's What the font the all the commands I've typed on the command line show up in there my dot bash profile That tells some of the shortcuts. I want to take whenever I first get started And so on and so forth. So there's things that like they are usually hidden from you, but you can see I have quite a few Hidden files and folders there the dash a helps you on that Working with files. This is some useful stuff here If I want to see what's on the side of file, I can use the cat command So let's do cat What was the one I just made this test file? Yeah A nice nice another nice thing about bash is that I mean what I did here is I started typing cat And I started typing test file. I got this far and said, oh, there's probably not any other files Let's start with TE so I hit the tab key and since it's the only one A Files that begins with TE it goes ahead and autocompletes that for me So I said TE and I hit tab and it says oh, yeah, that's the rest of that file It's kind of a it's a big time saver if you're typing lots of things Especially for changing when the way down deep end directory that kind of thing so I use the cat Well, that's for concatenate you it'll concatenate several files together if you want it to But cat will just show the contents of the file Another useful one hit. Let's see. Do I have a longer file here? Not really There was a nice what they call a pager in the past called more This is probably the yeah speed test. There we are speed test is a longer one So this will is a Somebody's got echo on there So we can take a look at this and as you go through more you hit enter It'll go down one line if you have space it'll go down a whole page of time So that way you if I was to cap the file All you see is the very end because it just blows through the whole thing real quick That doesn't do as much good. So I use more Speed test out of PY and now I can now go through it And I can say I can go through and look for what parts I'm looking for here And I see what I want now. I want to go up That's a problem. More doesn't do that. It only goes down at once so Being the smart people that we are we created another file called less Because less is more right so less speed test up high And now that lets us do page down page down page up and I can go back to where I was It's a much better way of looking through an entire file So that's a that's a useful one to know cat and less are are ones I use very frequently Copying and removing okay So let's take this file and I want to make a copy of speed test up high because I'm I'm making I Want to make some changes to it But I don't want to run my original so let's make speed copy speed test dot pi to speed test new dot pi and Now you'll see I have two of those I have speed test and speed test dash new both with the same Size so those are identical files now, so I just made a copy of the file I didn't like the name of that Speed test that's new. I don't like that. I don't like the hyphen there. So I'm going to rename it. So Renaming is not Rename it's moving. So I move MV again. Everything's really small files every small command names move speed test dash new dot pi to Speed test to dot pi and now it changes that for me And now I've decided I don't like that at all. I'm going to remove it matter of fact I'm going to remove both files. I'm going to move speed test to and I'm going to remove test file RM is the remove command Now those are gone questions comments night remarks Backups, what about backups? Oh the the dash I Yes, we have that on here. I Personally, I don't think about this much because I don't use it a lot but Can we run Jupiter on it? Okay, you run a Jupiter notebook strip. Yes, we're not talking about that just yet If you accidentally remove something we don't have backups right now, so if you accidentally remove something it's gone We are working on that. We will probably have backups. We are working with the University of Oklahoma to get tape backups To a certain point where we can get tape backups elsewhere Basically, it costs more to backup than it does to actually have a file system. So that's the reason why we don't have backups So if you accidentally remove a file, I'm sorry, I can't help you I wish I could but I can't one thing that is useful though to know because I've done this before I'm pretty much everybody's done this before so I'm going to make a directory called temp here. I'm going to copy Dot dot flash all the files start with L All the start files start with M I'm on demand as a director. Okay, so I copied all my all those files from my home directory. So I have a copy here I Changed attempt and I have a copy here now. Let's say I was wanting to remove files. We use what's called wildcards so I can say RM M prime star and that's going to remove all the files that start with M prime so that file and That file and yes Samuel asked if you wanted if you actually wanted to move a file you just specify directory Yes, we can specify directory and as a matter of fact the dot is a shortcut for the whatever directory I'm in so actually the last thing I put on there was move it copy all those files To here MV would work exactly the same way so I could move it from all those files to here I was wanting to make a copy this time instead of moving But you can do it that same way So we use wildcards and we removed M prime Star and Now it removed just those two files if you compare What was up here? You'll see it's just missing those two files because it deleted all the files that started with M prime Our wildcards the same as regular expressions Very similar Regular expressions will do a little bit more than just plain wildcards basically limited just to the star and the dot in for wildcards So what I see though, I'm going to recopy those files From Before so now I'm back to where I add it. I'm still in my temp directory I want to make sure I do that because I don't want to screw this up So I'm still in my temp directory. I have all those files that I copied from before and let's do the same thing I did before I want to remove those m prime files So I said RM M prime space star I we see people do this this is probably the biggest mistake we see people make What that's doing is that saying remove M prime and then remove star which has removed everything So now I have no more files left. That's a very good very good Explanations that no Bass uses blobs which has a similar syntax So make sure when you're removing things with wildcard Be really careful if you need to move things one at a time or you might want to use a tool like this where I could Select Those files and I could right-click and say delete those It might might be better for you if you use a graphical tool that kind of thing and Adam just posted a link in the In the chat for Lobbying references Now I want to remove the directory itself. So RM can't just remove RM. Yeah, RM DIR for remove the directory And now I'm back to where I was before again nano is what we wanted what we Used from editing files to begin with if you'll see me do it you probably just because I'm used to it I'm going to try to remember to use nano when I'm here but if I'm you going to edit a file I'm going to use VI so If I was dead at a file I'd be using this it looks a little different and Use kind of a strange syntax but like I said if you're going to be doing a lot of editing now A nice thing about mobile X term is you can actually edit files Straight from here. So this local dot text. I don't remember what I did with that But I can say open with the default text editor and it actually downloads a copy to my machine. Oh Good nothing. I need so I can type new stuff in here blah blah blah and I say save it It asked me if it says it's been modified. Do you want to replace the remote file? Yes and now If I look at local dot text, it's got that blah blah blah at the end of it so Mobile external is also has a built-in file editor that might be more useful for you If you're if you're on on Windows Your path is a is it another thing that's really useful to use Your path is where I'm going to look at files when I when I go to execute files, so If I echo if I look at my path right now, which I can do by saying echo pass That's going to tell me everywhere that When I when I type a command when I type for instance Python Where does that look for Python? Quit it. There's silly things like that So that's going to look in My own been directory because I put that I told it to use that one It's gonna look in user local bin It's gonna look in user bin use a local S been and user S been those are the default file locations except for this one this one I added on myself, but all the others are are The defaults so if I wanted to run Mprime.sh and I type Mprime.sh people on Windows are used to being able to do this I'm in that directory. I run it and it says that I didn't find it So that's kind of a pain in the butt What we're going to do is we have to tell it explicitly to run from a current directory So we do is we tell it starting with current directory, which we said the current directory is a dot flash Mprime.sh And now I'm going to quit it because it's Going to run a lot more stuff and I want to run on on a head node right now Mprime is just a as a Mersenne prime generator. It's a good test for speed of a How much working get out of a CPU? So I use it when we want to When we want to test things out and kind of torture test things You can edit your Bash RC or your dot profile and change those paths in there We'll talk a bit more about that when we get to modules, which we're probably getting close to you here File transfers file management Bash Permissions okay, good. We covered all those you can tell I kind of sort of follow my outline But I don't pay a lot of attention to it so super competing In general that's kind of a that was kind of Linux in a nutshell so now super computing So this is the time for your mic to come on you can tell me what defines a super computer Dan no telling you're the I get this from you. So you can't you can't tell Somebody tell me what's a super computer what defines a super computer? That's a question you guys supposed to give me answers parents Can I pick on you you've been a you've been on a super computer before what defines a super computer? Might he told me I did something else to be you might have ducked out You're multiple nodes can do fellow processing That's that's a piece of it Super computers really are defined by big and fast That's Really, it's it's whatever is the biggest fastest computers that are around right now and The way we do that is is like I say by by using multiple nodes and that kind of thing, but Super computers when we talk about like the big super computers when I go to the super computer conference And we talk about the top 500 which is the fastest 500 computers in the world I mean, they okay hasn't even made the top 500 and it's ten times bigger than Bay of Shock So it's They're talking massive massive parallelization you're having multiple computers working together as As one so our definition of what a super computer Changes it what a what a super computer is that our definition changes all the time based on the current time So I like to tell the story of back when I was in the middle school The Cray-2 was the fastest computer in the world by a long ways and it was the world's fastest super computer And now we have an iPhone 3 which has about the same amount of processing power as this as the Cray-2 Doesn't seem real impressive as far as computing power anymore So you wouldn't want to run any real calculations on it because it's not too impressive as a super computer anymore What types of problems are solved by super computers go ahead Tell me what tell me what you guys as researchers and what you're going to be using your super computer for Are we wanting to have a kiss Abacus what what does that do what what kind of problems is that solving? package Okay Somebody put ls dynast for simulations Can we run analysis modeling programs like commsol? Yes, we actually have comms. We I thought we had commsol. Do we have commsol at them? We don't have to talk about it yet. If not, we if not, it's no, okay So we have it on bao cat which means that with licensing information we can get it on bao shop So we know how to make it happen. We just haven't yet 3d computer 3d computing on model. Yes Oklahoma uses there's a lot for weather forecasting We have people in Nebraska do stuff with the large hadron collider. They're doing physics modeling Yes, somebody somebody put in the chat there. You can run software as long as you have a license for it Bao shock will not provide licenses. We don't have we don't have budget for licenses stuff um So we have chemistry modeling. We have molecular analysis. We have DNA sequencing and genomics research all sorts of things molecular dynamics fluid dynamics all those things we Are kinds of things that we Do on supercomputers How big can you go anybody know how many cores are in the biggest supercomputer in the world? Over 10 million cores I don't even have any idea. How do you start programming for 10 million cores? That's that's ridiculous, but one of the differences between a typical supercomputer and what we do here is that When you run a computer on your own machine or run a code on your own machine You want that to be interactive. You say go and your computer starts working on it In a high performance computing situation, we're looking more at what we call batch Instead of saying go do this now. You say I need this many resources. Fit me in when you can So Uh, let's say I have a job that takes Eight nodes and it's going to last a week. So I tell the scheduler that And the scheduler fits figures out a good place for me to fit For my job in among all those of the people now right now Bao shock is pretty empty. So we're okay right now If you submit a job for eight nodes right now, you'd probably get in pretty quick I can tell you that if you submitted a job that big on BaoCat on our system at K-State it would Probably be a week or so before you could get that many resources together. And so it trying to fit the scheduler's job Is to figure out when is the best time that I can get all these resources together And can I fiddle in a whole bunch of smaller jobs as opposed to the big jobs now? Supercomputers and high-performance computing in general is meant to do those one big jobs meant to do very parallel jobs you might use, you know 50 machines at once if you're running something big at TAC or something like that you can TAC is the Texas Advanced Supercomputing Center. It's the biggest academic supercomputer in the world It's about four years ago. I got to go Visit it. It's a nice job To visit it. It's an impressive facility. I think they have 180 racks in just one of their supercomputers. It's ridiculously huge But they're made to run all those Those very large simulations Very quickly What we actually see on BaoCat is somewhere about 80 percent of our jobs are actually very small They're running a small amount of resources They're just doing a whole lot of them So pram doing parameter sweeps in r is probably one of the biggest things sometimes python where You're running a whole whole whole bunch of smaller jobs instead of one big job There's nothing wrong with doing that We do have other resources if you're doing those Few hundred thousand things and it looks like it's going to take a long time even on BaoShock We can get you hooked up with open science grid Something like that to maybe even offload that a little bit more. So that's just something else to think about But there's nothing wrong with submitting lots of small jobs either You know, if you're working on your own laptop running one simulation might take 20 minutes But if you're running a hundred thousand of them, that's going to take a while So if you can spread those out of a lot of quarters, you know on BaoShock so much the better That's what it's here for it's a resource for that purpose Parallelism I'm got to get I forgot how far I was going through here. So parallel programming is hard and Parallel programming is hard I'm going to I'm going to go through a few programming examples not because I'm expecting to teach you guys programming That's way beyond the scope of this But just so you guys can have an idea Of how this all goes together Parallelism is how many things you can have it doing at once and I'm going to emphasize this No system can make your magically make your programs run in parallel If your code is not written to run in parallel, it won't run in parallel no matter what system you throw at it So we've had people You know asking for ridiculous amounts of resources on baocats Their stuff have run faster and they find out that it only runs as fast as it does in the laptop Because it wasn't ever written to To be in parallel to begin with so here's some parallelism examples Uh some math problems. We're doing some very basic math here. Uh given a to the end Yeah, dang it Uh If we say b of n is 4 a n is that How how hard is how easy is that to parallelize? Again, this is I guess questions you give answers How easy is that to parallelize if I? Uh Could I put this on multiple machines could it and give it a range could it do that? Pretty easily. This means just this means no Yeah, because it doesn't matter what your a is It doesn't matter what your a is Your b you can compute that completely independently of what What a is so I don't need to know any other a besides the one I'm working on to know what this value of b is Here's a lot more complicated example I just started making up things here, but you have again this the final value you're looking for is some function of a of the n a of n a of n a of n So even though it's a lot more complex It still is very easily parallel These are programs that we call embarrassingly parallel is the terminology we use because it doesn't matter you there's Really nothing we need to do with it. We could take any set. We could run it anywhere We could throw it back then we have our grid done where we're finished We know what all our b's are once we throw all raised out there Now when we have some initial conditions now we say The speed that we're looking for is some function of a minus B to the n minus one that means that has to have known what the previous value is That gets even though this is a very simple math problem. We can do it on paper pretty easily It becomes a lot more difficult because I'm to run on the computer because you have to know the previous value So Typical usage we see a lot of times is that we'll take a bunch of things that can be computed independently So a lot of parallel programs will run some some of these zero parts So they can it can only run one at a time and it'll only run a little bit And then it'll say okay now you go do your thing and it'll run on lots of quarters Lots of machines at once and then it collects all that data and goes back down to just one And it might even do that two or three times go out and out use a whole lot and then only using a little for a while That's pretty normal This is a really good Information page supercomputing and plain English. It's from Harry new Harry Neiman in Oklahoma University of Oklahoma a couple of these i'm going to put this out on this slide show On our wiki when we're done here so you can see but Why running on a supercomputer won't always make your One won't always run faster as a matter of fact there it is quite plausible that sometimes your Laptop will be running faster than on a supercomputer for an individual run A lot of times laptop chips are Even faster than what we have for an individual core They can't run as many of them once but any particular one job that you're doing might actually run faster on your laptop And there is a virtual tour of a data center At that link again. I'll put this on the wiki when we're done so I'm going to go again. I'm going to go through basic basic basic parallel programming here Just so you guys can understand this back in my day. This is when I was an undergrad. This is the only thing you could do It makes a complete Duplicate of all address space and make new processes to pain in the butt. Don't do it if you don't have to But for programming now these are what we look at we look at parallel programming as open mp is Is one of the most Common ones we do out there I'm going to just make I even have this. I think somebody else had it out there that omp. Hello so i'm going to intro omp hello.c So first thing I need to do to compile this is I need to Load a module so I have programming tools Joel load gcc Actually done the open mp If I remember this So I now have loaded this now what's interesting about that Is remember we looked at our path. There's a lot more in there. So it knows where to find the software now So gcc dash f Open mp omp. Hello dot c And now I have a file there called a dot out And if I say a dot out If I let's look at this real quick This is a one page program here It says do all these things in parallel It's going to get the thread number. It's going to say hello world from thread and whatever Only the master thread does this so if you're if it's zero then it prints the number of threads equals whatever So now I do dot slash a dot out And you see it says hello world from thread And all sorts of numbers are those in order? No, they are not they come in whatever order. They just happen to be executed in And if I do it again, it's not going to be the same order. So watch the screen and Different numbers this time the number of threads is 72 now Where did that 72 come from? Because we have 30 scores on this box and we have hyper threading turned on so Open mp says oh you have 72 cores available when you're running on Bayo shock You don't want to have the whole Thing available. So what we can do is we can just say o mp numb threads equals four slash eight out And now You've told it only use four threads So now it has zero one two and three and again Non-deterministic and how and when those all come back also The reason I say that is because a lot of these times you'll be asking for A lot of codes that you're using will be using open mp under the covers And you have to tell it To use the same number of cores that you have available. So I've only requested Four cores and it tries to use all 36 that are on the box That's not going to work out really well. So I have in here Like some quick little code that you can do we can say export this we can say In our shell script that we submit And this is getting a little Yeah, it's hard to know where to where to say this is Bayo shock specific and this is uh Super competing in general. So I'm going to do this right here if I o mp example I can either say export o mp numb threads equals 10 And I can s batch o mp example Submitted the job since there's probably nobody on there. I'm guessing it's done So now I said tell me there's 10 they use 10 threads If I'd use the other way here, it's kind of slick This is just some quick stuff. I put in my shell script beforehand Is I look for a variable called slurm cpu's on node. That's how many that's how many cores you've requested And I'm saying if it doesn't exist then sub to otherwise Set the o mp numb threads as As the number of cores that I've asked for What that makes it slick is that if I run it on a head node where I don't have that I have two but if I do s batch Uh, forgot the right terminology here cpu's equal 10 cpu's per task there we are I can type I submitted that job And now it used 10 because I asked for 10 threads I could ask for or 12 Actually let's ask for five And now it had five because it's saying it matched that o mp numb threads, which is it's the important environment variable To define to whatever I asked for so that way I don't have to think about it anymore I can now I can try scaling it up scaling it down fairly easily Uh, mpi again, I'm going to make this real quick. I'm not even going to have an example of this mpi is how we talk between Different nodes. So if you're going to have something that runs over more than one node open mp Will run multiple cores on a node mpi will run across different nodes the message passing interface It's a it's a spec. There's multiple implementations of open mpi. The most common one is open mpi I'm not going to go through this stuff. This is blah, blah, blah Okay, so yeah What what we get about uh with mpi with going between machines is that Uh, we can have people on portran and c and python and r all have implementations of mpi Because it's a spec. It's not a particular program. Uh, you can have interactions among different machines You can collect data and you can scale data really well Uh, it is much more difficult to get program to get started Programming on that end of things again, I'm not trying to turn you guys into programs. This is what Has to be going on really under the covers for any Program any codes you're running that'll run multiple nodes So that's why one thing you need to find out especially on your commercial codes Is find out if they're running an mpi so they can run on more than one machine at once because that's where We really get the advantage of running of having all these nodes at once on beo shock Uh, not efficient for small amounts of data. So usually they're working with really big data. So it's really big problems coding again with complex And we now have open mpi Which is an mpi implementation Um, don't confuse it with open mp. Open mp is multiple processing mpi is message passing interface We have both on our system and open mp and open mpi So try to just make it as difficult as we can for you guys uh queuing systems. We talked about the scheduler that is trying to figure out where to put things and When you centralize those resources that makes them available to everybody That if you buy into a big system It turns out that the expensive part about running a supercomputer is not the hardware It's having adam and i there to figure out what's going on and to you know Keep security patches update and keep your software going and that kind of thing and when you hand your keys to a grad student And he graduates and now nobody knows how to run the system anymore and that kind of thing. So It's it's a lot more beneficial to we found for a lot of people on our campus to buy into one big central resource Than to have separate ones Now let's take about a five minute bio break. I've been talking for a long time here We'll just do this We'll make a five minute timer here go take a Take a break get away from the camera a bit if you want. I might stick around here if you want but uh, let's Go stretch your legs get a cup of coffee. Whatever you need to do at this point We'll be back here in about five minutes And if anybody wants to turn on the microphone ask questions feel free But don't feel I don't matter if I call pauses All right, we're back so Now we're going to get more into specific about bio shock itself First of all, you already mentioned the wiki here use that as a wiki Please improve our documentation. We would love it if you improve our documentation How to get an account that's the very first link you see here beyond the what it is so you need to get an account at this Uh Slick them all up in the chat So that if I'm assuming most of you guys have accounts at this point if you don't It's pretty easy to get one. There's a committee that determines Get to all that kind of thing. Can you clarify which software we have on bio shock and how they can get their software installed? Okay, so we can go over that real quick. Um, Let's go back here and what you can do and as you can look at module avail Module is how we load software on there And you can see all the software that we have So if it's listed here, we have it If it's not we don't Um, so here's the ones we've asked people to ask about scala pack, sci-pi tensorflow Gromax is on there Hgf5 I know if people use that Graphic stuff, java So if you need software installed on there, um, again on the wiki From the wiki, uh, there is installed software page right here And this talks somewhat about the the tool chain that we just talked about Java, python, there's some special things to do with Python in particular So if you're going to use python, that's a really useful thing to go on to here But at the bottom there's a thing on license software Uh, two things we have to have for license software First of all, we have to have the install media uploaded to bio shock We don't, you know, we can't install software unless we have it, you know, whether that's your The dvd, uh, image of the dvd, or if they set it up in a tar ball or something like that We have to have a copy in there You need to know where you saved it and we need to know about your license server We don't provide any licensing So what you do is just send email to hbchelp, I think hbchelp is on pretty much every page on this wiki I know it's at least on the front page on how do I get help? Uh, mail us at the hbchelp at camren.net So that's that's your one Stop shop for email support Feel free to email you can email from anywhere in the world to that address. So, uh, if you have questions about it, that'd be the place to ask Logging in, we already talked about that. It's the, uh The using the SSH client mobile X term or a terminal Session, putty on win, so putty tends to be the most popular Putty on win, so putty tends to be the most common one used on windows I don't find it as user friendly as mobile X term So I don't use it as much. I when I first started I use putty for years and years and years and the mobile X term came along and I said, why would I want to go back to putty after that point? But those are the The ways we get into Running your own toolkits and running jobs in the head now. Okay running toolkits that Gets to be back to where we were before this Is he complaining about nothing? Okay? um And dan just texted me he said he uses Putty and when when scp there's a lot of people to still use win that you still like putty personally, I like Mobile X term more but again, whatever works for you. That's a nice part about it Somebody did we were talking about some accessibility issues apparently mobile X term is not friendly for the uh The seeing impaired and such the screen readers and all that didn't know that for some we've ever come across that And putty does a lot better with that um, so running your own Toolkits if you're in compiling software you saw what I did earlier how I loaded up modules so module avail Will show all the available Modules and when you load a module it lets you run the programs already pre-compiled already set up right for bail shock Ready to go for you. So There's lots of them we already have The ones you'll see probably most common are If you're running your own back over there again I hit the wrong button Foss and Foss CUDA That's free and open software free and open source software and GCC GCC is the canoe compiler suite Those if you're going to be running your own software are really useful And that's what I did whenever I compiled that program. I did a little bit ago as I loaded GCC If I look at Now module list I loaded GCC but when it loaded GCC It said oh to load GCC. I need GCC core. I need zeleb and I've been utils So automatically loaded those If I want to start over again module purge Now I do module list and all those things go up went away and also Since I did that module purge If I look back at my path again, you notice I'm back to the basic ones that I started with So that's one of the nice things modules do really nicely for uh Getting stuff getting getting programs loaded in out cleanly all that kind of thing I'm guessing probably very few of you are going to be writing software if you are you're probably going to do it In probably pearl or python or java or r And we do have sections of that on The wiki under our installed software Those are the most common ones that we see people using and every one of those has a section on here Of how to run those jobs because some of those can be a little bit tricky some more than others So you can feel free to take a look at that if you're creating your own software I'm guessing that's probably not the majority of you. Most of you're just wanting to run to run your own software Again, if you have more software that you want want to have on there Send us email if it's commercial software. You'll have to upload it also Um, and adam does mention in there Uh Okay, there was a question in an answer Does someone involved with Bay of Shock write the module file to the modules are they available in a public repository? And we we use easy build We can build our own easy build files. Generally, we try not to So If there's an easy build file for it That makes it pretty easy for us that if you just do a google search for easy build in the name of your software and if that exists then Getting it installed is probably going to be a going to be pretty easy running jobs on the head nodes now head nodes are meant for light prep work So we don't mind And as a matter of fact, we prefer if you're doing small amounts of files just to do a proof of concept like I I did that one there. I did the I'm already in the directory there that uh omp dot slash a dot out And you saw that I ran that that was something I compiled here myself on a head node Running that on a head node doesn't hurt a thing that took a couple seconds Even if it used all those threads on there no big deal Generally head nodes are for small amounts of data just to give you a proof of concept. I made sure that my program ran here If you're going to run anything that takes a significant amount of data Then we want you to submit that to job submit that as a job to the scheduler However, like I said, if you're just wanting to approve a concept you have something's maybe run one core for a couple hours and uses A couple gigs of ram Go ahead and run it on the head node. It's fine. You can do that That's that's what the head node is for is for those proof of concepts and from some basic small scaling But once you get anything significant beyond that point, we do want you to go ahead and submit a job Um, there's a couple of the ones that we have for modules gromax lamps open foam Uh already went through See I got ahead of myself the module avail module list module purge list shows what What you have loaded right now available avail shows what's available and purge gets rid of what you have so you can start over again so What happens when you submit a job? like I said, we have a scheduler called flurm and That uses a command called s batch. Yeah I'm trying to highlight things and it's going ahead on me. So Uh, we have the s batch command. So I'm going to use a common example that I use quite often for For demonstrating this so And I that is the host name command. So if I run host name That just returns the full name of the computer that I'm on I'm on head node o one that bao shock. Which side of you That bao shock to which side of you used all stuff we use internally to bao shock So that's how it sees its host name is head node o one Stop bao shock that which side of you Now if I say which host name It's going to tell me that is user bin host name. If I look at that that is actually an executable file Executable files cannot be submitted as To the scheduler you have to have a script and a script is just a is a batch script is just a A series of instructions that tells it how to run a program So we're going to use the very basic most basic thing we possibly can to begin with and i'm going to create a file called hostname.sh Every script file has to start with what we call the shabang which is a a Hash sign and an exclamation point And then what program it's running so bin sh Or bin bash doesn't matter That's the the shell we're going to run under. I kind of touched on shelves. Maybe just a touch Bash is probably what 90% of you are going to use And then it's going to run Hostname So there we are I started the script. I'm running one program done So I created my file and what happens if I do dot slash hostname.sh Does it run it? No, it doesn't because I didn't make it executable so Again, make it executable And now I do dot slash hostname.sh And it has the exact same result. I opened up a another shell and inside that shell it ran The hostname command. So now I have a script And not just a program and a script I could submit to the scheduler So I do that with the s batch command. So I'm going to say s batch hostname.sh And when I do that It's going to say submitted batch job 4 5 2 8 0 When I submit that job, what it does is it goes in and it says can I fit this in now? Do I need to wait till later? This is a pretty small job. So it's going to just run and I'd be really shocked if it wasn't finished already and the way I do is I look at this And you'll notice I've got a couple more in there, but you see that 4 5 2 8 0 That that was a job number. By the way, when you're asking for help with programs We really want to have those job numbers. That helps us a lot You'll see Flirm 4 5 2 8 0 dot out. So if I do look at that file cat Learn 4 5 2 8 0 dot out You can see that it ran that when it ran the hostname command. It actually said compute 2019 01 So that means it actually ran on that node the node named compute 2019 01 That's good. That means it didn't run here. It didn't run the head node. It ran on that that job. So we did what we wanted it to do So we need to have We're gonna get rid of all those output files Makes it easier for us So But we didn't give it any parameters so What it did is it since we didn't give it tell it how much how many resources we wanted It goes with the default the default is one core one gigabyte of ram for one hour If I would use more than resources than that it would It would not fail to it would fail to work right correctly if I tried to use more than one core It would pin all those jobs onto one core. So if I try and do that The omp example and I told it to use 10 Open mp threads And I only gave it one core all those core all the those jobs are going to be fighting over that one core so you want to match the number of What you asked for with what your program is expecting the if you use more ram than you asked for After you exceed your amount of ram it will start just swapping which Will really slow things down if you're doing any sort of computation whatsoever That's really going to slow things down, but it won't kill your job off until you exceed one and a quarter times then Then then you asked for so if I asked for one gig of ram and it tried to use two It starts swapping up to one and a quarter and it's a now you're done and it kills your job off with an out of memory air If you run out of time it just kills your job off Don't underestimate the time. That's that's probably the biggest thing I can tell you there is don't underestimate your time it will it will It will just kill your job off when your time's up as a matter of fact one of the Biggest questions we have is hey, my job quit working after an hour Yeah, because you didn't ask for any more time than that and ran for an hour and then it stopped So we had a question in the chat says what happens if you ask for more cores than are available Well, we do have a job submission verifier So if you ask more than are available total Then it'll say I can't I can't do that We have 720 cores if you ask for a thousand cores They would say I can't do that if you ask for one machine with 40 cores our biggest one has 36 So it would tell you I can't do that but If you ask if you ask for more than you know more than are available right now It's going to fit you in the queue and it's going to make you wait your turn So Now that we have that let's tell it for information here. Let's say S batch Let's give it some parameters CPUs per task equals one Mem per task Equals 512 meg we that's a really small program Time equals Zero days zero hours Zero minutes and 20 seconds Mem per task fine. I'm just saying one Mem per task what I do wrong there. Let's tell total memory I default it uses a gigabyte. So there I've kind of told it basically what I need to have there Member cpu. Ah, that's what I did wrong. It's not per task for a cpu You can tell that I don't play with these actually a whole lot myself That's that's Dave's job Dave Dave does a lot of those kinds of things So now I created a new batch job and again It ran already And it ran on the same node that we saw before Now Who wants to type all this stuff every time? Not me is the correct answer So what we can do is we can take and put these things into that same batch file So let's copy this And we'll change our batch file that we were submitting so in batch anytime a line starts with a Hashtag found sign what are we going to call it an octahorpe if you're being fancy That means ignore this I say this is a comment that'll be completely ignored however That's batch will look for any job that starts with a pound s batch And it will say oh that's meant for me. I'll interpret that correctly. So now I have these lines in my file to start with pound s batch And that's going to be interpreted by slurm to be parameters that I want to use Only one option for line though. I I'm pretty sure you can put more I usually put in one for line just because it makes it easier to manage But you can put in more than one for line. I am pretty sure So I'm writing that file if I look at it now I can actually still run this command directly through Direct on the command line on the head node See it ran on the head node because it saw those things as comments, but I can also s batch The same thing Can you speak about about how jobs are priority prioritize? First come first serves are some jobs more important. Generally speaking Jobs are first come first serve. However, we do have a fair share you so Adam feel free to correct me on this, but I think it's in within the last week is what it looks at If a particular person has Run used more resources than their fair share So if you somebody's been running, you know flat out for three days Somebody else comes in their job is going to get bumped up in the priority because that person's fair share Priority has gone down a little bit So far we haven't even run into that on bio shack bio shock. So That's that's the only algorithm we have right now I anticipate that we'll probably move more to a model like bio cat has on bio cat We have nodes that are bought by research groups and they have absolute priority on their nodes So because they bought it If somebody else is running on their nodes, they get to kick the person off And and their jobs will start nearly immediately Now what happens within their own group? That's their business. I'm not getting in the middle of that, but They can they can fight over their own resources all they want, but uh, We've had we've had have had people that are running you know many many jobs together And uh, they'll they're they get frustrated because well, I was there first. Yeah, but you've been using You know 25 of the whole cluster for a while I'm gonna Do we have different type of node types? If so, can we ask for those night node types specifically using s batch? You can But you shouldn't have to I'm gonna Let me let me get To there because I think I'm gonna do this next. Yes next thing case that so Dave who is on our group He wrote this nice little program that has has Called case that so we run on our cluster and on your cluster and We really like it So this is telling you all everything that's going on right now on bio shock So we'll just go through what we have here. So we have compute 2019-01 through compute 2019-16 Uh Those each have 192 gigs of ram We have two gpu nodes which have Same 36 cores, but they also have two gpu the piece and There are 84 gigs of ram And then we have some high memory some big memory nodes to have a terabyte and half of ram If you ask for what you need the schedule will take care of what of where that goes So if you ask for gpus, it will only schedule you on the gpu So you shouldn't have to ask for a particular node If you ask for something takes a lot of ram It will automatically schedule you on the machine that has lots of ram available Because that's where it can and it will move other jobs elsewhere if it can That's the idea of a scheduler is you tell it what you want it tells you where to put it You don't want to ask for particular nodes themselves Um, so case that is showing me right now several things and we'll just go through this So the first thing we see is the compute node name It tells what's scheduled right now. So right now it's running. It has 36 cores for those are being claimed two by this job And two by this job And it's using the cores and it's running. That's good. We like that It's using 14 and a half by the 192 gigs. It says 191 little factors with With what's available from the operating system and how we count it and all that kind of thing So numbers might be off at 192 gigs And it's using 14 and a half of that right now Here's what we see on this This is the WSU ID of the person who's running that job Notice that you can't hide that so don't name anything embarrassing under your name because everybody will be able to see it This is the name that they gave it you can give a name right by default. It's the It's the it's the name of the batch file you ran. So if I if I did my host name about sh You see host name by sh over here This is the job number and all about that job. So it says Two cores it's running how much memory it's using how long it's been running So this this job has been running for seven days at this point similar this node this node. We have somebody else running On another node over here. He's running train on sh. He's using all 36 cores and Dave is giving a tutorial real quick in the chat about About using kstat What I was going to show there is I can say kstat dash me Dash d1 for everything I ran in the last day. So here are the jobs that I ran in the last day You can see I ran my open mp examples. We just talked about that. We ran it with one core. You're gonna attend cores around five cores My host name examples. I can actually look at this particular job With kstat dash j we can do this for running or a completed job And it's going to tell you all about that job So it tells me the job number the name of it Where it ran I use one node I use one core I use zero gigabytes of ram. It's that small and it took less than a second. So it completed properly um Let's look at This one that we saw earlier so this one Name was open mp open mp example It also ran on 20 1901 They use one node. They use 10 cores and a gigabyte of ram. Again, it played really quickly um He asked him that there's a web page, uh, which shows the current status of the cores and its usage um We don't really have that what we do have Let's get back to Let's let's finish up with kstat here real quick. We're you're getting ahead of me here. We're we're almost there um so kstat is one of the most useful tools That we come across the other nice thing and you can't tell it here. There's nothing in the queue But you'll also see let's see. Let's just Let me open up, uh, baocat real quick here You guys can see We're on kstat over here on ours a little bit longer I'm just going to go through the whole thing here. So it gives the same information as you saw before We have uh node names how many cores how much ram it has flow of all all the way down to get down to the bottom Just collecting all the data Didn't like my thing here. So now it shows shows me the Down to the bottom. It shows the queue. So this is what's going to be next if you guys get a backlog of jobs This is what it'll look like. So this is the user id. This would be the equivalent of your, uh, wsu id We we have user names on our system That the person's choosing Again, the name of the job the job number How many cores they're requesting pd is pending how long it's been there how much ram How much ram they're asking for this job's been in the queue for an hour and 51 minutes Small jobs run really quickly some of the big jobs you might see in here Been in there for 10 days or more and if you look at the bottom It'll tell us that we have a 6 000 of a little over 9 000 in use And with the generally speaking the ones at the top are the ones that are next to be scheduled Ones at the bottom are not going to be scheduled for a long time. We do have a page and that's what I was Getting to next is the ganglia page which probably answers, uh efficient question here We can see on here What things looked like within the last by default of power? I like to go to the last day myself so This is the cluster network how much, uh, how much network traffic is going on what the cluster load is like Uh, it doesn't sound right cpu. Oh, that's because we have virtual in there too. We have 720 cpu is available Right now. We're not using hardly any so that's that's going to tell you which, uh When things are busy and when they're not But Since we have a webpage which shows the current status of the course Not really because you have to log in to tell those kinds of things anyway And you really you want to submit your jobs as soon as you can anyway because the sooner you've submitted a job The sooner it gets in the queue and it'll get let the scheduler do what it's meant to do And figure out when the best time to put those in there is not like we need to do that Okay, how do you go about estimated runtime for jobs? That's a good question. Um, the There's several ways of going about that you can do Uh, if you if your data scales nicely you can take a small run and kind of extrapolate from there How much it is or you can just ask for a whole lot And let it finish early because it finished early. No penalty if you And and look at your past so if you uh, if you if you ask for 20 days 20 days and 20 days and 20 days and it And your jobs continually continuously finish in two then, you know, well, maybe I'll need to ask for like three days next time So that's that's really it ask for a lot the first time ask for less after that How much persistent storage is available for jobs with large output? Is that something to be requested the time of submission or can one redirect output to an external resource right now? We have a little over 100 terabytes available. Uh, we're not anywhere close to That so right now we only have the one data pool in your home directory. Uh, we do have temp storage on each node so Let's that ours. Yeah That's run s run is the equivalent of s batch except it's interactive Dash dash pty. Is that right? I'm right. All right. There we are That's run dash pty. Okay I'm on there. I'm I'm Let's run dash. Yeah, dang it Ety Then bash There we are So now I'm actually running on the compute node. You can see that I'm actually running on compute 20 1901 um So if I look here Well, I've now forgot what he was even trying to do. H top is a useful tool on any individual Job, you can see that somebody here is running matlab Jobs, um, if I look Uh temp space. Yes temp space is what I was going to show. So if I look here at df df shows the what space we have available so you can see we have Home directories on home these these two you guys don't have access to to write you can either read only You offer op they have shock in the op software, but we have We do not have temp. They're not separate. Okay, that's I thought they are separate on our systems So this is all local disk And if I so we can create files in temp and if I do echo So It'll show this so that's a variable you can use to set your temp space That is local to the machine and that does get cleaned up whenever we Whenever you Exit out of this job. So if I quit here anything that I created there would be poof At least theoretically it should be um, as far as space usage Uh, what we've gone with so far on bio shock is it's not a problem until it's a problem So don't abuse it and you won't have to worry about it. That's ganglia Deleting a job. Oh, yes. That's useful to know too. Uh, you can Let's create a new job here in close on time. We're going to make this quick Um, we're going to add something in here a sleep 600 so that just says do nothing for 10 minutes and the only reason I'm going to do that is Job four five nine two four. So now I can do case that dash j four five four five two nine four And it's going to tell me Ah, all sorts of things about this job That is job ID When it started how long it's going to take to end What node is running on how many nodes cores and memory that I asked for Uh, and and the original batch file that I was going on Why do you Case that you can see up here, but that job is running on 2019-01 I can do s cancel four five two nine four And that will delete the job. I could also have done s cancel dash u And then this which is going to do anything right now because I don't the job is now gone. I do case that again You would see that Job four five two nine four is no longer running there and If I look at slurm four five two nine four It just tells me that it was canceled because I Cancelled the job here at all those alpha files. I don't need any more array jobs Okay Array jobs are how we Do a lot of things at once especially if you're doing that parameter sweeps and things like that So I have an array example here that I created So here is A an example of an array now. Why would we want to use an array an array is Only gets submitted one time, but it runs several times with the parameters we gave it so I have here my Job I'm going to if I if I just run this right now Array example.sh It enters gives nothing because I slurm Array task ID doesn't exist What I did is I said here for my s batch commands. This is not part of part of the This is part of the submission part of it is to have an array of one through ten I told it to give it a time of an hour. That's going to be way too much one node one task per node all the cores for the tasks and 64 gigs of memory that's probably way too much for what I'm doing here. I think I copied this in mel Let's let's make that way smaller We want this to run fast And just one task per node So I gave it 10 one through ten Let's submit that Job four five two nine five Now when I look at my output, you'll see I have several of these slurm four nine two nine fives Not just one But I it ran actually 10 times So it actually ran that that on 10 different Jobs out across bay of shock. Uh, as a matter of fact, let's make a small adjustment here We'll get rid of these You did the hostname before let's add that on the end and Let's make it bigger than it'll run all at once here. Let's do 99 times actually look these jobs number 32 34 35 and 36 finished the others haven't yet Ah, there we got a whole bunch of them. So Let's see which one's like 32. We know or was there So that ran on compute 2019 oh one Let's look at some of the early numbers That ran on 2019 oh one They all get scheduled on the same node. They all got scheduled on the same node, aren't it? I was hoping to get it scheduled on different nodes. Oh, there we are Job number 90 ran on compute 2019 oh three Yeah, we can actually just look so you see most of them ran on 2019 oh one 20 several around 2019 oh two 2019 oh three. So it actually scheduled those across different nodes at the same time, but You can figure out that with a little bit of math if you had an input parameter Uh, you could You know, you could take that variable that we had that environment variable that flurma ray task ID We could do a little bit of basic math on that. So, you know, if we wanted, uh 0.1 through 10 on your parameter suite, we could say You know divided by 10 or whatever so we can we can use that to our advantage And and use that as input To a file and that and that's a whole lot easier on the scheduler to do that as opposed to having Submit submitted 100 different jobs It only went through once here are all those uh GPU So, uh kuda is the module you want to do that generally I don't suggest that you write kuda if you don't want to do it if you do the nvcc is the command to compile kuda code kuda is for our gpus. That's for Data that you're doing the same thing over and over again. That's where that's where gpus really shine, especially floating point data So that's if I wanted to run this Let's go back I actually have a GPU code that I downloaded I use this for example. So module load kuda and I could do nvcc I actually I just make make nos to run nvcc and I now have An executable called gpu burn So let's create an sbatch file to use this gpu underscore burn sh I want to give it that I want to say Go back and look at my screen again She does equals gpu calling one And then I submit that to the queue and because I gave it that it's going to run on one of the gpu nodes Might take a bit longer. Nope. I promise I actually tried this case that dash j So I tried to run this. Ah, I tried to run it on a compute node not on a GPU node. I wonder what I did wrong there equals gpu one I promise I actually even tried this before I did Have to come to four lines of code. Uh-huh. That's why it didn't go. Thank you adam That's why it worked for me and not before There we go So there's my output file And it's it's all See the gpu's that were on there and it's running some specific gpu code Again, all this is on the wiki and the last thing we're going to do. Yes. It's on demand. Yes. Good because we're about out of time so on demand The hbc.wichita.edu Is actually how we're going to run jupiter. That's a good question So I'm logging in here again wsu credentials This is a web-based way of getting in you still have to be on the on the Bpn or on campus to get here, but this lets us do some pretty cool things including Jupiter tada um, I was going to use Couple of different things here. This is actually running jobs when I start like our studio for instance here I'm going to say again. You have to estimate things right number of hours One core and I'm going to launch it So this is telling me now that it's starting it up. It's not quite ready yet And now it's actually started our studio on one of the nodes And now we see I have Has been leading me to close this. Yes. Go away. All right so, uh I have an r file here. So I can go to I delete my r file. I can actually get uh, let's do this is get a sample our example script There we are. This is what I did when I was testing this out Uh sample Oh, that's using Basics there we are here. We are here's a basic our studio our r script so Copying that in there Go to our studio. I can actually just paste this in here Boom and you can see that it actually ran. There's my r that are ran over the side and we can do all sorts of Cool stuff with our studio. Uh, Terrence probably worked with this more than I have Do you use gpu from jupiter you can uh, I believe If I go here and say I want to do jupiter We don't have gpu through jupiter at the moment. Okay So in other words, we can make it happen. It does. It's not currently set up that way But we can make it happen. But on demand Is an We can basically run whatever you want through Uh a web interface. So there's my r studio when I can still go there I can launch a desktop. So this is actually a desktop on one of the compute nodes We can see that if I go to a terminal and Yeah, you can see that I'm on compute 2019 01 Uh, this is also really nice for downloading software. You can actually open up firefox So if you have things that need authentication to download you can do that straight from here also Under here we can Shell access to the head notes. So instead of actually getting anybody or mobile external whatever I can go here. I can do just like I would through one of those applications and the person who is doing the Readability the accessibility stuff. They said this works out really well because it's really just through your browser, which is good and Where's my file? Yeah home directory So we can also get files in and out this way too. So I could take this local.txt And I could download it or I can upload a file It's a little bit clunkier than mobile external But it's really not bad at all and we can get in and do whatever we need to And that really is what I wanted to cover and good thing because we're just a little bit over time Sorry for doing that to you especially on a friday afternoon What questions do we have feel free to? Feel free to unmute and ask questions None really I covered it that well Or you all just fell asleep in the middle. I can't tell all right. I'm going to stop the recording You