Okay, before you subject yourself to today's video, masochistically, one announcement and one clarification, the announcement, 99% of all my videos are now transcribed and they are available in the form of an Android application, an app, which you can install on your smartphone and you can search all the texts for keywords and everything, well over 1000 videos. So there's a link in the description of this video, there's a link, click on the link you'll be taken to Google Play if you have an Android phone and you'll be able to install the application and enjoy my words of wisdom, my pearls of wisdom. Also there's a website and so those of you who like me have iPhones, you would need to go to the website and it's the same functionality, absolutely the same functionality, so either app for Android or website for humans. So these are the two options, it's courtesy, the graph codes and I am exceedingly pleased with it. It's finally all my work on narcissism, well at least the videos, all of it is in one place and searchable and an amazing work of love by these men, the graph, I'm very grateful to him. Now a clarification, in video you're about to see I'm discussing parts and self-states and it's easy to confuse parts, personality parts with ego states, with self-states and with the proliferation of other phrases and denominations and I don't know what as psychology matured and progressed through its lifespan. Here's the key, parts characterize, they are extensive parts when we say parts, they characterize the entire personality, so each and every self-state has access to all the parts. The parts are like a database accessible to all the self-states, it's like memory, memory is accessible to all the self-states. That's why self-states are very minimally dissociative, not at all dissociative, intelligence and other resources, the intellect, they're also available to all the self-states, access to emotions and cognitions. So there's a series of databases in every human being and these databases are accessible to all the self-states, they share, it's a sharing network, all the self-states share these databases. And one of these databases is the parts. Now I recommend that you watch the video that I've made of course, on structural dissociation to understand exactly what parts are in the classic theory, there are apparently normal parts, emotional parts and so on and so forth, have a look and avail yourself of the information there. But just remember, don't confuse self-states with parts. When a self-state takes over, it becomes you, it becomes 100% you, there's nothing else except the self-state. So the self-state has access to everything inside you, all the internal processes, the psychodynamics, the parts, the memories, your identity, if you have a stable identity, not a disturbed identity, etc. Okay, this is just to clarify. There are popular books about parts.  So this is about the psychogenesis of parts. But there are other books about trauma mainly, which delve much deeper into the concept of parts. It's a very useful abstraction, of course we don't have parts, we're not broken, we're not fragmented, but it's a kind of abstraction, it's a kind of model, a model that helps us to understand trauma better and even treat it better. So good luck with today's video, and those of you who survive it, shockingly, there will be more to come. I need to break up with my abuser, but I love him. I want to buy this shiny new smartphone, but I can't afford it. I would love to climb the Everest, but I'm 62 years old. These are contradictory thoughts, they conflict with each other, they create internal stress in a conflict. This is the topic of today's video, dissonances, how to cope with them and how to solve them. Today I propose dissonance. My name is Sam Bakhne and I'm the author of Malignan self-love, narcissism, you guessed it, revisited. I'm also a former visiting professor of psychology, dissonance, a word I love and use a lot in all my videos. The most famous of all the types of dissonances is cognitive dissonance, simultaneously entertaining or harboring or having two or more conflicting pieces of information or contradictory thoughts of the kind that opened this video. But before we go there, before we go to how to solve the solutions, a few videos you should watch. Watch the video about structural dissociation, they're all on my channel of course. Watch the video about structural dissociation, watch the video about intracyclic activation model IPAM and watch the video about the horny, the thorny, not the horny, the thorny horns of the dilemma and how to solve dilemmas, it's also on my channel, horns and everything. Dissonance can be easily described as two parts interacting. So there is this theory of parts, there is something called the internal family system where there's one type of parts, there are trauma theories which are based on theories of parts and in general it is a belief that we don't have a unitary personality but that there are parts inside us which interact with each other, which maintain a kind of ongoing dialogue or polylogue and that it is our behaviors are the outcomes of this constant interlocution between the parts. So we can describe cognitive dissonance as a clash of cognitions, clash of emotions sometimes, we'll discuss it a bit later. The clash of internal processes in and allegedly ideally constructed unitary self. As you well know those of you who have suffered through my channel, I am dead set against this description of the human psyche. I think it's counterfactual and nonsensical, people are not unitary, they are in flux, they are much more like a river than like a pond or an ocean. So because they are in flux, of course they have parts, I'm a strong adherent of the belief that what we used to call self is actually an assemblage, a theater troupe, a collection, a kaleidoscopic collection or collage of shimmering portions or shimmering parts that come into being on the fly and then disappear again. We are dream creatures in this sense and highly surrealistic. So a cognitive dissonance can be described as a clash between two cognitions in a unitary self but it's a bad description in my view, it doesn't fit reality. A much better description would be two contradictory parts interacting. When two contradictory parts interact we have a dissonance and even better description would be two types of parts interacting. For example there's a famous mainstream theory of trauma which posits that we have two types of parts, apparently normal parts and emotional parts, A&P and EP and I think when these two types of parts interact they create dissonance. And coming back to my own work which is based on the work of Bromberg and others, self-states. A dissonance can easily be described or captured in terms of self-states to co-extant self-states. Interacting, when we have two self-states jostling for control of the mind, fighting each other out, conflicting, then we have dissonance and this usually happens in the switching phase from one self-state to another. Again watch my video on IPAM, Intra-psychic activation model. To summarize this part of the video, dissonance can be described as a clash of cognitions within a unitary self. It can be described as a clash of two parts or more within a personality. It can be described as a conflict between two types of parts. For example, apparently normal parts and emotional parts, A&P and EP. This is especially true, especially valid in trauma studies. And it can be described perhaps most co-gently and most comprehensively using the self-states model when one self-state has to yield to another because the environment has changed when one self-state has to turn itself off, become deactivated and vacate itself so that another self-state can take over a self-state which is much better suited to cope with the new environment, much more adapted to the new environment. When this switching happens, there are moments of coexistence of both self-states and those moments are what we call dissonance. So cognitive dissonance in orthodoxy, the way we teach it in university, is when someone or their parts or their self-states hold simultaneously two conflicting views, values, bits of information, which call for diametrically opposed decisions or actions. I gave three examples at the beginning of the video. In this state of affairs, where there are two or more equally potent alternatives, they hold the same attraction, they are equally seductive, they are equally compelling and convincing what to do, how to resolve this equipotency, how to extricate yourself from a situation where wherever you turn, there's the fear of missing out. So this state of affairs generates an inner conflict and triggers several primitive infantile defense mechanisms such as denial, splitting, projection and reaction formation. One way to cope with this predicament is to transition from dissonance to consulance. Now how can this be accomplished? You need to come up with a reconciling narrative, a theory of everything, a scientific theory if you wish, which seamlessly accommodates both conflicting points of view or both contradictory sets of data. Did you take everything that disagrees and you put them together in a theory? So for example, when we see event A and we see event B, we can say that event A caused event B. We can say that event B caused event A. We can even say that they are correlated. In other words, event A and event B move in the same direction in the same way or perform the same functions. This is one way of looking at things and this is the unitary self-way. But there's an alternative. You could assume that there is an event C or an entity C and C coordinates A and B. It is C that gives A and B meaning, direction, sense and causes them to interact in a way that appears to be causative. So as you see, there are many ways to accommodate any set of facts. So when you have two conflicting views, two conflicting wishes and your country consigned them, one way to do that is to write a story, because we are all storytellers, to write a narrative, a script, where both A and B make sense actually, where they become inevitable preconditions for each other, naturally and seamlessly compatible. This can be done always. Here's a rule. Let's call it Vaknin's rule, because had I been modest, I would have been perfect. So Vaknin's rule, for every two conflicting pieces of data, A and B, there's always a narrative C that accommodates them perfectly and resorts the dissonance. If this is true, if this is true, if this were true, then this is the solution to dissonance. And I'm going to demonstrate to you five options of constructing such soothing fiction, because yes, to resolve a dissonance, you need to self-deceive. You need to lie to yourself. I'm sorry, there's absolutely no other way. Is it moral?  Actually, when we construct narratives of our lives, autobiographical narratives, moralistic narratives, morality plays, when we cast ourselves as victims or whatever, we are deceiving ourselves.  We offered this piece of fiction. So here are the five ways to resolve a dissonance. The first way, temporal. A is true at one time and not A is true at another time, at another period. So if we have A and not A simultaneously, we have a dissonance, because they can't both be true. Yet they're equally compelling, equally convincing, appear to be equally voracious and truthful. How do we resolve this? We simply say A is valid on Tuesday and not A is valid on Thursday. We can also say A is a transient state of affairs. Not A is the rule. These are temporal solutions. If you apply these solutions, you will read yourself of the dissonance. The second type of solutions is what I call reactive solutions. They go like this. A is the normal. A is the standard. A is common. A should prevail. Not A happened because of some trigger, provocation, change in circumstances, environments or conditions. In short, not A is a fluke, fluke and aberration. It's a side effect. It's a byproduct. It's not the real thing. Not A is abnormal and therefore a mere curiosity. We should stick to A and I call this solution the reactive solution. The third solution is the inclusive solution. Here is how it goes. The inclusive solution says both A and not A are pieces of a bigger puzzle, a picture, a theory, the entity seed that I mentioned before. They are contradistinction and contradiction. They are only apparent because we have no access to the bigger picture. We have no awareness of the true and full picture. We have no knowledge or capacity to realize the entire dimension of the reality involved. So for example, God is good, but the world is full of evil. A and not A. This problem is known as theodicy and I have an essay on my website dedicated to theodicy. So A, God is good, not A, the world is the world. God's creation is evil. How do we reconcile this? We say God has the big picture. We have no access to God's mind. So we don't, we can't become aware of the big picture. And as long as we are denied access to the big picture, the contradiction between A and not A is only apparent. It reflects our own limitations, our shortcomings, our finitude as mere mortals. That's an example of an inclusive solution, which is very common and typical in ideologies, in religions, and when we adhere to big symbol sets like the nation state. The fourth type of solution is denial. And that's a very common solution. It's also considered to be a psychological defense mechanism and it is often, this defense mechanism is often deployed to get rid of dissonance. Denial simply says both A and not A are true. They lead to the same conclusions. There is no contradiction. The contradiction is only apparent. Consider, for example, the following.  My husband loves me. These are two sentences. A, and apparently not A, because people usually beat up people they don't like. They don't love. Love and physical abuse don't and should never go together. So there should be a dissonance.  How do you reconcile this? By claiming that there is no contradiction, denying the contradiction, denying it away, saying my husband's battering, my husband's physical violence only proves that he loves me. Physical abuse is his way of showing that he loves me. He's jealous, romantically jealous, that drives him to beat me up because he loves me. Contradiction solved. Contradiction gone. Neutral exclusivity dissolved. A and not A suddenly become true, not only true, but they buttress each other. They support and prove each other. They become evidentiary. And finally, the last solution is the defensive solution. Both A and not A are valid, but only A applies to me, while not A applies to others or may apply to others. This is a splitting solution. I'm going to repeat it because it's also very common, especially among people whose mental health is how to put it gently questionable. So the defensive solution is both A and not A are valid. But only A applies to me, so there's no problem. There's no contradiction. There's no clash or conflict. What about not A? If it is valid, equally valid, why doesn't it apply to me? Because it applies to other people. And this is known as splitting. I'm all good. They're all bad. I'm abusing someone, but he's bad. He deserves it. I am acting as an abuser, but I'm still a good person. And this is known as reactive abuse. So we are executing a murderer. Killing someone is bad, but killing a murderer is good.  They are both valid, mind you, but not to me, not as far as I'm concerned. Not A is bad. Not A is bad. That's why it applies to other people and not to me. This is, of course, projection. Not A is evil. It should be eradicated in other people. But they have the problem, not I. And this, of course, solves the dissonance. It's a form of splitting and morality play. I'm all good. They're all bad. I'm all white. They're all black. This is very common in identity politics, in victimhood movements, in social activism, and in self-appointed vigilantes and justice fighters. The idea is that by eliminating not A in other people, we restore A to its rightful place as the sole viable, ethical, and moral alternative. And this is known as reaction formation. I behave in a vicious, malevolent way. That's true. But I'm doing this in order to eliminate a much bigger evil. Much bigger evil. I'm doing this for the common good.  And this is reaction formation. It's denying what's in you by attacking it in others.  You would say, I'm attacking homosexuality. It's immoral. It's horrible.   You're denying it in yourself by attacking it in others. So as you see, the defensive resolution of dissonances involves multiple pathological defense mechanisms such as splitting, projection, and reaction formation. Now cognitive dissonance is only one of a family of dissonances. I'm going to describe briefly all of them. And you can take the same five solutions and apply them to each of these other types of dissonance. Start with a volitional dissonance, not cognitive volitional. Volitional dissonance is when we act in ways which are perceived to be a critic, immoral, antisocial rather than frenetic. When we perceive our actions to have been the outcomes of acracia. Acracia means when you have a weak will, when you misbehave contrary to your own best judgment, when you're weak. So when we perceive actions to have been the outcomes of weakness, personal weakness or weakness of character known as acracia. When we perceive our actions to have defied and flown in the face of fronesses, good judgments, good judgment, excellence of character, habits conducive to a good life, he would do he would do ammonia, practical virtue. So when we perceive our own actions as the outcomes of weakness of character and denial of ethics, good judgment, and the good life, the ethical life, then we develop dissonance. Even hardened criminals develop volitional dissonance. That's why they keep justifying their behavior. Dissonance is intolerable. We resolve it by using a variety of mostly alloplastic psychological defense mechanisms. We blame others. Displace, rationalize and we use narrative solutions such as reframing. We also tend to tend to externalize the locus of control. We say it wasn't our fault because it wasn't my fault. I couldn't do anything about it. I didn't have agency, self-efficacy, self-control, autonomy or free will in this matter. It was imposed on me. There was nothing else I could have done. It was my fault. Something or someone made me do it. Or inexorably and irresistibly led to what had happened. Someone else's problem and responsibility, not mine. This is very common defense in volitional dissonance. And then we have emotional dissonance also known as ambivalence, experiencing two opposing emotions such as love and hate, which are elicited by the same object. We have axiological dissonance. It occurs when two dearly upheld and deeply felt values are incompatible. A religious soldier, his religion tells him which thou shalt not kill. But his nation state expects him to kill. This would create an axiological dissonance. Pacifism is a typical reaction. And then we have deontic dissonance. It is a subspecies of the axiological dissonance. It's when one has two irreconcilable duties or obligations. So a working mother, she has an obligation to her children, but she has to work three shifts because she can't survive otherwise. And she feels guilty. She feels bad. She has a deontic dissonance. And finally there's the attitudinal dissonance. It is an inner conflict between two internalized beliefs, attitudes, statements, or propositions held to be equally true and valid. These are all the dissonance. And again, remember, the orthodox view, the current view, is that dissonances are conflicts within a system. My belief is that dissonances can never occur in a self-consistent system. That's Kurt Gurgel's famous theorems in logic. For a dissonance to occur, the system must compete with other systems. So parts compete with parts. Type of parts compete with types of parts. Functions compete with functions or much more likely. Self-states compete with self-states. This competition creates a sense of dissonance. And we use the five solutions that I've described to resolve them. The fifth one, the defensive type of solution, is what we call mental illness.


Merry Christmas everybody. Sadie asked us to take a look at a video and film our reaction to it. So let's take a look. Check. Okay guys, I'm about to watch this Merry Christmas video. Looking forward to it. Thank you for whatever you've done. I can't wait to see it. Here we go. This is Erin Chase. And behavioral panel. Hi there. I'm Sandy. Hey, behavior panel. It's Hey guys, this is Charity for the Fab Four from Fiona in England. Hey guys, this is Gentsy Novak. Hi guys, I'm Amy from Australia. It's Marlou from the Netherlands. Hey guys, this is Debra from Louisiana. This is Denise from Northern Nevada. It's Jim Smith up here in Collingwood, Ontario. My name is Sonia. Greetings from Romania, Transylvania actually. Hey guys, see you from Dallas here. Greetings from East Tennessee. I'm Kelly Curley, and I'm from Birmingham, Alabama. I'm Melissa from South Carolina, Yenina here from the UK. All right, that's Denise from Bristol to Mark, fellow Englishman. Hey guys, it's Sadie from Canada. My name is Susan Lang, and I'm Tony, and this is Tony. I just said that. Okay. Hello from Scotland. My name is Lynette, and I've been a panelist pretty much from the beginning. My name is Doris Diamond. I'm from England in the UK. My name's Karen. I am a member of the panel, and I am in a little town called Danounas in Scotland. Hi, my name's Kim. I'm in Liverpool in the UK. A stage here from New Zealand. Hi, I'm Rachel Meadows from Ireland. I'm Piot from Poland. G'day guys, it's Ang from Dogwick Farm in New South Wales, Australia. Wow. Hello, Creepers from Finland. My name is Haley. Hi guys, my name's Lisa. I'm in Scotland, over in the UK. Hi, I'm Amy Wilgerson, and these are my fellow panelists, Smoky and Rocky. And we live in Texas. Hey there, it's me, the legendary shoulder. Perfectly in place to frame Scott's illustrious book. Chase, Greg, Scott, Mark in no particular order. I wanted to thank all of you for all of the amazing insights, the knowledge you've imparted on the rest of the world. A massive thank you for everything that you guys put together each week. It's made a huge difference in my life over the last year. Appreciate you so much and it would take me all day to tell you how many ways you guys have taught me to do my job better. I want to thank you so much for everything you do for us. It's a great community and great knowledge you share. It helps me to be a better mom and a better therapist, so thank you. Thank you so much. It's been life-changing for me. It really has. For me and I and all my silly friends over there, I'd like to thank you for doing the behaviour panel. Thank you very much to all of you for all the content that you share. Thanks for being great friends and being there for me over the last few years. You've really made a difference in my life as you already know. Thank you all for everything you've taught me to do with body language over the past year or so. Thank you guys, you are amazing. Thanks for everything you do.  I want to say a huge thank you to Scott, Mark, Chase and Greg of the behaviour panel. I'm off to get some milk byproducts, so I'll catch you later. Must be three in the morning. This is just incredible. Thank you for all that you guys have taught me in the last year. Thank you very much for all the time that you've given us. Thanks to you for I'm constantly amazed how much more I can read people at work during interviews in day-to-day activities. It has given me the confidence that I like. I'd like to say thank you so much for the behaviour panel. I feel that your show has changed my life for the better. Just thanking you for all the wonderful stuff you've done all year. Thank you for your fabulous YouTube channel. I absolutely learned nothing from your programs. See what I did there? I love watching your episodes. It's helping me stay sane during chemo sessions. They're perfect links for chemo, so such interesting stuff and I've been really enjoying putting some of the stuff I like into practice or somewhere. Thank you very much for all the videos you're posting. We are learning very quickly and we are enjoying everything every moment. I've loved learning all the different body language, confirming some of my theories with some people and so proud of the lads. I love your work, especially the nerdy bits. I'm a biologist so this is right up my alley. Thank you for your work and tell you how much I enjoy the program. The contextual discipline that you practice as well as the interaction and disagreement and discussion is really something special. Thank you so much for sharing your wisdom and in an entertaining fashion learned so much. I'd like to thank the behaviour panel for teaching me so much about verbal analysis. Thank you so much for everything that you do. You have taught me so much about body language and I honestly can say that you've changed my entire life. I appreciate you guys so much. Thank you for sharing all of your knowledge with us. I just want to thank you all for all the education you bring. Thank you for entertaining us, for educating us, for keeping us sane during the summer of 2020. I learned that no single behaviour is indicative of anything. You must look for clusters, you must look for the baseline, you must look for changes in the baseline and for handsome men can still be kind, humble and funny. Thank you to the behaviour panel for helping me craft better character reactions in my stories. I just want to say that I think you guys are great. Although we don't know each other, it feels like we know each other.  Thank you for everything you've been doing. Thank you so much for sharing your gifts with the world. Thanks for all the laughs and thanks for all the information. Really appreciate everything you do. Thanks behaviour panelists. You make people watching so much more fun. Thank you Shady, Craig, Scott, Chase and Mark. You guys are awesome. Thank you so much for what you do. We are here tonight to say Merry Christmas, Merry Christmas and tell you guys how much we enjoy your videos. Emily, do you enjoy your videos? Yes, we do and we've learned so much. Yeah, I always know now when she's lying. Alrighty, thanks. We really love the camaraderie between you guys and you really seem to respect each other. Even though sometimes I feel disgustery for the people you all are analyzing, but we just wanted to say thank you for sharing your time and talent and wish y'all a Merry Christmas. Keep bringing the monkey to the disco. I just want to take time and wish y'all a happy holiday and thank you for making my retirement fun. Happy holidays. Happy holidays. Happy holidays. Happy holidays and Merry Christmas. Merry Christmas from Norway. Merry Christmas and a happy new year. Hope you all have a lovely time and a well-deserved break. Merry Christmas and happy new year. I'd like to say Merry Christmas. You guys are so generous with your time and your knowledge. Have a wonderful, wonderful holiday. Happy holidays and May 2020 to be the best year of head so far. Bye. Happy holidays. Have a wonderful Christmas. I hope you have a great new year. I'm wishing you a very Merry Christmas. Just wanted to wish you all the best and a Merry Christmas to you and your families. You guys had a great successful year with the behavior panel and to all my fellow panelists out there. All the best for the next year in 2022. Take care. To tongue-juts, milk byproducts at three o'clock in the morning. Psychopaths but most importantly what not to say if you spell chocolate milk on the floor. Merry Christmas to some of my favorite cats. The one to wish you massively happy Christmas. Happy Christmas. I just want to send some seasonal sparkles and Christmas cheer to y'all. Thank you so much again. Happy holidays to you and yours. I wish you all peace, love and blessings and leave you with my best to shane smile. Bye. Merry Christmas and cheers. It's 3 a.m. somewhere. I just wanted to wish you and your families a very Merry and safe Christmas and I will see you next year. Wish you happy holidays. Wish you all the best and happy new year. Merry Christmas you guys. Thanks so much. We appreciate you. We do. Yeah and keep on coming. Yeah yeah. Oh hey could you do one about Charlie McCarthy because you know what I think that guy lies. Okay thanks guys. Merry Christmas to you all. Thanks for the programs you put together for our enjoyment. Have a great 2022 and we'll see you next year. Merry Christmas and happy Christmas to Mark. I wish you a happy happy holidays. Many thanks. Happy holidays. Merry Christmas. Happy New Year. Merry Christmas and a happy new year. Merry Christmas to you. Have an amazing Christmas. I wish you all a very Merry Christmas. I wish you and your families happy safe holidays together and a wonderful new year. Thanks guys. I hope you have a very Merry Christmas. Merry Christmas guys. Merry Christmas. Have a lovely Christmas. See you. I would love to wish Scott, Greg, Chase and Mark a wonderful Christmas and all of your families as well. I love you and I wish you well. Bye. Just wanted to wish you all happy holidays and it's been a real honor knowing you and being the fifth beetle. Merry Christmas happy holidays. When it comes to body talk you guys rock. Merry Christmas. Happy holidays. I'm supposed to say happy holidays. I blow it. I blow it. Thank you guys. I can't tell you how much I needed that this time of the year. It puts me in a better mood for sure. It puts me in a better place and you made my face hurt. So thanks a lot. Oh my god.  Thank you all so much. That was so sweet. Wow. Wow. That's a lot of people in there. Yeah, you got Peter Hyde. Viva. You got everybody. Holy smokes. That's awesome. Thank you so much. I can't believe I made that through without crying. Thank you everybody that made my year. So Merry Christmas. It's been a wonderful year. We're going to have a great one next year and who knows what's around the corner. So Merry Christmas. Happy holidays to everybody here and have a great new year. I love you. Thanks so much. We really appreciate it. Wow. Thank you. That was amazing. That was just amazing. Thank you Sadie. Thank you everybody for putting that together. Yeah. All I can say is thanks for being with us. We have a great time doing this. It's great for us to have once a week that we can show up with each other and hang out and have some fun. And it's been great for us during COVID. So we're glad you've been able to join in with us. Especially glad for some of you maybe having a harder time than most others out there with what you're going through at the moment. So thanks for being with us during this. Thanks for giving us your time and we're just glad that we can give you something. You have a great holiday. You have a great Christmas. I really enjoyed that video guys. Thank you so much. Have a Merry Christmas and a happy new year. And thanks for making our year a great one. Talk soon. Bye.


Hello, KubeCon. Welcome to our session. I'm Alexander Kanymstein. I'm Cloud Software Project, working for Intel. Today, with my colleague, we are going to talk about something interesting in the Runtime Strap. Hello, KubeCon. My name is Christian Litke. I work for Intel Finland as a Linux and Cloud Software Engineer. Maximizing workloads performance with smarter runtimes. We will take a look at performance optimization, how Kubernetes models hardware detour into hardware domains and then talk about smart runtimes. Let me first start with a theory. Performance optimization comes down to a very small problem of noisy neighbors. We all have dozens or hundreds of workloads running now and on. All of those workloads, they have different characteristics, different life cycles and so on. One thing I want to say in a very beginning, the silver moon doesn't exist. Even though if you have some good algorithms to optimize one set of workloads, most probably for our set, it will have differences. The reason for that is that we all have differences in the CPU's gaseous memory and our hardware resources. The usage of patterns of those resources is also different. What is important is what you need to understand, how those resources are used, how you can measure them, and how you can react in those events on the life cycle of those workloads. Today, in our scope, is just a container on time. Try a container B and some interfaces for this, connecting those pieces together. Even though here I'm talking about the theory of our things. We have a project, which is called CRI resource manager, where we validated most of our theories. We have practical examples of what can be achieved by extending work on time. But let's talk about how resources are organized, how we can look at them. In the Kubernetes world, where pristine and vanilla installation of Kubernetes, you have a very simplified model of resources. Everything is one big shared pool. Every CPU is equal, every memory region is one big shared set of resources. And obviously, in this setup, you are not able to provide too much of a contract. You have some priorities, but that's it. To fully embrace a contract, we need to start dividing those resources into smaller channels. And then we can measure and control them. And when people are thinking about the divisions of standard computer resources, they immediately came to the idea of NUMA. And this count implementation of NUMA in Kubernetes, you still have one big set of shared resources for CPUs. You still have one big shared set of memory regions. And this is really to do some exclusive locations, but it's still limited. And even if you look at the newer development in that area, you have some improvements. You can select multiple memory regions, but still this memory regions will be shared resource between the exclusive and shared locations of our workloads. When we are talking about NUMA, it might be not enough for the boundary of division of resources on the system. And for reason for that, we need to look more deeply in the history of NUMA. Two decades ago, we had a setup of a system where you have multiple CPUs, single memory controller, you had a memory bus, and when all of your CPUs were accessed in core memory. That was called uniform memory access or symmetric multiprocessing. However, this setup was not really scalable. And when the architecture evolved to NUMA, non-uniform memory access, what it means, it means what you have groups of cores, you have independent memory controllers, you have independent set of memories, and you have interconnect between those groups. So each of these groups is becoming a NUMA domain. And you can have multiple of those domains, and you can have multiple different lanes between them. Not necessarily like for full mesh interconnect, but different sizes, different connections. And that is really model or system dependent. That's why this idea of non-uniformity is coming on. And when you're optimizing, you need to understand how the access between the memory regions is actually affecting your performance. But even if we double click on your memory, nowadays your memory became also heterogeneous resource. We don't know about the standard memory theorem. But when we have already other types of memory, for example, interlaptain persistent memory, it's still connected to the same memory sockets. It's still deep interface. However, even though it's seen as a normal system memory, it has a bit different performance characteristics. And to fully utilize it or applications, it would be good to understand those differences. But that's not the end of the story. Very soon we will have another bus, which is called Compute Express Link. And one of the profiles for this bus is a memory extension. And by memory it means what we're going to have a possibility to attach additional memory controls to the nodes. And that's not going to be like uniform type of memory. You can have different types of memory. It's different performance characteristics. This memory can be hotplugged and so on. So all of these different memory regions will be seen in Linux as a separate memory nodes. So if a double click to a CPU box, we can see what modern CPUs have multiple physical cores. Why might be different by the frequencies? But it can be also our differences. For example, the hyper threads. So you can have multiple hyper threads per physical core. And those hyper threads are sharing the same resource on the low level, including L1 and L2 caches. So one of the division boundaries can be also physical core versus one hyper thread. When we have L3 cache or last level cache before you reach for memory, this already becomes a shared resource between multiple cores within the same socket or that. And the architecture is not something what is studied. The architecture of CPUs are evolving. And in new versions or new generations, you might have an absolutely different split for resources like what is core, like what is the L3 cache domain and so on. And that actually also goes to even more deeper separation of things. So you can have domains split physically or logically. So for example, you can have multiple dies per one physical package or you might have a logical subnamoklustering within one physical package. So based on that, we need to understand what Linux and actual hardware looks like in terms of hierarchy. When you have physical components like the sockets or packages in Linux terms, you have dies for multiship CPUs and when you have inside the CPU cores. And those CPU cores practically can be grouped into some pool or some zone or for resources, which contains CPU, caches, memory, aio and so on. You have possibility to have inside the small group, shared set of resources and exclusively allocated set of resources. And when you can bound your workloads into the small groups. My next problem or next question will be of course like what if I have a workload which is bigger than the small group. Well, you still have ability to group on the higher level. So you can have a parent nodes or parent virtual groups, which spawns across like multiple dies into one socket. And when you can have a proper accounting for all of those, which is practically like some of the resources of all the child nodes. So to reiterate, when we are talking about resource zones where workloads are bound, it's good to have a good understanding what your physical layout of a system looks like and that might be a lot different based on generations, based on the vendors and so on. Because in different generations you have differences in how memories are being organized, how caches are divided, how aio buses are connected. You can have different types of memory, even though we will be connected to the same memory controller. For Linux it will be visible as separate Numan numbers. But what we actually want to understand is how those separate, reported by the Linux controller, by the Linux kernel, Numan numbers can be grouped into one logical and usable resource zone. We have possibility at the moment to say which zone can be used, but what we don't have, and this is something that I hope will be improved in the last years of Linux, is the ability to control how much memory or how much of our resources can be used per zone for application. And when we have even more harder tasks to understand and fix, is how to understand the lower details of a workload, for example the working set size, to have a good split of understanding what is the hot size for memory used by application, where she's called an offer for pages used by application. So, going first, we have caches. We can, at the moment, split one. We can assign workload quotes to the caches. However, we have a problem where, first of all, the amount of cache classes is limited. So you cannot assign each of your container to separate class. Second, where configuration of the caches is something that is really hard to edit. We need to come up with a good abstraction, and we think what class is one of the good abstractions that we can use in Kubernetes or in CNC approach. Meaning, we have classes, for example, like Gold, Silver, Bronze, and when we have a node level mutting between those classes to the actual parameters of the hardware. So, simplified UI for containers, deep knowledge on the node level. And even though if it's done for the caches, we have another resource which also can benefit from the same approach. And I'm talking here about the blocker. This is virtual resource known by Linux kernel, where you can define the priorities and limits of a block storage. But, again, like multiple nodes in the heterogeneous cluster might have different configurations of storage devices on one node. You don't need to expose that to the end user how to control it. But what you want to do is, again, we have a class-based abstraction for consuming of those resources. And that allows you to, again, properly split and control those resources on per node basis. So, all of this, the reason why I talked is we have the possibility to divide the resources. We have the possibility to measure one. But now, when we have understanding how to divide, how to measure, now we need to have a control for it. So, smarter run times. Ever since its introduction, Kubernetes has enjoyed an increasingly wide-scale adoption across public and private clouds. As a result, both the spectrum of workloads and the diversity of the cluster hardware is rapidly growing. We have AI databases, content streaming, network function, virtualization, automotive edge, running anywhere from a virtualized generic public cloud, something like Google Cloud, to a bare metal custom cloud with accelerators, for instance, 5GH with FPGA. Kubernetes is literally taking over the world. While this is a positive problem, it is also causing some headache for us. Kubernetes node resource management is implemented in Kubelet, the node agent. Kubelet has a simplistic view and limited understanding of the hardware. Moreover, it comes with a single one-size-fits-all resource allocation algorithm. Now, while this algorithm is good for many common cases, critical workloads on bare metal require more optimal hardware-aware resource assignment for acceptable performance. Similarly, workloads in domain-specific clusters often require custom resource allocation logic. The one-size-fits-all algorithm cannot scale to satisfy all these requirements. We need multiple resource allocation and assignment algorithms and support for custom logic. That sounds a little bit like we need support for plug-able algorithms, but where to plug these? We have very few candidates, either the Kubelet or the runtime itself. Kubelet already hosts one policy, so should we extend it with plug-able policies? Well, that would be problematic for many reasons. First of all, we would like to keep the orchestration hardware agnostic. And as it is critical infrastructure, we would like to keep it as simple as possible. Now, Kubelet is already complex. Adding plug-able policies would definitely increase its complexity. Luckily, another option suggests itself, the runtime. Let's plug custom algorithms to the runtime and make it smarter. Kubelet's APIs are predominantly declarative. The user describes whatever cloud needs and orchestration decides how this will be achieved. This is true for the resource API too. Container resources are requested in abstract terms. For instance, 3,000 millicores and not cores 1,3 and 5. But the API between the Kubelet and the runtime, the container runtime interface is fully imperative. It carries concrete resources and related parameters. To bridge this gap, the Kubelet turns abstract resource requirements into concrete resource assignments using its allocation algorithm. But what would we need instead? So let's separate the what from the how and leave resource requirements unresolved in the Kubelet. Let's update the CRI API to allow passing abstract resource requirements to the runtime itself. Let's extend the runtime by plug-able custom resource allocation and assignment algorithms, and an API that these algorithms can use to resolve pod spec requirements to concrete resources. In other words, let's make the runtime smarter. There already exists an extension point for plugging resource allocation algorithms into runtimes. This is NRI, the Node Resource Interface, container-disapp-project in draft status. It is described as a new interface for managing resources on a node for pods and containers. It was largely inspired by the container network interface, which is used by runtimes to handle multiple implementations of the container network stack. We share common interest with NRI. It aims improving node resource management with a structured API and plug-in design for containers. We would like to do pretty much the same. It wants additional interfaces to customize a container's runtime environment. We also would like the same. NRI's current focus, however, is on better control and more flexibility for injecting devices into containers. This we would like to extend a bit. Ideally we would like to make NRI the primary integration point for extending the runtime and allow any vendor to plug in their any resource allocation and optimization algorithm. How do we want to extend NRI? NRI taps into container lifecycle events and invokes corresponding plug-in API functions. The plugin receives information about the event selects and configures resources and responds back with data about how to set up the container. The current NRI events are creation and removal of ports and containers. To enable more generic support for resource optimization algorithms, NRI needs to tap into a few more events. To enable smart algorithms, NRI needs to pass all the necessary information to plugins. To allow proper container setup, NRI plugins needs to be able to pass back enough data for correct container configuration. So finally, let's look at the plugin invocation mechanism. The current implementation is a hook-like one-shot API with a separate exec for every request. For stateful plugins, we need another mechanism with minimal overhead, probably a proto-above-based API over GRPC or TTRPC. So eventually we would like NRI to become a resource integration point for all OCI compatible runtimes. Therefore, the NRI core and data structures need to be runtime-agnostic. Adaptation to any corresponding runtime-specific bits should happen in the runtime itself. Container is already integrated with NRI, but we need to extend on that a bit. We have to hook into a few more additional lifecycle events and make sure that all the necessary data is passed back to the plugins. Also, the current code ignores plugin replies altogether. That has to be updated to modify containers according to the plugin decisions. Once we have ironed out all these details with container D, we can take cryo and integrate it to NRI as well. CRI needs to evolve also to provide better support for smarter runtimes. Smart algorithms need declarative resource requirements and the separation of what in the cubelet from the how in the runtime. To do this, CRI needs to pass through Potspec resource requirements verbatim. Smart algorithms with better efficiency also need a few group operations. VM-based runtimes need full information about all container resource requirements for sandbox creation. Also to optimize the co-location of related containers, it is better to get a single request for creating older-related containers at once. We also need the ability to update multiple containers with a single request. And finally, we would like a dedicated API for container state monitoring. We want to allow clients to subscribe for container state change events, then trigger and deliver notifications from the runtime when such an event occurs. We just provide it to you. There are three things what we want you to take home out of this presentation. First of all is about the hardware. The hardware is evolving and the hardware is changing. All the assumptions about how hardware works might be changing next day. So it means no one simple algorithm which will satisfy all the needs. Second thing about the Kubernetes. Kubelet holds the information of what and what should be run. What is the priority of the things. But we need to split what and how. What is about the runtimes. Runtimes now contains some information about how, like Linux container, Windows OS containers. So we want to have runtimes to control with full part of how containers run. And we want to have plugins in this interface. So what more custom logic and vendor specific logic or special installation logic can be extended. On the web, we have reached a number of applications. We have a number of applications. On the web, we have reached the end of our presentation. Me and Tristan are available on the GitHub or in the Kubernetes Slack. And we are happy to talk more details about all the things what we presented today and what we are doing for hardware performance utilizations. We will be available today after the sessions if you are participating in our session today. Thank you.