Accessing Quantum: Wolfram + Strangework Partnership

Stuart Flanagan and Andrew Ochoa demo Strangeworks, a platform that makes quantum computing accessible through Wolfram integration. They show how to solve optimization problems using quantum solvers and answer questions about the framework.
Chapters
Straight.
Hello everyone. Welcome to another live stream where today we'll be discussing what's new with strangeworks and our partnership with strangeworks. So we're joined by Stuart Flanagan as well as Andrew Ochoa. And the format of today's livestream will be. We'll take a quick look at some demonstration materials that Stuart will be showing off and then as always, if you have audience questions, just do. Please put them into the chat so that we can make sure to ask them. And we'll see a lot of great ways that you can take real world problems and see how the latest and greatest can be brought to solving those real world problems, to getting you results to, in many cases, optimization problems that then are applied to a whole bunch of different areas. So we'll see some great demonstrations of what's possible using the strangeworks platform. So Stuart, Andrew, thanks so much for joining us today.
Yeah, no problem. Thank you for having us. Excited to be here.
So let's give a quick introduction to our audience of the strangeworks platform before we get into our demonstration. So Stuart, if you'd like to take it away.
Yeah, thank you so much. So, yeah. Hi everyone, my name is Stuart Flanagan. I'm Quantum software developer at Strange Works. You know, my background is in. Sorry, just changing the zoom. The zoom thing. My background is in quantum research. You know, I, I worked on developing use cases for analog quantum computers for simulating physical systems. But two years ago I joined Strange Works, you know, in an attempt to bring my theoretical research into the real world and make something useful out of this use know exciting new quantum technology. Now at Strange Works, I mainly work on building software tools for allowing others to easily access the wide range of solvers we have available on the platform. So today I'll be talking about how Wolfram Mathematica users can use the Wolfram Quantum computation framework and our Strange Works packlet to submit jobs to Quantum Classical and Quantum inspired technologies using using the strangeworks platform. So this is the agenda that I've planned out for today. You know, I'll spend a couple of minutes, I've got a couple of slides talking about who we are at strangeworks and what it is that we're trying to do. And then I have three short demos, first of all showing our Strange Works online platform, then moving on to showing how to run jobs using a Wolfram Mathematica notebook, first on the simple Bell state circuit to different quantum backends. And then a more involved example of submitting problems through our optimization service to Quantum inspired and Classical technologies. So this shouldn't take too long. I think there'll be plenty of time at the end for a Q and A session where I'll be joined by Andrew Okawa, our chief scientist. But feel free to post questions in the chat throughout and if the moderators think it's appropriate, feel free to interrupt me and ask clarifying questions, particularly during the demo as well. So strangeworks is a software as a service software as a service startup. You know, we've been around for about seven years and are headquartered in Austin, Texas, though we have people and offices scattered throughout the world. You know I myself, I live and work from Scotland in the in the uk. So at strangeworks our focus is enabling users to solve valuable business problems today while also preparing for the technology available tomorrow. You know, our customers so far have included many Fortune 500 companies in pharmaceutical, energy, aerospace and you know, a wide variety of different industries. So how do we do these things? You know, we have a cloud based software product that provides access to, you know, our large catalog of advanced compute technologies, quantum gate based quantum annealers, quantum inspired solvers, as well as fully classical non traditional computer purpose built hardware and custom algorithms for solving large scale optimization problems. We really here focus on abstractions, abstracted solutions and services, in particular optimization service, which I'll come to in a moment and collects together many different solver frameworks in one easy to use package. The goal for us here was to design something where you don't necessarily need a PhD in order to be able to gain value. Of course technical power users can obviously go deeper and scratch under the surface of these things, for example more advanced parameter tuning. So you know, we are trying to target target as many users as possible with different varying levels of expertise. We have a large network of partners across hardware, across applications, across software. So you know, if we don't right away know the answer to your question, we will be able to pull our expertise from this large network, find the answer to your question or at the worst case point you in the in the right direction. And we offer, you know, a bespoke working tailored experience to your particular needs. You know, either you can use our SDKs alone and be left alone and just hear from us when you get a bill, or you can work with you and your team more closely to help you formulate your problem in terms of the most optimal way to submit to the various solvers, you know, giving you the best chance for reliably solving your problems or to add value to your to your wider work flow. So this is a nice Graph, you know, visually showing really already what I've visually showing just really what I've already told you. You know, we can say that currently, if you work with strange works, we can add value today in the form of our classical and quantum inspired optimization solvers, which have been demonstrated to be able to solve real world non trivial optimization problems. You know, with the strangeworks package though, you also get access to our quantum annealing devices for value in the near term, as well as gate based quantum computers, which of course are still a ways away from being able to do anything useful. But the idea is that while you're gaining value with us today through the quantum inspired solvers, you can start to train your workforce in order to utilize the gate based technologies for when the day comes where this transition in value and business value may take place. You know, fully quantum devices are so different to the classical devices in the way that you work and operate them that it's going to take some time to learn to think in the right way to properly integrate these quantum algorithms into your existing workflows. And you know, you can gain this type of useful experience by working with our quantum annealers and integrating these things currently. So this brings us to our flagship service. You know, we have our optimization service here where we're attempting to standardize, working with a variety of different solvers, different, different solver types out there. You know, we're trying to provide a uniform way to submit problems to solvers with a uniform input and a uniform results output. Now you can currently submit, submit problems in a variety of different problem types. And you know, we're continuously adding more accepted problem types as the demand requires. And the idea is that you should be able to easily submit your problems to multiple different solvers, allowing for easy comparison for results as well as easy hyperparameter tuning. You know, if you did not use the strangers framework and instead went direct to a particular solver or provider, you know, you may get nice results. But this field is so cutting edge in solving incredibly difficult problems that different problems with different internal structures can only really be solved by a subset of the solvers. You know, each are built with a particular class of problem in mind. They do really, really well for the problems they're designed for, and even in some cases for a very large class of problem sets. But the likelihood is that the solver you have chosen may not be suitable for your particular problem or the first problem you have. You choose the solver and then if you want to change the problem slightly, have a different structure. The solver that you've chosen won't necessarily be the right one to apply it to. With us it's as simple as changing one parameter, the solver string name and you can continue on and you can submit to all the other solvers, but keeping your other submission and submission and analysis code completely the same. So here is an up to date list of our available solvers and available hardware. So on the left here we have our optimization solvers and as I've already said we have a different range of different solver types from fully classical through to quantum inspired software algorithms to special purpose built quantum inspired classical hardware and then quantum annealing devices. On the right we have our fully quantum gate based offerings with qubits. Now these are currently separate to optimization service due to the currently small number of variables supported on the current qubit numbers here, but we do have a range of technologies accessible through IBM for Microsoft Azure and through AWS Braket. So I'll just take this moment very briefly to plug our promotion. You know at strangeworks we have this Backstage Pass program which provides limited free access to strangeworks for some of our select solvers. Now as of today we have launched this app Wolfram Mathematica Backstage Pass offering. This provides free enterprise strange works licenses and $500 in Solver credits in the first for to the first 10 qualified applicants with a valid Wolfram mathematical license. So the solvers that you can have access to include IBM, Rigetti, Gurobi, Hitachi, Ionq and more. Please apply using this link below. Mention that you learned this from this online webinar today. Look forward to hearing from many of you. So just yeah, going to move on to the demos now. You know we have two key parts to our offerings to our platform. We have a software as a service platform here. This is a website, a URL web based online platform where you can manage jobs and allocate resources, add different solvers and things like this. And then complementary to that we have a series of downloadable SDKs where you can create your problems and run jobs and these two things are integrated through an API layer. Of course today I'm going to be focusing on our Wolfram SDK, our Wolfram Strangerix pack clip.
And audience. You should be having the links that Stuart just mentioned in the chat, so if you can take a look at those and make sure that you take advantage of this great offer. Also we're really looking forward to seeing all about the packlets and so the audience. You also have links to the strangeworks packlet that Stuart was just Referencing. And so, Stuart, without further ado, let me stop interrupting you so that we can take a look at what you have to show us with using this packlet.
Nice. Yeah, thank you so much. So just five minutes before going on to the packlets in the notebook. I just wanted to show the strangeworks platform. This is a web page browser. This is, this is a URL portal.strangeworks.com and this is the home page. And you know, this is, this is a nice useful tool complementary to the Wolfram SDK that I'm about to show you. So you're presented with this nice welcome, welcome message in the, in the platform and you have some useful links. So this is really mostly designed for the manager of a team. You know, you can add members to your particular workspace. You can activate resources. These correspond to backends to solvers to applications as well. And then you can set spending limits associated to each of these different resources, trying to be as flexible as possible. You have links to our documentation and how to download our SDKs. And then you have some job metrics and a list of the most recent jobs that you have ran using one of our SDKs. And here is where you get the API key you this will come in become important when I show you the strangeworks packlet. So I'll come back to that. We can scroll down here, we can get other useful information. We can have our product catalog page. This is currently all of the services that we have available on the platform. We have the individual compute providers and you can see that it's got a little message saying that you've activated this on your particular account. If we scroll down, you can see the wide variety of things that we have on offer. If I click into one of these pages, we get more information on on the particular solver. You know, what types of problems can problem formulations can we submit, what types of exact what types of files they accept as problem inputs. Sorry, excuse me. And how to get started. A link to our documentation for this particular resource as well as some other useful links and things. And then on the right we have a current list of the available backends associated to this resource. In this case, this corresponds to the problem types that we can submit. And this is live updated continuously with this nice green it's working. So you can really get up to date information on the solvers that are available currently to you. So if I go back to the catalog page, we can scroll down from the compute providers, we have more abstracted application layers. These are where you add to your applications, you know, a QOA service or the Strange Works optimization service, plus, you know, many others bespoke and tailored for particular needs. And then we can go on to the resources. This is, gives you, gives you a list of all of the resources that you have activated on your workspace, which solvers, which providers you can currently run on. And you can see that there are duplicates of some of these. And this just adds in an extra layer of flexibility. It's not required. But you say, for instance, you can have a subset of your team running jobs against one resource and another subset of routine of your team running jobs in another resource. And you can manage spending on these two different resources just to give the manager another layer of flexibility. These resource IDs, these also play a part. This is how the SDK knows which resource to send the job to. So this will come back into this information when I show you the packlet. And then you have the list of the jobs page. You know, this is a list of the current jobs you get, the resources, the products and tags, you know, some timing information when they were submitted. It's just a nice sort of job management tool. And then you can click into one, you get some more information, you get some of the, you know, you get the results files that in some cases are a little abstract depending on the product we sort of, we've built into this rendered results or inputs, you know, for in this case we can see a nice circuit that we've submitted, rendered to have a nice sort of graphical, graphical representation makes it a bit cleaner, a bit easier to understand. And then I think the last thing I want to show you on the platform page is our billing page. So you can see all of the bills associated to this workspace. You can see that the credits that we've got allocated to the particular resources this shows. And this is a, this is a useful tool for, for high level people monitoring, you know, what, what's being run and what's going on. We can click into our resources, what I forgot to show you. If I go into the resource page and click here, you know, we can get, you know, the information of the resource. We can get a list of the, of the jobs that have been run against this resource. And then we can see the bills that have been been accrued on, on top of this resource as well. So another, another tool. So typically, you know, me as a developer, I would mostly use the SDKs and the packets that I'm about to show you. But I find this job organization page to be Very useful to check on the statuses of the jobs. Rather than running a notebook of all the statuses, I can have a nice visual representation. Oh, look, they've all finished. I can now move on and put the results. Mainly the platform is of benefit to the organization, members of your team organizing and allocating all of these resources. Some very useful tools.
We often find that there's a nice need to go back and forth between doing something programmatically and then have a quick, nice visual representation of this. Exactly as you're saying, the jobs that have been submitted in their status.
Exactly. Particularly when you're in the initial, like debugging phase, you know, back and forth. So, yeah, without further ado, I can go on to the Wolfram Pack. Let's this Wolfram notebook, first of all, let's submit some circuits to quantum hardware. So the first thing you have to do is you have to load in the packlets, the packages. So I'm going to load in this Wolfram quantum framework because this is how we're going to formulate the quantum circuit. And then we're going to load in this strangeworks packlet, because this is how we're going to submit the devices. So here, then we can then first of all have to authenticate our Strange Works resource. So this is where the API key comes into it that I highlighted. And these are the resource slugs, the resource IDs that I also commented upon. And so we're going to submit through IBM and submit through aws. That's why I've got both of these saved here. And let's create a simple circuit, you know, using the Wolfram's quantum framework. In this case, I'm just creating a 2 qubit circuit. Apply Hadamard gate, a CNOT gate. What this does is this just creates a simple bell state. Right? This is kind of like the first hello world quantum computing example that everybody runs. So this is a good place to start.
Which it is nice to point out that, you know, hello world these days is not so hard to get to run on a computer, but it is actually, you know, an interesting opportunity for people to be able to run the hello world of quantum computation on actual devices these days.
Yeah, exactly, exactly. This is, this is the stage we're at. It's very exciting early days. Right. So yeah, let's first of all, let's see what backends we have available. What are our options? So we pass in these resource logs and then we can list the backends. And so we get the list of available Backends to us. And these are the current devices, hardware and simulators available through IBM Runtime, IBM Cloud and then we can do the same thing for aws. So I have to create a instantiate a new resource but it's the same function here as the IBM just with a different resource for the sort of initial function. And we get a list of all of the different available backends through Bracket with some indication of the statuses of these as well. So let's run a job on IBM. So I chose this IBM Brisbane device. This is a 127qubit quantum computer and I always find it funny running the 2qubit Bell State on this. It just sounds so silly. But let's do it and see what results that we get. So we submit the job, we get the job slug and that's how we associate the slug is how we associate what we've run here to the job page, the portal. Let's also do the same thing on Bracket. Unfortunately all of the hardware seems to be offline for maintenance yesterday and today. I should have really run this last week, it's so annoying. But let's do it on a simulator because it's exactly the same code, we just changed the string. And also this gives us a nice opportunity to compare the results from hardware and a noiseless simulator. So apologies if anyone's disappointed. So this gives us another job slug. We can then probe the statuses, particularly hardware. The queue times just across the board can be particularly long. With simulators it's typically very rapid and then we can get the results just the same. You know, with these result functions just passing in the different job slugs the code is very similar no matter what we're submitting to IBM or aws. That's kind of what we're going for. Having a sort of uniformish submission protocol. And let's get the results and let's. So this is the results and let's plot them. So this IBM on the top, that's the hardware and it's AWS in the bottom that's the simulator. And you can see the simulator creates an almost perfect equal superposition. The 1:1 state and the 0:0 state. This is our, this is our Bell state. And I say almost perfect because if it was perfect it should be 50 50. But this is just because we've only ran 100 measurements, 100 samples, so the statistics aren't there. If we did many more measurements and scaled to infinity, these will become equal in theory. But it's a simulator so it should match theory very well for IBM. You can see that, yeah, it gets this more or less equal superposition here, but we get these errors associated to these sor. These off states, these states that shouldn't be there if this was a perfect simulation, that's just a reflection of the noise. And you know, IBM has some really nice error mitigation tools which they apply by default. This is why these values here are very, very small in comparison to these things. So that brings me to the end of demo 2. You know, nice and short, reflecting how easy it is to submit through Strange works. Now I guess I'll move on to the. Unless there's.
We do actually have one question that maybe we should do in between these demos. So the question is, so can you elaborate on why one would need different solver frameworks? Right, so there's all these real applications out there in the world and frequently there'll be some optimization problem that comes up in terms of being able to solve these real problems. And then the audience question is, so why, why do you need a different solver in the first place?
Well, yeah, that's interesting. So, well, why do you need a different solver? So this, you know, these things are so cutting edge, on the edge of research. These problems that we're trying to solve are so difficult. There's many different ways to go about tackling these things. It's not like we can build a general computer to solve all of them. We have to really spend resources in building a purpose built either, you know, quantum hardware, quantum inspired hardware, a purpose built algorithm that's classical in order to solve a particular subset of the problems, but not. There's no solver that solves every single optimization problem, they're all targeting a subset. These subsets can be, can be quite large. There's, you know, nothing against the solvers, of course, and it's just, it's a losing battle to try to cover everything.
Sure, yeah. As you alluded to a moment ago, the mathematical details of what the mathematics problem actually is to solve your applied optimization problem can be very different. And when you're selecting an algorithm to solve any of these things, you have to make trade offs based off of what do you expect a typical case to be given the mathematics specifics. And so depending on what exactly it is you're wanting to optimize, you might need very different algorithms for actually being able to come up with a solution in either the fastest or let's say lowest time to solution or there's all sorts of different metrics that people might care about. And so you can tailor these solvers to be very. The people who come up with these solvers tailor them to be very targeted to. This gets you a solution for this kind of problem where either the time or the memory or whatever it is is as good as we know how to make it. And so if you, you know, if that's the. Not the thing that you want to optimize for, then you would want to use a different solver.
Exactly, exactly. And the other point is, you know, particularly with the quantum devices, there are many different underlying technologies for how to build a quantum computer. You know, there's superconducting qubits, there's. There's trapped ions, there's neutral atoms, all trying to solve the same thing, the same subset of algorithms, but going about it very differently. So they all suffer from different natural errors and inconsistencies. So the different inputs as well as the different ways to going about to solve the same input.
So, audience, as always, feel free to put any questions in the chat that you might have. I think those are the one that we had at the moment. So, yeah, I'm very curious to see our next demo and I'm sure the audience is as well.
Nice. So this is a very, very sort of similar structure. So first of all, we load in the stranger's packlet. This way. You should always do it first. And then let's consider a traveling salesman problem. So for those not familiar, this is quite. This, this is almost like the hello world example for quantum computers. This is one of the typical optimization problems that everyone sort of starts because it's so simple for to solve, but difficult for the machines to solve. So let me take you through this. So we define this, this graph. We define these points on this graph. And the goal is to get our traveling salesman to visit all of these coordinates by traveling the least distance possible. And so that's obvious. So if it started here, it wouldn't go here and then back and then back and then back because it's cutting back in itself. You can see the solution would just be to go around the outside. Nice and simple. Let's see how the solver can handle it. It. And as I say, it's easy for humans, difficult for these solvers, really pushing the boundaries. So the way that I'm going to show you how to solve this is to first of all encode this problem as a cubo. This is a very standard optimization problem formulation. The reason that I've chose this is it's acceptable by all of the solvers that we provide access to.
And so audience, this is an example of one of the different ways that one can encode an optimization problem. So there are many. And so as Stuart was just saying, particularly nice feature about this one is that. So you're saying that this is supported on all of the various solvers that are on the platform?
Yes, yes. Universal. So cueble, quadratic, unconstrained binary optimization. This is the mathematical representation of a very general cue ball. This form represents every cubo out there. So just let me decompact some of these terms. So binary means that the variables here, these S's are binary variables. They can either take 0 or 1 or, you know, on or off, you know, one class or other class. And then quadratic means that we only have terms up to quadratic order in these variables. So we have quadratic and we have linear terms. And then these H's and these J's, these are just real coefficients that can take almost any value. And it's. So while the form is universal across all the cubels, the values of these H's and J's is what varies from from problem to problem. Now, for this particular traveling salesman problem, if we have n data points, we need to encode this in a Cuba with n squared variables. And this is what I mean. But this is probably the wrong choice to formulate. This is the, the formulating this is a cube. Formulating the traveling salesman problem as a Cuba is probably the wrong choice. But let's do it and see what happens to give you a flavor. So the reason it's N squared is because each of these variables that we in the cubo have to be represented by two indices. You know, the position and the time. So S10, if that was equal to one is the result. That means we would visit place one at time zero. S21, if that's equal to one, that means we visit position two at time one. So so on and so on. Now the actual formulation here to get the cubo matrix I've abstracted away, because this is not a live stream on how to formulate a cubo. It's more once you've got the cubo, how do you submit to strange works? But this is, this sort of step here is part of our bespoke package offering. You know, you have a problem, you come to us, we can help you with the problem formulation. We can advise on the most optimal way to formulate it and which solvers and things that we suggest to submitting to things like this. So we can can really help with this stage. It can be, it can be non, it can often be non trivial in the hardest part. So then going we've got this, we formulated this problem in the correct way. We authenticate with strange works. We have our different resource ID now associated the optimization resource we've authenticated and now we can list the backends available to us here. And so we get this nice list, these varied offerings that I, that I've already gone over and then we can get the statuses, you know, which are continuously updated to give you a real time reflection on what solvers you can currently submit to. So you're not hindered by queue times or solver downtime too much. So picking two solvers at random, let's submit to Gurobi and let's submit to nec and you can see that it's basically the same code. All I'm changing is the resource slug and the solver string. So that's what we're going for. Nice uniform submission. And then we get the two job slugs back, which is correspond to the job page. Then we can probe the statuses and we can get the results. And you see the results quite look quite abstract and there's no meaning to it. So in the same way that we had to formulate the problem to the cubo, we have to do the inverse mapping to get the results of the cubo back to the. You know, what does this actually mean? So you can see, you know the, the cost functions are exactly, the values of the cost functions are exactly the same. So in terms of solution optimality these are equivalent. And then we get this horrible looking answer, this solver string here of zeros and ones. So doing the inverse mapping, the details here aren't important, I don't want to focus on that, don't get bogged down there because it's really, really problem dependent. But the answer here is we visit site three first. Site five, six seven, four two, one, so on. So that looks great, right? That's the solution that we predicted that my, my six year old son would have been able to solve as well. But we did it with a huge solver capable of solving million variable problems.
And this does actually become something that you do want to automate once you get more than. What is this? I think six things, right? So six is of course great for demonstrating the idea behind it, but once you're dealing with thousands then you're not going to want to sit there and figure out oh geez, which path is actually the best, right?
Great. Exactly, exactly. You beat, you beat me to my floor. I'm going to show you that in a second.
Sure.
And then just show you the results from me. See that again around the outside we just. A different starting point, sort of same quality. It's just because we didn't put any constraints on where we should start in the problem. Of course we can add that. Now as you were saying, a big problem where let's get 50 points and okay, you know, a human could do a pretty good job, but it gets a little bit difficult, you know, particularly around the close points. But let's run this and just as a spoiler that the solvers don't do a very good job, maybe better than a human. But it's more here showing that we have the capability of supporting these large passings, these passings of large cubes. So it's 50 variables. The cubo then is 50 squared. It's 2500 variable problems. So it's starting to get, you know, a little bit more complicated. So we run, we get the status, we get the results and then we can plot this and you know, it doesn't do too bad right around the outside, but you know, there are some crossings. It's, it's far from optimal. And this is, you know, I just submitted this with the default solver parameters. I didn't do any fine tuning. That's not the purpose that I'm trying to get here. Just showing you that we can submit big problems and that it's difficult because of the problem formulation, because of the way we formulated the problem. Formulating TSP as a qubo is very inefficient, but people like to do it for demonstration purposes mainly. But then that sort of brings me on very nicely to a different problem, the max cut problem, which is much more amenable to being formulated as a cuebo. To give you an idea of different problems can be mapped to different problem types and then spin them in different solvers. So the max cut problem similar. So each, each. So I just, I use the, the mathematical graph function to create some graph. Each of these nodes, these will represent one of our variables. So four nodes, four variables in the cubo. So these are our binary values. They can either take 0 or 1 Class A, Class B, pink, blue, on, off, whatever. And then we have edges connecting these, these nodes weighted by some value. And the real world problem that I like to think of here might be a little silly, but it's, I think it's good for, for a demonstration is that each of these Nodes. Vertices represents a potential location for a retail chain, a site in a retail chain, you know, a grocery store or something like this. Placing two stores too close together, they will eat into each other's business, you know, reducing profit. Right. So we want to find the optimal distribution of grocery trains such that we maximize the total profit. And like the weights of these edges between the potential sites, these can represent how strongly they will interact with each other and take away the business. So we'll want to prioritize cutting edges with the largest weight. So we'll. If it's not possible to cut all of the edges, we will prioritize cutting this one over this one, for example. And so a cut edge, by the way, means that the connected nodes are in opposite categories. So this would be cut. If this is, if this is in Class 0 and this is in Class 1, or vice versa, that means the edge has been cut. If they're in the same class, the edge is not cut. Sorry, just to be clear. And so in this case, 0 and 1 means a retail. We will build a location at this site. And now zero means we won't build a location at that site. So what is the optimal distribution of stores such that the maximum edges are cut? That is, where should we build grocery stores such that we reduce self competition and increase total profit?
And I'm very happy that you went into the, you know, the application of these sorts of things. Right. Because I think that's an important point to make, is that the person who is running the grocery chain, they might not necessarily want to know the details of Am I modeling this as Kubo? Am I modeling this and feeding it to a different solver? I just want to know where to put my grocery chains. So there's a real thing that has to be decided. Then there's all of these very fascinating and specialized ways that you can frame the problem and then solve the problem and then translate them back into the original context of okay, where should I put my grocery chains? And another thing that our audience, I'm sure would love to know, are these demonstration notebooks for this second one? Is there a link where they can get that currently? If not, we can make sure that they get that after the stream. But if they want to download and play along, is there a place where they can currently find that or should we send that afterwards?
Yeah, sorry, that it's not live anywhere.
Sure.
We can't currently get it. Yeah, let's, let's talk afterwards and make that available.
Sure. So if you're watching this after the live stream. We'll make sure that link to that winds up in the description.
Nice. Nice. Yeah. So let's, we've come up with the problem motivation. It's very simple to map this to a cubo. So let's create a random 50 node graph shown here. Let's submit it and see what happens so we can authenticate again. We can now run on running on a big wider variety of solvers. Let's run on Hitachi, Gurobi and nec and we get our three different job slugs, we get three completed messages and then we can get the results. So this is, you see the. The mapping of the result into the actual solution requires less lines of code. I would argue that's simpler. So just reflecting how amenable it is for this type of problem to be mapped in this problem form. And let's plot it. So these look orange to me. It says pink, but whatever. The pink ones mean that we're going to build a grocery store at this particular site. The gray one means that we're going to forget it. And you can kind of imagine, great, we're not going to build it here because this will interact of this one and this one. So it's look fairly sensible. With the Gurobi we get a different distribution but you know, within 1% it's equally as good in terms of the cost function. Similarly with NEC we get another distribution but seems equally as sensible, which is nice. And this is good because this reflects the fact that. Well, first of all, why are we getting multiple solutions? I think it's in this case the problem is small enough, sufficiently simple that we have a low energy degenerate subspace of different solutions that are more or less equally as optimal. Maybe in real life we will add in additional constraints which will then open up this degeneracy and mean that different solutions are more optimal. For whatever reasons. This is just a very, very simple toy example. But the benefit here is this gives an insight. We run on a variety of solvers and we're not just doing that because only one of the solvers can solve the problem. We're doing it because we might get different solutions. We can build up different samples, we can have a distribution and different potential solutions that we can go ahead and implement and try or add into the next stage of our workflow which might add in additional constraints things like this. So that brings me to the end. Nice. Two short demos reflecting how easy it is to submit to different types of solvers via strange works. So I think that brings me to the end of the demos. Thank you for listening. Any other questions?
Yeah, Stuart, these are great. So I'll go ahead and ask a couple of questions and again, if you're in the audience, make sure that you put anything that you have into the stream chat as well. So I was wondering if you could comment on, you know, how you think about strategy in terms of helping people decide who might not be an expert in various solving mechanisms. Right. So I mean you provide a lot of tools for being able to try various solvers and see what solutions come back. Right. Because sometimes the, the hard part isn't the verification of whether or not, Yes, I agree this is a good solution. It's the finding of the solution in the first place. Right. So you, you can send to a lot of different solvers and then get results back and, and compare your, yourself. But then also, so what, what, how do you think about helping people who are experts in their applied domain, but not necessarily in various techniques and ways that you can model their applied problems as optimization problems?
Yeah, I think you've hit the nail on the head. This is one of the hardest parts of this workflow and I think maybe Andrew can add his insights. At the moment I don't think there's an easy answer to this question other than building intuition, mapping various different problems to these particular formulations. And you know, if you've got someone in your team that can do that, great. If, if not, what do you do? Hopefully you come to, you know, a company like Strange Works who have done it a number of times internally and for external customers, you know. Yeah, Andrew, I can jump in.
Yeah, so you know, we, we do offer services and of course we'll, we'll help people. I mean we're, we're a business. Right. But yeah, we, we have kind of two classes of, of customers, some that use, that have teams internally usually on, on like an R D or innovation team that are looking at new technologies. They've already built up the expertise and you know, understand these devices. Then we have other teams that are, I would say more use case or problem focused. You know, so a drug design team or an energy delivery team at different companies and these are the people that, that, you know, they're, they're interested in trying these novel technologies but they need, need a little bit of handholding, getting their problems into a format that these devices can run. So like Stuart mentioned earlier on the call, a lot of these quantum inspired devices and quantum devices like the D wave, they like Qubo problems, but we're seeing Them begin to branch out. D Wave, of course, has a few other solvers like the constrained quadratic model solver, that it's discrete quadratic model solver. Some providers like NEC are providing more solver options. So not only do you send it to Cubo, you can also send it some constraints with it and it will traverse only the feasible landscape of solutions. So I would say like, you know, when I started, I was finishing my PhD in 2017. The IBM 5 Qubit system had just come online I think the year before. We've come a long way and the industry is moving super fast. I, I don't want to be the FOMO guy, but, you know, the Quantum industry is, is still growing and your business can grow with it. You know, if you think about the last time you made a big change in your organization in terms of, you know, technologies, how long did that take? That probably took years, millions of dollars. You know, if Quantum is ready, let's say tomorrow, is your organization ready to take care of it? It's kind of like this big push into AI and LLMs and things that we saw last year. A lot of people were caught off guard when, when, you know, OpenAI came online and, you know, everybody saw all these things you could do with it. We're kind of in that, that before time for Quantum still, I think. And so it's an interesting time to get started. I'll add one more thing, Stuart, just to clarify, you know, why we didn't run these demos live on Bracket. Stuart, that said things weren't available and that wasn't quite right. There are things online at Amazon Bracket we want to make sure we portray our partners correctly. The things that are online require a reservation or have a very long queue time. So that is why we did not do things. So there are things to use on Amazon Bracket. Definitely recommend checking them out.
Yeah, sure.
And one of the things that our audience is also curious about is so you mentioned that having a common language for describing these problems, whether you're wanting to do a classical back end or a quantum back end, is one of the things that you think about in terms of design and the functionality that users have. So our audience was curious. Can you comment a little bit more about having this sort of common language and then how one might change just little bits and pieces of that to, let's say, solve the same problem on a QPU rather than solving it on a classical device?
Yeah, sure. Well, for solving optimization problems on a qpu, you really want to use an algorithm like qeoa Something like this, and that accepts Kubos as well. Takes some trivial mapping, but that should be easy to do. In fact, our strangeworks QAOA service is also compatible with the optimization service. So we haven't added it as a specific backend in this backend list just because the QPUs are too small to really compete with with the other offerings. But it's possible with this Cubo formulation we can submit to QPUs as well.
Yeah, and that's something as well. If you're sorry, go ahead.
Yeah, it's right. I mean, we can submit to QPUs as well if the problem is small enough. Yeah.
And if you're in the audience, that's something to keep in mind, is that for the scale of optimization problem that you can do using various backends, classical backends can handle problems which are much, much larger than what you can do with today's quantum devices. But as Andrew was saying, figuring out, okay, how do I think about this as a problem? Anticipating the time when hardware is different than it is today, this is something that you can, with platforms and abstractions like the ones that you were seeing today, you can already start thinking about that, anticipating when hardware is available, that does become something that you might want to do for a much larger problem. We had another audience question which was about working to find sort of exact formula and things like this. Right. So as you showed, using that quantum simulator, because it's a simulator rather than computing what the theory is, even in a Bell state, you had that sort of small difference. But the theoretical result is that if you run that simulator for enough sim, they will become precisely the same. So this is something that we're very happy to see, that there's the strange works packlet that you can use in conjunction with our quantum framework. Because one of the things our quantum framework does is it lets you compute that theoretical answer so that you can see what's the distribution I'm expecting. And then that gives you a really nice baseline for being able to send to all these various backends and simulators and see, okay, so how is this comparing with what the theory result is with given problems? And so one of the audience questions related to this is, so can you comment on GPU support and things that are available through the strangeworks platform? If you're wanting to, let's say, run a problem that requires GPU acceleration.
I think perfectly possible. There's nothing set up immediately, but it's a question on priorities. You know, if we have users, a user that a serious user that wants to use these things, I'm sure we can work with them and set something up basically tailored to their needs. Because saying GPUs can mean a wide variety of things. I think it means running a simulation with a lot of GPUs for UP Quantum gate based circuit simulation which we have done in the past.
I'll add one thing. So there are a couple of our backends that do utilize GPUs. So for example, Hitachi's CMOS and Nealer one implementation of that does run on GPUs. That's actually this one here that supports 256,000 variables. So there is, there are GPUs kind of running in the background on some of these solvers. But as for sort of direct GPU acceleration, it's not something we have tied in, but we have done GPU projects before with other customers.
It's another audience question that comes in and audience, do please get in your questions now since we don't have too much longer in the stream. But we have another great question which are. So are any of the optimization methods ones that can be done for trying to, let's say get closer to like a ground truth solution for solving partial differential equations or anything like this? So I think many of the especially ones that have to do with quantum are as far as I know, not typically used for that purpose. But our audience is curious. Are any of these classical solvers things that one would be interested in using if you're into partial differential equations?
The short answer is I don't know, maybe. Andrew, have you heard of any of these things?
Yeah, I've seen a couple papers on PDEs with, with quantum computers. I, I can't remember one off the top of my head and I, I don't want to be googling on a live stream. So sure, yeah, there is work out there. I'd search the archive and I'm sure you will find a couple of things.
One of our behind the scenes people has managed to do just that. So audience, you should have a link. Yeah, so apparently this is something that people are thinking about, but it is, I think a less common application area than things that people have spent a lot more time looking at.
Sure.
Great. So another question that, that our audience had was related to. So for the APIs. So you had one API key that then gives you access to all these different services. They wanted to get some clarification that they're understanding that correctly.
Yes, absolutely. Sorry, that's a point that I should have stressed. Single API key Everything, all credentials and billing one page.
That's something that we find very convenient as well. Being able to, especially when thinking about what's the end user experience of not having to juggle all these various credentials. Because there's a lot of interesting things that one can do, especially with these different quantum backends. Being able to see, given the noise that's inherent in the systems and the hardware, what results does one get back on some of these problems that you know, are approaching the size that I should say pushing the frontiers of what size you can do on quantum devices. And so, you know, having to worry about five different credentials for being able to run these, you know, if you're used to managing those kinds of things is not so bad. But if you're wanting to make it as convenient as possible, this is a very nice feature.
Yeah, I'll just add one more thing. It's also a single point for contracting. So when you work with strangeworks, we handle all the contracts with all these companies. So you only need to go through procurement once with Strange Works. And you know, we figure out the contracts with everybody else and you know, allocate the time appropriately and we also don't mark up quantum compute time. So, you know, the price you would pay at bracket is the price you would pay for it at strangeworks.
That's an excellent point to make. So as Stuart said previously, we'll make sure that we have links to those very nice notebooks for demonstration that we can put into the description if you're watching this after the fact. So we've got about five minutes left. If audience have any last minute questions they'd like to put in. So another thing that I wanted to briefly ask about were so the.
One.
Of the functions that you had there for translating the results back into the original problem. Stuart, so when you're setting these sorts of things up, are there any tips that you would give for people? Because there are a large variety of possible ways that you can take some mathematics problem and then translate that into one of these standard optimization algorithms and then translating it back. So just in terms of tips for the audience of of course, if it's a very large problem, they're probably going to want to go and speak with you and sort of a more contracting. But for people who are just sort of experimenting on their own, let's say they're a graduate student or a researcher out there, what are some things that are general advice that would be good to keep in mind when you're deciding, okay, what directions do I Want to go in terms of translating my problem into one of these common frameworks.
Yeah, it's, it's a difficult question. I think that there's not like one size fits all. But I would think that the, the best advice, I think, is try to break down your problem. You know, really think critically. You know, what is the, what is the objective function? What is the thing that I'm trying to minimize, forgetting all other, other constraints or things. So what is the objective function? That's the first. And then break it down into this particular type of constraint, this particular, you know, and so on. Just break down the problem, do it in pieces. And I think that you, I think a smart, you know, PhD student would be able to do that for, for a simple problem when it gets complicated. Yeah, you need to really tailor.
Yes, and there's, there's a lot of great resources out there. I mean, there's, for example, D Wave's Problem Solving Handbook. There's a really great paper on the archive by Andrew Lucas. It's called Ising Formulations of NP Complete Problems. So looking at that paper, you can understand the mapping of some of these sort of more generic mathematical problems to cubos. And then you just have to think about, okay, how does my, you know, my business problem or, you know, the problem that I'm interested map into one of these categories of problems? And then you have your mathematical mapping. It's already there. Yeah, there's plenty of great resources out there to certainly get started with some of the more canonical problems that are out there.
And again, thanks so much both of you for joining us. I mean, one of the things that often people who are thinking about how this can have the broadest impact notice is that sometimes it's not automatic for people to recognize in their real problem, oh, wait, this can be translated into an optimization problem and someone probably knows what solver to feed it to. And so increasing awareness of the tools and the resources that people have out there to try to go and solve their real problems, because many of them can be turned into these sort of mathematical abstractions and then into a subsequent abstraction that can be solved via particular algorithms. In many cases this is possible, but that light bulb, bulb of, oh, wait, I. This is probably solvable via some, some clever mathematical abstractions is something that people occasionally struggle with out there in, in the applied sphere. So again, thanks so much. It looks like those are the audience questions that we've had so far. We'll make sure to get these notebooks put into the description for future reference. If you're coming back to the stream later. And yes, also please don't forget yet. Go and check out this link that Stuart's showing currently. Strangeworks.comwolfram and thanks so much everyone for joining us. And we'll see you next time.
Yeah, thank you so much for having us.
Thank you. Take care.
Sa.
More from Guy

Cheryl Strauss Einhorn | The Human Edge: Smarter Decisions in the Age of AI | Talks at Google

Rachel Glennerster | Innovation and the Center for Global Development | Talks at Google

Rebecca Winthrop | Rethinking the Purpose of Education in the Age of AI | Talks at Google

Dr. Robert Wachter | A Giant Leap: How AI Is Transforming Healthcare... | Talks at Google






