Okay, so I will just clear up one issue that we had left over from last class, right and then there is one topic that I want to talk about because that brings me to a summary of some of the things that we have been doing in this course, okay. And then in tomorrow's class we will do a closure so you can tell your friends and everybody to be ready to try to recollect what we did in the last 40 plus classes, is that fine? Okay, so we will try to make that a collective affair, we will see if we can together recollect what happened in the last class, an overview, right, so that is fine.  I will just sort of write this out, you can work out, right, you can work out if there is some issue. And the whole point is actually, you have to just go through it blindly, the minute you start counting you can start making mistakes. So this turned out to be a 1 over 2h if I remember right, I am doing this from memory so just make sure that I do not make any mistakes, i equals 1 through n minus 1 minus Ui Ui minus 1 plus Ui squared plus Ui Ui plus 1. I should really write the secular terms in front so that there is no confusion with, I make a mistake minus, did I get a 2 Ui squared, okay, is that fine, okay. And then of course you have these terms which is plus Ua squared by 2h plus Ub squared by 2h, right. So what we do is we want to find the extremum, we want to find, depends on maximum and minimum depends in fact on whether you, how you write, right, whether it is minus Uxx squared or minus Uxx or Uxx. I differentiate this with respect to Uj as I said because the second example I gave I did this funny counting, right and if you want to check this out you can actually count and see. So what does this give me? This gives me 1 over 2h summation i equals 1 to n minus 1 and we just go through this blindly, okay.  So if you say j equals 1 or j, right, j equals some particular value then obviously depending on what is the dou U2 dou U1 is 0, right. So only if i equals 1 it works, right. So this is going to work. So each one of these derivatives is going to work. So if j equals 1 only if i minus 1 is 1 it works, right. So you find out when these are non-zero. So this is non-zero if i is j. This is non-zero if i minus 1 is j, right. This is non-zero if i is j. This is non-zero if i plus 1 is j. Am I making sense? Is that okay? And this is non-zero if i plus 1 is j. This should be i equals j, i equals j. So if you say i equals j then that becomes j minus 1. If i is j then that becomes j minus 1. So this is minus Uj minus 1. This is Uj plus 1. This one is 4Uj minus Uj plus 1 and this should be Uj minus 1. This is the derivative for j equals 1 through n minus 1, right. Now we are going to pick each of the j's. So each one of the j's j equals 1 we differentiate set it equal to 0 get an equation. j equals 2 we differentiate set it equal to 0 get an equation.   We are going to set it equal to 0 and this is 4j equals 1 through n minus 1. You understand what I am saying? Okay. This is 1 over 2h outside that I have left out. Okay. So this is just by way of otherwise, so this is Uj minus 1 plus 2Uj minus Uj plus 1 by h. Okay. Multiply and divide by h it obviously looks like the second derivative being set equal to 0. Is that fine? Okay. Fine. Yeah. So I just wanted to clear that up. The other possibility is actually if you enumerate since it is in one dimension you can actually enumerate. You can count them. Okay. You can count them and you may get a different recursive formula here or you may get a different expression. You could write it in a different fashion right because they are sums. You can combine them in different fashion. So if you wanted to collapse, you wanted to combine this with that you could actually do it. If you rewrite the sums a little you could write this as jh of U is 1 over 2h oops 1 over h and I am just doing this from memory. So you can check it out later.  So the n is there minus Ub squared by 2h. You can check this out. Okay. The nth one here shows. So you can rearrange these terms. It is just a matter of how you collect the terms. Okay. There are different ways by which you can combine the terms. So you could get something of this sort. If you wanted to combine the i plus 1 term with the i minus 1 term. But my suggestion is all of this work you can do this kind of stuff very easily when you are dealing with 1d, one-dimensional. The problems are relatively separate.  Okay. So I bring the calculus of variations. It is not as I said it is not quite finite element method. But you have an idea that you can use these hat functions and various basis functions that we developed to solve differential equations. There is a variational form. So you have the differential form, the differential equation form and then there is a variational form that is associated with that differential equation. There is a relationship between them. Okay. So there is a completely different class of techniques that you may or may not have seen earlier. Okay. There are completely different class of techniques. That is fine. Now what we will do is we will change gears a little. Right. So it is sort of an abrupt change from what we are doing so far. But it is okay. It does not matter. I mean since we are near the end of the semester it is a natural progression. You know generally I am going to pick a topic which is normally taboo in most cultures which is gambling. So gambling is illegal. Supposedly legal in India. I say supposedly because if you go do the right paperwork I can actually come to you and make a bet. I could bet for instance that I am going to, I bet 1000 rupees that I am going to die tomorrow. Right. And you can say no, no. I bet 1 lakh rupees that you will not.  Making sense. So there are, this business of gambling is a very, very strange, very strange thing. So there are lots of situations if you actually look at it you can finally decompose it into some form of a gamble. Okay. Some form of a gamble. Right. So I give that example of insurance to rationalize the fact that I am going to give, take gambling as a motivation. Okay. A game of chance. Let me call it instead of gambling let us call it a game of chance. So there are two players in this game of chance. The two players are for lack of anything better I will call them A and B. There are two players A and B in this game of chance. Between the two players they have some token. They are 100 chips. Tokens are what they use to figure out who is winning, who is losing. So between the two players they have 100 chips. Okay. So at any given time, at any given time if A has x chips, B has 100-x chips. What we would call a zero sum game. Okay. So if A wins, B loses. Right. So there is no win-win situation here. That is what I mean when I say it is a zero sum game. Right. So we simply if B wins, A loses. So we know that if we know the story of one of them we know what is the story of the other. It is a complementary story. So we would like to know, we will just look at A. We will now ignore B. We will just look at the story of A. What is the story of A? So you can be wondering what the heck does this have to do with CFD. So we will see whether it has, whether the story has anything to do with CFD or what we have been doing so far. So if A has x chips, now we are concerned. Now we ask the question, what is the probability that A will be ruined? By A will be ruined means through a sequence of events that A has zero chips. Okay. So what are the events? The event is what is called a round. After each round, right, after each round, whatever that round is, there is a probability, there is a probability P that A will win the round and if A wins the round, one chip is transferred from B to A. Okay. So with the probability P, with the probability P, right, at any given round, A will win that round. With the probability Q, so this is win. With the probability Q, A will lose the round. Is that fine? Everybody. So yes, this is all very nice. This is that single round, but what I would like to know, what A would like to know, right, what I would like to know is if A has x chips, what is the probability of ruin? What is the probability that A is ruined given that A has x chips? You understand what I am saying? So we will call that probability, probability of ruin, probability of ruin because of A given x chips, we are just setting up the problem. We are doing, we are doing, so that is Q of x. Is that fine? Probability of ruin is Q of x, fine? Everyone. So now you start. We basically say that A starts with x chips. You start the, start the process. You go round 1, round 2, round 3, round 4 and you ask the question what happens.  After one round with probability P, it could be x plus 1 chips and the probability that A gets ruined with x plus 1 chips is Q of x plus 1. What is the other possibility that you lose? The probability Q and you have Q of x minus 1 chips.  So just say it can be, if one of them is not cheating then P is likely to equal Q. They are not cheating. I say PQ, one of them may be cheating but if they are not cheating then P is likely to equal to Q. But we know that P plus Q is 1. There are only two possible, I have enumerated the two events. There are only two possible events.  I use the word transition. You transition from x to x plus 1 with the probability Q. You understand what I am saying? Or you transition from x to x minus 1 with the probability P here, the probability Q there. So Qx would be this. Now if it turns out that neither of them is cheating and it is an even game then P equals Q equals equals 1 half. So this tells me that if I substitute Qx equals Qx plus 1 plus Qx minus 1 divided by 2. This is round n. This is round n. This is round n minus 1. I will count the other way around. I will count the other way around. So this is, I will decrement instead of incrementing. And now this is starting to look familiar. So what I do is I subtract, I subtract Qx minus Qx n minus 1 from both sides.  So I have minus divided by 2. This 2 comes because in the denominator I have a 2. This looks like heat equation. This looks like the discretization of heat equation. Is that fine? So we started off with 2 gamblers. We are talking about the ruin and we end up with a heat equation. What is the deal? How does this help us? What does this do for us? What does this do? It looks like the discretization of heat equation. This is 1 half. You remember the stability condition for heat equation? That is, we created a, we had a parameter. This is lambda. 1 half is lambda. Lambda equals 1 half. If you go back to the heat equation which was kappa delta t by delta x squared, okay. That is exactly at that stability margin, at that stability on the edge of that stability envelope, okay. So yeah, it is a heat equation. It looks like the discretization of the heat equation. So before, okay, let us see. So we have the heat equation. We need boundary conditions. Where do the boundary conditions come from? This is all very nice. This looks like the discretization of the heat equation. Where does the boundary condition come from? You go back here. Go back here. If x has 0 chips, then the probability that x loses is 1 because you are not, that is it. You have nothing. The game does not go on anyway. You understand what I am saying? So q of 0, q of 0, q0 of 0, q sub 0 is 1, right. And if x has 100 chips, then the probability of loss is 0 because you have already won.  So the boundary conditions are this q of the probability of ruin if you have 100 chips is 0. Is that okay? Is that fine? Okay. So here it looks like our usual heat equation, discretization of the heat equation. We have the boundary conditions. So that is a 100, 0, that is a grid point 0, that is a grid point 100, and q of 0 is 1, q of 100 is 0, okay. And what you would do is you would take in between, you would take values and you would take the averages, keep evolving in time. It could keep evolving in time and what is the solution going to be? What is the solution to this equation? ut equals kappa uxx is going to be a straight line going down from 100 to 0. So that gives you the probability distribution basically. It is going to be a straight line going from the probability 1 to 0 and the y value there is 0. Is that fine? Everyone? Okay. Of course there is a difference here. This is a continuum. There are discrete chips. There there are discrete chips. This is a continuum. That means somehow I have to fragment the chips. If I want to do this limiting process I have to keep breaking the chips down, right? I have to keep breaking the chips down. What we do know is the limit of that equation as delta x goes to 0 as the quantization of that chip goes to 0, it goes towards the heat equation. Is that okay? So that equation is consistent with the heat equation. So before we set about asking ourselves the question, instead of solving the heat equation, so that is the finite difference representation of the heat equation. Okay, so before we go about wondering, we talked about probabilities and all that and can we use those probabilities directly to solve this problem, right? Instead of instead of working at the way where we have just worked it, right now this would be, this is called the Fokker-Planck equation. You heard this term? Maybe not. Okay, that is fine. So what we are basically doing is we are basically showing that this process, this random process, there is a random process. There are two people playing. They are tossing a coin or something of that sort. Is a random process. There is a continuous equation associated with it. Okay, where u is the probability. Use the probability. Okay. And you can solve it using the finite difference techniques that we have got, we have done so far. Okay. The point that I want to make, so why do I bring this up at this point in the semester? The point that I want to make is, it is consistent. Scheme is consistent. Whatever that process that I explained is consistent, right? It is consistent with the heat equation. It converges to the heat equation, right? If you have molecules bouncing around, you do some kind of limiting process or averaging or whatever is consistent with the heat equation. If you are looking at energy equation, if there is no motion in the sense that no drift velocity, no mean velocity, then the energy equation degenerates to the heat equation. Okay. If I do a finite difference scheme in this fashion, if I do a finite difference scheme in this fashion, it is consistent. It is consistent with the heat equation. So if I start with the heat equation and I discretize it using a finite difference scheme or I discretize it using calculus variations and differences, I discretize it using finite element method, whatever it is, I generate an automaton, I show it is consistent.  All of these, all of these in some limiting sense are governed by the heat equation. Okay. So in CFD, what we are basically doing, we say we have the fluid flow, which is a process we have done continuum and got a differential equation. There is a limiting process. Then we are saying there is this numerical scheme, there is consistency, convergence and all of that stuff going on. They both model the same equation. They both in the limit go to the same equation. So we are saying that I will use the discretization that I have done to model the reality of these molecules. Am I making sense? We are basically saying well this is equivalent to that because both of them in the limit go towards this differential equation. Am I making sense? Is that okay? So what is the underlying, what is the underlying automaton that you say, whether do you discretize using finite difference method, do you discretize using finite element method, do you discretize using something like this, we will figure out how to do this. Okay. We do something like this. So there are different ways by which there are different, it is not microscopic, you understand. So microscopic would be to do it at the molecular level. That is too much because you already know that the number of molecules we are talking about is of the order of Avogadro number of molecules. It is a huge number, 10 power 23. So you turn, we back out from there and say well here are these 100 grid points that seem to go to the same problem, that seem to go to the same differential equation. Am I making sense? Okay. So the underlying process that you pick, what we are trying to do here is, we are trying to come out with a discrete representation, some kind of a discrete representation which will simulate, which goes towards the same differential equation that are alternate discrete, the one that we are trying to simulate goes to, even though it is discrete. Is that fine? Okay. So that at one level that is the point that I wanted to show you something that is very different. Now the point is, I have shown you from here, I have shown you that we get the same governing equation. I did this simply to show you that you get the same equation. Okay. But this is not how I am going to solve it. If I solve this, I am solving finite difference method. If I solve this equation, then I am saying instead of gas flow or instead of a solid rod being, heat conduction being governed in a solid rod by the heat equation, I am saying oh the heat equation governs this and I will solve it using finite difference method. That is not the objective here. You could do it but that is not the objective here. What we will do instead is we will ask the question, what we have stated here is the problem, can it be modeled as such? Can it actually be modeled as such? So in order to do that, you need to create 101 bins, containers. You need to create 101 bins and if you have a chip or a colored ball in that bin, for that you can toss a coin and you can decide whether that ball goes to the right or the ball goes to the left. You can decide whether the ball goes to the right or ball goes to the left. The probability in this case because p and q are both equal to half, the probability half the ball will either go to the left or the ball will go to the right. Am I making sense? Okay. So that much is clear. So we have already done this. This is important. I want you, this picture I do not want you. So given that your x either goes to the right or goes to the left. This picture is important. So we come back here. So what do we have? So I have in each one of these, how many balls does the first bin have? Well, it just depends on what is the discretization of the probability that you want to do. So the probability in the first one is 1. The probability in the first bin is, the probability that the ball in the first bin, the probability is 1. So what I am going to do is, I am going to make sure that there are, I will quantize. So the probability is 1, that 0 to 1, that magnitude 1. I will quantize using 100 balls which means that each ball represents 100th of a probability. So whatever happens here, whatever happens here, so when if you start off with 100 balls and you basically say I am going to toss a coin or whatever and decide what is to happen, what is the end result after that one round, it is possible that one ball ends up here or the ball goes into the oblivion which does not make sense. But anyway, so if there are for each of these, if you do that, then if there are only 99 balls or 98 balls, then I top it off because it is supposed to be 100 at all time. In the last bin, if there is a ball or a chip that shows up there, I remove it because there is supposed to be none there. Is that fine? And you just, this is the game that you play. So you just basically say that I have a chip here or I have a ball here, I toss a coin, the ball either ends up here or here. And what you will see is all of these balls jumping around, normally unfortunately we do not have a time for a demo for this but you could actually try this. This is very easy to program. The critical thing that you need here is a random number generator. You need a random number generator. So to generate pseudo random numbers, I would suggest that you read, you read Knudts, the art of computer programming volume 2, semi numerical algorithms. There are lots of materials out there, there is a lot of material out there on generating random numbers. I think if I remember it, this book has like 100 pages or 150 pages. It is quite a lot of space dedicated to it. And it is very important. As I jokingly say, I forget who said this but random numbers are too important to leave to chance. You have to generate them properly. These are, you cannot just generate, you understand what I am saying. So the standard random number generator that you see out there may not be the best there are lots of random number generators but make sure that you are using a good random number generator. Your computer may have a random number generator which is a true random number generator, meaning that it is based on the thermal state of a diode somewhere and the CPU is actually using a A to D converter to read that, read the read of the voltage, random voltage that is coming from it. Not a good idea. You are writing a program, you want a random number generator but you want to use what are called pseudo random numbers which is what he is going to give you. Because you are not sure whether your program, when you are developing your program, you do not know whether your program is working or not. And to throw into that some random effect is not what you want. So you have random numbers that are actually not random numbers. I mean there is a sequence of numbers that look random but you know what they are beforehand and then you can debug your program. Because every time you run it, it is not going to do something different and you are saying is it because there is a bug in the program or is it because my random numbers have changed. So you generate the random numbers, debug your program and then you can do whatever you want but I would still suggest that you stick with pseudo random numbers. You stick with pseudo random numbers. Is that fine? So if you have a pseudo random number generator that generates uniform distribution on 01, then it is less than 0.5. It is a heads, it is greater than 0.5. I mean it is very easy. Is that fine? It is very easy. Basically what you are trying to do is you are trying to generate random numbers. In fact what you want is just two states minus 1 and plus 1. The way I have implemented I just generate a minus 1 and plus 1 and I add it, I shift it to the appropriate bin. I shift to the previous bin or I shift to the next bin. Is that fine? So and what you would expect is that you would sort of see some, you would see movement and then there will be a point when you finally get to the solution that you are not going to get that. That is only remember that you are dealing with random numbers. I do not know whether you have dealt enough with probability theory and so on, but you are dealing with random numbers. So you are not going to get a straight line. It is not just going to go to a straight line and sit there. It is going to be jumping about that straight line. So what you are going to do is you are going to get variations about the straight line. The straight line is the expectation of your random process. Straight line is the expected line. So you are going to see the function grow and sort of it is going to be jumping about that. It is going to be hovering about that. As I said, there is another way that we can do this. Here what we have done is we have taken bins and we have kept track of what is coming and going out of the bin. That is like an Eulerian method. The fluid mechanics lingo is like an Eulerian method. The other possibility is that you do a Lagrangian method. Lagrangian method is you follow a particle. You follow a particle. So if you follow a particle, I get back here as I promised. If you follow a particle, so you are here, you toss a coin. You go from this point to that point with probability half and then you toss a coin again. So one at each toss, these are actually bins. You understand what I am saying? These are actually bins. It is moving from one bin to another bin. But right now I am following that solitary, I am following that solitary particle. And in a similar fashion, you could have, you could have, so this is called a path. It is a particle trace, so it is called a path. It is called a path. So you could start off, you could start off each one of these in a similar fashion. So it is possible that some of them are biased in some fashion. So you can trace. And I seem to have biased in this fashion but it may not be biased. You start off on a path. So you can make, you can track, you can create, generate multiple paths. So from this point, you could generate 200 odd paths. And at any given time, you can find how those 200 odd paths would end up at that time level. And you will get a distribution. The distribution, you may get a distribution of some kind. Am I making sense? Is that okay? You will get a distribution of some kind. So it gives you an idea that if something starts here, what is the probability that it will end up in any given spot? Is that okay? Of course in this case, if it goes to the 0 side, it is just going to get eaten up. So 0 is what we call the absorbing boundary condition. It is called an absorbing boundary condition. It just eats up. Anything that comes to it is gone. Anything that comes to the 0 side is gone. This is called the absorbing boundary condition. And since I am talking about random numbers and distribution of some kind, right? And since I am talking about random numbers and the distribution of some kind and the toss of a coin and so on, this class of schemes are called Monte Carlo schemes. This class of schemes are called Monte Carlo schemes. Is that fine? So you could actually, this would be with x, you know, you could actually start off, you could start off at different points and go through the same process. So this is used in a very variety of ways. Now that I have mentioned Monte Carlo, I will just say a little something about Monte Carlo schemes. The most important part of Monte Carlo schemes of course is the random number generator, right? So since I am not sure as to what your background of probability theory and, right? I do not think, have you guys looked at, seen any, have you done probability theory? Okay. So maybe then I do not say anything about stochastic process. So there is a second step that you can go to called stochastic process. I will just write out the equation because I did not, intended at least that you be familiar with it, right? So typical stochastic differential equation, okay. So if I am talking about the probability distribution is a normal distribution, Gaussian normal. This is the mean also called the drift. This sigma squared dt is the variance rather, so these are dz, z are random, dz are random numbers which are, who have variance, which have variance that looks like, well the combination looks like sigma squared dt, variance looks like sigma squared dt. So if you look at, if you think about it, you may say what is this equation, right? What is this strange equation? This equation basically describes that process there, what I have shown, what I have shown there is with, it could be mu 0 or if you look at it, what I have actually drawn, it is drifting to one side, you understand? So it is possible that you can imagine if you just had simple diffusion, you had just had simple diffusion. So simple diffusion is the best way for me to describe it is you have some fluid flow in this direction, I have, I set up the fluid flow so that I have a time like direction in the downward direction as time progresses, something that was here will end up is travelling at a constant speed, we already know that, right? Propagation speed is a, it will travel downstream, okay. So if I drop some dye there, some ink there, this is the example that I gave in the beginning when I was talking about linear wave equation, I said oh I put some chalk dust and the chalk dust is carried along advection and then I said there is a diffusion but we are ignoring diffusion, now I am going to talk about the diffusion. So I put dye there, what happens to that dye as it goes long when I, if I drop dye, so the dye is carried down and it also starts to diffuse, it also starts to diffuse. So the distribution of dye that you expect is something like this, the distribution of dye is something like this, something like that, which we could have got by random walk, that process that I wrote there is also called a random walk, okay. The process of generating paths is also by a random walk, that is I take a particle and I go through, I go through, I take so many steps randomly, okay, it is a random walk. And this envelope basically shows maybe 10,000 such paths that I have drawn and I get a distribution that look, when I look at the end, this is the distribution that I get, random walk, that is because the flow is in this direction. What if I added a small velocity as a very tiny velocity component that way, left to right, so you would expect that the distribution will be slightly distorted. So what will happen is you will get something, and the distribution may be something like that, am I making sense, it will be slightly distorted. So the drift velocity mu, that is the mu, that is drift, okay, and this is the pure Gaussian process, am I making sense, okay, and you have seen this before. So normally when we did, as I said earlier when we are talking about, we are talking about for molecules or it is the same differential equation that finally comes up. So when you are talking about, when you did some element of statistical mechanics earlier in your physics or chemistry or whatever, you would have seen that you break up the, you break up the motion of the individual molecules which you have considered to be hard spheres, you break it up into a drift component, and the variance about that drift, a change about the drift. The drift component gives you what you call the speed of the fluid at that point in the continuum, and the variance gives you the, measure gives you, variance gives you what, measure of the temperature, right. The variance gives you a measure that becomes an internal variable, the temperature becomes an internal variable, right. Therefore you tie it to internal energy, becomes an internal, the internal it is beneath or it is beneath what we see in the continuum that we can capture. In the continuum we can only capture this, variance becomes an internal variable, okay. As I said, the objective of doing this whole business was for me to make, tie up a few of these, I wanted to connect, I wanted to connect a few of these things together. So if you have a stochastic differential equation of this sort, what it basically says is, yes you have the drift component, you would normally call what you would have seen in your physics and chemistry is the drift velocity, and then you have added to it the random component about it which you capture in the form of some kind of a variance which is actually a measure of the temperature, okay. So in that sense this equation is not very different from something like CPT0 is CPT plus u squared by 2. One has the drift component, but of course this is an energy equation, not the same, be careful, I am just writing this out, this sort of struck me randomly and I wrote it right now, but this is a relationship, you understand what I am saying, this is in terms of energy, it is not in terms of speed itself, but that is basically it. So here what you could do is, if you had a stochastic differential equation like this, you can actually generate normal, the normal random numbers using normal distribution with mu and sigma squared or mu and 1 depending on how you want to do it, right, mu and 1, mu as the mean and 1 as the variance or this would be, z would be 0 mean and unit variance, then mu would be the, mu would have the, would take care of the drift, change in the mean and this would take care of the random steps, is that fine, is that okay, are there any questions, right. So these Monte Carlo schemes, they can be used for various things, I give you a last typical application because it is about distributions, it is about distributions and I will give you the final simple application not to differential equations, this is most probably the kind of thing that you may have seen in school, I am not sure if you have seen this in school. So if you have some random shape for which you want to find the area, right, so if you are saying that why are you doing all these random numbers, what is happening, right, so let me give you a simple straightforward application. So if you want to find the area, what do you want to do, the process of integration actually, you can find a bounding square which is, which you can scale and the easiest thing, I am going to break it up into blocks because that is my nature but the easiest thing to do is generate random numbers on the square, generate, so this is x and that is y, generate random positions, so just say you generate 100 of them, so these random positions, maybe I should make them a little bigger because it has to be seen, so you generate a bunch of these random x's and y's, okay, the reason why I wanted to give this two dimensional one is an example, I will tell you why because I have a warning at the end, okay. So you generate, you generate a uniform distribution in both of them, in both directions, right, so it is bivariate uniform and count how many you have inside divided by the total gives you the fraction of this fraction of the total area, am I making sense, it is a relatively simple minded way to do it, it really works quite well, so you can generate, if you could generate instead of 100 random numbers, you can generate 10,000 random numbers, locate them all over, right, find out how many of them are inside the area that you want, find out how many of them are or what is the total number you know, so this is of course you have chosen to be a square, so the area of the square is very easy to find, you can find out what is the area of that, an estimate, get an estimate of that area, is that, does that make sense, is that okay, the reason why I picked this, the reason why I picked this is you want to make sure that the random numbers that you generate in the x coordinate direction and the random numbers that you generate in the y coordinate direction are not correlated, okay, so you really should be careful, as I said it is not that simple of just generating the random numbers and using them, okay, they are not, so you have to ensure that the numbers are not correlated, the other thing that you do is you are talking about pseudo random numbers, we go back right now to the beginning of this course, we are talking about a finite representation of a number, the mantissa is fixed, 24 bits, the mantissa is fixed, it has 24 bits, remember if I am generating random numbers between 0 and 1, all that matters is the mantissa, right, 24 bits is 16 million numbers, 24 bits is 16 million numbers, that means that the best that you can get at every 16 million numbers you will have a cycle, every 16 million numbers, so if you have a good random number generator, the cycle will be 16 million, if you have a pathetic random number generator, if you have a bad random number generator, every 100 it will keep repeating, okay, does that make sense, fine, okay, so you go to double precision, so that will give you a larger number of, right or you use integers, right, you do not need the exponent, you are talking about numbers between 0 and 1, so you use integers and you are already at 4 billion random numbers, if you have a good algorithm, remember you can still have a bad algorithm, so if you have a good algorithm, that loop that it gets, so if you go to two dimensions and if you generate 1 million random numbers, 1 million x coordinate, 1 million y, you have already done 2, if you go to, you understand what I am saying, if you go to three dimensions, you can imagine now that your random numbers may start getting correlated, there may be other issues, okay, so there are, I do not want to give you this impression that these are actually relatively easy to implement, they are not that efficient, they are relatively easy to implement, they are convergence properties on that good most of the time, so you will use them when you are in a difficult situation, typically use them when you are in a difficult situation, but otherwise what happens is you can go through this process, but please, please bear in mind that underlying all of your, all the Monte Carlo schemes deep down inside, the core of your scheme is a random number generator, so you have to make sure that you understand that your random number generator is doing the right thing, is that fine, okay, are there any questions, okay, fine, thank you.


Thank you for joining us and welcome to Open Infra Live, the Open Infra Foundation's hour long interactive show, sharing production case studies, open source demos, industry conversations and the latest updates from the global open infrastructure community. We are live here most Thursdays at 14UTC, streaming on YouTube and LinkedIn. My name is Kendall Nelson. I am a senior upstream developer advocate at the Open Infrastructure Foundation and I'll be your host for today. So as we mentioned, or I mentioned, we're streaming live and we'll be saving time at the end of the episode for questions that you might have throughout the episode as we introduce all of our excellent speakers today. So if you have questions, please drop them in the comment section throughout the show, wherever you happen to be watching us and we will answer as many as we can. So today is all about Antelope, the 27th release of OpenStack. We're back at the start of the alphabet. It's crazy to think that we've had 26 on time releases and now we're back where we started. But as always, we couldn't have accomplished this without the help of our member companies and our worldwide community. And as a result, we have an excellent lineup today of community members here, many from our member companies to talk to you about some of the new features and fixes that have just been released yesterday as a part of the 2023.1 Antelope release. First up, we have Salon here to talk about updates to Nova. Hey Kendall, thanks. So hello, I'm Sylvain, I'm the Nova PTL. Also the placement PTL, because no placement is in the Nova, is also using the Nova team. So basically, let's discuss first about what we did for Antelope and then we'll discuss for the next release. So basically, can I have the next slide please? Yeah, okay. So basically what we did for Antelope or Antelope, I don't know what we prefer. So basically we have six specs or six blueprints that were merged. 18 were accepted before. To be honest, we only had six, not because basically we did not have time to review them but more because I would say some priorities were different in between the contributors. So that's why unfortunately we didn't have time to merge more of them. So about bugs, 27 bug fix merge, maybe more. I just try to think about all the, I would say all the changes that were merged for the bugs. Also, one important bug fix was also merged. It was about some CVE bug that we had. If you don't really know about that CVE, please look at that or please ask us. And then you will see, make sure that you can have a fix if you have this CVE. That being said, for Nova, that fix is only upstream for stable usury. But when I discussed with most of, I would say with most of the people that creates some specific products, I think they should be okay to have the fix for their own products. We had less number of contributors as you see than last cycle, last cycle where I think 50, 56. So that's maybe something we could be discussing on next virtual PTG, I will explain that after. But anyway, thanks the team, thanks Nova team for working. I know it's something difficult to work on both, I would say the project and other stuff that you have. So I'm definitely happy to see you. As one thing also that operators also need to know, this is our first what we name SLURP release, which means that at the moment, given is the first SLURP release, you can all upgrade your compute services directly from yoga. That means that, for example, you can upgrade, you can upgrade your services to Antelope. But you can continue to have yoga computes and that should work and I say that should work because we tested that works, but it's more like an experimental feature. So please test it. Anyway, we'll discuss about SLURP releases maybe later. Next slide please. So what we actually had for Antelope was at different features. One is at least nothing is really changing, I would say for PCI devices, but no, I mean, the use cases are still the same, but no, the scheduler and the placement API no verify the PCI devices, which is no better because we had a few, I would say we had a few problems with the previous PCI device scheduling and no, given that new feature, it will help us to only, for example, to also, to not only, sorry, having more allocations, I would say, sorry about that if you don't really know what the location is, but also to basically have new features for PCI devices. One also feature that we created is how to power manage the dedicated CPUs, meaning that if you have dedicated CPUs, now with Antelope, you can either ask Nova to stop the CPU. For example, when the instance is either deleted or stopped, then basically the CPUs, the physical CPUs that are used for that instance will then be stopped as well, or you can, I would say, modify the power for those CPUs. That's a new thing that we supported by Antelope, as a reminder that only works for dedicated CPUs. Another feature that we got is making sure that, for example, when you rename, we don't support renaming a compute service, but even if we don't support that, sometimes it happens, basically, it happens that the computes are renamed, and then you have problems. So what we created is we created a feature that basically verifies the specific compute node UID that's persisted, and if it changes, then we say, sorry, it won't work because if we then start the compute, then you will have more problems. Another feature is that, for example, for space consoles, now you have new compression settings. One important feature that was accepted for Antelope and that was done is that by default, we enabled the new roles and the new policies. That means that for you, it is not only about admins and end-users, this is more, I mean, you will see the new policies, I won't explain that by now. And two other features. One was about, for example, you can provide an instance house name as an FQDN if you use that specific microversion I said. And the last one is about, for example, know that you evacuate an instance, it won't automatically restart your instance. We did that because sometimes operators prefer to not automatically restart the instance because, for example, they have other services to run before the instance has to run itself. So we prefer to stop using that specific microversion. Next slide, please. So know that they discussed about the Antelope features. As a reminder, next week, we'll have a virtual PTG. The NOVA team will be discussing during that virtual PTG. I provided an email on the mailing list. You can see it. But again, I will explain that now. So if you want to discuss with the NOVA contributors who are more than happy to discuss with you all, for example, if you want to discuss about your bugs, I would say the use cases that you have are the features that you miss. That's one way. That's one simple way. Just go and discuss with us. You will see we have multiple topics to discuss. The topics are at the left. But you have also a specific operator hour where you can basically go and discuss with us. So as a reminder, this is on next Tuesday at 3 p.m. UTC. As I remember, for Europe, we will have daylight modifications next weekend. So keep that in mind. But yeah, 3 p.m. UTC next Tuesday, you will be able to go and discuss with the NOVA community. I think that's basically it for me. Thanks, all. Thank you so much for sharing all of those updates and telling us all about the hardware enablement and all the bug fixes. We really appreciate everything that you and NOVA does for OpenStack. So thank you so much. If anybody in the audience has questions, please make sure to drop them in the comment section of wherever you're watching this. And we'll make sure to get to them at the end. Next up, we have Carlos de Silva to talk about Manila. Thanks, Kendall. Hello, everyone. So I'm Carlos, the OpenStack Manila PtL. And I would like to share with you today some of the great things that happened in Manila during the Antelope release cycle, but also share some of the good things that we intend to do for the Bobcat Cycle. First, congratulations to everyone for this amazing release. I think it's great to see all of the work coming together. So yeah, let's get started with some of the good things we've done. So what's new in 2023.1, or also known as Antelope? The first of one of the major features we have worked on during this release is the shared transfers. And it is already available for this release. You can use it for transferring shares between projects. The behavior and purpose is quite like Cinder's. And you can start a transfer of a share from one project to another and then accept the shared transfer in the destination project. There is some more documentation related to it and how to use this feature. And it is available only if you are using GHSS Pulse. And there are also some more discussions happening over the next PTG, which is going to be next week, the virtual PTG, where we intend to talk about some enhancements for it and possibly extending it for GHSS True as well. So yeah, if you're interested on that, please join us at the PTG. The next big thing I would like to talk about is the metadata for shared network subnets. And basically, let's put it away. If you have a deployment and it's using, for example, NetApp, and it has a network layer that does not provide the traditional segmentation details out of the Neutron API, with this release, you'll have the ability to let Manila know about those details. So you can set the metadata to the shared network subnet and that will be read during the network configuration process for shared servers. So when you're creating shares and you would like the back end to know about some specific networking details, you can do that through the shared network subnet metadata. When another feature introduced was, in case you're using CIFS in your deployment and you missed adding a default Active Directory site to your security services, we got you covered. So now you would be able to have a default AD site and add it to your security services while you're creating it or when you are updating it in case it doesn't have like shared servers. On the next big things, like the next slide, we'll see that we had also some RBAC updates. Basically, the RBAC updates for this release consist of ensuring that we have enough testing coverage and that all of the things that we have been implementing for the role-based access control are working just fine. So one of the things that we like about doing these things with the Manila community is that we are able to promote some events where we basically try to have all of the contributors coming together and for this cycle we had a hackathon where we had lots of contributors from different affiliations focused for a couple of days just trying to write more test cases or enhancing testing coverage for RBAC. So we had lots of new test cases and new test scenarios merged in the functional test for Manila and this is like an amazing work. We couldn't be happier with the outcome for this. So on the next cycle, we also intend to have a couple more of those events coming. So that's also something that we will be discussing at the PTT. If you are interested and you would like to know more about that or have some thoughts about it, please join us. Also we had several bug fixes and enhancements to the features we have. We also have some good plans for the 2023.2 release which is Bobcat and for 2023.2 we intend to introduce share backups for Manila. It would be a kind of a generic backup approach for Manila shares and you would be able to either use the generic backup approach which is using the Manila data service as there is the generic share migration approach but also if you are using a third party driver vendor and if they implement this feature you would be able to use the native feature from their storage. So yeah, that's one of the nice things we intend to merge as well. The specification for this was accepted during the NLOP cycle and now we are quite focusing on the implementation for this. Also, we want to add the possibility to specify metadata for share export locations which is like we have been gradually adding metadata to our resources according to the need. We've been changing the setting metadata mechanism and APIs so we could make it more generic so it's a couple of cycles effort already and for the cycle we want to extend it for share export locations as well. This is one of the projects that we are proposing to Outreach so we want to have an Outreach intern working on this. So if you are an Outreach applicant and if you know an applicant that is interested in working on a nice feature to work on with great mentors in a great community please let them know about this or please get in touch with us. And also a couple more things like introducing more coverage to the money APIs in OpenStack SDK so we can have more interaction with other projects and we can make those APIs available. CI stability and different approaches for scenario testing is also something we are discussing now so next week we will have a couple of topics where we will talk about this and as I said these plans for Bobcat are being discussed during the next week's view to PTG so if you are an operator or a contributor and you are interested in one of these please join us. The sessions, time slots and the topic EtherPAD is already available in the PTG page which everyone is sharing at this point so yeah, please check it out and join us next week. So yeah, that's pretty much it for money updates. Awesome, thank you. It's really cool hearing about how you had the focused hackathon day dedicated to RBAC. I think that that's a really good way to make progress on the community goal so maybe something other projects can try for Bobcat as well. Thank you so much. Thank you. And next up we are going to dive into what Cinder accomplished during the antelope cycle and with us today to talk about Cinder is Rajat. Thanks, Kendall. Yeah. So I'm Rajat Dasparam. I'm Cinder PTL and I'm going to discuss a few updates about Cinder. So what's new? So we have three new Folding Backend Drivers added. The first one, which provides support for both iSCSI and Piberchannel protocol. We have two drivers that support NVMe with DCP. So it's great to see like new drivers adopting new technologies and we have more and more NVMe drivers which is really good for the project. Apart from that we added the missing commands which were there in OpenStack client. So we had this parity between Cinder client and OpenStack client where few of the commands were missing from OpenStack client. So we added eight new commands in the last cycle and now all the commands that Cinder client support OpenStack client also supports. One of the future work we have for the next cycle is OpenStack SDK support which we will be discussing in the Bobcat cycle but for now you can use OpenStack CLI for all syndrome operations. Next slide please. So what's changed? So we have removed support for creating multi-attached volumes in the legacy way. So just to briefly explain in Queen's release we supported creating multi-attached volumes but the way was a non-admin user could specify the multi-attached parameter in the volume create request which we soon realized was not a very good idea because non-admins could create multi-attached volumes and could cause data corruption without having the right file system set there. So we delegated that task to admin users. So an admin user now creates a multi-attached volume type and a non-admin user uses that type to create the volume. So we still supported the legacy way of doing it but recently there were a lot of customers having issues with the legacy way. So in the cycle we finally removed it. If there are any deployments using the legacy way of creating multi-attached volumes please switch to the new way as we don't support it after anti-loop. Another thing was one major issue we had when we restored backups into thin volumes. So whenever we restored a backup into a thin volume it got converted into a thick one which was really bad because it caused more space consumption. But now that is finally fixed and if you restore a backup to a newly created thin volume then it would preserve the sparseness of it. Next slide please. Okay, so what's fixed? So we had a CVE Sylvan also mentioned the same CVE. So I will just briefly describe what that is so just to get to the context. So if we have a VMDK image file we can inject the host, controller host configuration files path into it and when we do the conversion then to a raw file then we can fetch the config data from that raw file. So it was an attack vector which we had in VMDK files. It doesn't matter if you are using a VM where driver or not any VMDK file could be exploited in the same way. So VMDK has two sub formats. So we have two sub formats that we support that don't cause this vulnerability. So they are listed on the screen, stream optimized and monolithic sparse. So these are the only two sub formats we support with VMDK other formats we reject as of now. We have a config option to set it but to fix the CVE we had to limit the number of sub formats we support. This changes backported until train. So we have already released all the stable branches containing this fix but we backported it train because train supported python 2.7 and I know some of our deployments have old supporting old versions. So we have the fix in train. So if you want to fix your deployment and since we are not releasing train you could take a look at that and do the required changes to fix it in your deployment. Next slide please. So we have some stats from StackLytics. We have as you can see on the screen we have 70 contributors for reviews, 47 for commits 53 for which file bugs and 11 which resolve the bugs. So out of 150 bugs for resolve which is a good number we had good amount of commits and reviews. It is not as good as the last release. Last release we had higher stats but again it is still a good number. So yeah I am really proud that we have very active contribution in our project. And moving to the last slide we have Bobcat, PTG upcoming so these are the rates for sender we are conducted from 28 to 31 March which is Tuesday to Friday. The timings are 1300 to 1700 UTC. You can find in the PTG schedule I have booked the cactus room for all the days from Tuesday to Friday. We also have operator hours. So any operators who are interested you can join us on 29th March when I stay from 1400 to 1500 UTC. It would be great to have you there. And finally we have this contribution guide if you want to contribute to sender you can go to this link. Awesome. Thank you so much for sharing all of that. I am really excited to see the open set client getting parody and the SDK being your focus and the next release. It has been a long time coming trying to get all of the services to parody. We really appreciate all of the effort you and sender have made towards that goal. Awesome. Cool. Thank you. So our last presenter for today will be talking about the updates in Ironic during the antelope release. Take it away, Jay. Hey, so thanks for coming and watching and just going to talk a little bit about what we have gotten done over the course of the antelope release with Ironic. We are going to start out by talking a little bit about some of the numbers that talk about what we did and part of the point of this is Ironic is a pretty big selection of projects. It's not just the one Ironic service. We provide a whole suite of things that can help you deploy bare metal or test it or whatever and across all those projects we had 251 commits from 53 different people over 23 different companies contributing for over 25 thousand lines changed across 22 repositories. We also fixed two CVEs that were in CI tooling that we use so I'm not going to go too much into detail for it if you're running virtual VMC and Sushi tools in production you should stop anyway because it's a CI tool. And I did want to mention we adopted a project this cycle as well. Some good folks who are kind of in the community or adjacent to the Ironic community have been maintaining virtual PDU which emulates a PDU on one side and powers on Libvert VMs on the other side and it's a great CI tool on the same lines as virtual VMC and Sushi tools and we've adopted it now so that's now a part of Ironic and it's being maintained by us so if you're watching this even if you don't choose Ironic if you're working on another bare metal software come talk to us about our CI tool and we've got some good stuff there. Let's move on to talking about what we did last cycle in actual detail that you care about and part of the reason I show the numbers before is that a lot of the work we continue to do on Ironic is stability work at CI making sure that things stay stable and tested and behind the scenes things you might not always care about right now but here's some of the things that you can see. One of the big things we added is the ability to export Ironic conductor metrics to Prometheus so we used we already supported sending hardware based metrics to Prometheus about the hardware that Ironic's managing and we supported sending application metrics from the conductor in the API into stats D what we've done is we've sort of mashed those together now so you're able to send the application metrics from Ironic conductor about the performance of Ironic services to Prometheus alongside all that hardware information which hopefully is going to make that a lot more useful. I will note that we're not currently sending application metrics from API just was a technical issue and you should be able to metric everything on the conductor that you would care about as our APIs are pretty thin in addition to that kind of on the route of operability we've added support for service role in our default policy it's intended to be for service to service communication and what we've what we've done here is basically finished up our feature support for our back so Ironic should support all the roles you would expect and you can configure that so we might do more testing in the future but as far as features they're there it exists and you should be able to use our back in your Ironic environment fully including the service role on the third thing is this is more of a preview we actually did add a feature in Ironic and I'll talk about that but this is one of those features that I don't expect to be immediately useful to you all but it enables us to do better things in the future and that's adding support for shard to our node API endpoint this permits an operator to set a shard value on a node and then later to query just a subset of nodes by using shard in the query string the reason this is valuable is a lot of times many of the services that integrate with Ironic such as some of the networking agents we work with and even the Nova compute service directly have sort of a scaling bar that set it about as high as you could scale up a single virtual hypervisor but because Ironic is dealing in real bare metal we could scale much higher than that in a single Ironic installation but we can't always expect everything around us to sort of adapt to the specialties of bare metal so what we've done is allowed you to chop those up and then we'll be working on a feature in Bobcat maybe further on as well to add support for those various extra tools the Nova compute driver some of our networking agents to be shard aware that you can limit them to a subset of your nodes and that's going to greatly increase performance and our hope is that by the time this entire process is done that the Ironic driver in Nova will look and act a lot more like the other drivers which should lead to fewer bugs and a more easily understandable high availability model for people who are already familiar with how Nova works with virtual machines so that's really exciting but we're only a step there I've got one more thing on there though that's pretty cool which is as part of this we can sort of see we're trying to increase performance of the API well last cycle we with nodes we took an approach and we greatly improved the API response time for those this cycle it was the port and the port group APIs and I say on this slide it's 20 times faster we have benchmarks that are higher than that I wanted to be safe and say 20 times that I can feel pretty confident you're going to get a 20 times benefit in your environment but in the real world you're likely to see even better performance gains than this and so we're happy to provide that performance gain and I hope it makes your environments run more cleanly as you upgrade through so that's it for our features now I did want to mention that we also are having a virtual project teams gathering here Tuesday and Wednesday although we do have two different sessions for Wednesday for two different you know for North America and Europe contributors versus APAC that'll be in the Falsum room at the same PTG website all the other ones are listed we're planning features for Bobcat and I've got the etherpad schedule up the etherpad up with the schedule in it and some of the comments one of the things that we can struggle with sometimes in these events is having real good concrete feedback from operators so if you're running a relatively modern ironic you know feel free to come by and talk to us about what features you're using what's working the way you like what's not but even more especially we have a next slide we have a session set up just for you and that's a special addition of the bare metal SIG is going to be our operator hour at the PTG and this is specifically for anyone who's operating bare metal provisioning software doesn't have to be open stack ironic or ironic adjacent you know if you're using metal three that has ironic for using mass if using any bare metal provisioning come to our operator hour let's commiserate we have similar problems we have similar use cases and we all want to talk about it so I want to have you there with us and chatting that's going to be Wednesday morning at 1300 well I say morning because of where I am in the world it might be an afternoon or an evening for you but Wednesday at 1300 UTC in Folsom and we really do encourage you come to the bare metal SIG come talk to us that'll be a great place to give your feedback to us and hey I just if you're running the software I think we'd all love to meet you anyway so thanks for listening awesome thank you for all those updates and all the invites and stuff the detail behind everything is just so cool I feel like there's something new that I learned about ironic anytime I hear somebody talk about it so very very cool alright well I would like to invite everybody to come back on screen and see if we have any questions from the audience I haven't seen any come in yet exactly but I know I have like one or two questions for you all so we're still waiting on Sylvan and oh hey perfect we've got the whole group okay so I have two questions that are kind of unrelated to one another so the first one so obviously the virtual PTG is next week but we are also having an in-person PTG at the same time that we'll be hosting the open info summit in Vancouver and I was wondering how many of your teams are planning on RSVPing and signing up to meet in person I'm happy to start and speak for ironic I know that we do have some contributors who are going to be there I will be there I know some others I don't necessarily think we're going to end up having a quorum for making decisions in person due to we just have such a distributed team so there probably will still be a virtual element but I always do appreciate the in-person sessions and getting to meet people face to face and that can be especially helpful for cross project things so I mean I talked earlier about getting sharding implemented and some of the other things that integrate with ironic I suspect that that in-person PTG will be a huge help if we hit any speed bumps along that implementation path and helping it out so that's sort of our approach I don't think that's that might not be our primary planning this year for ironic because everyone's not going to be there in person but I still would love to have you there would love to meet you if you're running ironic you know come by say hello even if it's not in an official session Yeah I mean to continue on that on that point I mean for us it would be probably the same we won't have quorum because because I mean not everyone can just travel but we started to discuss about it we'll continue to discuss it during the virtual PTG from another point of view but the first thoughts that we have as a team is basically to at least have time to do this kind of I would say discussions, topic discussions exactly like we do for virtual PTG's you know in general we don't really accept we don't really need to have a consensus during a virtual PTG this is more time for having a kind of a direction and I think for the for the physical PTG that will be quite the same that will help people that are there to be able to find some some discussions and to have like some directions to have that's the first thing also as J say for example about the CI I have some concerns about the upstream CI and if we can work as a team as an open stack team in between the in between multiple projects for example say the issues we know about the CI that will be loved from my point of view that plus also I know that in general it's difficult for operators to understand PTG's but given this time we'll have both the forum the summits and the PTG I think it's very important for engage with the operators and like maybe have one day in between the operators and us to look about their pain points and maybe look at the code maybe look at something maybe look at some bug fixes I mean I know but that would be also nice that's maybe like the three main priorities I would like to have for the for the physical PTG yeah in the vanilla case we also intend to be there we intend to have some sessions for the PTG and we thought about this other two like we might not have like to take the decisions there but the thing is we will we intend to combine this virtually as well and we think that this could be a good timing as well to meet the operators and to listen to them so those would be like some of the focus we intend to have we know there are a couple of vanilla people coming and it will be it's a great to see people in person and to meet and yeah definitely so from a center perspective some of the people are really interested in going they still haven't confirmed their status but yeah apart from the core center team also we have storage vendors like NetApp and Pure we are also going to be there so in center we have this mid cycles in between releases so we do two mid cycles so I was planning we could do something like a mid cycle one there and conduct some discussions but it depends on the number of people but yeah we have interested people going to Vancouver yeah I think there will be a lot of good opportunities to mix with operators and see new faces that we probably haven't seen because we've only had one other in person event as a community since the pandemic so getting teams back together and rebuilding trust and like being able to look at each other and not through a computer will be so good I'm so excited I hope to see you all there and make sure to get your team signed up by April 2nd so after right after the PTG is the deadline any other teams not represented in our panel today are also invited and yeah we hope to see you all there in person at the Vancouver Summit so I think we still have time for some more questions let's see if we have any I don't see any from the audience so get your questions in and if we don't get to them by the end of the episode we can definitely circle back and answer them on mailing lists and other ways of communicating as well just to make sure that everybody knows everything about what happened in Antelope so my other question was if there is one thing in particular you would like feedback on from Antelope at the Vancouver Summit and during the forum what would that one feature be it's a hard question probably we already have one question for the operators for the operator hour that will have on the virtual PTG but I guess we'll have the same for Vancouver so for us, for NOVA we started to have unified limits we started to implement unified limits basically what is unified limits is that with Keystone you can provide some limits and then basically NOVA verifies that instead of having the quotas that we are probably previously having so that was one question and that's one open question that were for operators we said two cycles before that people can start to use it but we'll know, we know it takes time for operators to get the latest releases but given it was like I have to remember exactly in which specific release we had unified limits I think we have a few operators that can start to test it that's one of the things I would like to engage with the operators one I mean what we also did at the Berlin summit during the forum and that I would also want to have that during the forum in Vancouver is to engage with them with their pain points that's what in general we do and what we did with Berlin is that they sell us their pain points and after the forum we try to see whether we are having specific bug reports that were related to their pain points because in general some are there, some are not so if we are not seeing an existing bug report then we are creating it and we try to fix them after that so I hope that if we can continue to do it this way that will probably help our operators better than just waiting for them to to test who else for Ironic it's interesting right I don't necessarily have a specific question I'd like to ask for operators but what I've been seeing is I've been going out to conferences and talking to people in the open stack in the Kubernetes communities is that there's a lot of people running Ironic who don't even realize it people who are using things like Metal Cubed who don't know that Ironic is underpinning it people who might be using a vendor branded product that's powered by Ironic under the hood and so for me it's less about what I specifically want to ask these operators and more about bringing more of them under the roof here right like we're here to support them we don't care how you consume Ironic if you use as part of the open stack integrated release if you use it bolted on to some other thing you know we want to hear about you want to hear about those use cases because that's going to help us determine what things to focus on as we move forward so like that's what I that's what I sort of think about when I think of what I want to hear from operators is I want to grab those operators who don't necessarily know that they're running open stack and say yes you are welcome to open stack congratulations this is what your stuff's been running on a while and then also to see what they like what they dislike about it and and either you know take that feedback and to improve us or maybe even talk to one of our partners in another community and help them integrate with us better to help resolve those operator issues yeah to all of you that think open stack is dead you've been using it all the time you just didn't know I had more than one of those conversations at the southern california linux expo a couple weeks ago literally that whole thing of someone talking about how why would they use open stack for server provisioning that they use metal 3 yeah I get to to tell them all about how ironic is actually what they're using there which is exciting and sad at the same time so I hope we get more folks to realize what's actually running in the substrate that their environments are built on yeah yeah there's a lot of visibility that can be gained I think awesome yeah I think we we would possibly focus on listening to the operators as well we have taken like approaches like variable that ask questions during like previous operator hours we have been working on enhancing those pain points but I think we will be more likely be focusing on listening to what they have to say and trying to come up with solutions or trying to listen about the deployments that are using monilla so that's pretty much what we would be focusing on awesome so we have this user service feedback every year and in every PTG when that falls alliance with that we ask people like so the responses are pretty vague they say backup needs improvement or volume create needs to be fast or something like that but they are very vague questions so I would really like to ask them like proper details like how what is the problem exactly and how we can tackle that issue so yeah just a few questions from the server feedback if I can add one last thing about what I would like to discuss with the operators for me it's important to remind them that the community is not only the developers but that's also the operators and nothing can happen if they don't report us what the problems that they have so that's one important thing we know that we have launchpad for providing the bugs we know that sometimes they sometimes some operators try to fix their own problems by themselves but I would like to explain that whatever happens the community is there and engaging with the community can also help them more better than they think it's not only discussing like every six months or every one year it's more like trying to find a way to and we started to discuss that in Berlin but we didn't have time trying to find a way to have those kind of productive discussions not yearly but I would say weekly and that's one of I understand that not everyone can work on a project for the world week that is totally understandable but if we can have a way for the operators to know what Nova works at the moment and a way for them to report their problems that they have that would be awesome so basically across all of the projects are presented here and I'm sure all of the projects in general more feedback from operators and it doesn't have to be on Antelope either because I know like we've talked about it's not easy to upgrade right away when the new release comes out so any feedback on any release really to make sure that the issues that operators and users are hitting are being addressed because if we don't know about them we can't fix them we can't make your experience better so formal invitation for all users and operators to please get involved you are a part of the community just as much as any developer you're using the software and interacting with it every day so we want to make it a better experience for you so it looks like we did get one question from the audience yay and it is for J I believe so persistent coherent memory models and example of CXL have the potential to radically simplify and optimize virtualization stacks even when running on legacy hardware any thoughts or work towards this so I don't have specific knowledge of this to be clear I was one of the track chairs for hardware enablement and I can tell you we definitely got talks submitted about CXL I don't know of any specific movement happening in that direction this is the sort of thing where your voice needs to be heard like if I had heard this question before going through some of the hardware enablement talks I might have been more apt to pick one of those talks to make it I honestly don't remember if we picked any of them through but that is something that is likely only going to happen if people show interest in an open source based solution to something like that go ahead I know I was just going to the same direction I think we discussed about CXL a couple of times during previous forums that's not really something we want to enable by NOVA at least but we know the hardware if for example that person wants to get with us about what they would like to have as a use case I would more than happy to hear about the use case and one way of engaging with us as we say is that you know probably the best time to say it we have the virtual PTG next week and we have the operator so if someone wants to to use some CXL hardware we say I see he's asking for virtualization stacks I'm more than I'm more than happy to hear about the use cases and what they would like to have yeah well hopefully we answered your question a little bit if not we would love to chat with you more about it like Salon mentioned we have the virtual PTG next week and we have the forum and the open infrasummit coming up in June which I will talk a little bit more about in a moment here I don't think we have any more questions for the audience was there any other things that any of you panelists wanted to mention today before we close out thanks for moderating this Kendall you've done a great job thank you all right well thank you so much for coming today huge huge thank you to Sylvan and Carlos and Rajat and Jay for giving us the lowdown on antelope today and thank you to the audience for asking some questions and hopefully we'll get more and see more development in the future so I think we have a couple slides for you with information about the summit coming up so please don't forget to join us June 13th through 15th for the open infrasummit in Vancouver registration is currently live and prices will go up on May 5th so make sure to register before then we have a lot of excellent content in store CFP for the forum is actually still open so if there are topics like CXL or anything else that came up today please get those submitted by it's like mid to late April so you still have a little bit of time but we have a lot of awesome members joining us there and participating telling us about their use cases just hope to see you there and if you're interested in being a sponsor of the event please contact Jimmy at openinfra.dev then obviously we have the project teams gathering so it might have gotten a little fuzzy because we jumped back and forth but we are having a virtual project teams gathering next week March 27th through 31st registration is free and we would love to see you there we have over 35 teams participating I think or maybe exactly 35 teams and they are every one from Starling X and Kata to specific open stack services like Nova and Cinder and Ironic and Manila like you all heard from today and many many more so please register and join us there next week and then even more exciting we will have the in-person PTG during the open infrastructure summit and registration for the PTG for that is included within the summit so when prices go up May 5th it goes up for everything so April 6th in two weeks the week after the PTG we will have our next open infralive episode on large-scale operations a deep dive on society general so please join us for that and remember that if you have an idea for a future episode we want to hear from you please submit your ideas to ideas .openinfra.live and hopefully we will see you on a future show here and finally I would really like to thank the Open Infra Foundation members again because we couldn't host shows like this without you we wouldn't have awesome open stack releases and releases of all of our other amazing Open Infra projects without you if your organization would like to join the Open Infra Foundation take a look at openinfra.dev slash join and we look forward to seeing you next time on Open Infra Live have a good day everybody bye


is peanut butter healthy? Seems like a silly question to the average person. Yes, of course, peanut butter is healthy and modern conventional wisdom will always guide you that peanut butter is one of the best foods you can eat. And it's kind of funny that people think eating a peanut butter and jelly sandwich on whole grain bread is actually healthy. But once you understand nutrition, omega fatty acid ratios, the vitamin and mineral components that make a food healthy, as well as the negative concerns of what agrochemicals, how has the food been processed? Peanut butter is actually one of the worst things you can incorporate into your diet. And yeah, there's omega cis concerns, there's lack of nutrient concerns, but we have to talk about the mold and the toxins and all of the chemicals that are sprayed on this crop and that grow on the crop as it's processed.  They're growing molds on them. They have all types of bacteria, rats, fecal matter, a lot of negative things on this peanut butter. And all you really have to do is have a slightly sensitive gut to understand how bad some of these peanut products can be. You know, have one little thing fried in peanut oil and your face will break out with cystic acne, just a tiny bit. So although this jar of peanut butter might seem relatively harmless, the amount of chemicals, bugs, insects, mold, mycotoxins, negative things that will cause oxidative stress, stress your liver, stress your body, cause leaky gut, lead to inflammation. And that's outside of the face value, nutrition on the peanut butter product. You know, the omega six is crazy. It has a very unnatural omega three to omega six ratio. So whenever you skew that natural ratio in your body, we see inflammation.  You know, can you say peanut butter is healthy from a survival perspective? Will it keep you alive? Is it calorically dense? Absolutely. But by no means is it something we should be consuming. The vitamin content off the top of my head, I'm assuming there's some B vitamins, again, not in like a super available animal form. There's a decent amount of minerals as well. So, you know, you can't discount the mineral value that you're getting from this food, but you know, how many anti-nutrients are in there? How much phytic acid? How much oxalates? You know, are you getting calories from this? Yes. Is it something that's absolutely horrendous to include in your diet once in a while? I don't think it's the end of the world. You know, I definitely wouldn't go for conventional peanut butter. There's definitely some options you can choose that are reasonable. And even better is if you start choosing nuts that favor omega three over omega six. So let's take a look at some of the options that we have here. So the video is titled peanut butter, but you know, we're gonna cover all of the other nut butters, seed butters as well. Unfortunately, most of them are not acceptable. And if we look at the ingredient list, you know, this looks good, dry roasted peanuts and salt. But, you know, how high were these heated? How oxidized are the fats? You know, it's not organic. So there's definitely more pesticide and agrochemical concerns. So this is definitely not what we're looking for. But most of the organic peanut butters that I've seen have some additives in them. Now this is actually good.  So if you were just gonna buy this and have this, you know, a couple of times a month, give it to your kids, you know, make sure you eat some fish, some other point in the week. It's not the end of the world. You know, by no means would I start consuming this by the tablespoon. If you're gonna do that, we definitely have to look at some other options. So you see this one has what I said, you know, it has the palm oil and the sea salt. So depending on the texture, what they're going for, you know, there might be some ingredients in here besides peanuts that you wanna look out for. You know, so what about something like cashew butter or almond butter? You know, the mineral profile and vitamin content might vary somewhat between these butters and the omega-3 to omega-6 ratio might be better in some of these, but for the most part, all nuts and seeds are incredibly high omega-6 and should not be consumed in high amounts. The thing you will notice though is with almond butters, they tend to only have almonds added to them. So, you know, as with the peanut butter, you know, if you can find a decent organic almond butter, then, you know, I wouldn't discount that as something you can have a couple of times a month as a treat.  You know, organic removes some of the negative agrochemicals that are used and we can't really justify purchasing something that's not organic if there is an organic option available. And again, you really wanna watch out because most of these peanut butters will have the palm oil, the cane sugar and the sea salt and honestly, you know, is palm oil and cane sugar that bad of an ingredient to add here in small amounts? No, you know, honestly, if you enjoy this creamy peanut butter spread way more than this one that just has peanuts in it, you know, go for that, that's fine. If you're gonna, you know, you're dying a little bit and have something that's not ideal, go for that. Sunflower butters, tahini butters, all incredibly high in omega-6 still. All of these things are still incredibly high in omega-6. You know, something like sunflower seeds or tahini, it might be less mycotoxins, less agrochemicals depending on how they're grown, but, you know, overarching thing is we're not really trying to consume these in our diet ideally and if we do occasionally as a treat in small amounts. That's where these can kind of come in, I guess. I mean, I'm not a fan of stuff like this and you're spending $1.50 per, what is this, like two ounces, one ounce of a seed butter. These are actually all raw. So this is a raw pecan butter, this is a raw walnut butter and they sell these in the jar too but they're very, very expensive. So these are tizana organic products. This is what I would go for if you want to have the least inflammatory thing. You know, is heating the nuts and the seeds of bathing? You know, no, I think it reduces the anti-nutrient content, it changes the composition. I would see how you feel on a heated nut product versus a raw nut product. Obviously in the raw ones the anti-nutrient content's going to be higher. It might not digest as efficiently, it might not be as good of a source of calories but it's definitely less inflammatory. Coconut butter and like coconut mana and coconut oil, I would not categorize it in the nuts and seeds. I think coconut is, you know, perfectly healthy and safe to consume. So, you know, this has mostly saturated fat, the omega-3 to omega-6 isn't off that much. You know, granted, it doesn't really offer that much from a vitamin and mineral perspective, it's mostly calories. I would definitely approve of the coconut products. These though, you know, walnut butter, almond butter, cashew butter. Well, first of all, cashews can't be raw because they have to heat them to process them. So I don't know what they technically mean by raw cashew butter. Maybe it's only been heated to a certain temperature raw walnut butter with cashews. Again, expensive stuff, you really want to splurge on it and try it and enjoy it. That's up to you, I think there's better options. Yes, I mean, you could go for, this one's a little cheaper, raw organic almond butter. Basically, go organic, see if you feel better eating raw or pasteurized products. And I don't see macadamia nut butter here, and it tends to be really expensive. You can find the macadamia nut butter online though. I actually threw a couple bags of chestnut from my cart that my family's gonna try. I've never had these before. So there's only two nuts that have a reasonable omega-3 to omega-6 ratio to my knowledge. One of those that you can usually find is macadamia nuts, but they're like $20, $25 a pound. These chestnuts were actually like $3 a bag. So they're still not that cheap, but you know, my family's gonna try these out and see how they like them. So if you do see chestnuts, if you do see macadamia nuts, definitely pick those out. I have a couple jars of macadamia nut butter on the counter at my house that my sister and my mother have been like dipping apples in. So if you can go online, you can find raw macadamia nut butter, raw macadamia nuts. You know, again, the few times I've tried macadamia nuts, I didn't necessarily feel good consuming them. I'm just saying that if you're going to incorporate nuts or seeds or anything in your diet, from what I've researched, macadamia nuts and chestnuts have the most favorable omega-3 to omega-6 ratio to the point where you could even consume them on a daily basis and not notice too much of a negative impact in your diet.  No, I mean, depending on if it's organic or not, how it's processed, it might cause small amounts of oxidative stress. And if you're in an altered metabolic state, if you're really unhealthy, if you have a lot of inflammation, it might be an issue in the big picture. But what we're mainly focusing on here is, you know, can you incorporate these foods into your diet on a consistent basis in much larger amounts? And oh, when I said those two nuts, the macadamia nuts and the chestnuts, I also meant to include coconut. So coconut, macadamia nut, chestnut, very favorable omega-fatty acid ratios. You know, from a vitamin and mineral perspective, we're not getting much. You know, from a gut bacteria, microbiome perspective, we're not getting much. They are incredibly calorically dense foods. They're enjoyable. They can add flavor, texture, richness to a lot of dishes. So this is definitely something you guys can explore and above everything, you know, see how you feel consuming it. The people that are sensitive to foods, you know, tend to be sensitive to certain things. But hopefully these options I'm suggesting to you guys can, you know, remove most of the guesswork and give you an understanding of how you can incorporate these types of foods safely into your diet.  You could look online to find like biodynamic, wild quality nuts. You know, there's a lot of really expensive high end stuff you can buy that's not necessarily accessible at your local supermarket.  Now, you know, can peanuts be made in a healthy way? Yeah, I mean something like high oleic peanut oil that's organic if there wasn't a mycotoxin or inflammatory concern. You know, it's not necessarily the worst thing to consume or cook with, it's just with all these other options that are so much healthier and less inflammatory and more nutritious and they taste better. It really makes you question why bother incorporating something like peanut butter into your diet. Now, of course there are some specific things that we didn't cover. There might be certain anti-nutrients and peanuts that I didn't talk about. There might be certain chemical compounds and peanuts, phytoestrogens, whatever those things are. Over-arching concerns are the omega-6, are the mycotoxins, are the inflammation. Anti-nutrients, I don't really want to put a precedent on them because a big purpose of humans consuming food is survival. And anti-nutrients are specific to the food that you're consuming. You know, anti-nutrients and peanuts, even if they're inhibiting some of the mineral content it's not taking minerals away from your body. Yeah, there were groups of cavemen that if they ate too many chestnuts that weren't prepared properly they would run into issues. But we are able to prepare nuts, seeds and grains in a way to reduce the anti-nutrient content. So, you know, at face value, the way most plant foods are being consumed right now anti-nutrients are definitely an issue.  You know, if you're worried so much about magnesium being bound up to oxalates, I mean, you should probably be supplementing magnesium anyway due to soil depletion. You know, there's not a lot of minerals that you need to take or get in your diet. It's not difficult. So, I just really want to say and emphasize that anti-nutrients are not the predominant issue with this food and many other plant foods.  So, thank you guys for joining me. I think I've covered everything I wanted to talk about in regards to peanut butter, nuts and seeds. If you guys have any further questions or any input, please let me know. I mean, honestly, like if your kids really love peanut butter, chocolate, those types of treats, go organic, have them a couple of times a month. It's not the end of the world, but you really want to understand that if you're suffering from a lot of health issues and you have problems, this is definitely not a food that you want to incorporate into your diet anytime soon. See you guys for tomorrow's video.