 Good morning everyone. Welcome to the quantum death room. Happy to see that many people found a room. I want to introduce the first speaker of the day, which is Tomasz. Tomasz holds two master degrees, one in theoretical computer science and one in cyber security, and he's one of the co-founders of the Quantum Open Source Foundation and the biotech startup Protein Cure. And he has worked with most of the different quantum hardware architectures and deeply believes in the value of combining quantum computing and open source. So please welcome the speaker with me. All right guys, can you hear me? Okay, it seems like the volume is okay, maybe a little bit too loud. All right, first of all, welcome to the room. We ended up having a little bit of an emergency reshuffling. Our original room got flooded right here, so that's why we're in this bigger space. So this room is organized by the Quantum Open Source Foundation and we are happy to be at Fozden again. Last year was our first year being here and we really enjoyed it, so we're really happy to be here again this time in a bigger space. We're going to have 14 speakers today and we're trying to change the actual kind of theme of the room a little bit this year. Last year we had a lot of speakers from the quantum computing industry and we're talking about many different quantum computing libraries. This year we want to be more dynamic, so we're going to have shorter talks. The length of talks ranges from 35 minutes to 25 minutes and we'll also be more project focused, so we're going to be speaking more about the projects in the quantum computing space that some academic groups or individuals work on their free time on or as part of their job. And last year we had a little bit of a problem. We had capacity of roughly 90 people I think in the room and the room got really really packed. Actually nobody could even leave the room and have any hope of getting back throughout the day. This year it seems like the situation is going to be a little bit better, but since we moved and since many people are still probably coming in because they just noticed that the room has changed locations, if you see that people are coming in and they're kind of waiting on the sidelines and you have seats on the sides and there's still space in the middle. Feel free to kind of compress and go into the middle rows such that people have space to sit. Okay and now coming down to actually what I wanted to speak about which is introduction to quantum software development. So I'm going to divide my talk into three parts. In the first part I'm going to talk about some parallels that we can find in quantum computing space right now with the development of machine learning and how the field of machine learning has developed. In the second part I'm going to give you guys a little primer to quantum computing. Just a very quick rundown of different architectures and things you need to know about quantum computing to understand the rest of the day. And in the last part, okay in the last part we're going to speak about a little bit how you guys can help and how you know software engineers and computer scientists fit into the picture and you know how you can you know lead I guess hand out your hand and offer some help to these projects. Okay so success of machine learning really falls down not only to machine learning scientists but also a lot of work that has been done around machine learning to kind of help foster the ease of adoption of the tools and the developments that are that are being produced. One of the big things that helped people develop their own machine learning solutions are machine learning frameworks and here on this slide I list a couple of the most popular ones. I'm pretty sure that you're familiar with scikit-learn or TensorFlow at least heard about these libraries and really what these projects do well is that they have really nice well documented APIs, tutorials, they have a really good basically foundation that they offer to anybody who wants to jump in into the field. So if you want to start machine learning you don't need to you know implement your own machine learning algorithms from scratch in C++ you can rely on all these libraries and existing frameworks to help you build your models and that's something that really helped people to jump into the field. Then there's a lot of tooling that has been developed that helps people to not only develop their models for example in the case of Jupyter notebooks it's a really great collaboration tool but also to you know share their models and deploy them into production. So for example the Alux framework over here is a tool that helps you you know share your model and provide an inference pipeline no matter what kind of framework you use to actually train the model itself. So you can see that once again the theme repeats you not only need the underlying algorithms but you also need to build a lot of tooling to bring this technology machine learning into the market and last but not least a lot of progress in machine learning has been really fueled by just going for bigger and bigger architectures there's this joke in the community that bigger is better and the bigger network solves everything and on this graph on the left you can you can see that's a logarithmic plot you can see how the different architectures that you know became really successful how much training they actually need per day and you can see that for off-a-go zero reaching like a thousand petaflops seconds per day so once again basically this development is largely fueled by engineers working on large-scale systems on the on the right you can see the pictures of the google tpu as a processor processing unit which kind of brings in the hardware engineers into the picture so you can really see that it is a effort of a whole range of diverse backgrounds that is kind of being combined here to produce the successes that we see today all right so now let's kind of you know just keep that in the back of our minds and let's jump into the part of the quantum computing primer so I guess you guys are here because you have been hearing a lot about quantum computing and yeah there's like all these very hyped up articles you know if you scroll through your linkedin feeds you're gonna see very various sensational things being written about quantum computing so yeah the question is how is it going to actually change our lives and even more recently a couple of months ago quantum has sorry google has announced that they have reached this thing called quantum supremacy and yeah what does that even mean for us are we gonna throw away our regular computers and everybody's gonna just have a quantum computer now it's it's unclear so the hype is really really getting higher and higher this is the article that actually announced the quantum supremacy and you can see that they used a qpu with 53 qubits that can occupy a state space of 2 to the 53 because every qubit can occupy two basis states and you can see that if you were to simulate this this problem it would take you according to this estimate 10 000 years on a state-of-the-art supercomputer so this this particular transition having demonstrated that we have solved the problem which is not necessarily of practical value right now it's what we called but it's it's basically solved on a quantum computer whereas we can't efficiently do it on a classical computer this will be called quantum supremacy so it doesn't actually get mean that you know quantum computer has surpassed classical computers on a practical problem and that terminology is something that you know is being fleshed out in the field actually will sign here in the audience as a nice blog post about you know different terms we should use for achieving advantage and and the quantum computing world with quantum computing architectures so yeah right now we are probably I would say somewhere around the peak I don't know how many people in the audience who are familiar with the field to agree with me and we're gonna see how the hype cycle evolves and what it's gonna do to the field but the impact of quantum computing really it shouldn't be that you know we shouldn't be thinking that it's gonna come here and it's gonna like replace all the methods that we already have to solve solve problems rather what we should think about we should think about quantum computing help against solve more problems so what are the things that quantum computers would be would be good with that well these are few problems like optimization problems you know classic example is this traveling salesman problem where you try to find a path through a city that is most efficient and visits all the nodes that you specified for example you know encryption and cyber security we can hear a lot about quantum computers being threat to our cyber security systems because they're gonna break our encryption but we can also use quantum computers to develop better cyber security so it's a two-sided coin and then there's a big subfield of quantum computing called quantum machine learning where people are trying to figure out whether quantum computing can help us solve some of the bottlenecks of you know scaling machine learning that we kind of have today then one more I guess near term side we can use quantum computers to do things that are much closer to what physical systems do so molecular drug design and kind of the design of of different materials for example using organic batteries or solar cells our fields where we expect that quantum computing is going to be you know probably providing some kind of advantage sooner than in some in some other domains now that's was like a very brief introduction I'm going to jump in this part of the talk a little bit into different paradigms of quantum computing and how does the kind of field divide a little bit so there's three major kind of kind of areas there's quantum annealing discrete gate-based quantum computing and continuous gate-based quantum computing and I'm going to jump into each of these individually all right so in quantum annealing we're trying to find solutions to optimization problems and basically what we do we specify some sort of energy landscape so we define hyper parameters that define the energy landscape and quantum annealing is a process that in the hardware tries to find the minimum energy state of the system so the system models this landscape that you can see on the left and the minimum energy state would be the deepest valley of this diagram so that corresponds to the conformation of these little proteins that has the lowest energy and the biggest player in the field is the company called D-Wave they're a Canadian company and have been around for a while now more than a decade trying to tackle this problem if you look at the hardware of quantum annealing you might have seen the picture on the right that's how the D-Wave machine looks when it's all closed up but in the middle that's the actual I guess the chandelier of dilution refrigerators and you can see how the temperature is dropping all the way to the processor on the bottom so the processor itself runs on a temperature that is colder than the temperature in the outer space to minimize all the noise and thermal fluctuations here you can see how you know the scaling of the of the size of the chips and the quantum annealing kind of evolved it's kind of a self-referencing property the company is trying to achieve this this exponential leveling pace that kind of reflects the Moore's law and right now actually even bigger chip is in development so the highest chip on this graph is 2000 qubit and I want to keep in mind that between the paradigms the number of qubits or other metrics don't really port so if I say this has 2000 qubits and in some other architecture we have different number of qubits that's not directly comparable here we can see that basically this is the architecture of the new generation the wave trip on the left we have this 2000 q called the chimera graph and on the right we have this new topology called pegasus and the lines here really depict the connections between qubits so this kind of kind of I guess yeah determines which qubits can actually interact in the equation that specifies the energy landscape so the more connected the better but making more connected graphs is more difficult in hardware so this is how you specify the energy landscape it's a what we call quadratic unconstrained binary optimization problem because the variables here are quadratic sorry binary and the terms are at most quadratic that's all you really need to know don't need to like dive deep into the details I will specify that the equation but it's actually not that difficult it's basically you need to encode the constraints of your problem into some sort of energy penalties that if are violated they no longer correspond to the lowest energy solution of that equation you can see that the things are imperfect here on this graph you can see that some qubits are missing or some links are missing and there's a bunch of like more lower level problems connected with you know programming these devices because we have to deal with things like finite resolutions we're going from digital to analog and we might not be able to represent you know for example floating point numbers with the precision we would like to have so there are things that you know kind of coming to the picture that you might not be used to because you're simply dealing with a technology that is more lower level than you know your regular classical programming language these days here is an example of how you for example would specify a problem so this encodes the energy landscape of a checkerboard and it's lowest energy state is basically a state where the neighboring qubits are alternating in value so they're 0 0 1 0 1 or 1 0 1 0 and you do that by imposing a very simple simple matrix of penalties here that is defined there over with the j matrix and it's really only like a couple of lines of code using the d-wave standard development libraries so the workflow in the quantum annealing world is really you define a problem you figure out how to you know encode that problem as this equation and as I mentioned you basically do that via imposing different penalties for situations that you don't like so for example in the previous case I would impose penalty for two qubits being the same value once you have the equation you try to what we call embedded on the graph so you're going to make sure that the qubits that are talking to each other in your equation can't talk to each other on the hardware and then you just solve the problem on the hardware and you read out your solution and if you want to guys play with it there's d-wave leap it's a platform out of the way that you can have one minute of free qpu time to play with and some further resources for you guys to look at okay the universal quantum computing I'm going to speed up things a little bit here we are constructing so-called quantum circuits so the big players are IBM Google Rigetti and they're each are developing their own respective libraries that you know you can use to specify quantum circuits and run down the results and fundamental building block of quantum computing in this paradigm is qubit and this is something that you might have seen previously if not it's completely fine qubit is basically specified by two amplitudes that's alpha and beta in this equation and those squared specify the probabilities of sampling each of these basis states either zero or one and basically in order to program the device you construct a circuit so very much similar to you know classical circuit logic you specify quantum circuits you you basically have either operations that touch one two or or multiple qubits and by imposing those operations you alter the state of the system you alter what we call the wave function and at the end of the computation you just read out the the result so for example one of the things that you can do you can basically introduce entanglement it's one of the usual building blocks of quantum algorithms and you do that using a Hadamard gate. Hadamard gate is nothing else than a certain rotation of of the qubit you can see the result of the rotation here for two basis states another gate that you can use is a synod gate and if you were to combine the two you can actually reach this combination of states which kind of imposes that we can only get zero zero or one one out of the system which we call entangled state or maximum entangled state so we would do this in using the we get this library as described over here so we can again see that you know it's a fairly simple way to specify the circuit actually it generates a circuit in a language called quill which is on the on the right so it's very much like assembler like in this particular sense and here the the workflow is again very similar you go from your professional problem then you you know figure out the quantum algorithm you generate a quantum circuit for for that algorithm and you compile it to the hardware so the hardware can only use certain operations so there's a step called compilation where you make sure that the gates that you're using are actually implemented on the on the hardware and then you run your thing on a quantum processor and read out your result okay another paradigm and the last one that I want to talk about is continuous variable computing and here instead of having these you know two basis states you have a continuum of basis states so instead of qubit we call the computational building block the q-mode and for example one of the applications or one of the kind of building blocks of these systems is quantum boson sampling that you can use to you know sample from complex probability distributions it's well suited for graph problems for example we wrote a paper on using Gaussian boson sampling for certain molecule docking problems so that was basically trying to find maximum cliques in certain certain graphs that we generated so it's it's really you can see that you can have to combine you know knowledge from quantum computing but the knowledge from computer science in order to achieve useful results and the biggest player in this field is Zadu and actually we have a speaker from Zadu here today so he's going to tell you more about this domain more resources if you guys are interested you can find it in a slide deck so at the end of the talk i want to kind of talk about a little bit about how can you become part of this and you know what are the things that you can actually do to you know help the field out the nice thing about quantum computing is that there's a big push in the community for the things to happen in the open source way not only the research itself but also like all the underlying building blocks the libraries are available open source and you know it really helps reproducibility but also it helps more people join the field so all of these not all these are many of these quantum hardware providers are also providing open source libraries to program their devices or play with their quantum virtual machines quantum simulators and that is that is really nice for us to be able to you know spread the knowledge the kind of implicit thing about the field is that it comes from you know academia to degree and many people working on these open source projects are scientists and they're doing a great job but many of them are not software engineers by training and there's a huge potential in you know more of software engineers being involved in helping you know scale and design apis and then just build the system in a way that follow the best practices of software engineering so there's like a huge list of projects on our website the links are on the right that you can use to see a you know quite exhausting list of different projects in different different areas and I want to mention some of those here so these are things like quantum compilers or quantum circuit optimization where you try to make sure that you modify the circuit in such a way that you let's say optimize the number of gates and at the same time you produce the same kind of a result at the end there are things like development of control systems so we're actually going to have a speaker today speaking about a open source project for control systems in the quantum computing we have things like quantum games or IDE tools visualization tools so there are a lot of these things that need to be developed now we can draw the parallels that I was speaking about in the case of machine learning a lot of work needs to be done for us to be able to like do research and really develop this field further and all of that work is you know fundamental software engineering basically waiting to be fulfilled so feel free to jump into any of those things community is very very open and I'm certain that they would love you know helping hand from people that can you know tell them how to structure or package their python library better and put them put it on pi pi because maybe right now it's on github and it's not even installable for pi pi so there are a lot of opportunities like that if you guys want to jump into the space and and learn more about the the area and if you guys feel even more adventurous there's a incubator that is dedicated to quantum computing slash quantum machine learning actually Sean is in the room Sean is one of the people organizing it Sean if you could wave your hand such that people know they could talk to you in in a break if they're if they're interested and that's actually where my company started so shout out to these guys and if you want to help with you know education and outreach you can speak to me and mark we're running the quantum open source foundation you can join our slack channel if you want to become part of the community and to know more about the events and things that we're organizing and yeah for that purpose you can also follow us on twitter or other social media accounts or just github or a good lab if you guys fancy that and so with that I thank you for your attention also what oh yeah and there's also a microgram program from from will call doing three funds so that's you know three dot fund you can check out if you are interested in doing a project but you're not sure if you could you know support it yourself there's a way to get funding for that as well all right so that thanks you thank you for the attention and let's wait for the next