Beginning at verse 1, Acts chapter 5, beginning at verse 1, a certain man named Ananias with Safari's wife sold a possession and kept back part of the proceeds. His wife also being aware of it and brought a certain part and laid it at the apostles' feet. But Peter said, Ananias, why has Satan filled your heart to light to the Holy Spirit and keep back part of the price of the land for yourself? While it remained, was it not your own? And after it was sold, was it not in your own control? Oh, why have you conceived this thing in your heart? You have not lied to men, but to God. Ananias hearing these words fell down and breathed his last. So great fear came upon all those who heard these things. And the young man arose and wrapped him up, carried him out, and buried him. Now, it was about three hours later when his wife came in not knowing what had happened. And Peter answered her, tell me whether you sold the land for so much. And she said, yes, for so much. Then Peter said to her, how is it that you have agreed together to test the spirit of the Lord? Look, the feet of those who have buried your husband are at the door and they will carry you out. Immediately she fell down at his feet and breathed her last. The young man came in and found her dead, carrying her out, buried her by her husband. So great fear came upon all the church and upon all who heard these things. From the birth of the church, there was a spirit of generosity. There was a concern, a generous concern for the members of the body of Christ. That was the norm. We already saw it in chapter two, verses 44 and 45, how that it said, all who believed were together and had all things in common and sold their possessions and goods and divided them among all as anyone had need. We saw that in Acts chapter four, verse 32, where it said the multitude of those who believed were one heart and one soul, neither did anyone say that any of the things he possessed was his own, but they had all things in common. And it said in verse 34, nor was there anyone among them who lacked for all who were possessors of lands or houses, sold them and brought the proceeds of the things that were sold, laid them at the apostles' feet. They distributed to each as anyone had need. When we were in Cuba, they have rations, they have food rations. And so when we came to do ministry there, they had a small room set aside for those who were teaching and ministering and serving there. And so when we were there, we were told that the reason we even had food, because there's no food that's, again, there's not an abundance and a surplus of food. There's not. And so what they do is they get rations. They have rations or portions that are theirs. And the members of the churches were donating their own food so that we could eat. These are people who don't have anything, who were donating their food so that those who came to teach them the word of God could have something to eat. That is what the church always has done.  And that's what you see. So you see today, listen, and this, I'm not bashing the church because, you know, coming back, I say, oh, he comes back from Cuba, and now all of a sudden he's mad. I'm not mad, but I am aware, I am aware of how the American church is an embarrassment to the kingdom of God in many ways. And people will leave churches because somebody sat in the space that they're used to sitting in. That's a fact. People will leave churches because they don't like the music. And there's so many other churches, I can choose where I want to go. And so we bounce from place to place, and it's all he's about us because this generation today is spoiled rotten and it's all about me. It has to be, right? And if I'm not happy, I'll go someplace that will make me happy. And so it's a good thing. It's a good wake up call for me because sometimes I begin to think, you know, well, gotta be aware of our generation.  We just don't know it. We just don't realize it, you know? I wanted more, you know, it's Christmas. Why didn't I get more, you know? Nobody, I need it more. You know, that's what we are. Oh, I gotta have a 10 foot tree. If I have an eight foot, it's just not Christmas.  It's true. You know, I can't give to you because I need it for me. No, that's different. That's not Christianity. That's just carnality. That's just selfishness. That's not Christianity. It's nothing close to it. But that is what we were supposed to be saved out of. But we actually live that way because we think it's the right thing because after all, we gotta look out for ourselves, don't we? Well, I was very humbled to know that the modest food that they were given to us, the modest food that they were given to us was food they took out of their own mouth so that we could eat, so we could give them something that they need, which was spiritual food. They need it. They understand it. They want it. They wanna grow into things of God. They wanna know the Lord Jesus Christ. And so yes, I was very touched by that very much so. You see, God commands His people to be actively concerned for those in need. That's because God Himself is concerned for those with need. In Deuteronomy 15, verse 11, it says there will always be poor people in the land. Therefore, I command you to be open-handed toward your brothers and toward the poor and needy in your land. Poverty, in other words, will always be part of society. And believers are to be concerned for those who are in poverty. James 1, 27, pure and undefiled religion before God and the Father is this, to visit orphans and widows in their trouble and keep oneself unspotted from the world. Jesus made it clear that caring for those in need was actually something that revealed genuine faith because in Matthew 25, 35, He said, I was hungry, you gave me food. I was thirsty, you gave me drink. I was a stranger, you took me in. I was naked, you clothed me. I was sick, you visited me. I was in prison, you came to me. Then the righteous will answer Him saying, Lord, when did we see you hungry and feed you? We're thirsty, give you drink. When did we see you a stranger?  When did we see you sick or in prison and come to you and the King will answer and say to them assuredly, I say to you, in as much as you did it to one of the least of these, my brethren, you did it to me. You see, the people in the church were excited about what was taking place. God was moving. And so they began to take care of that new thing, that new community, and they were excited. And so that provokes a couple by the name of Ananias and Sapphira to action. And they begin to join in. Notice that just before this, we noted that there was a guy in chapter four by the name of Barnabas. And Barnabas had land and he sold it, he brought the money, he laid it at the apostles' feet. And he actually eventually had found a position amongst the body of Christ. So they're thinking, I would like that kind of position. I would like to be recognized like men like Barnabas and all. He had sold the possession, he gained praise, he gained authority because of it. So the couple seems to have wanted to receive the same kind of position as he did, but they thought they could get it more cheaply. Interestingly enough, when you look at Ananias, it seems that he had gained what would be called the partial victory over his greed because he actually sold some property and he gave a portion to the apostles' care. But his hunger for riches overruled any impulse to give in faith. Now, they were more than likely only professing believers, not truly converted. Why would I say that? Well, the ones who were genuine, according to chapter four, verse 32, were of one heart and one soul. They, Ananias and Sapphira, were not of this sort, but they were trying to appear that they were. You know, when I got saved, it was a time in history that is now recorded as the Jesus movement. In the Jesus movement, there were people who wanted to associate themselves with the movement and be thought of as part of it because it was a radical revolution and many people wanted to be associated with that. It was in the newspaper, it was in magazines, it was covered on televised news. You know, it was a huge movement when the Jesus movement began, the generation that I come from and when I got saved, it was a huge movement. And people like John Lennon, some of you have heard his name before, John Lennon, John Lennon was walking around for a few days saying, praise the Lord, praise Jesus.  There were guys like Eric Clapton and so many others who were well-known rockers during my time that were actually starting to associate themselves with Christian faith. It was a very popular thing. There were songs that were being written, things that were being done, and all kinds of things like that. So there were those who wanted to associate with it. They wanted to be known as Jesus Freaks when in fact they were just outwardly showing an association. There was no conversion that took place. The guy who took me to the Hollywood Palladium, the day I got saved, my friend Bill, was a sham Christian at that time. He wasn't walking with the Lord, he was acting like he was and it took him years until he finally committed himself in a genuine way to Christ.  He's the one who took me to Bible, said he was associated with it and this we have Ananias and Sapphira. They see things that are happening. They want to be associated with this. Barnabas sold a parcel of land and he gave the money to the apostles and he gained prestige and honor amongst the congregation. Ananias and Sapphira are seeing that people are selling parcels of property and different possessions, bringing the money to the apostles to distribute to the poor and they're thinking I would like to have that kind of attention too but I don't want to give as much as they are, I'll give some and that's what we're seeing take place. They sold the possession. They gave a gift to the Lord. Somebody would ask, well, why is that wrong? What is wrong with keeping some of the prophets for yourself? Even giving a small portion should be recognized as generous, right? It should be recognized as good. Well, it would seem that Ananias and Sapphira actually wanted to profit two times. One, they wanted the spiritual prestige of being thought generous and two, on a personal level, they wanted to profit financially. Now God's word warns against this kind of action. They're actually sinning against revelation, sinning against the light because Proverbs 21 verse six says, a fortune made by a lying tongue is a fleeting vapor and a deadly snare. And that's what they were trying to do and Jesus in Luke 12 15 said, take heed and beware of covenantsness. Once life does not consist in the abundance of the things a person possesses. So scripture is filled with warning against greed and lying and things of that nature. And so the sin was not in making money on the sale of profit because selling for profit in and of itself isn't sinful even though today we have people who claim that it is. Selling for profit is not sin. If it isn't gouging the price to hurt the buyer in Proverbs 28 verse eight, he who increases his wealth by exorbitant interest amasses it for another who will be kind to the poor. Well, their sin was in line and public pretension, the pretension of giving everything to the Lord. And that's where their sin is. And so they brought according to verse two, a certain part laid it at the apostles feet, verse three, and Peter said, Ananias, why has Satan filled your heart to lie to the Holy Spirit and keep back part of the price of the land for yourself? Well, it remained, was it not your own? And after it was sold, was it not in your own control? Why have you conceived this thing in your heart? You have not lied to men, but to God. And that's pretty interesting because at this point we see two spiritual gifts in operation. The apostle Peter is exercising discernment of spirits as well as a word of knowledge. When you look at the gift of the discernment of spirits or discerning of spirits in a very basic way, that speaks of reading hearts, if you will, determining whether something is true or not. You have that sense that this is not true. You're discerning the spirit behind what's taking place. And the second word of knowledge is a knowledge that is different than the natural way that we have in obtaining knowledge, which is usually through somebody informing us or a studying or something like that. It's a supernatural knowledge, a knowledge that you would not have any ability to have. It's a knowledge that God gives you at that moment. I was at home, invited a young woman this many years ago now, Marie and I invited a young woman from the church over for dinner. And I wanted to get to know her and to minister to her. And it wasn't this church, it was when I was an assistant pastor in another Calvary.  And as I'm speaking to her, I get this strong impression, the sense of something. And so she leaves and I turned to Marie and I said, the Lord revealed something to my heart tonight. I'm very uncomfortable with it. I'm gonna have to act on it.  I had her phone number, I called her and I said, can you come into the office for a little while? I need to talk to you. She says, okay, she comes and sits across from me and I said, this is very uncomfortable, but I have to ask it.  Now I wanna know, was he speaking to me or was I just imagining something? And she sits there and she looks at me. She says, well, if God says something, who am I to argue with him? I said, that's not an answer. I said, I'm asking you, are you a lesbian? And are you practicing lesbianism? I'm asking you, why would I ask her that?  No, why, why would I ask her that? It was the spirit of God is called a word of knowledge. I had no way of obtaining that. I simply received it. God spoke, I believed that he was. I asked because I could be wrong. In this case, you've got the apostle Peter and there's a discernment. He knows this is the spirit. This is not the spirit of the Lord here and what they're doing. And then to, you know, he makes it very clear through the use of another gift, the word of knowledge to ask that question. And thus he gets the answer. He knows exactly what's going on. And so he goes on and notice he says in verse three, why has Satan filled your heart to lie to the Holy Spirit? Now imagine Ananias' reaction. This is not a word of praise for what he's done. This is a direct confrontation. And so Peter is asking a question that is very pointed and notice he says, why has Satan filled your heart? So the impulse to lie in this situation is spiritual in nature and the impulse was actually provoked from Satan. And Ananias was open. Ananias was open and Satan encouraged him to do that which was natural and what he desired to do.   And so he was the one who encouraged this. He's the one who provoked the lie. And secondly, he says to him in verse four, why have you conceived this thing in your heart? So Satan had filled his heart with the impulse, but the responsibility for yielding was his own. His sin originated within himself. Satan did not force him to sin. Ananias did not have to sell the property nor did he have to give anything as a gift. He chose to. Then he chose to misrepresent himself before the people and because of this he's judged. Now I wanna show you a couple of other things here before we move on. I want you to see again in verse three, why has Satan filled your heart to lie to the Holy Spirit? And then in verse four, you have not lied to men, but to God. So I wanna show you something very, very briefly here, but it's very important. One, this is a person, the Holy Spirit. The person of the Spirit is being revealed to us. You don't lie to a force. You cannot lie to some form of energy. You can only lie to a person. And so this is the person of the Holy Spirit. And so the Holy Spirit in Scripture is revealed not as some force, but as the third person of the Trinity. As a person, the Scripture refers to him, the Spirit as having knowledge, for example. In 1 Corinthians two, 10 and 11, God has revealed it to us by his Spirit. The Spirit searches all things, even the deep things of God, for who among men knows the thoughts of a man except the man's Spirit within him. In the same way, no one knows the thoughts of God except the Spirit of God. So the Spirit has knowledge. Secondly, the Holy Spirit exercises his will. In 1 Corinthians 12, 11, it says all these are the work of the one and same Spirit. He gives them to each one just as he wills. Acts 13, two, while they were worshiping the Lord and fasting the Holy Spirit said, set apart for me Barnabas and Saul for the work to which I have called them. And third, another element of personality is the Spirit displays emotion. In Ephesians four, verse 30, the Scripture says, do not grieve the Holy Spirit of God with whom you were sealed for the day of redemption. Now, why did I bring those three very basic things up because there are people who will knock on your door and will tell you the Holy Spirit is power or an energy, but the Bible doesn't teach that the Holy Spirit is a non-person. The Bible teaches that he is a person. He has emotion. He has will and these are the things that reveal that to us. Now, a second thing I wanna point out is the deity of the Holy Spirit is being revealed here. He said, you did not lie to man. You lied to God. So when he said in verse three, you lied to the Holy Spirit. He tells us who the Holy Spirit is in verse four when he says to God. And so that shows to us the deity of the Holy Spirit. Now, when this is taking place, verse five, Ananias, hearing these words, fell down and breathed his last. Great fear came upon all those who heard these things. Young man arose and wrapped him up, carried him out and buried him. It was about three hours later when his wife came in not knowing what had happened and Peter answered her, tell me whether you sold the land for so much. She said, yes for so much. Peter said to her, how is it that you've agreed together to test the spirit of the Lord? Look, the feet of those who have buried your husband are at the door. They'll carry you out. Immediately she fell down at his feet, breathed her last. The young man came in and found her dead and carrying her out, buried her by her husband. And what's the result? Great fear came upon all the church and upon all who heard these things. Yeah, God's judgment was immediate. The sin was dealt with immediately. You see, a relationship with God, especially in this newborn entity called the church is extremely important. God is really emphasizing the need for the church to be sincere, without hypocrisy, to be real and to be true worshipers. Ananias and Sapphira, someone said, had evidently known the glory of Christ and the presence of the Holy Spirit and had had most abundant means of salvation afforded to them.  You cannot lie to God. God is not, you can't do that. It just amazes me that people think they can. They think they can hide from him their sins. They think they can hide things and keep things in secret, but the scripture says that God reveals even our secret sins. God reads our hearts. He knows all things and they're trying to hide this from the Lord and so God immediately dealt with them. You know, judgment begins in the house of God. In 1 Peter 4, 17, it says the time has come, the judgment must begin at the house of God and if it first begin at us, what shall the envy of them that obey not the gospel of God? And so God immediately dealt with this because sin was going to infect the body of Christ. What's the result? Verse five, great fear came upon all those who heard these things. The young man, verse six came in, took him, buried him. They would bury immediately, especially those who came under God's judgment and then three hours later, the wife comes in. She didn't know what had happened. So notice with me that Peter gives her an opportunity to confess and repent, but she continues to lie. Now the more than likely it was simply covering up for her husband, there are those who would say, well, you know, she shouldn't have been judged. She was simply loving her husband, but Sapphira was aware that her husband had done this and she had agreed with him. She was an innocent. Though he lied, she consented to it and thus was also guilty. She is guilty of what we would today refer to as being an accessory. This reveals something to us though and I'll say it just briefly, but it's much deeper than what I'm gonna say right now. This reveals to me something very important. It reveals to me my influence on my wife, my influence on my wife, because Ananias had influenced his wife for evil and I as a husband, I influence my wife. I have responsibility as a man and I have a tremendous influence obviously every husband does in my wife's life. I can influence my wife for good or I can influence her for bad. My responsibility is to do the best that I can in the Lord to influence her for good, why?  It reminds me of like in the book of Ruth where we read the words, your God shall be my God, you know, your people will be my people. When Marie and I were dating and she was just saved and she began to believe that she loved me, it dawned on me the influence that God had given to me to this young girl and I still remember at a very early age, she was a young woman and I was a young man and I said, do you know something that hit me, Marie? Tell me if I'm wrong. I said, I believe that your love for me is so great that whatever I chose to be, you would follow behind me. I said, if I became something of a different faith, if I was somebody of a different faith than I am, I believe that you would have chosen the God that I was serving, am I wrong? And she looks at me and she says, no, you're right. She said, and in a sense she was saying, your God shall be my God. And that's how it's been in our marriage from when we began dating, became engaged and have been married these many years now. My God became her God. And so the way I live for my God influences my wife and Ananias influenced his wife to her own death. Keep that in mind, to her own death. And she agreed, not knowing her husband was dead and covering him, she agreed. Oh yeah, it was for such a price. No, you agreed together to lie to the Holy Spirit and I want you to listen. The feet of those who just took your husband and buried him, they're coming for you. And immediately she died and they carried them out. And the young men came in and they must have thought, oh no, not another one. So what's the result? Great fear came upon all the church and upon all who heard these things. The judgment brought purging of sin amongst the people and produced a holy fear. This was not a church that was easy to join. It was in a place that was entertaining people. This was a place that people were serious about God. This was a place where the people saw the power of God and were very serious about their walks with him. And you know, by and large in our fellowship, and I say this honestly, by and large, there are quite a number of people with us in our fellowship that are very serious about their walks with God. And I bless the Lord for that. Listen, when we went to Cuba, I didn't bring a team. I had been invited to go so I was going. Marie was going to minister to the Cuban wives and all. We were invited to go, we went to minister. But some of the members of our church were aware of what was going on and they had been spoken to and on their own, on their own. They saved their own money. They got on a plane and they flew there. They did ministry from sun up literally to sun down every day, every day. And the people talked to us later on and were saying what a great group of people you've asked her. And me, like a dad who has a child that loves and wants to boast about, that's how I felt. And I haven't seen them yet together, but I will tell them, you know, some are here right now, I will tell you, I love you. I was so proud of you. Excuse me, here we go. I should stop.  I really am. Thank you. And I really love you because there needs to be a sober minded love for God. God helped the church to break the addiction to entertainment, God help us to start getting more sober minded for the things of the Lord in these last days especially. God help us to be awake and aware. The times are short.


I'm Usmar al-Razrari. You are expert on geopolitics and crisis management at the OCP Policy Center. And lots of crises, obviously, in Africa. But I want to turn to Asia, where you spent many, many years. Barack Obama talked about a pivot to Asia. I'm not sure if it actually happened. Today, Donald Trump is beginning a long voyage to Asia. What is your feeling about the crises in Asia, especially, of course, the North Korean one? Well, I guess that Trump's visit to Asia is somehow not connected to the basic plan of Obama, who was more associated to this democratic agenda to reconstruct or to find some linkings to go beyond the stagnation of the Cold War in the area, mainly in Southeast Asia. Obama is much more interested in the North Korea crisis, as you have mentioned, because it's getting harder and harder tensions and without any projection of what can happen tomorrow from the side of Pyongyang. But also there is an economic part, which might be very important in Trump's visit, mainly with the Japanese, somehow with the Koreans and with the Chinese. Yes, because he talks about renegotiating the trade deal with South Korea. Exactly. And this is somehow from our South Korean friends. It's making them in a panic because they were dreaming or they were living for more than five decades under this structure of this strategic security alliance with the big brother of Washington. Also the Japanese are fitting with the same lines. But now it's what I used to call in a different occasion with this project of Trump to switch from the strong states to the enterprise states. If in Europe we are talking about nation state, I guess that Trump is bringing, let's say, engineering this new concept of enterprise state. And he's bringing Washington to lead this project, which means all the services should be paid. There is nothing for free or moral in international relations. Alliances are economic, basically. And this new doctrine is bringing his friends in panic, I guess, mainly Asians. Totally changing the whole geopolitical structure. Mainly in the area of cooperation. But a final question, and there's obviously a problem with how to deal with Pyongyang and Kim Jong-un. How likely do you think conflict is as opposed to containment? Well, in my sense there is three scenarios. The conventional one, which is to bring everybody to the sixth table of negotiation instead of war. And this was taking a long time debate over the last two decades. But unfortunately what has happened, and personally I have this feeling, even as an expert of, I mean, East Asian security, there is a missing piece in the analysis, either the piece associated to information about the military building capability of Pyongyang, which might be over the capacity of missiles, something else that is making everybody to deal with Pyongyang in that way. I think we live in a very dangerous environment. Exactly. This is the feeling I do have in the last two experiences of testing missiles over. I'm in the north of Japan. And I guess that the reaction, even of Tokyo after that, Tokyo is resisting any military. I mean, how we say reaction, and talking that peace building and dialogue should be the only option. And that's why Pyongyang is repeating the experiences, despite of the fact that Trump is criticizing them. He was talking about mobilization of maritime force, but this fleet hasn't arrived yet since February 2017, we're almost 10 months. And this environment personally is making me as a researcher using open sources in confusion. And for Rosarito, thank you so much today. God bless you.


All right, we're at least at 230, so let's go ahead and get started. People walk in, that's fine too. People join us on Zoom, that's fine too. We kind of have a real rough outline of what we're gonna go over here today. So, you know, if you have questions, comments, whatever, feel free to bring those up here.  However, I will say that We're, lost track of my train of thought when more people walked in, sorry. We put this on today's session. If you've been using BioCat for a while, this today's session will probably bore you quite a bit. We're really gonna kind of hit the basics today. Wednesday's session is much more in depth.   Generally speaking, people that show up to the days, won't show up to Wednesdays, people that show up to Wednesdays, won't show up to the days, because they're really aimed at two target audiences today. You know, if you're truly new to this, Wednesday's stuff will probably be too advanced for you. You won't be ready for that. And if we don't, and if you're more advanced, you're probably gonna be bored through your skull here today. Would you put the records online and accessible? If not, may I record you? I am recording this right now. So, and we will put these back up later on online. People on Zoom, go ahead and use the chat if you need to communicate with us. And I think we probably have some people in here on chat also so that, you know, we can bring those up. Let me introduce myself first. My name is Kyle Hudson. I'm probably the most vocal of the Baocat staff. I'm the extrovert of the group, so that's why I have the microphone on. That doesn't necessarily mean I'm the most knowledgeable, but so here with me too, we have, Dave, once you come over, Dave can be seen on the camera for the people out there that aren't there. So that's Dave. He's the guy you probably respond to you most with user type questions. I see some nods. That means you've probably worked with him before. He's real good about helping people with Optimizer Code. The other one I have, we have here is Adam Tigert, and he is our other system administrator and the more senior of a system administrator. He's been here for ten years now, pretty close. Ten years this year. So, he knows his way in and out of what's going on here. So, just going to take a quick look at what we're covering here. The other person who's usually with us here is Danny Andreessen. You've probably seen lots of emails from Dan. He is out of town today. His father is in the hospital, and he was planning on being here, going to welcome everybody to this session, that kind of thing, but he's not around due to family emergency type thing, so we're doing as we can without him here. And we really have a lot of people here. I'm kind of surprised that the room is this full, and the zoom is that full too. Okay, is there anybody who does not yet have a Bayo Cat account? Do you have one? Oh, we have a couple. Excellent. That's fine. We're here to help. The first thing you want to do, and I'm going to see, like I said, I'm not the most zoom proficient guy out there, so I'm going to say, okay, that's what I want then. Like I said, I've used it as a client before. I've never set up a meeting of my own here. So, what I brought up here is our main website, and that's what we're going to be going off of quite a bit here today, is if you go to BayoCat.ksu.edu, it'll bring you straight to here, and this is kind of where we base everything off of. We try to document everything here. This is a wiki, by the way, so if you are a BayoCat user, you can click the login button up here, put in your EID username and password, and you can change your documentation. We have some sections that we don't let people change for obvious reasons, like our policies, for instance. We don't want anybody going in changing our policies, things like that, but if you see something here that's not documented well, or you see a better way of presenting material, feel free to log in and change this. We monitor that, so try not to get too much graffiti and that kind of thing in there, and it hasn't happened yet. I think we've had what, two people besides ourselves? Is it only one? Yeah, that have gone in and made some changes here, but we welcome you to do that. So, this is a wiki, if you use Wikipedia, it uses the same back-end engine as that, so we can get to there. On this page, about halfway down there is a thing that says how to get an account, and if we click on that, that takes you to account.bayocat.case.edu. You do have to log in and that takes your case date, EID, and password. You fill out the form from there, I'm not going to do that, mainly because I don't know my password and it would take me longer to look it up and log in than anything else. And we go through the same page to approve your accounts. The process that happens is, once you apply for an account, that gets sent out to Dan, who reviews it, and then he tells us yay or nay, and I think he's had maybe one nay in the whole time I've been here, and that was for somebody that was, I think it was a spam listing of some sort, somebody was obviously not needing an account, not really wanting an account just to fill out the form or whatever. So, if you have any plausible reason, Dan approves it. We go through the same web interface and we approve it and that automatically creates your accounts, add you to the mailing list serves, that kind of thing. Anything else, Adam? Do you need to cover there? Pretty well covers it. Connecting to Bayocat. Everything through Bayocat, to begin with at least, we'll talk about one other exception of this, but to connect to Bayocat, we use SSH. SSH is not a program, it's a protocol. It's like saying, I'm using a web browser. It doesn't matter if you're using Chrome or Edge or Firefox, it's a browser. That's what SSH is. It's kind of like saying a browser. We have specific programs that we can use to connect to those SSH sessions. If you're on a Mac, you already have one built in and it's through the terminal, so if you just open up a terminal, you can go straight to and you just type SSH Bayocat.ksu.edu there. On Windows, we have a couple of them. Putty is probably the most common. How many people here use Putty? That's probably the most common one. I found this one a couple of years ago. I like it a lot better myself. That's my own personal preference, but this is MOBA X term and it's free to download also. I'll show you why I like it here in a little bit because when we go to Transfer Files, it's just kind of a one-stop-shop instead of having to have a separate program. If you're using Putty, you have to use one of their helper programs, PSCP or PSFTP, to get files in and out of it, or you can use something like FileZilla, which is a nice graphical interface for it, but this combines that all into one interface here. I'm hearing sounds. Is somebody on Zoom? Let me see here if I can. Okay, I'm not seeing it here anymore, so they must have muted themselves. So to get here, I'm going to show you what this session looks like. To connect on SSH2, head node.bayocat.ksu.edu. And those of you who've ever used BayoCat before, except for the couple of you that don't know how many accounts yet, you probably save those either in Putty as a save session or if you're... I use my daily laptop as a Mac, so this is what I like on Windows, but if I'm on Mac, I just type SSH, head node.bayocat.ksu.edu. You can specify your username, especially if you're on a Mac or Linux box, then you type your... That would be your case state EID, so mine would be Kyle Hudson at head node.bayocat.ksu.edu. Also, you can save a password. Don't necessarily recommend that, because that is your EID password. So if you're doing that, make sure it's on a machine that you have all to yourself that you're not...  I'm going to silence my phone, because this is driving me crazy if you're not disturbed mode. People suddenly decide that I named a Facebook message in middle of my meeting. That should be all it takes to get there, and then after you do log in, it'll ask you for your password, and you can see where I put this up here. I did not specify the username and mobile external, so it asked me for my username, but it will do the same thing. On Mac, if you don't give it the username, it'll assume that it's whatever username you have on there. So if you have your username the same on your laptop as you do for your EID, then it'll be fine. Otherwise, you have to specify your EID. When we get there, we look at something that looks very much like this. This gives our policies. Note that it's not to be used for classified, personally identifiable information, HIPAA data, FERPA data, anything that you would get in trouble for for sharing. We're not set up for those now. We are looking at the possibility of making Baocat available to those types of research groups. Those will be on a case-by-case basis. So before you ever put anything in there, you really need to contact us, and we are an email away. We have a ticketing system, and that is also on our website. Under how do I get help? Right there. Baocat.cs.ksu.edu. We highly encourage you to use that rather than emailing one of us directly. We get lots and lots of emails. If you send it to that address, it goes into our ticketing system, and that kind of ensures that it doesn't get dropped anywhere along the way. A lot of people see, obviously you've seen mine, mine's Kyle Hudson at KSEU. And people see that. I've had people send me emails directly. Generally, I'll put those at the bottom of the list, even if I do see them. We all filter our mail quite a bit, and so we highly suggest that you send it to that. That'll get your question answered in the most quickly, because not only will you make sure it gets to the right person, because I might not be the right person to ask if you send mail, it's great to me. And then I had to forward it on to other people. But also, if it's something that any of us can handle, a lot of times you'll get a message back very quickly. There have been a couple of times when I was working here for the first year or so, I remember seeing an email come through about midnight that asked a question, and Adam and I both independently answered it within five minutes by the time the mail system caught up that the other person hadn't seen the other one's response. So you both answered the question at midnight, because we both happened to be up and happened to see the question, it was something we could easily answer. So if you send it to that address, that'll get your answer as soon as possible. And actually, you're probably more likely to get Dave at that time of day, these days anyway. Dave's our night owl also. It wouldn't be unheard of. We also are on IRC, for those of you who use IRC, I don't. That's not always the fastest way to get a hold of us. We're not always paying that as much attention to that. But if you're already on IRC, feel free to stop by. Being one of us there, we do answer on that. There's a channel called PoundBeowcat. The other piece of this is something that we've had a problem with lately, more than we have in the past. And that is that we need to have more information, saying my program didn't run doesn't help us any. We have a really hard time diagnosing my program didn't run. Give us a job ID number, the path name, the script name for the job and a description of the problem. So tell what you're trying to do, what results you got. It's much different saying if you couldn't get a job to submit as saying your job suddenly stops, shortly it submits and it runs and then stops. And also your job runs completely through but just doesn't give you what you expect. When you say it doesn't work, we don't know which of those cases it is. So give us all that information. If you give us that right off the bat, that'll really help us to diagnose the problem as quickly as possible and not have to write you back and wait for you to respond and that kind of thing. So we can answer questions a lot better if you give us that information right up front. Any questions at this point? I've been working with the user and she said, well, now this isn't working. I don't know if it's that she did something different or if this is a new problem or a continuation of the old problem. Just all that kind of information that you can give us is out there. Any questions about connecting mobile X term? People here with laptops and people in Zoom land too. Have you guys tried to connect? Can you connect? Moving on there? Or do you want to? I don't care if you don't want to. Pardon? Sure. Using mobile X term? Yeah. Okay. So what you're going to do is you're going to click on session up here. It's going to be an SSH session. And the remote host is headnode.bayocat.ksu.edu. You don't need the head node right now, but that is subject to change in the future. So we're telling people to use that. That will probably continue to work without the head node on there for a long time. But we make no guarantees that we'll always stay that way. Head node, we guarantee we'll stay that way. So if you leave it that way, you're good. Anybody in Zoom chat that we need to look at here? I don't see the... You're monitoring chat? Okay. Thank you. All right. So now I'm logged into Bayocat. We're going to talk about Linux itself. So every supercomputer that I'm aware of at this point runs Linux. I'm not saying there aren't any one-offs that run some other flavor of Unix, but they don't run Windows. They don't run Mac. Microsoft actually tried making a supercomputer back in the, what, 2003-ish maybe timeframe. And it was a colossal failure, and they said, fine, we don't need to do that. So they... What's that? Well, let's say this is some Unix variant anyway. If it's... They don't run Linux? Okay. Anyway, so to use this, you're going to have to know something about Linux. So what you notice, first of all, that's interesting. I have no idea what that is, what the arrows are on the screen. No, it's not. The first thing you'll notice is that your mouse really has no effect. This is not a point and click interface. This is something you type into. So when you log in, you're presented with your username, the at sign, the system you happen to be logged into. When you go to... That's great.  We have four head nodes that we use. And depending on the time, any two are active in time. So if I was to log in right now, I would be on either Selene or EOS. We have two more that you might see at some time in the future. Usually those are as we're preparing to go to upgrade a system. So we'll let people in on the new ones as we've upgraded it for a while, and then we'll switch over to our by logs into those at some point. So if those ever change, that's what's going on there. There are fairly randomized between them. We do set it up so that if you're from a fixed desktop where you have a static IP address, you should get to the same one every time. We don't promise that, but that's kind of the idea. Most people like having the same thing. So we have my username, the at sign, and the computer I'm on. And then it tells me the directory that I'm in. And the thing you'll see there that a directory is very similar to a folder in Windows or Mac. The tilde that you see that we have on the screen there, my mouse is being wonky. I bet the batteries are getting low. The tilde before that, that tells me I'm in my home directory. If I look at, I can use the command pwd, which is print working directory. And that will show me I am in homes, Kyle Hudson. My username is Kyle Hudson. That's where that's where I get dropped into when I first log in. If we go back to our bio cat page, we also have somewhere here, Linux basics, we have a link to it. Did I miss it? Training videos, new, even higher than that. Like I said, if anybody is really good at user interface design, come in here and edit our wiki. We are obviously not good at this. This is our second try at it. And it's better. How do you use bio cat? How do I use bio cat? There we are. Linux basics. Geez. All right. So this kind of tells you some of the things we talked about first, of how to log in, giving directions on how to log in from a command line for those of you on Mac or happen to be on Linux.  We'll skip the transferring files for right now because we're going to talk about basic Linux commands. And we're going to kind of go through this pretty slow. Again, at the risk of boring people, but if you miss this part, you're really going to be lost in everything else you do. So we want to make sure we get this down. A directory, say it's a folder in Windows or in OS 10. The current directory, you can represent as a dot. So any time you're referring to your current directory, you can use that just as a period. And directories are separated by slashes. So if you notice back here, the base directory is just a slash. That's what we call the root directory. Beyond that, we have a directory called homes. Then we have a slash saying that it's going to the next directory. And then we have one called Kyle Hudson. I tried to make it larger and I couldn't make it happen. At least not easily. If you know a shortcut key in Mobex term by chance, let me know. I'll happily make it bigger. To change directories, we use the cd command. So I have a lot of directors out there. I'm just going to tell you I have this one out here. It's called Beoket Intro. Yeah, Beoket Intro. One nice thing about this is that when you are far enough typing a command that it knows what you're going to finish with, you hit the tab key and it lets you finish. So when I said cd, cd has changed directory. And I started typing Beoket. I thought Beo, I hit the tab and it finishes the rest of that because I have no more directories in there that start with Beo. So that gets me into that directory. Now you can see instead of having the tilde in there because I'm not in my home directory, I'm in my Beoket Intro directory here. Linux comes from Unix. Unix has been around since 1969. If my memory serves me correct. Back in the early days of computing, memory and storage space was at a premium. So you see a lot of things that are abbreviated way beyond what you think they should be. Like I said, for change directory, it's cd, two keystrokes. If you want to rename a file, it's move, mv. If you want to remove a directory, rmdir, or for a file, it's rm. There are several of these that, like I said, if you haven't used it before, you're going to be probably lost in it. We try to put lots of these over here. On this, we have kind of a cheat sheet and ways you can get to some of the most common things you'll see. So here are some of the most common ones. File, which tells the type of file it is. So I have a file out here called, this is an old PowerPoint. So I say file, intro to Baocat, dbtx. And it says, hey, I look at that file and I can tell that it's a Microsoft PowerPoint 2007 or newer. I can do file, myhost.sh. And it's going to tell me it's an ASCII text file. That's just it going through and detecting what kind of file it is. It's not perfect, but it does a pretty good job with most things. Cat, that actually comes from concatenate. You can use it to put a bunch of files together, but by itself, it just prints the contents of the file. So that file I just had up there, which I've used for my introduction class here, called myhost.sh, I can say cat, myhost.sh. And you can say, you can look at it, this is just everything that's in that file. It's a really short file. It has two lines. I've got it there on the screen now. cp for copying. In Windows, for you guys that are in Windows, a lot of times you'll use the switches as what we call a switch is a slash at the end of a command. So you'll type a command slash something else. In Linux as well as in OS 10 if you're using a Mac, they use hyphens. So you can do cp, cp is copy, so you can do cp-i. And that'll ask me if I happen to have a file already out there with that name, it's going to ask me if I want to overwrite it. cp-r, recursive. So you can copy an old folder to a new folder. Again, mv for move, rm for remove, and creating directories, mkdir, rmdir. And touch will either create an empty file or will update the timestamp on your current file. So it'll, it makes things as of the current time. Or it can, or if you just want to create an absolutely empty file. To get files into and out of Beocat, there are lots of ways to do this. The most common way is with some sort of graphical interface, which is what we have here. Mobile X term, like I said, this does this as really nice all by itself. Because if I'm over here, it has a tab over here on the side that says SFTP. And I can click on here. This gives me all the files and folders. I told you I had a lot of them out there. So I can go into my directory that says Beocat intro, where I just was. I can click there. And I can take this myhost.sh file, right-click, and say download. Sure, we'll put it on the desktop because that way I won't forget to do it, to clean it up when I'm done here. So now, if you look, I now have a file here on my desktop called myhost.sh. Let's say that I want to upload something to Beocat. There's my MOBA X term INI file, which it just created today when I was, when I, this PC goes with the room, this isn't my own laptop. So I had installed MOBA X term on this today. Okay. I can take this and have the, bring up my finder window here. And I can actually just take and drag that over here. So now there's the file that I had earlier. And I just uploaded that to Beocat. As a matter of fact, if I do a director listing here, you'll see that I now have that file MOBA X term INI. And if I cat, that's usually fairly short. You can see all the, all the preferences that it has that MOBA X term set up. I don't really need to have this on Beocat, just showing you how it works. One other really handy command to know about is called less. Less comes because there was a, it becomes less is more. There is a, there is an old, old command on Unix called more, and it still works. I can do more MOBA X term INI. MOBA X term INI. And it says, this shows me what's at the top of the file. And you see it says that my 28% and it says I have more. Now I hit the space bar and it'll let me see more of the file. So that worked and people used it, but people said, you know what? It's kind of handy sometimes to be able to go back up. So they created less because less is more, right? Yes, programmers have an odd sense of humor. So I now use less MOBA X term INI and it does the same thing except now I can use my arrow keys to go down. I can use my arrow keys to go up. I can even use the page up and page down keys to look for things inside the file. And I don't need that file anymore. So I'm going to remove it, RM. You notice over here it doesn't change because I haven't told it to check again, but I can hit the refresh button and now it's no longer there. So I've now uploaded a file from Beocat, downloaded a file from Beocat. If you want to do this from the command line, if you're using Max in particular, I'm not going to go through all how to do this mainly because I don't have the environment set up here to do this, but if we scroll up on this Linux basics page, there are some examples of using SCP, which is the command line secure copy is what SCP stands for and how to get to the right folders, right directories and grab the right files. You can even use it to copy entire directory trees too. And you can do that here also. I could take that Beocat intro folder. I'm pretty sure. Let's go up a directory. I think it'll let me do this. Yeah, I can download the whole folder and you can see it's got 19 files that are just downloaded there. So I now have on my desktop a Beocat intro folder with the same things inside of it. One other handy thing about mobile external that the other ones don't do is go ahead and throw that away. Don't need it anymore is that it has a built in file editor. So if I go into my Beocat intro folder here and I want to edit this file, I can edit this in in Linux and there are a couple of commands to do that. Probably the one you'll first want to start off using and Adam's going to kill me for this because it's not really good is nano. But I can say nano. Click nano. My host.sh and there's that file that I've been showing you a couple times here. And I can just go to the bottom and I can say do something else. And then it shows me down at the bottom the control keys that I can use to do this. So I can do control X to exit. That's the little care X down there. And it's being really intuitive there. So save modified buffer. Say yes if you want to change it. Ask the file name by default it keeps it the same inner and now when I cat my host.sh I have to do something else on there. If you're going to be using Linux from the command line very much, I highly suggest that you learn vi or vim. It's built into Max also. It has a learning curve very similar to a brick wall. It's like the somebody looked at Stack Overflow which is people where people ask programming questions and there are like over a thousand times people asking how do I exit vi because it's not at all intuitive when you first get in there. Yes you can arrow but you can't do much else with this. If I try to queue for quit it doesn't know what I'm doing. And then I'm tied up. You don't know what you're doing. The secret is there's two modes to it and then once you know what you're doing it's a much better text editor than anything else you'll come across once you get over that initial learning curve. There are several online tutorials on how to use vim. I would highly suggest you go through those if you have a chance. I use vi and vim interchangeably. Vim is vi improved so vi is visual interactive. Is that what it is? Visual interactive editor? Visual interface something like that. It's been around well I found my notes from when I was an undergrad in 1990 so I know it's been around at least that long. But like I said it has a really steep learning curve but it lets you do really nice things like search and replace is all from the keyboard and it lets you search through files really quickly. It lets you clap sections and expand sections and replace all instances of this with that kind of thing. The other nice thing about mobile extram is it has an old editor built into it though too. This is something that you don't get with putty or with filezilla or any of those. I can right click on my myhost.sh and I can say open with default text editor which it has its own text editor built in and that is the default. And what it does then is it downloads the file to your machine, lets you open it. I'm going to say another test and when I save it has been modified you want to replace the remote file. Yes and then it reuploads it as soon as it's done. So it does it all in one step it downloads it and it's on your machine reuploads it all in one step and now you can see that I have that back in there again. Yeah even though they look the same windows and unix use slightly different formats in that it's how they use a character turn. Windows has two types of they do a control r control m at the end of every line and as opposed to a control r by itself. So it's basically just how they put the file together and we have some commands dos to unix and unix to dos that'll strip that so I can say uh dos to unix dos being of course a relic of windows from way way way back a long time ago but I can say dos to unix myhost.sh and that will strip those off of there. Mobile X-Term does that automatically so I didn't really have to do it here.  So that's kind of a quick introduction on getting files into and out of directory structures. The only thing you really should pay attention to on on Linux it's a bit different than what you might be used to is permissions. Every file has a set of three permissions and if I look at this I'm going to ls-l ls is to get a file listing dash l means along so I'm going to look at all the information I have on this this is the information that gives me on on my files here so if I look at myhost.sh you'll see that I'll work my way from this side it was last edited on February 5th at 1508 or 308 in the afternoon so about a minute ago that's what we expect this is its size it's 19 bytes these are its owners by default your files will be owned by you so my the owner of this file is Kyle Hudson and the group is Kyle Hudson users there are a few of you in here who are in some groups that you'll get some other groups on here when you when you edit files and we set those by default particularly in certain directory users say hey if you're in this directory use this group you can still own it yourself but but have your group be the group owner and that's relevant because of this over here there is a section over here that doesn't seem to make a whole lot of sense unless you know kind of what's going on but it becomes very important because we see a lot of this especially if you're like trying to run somebody else's code this is the probably the biggest thing that keeps keeps that from happening there are three sections here the first one is the first column all by itself and on all this all these cases it's just a dash which means uh it's not a directory there'll be a d in there if there's a directory occasionally they'll come across some other strange things device files things like that 99% of what you deal with and what and what we're having to worry about is right here uh if I had a directory here they'd have a d on the side instead of just a dash then the next section is three in a row of rwx rwx rwx and like for instance the file that I just had here that my host has rwx r-x and r-x what that means the first section is for the for the owner so that's me I'm the owner I'm Kyle Hudson so this rwx means I have read write and execute permission the next group is for anybody it's in my group the Kyle Hudson users group it just so happens there's nobody in my else in my Kyle Hudson users group so this there's nobody really the supplies to but again for some of you guys who are like bioinformatics that kind of thing some some individual professors have their own groups for their grad students uh if they can if they can write to it and you can't and you should be able to you need to have them change this because this means that anybody in my group has read permission and execute permission but they do not have permission to write that file so they can't change it that's handy as you can as you can imagine sometimes yeah I can let people look at my stuff without letting them without worrying about them messing it up the last group is for the rest of the world so this last rwx says the entire world can read and execute this file but cannot write to it again usually you see the least restrictive over here somewhere in the middle and then what you want the world to be able to use I'm not going to go through the ends and alts of change group I'm pretty sure it's on our page here on Linux basics let me look real quick if not well we don't have change group on there what to add that in there or not I'm saying change ownership say Joan which is also not on yeah there we are I do it all the time you'd think I would have the commands down so this is just real quick and this this explains the permissions on this page the ownership and permissions this goes over what and a little more detail of what I've done here too but it tells you how to change these so you can say chmod u plus x which means I'm giving the the user group other is the you so that's giving myself you plus x I mean I'm adding the x permission I'm I'm giving myself permission to execute it you can also take that away so I could say oh which is other user group other so it's taking the world if I'm saying oh minus r that'll say take away read permission from the entire world there are some groups that like their stuff tighten down they don't want anybody else to get into it that's fine I will tell you that there are sometimes they want us to troubleshoot problems and Dave in particular cannot because Dave is not in any of our special groups he can't get around the permissions models Adam and I can we only do that under certain circumstances and pretty rarely and so usually if you're wanting us to help troubleshoot a problem you're going to need to give us some permissions to to go in there and and look at these any questions at this point that are they're all completely confused because it's all going over their heads so one of the two I hope that's not the case yeah how many credit hours is it worth all right let's see if that nobody wants that um in that case let's go ahead and take like maybe just a five minute break or so uh just relax a little bit and we'll come back and we'll talk about our scheduler and how all that goes together uh how many of you have before I do that how many of you had not seen bao cat we will go down there and give a tour at the end if you have anybody wants to go anybody want to go you want to go anybody want to go see yeah okay we'll do that yeah go see the go see it at the yes at at the end well not not now we'll do with it we'll do that right at the end of the class so but I'm just trying to get a feel for it that's something we wanted to do so a lot of times a lot of times these introduction classes people have not actually seen it so we'll take you down and give you a quick tour at the end or you could just go stay down there by it I don't care I don't matter you go away the other all right so uh about five minutes here we'll uh take a quick break and uh we'll take it from there you're going to dive in on the other stuff well I can do there's a page on the language scroll control scroll control and scroll nice we'll leave it that about that big that'll work and if any of you guys want the microphone you're more than welcome to take it from here like I said I'm just the guy who likes to talk so I think there's another one there we did that too well they do it both same time okay well the next section there's a section on going through the languages and stuff like that it's pretty great so here's what our here's how you run an rpo that kind of stuff okay well we got to go through the scheduler first though so why don't I go through the sorm and kiss that stuff okay right right and apparently I'm not sputtering the thing there we are if I'm going to get in the right spot first and we'll put this on at the end because it it'll fall back off again as you're doing it I've had this happen a few times barely barely hanging on there I'm going to yeah they figured out how but so this is within moba x term so it's not supposed to be doing that yeah that involves me uh figuring out as figuring out where's the session yeah that's what I clicked on down just the left of the file brother yeah I'm having trouble that there you're you're on here sessions this is a little x term you already have that one okay I'll just create a new session there this is creating a moba x term session or is this okay yeah but it's still putting that header stuff in there for some reason it's screwed up it's putting the slain and the slain in the uh directory that it shouldn't be so it's screwing something up oh well I can live with it and you said it's control and scroll okay and how do I get to the web browser got it any idea what the command is to increase the font on this I'm chrome I'm older than you are okay can everyone hear hear me okay so for those of you who used uh bail cat previously we used uh uh before christmas uh we were on a different flavor of linux called gen two and now we're on centos linux centos is a little more common uh when it comes to supercomputing so this puts us a little more in in the mainstream as far as our usage we also converted over from sge which is a sun grid engine uh scheduler over to slurm slurm is also used more commonly in other uh supercomputing centers so uh this aligns us a lot more closely with what other places are doing uh this does mean that uh if you've used uh our system before christmas and haven't since you have to recompile your code uh there are different things that you have to learn like submitting a job is different with slurm than it is with uh with sge and we also manage things using modules uh which makes it much easier to switch if you want to use different versions of mpi you can switch in between we have uh certain applications that are loaded by doing a module load for example so what i'm going to do is go through some of the basics of how to use our current system um some of what's in here is also how to convert your old scripts to new scripts as well so uh i'll just start here from the scratch uh one of the first things to know is again the use of modules there's probably about a hundred modules or so that you can choose from and to list those you do a module avail to get the list of available modules then to load a module if you are using the application vasp for example you would do a module load of vasp and capitalization does count you can then do a module list and if you did these other two commands if you did the module load of vasp and then do a module list what you'll see is that it actually loaded a bunch of other modules that vasp depends on so vasp for example in order to run it depends on an mpi library so it loads open mpi that's one of the nice things about modules is that it has all the dependencies in there for you when you do a module load it sets up those dependencies it sets up all the paths that you need so this would set up the path to vasp underscore std for the standard version of vasp it also sets up any library paths or environments for example if you load python it sets up your python environment so you don't have to source that like you may have had to in the past let me just switch back and do that real fast so so again if you do a module avail it'll list all these things like boost is in there there's a bunch of gcc stuff so these are just an extensive list of what you can do so here i'm just doing a grip which is a search for vasp and again what this is telling me is if i just do a module load of vasp it's going to choose this last one because that's set up as the default d here this one was compiled for iomkl iomkl is a tool chain it's the intel compiler tool chain along with the open mpi the o stands for the open mpi stuff mkl is the math kernel library that comes with the intel stuff so anytime you see iomp excuse me iomkl that just means it's compiled with all the intel tool chain uh this one here was compiled with gnu stuff a lot of times with the gnu tool chain you'll see fos for free open no fos free open software uh system free open source software so those will be the main tool chains that you'll see a lot of the uh applications so again if we do a module load of vasp then it'll say oh i changed all these things i already had some modules loaded before so it changed the gcc core from 7.2 down to 6.3 it changed the open mpi version and some other things like that so the thing you should remember here is that when you're running an application it'll set all these things up for you if you have certain uh modules that you use a lot you can put them in your bash rc file so i'm going to look at my bash rc file and i put them after this conditional this conditional is the test for whether the shell is interactive or not and i put down a module load of iomkl because i want the intel compilers there i also want a newer version of pearl the 5.26 version so i always also have that so that it always uses that um so you can put your modules uh in your bash rc file if they're ones that you use regularly um because i have those in there when i loaded vasp it said well the versions that you had in there were not the ones i need for vasp so it reloaded the correct ones so now if i do a module list again there's the pearl that i loaded um let's see vasp is down here and then open mpi is here so now if i do a which vasp std which is the binary that i'm running uh it knows right where to look for it because that path was set up so this is a nice thing about modules is that once you so if you're running an application that it's in a module you just do a module load and everything gets set up for you so if i again i need to do mpi run to run vasp uh that's already set up as well so it knows the path to get the to the appropriate version of mpi run so that's kind of the uh basics of using uh modules um on wednesday we'll cover a lot more uh in-depth issues about modules some more advanced stuff so if you're using custom codes that are not in a module uh you may have to compile those yourself uh probably the first thing to do is if it's a if it's a uh program that's not listed when you do module avail but you think other people around the university might use that you should probably contact us first because there might be an easy build an easy build is how these modules are set up um so it may be something that that we say well other people might want to use that so we'll go ahead and make a module for you but other than that if you have custom uh software uh it's your responsibility to compile that on your home directory and we're available to help you you did say help though yeah show us that you've actually done a little bit with it there are too many people around campus for everybody so give it a shot you have problems then contact us yeah and again the uh module load of iomkl is intel stuff the module load fos includes not just the genu compiler but kind of the equivalent of what's in the math kernel library uh but on the genu toolchain so that would also load openbloss which is an optimized uh bloss library uh the fftw library and scale pack okay so as far as running your code if you ran under sge you will have a script similar to this that you used qsub with with slurm everything up here basically has a different syntax down here but it's mostly a one-to-one matching so before where you had a pound dollar sign so before where you had a pound dollar sign up here for your qsub commands here you have a pound s batch instead of doing a minus j oh this is a join so that joins the input or the standard in and standard error that's done automatically down an s batch so here i have a used current working directory that's also done automatically here you specify the name with a minus capital n so i named it netpipe here you do a minus minus job dash name equals netpipe so you can see there's a lot of times a one-to-one conversion so what i did is i actually wrote up a pearl script kstat.convert where you give it a qsub script and then you do a minus minus slurm and give it the slurm script that you want it named and that will automatically take this and convert it into one of these it's pretty good i haven't had too many people complain about uh there being anything left out uh and if there's anything it can't handle it'll normally give you a uh a warning message saying you need to handle this um so if you do have old qsub scripts you can automatically convert them again using kstat.convert with s batch just a few things that i'll mention is the direct conversion we use memory per cpu which is the same we did under qsub so right now this is asking for one node 32 tasks on that node four gigabytes of memory per cpu a cpu is a core so since we asked for or task so since i asked for 32 tasks in this case i'm asking for four gigs times 32 as the total memory the other way to ask for memory is to use minus minus mem equals then you can specify the total memory per node so again this would be node if you still are asking for four nodes 32 uh cores per node so one of our doors four of our doors uh this is still putting in a request per node but if if you find that's more convenient than per core uh that's just fine either one is is is fine the time is a little different in that you can specify days it's days dash hour hour colon minute minute colon second second so uh with time again you can just specify the days before a dash i reckon there's different ways of asking for nodes i reckon our cores i recommend using the nodes and tasks per node uh as a general way of doing that uh if you that gives you a regular arrangement so that you can ask for like four nodes four tasks per node and you can control things very accurately if you don't care where your tasks are uh like if you have an embarrassingly parallel code and it doesn't matter whether they're on the same machine or spread across machines or not you can use just minus minus n tasks equal 12 and it'll just spread them across anywhere but a lot of codes uh we had one today that i think Adam pointed out where they're running a classical mb code and spreading it over multiple machines well the the communications is slower across or between machines and it is if they're in the same machine so that code is going to be running slower than it should be so if you use the minus minus nodes and the n tasks per node that allows you to control things uh better than uh some of the other options we'll go over more options uh on wednesday this last stuff you can have it mail you can have it send you email um when the when your job begins ends and if it fails in the middle right now i have it sent to all uh we'll cover on wednesday how you split that up i think you just put this begin comma fail would just give you those two begin comma end and then here's the here's where so all these up here are commands that go to the uh slurm scheduler to tell it how to allocate nodes this line here is where we told to run the code so i'm running my netpipe code i'm telling it to use mpi run because it's a mpi code is a multiprocessor code np tells it how many uh cores to run on and this is an environment variable slurm and prox is the number of processors that you asked for this is the application the netpipe application and then these are the parameters so again everything all the s batch commands uh are what you're telling the scheduler and how to allocate uh how to allocate machines and memory and so forth so this kind of goes over some of the memory and tasks options that i mentioned before and again if you're interested in more advanced uh use of slurm uh then you should come on wednesday at least for the first hours we'll cover a lot more advanced things on modules on using slurm and things like that so let's just start by talking about submitting your first job once you have a script you just use s batch to submit that script s batch and then the script name and then you can use kstat to see that it's been submitted so kstat the one that i use commonly is minus minus me that'll tell information about just your jobs so let's go ahead and do that a quick one here so my s batch script i have it called sb short for s batch dot test oops sb dot sleep again the first line is just telling it you're in the bash shell the minus l is necessary to tell it it's a login shell i named this one sleep i gave it uh this is something that won't come up very often i told it to wait 10 hours before it runs and you don't want to do that normally you want it to run as fast as possible so i just do this because i wanted to sit in the in the queue so i can show you i limited it to one hour um these i have commented out because i put a second pound sign there but some of you will have priority uh to run in certain on certain machines so this gives me priority this line would give me priority to run in the cis hpc group which is just the bail cat group uh this would give me priority to run in christine akins group she's a chemistry professor so i'm asking for one node four cores on that node 10 gigabytes total and then i'm asking for specifically one node here so ignore these two in general for right now we'll cover those more on wednesday then these are the commands that are actually going to run it's just going to list the hostname and then it's going to sleep for 3600 seconds so the hostname just prints out the hostname which is saline in this case so to submit that i do an s batch sb dot sleep and it says it submitted it just fine if it has any problems with that it would tell you and then if you don't know why that's what you email us is to copy that and and say hey i submitted this job it gave me this output that will give us the job number and the error code so i'm going to do a kstat minus minus me and it takes about five seconds because kstat is a pro program that i wrote up it goes out and gets a lot of information from different places colorizes it and presents it to you in a more readable form so it says the only thing i have running is in the bail cat queue it's me as a username i named it sleep this is the user id it's on four cores and it's pending this is in yellow because i put it on hold and then i asked for 10 gigabytes requested and it's been in the queue for zero minutes just some more things about kstat if you do kstat minus minus help it will give you this help information some general usage if you just want to look in the queue you do kstat minus queue um if you do kstat alone kstat alone it'll give you basically information about all the hosts and all the jobs running on the host and everything in the queue uh kstat minus c will give you information about what's running on the on it so let's let's start out with just doing kstat and looking at some stuff so all this stuff at the bottom first of all it tells you how many cores are being used so we're running at about 83 percent with 43 nodes down there's a lot of those that are just kind of dead these are all the users submitting jobs so this user is submitting a lot of jobs for one core the underscore and then this means it's an array job so they submitted 16 jobs at once for example they're asking for 512 megs and some of these jobs have been waiting for three hours and 35 minutes anytime you have this which is actually more of an orange color that means they submitted to they have priority on certain machines so this person is Jeff Comer he has priority on his own machines uh this user Luke has priority on Amir Bahaduri's nodes and you see mine up there at the top uh I have high priority just in general being one of the administrators so that's why mine's at the top it's not running because I again told it to wait 10 hours because I'm not very smart right okay so these are up here are the jobs that are actually running so you can see the first thing is the this is the name of the the node mole is one of the classifications of our nodes these are some of our newer ones 20 of the 20 cores are full the load is 19.6 out of 20 which is good if the load level is much lower than the core count that means someone's running inefficently this is something I look at every day and then I'll I'll try to figure out why and I'll email that person and say hey look you're you asked for 16 cores but you're only using one this is what's wrong in your code let's fix it so you can use all 16 just because you asked for 16 cores does it mean that your code can use those that's one common misperception this is the amount of memory that's being used on that host it is not very accurate it sometimes counts disk cache in there and then this is the owner clear off to the right here so anyone from their group gets priority this is the person running there is Mike this is the job name he's running on all 20 cores this is in red red means it's a killable job that means he's not actually in that group but no one from that group is using that node so it will run killable jobs killable jobs or anything 24 hours or less so if you submit a job for 24 hours or less it'll get flagged automatically as killable and run on machines that are owned by other people so that's a good thing but if one of their users comes along it'll kill that job off and put theirs on it'll automatically reschedule your job though so you don't have to do anything about it and then that's why we say only 24 hours or less because we don't want you to waste you know we don't want to get 12 hours in or we don't want to get it run a three-day job and then have it killed off and have you start from scratch again with with the old system with sge we were able to pick up very accurate indications of how much memory your code used with slurm we just can't do that right now and that's something that we're still working on when you request when you put in your s batch script you have to request a given amount of memory if you're running to start with you just have to guess right now if you exceed that amount of memory your code can run slower because you hit disk swap so it is important to overestimate if you overestimate by too much you can limit yourself to what nodes you're running on and things like that a good first guess is to start out with about four gigs per core because that's typically what most of our systems have if you need to know more exactly if you're running large memory things like if you're in chemistry or biology you can use ganglia which is one of our websites and we'll go into that a little bit more probably on wednesday on how to look at the memory there it's a little more in depth but just be aware that with case that i do try to pick up the amount of memory that you're actually using but i only see it displayed maybe one out of 20 or 30 times and it's just not clear why that doesn't come through more easily so let's see if there's anything else that comes up so these are totally empty so they're waiting for someone to run on they are owned by some group so maybe we just don't have enough killable jobs available in the queue is that a minus sign there yes yeah so some more empty nodes but yeah so we have some moles that are available so anyway those are some of the things that you can look at with kstat another thing you can do with kstat is do a kstat minus c that'll give you kind of a summary of the core usage so this will tell you each user how many cores they are currently running on and how many they have in the queue the colorization green means me i have four cores queued up red in general just means you're using more than 10 percent of all the cores yellow is i think more than five percent so it doesn't mean that you're really doing anything wrong it just highlights the bigger users and in this case for example this person is using 14 percent of all the cores but his major professor also owns a lot of the cores so he has every right to use a lot so that just kind of can give you a summary of the core usage okay so again kstat minus me let's get back to the script that i submitted and again it's going to be just sitting there in the queue again because i told it to wait for 10 hours so what if i decide that i want to cancel this use the scancel command and then let's see that's 170698 so the scancel will just simply kill the job off uh when you submit jobs it doesn't necessarily uh well it'll submit them right away even if there's open nodes it may not run them right away it does take slurm you know a few minutes to uh figure out even if there's open nodes to get your job running you can see it canceled things very quickly um um one note on this we do have a professor who is uh working on analyzing part of his research is he's analyzing uh the reasons behind why people use scancel and so part of his research he wants data on uh why people are doing an scancel so what he's asked is that people load a module for scancel and what that module will do is when you do the same scancel it will simply prompt you to put in uh the name of the application that you're running and then the reason for why you're doing the scancel uh this will help him with his research it helps give us some feedback uh on things like well are you canceling your code because you gave it a certain amount of time to run and you're running out of times you're canceling it because of that so we can get statistics on how much a system time is being wasted because there's that hard time limit and is that something we can give feedback to the people who do the scheduler to make it maybe more of a soft time limit or something like that it should be extended so we want to do things like this to try to help uh improve uh the system so he's uh encouraging people to do this uh Dan is also going around trying to convince the professors that own some of these nodes to mandate that everyone that works for them uh opt in the way to opt in is to put this module load of scancel in your bash rc your dot bash rc uh file so i should have done that in fact so let's go through this process so now it gives me uh the application name and i'm just going to put sleep that's yeah i'll just put tests so he knows to delete me uh to delete this entry but if i was running vasp for example i would put vasp in there uh there's whatever the name of your code is try to keep it simple if you're running a classical molecular dynamics code code there's a common one NAMD NAMD for nanoscale molecular dynamics that's what you would enter here now it's giving a variety of multiple choice bins that you can choose from i'm going to choose bin b because this is a training workshop but you want to try to uh determine which of these best fits you if you made an error with your script uh then you'd put d1 if it was an error with your application parameters d2 and so forth so we've tried to simplify it so there's bins to put in so again i'm going to put b here you see at the bottom is other if you want to enter other you don't put other and you just put the reason in in freeform and it'll store that but otherwise you can just do multiple choice and this will do the s cancel and it'll log that information for him so we've made it as easy as possible and again it'll help him with his uh research then so oops the tilde here means go to my home directory and then the bash rc so if i wanted to do a module load of s cancel so now i'm opted in oops no not so now i'm opted in yeah so now i'm opted in and vincates will be happy with me until i comment it out later okay so any questions about doing the simple job submission and some kstat stuff and we want to do 15 minutes for the tour 10 or 15 okay so submitting your first job to monitoring your job went through that and again with kstat there's a lot of stuff in there you're just going to have to play around and if you have any questions you can always ask me one of the things that's nice about kstat is if you submit a job and and want to know why it's not running or information like that you can do a kstat minus j and give it the job number and that'll print out the job here and it'll print out a lot of other information here so let's actually go and do that because it'll be colorized again kstat minus j and then i gave it the job number so up at the top it shows that it's in the queue and it shows the information that kstat would normally give you but i also grabbed information from another place and highlighted it so the highlighting stuff is things that you can look at the status is listed as pending the reason is giving here is that i i specified a beginning time time other reasons it can put up here are resources meaning it just doesn't have the resources it can also say priority meaning other people have more priority than your job gives you the time limit here this is the one that i highlighted most this is estimated start time a lot of times you'll submit a job this estimated start time if it says it's going to start in three days don't really worry so much about that this is worst case scenario it looks at the current state of the system and it says uh if all these jobs finish when the person says that it's going to finish uh in other words it's taking the hard time limit then this is when you'll get your job scheduled so we have people who submit jobs and always put 28 days down because that's the maximum time so these are not always that accurate um so take this as a worst case scenario and if it does say two weeks then you might want to contact us but under normal circumstances this will keep moving up as other jobs finish before their specified time one thing to look at that's useful is the partitions that you're in so if you do have priority to run on certain machines this is a good way to check and make sure that that came through and that it's actually looking and putting you in your priority queue now this also put this put me in the killable queue because it's a job that's shorter than 24 hours and also in the batch queue the general one i didn't specify a given list and this is the other line to look at because this is how many nodes and how many cores i requested as well as the memory request then it actually lists your script it does uh i have it uh getting rid of all the comments and stuff but it does actually list your script this makes it easier on me in particular because if you send me information saying this job doesn't work this is the first thing i'm going to do is look at this and then it pops up where your script is here and what your script is so if you do just give me the job number and don't give me the path and so forth and the uh script i can pop that up any questions on that okay so i covered the case that minus c okay more information is in advanced learn that's what we're going to cover on wednesday advanced modules advanced stuff on slurm nest batch okay the last thing we're going to cover today is on uh some of the software that's installed and this is mostly dealing with how to run using different languages uh for a complete list of installed modules that are module lists i already showed you how to use module avail so we'll go over this a little bit more and tool chains more on wednesday again the main tool chains are the fos the free open software stuff and then the iom k l stuff you can specify subsets of that like just icc for example or i4 intel stuff that in general this will get you the whole package okay most commonly used software open mpi again mpi is the message passing interface that allows you to run multi processor jobs where the uh processes can either be in on cores in the same node or they can be on cores in different nodes and again you do a module load of open mpi and that'll set up your mpi run which is how you launch them it'll also set up your compilers which are like mpi cc is your c compiler and mpi for for example for your fordran compiler i'll go over those more on wednesday in the second hour for those of you who want to know more in depth about parallel computing i'll probably tell you more than what you want to know about parallel computing um r the r language a lot of people are used to using r from the command line so you can actually get in on the head node and type capital r and it'll give you the command prompt and you can do things on the head node you just have to do small things you'd have to do the module load of r first uh but you can do small things uh to use r on on the compute nodes uh so there's your module load r and starting r you want to start by installing packages on the head node if you need them so you can't put so you're gonna when you run an r job in batch mode on baocat you're going to put all your r commands into one file and you're going to submit them in your script you can't do install packages in there because install packages will prompt you for things like what mirror do you want to use what site do you want to download things from so the install packages command is one thing that you need to do before you submit a job with s batch then in your script you can use the library command to load them uh let's see okay that i think there's a mod or there's a library load or something yeah i'm not an r person really so so in your script then you have your normal s batch commands up here the uh where you request certain numbers of tasks then you can put the module load r in your script so this is something i didn't mention before if you're going to use a module like again if you're running vasp uh you can do that interactively and do a module load vasp and then when you submit your job you can just use the application vasp underscore standard and you don't have to put a module load in your script if you don't want when you submit a job to s batch to the scheduler it takes your current environment and all the modules you have loaded and passes that along uh when it uh spins things up on the compute node it's a good idea however to do it this way if you're going to be reusing a script it's not a bad idea to put your module loads in that s batch script just so that you make sure that you're running with the same modules all the time in fact one of the things that i do is i'll do a module purge which starts with a blank slate and then i'll i'll do a module load of the exact modules that i want to use that way i guaranteed that each time i submit it i get the same set of modules and if you really want you can put a module list afterwards so to list those uh and puts that in your output file your log file so again for r we're doing a module load r then we're doing an r minus no save minus q and we're piping in our commands so this is how you run r in a batch mode so it's different from running it interactively you have to put all your commands in these the uh script here and then use that as piping it in from standard in to r then you submit your script and it'll run it in a batch mode so any questions about that we have java that's the extent of my knowledge about java any questions on that for adam and again one of the nice things about modules is uh i'll mention this here so uh for python it's very common that some python codes need python two and others need python three this is the nice thing about python is that you can load the version that you want if you just say module load python it will choose one of these which is the default the last one so it'll choose this last one which is python 363 with the intel mill if you need python two then you should do a module load of this whole line here to specify the whole thing and you can again choose whether to do the intel build or the there's a couple different gnu builds here so that is one of the nice things uh doing a module load of python then uh for example here we'll set up uh some of your virtual environments there's a little more information about setting up yeah do you want to comment on any of this adam previously we were using uh the virtual env wrapper this is the wrapper was wrapping up these commands and so this is just maybe slightly harder but also more straightforward and that's if something breaks you can see is here what what broke so yeah so we had a lot of people uh when we did the changeover uh that still had that sourcing of the virtual env wrapper and they said well this doesn't work anymore so it's broken now it's it's actually that you don't need that uh but you need the functionality so uh you should uh if you're using python you should uh log in and look at the website and here and uh see what you actually need to do that's a little different and then this right here is how you do python install stuff with pip install okay pearl uh again i use the newer version so i there is a default version uh that's available i use a newer version the 5.26 because i need access to a lot of colorization stuff uh and again so i just do a module load of the pearl 5.260 submitting a pearl job again you can do the module load pearl uh and then you do pearl and then the pearl code you can also just specify the pearl code in there okay installing your own software uh i think we're going to cover that on wednesday how are we on time okay so let's open it up for questions again and then uh uh we'll take everyone on a tour who wants to any questions or comments yeah um even by installing my own software it's like if i'm using either so yeah so if you're using this is actually a special piece to do uh even license software is a whole and again anything having to do with the licensing system we're about to touch base with us first open source software it's free to use with there's no licensing issues with it ones that aren't you know that the other 10 percent that we need any more questions so again on wednesday we're planning on going more in depth on some of these issues like modules and especially going over more on slurm uh talking about things like array jobs and environment variables and things like that um we'll also get into more uh software installation and so the first hour will be a lot more of those advanced topics the second hour will be me talking about parallel computing so i will talk about what a parallel computer is some of the different hardware aspects programming it in mpi and open mp i'll just give some basic examples kind of to give you an overview of what that's about i'll talk about job performance of parallel applications communication stuff like that so you're welcome to come for both hours if you want to cut out after one hour that's fine uh so just kind of pick and choose if there is something that you think you would like us to cover on wednesday uh let us know so any other questions okay well thank everyone i'd like to thank everyone for coming and anyone who wants a tour i'll just leave you down downstairs and get a quick 10 or 15 minute tour