 So with that, I will let you guys look over and introduce yourselves and go from here. Oh, wait, wait, wait. Sorry, sorry, sorry. One thing. I like, I'm not done yet. So this is our last talk in the Python track at 255 Eastern. So in 30 minutes from now, there is a closing ceremony talk. It's going to be the three track leaders in the bar. That's going to be over in the closing ceremony track. So there's a link to it from the agenda. If you go to the top left of your screen where you see the schedule and you see the name of the session, and you click more, you should see a closing ceremony. The platform should let me bump everyone over to it automatically. So depending on time it may happen and you still kind of put thank you and warn you on bumping you or you may all of a sudden just get unceremoniously dropped into closing ceremony depending on how things go from time. And then the event head over there for our final thoughts. And that's where we're going to wrap it up. It's not going to be in this track. It's in that specific track. But that's it. I hand it over to you. I would just start presenting the screen. Hello, everyone. My name is Farul Singh and I'm a software engineer at Red Hat. I'm sorry if there's a background noise. It's, it's, it's terrible. Like there's some construction going on my building and I can't have that. So, yeah, I am a software engineer at Red Hat. And today we are going to talk about content computing on OpenShift. With me you have a smell and Luciano from IBM. Why don't you introduce yourself? Hello, people. I am Ismail Faro. I am the technical lead in the cloud and software part of IBM Reset. Hello, I'm Luciano. I'm in a senior developer in Qiskit, our quantum SDK at IBM. So we will start with the, going to talk about how the future of computing is probably going to look like. Then we will discuss some key concepts of quantum computing. Then I will demo how to launch a development environment for implementing quantum algorithm using Qiskit and OpenShift. And the team from IBM would demo how to develop a quantum circuit using Qiskit. So the age of computing started with bits as the only unit of information. Today we have both bits and neurons at the heart of computing. But there's a newcomer and that is Q-bits around the corner that can give us unprecedented advantage to computing in the fields like biology, AI, physics, you name it. Right now, SU Summit is the most powerful supercomputer that we have and it is comprised of bits and neurons system. It can do 200,000 trillion calculations per second, but it's even difficult to say it aloud. But the question is, can it solve all the problems? And the obvious answer is no. And to give you some perspective, it is impossible to completely represent the molecular configuration of Canfine on today's most powerful supercomputer. But we could do so just using 160 Q-bits on a quantum computer. And if you want to build a classical computer that is capable of doing so, you would have to have at least 10 to power 48 bits. And to build that supercomputer, you would almost consume 1 to 10% of the total atoms present on the earth. So yes, it's impossible to build such a classical computer. So there are a lot of problems that quantum computer can help us solve and they can provide us a new path to solve some of the hardest of the most memory intensive problems in business and science. Now, we have some key concepts that whenever you are in a quantum computing group or community, you come across these words. So classical computers are represented by bits that can take value 0 or 1. Quantum bits or Q-bits can take on those values, but can also pre-represent a combination of 0th or 1 state while you're computing. So if you think as the 0th state as a north pole of the sphere and 1 state as a south pole of the sphere, one of the states can be the equatorial position where the Q-bits can have the 0th state or the 1 state with equal probability. And superposition is creating a quantum state that is a combination of both 0th and 1 state. And to do so, you pass it through or you pass a Q-bit through a Hadamard gate. Similarly, entanglement is a concept that strongly connects two or more Q-bits so that they quantum states are no longer independent and behave as a single entity. And to put them into entanglement, you pass them through a control-naught gate. And Luciano will talk about these gates later in the slides, so don't worry about it. Let me ask you about the IBM quantum thing in IBM Research. We're working from a while in this quantum idea. In fact, four years ago, we released the first quantum computer. A general quantum computer online has a lot of success. Seeing that in the beginning, like Paolo said in this moment, if you try to simulate something, we need to have one interesting number of Q-bits in the beginning when we release the first version of quantum experience, our first quantum system online, we have only five Q-bits. Nowadays, the last week, we released one device that has 65 Q-bits. And just today, we announced that in 2023, we are going to be able to release one device that can handle 1,000 Q-bits. This means the hardware is very important for us because finally it's how we can manipulate these Q-bits. But obviously, the software is the key important part in our ecosystem of tools. In 2007, I was one of the first contributors to try to release the first version of Q-Bits. After that, Q-Bits is our first open-source solution to allow people to create algorithms and circuits and create all the software on top of this hardware to allow to the people in one moment to create or build some kind of application that try to connect the real world with this quantum computer era. Additionally, we work and have some kind of services to teach people and to help people to understand how work these quantum computers and obviously to have access to these quantum computers. This thing connects with the last pillar for us that is the quantum community. We try to pay a lot of attention and teach people how work these quantum computing phenomena and how you can develop something using Q-Bits on top of all of these layers of the abstraction that we are going to show to you. Additionally, we work with researchers, developers and business companies to try to figure out what are going to be the next things to continue to address or define what are going to be the next challenge and try to cover that using our hardware and our software. This video is a video that showed to you all the executions that happened in the last four years. In the beginning, obviously we have more simulators than quantum devices thinking that in the beginning we have only one quantum device and we have several simulators on the cloud but nowadays we have, we delivered in the last four years 29 quantum devices and you can see, I don't know, it's easy to see. In this moment the blue line is the execution in the real chips and the red line is the execution in the simulators. In this moment we have more than 250,000 users registered in our platform and you can see that the execution in the last two years is most in our quantum real devices. That helped us to pass from the research to the production. And obviously to try to achieve all of these executions and allow the people to use our quantum devices like we mentioned it before, we have this Qiskie that is our open source SDK and Luciano are going to show to you in detail how you can develop your first quantum hello wall. But for half a very high view about what is this Qiskie SDK or what is the element that try to cover, we have these like levels of the abstraction. On the top, the applications and programs obviously is the most easy way to allow to the people to enter and start to interact with our quantum devices and our quantum algorithm. One example like Paru said is like example, in applications we have or we try to support chemistry simulation, machine learning or initiation problems. This means some experts in this kind of areas can use the quantum devices without need to go in deep and understand what happens in these quantum devices. The next level is the patterns and the circuit. The circuit is finally our building blocks and Luciano are going to show to you in detail how you can develop this or use these elements to develop your first quantum program. After that we have this transpiler that in the general world for us is like a compiler because it helps us to optimize the quantum programs on top of the specific quantum devices. Thinking that we in this moment use some kind of technology that allows us to manipulate these quantum devices or qubits using microwave pulses. The next level is the experimental tools. The layer that our researchers use to improve our qubits and all of the hardware in low-level assets. After that we have the simulators to allow to the people to simulate in your local machine or in the cloud, make simulations, quantum simulations in a very easy way. After that use the quantum device to finalize or to try to compare if your program runs in the same way or not. And the last layer that is the IBM provider is the connector that connects your quits in local or in the cloud with our quantum hardware. Next slide. So I work at Red Hat in the emerging technologies in the office of CTO and right now what we are doing is exploring mechanism to connect the classical and the quantum world together. And I emphasize we are not productizing this right now. We are just doing exploratory work. With OpenShift we have one of the best of the classical computing environments and IBM Research has developed quantum computers based on superconducting qubits. So we are prototyping to define the best practices for running heterogeneous workflow in a co-processor model using OpenShift and IBM Quantum Services. Like Pavel mentioned, our idea is to have this hybrid cloud between the user, the cloud and obviously our real devices, real quantum devices. And from our side the strategy is very simple. It continues to double down in the open source part that is our Qiskie framework. And you can see in this diagram that in the cloud we use obviously all this knowledge and all this development in the Qiskie side like part of our services because finally the transpilation, all the demonstrations can happen in local or can happen in the cloud. And in the same way that when the people need to use this kind of quantum algorithms on a very high level, a structural level in our solar stack we need to have some kind of ability to execute this like part of our cloud services on our cloud stack. In our collaboration with Rehab the idea again is going in the same direction like trying to make open source all these elements that we are working on and the OpenShift Qiskie operator is one example. For us the OpenShift Qiskie operator is one of the key elements to allow someone to deploy in a very simple way the Qiskie and all the Qiskie tools in one environment in one click that for us is perfect. From the other side in our cloud architecture obviously we use OpenShift to try to improve all of our deployment from all of our micro services that we have on the cloud and we are working to use this operator like part of our boom time to improve our way to store and execute our quantum progress on the cloud. Next slide. So now I can demo you how the OpenShift Qiskie operator works. So basically what it does that it launches Jupyter server and you can access Jupyter Notebook and this Jupyter Notebook will have all the dependencies and the package of Qiskit for like if you are working for chemistry then a specialized optimized package for Qiskit and chemistry that works together would be available and the developer who is mostly called quantum scientist. He is an expert in writing or implementing quantum algorithm so it's not his he need not care about the configuration or the matching of the dependencies. All he needs to do is like with the hit of the button install the operator. So here's a demo you need to go to the operator hub of your OpenShift environment and from there just search for the operator by the keyword Qiskit and that you can see that the OpenShift Qiskit operator is available. You install it to a specific namespace or to the entire cluster it's up to you. I have running it into a particular namespace which is Qiskit op. Once it is installed you have to create an instance of the CRD and basically what the CRD is a Jupyter server. Go to your project to see the status you can see that the pods are running and they are ready and once they are ready it exposes the Jupyter server using a route and everyone in the team can just access and create new instance of the Jupyter Notebook using the routes. So with this operator we have given two demo Jupyter Notebook and as you can see you don't need to do any pip install. The Jupyter Notebook already comes with all the necessary dependencies. And the last slides before entering the code is again to try to bring to you some minimal explanations about what is this bidding blocks and how this looks for the next slide. When the quantum science people or developers talk about the pulsates, gates and circuits this finally is the minimum element that you are going to have in this moment that is to develop your quantum programs and for that you have these horizontal lines that is the qubit, that is the Q0, Q1, Q2 and on top of that thinking that these lines are like your timeline you can apply some kind of modifiers, some kind of operations that is these rectangle boxes or these circles. These operations we call gates and with these gates we manipulate the state of each of these qubits. And at the end, obviously depending on the technology that you use at the end you need to convert this into something that you can send to the real qubit and manipulate the state of this qubit. And that is the thing that happens in the right side that is these pulses. This means all of these gates that are on top of these lines that finally is each of these qubits is something that we translate the way pulsates that we send to each of our qubits to manipulate and make operations in that case. Next slide. Okay, so let's see how this qubit works at the end, right? I can see myself, what we knew into the quantum world and as a consequence I always tried to connect classical concepts into the quantum concepts. For example, this gate that we have here on top is the XOR gate with two bits and returns the result in another bit after applying an exclusive OR operation. Similarly, there is a quantum gate doing something similar to that. She's called it C0. It's here in the bottom. Yeah, it works a bit like an if statement, right? The gate controls from the state of the wire in X and if the wire is X, sorry, if the wire is 1 it applies a node gate into the wire in the bottom. And that makes it similar to the XOR gate that we have here in the top. Notice that unlike the classical XOR, the quantum synod is reversible. That means that you can reconstruct the input if you know the output. So in order to increase the similarity between these two gates we have to add this extra wire here on top. Now they are even more similar. Again, they are not exactly the same but for the sake of connecting concepts I think I will make it. And now that we know how to the synod gate works we're going to connect that synod gate with the Hadamard gate that we know from before. It's Hadamard gate that puts qubits into superposition. So the first thing that we're going to do is to import Qiskit to the IBM Quantum Computing SDK and we're going to create a quantum resistor of length 2 here in this line, the quantum resistor and another classical resistor to put the result of our computation also length 2 and then we have those two resistors into a quantum circuit. Then we apply the Hadamard gate on the qubit 0 and then on the qubit 0 and 1 we're going to apply the synod gate represented here as CX and then we're going to measure the results. The circuit roughly, well not roughly, it looks exactly like this, right? And this is usually known as the hello world of the quantum world. It's known as the bell state. So now let's try running this circuit 1,000 times into a local simulator that is installed in our computer. You can see that roughly the result says that we most of the time, or half of the time, the result was 1,1 and half of the time was 0,0. That means there is a dependency between the first bit and the second bit that this notion is called as entanglement, this relationship between these two bits. And you're probably asking yourself, okay, what I can use this for and that's where the Doge algorithm enters. The Doge algorithm was specifically designed with the purpose of illustrating a situation where a quantum computer can do something better than a classical computer. So it sets a challenge where in a classical computer requires two executions and in a quantum computer it can be solved with only one execution. So imagine that you have a function that takes only one bit and returns only one bit. So there are only four possible functions like those ones, right? They're here as f1, f2, f3, f4 here in the top. And let's split those four functions into some of them are called valence and some of them are called constant. If we want to... So a constant function is when the result of the output does not depend on the input. And a valence function, it does depend on the input. So in a classical execution, we need to do two executions. One with the input zero, another one with the input one. Let's take the video around a bit because I think I'm getting ahead of myself. In a quantum execution, it's possible to do this with only one execution. And oracles, so this function, we're going to put it inside a box that we call an oracle. And we can ask anything to the oracle and we can see the result of the oracle, but we cannot open the oracle. We cannot see what is inside, right? And the challenge is that with one execution, can you answer the question, is this function valence or constant? So therefore we need to also interpret that oracle as a gate and therefore it's also reversible. And notice that you have extra wires in the quantum situation because we had to make sure that that function is reversible. Maybe you can fast forward a bit. So in order to do this, to represent this situation, the first thing that we have to do is to have all these functions as quantum circuits. And that's what we're going to do in the next section. I think that you can use the arrows on the back and the forward. The first situation is the constant zero. It doesn't match the input. The output will always be zero. That's one of the functions that we have. The other one is the constant one. It doesn't match the input. The output is always one. And we flip the ground situation zero into one, just by adding a not gate. Here it represented as an X. X means not in the quantum world. The next situation is the identity. Identity means that if the input is one, the output is one. And if the input is zero, the output is zero. And we know how to do that already with a C not gate. So when the input is zero, the X gate will be triggered in the bottom. And therefore the output also, sorry, when the input is one, the not gate will be triggered in the bottom. And therefore the output will be zero. And the last one is invert, which is kind of like identity, but we flip the bit at the end. When the input is zero, the output has to be one. And when the input is one, the output has to be zero. So we have all these four functions now. And now we have to run them just to see how that works. The first scenario, for example, here is the invert. We put it between these two bars. And we also try to disfunction with the input one. Zero, not, is one. And when we execute this circuit, the output should be zero. It's invert function, remember? So that means that works roughly, like as expected, right? We can try also the situation with identity. So the also input is still one. And now the output is also one, because it's identity, it's identity function. So now that we have all these four functions, we're going to put them as inside these boxes, and then inside the dodge algorithm that can answer the question, is that Oracle balance or constant? And for that, we're not going to enter in the details, but we're going to put some gates around the function. And that's the algorithm itself. And the Oracle, it's here inserted in line six. For example, in this case, we insert the Oracle one as a black box. We cannot open that box. Here we see how the circuit looks like. And that is on the execution of this program. We're going to try to answer the question, if this Oracle behaves as a balance or as a constant function. So here in this case, for example, it's the Oracle one. And when we execute it, we execute it only... Well, the answer is one, it's because it's balanced, and if the answer is zero, it's because it's constant. And notice that we are executing this only once. In line one, you can see that the shots are one. So with dodge algorithms, telling us that the Oracle one is, in this case, balanced. Let's scroll up to see if that's the case. Identity is a balance function. Therefore, dodge did it correctly in only one shot. Let's check now with another Oracle. For example, the Oracle three. And let's also execute again. And here we see that it's constant. Let's check it out if Oracle three was behaving as constant. Indeed, it's constant one. So in only one shot, we could answer the question. But not everything is so nice in quantum computing. Some things are more complicated than classical. And one of those sorts of complications is the fact that real computers are noisy. They have noise results. So let's try to run the same circuit, but now in a real cloud. Let's first by importing the native functions. We're also going to load our IBM Q account, which used the cloud service. And we're going to ask the cloud to give us the list we see back end that has at least two qubits. Let's see if this process takes some time. Also, we want to make sure that we are not using a simulator because our IBM cloud provides us with simulators. So we're going to use a real computer with at least two qubits. And from all that offer, we want to take the one that has less jobs in the queue. The IBM Q or answer has five qubits and only four pending jobs in the queue. So it's the one that we're going to use. And we're going to run exactly the same dodge algorithm that we run before, but 1,000 times instead of only one. And instead of using the simulator, we're going to run this IBM Q or answer, which is one of the multiple computers that are available for you to use. So with execution, we take a job and now with a job that puts our circuit in the queue, we need to wait until the circuit is the queue and then process. This takes some time. That's why I'm fast forward in the video. But at some point, it will return a status that is not Q. Okay, now it's running. Now it's in the physical circuit, in the physical chip. And it's a very small circuit, so probably quickly it will be done. Now it's done. So we can analyze the results. It's exactly the same circuit that we run before locally, but now we're going to see what are the results in the real device. So remember that the real result was that the function that we were analyzing was constant. And now we have after 1,000 executions, we're going to do the same process. And notice that most of the time, the answer is the correct one, is constant. But not always. In some situations, in roughly 2% of the situations, we see that the result was balanced, was the wrong result. And this happened because of noise. Noise in quantum computers is something that is impossible to avoid and it's everywhere. It's when we set the qubits, when we read the qubits, when we operate the qubits, all those operations introduce more or more noise. Even just letting time pass introduce noise by a process called as decoherence. Because the qubits, they lose their state when they move forward. So noise is the big enemy of a quantum computer. And that's why we need to execute things more than once in order to make sure that the result that we want is the most probable one. Hopefully this demo is an invitation for you to play more with Qiskit. We're going to put a link to the notebook so you can jump into the details and you can dive into all those things that I shall quickly at the end of the presentation. We have a lot of resources online. We have the quantum computing IGN.com that allows you to learn using only the draw-and-drop without the code. And we have some kind of tutorials that allow you to learn how to work all these quantum mechanics behind scenes and what is the relevance of the use of the circuits and how you create your first circuits. And the other side, like we mentioned all the time, we have this Qiskit. And this is the two most significant things that we bring to the community to allow the people to learn and finally create new programs and algorithms and experiments. So you're free to ask this question if anybody has. So I've been keeping an eye on chat. It's looking fairly quiet in terms of questions. You guys went right up to the time so that's actually quite perfect. Thank you very much. I was super excited to have this talk in the track. Barul and I worked together a couple of months ago and getting this stuff initially kick-started into the operator. And I've been kind of keeping an eye on it as soon as we had this Python check. This is one of the first blocks I wanted to reach out to. So thank you. Thank you to you guys from IBM who I'd ever appreciate you guys coming into this. And that's all we have for the Python check. It has been a very interesting, very dense couple of hours here as we jump from operators over to MicroPipianV and talk about installation dependencies and then to AI ML and Flask and now ending on this really cool quantum concept. So I want to send a thank you again to all of my speakers. I really appreciate your time and effort and all of this. Sorry, can we start over? I missed everything past the original welcome to the Python track. We just kind of do it again. So now we're going to be moving out to the closing track. I was actually wrong. I can't push people into it. The moderator in that channel will pull people over. Honestly, your best bet is going to be just going to the top under schedule. Drop by here so you can see the faces. Top next to the schedule, you'll see a more dropdown next to my name. Python track hosted by Jason Doebies. If you click more, you will see closing ceremony. If you want to hop over to that room now, we're going to be finishing up the closing ceremony there. To you three from the quantum track, if you have any links you wanted to share, the Slack room will be sticking around well past this. That's going to be the best spot for persistent links that people can follow up on that. They haven't been following or necessarily copying down in this chat. Yes, again, a lot of good feedback here. It's fascinating. So thank you to everyone. I will see you all over in the closing ceremony room in a couple of minutes. Take care, everyone. Thanks. Bye-bye.