In the late 1980s, Switzerland witnessed a huge increase in injecting drug use and was hit hard by the harms associated with it, such as HIV, overdose and crime. From this short movie by the HCLU, you can learn how the country successfully resolved these problems through the introduction of an innovative national drug policy. In the beginning, when the first large open drug scenes emerged in big cities such as Zurich, the situation seemed desperate. In that needle park it became absolutely a misery, a misery.  A lot of overdose, the mortality rate was extremely high, criminality was very high. In the beginning we tried to handle it along with police law enforcement, but it was obvious that it was not working anymore. The main indicator of how the old system didn't work was the large proportion of injectors being not in any kind of treatment. Ironically the open drug scene helped because that way you got media exposure and it was one of the main topics in the whole country. So the political system had to do something, the politicians had to do something, solutions had to be found and they started to build alliances between the different sectors involved. Everybody realized this is going nowhere and something has to be done. And this was the starting point for private initiatives. Also civil servants who on their own initiative started some harm reduction approaches without formal consent, even under the threat of becoming punished. One of the most important new interventions was the distribution of sterile needles and syringes among drug users to stop the sharing of injecting equipment and to prevent blood-borne infections such as HIV and hepatitis. The municipal authorities opened supervised injection sites to create a safer and more hygienic environment to avoid street drug use and to increase their ability to intervene in the case of overdose. Besides the scaling up of access to abstinence-oriented treatment and prevention programs for those who could not stop doctors prescribed opioid drugs like methadone in order to improve their social and health situation and to reduce crime. For whom no other forms of treatment worked, doctors started to provide medical heroin to get them off the streets, save their lives and improve their situation. Our authorities and police did not crack down on these first initiatives but they waited. They wanted to see what's coming out of it. We tried to work together with other departments, especially the social one, and we developed a new strategy. It's called the Four Pillars Strategy. The Four Pillars of the Swiss Drug Policy are prevention, treatment, repression and harm reduction. What was the reaction of international organizations, UN, INCB, to the new methods you started to use? More than skeptical. They didn't like it. INCB warned against doing that in other countries and still at the same time they allowed us to import the necessary amount of morphine to produce the heroin to prescribe because otherwise we had no heroin in the country. WHO was different. WHO set up an international expert group from the very beginning and they did a very good job in acknowledging the positive outcomes. The Swiss Drug Policy was carefully evaluated several times and the numbers speak for themselves. Heroin use was reduced significantly. The annual number of new heroin users declined from 850 in 1990 to 150 in 2002. Between 1991 and 2004, the rate of drug-related deaths declined by more than 50%. Levels of new drug-related HIV infections were divided by 8 within 10 years. According to a 1999 study, the country witnessed a 90% reduction of property crimes committed by drug users. About 70% of our injectors are in some kind of treatment and the majority of those in substitution treatment. There is no more need for those to go to the illegal market and to engage in criminal activities for getting the money to get their heroin. It was one of the concerns when we started heroin-assisted treatment that people, when they get the heroin, they will stay on it forever. They will never stop. The fact is that the average time of participation in a program is something less than three years. People find a job, people find new contacts, social contacts outside the drug scene. Many of these who had a long history of fighting between their families and themselves get some new relation to their families.  And the majority of those who go to another treatment go back to method of maintenance. And it's about one fourth of those who leave. In effect, try detoxification and drug-free treatment. My unit runs four contact centers in Zurich with safe injection and safe consumption rooms for drug users. So in four of my facilities founded by the city I paid the taxpayers money every day, yesterday, today, tomorrow about two to three kilos of illegal cocaine or heroin are consumed. If you want to run such a system you have to have a very good cooperation on a very operative level. How does this cooperation look like in everyday life? Well, we are on the street and those are the social street workers who are on the street and they see each other daily and they talk to each other and we really cooperate. And if they see something that's not working they call us and those on the other hand we call them and so it's really a cooperation. I run four contact centers. One is just opposite the stock markets and opposite the art museum. And it works. It works because of our good cooperation because we run these institutions together with the neighborhood. How would you summarize the key principles behind the success of the Swiss drug policy? Well, I think one of the major factors was the high visibility of the problems and the size of the problems. So everybody could see something has to be done. The main thing is implementation and for good implementation at the local level you need good collaboration. Stop the fights between police forces, social workers, street workers we had beforehand and work together. We have excellent collaboration with the medical world, medical associations because we couldn't have this high coverage in substitution treatment without private doctors participating in it. In fact 60% of methadone maintenance is office based in private practice. In Switzerland we have direct democracy as an important element of the political system. These new strategies were attacked by some political groups but then there was a vote and it was confirmed by the people. So the whole four pillar strategy has a very high legitimacy because they received large majorities in these referendum votes. What would you recommend for other countries who are struggling with the same problems? The situation in Switzerland, the example of Zurich, shows that it's really in other ways possible and I recommend all of them just have a look at it, come and look at Zurich, how we do it. If you would like to learn more about Swiss drug policy read the new report of the Open Society Institute entitled From the Mountain Tops, the evolution of drug policy change in Switzerland and its lessons for the world.


A polynomial p of m is given as 2 times m to the power 90 plus of 9m minus 1 is 0, a 0 of p of m. So first of all let us try to get some clarity on this statement. Is the number 0, we are talking about the number 0, a 0 of p of m. What do we mean by this 0? This 0 means we are thinking about, we are talking about that particular value of m or maybe more than one values of m that would make this polynomial p of m equal to 0. So what we need to find here is that, is this number 0, can this number 0 act as the 0 of this p of m? This number 0 can only act as 0 of p of m, if on substituting m as 0 in this given polynomial, the value of this polynomial would turn out to be 0. Let us try and see that. So 2 times instead of m let us substitute 0, 2 times 0 to the power 90 plus of 9 times m instead of m we are substituting 0 minus of 1, minus of 1. Let us actually see whether this value is equal to 0 or not. So this would give us 0 to the power 90 is 0, 9 times 0 is 0 and minus 1, 2 times 0 would give us 2, sorry not 2, 0, 2 times 0 is 0 plus 9 times 0 is again 0 minus 1. So this value is negative 1 which is not equal to 0. On substituting 0 instead of m in this polynomial, the value of this polynomial is negative 1 which is not equal to 0. Hence this number 0 is not the 0 of p of m. Sounds weird but yes, this is what we got.


Let's let's I need I need some type of some type of get back I gotta I gotta I gotta I gotta get some type of revenge So have a tag team match you and solo Versus me and you know a partner of my choosing Then they add the stipulation You can have a partner. They had to have wrestling at WrestleMania and whoever that partner is They can't ever challenge for Roman Reigns championships What not? So the list is very slim here and has to be someone as willing to not challenge for Roman Reigns Championships at any point while he's a champ and then Brock less of the music it So We're like, okay. This is an interesting pairing. He's excited to be out there with Cody We're about to have us a tag team match the end of the show Now midway through the show the Uso's weren't there So they end up walking into Roman Reigns a little locker room area And pretty much Paul Heyman stops them Paul Heyman's like, no, you know, you know So you got you know you guys, you know did your best at WrestleMania But right now, you know, Roman is talking to solo.  We got the jet already fired up I can go ahead and hit out on the jet And I like that That's going to be important because the seeds are being planted. They are not the champions anymore And Roman's gonna start treating them very differently Going forward because they're not champions anymore So I'm really loving the seeds the planting here because the bloodline is the cracks are still there Even though Roman's still the champ the cracks they're growing bit by bit So I'm really interested to see what happens So we get to the main event by the way, this Monday night raw was not that good This was probably one of the worst raw After Mania episodes I've seen in quite some time the first hour was pretty entertaining after that it fell off a fucking cliff It didn't get more entertaining to the damn main event.   They're They're stalling for time at this point because they're introducing everybody one by one their name all this other stuff and Before the damn match can even really get on way And someone dub called it on on the stream and someone called it on Twitter. They said I I have a feeling Cody's gonna get f5 by Brock And that's what happened Cody gets picked up and he gets f5 for his troubles Not only does he get f5 for his troubles. He proceeds to get Destroyed Like he hasn't already suffered enough at WrestleMania. He gets Destroyed by Brock Lesnar I mean Eviscerated the dude was f5 through a table. He was hit with multiple chair shots He was he was f5 onto steel steps. Even when they brought out the paramedics Brock Lesnar went down there and destroyed them even more with some chair shots and started choking the guy I was just like And it was Such a beautiful moment in the sense of the crowd Was hurt They were hurt last night that he didn't win now. They were just disgusted when they pan to all the fans That was shocked. They were they were saddened I was one of those individuals just shocked Saddened just looking at the carnage and how Brock had his way with him and there was nothing anyone could do And he the question is why?  This is his redemption art. This is his really him going through the ringer arc The comparisons to when John Cena lost At that particular WrestleMania that Brock Lesnar came back on the Monday night raw afterwards. He came back He when John Cena was in the ring when he lost to the rock first time and he proceeded to beat the crap out of John Cena That's exactly the comparisons here And I think that's the route they're going because everyone expects Cody to get that rematch But they obviously weren't gonna set it up now so This is where insert Brock Lesnar comes into the mix insert Brock Lesnar and Brock Lesnar destroyed him. We don't know why he destroyed them Maybe we'll get some answers, but he destroyed him So now it's going to be Cody trying to overcome Brock Lesnar That's an interesting matchup. I don't even think they have ever faced each other if I'm not mistaken Correct me if I'm wrong. I don't know if Cody and Brock is actually faced each other in in ring competition If you know, let me know. I don't remember, but this is a fresh matchup It'll be interesting to see. I don't know if they're going to set it up at backlash. Maybe they do um And obviously Cody's on the redemption arc to Try to finish the story, but he has to start pretty much. He has to start all over And right now he's starting with Brock Lesnar. Brock Lesnar beat the crap out of him So now he has to go through Brock and it'll be interesting to see if he has to go through anybody else to get back to Roman And I think that's what they're going He's gonna have to go through some tough tough situations tough times to finally get back to roman And maybe just maybe by time we get back to roman Roman won't be the same guy that he is now In fact, roman will be different because he may not have the bloodline with him And he's mentioned that Cody's mentioned that in this promo You've barely skated by because of people helping you pretty much So maybe this is the story two stories that are happening that will collide once again roman roman's bloodline collapsing because of his ego And people starting to leave him And cody trying to overcome adversity of people Kind of blocking him from getting back to that championship spotlight to that championship spot So it's really going to be interesting to see if Brock has a reasoning for what he why he did what he did And honestly to see how they they do this redemption arc this You know back, you know, you know, yeah, it's pretty much a redemption arc You're trying to redeem yourself from not being able to get the job done at WrestleMania You failed at WrestleMania kind of like John Cena He failed at WrestleMania and he had to redeem himself that entire year to get back to you know, where he was trying to get to I don't know if they can plan this out for a whole nother year as roman is champ But it will be interesting to see what happens But other than that wrong was boring That that was it was not that it was boring, bro First hour was great. The last 10 minutes was just a complete car wreck In the destruction of cody road. So comment down below. Let me know. Did you guys enjoy Monday night raw the raw after main here Also, are you guys interested in seeing a Brock Lesnar versus uh, cody road feud? And where do you guys think it will lead to do you feel like this is the proper route for uh for cody To kind of get that redemption arc Go through some some tough opponents to finally get the roman and also Where do you guys think is uh, what the situation is going with roman in the usos and their their relationship be Maybe on the horizon of the uh falling apart. Where do you guys think? Uh, that situation is gonna head to as well But I appreciate all love and support you guys are showing on the channel road to 150k And I am still going to be the youtube resident champion of the world. Appreciate you


Hey, thanks for tuning into the City Considerers. We're back here in the Davis Media Access Studio here in Davis, California. I'm your host, Autumn Lab A, Renault. And this is a place where we take a few minutes out to talk with our elected officials, our city leaders, and get the scoop on what's going on in our fair burg. Today's guest wears so many hats, it boggles the mind. Scientist, advocate, activist, small business owner, mother, grandmother, and now city council member. And by virtue of being the highest vote getter in the recent election, our mayor pro tem and our mayor in two years, I'd like to welcome Gloria Partida. Thank you. Gloria, thanks for being with us today. Thank you for having me. Last time you and I did any kind of hanging out was actually on the big day of giving when we were busy organizing what turned into a, that was a big event. Yes, and it was fun. It was fun. Promoted nonprofits and built community, which is what I'm all about. So, and it was great to do that with you and with Davis Media Access. And as founder of the Davis Phoenix Coalition, your organization and Davis Media Access have done some partnering over the last couple of years. And we really appreciate your work to promote equity and inclusion throughout the town. It's something you brought to bear on your campaign. It's something that I think is gonna be a part of all your work. Moving forward. And on that note, one of the things in your campaign you spoke about was the importance of including those issues, equity and inclusion as we look at large scale planning processes. And by that we mean when we look at housing, when we look at infrastructure and development. So now that you're on the dais and getting into this, how do we ensure that that actually happens moving forward? And what are some of the things that you're doing? So, I think that when people think about me, they think about equity as you said. And social justice because that is what I have sort of done most of my advocacy around. But one of the things that kind of drew me to the public service and to being on City Council was that I did see an opportunity to promote that citywide. But one of the ways that is most interesting to me for doing that is something that I don't think people think about too often and that is economic development. So economic development I think is really important for us in Davis because I think it's something that we have kind of, being kind of a slow growth city, have shied away from. And it's not something that we really is kind of at the top of our list. I mean, it's at the top of the list for a lot of people but I think that when you think about a small town you don't think about the economic development so much. But economic development is really important for equity because it provides jobs and it provides a bigger tax base. And when you have a bigger tax base and your finances, the shitty finances are in better shape or they are maintained in a better shape, that allows the city to do more equitable programs for youth and that's what I'm really, really interested in. For instance, this past summer of Tracy Tomaski and my co-chair for the Phoenix Coalition and I were talking about wouldn't it be great if we could give scholarships or buy pool passes for kids who are going between the sixth and seventh grade because there is some studies that show that for instance that's the year that most kids start smoking, right? That start to experiment with tobacco and it's a year that you lose a lot of kids. You lose a lot of kids in the summer between the sixth and seventh grade. And so something as simple as giving out pool passes to at-risk kids would really kind of level the playing field for a lot of youth. And there are a lot of great, Parks and Rec is just a wonderful vehicle to sort of catch kids. It's a great safety net for our youth. And so that's where I see the connection between equity and economic development. And so I think that that is really important. And you're right that year between sixth and seventh when they're transitioning into what we have in Davis' middle school is, you know, I've just raised three kids. It's a critical developmental point. Let's unpack economic development just a little bit though because I think what I've learned when talking to people about it, they hear that and they think, oh, big box stores. And Davis, you know, we're not about big box stores but it actually touches the community on a lot of different levels. Can we talk about some other ways that that plays out? And so the biggest and most obvious is partnering with the university. And as you know, we're just kind of working our way through negotiations with the university and their long range development plan. Right, that's been big news recently. And that is big news. And I think that I'm very, very hopeful and it sounds like we are going to be able to promote a good relationship building with the university and hopefully we can get through that process and come out of it with a stronger relationship. And part of that relationship I'm hoping is to be able to tap into the innovation that's there and be able to have, you know, maybe if we can't get like a big research park like what they're doing in Sacramento, we can get little incubators, spaces or places that the university can sort of explore ideas and then maybe go somewhere where there is more land or maybe we can take a look at what we have available and do some assessments about, you know, what are our strengths in the city and where do we have space and where do we have interest and do some outreach around those areas? Well, research park, since you brought it up, it's one of those issues that has been talked about in Davis and there have been various iterations of it that have come forward and really haven't materialized.  I'm thinking about the nugget headquarters that was approved last week and I read that there's some, a little bit of room for some research. So maybe we can squeeze things in here and there. And the connection with the university, of course, one of the big touchstones there is housing and the shortage of affordable housing for students and therefore students taking up a lot of the other, you know, rentals in town. So I hope that that's something that we'll continue to work on. I attend at UC Davis in the late 80s, graduated from here and it makes me sad to think about when I hear about students sleeping in cars or students who have really long commutes because they simply can't afford to live here or even if they can, they can't find a place to live because the vacancy rate is effectively, you know, zero. Right. And I think that, again, you know, that is something that we can't, you know, we can't rely on the university to do completely. And I absolutely agree that they need to meet a percentage but the reality is that we are going to have to tackle our housing shortage, you know, be that for students or be that for people who are here because, you know, as you say, you were a student at UC Davis. I was a student at UC Davis.  And one of the realities is that kids don't want to live on campus, right? I mean, kids will live on campus for a couple of years but it's kind of a natural progression that they're going to want to go off of campus. They want the freedom. They want the autonomy, absolutely.   So these are big issues we're talking about. Getting down to the nitty gritty. I know that you attended a lot of council meetings and you've been very involved in city life for a long time. So I think that, you know, sitting up on the dais is, that's new, but it's not that different from you've been involved. Have you come across anything? Have you met anything that has really surprised you yet? Or have also have you encountered an issue that is new to you that is now, you know, becoming more important to you? And I realize that maybe that's your question. It hasn't been that long. But what's your sense of the larger field so far, you know? You know, I really can't say because I really do still feel like I'm getting my feet under me. There's a ton of reading that has to happen. And what is surprising to me is the variety of things that you run across and you know, you get a lot of emails, you get a ton of emails from citizens and from, you know, other entities that want you to pay attention to certain topics or certain issues.  So that has been a little surprising because it's a lot to field. Yeah, and you can't be an expert on all topics. And so I know I've, working with other council members of the years, I see that people, you know, kind of have their, the projects they feel the most well-versed in and then they have to, but you have to pay attention to so much when you're up there. You do, yeah. But what has surprised me about that is, and what I've appreciated is that it has kind of opened my view more to, you know, because when you're doing whatever it is that you're doing, you see what's in front of you. You get in your groove. Yeah, you get your groove. And so you don't realize that there are, you know, just all these other issues that are here. And so that has been great. So I consider myself like a learner. I really, really am charged by, you know, learning about things and figuring things out. And so I kind of feel like this is a perfect place for me. And so I'm really enjoying that part of it. Do you feel a lot of responsibilities on your shoulders?  Council, you're the only woman on Council. You're our Latina. You are, we have not had a Council member like you before who came to the table with equity and inclusion as their main, you know, tenants of what you believe and what you want to move forward. Well, as I said in my acceptance, you know, it says a lot about our city. So, you know, right now in this, right now in the time that we are, you're seeing, you know, you're seeing Latinx children that are being used as a tool to close opportunity. And so I am so grateful to this community that has managed to keep the doors open for opportunity. And I just, I think that it does say a lot about us. It says, you know, a lot about what our values are. And so, yeah, it is, it does feel, I do feel the weight of it. But I also feel supported in that endeavor because I know that, you know, that this is where my community stands. And so I did have like one lovely experience where I had this Latina mom come over with her two daughters because one of the daughters who was around 10 wanted to meet me. Nice. And so that was very validating. So you're modeling that? Yeah. Which is great. And my daughter just started, my daughter just started her first year of residency in LA. And so she's kind of back in the neighborhoods that we grew up in or that I grew up in and that's where my kids were at. And she says that whenever she sees like a young, teenage single mom come in that she looks at her and she says, you know, you could be mayor one day. So that is like, that's like really, it warms my heart. That's very awesome. And I'm confident that you're up to the task and more. And I think we're very fortunate to have you here as an elected council member and mayor pro tem. So thank you for your service. And thanks for making time to come in and chat with us today. As I said earlier, the door will be open and we will have you back. And you know, happy to talk about single issues or just checking and see how it's going from time to time. Okay, I look forward to that. Great, thanks so much Gloria. All right. And thank you for tuning in. You've been watching the city considers here on Davis Media Access. This is a program that airs on Tuesday evenings at 615 PM, right before council meetings. You can also find it online at dctv.davismedia.org or on our YouTube channel. And thanks for tuning in.


I have a really good friend named James Lawrence, who's known as the Iron Cowboy. A few years ago, he set out to complete 50 Ironman triathlons in 50 days in 50 different states. That's almost two and a half miles of swimming, 112 miles of cycling, and a full running marathon every single day for 50 consecutive days all while traveling from state to state. I consider it to be one of the most remarkable physical feats ever performed. James and I have had the opportunity to travel and speak together on stage at different events, and one of the biggest questions that he receives on his tours is how? How did he prepare for it? How did he execute it? How did he keep this incredible endurance up not only just for one day, but for 50 consecutive days? His answer is always the same. He says, I did small things consistently over a long period of time. That's it. Small things consistently over a long period of time. That kind of simplicity is deeply profound, especially when it comes to mentorship and mentoring others. If you can maintain a focus on mentoring your employees toward greater success rather than just managing them, you will see these small opportunities arise. And just like my friend, the Iron Cowboy, you will see those small, single steps build into something that's remarkable.


The Kidney Cancer Association today honored Dr. Michael L. Blute, Chair Emeritus of the Department of Urology at Mayo Clinic, Rochester, from 1999 to 2006. Dr. Blute was presented with the Andrew C. Novick Award at the 11th International Kidney Cancer Symposium held in Chicago. The award and lecture is named for a urologic surgeon who pioneered cutting-edge techniques that have resulted in saving many thousands of lives. Throughout his training, Dr. Blute has received many awards and honors, including the Mosby Scholarship Book Award for Scholastic Excellence. He's also past president of the Minnesota Urologic Society. During his career, Dr. Blute has been funded by, among others, the National Cancer Institute, the National Institute of Diabetes and Digestive and Kidney Diseases, and the American Cancer Society. His surgical practice and research interests include prostate, kidney, and bladder cancer. The Novick Award provides funding for a young investigator award made collaboratively through the American Urological Foundation's grants program. The Kidney Cancer Association was founded in 1990 by a small group of patients including Eugene P. Schoenfeld, Ph.D., and medical doctors in Chicago. It's a non-profit charity incorporated in the state of Illinois and has also been federally designated as a tax-exempt organization. Reporting from downtown Chicago, I'm Bill Brough.


In the next section series, the specimen that you see held in my left hand is the human heart. It has been harvested from one of the cannabals. Now, if you look closely, I'm holding the heart in the way it is normally oriented inside the thoracic cavity. So I'm holding the heart in my left hand. My left hand is dorsiflexed and radially deviated, so this is the anatomical position of the heart. So in this position, what you see, let me quickly give you an orientation of the margins of the surface and the borders of the heart. This is the apex of the heart, which is in the left intercostal space, one palm width from the mid-easternal line. This surface is the anterior of the sternocostal surface of the heart. This is the left border of the heart, this is the right border, this is the inferior border of the heart. And my hand is resting on the diaphragmatic or the inferior surface of the heart. And this is the superior border of the heart, which is formed by the right atrium in the left atrium, and I'll tell you more about it a little later. Let's identify quickly some of the structures that we are visible in this view. Straight away we can see these two great vessels here. This is the aorta, the sending aorta, this is the pulmonary tract, this is the left oracle, which is part of the left atrium, and this is the right oracle. Now what I'm going to do is I'm going to turn the heart around and I'm going to show you the other chambers. Most of the sternocostal surface that you see here is formed by the left ventricle, with the right ventricle. The inferior of the diaphragmatic surface of the heart is formed by the left ventricle, the left border is also formed by the left ventricle, the apex of the heart is formed by the left ventricle, the inferior border is formed mostly by the right ventricle, and the right border of the heart is formed by the right atrium. So these are the borders of the heart. Now I'm going to turn the heart. you see here, I have separated it. This is the left atrium. And as we all know, what is opening into the left atrium? We have the two left pulmonary veins. The two left pulmonary veins are opening and the two right pulmonary veins are opening. They have been dissected out and then formed a common opening here. So this is the left atrium. And this is the right atrium, which also has been opened up. But if we put them together, we can bring back the orientation. You can see this is the superior vena keva, which is opening into the right atrium. And this is the inferior vena keva, which is opening into the right atrium. And this is, as I told you earlier, is the oracle. So having mentioned these, now let me show you where is the transverse sinus. As we all know, during open heart surgery, we put our finger in the transverse sinus. And as you can see, my finger is right now in the transverse sinus. The transverse sinus is the space between arterial end and the venous end of the developing heart. And that persists in adult life. So in front of my index finger, you can see that this is the pulmonary trunk. And you can see the auricle. And behind my index finger, you can see this is the superior vena keva. So this is the transverse sinus. And the flow of the transverse sinus is formed by the superior border of the heart, where my finger has disappeared. And I can show it to you here. This is the flow of the transverse sinus. Okay, now that we have mentioned that, now let's come to the vessels of the heart. Those which we could dissect out and which I'm going to demonstrate to you. So let's start from the aorta. So I have separated the pulmonary trunk from the aorta as much as I could. And after separating them, let's see what we can find. Here, we notice that this is the right coronary, excuse me, right coronary osteum. Because artery is very friable, when I was dissecting it, it tore off. So this is the opening on the right coronary artery. And this is the right coronary osteum, which comes out from the right coronary sinus. So this is the right coronary artery. Again, to show you, this is the osteum. And this is the opening on the arterial side. So this is the right coronary artery. So let's put it back in its place. Once we put it back in its place, you can see that it is overlapped by the right oracle. So it runs in the anterior coronary groove or the right anterior atrium ventricular groove under the right oracle. So therefore, transiently disappears. So let's reflect back the oracle and we can see it is running in the right anterior atrium ventricular groove. As it continues, it gives us to the right marginal branch. So we can see the right marginal branch here. And we can see another branch here. We can see that they're giving out two brands. And then the right coronary artery continues. It continues on the posterior atrium ventricular groove. And you can see it is continuing. And it continues. Again, it is because of its probability it got ruptured here. And in the region of the crux of the heart, the crux of the heart is the junction between the posterior atrium ventricular groove and the coronary groove. In the region of the crux of the heart, it turns downwards and it runs down as the posterior atrium ventricular artery. So this is the course in a nutshell of the right coronary artery. You can see the branch is coming right from its origin. Before concluding about this, it will not be out of place to mention that the right coronary artery also gives a branch to the right to the to the SA node, sanitary node, which is near the origin of the opening of the supravena caver. And near the crux of the heart, the same right coronary artery also gives a branch to the AB node in the majority of the population. So the right coronary artery is a major supplier of the right ventricle and it also supplies the posterior one-third of the thickness of the interventricular septum. So that is the supply of the right coronary artery. Now let's take again come back to the anatomical position. This is the pulmonary trunk. Let me remove this. This is the left oracle. Now let me reflect this and here we see is the origin of the left coronary artery. This is the left main coronary artery or as we call it LMCA. Mercifully this did not rupture. This is still coming out. So this is the left coronary sinus and you can see the left coronary artery emerging. Again just like the right side, transiently it disappears under the left oracle. And then it reappears again. So let me just reflect back the left oracle. And once we do that, we can see that this is the left main coronary artery. And immediately afterwards, as we all know, it divides into the anterior interventricular artery, which is also a very big artery. The surgeons call it LAD, left anterior descending artery. And you can see it is descending in the anterior interventricular groove. And when it's descending down, it gives rise to multiple branches on the left ventricle. Here we can see one of them. We can see another small one here. There will be several here. They are referred to as diagonal arteries. So we can have diagonal 1, diagonal 2, diagonal 3. They are called D1, D2, D3, etc. Then the next, after it is given off to the anterior interventricular or the LAD, the rest of the left coronary artery continues. As you can see here, my probe is under that. And that is the circumflex artery. The circumflex artery then continues running. It runs in the posterior atrioventricular groove on the left side. And as it runs, it gives rise to the left marginal artery, which you can see here. It is the left marginal artery. And then the rest of the circumflex artery then continues running in the posterior atrioventricular groove. And in this place, it is accompanied by the great cardiac vein, which is going to subsequently become the coronary sinus. So you can see that it is accompanied by the great cardiac vein, which is going to become the coronary sinus. And they are running in the posterior interventricular groove. And it runs in the posterior interventricular groove till it almost reaches the right coronary artery, but it does not directly enhance the most of it. And we can see part of it here. We can see part of its course here. So this is the course of the circumflex artery. Part of the coronary sinus has been dissected out here. And I can show you the opening of the coronary sinus on the right atrium. This, as I told you earlier, is the opening of the right atrium. Again, to bring you up to speed, this is the superior vena keva. And this is the inferior vena keva. We have opened up the right atrium along the sulcus terminalis. And we can see that this is the sinus venerium part of the right atrium. And my finger, this is the atrioventricular valve. And that, where my probe has disappeared, is the opening of the coronary sinus. My probe has disappeared into the opening of the coronary sinus. So this, in a nutshell, ladies and gentlemen, is the first series of dissection of the heart, whereby I have demonstrated the borders, margin surfaces of the heart, the cross structures, the atria. And more importantly, I have demonstrated the right coronary artery from its origin to its termination, the left coronary artery with its branches from its origin to its termination. And I've shown you the coronary sinus. Thank you very much for watching. Thank you, Selvi. Thank you, Doug, for being nice camera persons. Have a nice day. If there are any questions or comments, put them in the comment section below.


Now everybody forced here ripping NBA six bucks mixer twenty one twenty two one and one select hub hobby hybrid and chronicles draft number two It is a random team style. There's the results link in chat. You can always find the results of late in sports cars comm as well Let's get started. Good luck everybody See what we got NBA draft results right here Very important Chronicles draft breaks All right three chronicles draft two slight hobby hybrid in a one-on-one Tyree eason red to 149 Tyree eason I want to say spurs. Is that right? Rockets Tyree eason rockets on the rated Ricky Tyree eason 149 Had had the right state A red Steph Curry mosaic warriors The warriors 17 of 149 the davidson wildcats Steph Curry Jersey card brady manek 34 out of 199 brady manek He for sure has a team designation. He played At least summer league somewhere brady manek He's in australia right now Hornets brady manek to 199 tag this one Find the results Oh, you got it. I just blasted. Yeah, that's the mixer link the the results link right there John d looks like you have the kings john so you're looking for some keegan murray Maybe some davion mitchell in the other boxes Agbaji rookie aura It's easy to see why people thought he wouldn't be the best pro. Yeah He's like a baby. Yeah Kennedy chandler on the limited jersey auto 43 out of 99 Kennedy chandler He is grizzlies. I remember that grizzlies. Kennedy chandler jersey auto Ej Liddell Shade on sharp shade on sharp silver blazers rookie mosaic Keon ellis on the freshman fabric jersey auto 33 out of 99 keon ellis Let's see. I think he went undrafted Keon ellis kings on the keon ellis jersey auto Currently in the glee with the stockton kings Oh shamp gamma rays red Jeremy sohan spurs 91 of 149 Another step I believe so I think we have lakeland magic, right? I don't think it's open like some some teams you can go see play. I don't think that one's open to the public. Oh, really strange I'd go see him. Yeah keegan murray jersey card. There you go kings 41 of 99 Murray's a good one Riffin we got a debook silver your sons it's very eason There's like a box two patch autos in that box and another one, maybe It's like a just jersey card andrew nemhard jersey card Andrew Nemhard is Pacers jersey card andrew nemhard Sohan. All right. Let's keep it go. It's a good game It's been back and there's been like lead changes like every few minutes. It seems like sorry eason jaden ivy There we go pistons 35 of 49 rated rookie Pistons are gonna be so good in products this year All the potential second year kades and jaden ivy's and jalen doran's Jared rodin on the auto. I think he's a random. Let's see. Let's see Jared rodin Blazers jared rodin blazers Yeah, okay. See the magic as well and the rockets those are like the few teams. I think of that are gonna be super good in products palo select Basically teams are just bad every year picking on top of draft every year AJ griffin to 99 college ticket auto hawks hawks aj griffin jocelyn lewis Who's getting spanked by the cabs herman? Who are we just talking about? nassir brooks on the auto here nassir brooks Kind of missed the sticker there nassir brooks Where's this guy at? Is he still in college? I think he's still a little miss That's all I see I'm gonna go too much henny on that auto Hey, we've all been there.  We're gonna random that at the end Couldn't find anything for the mba there Hey, jabari smith your rockets to 149 power formulas Shet rated erky optic Cade cunning am triple jersey pistons cowboy cade right there. Oklahoma State cowboy cade Kennedy chandler grisly's rise above Tyler hero triple jersey for the heat And one more chronicles drafts All right, let's see what's in this pack that was being difficult Come on one of one jerry sohan spurs rated erky to 149 spurs Grant golden on the auto grant Golden grant golden denver nuggets, which is fitting Very fitting Rise above john marant grisly's How do we easy to remember that guy's team? golden nugget done ohchag bhaji 43 of 49 on the mosaic scripts auto going to the jazz Again, he was drafted by the calves and he was part of the donovan mitchell trade nice one jazz These mosaic scripts designs look so good this year Compared to like other mosaic scripts from the past Chet holmgren silver mosaic thunder this is out of here, right Chet yeah alex barcello On the auto here alex barcello Selo as you play it has he ever been in the mba? I see a greek professional team He was summer league raptors so we'll go raptors on the barcello recon step 69 to 99 warriors The warriors stefin curry tray young tools of the trade triple jersey hawks Gold rise above magic palo ben caro four out of ten Heck yeah, orlando. There we go, baby That's our guy right there That's our guy We'll get this one bag this one's going out to rob d congrats rob Robby Ruby had you more on triple jersey wizards All right, select hobby hybrid now two boxes xire williams concourse disco tobias harris sixers france vagner Keith concourse disco rookie josh giddy thunder in blue Steph curry blue disco premiere level 23 of 25 warriors doing very well That's paola k congrats paola awesome blue step to 25 legend Shenyun concourse concourse lebron james disco lakers and silver concourse tj warren pacers Oh, yeah calves are destroying the pistons destroying it's like a 20 point game Which is I guess isn't that far in the mba today get like four three in your back Premier level disco andre drummond the warriors can come back from that in a minute and a half Imagine it would never ever be down by 20 So exactly No need, you know Jalen green concourse rockets Concourse rookie disco rockets opera and shengun and a jeremy robbins and url That pack just like fell apart Kate cunningham concourse rookie pistons Concourse disco rockets christian wood and silver premier level lakers anthony davis Blazers concourse disco damien lillard Nuggets rookie concourse silver bones island You go nugs Hey, it's possible travis Premier level disco lebron james lakers One one We're gonna get one card and another one The base parallelism nugget it's demul Murray 21 to 25 there you go nugs and the hit Is a rookie prime patch auto iodo sumi red color match 21 to 25 nice hit chicago Eric b with the balls nice io All right, let's random off this one card and then we'll do a quick recap The one random card is a nissier brooks auto Still at all miss it looks like 11 times on the random. Yeah, sorry travis man It's a tough spot to get in such a short break All right one two three four five six seven eight nine 10 and 11 John d gets the auto All right, let's do a recap. So john d got this auto here the uh nissier brooks We had relics rowey hachimora try young kade conningham tyler hero andrew nemard keegan murray brady manek the base parallel and one and one was demul Murray to 25 Order nugs We had autos alex barcello. Oh chiag bhaji grant golden a j griffin jared rodin jersey auto keon ellis kennedy chandler rpa was iodo sumi 21 to 25 for the bowls Blue premier level this goes to have courage at 25 warriors and a gold rise above palo ben caro magic to 10 Step was a 25 by the way, but I didn't say that and that'll do it everybody. Thanks again. We've got one and one coming up


Hello, yes, I'm just Stefan. My name is Wiertel, but I like Stefan just that This story is just about Firstly it's a real pleasure to present my experience to you because sometimes I don't like to expose something Firstly it's my first talk about Django. I'm not a fan of Django I prefer flask but because assign a contract with Django for Django, but I started to use Django I'm not an expert just a newbie a beginner if you have some Advice you can give me you can send me your message About the rest Yes, only develop some backends web services with Python, of course, I think I oh maybe we've go long or a long It's my biography On the left is just a draw of my daughter. You can see there is a big snake On the center. It's me. I am a Python lover Of course, I use open source a developer open source. I open source is just my life since 20 years and I just created the Python for them. You can come for the next year and what else? Yeah, I am a member of the PSF of EPS. I receive CSI from the PSF because I just created the Python for them Yes, just that so For presentation, I need a use case and in this case in this story I'm going to use there are you're a Python website. Okay, I Precede the work with which has be done by the current developer of Europe I turn website We know you're a Python is just a know some project. We are there that really that's really awesome Because we saw what you're Python or Python Python is not the fabulous project Thank you So this even has been organized by some people and there's people the organizer are the main developers of Python of Europe, I don't say We have some war groups in Europe. I don't we have the financial group The support group and of course a marketing group and there is the web team group. I am in this world group my first contribution to the website was in 2015 sorry, I'm not French. I'm not English And when I have time I contribute to the project But when I have time and maybe that's the main reason why I'm not a big contributor But is this year? Just explain that assign a contract to a developer to be a jungle developer. Okay. I'm a normally I'm I am a Python expert and I know flask Maybe jungle is not really difficult.  It's not just a facade It's not just a small site where you can see the speaker or just the attendees and the rest With Europe I turn we can do the conference management We can manage the tickets for the assign and assign or just our friend tickets You can come we can do some statistics about the attendees the speakers and the rest We can also make the invoices or just the refunds. I cannot come. Can I can you refund me? Okay, maybe When you send an email to the support because you have an issue with one person or because you have another program, whatever There is the help desk and this help desk will use your Python the Europe Python site Sometimes you receive some notification by email. We don't use any other system any external system We don't use a WBS or just Mailchimp But sometimes and you don't know that but with the last version of Europe I turn We can do The booking for the rooms for the hotel and of course for the sim cards But we try to remove this card because it does not work But yes, we can do that so The website if you can is a really good tool because it's not just a simple website It will handle the invoices the refunding and the rest But sometimes we need to do the state of the union Firstly We use Python 2.7 The support will stay will stop in 2020 and We use Django 1.8 No, okay The the last migration to the Django 1.8 is be done in the last year during the last Europe item We use some dependencies, but there's dependencies are just broken with the new version of Django There's no maintenance That's very boring Of course, we use a scale light Sorry, the best is just after we have no test Can you start to come back? Yeah, we have 100 or 200 files and 27,000 lengths of code and no test and No documentation Sometimes we can read and you can check in the source code the chemist are just in Italian We are just some English speaker That's right, and we understand English or French or Italian for Okay Sometimes we can see in the source code of Europe item Some parts of the code the code is just duplicated or we can see some dead code why because During the migration from the last Sorry for the history the previous version of Europe items the Europe item site was based on the Python Italia site That's the reason why we have the commands in English in Italian and They use several apps application With a new version of Europe item we just merge them Okay, and that's the reason why we have some duplicated code Of course, no, I think I think for us no continuous integration And no API for the external tools are in fact we have nothing Okay, but and no c-slug, of course. Yes, the settings are coded. I think we have a But say usually I think We are not alone in this case because I'm a freelancer of with Python And when I go in some companies, I can see the same case another commutation Uncontinuous integration server in fact nothing Yes, it works. Okay, I Don't forget one thing because we are at her a Python Europe items are started in 2002 and Since the beginning we have a lot of former developers in reality 31 developers Secondly, we are some volunteers on the free time Just that we are not paid for that. It's not the case for the companies and We are not web dev just that a scientist back-end dev We try to to fix the issues Okay From that I think we have a real challenge Maybe a small maybe a big We have a rare challenge the first challenge is to have a continuous integration server Okay, we can install GitLab. We can use in GitLab or maybe Travis. We will see that in the future We need documentation not in Italian maybe in English Why not in Flemish? English is better For the configuration that's very important because currently the settings are just arcaded in the south code That's very boring when you want to to move from the prediction to the staging to the production server That's very funny. We need some tests Maybe refactoring the dead code remove them Of course improve the quality of the code to that That's very important the profiling Sometimes we develop some application with Django, but we don't use some tools some funny tools We need to improve the deployment. I Don't know for you, but I need some companies they copy some script from a wikai wiki, sorry and They passed all the lines in a shell because they don't know fabric and unseeable or so stack and We need to monitor everything the website He's responding or not to the database. There is a shutdown or not everything About the continuous integration We have good news I have a good news I started to use Travis just a configuration. It's not really difficult Okay For the documentation What's the best project we want? maybe things I Like things because we have just the syntax and we can extend it and Because we have a lot of plugins for Django About the configuration we can start to to change the source code and just You are just use Django that and that and is just a small file where you input you put your configuration you can see that in the part of the top where you Give the the the configuration for postgreSQL for the secret for the the debug environment and the rest and In the bottom it just Lines of code that you have to put in your manage the pie. That's very funny With that you don't need to change your configuration with the settings the pie I have seen some developers. They comment the source code the settings and try to use the other part for the test please Just please Use unit test or pay test. Don't try to make your own framework. I see that that's very funny It's just I Use by test and I'm going to show you that because yeah, there is a funnest a good project by test profiling But please use a framework. It's a basic requirement requirement and Don't believe that your code is just perfect. We are humans and the human make a lot of error in this life, of course so When we create some tests How to create a test we create a function For the test and after we implement the code But we have a legacy code. It's not the case You have the legacy code and you have the test you want to try to write the test Maybe you can write the test in function of the code coverage of your application in this case You can use coverage or just if you are using by test by test dot-cov That's true just for the source code, but sometimes you are using some templates and In the templates you are not sure that your templates is just used with the right function Example you want to add a new parameter to a new an endpoint and you have to check all the templates Okay, you can cry you can try to create Test for each templates, but there is a plugin for that Jungle coverage plugin this small plugin will analyze the template. It will give you a Just a small report. Okay, there is an error in this case just that Because we use the version the version 1.8 since this version The migration and giant of Django will execute all the migration file and sometimes that's very boring But with a BB because the test will take two seconds and the migration two minutes With just this plugin We can disable the migration When you try to write to your test that just more important, that's better For the rest we have some models I suppose who used the fixture bad Sorry. Yes, that's bad. Why because we have a static file and When we have did the model we had a new field you have to have that your fixture I don't know for you, but in the companies where work They try to Implement a small script where it will put some values for the new field and my case. I just use factory boy Create a factory for the model and from that I can implement a new instance of my mother Just when you write the code on or when you want to refactor your code You can use pyflake or just by lint Just some linter where they tell you where you have an error in the source code. For example, you don't you just forget to Declare a variable Use a variable, but this one is not really it's not in the source code When you develop you can use Django PDB when you have an exception Automatically PDB will start. It's a post-mortem, but automatically it will start on this line where you have the issue the exception And you can start to debug. Don't just print prison just for the The beginners, it's my case If you are using py test, I'm going to use PDB PPP Because PDB or IPDB just does not work does not work with py test, of course Because I'm a contributor of CPyton CPyton 3.6 and 3.7. I like to use my py And we can use my py. My py is just a small tool where we can check The source code we can create an analysis of the source code and give a report where okay This variable is just a string, but you want to assign an integer. It's not correct And my py can give us a report where we have the duplicated code Or just the duplicated function We can use autoflake Autoflake is just a tool Where it will remove the unused import files from the source code and For the import you can use in ISOT. ISOT will and function of your configuration Will solve the input the import side By three groups for example for the stonda library for the intern stonda library the external library Django and whatever and your home library Okay Maybe Django debug toolbar Do you know how they debug or profile an application with Django and my team before I was a lead They take time They start time and they make the difference between the start and the stop just that but we don't know the number of queries in the database and About the CPU we have nothing It's very interesting. I use it. I don't know for you When you run the server with run server You can use Django Django server and the line profiler plugins where you will Get a small report for the profile of the profiler And for each line we get we will get the result for each line. Okay, this line has to as they Takes two minutes or two seconds. Sorry, and the next line will take one minute milliseconds. That's really important Yes for you Python's profiling Python's profiling is just a wrapper around see profile But he has two interesting feature the first one is just profile SVG With this feature, he will create an SVG file and we'll generate the lines where you can see a Sorry, excuse me, you will have a file a profile where you can execute a tool to show you the Graph with the duration the course a number of course the times in the application and You can use the second parameter just durations duration will create we write a report Where you have in this case just the two slow worst function in your source code I like that because sometimes we can have this graph I don't know for you. Sometimes you have a function. You think it's a CPU bound but in fact, maybe there is a problem with this NKO with the DIO In my case, that was just a problem with my network So I'm going to continue with the profiling we can use see profile V See profile V is just a web interface for the prof files You can see just a small screenshot where we have all the stack trace And the course for each function and the times Just need to install it with With people so So for the deployment while using Docker and We use the co-compose, but maybe in the future. I would like to use Kubernetes or the course one Because if we implement a new feature we want to see it before to put it in the prediction server Because we are some developers For the monitoring I would like to use sentry because currently we receive an email Just an email and we have no statistics about this exception. Nothing sentry is really a really a good tool for that Maybe you super facade or super vaza super visual day, sorry or just Kubernetes or the course one because it can restart if there is a crash of the process and For the rest not just or she can so Exploring just the state of the union after this Refractoring because I did it I Have added Travis We have some tests 97 tests. It's not really big, but it's not better than zero We have code coverage 32 percent 32 person on 27,000 line of code. That's good In one week, I think it's good started to port The database to postgres equal the source code start to be compatible with postgres equal and of course Sometimes I use a profiling because I have Observed some difference with the speed and function if we use escalate of postgres equal Next step just Just add the documentation remove the dead code Move to the last version of Django Django 2.0 or 1.11 I prefer Django 2.0 because we will remove the support of Python 2 Of course, Python use Python 3.6 Because we have some improvement and mainly with the last version of Python Python 2 3.7 and some months Use postgres because postgres Is postgres just the perfect database for me? Use celery Maybe we will provide some API because currently you know why the schedule in your application is not Synchronized with the app with the website because every day we just export the schedule from the database to the application And maybe create a single page app so There's an expert a Django expert in the room because maybe we need your help because We are voluntary. We don't have a free time. We are not paid for the Europe item site It's just on the free time But maybe we you have a better experience than me How to contribute during this weekend, we will do a spring code Please come on. Please. I don't want to be alone. Okay, please come join the web team and If you are better than me, please share your best practice You have Survey you can go Just read it. It's tiny real.com slash Django that's best dash practice and If you have a question There's a time there's a moment who has a question This talk is just my experience in one month Okay, I never used Django before And I don't know if I had the right The the right practice for the project but in my case because I already used some other tools in the past Just use this towards Okay No question. Yes, just one I'm in time Hi there So first you can run by test with IPTV is just minus s or minus minus capture equals to no Which will want to redirect the SDL so everything's working with by testing IPTV and Seconds Have you considered the whole team to use at least some Django CMS or waktail as Base on top of which you can build the conference thing For the second question we use Django CMS All right For the first, sorry, can you repeat? There was a slide that you said you cannot run by test with IPTV Because you get some strange event loop error When I with the certain flag Maybe you can show me because when I started to use IPTV with by test I don't know why but sometimes I get some some error in my console But if you have a solution, I'm ready to maybe the test were failing. Yeah, okay Another question. All right. I think we've got time for one more. I'm sorry We've got time for more questions. So Ah, all right And as far as eliminating dead quotes, there's a very good tool called vulture And it doesn't catch up to be everything for obvious reasons, but it does catch an awful lot of stuff It does study code analysis on the code base So that should be useful Can you show me because yeah, I come on All right, do we have a question that is a question Yeah, there is vulture just forget to explain it, but yeah, it's a good project or so Thank you


For the CircuitPython Parsec today, I want to talk to you about a new to me, at least, serial program that allows you to communicate with your devices and read out debugging and send information to your microcontrollers, which is super, super useful. So I'm on a Mac, and usually I use screen. Works really well, except for one major problem, which is anytime I disconnect, which is every time you reset or unplug and re-plug the board, you've got to re-run the screen command. So what I'm using now is called TO. It's at github.com slash TO slash TO, T-I-O. And here's how it works. I have a NeoTrails M4 plugged in here, and I'm plugged in over USB. You can see I'm actually sending it some info that's causing these lights to blink. And let's say I'm debugging and I want to spy on that info. So if I have print statements in my program, which I do here, you can see there's various print statements. Where those print out is serial port of some kind. So what I'm going to do is run this command, which is TO, and then the port it's on, in this case dev, tty, usb modem. When I hit enter here, you can see TO connected, it gave me some little messages to say connected. And now it's printing out info. Now here's the really cool part. Unlike screen, if I go ahead and reset this board or unplug it and re-plug it, I'm just going to hit the reset button on there. It is going to disconnect the board, but now it tries to and succeeds at reconnecting. Same thing happens if I pull power. So let's say we pull power for some reason. We go and noodle around with a circuit, connect it to a board, let's say, plug it back in. When that reconnects, we're up in business again. So really cool, very helpful for any of your debugging on your microcontrollers. That's my Circuit Python Parsec for the week. It is TO.


talking about benchmark applications, we also talked about some of the matrix that we use to measure performance. We discussed the benchmark applications for several market segments including desktops, servers and embedded processors. So, today we will start with for example how do you compare of processors P and C with two benchmark applications P 1 and P 2. A execution in one second, P 2 in 1000 seconds, B executes P 1 in 10 seconds and P 2 in 100 seconds and C executes P 1 in 20 seconds and P 2 in 20 seconds. So, with this data which of A, B, C is the best one because you can see P 1 then A executes the P 2 whereas in both cases B is in the middle of the two benchmark processes you would be dealing with hundreds of benchmark applications. Meaningful summarization of this data and meaning by meaning it is misleading that should not lead you to which is actually not a good one. So, let us take a look at the possible ways that we have report the total time to execute P 1. So, similarly along the same line it is possible to report the arithmetic mean of the total right. So, it is the same thing in these two. So, if you at what you get is on 500 and half seconds B takes 55 seconds and C takes 20 seconds to execute P 1 and P 2. So, according arithmetic mean you would conclude that well C is the best say that well I would go and buy C right. Do you see any problem with that P 1 may be a more popular. So, 2 to alleviate this problem is dated execution mean assigns to everybody. So, as somebody has already suggested P 1 which is often very difficult to do. So, what one of although it probably does not have much meaning as such you could assign equal time weights with respect to a particular machine. So, what do I mean by that if I take machine B is that I assign weight to P 1 that they take amount of time. So, equal time weight with respect to B would be P 1 getting a weight of 0.09 and P 2 getting a weight of 0.091. 0.909 if you give weightage of 0.909 to P 1 you get 90.9 seconds of execution here. So, this will be 0.091 weightage to program P 2. So, you might wonder why should anybody do that. I mean why am I taking machine B and equalize if you want to be to respect to B. Well there may not be any reason for that actually, but anyway. So, the point here is that respect to a particular machine now you can report other things, but it is easy to far play by taking a wrong baseline machine. The other option is to report normalize performance and that is normally what industry does and what normally practitioners do. Normalize execution times to some baseline processor. So, the point is that when you are designing a new processor you already have one and you are trying to improve upon that. So, it makes sense to specify your performance improvements relative to the current processor that is often called the baseline process. So, now we are really talking about ratios. So, for example, here in this example if my baseline is a I will report the performance of B and C with respect to A. I will say that if I take P 1 then P is 10 times slower than A. Whereas, if you state as faster then A will be connected P 2. So, talking about ratios. So, how do you summarize ratios the same question again arise. And again you have options you can do arithmetic mean you can do geometric mean which one makes sense. The problem is that arithmetic mean if you take arithmetic mean of time it is still time if you take geometric mean of time it is no longer time it is something it is a number. However, geometric mean of ratio has many good properties. So, we will come back to that before that here is an example which shows how geometric mean can be used. Suppose designer of A does an optimization that brings down the time to execute P 2 to 500 seconds previously it was 1000 seconds designer of B does an optimization that brings down the time to execute P 1 to 5 seconds previously it was 10 seconds. Geometric mean will continue to show these two processors at the same level because the ratio is same actually same. What designer of B does is that halves the execution time of P 1 and designer of A does is it halves the execution of P 2. So, if I take the ratio of these. Suppose I am comparing A and B here. So, I have two ratios for P 1 the ratio is 1 over 10 for P 2 the ratio is 10 here I take the geometric mean of them I take the new optimized machine A and B I do the same thing I take the same geometric mean. So, geometric mean is oblivious to absolute savings that is the property designer of A is very smarter than never be because designer of A was able to save 500 seconds but designer of B did something to save only 5 seconds. So, if somebody provides geometric mean or harmonic mean of performance with respect to a baseline the type of mean really depends on matrix and the point is that do not cheat. So, that is the most important part of that. Now, geometric mean is often used when you mention ratios and the reason is that the geometric mean of the ratio is same as the ratio of the geometric mean of the denominator and the numerator it often becomes easier to evaluate. And people often use harmonic mean also. So, how are these ordered geometric mean geometric mean and harmonic mean? Does anybody remember? Which one is the artist? So, harmonic mean as the good property that it usually dwarfs your performance improvements because it is the lowest mean of all the numbers. So, if you really want to be pessimistic in terms of reporting your achievement your mind is harmonic.  Whereas, if you really want to magnify your achievement you might want to be pessimistic. So, as we go on along the course I will also mention what mean to use for what particular type of measurement. So, there are certain things that also need to be taken care of. So, any question on this measurement? So, summarization. So, people usually use means. Harmonic mean is the most popular one. Sometimes you use geometric mean. In certain terms they actually do. And usually these are the statistics that you normally see. If you do not try to go for higher order statistics in reporting of summarizing results. So, any question? So, now we will talk about the molecular law which is actually common sense. So, Jean Amdahl was a PhD student in theoretical physics in University of Wisconsin-Madison. That was in early 50s. So, transistors were just coming up. So, Amdahl developed certain concepts or certain theories in physics and certain equations that he needed to solve which he could not solve analogy. So, numerical solutions were required. So, Amdahl built a machine, a computer which is still in Wisconsin's computer museum actually available there. And then on essentially Amdahl stopped doing physics. He offered a job in IBM and he became a computer engineer. In 1967 he came up with this law which is essentially common sense. So, which says that it makes a common case fast. Simple as that. So, it is quite intuitive. It essentially says that there is a point in which time and money to optimize part of a system that gets involved one percent of that, for example. We should really be optimizing parts of a program, for example, which requires maximum amount of time to execute. So, for example, if you have a function which gets involved 90 percent of time, you better invest your time and money to optimize that function. Forget about the remaining portion of the program. That is actually Amdahl's law. So, mathematically if you want to put it, a particular section of the program can be enhanced by some optimization in the processor. So, let us suppose x fraction of the entire execution time spent in this particular section of the program. So, you are saying that you have a program and certain part of the program can be optimized in the by software or hardware. It does not exactly matter how you optimize it. And x fraction of the entire execution time of the original execution is spent in this particular section of the program. The optimization in the processor can speed up execution of the section by y times. So, what does it mean? That means the speed up that you get is t over t. t was the previous execution time, which is t over t minus tx, because tx now gets replaced by tx over y. It is sped up this portion by y times. So, that is what you get, 1 over 1 minus x plus x over y.  And if you look at this particular equation and you may ask several questions, right? That suppose I say that you can get an unbounded amount of speed up. So, y is infinite. What will happen in that case? The amount of speed up is limited by 1 over 1 minus x. There is the upper bound you can get. Whatever you do. So, that means that is a very important point. That says that the portion of the program that you cannot improve will ultimately become the border, which is actually again common sense. So, the fraction x is measured before the enhancement is applied. So, that is a very important thing. It is not measured after the enhancement, because that is going to change. Is it clear? Amdahl's law applied various scenarios. So, it just says that, you know, wherever you can. So, here of course that the assumption is that x is large. That is why you spend your time optimising because you can see that if x is actually not very large, ultimately you get limited by 1 minus x. So, you look for portions of program that takes maximum amount of time to execute. Allow the resource to design time proportionate to execute the time. As x increases, the active speed up goes up for this y. As y increases, speed up increases. That is what we mentioned in the last slide. Amdahl's law is usually used to compare design alternatives. That is, which design would bring more performance. So, let's take a very simple example. Floating point square root is critical in graphics applications. Two design choices exist. You can estimate a floating point square root unaware to improve square root execution by takeouts. That is one design choice. The second choice is improve all floating point instructions by two times. So, suppose you have these two choices. Which way would you go? So, suppose a floating point square root takes 20 percent of execution time. So, this is the portion that we can actually improve. That is what we are thinking about. While 50 percent time is spent in all floating point instructions in the current process. So, which design choice is better? So, let's work this out. So, let's suppose. So, in the choice one, what do we have? So, t1 is a time taken to execute in the first choice. So, here we are saying that we are focusing on 20 percent of all execution time. That is floating point square root. And we want to speed that up by 10 times. So, what we get is 0.8 remains unchanged. And the remaining 0.2 will get scaled down by 10. So, what does it give you? 0.8. So, I am assuming that the original you started with 1. Is it clear to everybody? Choice one. What is choice two? We are looking at 50 percent of time that I could enhance. So, remaining 50 percent would remain unchanged. So, point 7. And the remaining 50 percent will get improved by 50 points. So, second choice is clearly better. So, I should actually go ahead and try to improve all floating point instructions. So, if you look at. So, clearly of course, in this case what happened was that accidentally I will say that the time spent the 50 percent time spent on floating point operations. Since I focused on that, I got better performance. But it also depends on these two factors. One was 10 times. So, you can easily figure out what this should be. So, that these two get balanced. So, it is not that you can always pick up the major chunk of the time, improve that by some factor and you are always going to win. No. For example, if I say that this is 1.5 instead of 2, these two are going to be very close to each other. So, if I go below 1.5, I can make it 1.2. You will actually begin to see that option 1 will start. So, you can actually plug in these numbers directly to your Amdahl's law speed of formula. You can get directly the answer without going through this calculation. Clear? Questions? So, Amdahl's law can be used to derive upper bound on achievable speed of parallel computing. So, this is used very often to find out a piece of program, to find out the achievable speed of a particular program. So, let us see how you do that. Suppose a sequential program takes tiny t to run on a single processor. A profiler shows that. So, a profiler, those who do not know, a profiler is essentially a piece of software, which takes a program as a input and tells you where is time spent, how much time spent in what functions are all. He shows that a fraction s of this time is spent in executing inherently sequential portions of the program. So, that s fraction has no chance of getting parallelized. It is inherently sequential. The remaining time can be perfectly parallelized for arbitrary number of processes. Suppose you figure that. So, what does it mean? So, now I can actually deduce the nascent achievable speed up on a machine with three processors. How do I do that? So, speed up is sequential time that is t divided by the parallel time. What is my parallel time? s times t will remain sequential and 1 minus s times t, we can divide by t, because it gets perfectly parallelized. So, that gives me 1 over x plus 1 minus x over t on these processors. I could actually get this, get this power directly by plugging in my x and y values in it also. It is exactly I am also essentially saying that I could speed up this part of my execution by p times leaving things unchanged. So, what does it tell you? Something interesting tells you. So, in the limit the speed up gets capped at 1 over s. This is the most important part of this analysis essentially tells you that if you infinite number of processors you cannot get greater than this impossible. Now, if you look at some of the things if you plug in values there you get surprise. Some of this is 0.5. The program is 95 percent parallelized. The speed up cannot be more than 20. So, you might be surprised I am running this program on a 32 node machine. It is 95 percent parallelized. You will get only 20 speed you cannot go over that. Of course, it ignores communication over it and many other. So, they actually are not going to be 20. So, essentially this particular analysis tells you that you need almost embarrassing parallel algorithms with near 0 communication to fully utilize even a medium scale parallel communication. By medium scale I mean you know number of nodes below 50. If you have a 99 percent parallelized program your speed up will go to 100. So, you need almost completely parallel algorithms to exploit large scale or mid-range machines. So, that is a very very important information law. I want to mention this although we probably not use this particular thing in this course. These are normally used in courses that we do with parallel programs or parallel computer architectures. But keep this in mind. Any question? So, the next thing that is important for our progress measurement is something called the CPI equation. Again this is common sense. So, we have seen that we know how to compare two processors. We know how to decide between physical optimizations by applying the next question is how do we really measure this time? Because here we knew that some percentage of execution time cannot be enhanced, some person can be enhanced, but we need to measure that somehow. So, which are the terminated factors? Assume that we want to calculate the execution time of the program. So, execution time is clock cycles to execute multiplied by cycles. You take 100 cycles, your cycle time is 1 nanosecond, you require 100 nanoseconds to execute the program. Now, if I expand this particular execution clock cycles, this is equal to number of executed instructions multiplied by average cycles or instructions. So, execution time now becomes let us put this in. Instruction count is this one, multiplied by cycles or instructions that is CPI, multiplied by cycles. So, this is the CPI equation. Interesting part of this is that this particular first term is determined by your compiler. The processor has almost nothing to do with it. Your compiler generates your binary and that is what executes from your processor. That determines how many instruction cycles. Of course, it also depends on your input to the program because that determines which part of the program gets. Cycle time is mostly determined by your underlying semiconductor technology. However, it is often influenced by your architecture also. This one is only influenced by your architecture, cycles for instruction and that is where an architect holds power. You can do something to improve your CPI and that is what we are going to do, invest or try more. We will progressively go through phases of improvements to see how we improve CPI. We will also mention some of the things to improve cycle time. Often you will find that these two are interrelated. Often you try to improve CPI, you end up sacrifice and cycle time. So, you have to keep both of these things in mind. Cycle time is also same as the reciprocal of frequency in appropriate units. For example, if a frequency is 1 gigahertz, my cycle time is 1 nanosecond. So, execution time equally depends on the components, they equally weight as you can see. Each component can be improved to get reduced execution time. Reducing instruction count of a program normally depends on the instruction set of the processor and the smartness of the compiler. That is, separate. So, let me first try to explain the first part of it. So, it says that it depends on instruction set of the processor. So, that needs some explanation. We talk about instruction set very soon. What it means is that the processor supports certain set of instructions. They may be very complicated, they may be simple. Now, to do a very complicated operation, the processor may have one instruction. For example, you can think about an operation like copying a stream. Stream means stream of bytes, right? From one part of the memory to another part. There may be just one instruction for doing that. Even though it is doing a lot of copy operations within this particular one instruction. On the other hand, another processor may be able to expose this whole thing to the compiler. Saying that, well, I do not allow you to copy more than four bytes at a time. So, you only have four byte copy instructions. You can copy four byte of data from here to there. So, now a stream copy essentially gets transferred to a folder which will copy four bytes at a time and complete the whole operation. So, there is a trade-off here. In the first case, the CPI is probably going to be very high. Even though the instruction column is going to be low. In the second case, the instruction column is going to be large, but CPI is likely to be one. Or maybe even low. So, here is an example. Certain processors have separate instructions for doing a comparison followed by checking the comparison outcome and taking a branch. So, for example, you have suppose a piece of C code which does this. So, there are many ways of combining this. One way could be that you first do X less than equal to two. Carry out the comparison into one instruction. So, that generates some outcome. True false. They say some flag somewhere. The next instruction goes and checks that flag and decides where to jump. Whether to jump or not. If it is exactly X less than equal to two, you won't jump. Otherwise, you jump to the L-spot. If there is no L-spot, you just skip the motion and it starts. So, these are essentially two instructions followed by a branch instruction. There are other processors who would actually fuse these together. These two operations. So, you heard this operation actually and say that branch if greater than. So, that is exactly what is saying here. Separate equality check and branch instructions can be fused into one instruction such as BNE or BQ. So, these are branch not equal or branch equal to two. Depending on the nature of the comparison. Here, I am showing less than equal to. Here, we are talking about X equal to equal to two or X not equal to two. So, in these two cases, essentially what is going to be happening is that your instruction code of the program will change. And this was possible in the second case to fuse these two only because the processors actually implemented one such instruction. So, that is where this support from instruction set comes into place. If the instruction set has some instructions, compiler will be happy to generate some instructions. Otherwise, it cannot generate these instructions. It will break it down into instructions. Similarly, you can identify simple optimizations. So, this example is purely about compiler optimization. Ending with a mask and check instead of shift and end and check. So, we are talking about something like this. I want to check if let us say k bit of X is one. So, there are two ways of doing it. One is that to add X with a mask. So, what is that mask? Can somebody guess what I am doing? Sorry? 2 to the power of k. Does everybody see that? What I want in the mask actually? I want a 1 in the kth condition. Everything else should be 0. So, I am ending with this mask and now it is enough to check whether this is 0 or non-zero. Then, that would serve my purpose. Exactly, I have done this. The other way of doing it is that I will shift X by k minus 1 bits and then to an end operation. So, essentially X shifted by k minus 1 and then with 0 X 1 I will have to tell you. This is much more expensive than this. This is essentially two instructions. And followed by a comparison. This one is shift and comparison. So, it purely depends on your compiler's smartness. The compiler can figure this out or not. That, oh, I should be actually already in this piece of it. Not this. So, that is about your instruction count. So, we will talk about some of these things in the first category that is how to design instruction set without increasing your CPI too much. So, because there is a clear balance between instruction count and CPI. I can make very complicated instructions so that, you know, this entire execution of this if state will become one instruction. That is possible actually. I can do that. The CPI is going to be very high. So, there has to be a balance. The second component is your CPI and the goal is to minimize CPI. Right. Reducing CPI depends on processor architecture. Then, how much parallelism it can expect. That is exactly what is going to be the major portion of this course. Frequency of a processor depends on semiconductor technology as well as processor architecture. So, that determines your site. The third component. Architecture enhancements such as deep pipelines to improve frequency of CPI. So, this one essentially mentions how these two last two terms are actually interrelated. I can use my cycle time to talk about this more in detail by designing a very deep pipeline. So, that each pipeline is doing a very small amount of work so that I can run my clock very fast. But, this may increase CPI in many ways. We will talk about that. I cannot really mention right now how it can see what this pipeline is doing. Yes. The number of bytes you can execute like you said 4 bytes you can execute and there is a function of a processor in your heart. So, I see the instruction also depends on the processor also. Yes, so that is what I mentioned. It depends on the instructions supported by the processor. So, both. Yes. But, once your instruction set is fixed given a program how many instructions is going to execute to depend on your compiler's model. Yes. Where the compiler is able to generate the optimal number of instructions. That depends on the compiler. So, here is an example. So, let us take the same example as the last one of the GPU with some additional data. So, the current GPU does not support 40 point square root instruction and its 40 point square root is emulated in software to implement some square root algorithm. Does anybody know of any algorithm for the algorithm in square root? Newton's formula. Yes, Newton's formula. Newton and Raphson. Can you be more elaborate? Who said Newton and Raphson, you? If we basically be an approximation algorithm we start with an initial guess in further cycles. Can you just tell me how do I form the Newton Raphson? How do I set this up? Yeah. So, basically you define it as a polynomial. What is the polynomial in this case? Square root? fx minus square root of x is equal to 0. No. What is it? x square minus k. y square minus c, right? So, I am trying to evaluate say a square root of c. Yeah. So, I will basically take x square minus c equal to c. So, Newton's Raphson's method is one of the simplest way of doing this and there are other many smart algorithms for evaluating square root. So, talking about one of those implementing software. So, clearly to have a large number of instructions which means if I look at this long 20 point square root operation it will look like it is a single operation with a large number. Frequency of 40 point instructions is 25 percent. Average CPI of this instructions is 4. Average CPI of non floating point square root instructions is 1.33. And frequency of floating point square root operations is 2 percent, right? CPI of floating point square root operation is 20. So, 5 times more than your average of all floating point. So, one design alternative was to reduce CPI of floating point square root by 10 times that is by bringing it to 2.2. Right? The other alternative was to reduce CPI of all floating point operations by half. So, 4 to 2. So, which one is better? So, the question that still remains is any question is how do you really still get these three parameters, right? We require a number of instructions CPI and the cycle time to measure execution time. So, CPU designers normally use detailed simulators to get exact behavior of program execution. Simulations can be done in different levels of accuracy. So, here are few options. There is one called trace driven simulation, where you obtain a trace of executed instructions and feed the trace into a simulator which essentially simulates the processor. So, the trace goes to the simulator and what comes out is of course number of instructions which of course you can already get from the trace because you already have the trace. However, you also get the cycles for instruction and you know the cycle time of the processor. The problem with trace driven simulation is that complex interaction pipeline is not possible to model because you are in the trace by running the program on some machine. Now, your simulator the process that you are trying to simulate may be different from that machine but there is no way to model those interactions. The trace of instructions is already fixed by that execution on that machine. So, exactly what you cannot model we will come back to that. The most important thing is that you fail to model the trace driven simulation. This is ok. The best possible option is to do an execution driven simulation. What is that? It is an accurate model of the processor and memory system designed in software and programs are run on this simulator. So, essentially what we do is this simulator can actually take the binary of the program as an input and can interpret the binary meaning decode the binary and actually can execute the binary. So, it is just like a machine so this is the most accurate and also most time consuming. A user can exploit the performance counters to get a rough estimate of time spent on certain code segments and the number of instructions in those segments. Frequency is already known. So, today's machines already offer large number of performance counters to measure performance. For those you can get estimate of time spent in certain codes and other things. Static profiling of the program is one of the most important instructions. So, you can also profile your program to know what type of instruction you have in what percentage. For example, you can find out information like I have 20 percent floating point instructions, I have 60 percent lower score instructions and so on. So, a few principles that you should keep in mind one is a principle of locality we will also elaborate on that soon. I have already mentioned in the last class that programs are not random pieces of code. So, turns out that 90 percent of time spent in 10 percent of code. It is a rule of thumb although it is an average estimate of course there are exceptions. But in general that is what you will find and the simple reason is that the most interesting programs would have some kind of repetitive structures either in the power loop or in the form of recursion. If you do not have any of these it is essentially a straight line piece of program doing pretty much nothing interesting. So, any interesting piece of code would have loops or recursions and you probably spend a lot of time executing the loop of the recursive structure. And that is where this small piece of code would essentially lead to a larger amount of time spent. Same locality. So, this is essentially saying locality in terms of code. So, I spend a lot of time in one locale of a code. Same locality principle applies to data access also. So, there are two types of locality that we talked about when talking about code and data. One is called spatial locality which means that closely spaced data are accessed closely designed. Temporal locality which says that currently accessed data are likely to be accessed in near future. Caches try to exploit temporal locality because what you are touching now will be cached hoping that in future near future you will be touching that again. While prefacing exploits spatial locality because what prefacing does is that if you are touching data more x you would also preface maybe x plus 1, x plus 2, x plus 3, x plus 4. So, it is trying to exploit spatial locality saying that when you are touching x so maybe you will be touching nearby data also.