We're sorry but this page doesn't work properly without JavaScript enabled. Please enable it to continue.
Feedback

Quantum computer brands: connecting apples and oranges

00:00

Formal Metadata

Title
Quantum computer brands: connecting apples and oranges
Title of Series
Number of Parts
490
Author
License
CC Attribution 2.0 Belgium:
You are free to use, adapt and copy, distribute and transmit the work or content in adapted or unchanged form for any legal purpose as long as the work is attributed to the author in the manner specified by the author or licensor.
Identifiers
Publisher
Release Date
Language

Content Metadata

Subject Area
Genre
33
35
Thumbnail
23:38
52
Thumbnail
30:38
53
Thumbnail
16:18
65
71
Thumbnail
14:24
72
Thumbnail
18:02
75
Thumbnail
19:35
101
Thumbnail
12:59
106
123
Thumbnail
25:58
146
Thumbnail
47:36
157
Thumbnail
51:32
166
172
Thumbnail
22:49
182
Thumbnail
25:44
186
Thumbnail
40:18
190
195
225
Thumbnail
23:41
273
281
284
Thumbnail
09:08
285
289
Thumbnail
26:03
290
297
Thumbnail
19:29
328
Thumbnail
24:11
379
Thumbnail
20:10
385
Thumbnail
28:37
393
Thumbnail
09:10
430
438
Quantum computerProjective planeOpen sourceMereologyProgrammer (hardware)SpacetimeComputer animation
MereologyQuantum computerCodeDifferent (Kate Ryan album)Projective planeType theory2 (number)Point (geometry)Computer animation
Quantum computerSource codeOpen sourceProjective planeField (computer science)Computer simulationMultiplication signWeb browserPhysicalismCodeComputerSelectivity (electronic)Quantum computerBitClosed setCASE <Informatik>MereologyFormal language1 (number)Software engineeringBlog40 (number)InternetworkingMathematicsForceRepository (publishing)Quantum circuitLine (geometry)PhysicistOpen setClassical physicsComputer animation
Quantum computerComputer programmingSimilarity (geometry)Digital electronicsComputing platformMultiplicationSimulationComputer simulationQuantum computerMedical imagingProjective planeMultiplication signPoint (geometry)Computer programmingType theoryQueue (abstract data type)Virtual machineComputerView (database)Social classSingle-precision floating-point formatSupercomputerDatabase normalizationFormal languageWeb 2.0Computer animation
Unitäre GruppeOpen sourceQuantum computerUnitäre GruppeProjective planeQuantum computerOpen sourceMultiplication signComputer programmingConfidence intervalMereologyXMLUML
Computer programmingQuantum computerGame theoryQuantum computer19 (number)Computer programmingElectronic GovernmentNear-ringOpen setComputer animationXML
Software developerQuantum computerQuantum circuitSoftware developerCartesian coordinate systemComputer programmingSynchronizationPoint (geometry)Ferry CorstenBuildingComputer animation
ComputerPoint (geometry)Computer animation
CodeConvex hullOpen sourceQuantum circuitProjective planeCodeAxiom of choiceQuantum computerComputer animation
Integrated development environmentFile formatSoftware frameworkFormal languageQuantum computerData conversionDevice driverOpen sourceComputer simulationIntegrated development environmentComputer programmingComputer animationDiagram
MereologyGoogolSoftware frameworkComputer programmingOnline helpQuantum computerGroup actionCausalityDeutscher FilmpreisTerm (mathematics)Formal languageAssembly languageComputer animation
Point cloudQuantum computerSoftware frameworkCodeQuantum computerSoftware frameworkInternet service providerCoroutinePoint cloudCloud computingProgramming languageComputerDifferent (Kate Ryan album)CodeOpen sourceCASE <Informatik>MultiplicationFormal languageCycle (graph theory)Moment (mathematics)CuboidPoint (geometry)Computer programmingMenu (computing)Programmer (hardware)Greatest elementOnline helpLabour Party (Malta)Computer animation
Analog-to-digital converterCodeForestData conversionSimulationSource codeQuantum computerOpen sourceForestLine (geometry)Data conversionWeb browserComputer simulationQuicksortWebsiteSystem callWord2 (number)Projective planePrototypeMiniDiscSpacetimeMathematicsForcing (mathematics)CodeClient (computing)Front and back endsServer (computing)Web 2.0Computer animation
Contrast (vision)Open sourceProjective planeProduct (business)outputFile formatSoftware developerComputer programmingDrop (liquid)Computer simulationCodeParsingQuantum circuitQuantum computerForestPoint cloudMultiplicationRevision controlDrag (physics)Software frameworkConnected spaceFunction (mathematics)Raster graphicsVector spaceLevel (video gaming)MereologyQuicksortExpert systemForcing (mathematics)Intercept theoremTraffic reportingWebsiteCausalityComputerComputer fileSoftware development kitCASE <Informatik>Line (geometry)Form (programming)Group actionArithmetic meanPoint (geometry)XMLComputer animation
Data conversionInstallation artoutputSource codeLine (geometry)Function (mathematics)Computer fileElectric generatorLaptopData conversion
Digital electronicsInclusion mapRule of inferenceCodeLaptopType theoryUnitäre MatrixAnalytic continuationCausalityReal numberBuildingProgram flowchartComputer animationSource code
Normed vector spaceDigital electronicsComputer configurationSource codeComputer configurationSource codeForm (programming)Data conversionFile formatLine (geometry)Computer animationSource codeProgram flowchart
CodeSimulationInstallation artForestQuantum computer2 (number)Key (cryptography)CodeSingle-precision floating-point formatLine (geometry)Computer simulationType theoryForestFront and back endsInstallation artComputer animation
CodeForestInclusion mapInterior (topology)Computer-generated imageryVirtual machineNormed vector spaceQuantum computerCloud computingConnected spaceMachine visionComputer animation
Computer-generated imageryReal numberQuantum computerConnected spaceInternetworkingCodeComputer simulationRouter (computing)Source codeComputer animation
ForestCodeConvex hullResultantQuantum computerComputer simulationFerry CorstenMathematical optimizationLine (geometry)Goodness of fitQueue (abstract data type)QubitCodeMaxima and minimaReal numberAnalytic continuationForestApproximationComputer animationSource code
CodeSimulationForestCASE <Informatik>Classical physicsQuantum computerComputer simulationScripting languageEntire functionMereologyLibrary (computing)VotingSoftware frameworkData conversionSpeciesComputer programmingLevel (video gaming)ComputerFormal languageLaptopExistential quantificationCodeError messageMathematical optimizationComputer animation
Inclusion mapQuantum computerPoint cloudComputer simulationSampling (statistics)Data conversionSoftware frameworkComputerComputer hardwareComputer animation
Point cloudFacebookOpen source
Transcript: English(auto-generated)
Okay, can you hear me? Okay, my name is Peter Korponides from Quantastika. Quantastika is a quantum computing startup from Helsinki, Finland. I'm originally from Serbia.
And today we was, you are listening talks about quantum computing and now something refreshing, we will talk, I will talk about apples and oranges. Okay, that's a joke of course. So I will talk about two things.
First, in first part I will talk about path from quantum computing startup, from open source project to quantum computing startup. That's my path. The reason why I will talk about that is because this is open source conference and most of you I guess are programmers like me.
And the idea is to encourage you to start working in quantum computing space, start contributing, start making your own projects
because it can lead to nice possibly career. Okay, this is first part. In second part I will talk about apples and oranges. In second part I will talk about connecting, running the code on different types of quantum computers
on different brands. For example, running IBM code on Rigetti chip or running Rigetti code on IBM chip and et cetera. So this is the plan, let's continue.
So part one, how it started. Five years ago I read somewhere blog post about quantum computing. That was 2014 or 2015, end of 2014. And I didn't understand what quantum,
what quantum computer, what is that? I never heard for quantum computer before. And I started reading Wikipedia article. Was first I started learning and I found it very interesting, more than interesting. I was, I fall in love with quantum computing.
But I'm just a classical software engineer. I'm not a scientist, I'm not a mathematician, I'm not a physician, physicist. And it was very hard, especially then because now you can find popular books about quantum computing explained on more,
how to say, more simplified, simply explained. In that time there was only scientific papers. Oh, okay, there were some books.
But most of material you can find on internet was scientific papers written by scientists, Nobel Prize winners. When you read that paper, it's really hard. You need to understand math behind.
And so it was not easy, but the passion was strong and I somehow I understood at least basics. I mean, it's hard to say I understand. I know quantum computing because it's very big and challenging field.
But I understand some basics. And then I started coding. I made first open source, first project was quantum circuit simulator implemented in JavaScript. I made it in JavaScript because I simply want to run it in browser.
My mother language is C. My primary language is actually C. But I was coding in JavaScript. It was public, open source. And after some time I realized that IBM is using my code.
They cloned my code. You can see it's included into Qiskit. There is Qiskit JavaScript and there is line initially forked from my repository. So then I was really surprised that big blue IBM is using my code. That was unbelievable.
And that actually tells us that quantum computing is very, very young field. And when you contribute in quantum computing, you are one of the few people in the world who is doing that. And you automatically can make attraction of big companies.
So my code is not something magical. My code was maybe only open source JavaScript simulator. And this is why IBM is cloned. Now that project, their project
is actually stopped, it's archived. Recently they archived it. But my project is still alive. In meantime, I was working on more projects like Quantum Programming Studio. Quantum Programming Studio is a web UI for programming quantum, for making quantum secrets.
Something similar to IBM Q Composer. So drag and drop, you assemble secrets and you can run it on two types of quantum computers. You can run it on Rigetti and IBM quantum computer directly from UI.
And qubit toaster, I name it qubit toaster, maybe funny name, that's a simulator, high performance simulator written in C language. And I believe that we have maybe the fastest simulator in the world on single node, on single machine.
And soon we will have simulator running on cluster and on super computers. So those are projects. And then when I started implementing Quantum Programming Studio, I applied
for a unitary fund, micro grant program. Will Zeng, who is present here in the audience, he is running this project and I won a grant. It was, now it's 4,000 euros, grant of 4,000 euros.
In that time it was 2,000 in two parts. So you need to apply, you apply with your open source project. You send what is your idea and everything and they decide to give you the grant or not.
And I suggest to all of you, if you have some quantum computing project already, to apply for unitary fund because it works. And this gave me actually confidence,
self-confidence that I'm doing something, something valuable and I continued and I launched Quantum Programming Studio in February 2019. Quantum Programming Studio now have more than 800 users,
which is not bad for quantum computing. If it is naked celebrity, we will have eight million users but this is Quantum Programming Studio so 800 users is not bad. Then I decided to make a startup.
First I made it in Estonia because I'm from Serbia and Serbia is not the best place to work with quantum computing. And Estonia was easy because they have that electronic government and I have e-residency so I open company in Estonia.
And later, four months ago actually, I switched to Finland. In Finland I have investor but before that, to say that after I founded the startup shortly,
Quantastika became Rigetti developer partner and Quantum Programming Studio is listed in Rigetti community, in Rigetti QCS as a partner application because Quantum Programming Studio allows you to visually design quantum circuit and to execute it on Rigetti quantum computer.
So you have UI for quantum computer. Then I, investors started, reaching to me and I found nice investor, Ice Baker
from Finland and I actually moved my company to Finland. Then I employed my code contributors. So because the quantum circuit project was open source
and still is open source, my code contributors were first choice to when I was forming the team and I will keep that so contributes
to our open source code and it's possible that we will employ you. And today we have Quantum Programming Studio which is IDE. Then we have language converters and drivers
for popular quantum computing frameworks and we have qubit toaster simulator. So this is our ecosystem and today, because this is open source conference, I will talk about language converters and drivers and here we go, apples and oranges.
So what is the problem today? Each brand of quantum computers has its own language or framework or usually Python framework for programming their chips. IBM have Qiskit and which is Python framework
and they have Qasm which is quantum assembler. Then Google have Cirq, Microsoft have Qsharp. Rigetti have PyQuill, framework for Python and Quill which is kind of assembler
for low-level programming, QPU. And so what is the need? Users are familiar with their framework of preference. So unlike other disciplines in quantum,
in quantum computing, your users are mostly scientists, mathematicians, physicians, et cetera and they are not programmers. They code, of course, but they are not really that skilled, this is not their main skill. And for us programmers,
changing the framework is everyday routine. So there is millions of frameworks and every day you need to learn new framework to implement something. And it's not for users of quantum computing, it's not that easy to switch framework. And if they know Qiskit, tomorrow you will hard force them
to use PyQuill or vice versa. So and other use case for converting between quantum programming languages is if you want to run and compare the same code on different chips or different simulators,
you need to manually write the code. And quantum cloud providers, maybe you know that IBM already have quantum computer in the cloud, Rigetti as well, they have Rigetti quantum cloud service.
Amazon is soon we will have Amazon bracket, Microsoft Azure Quantum. So big players will offer very soon, more and more big players are offering quantum computer in the cloud.
And those providers have different chips connected to their and offered in the cloud. For example, Amazon is using Rigetti quantum computer as a provider for a chip. And now question is how that quantum cloud providers,
which framework they will allow you to use? For example, Amazon when you tomorrow register and open your quantum box,
you have multiple quantum computing chips connected. And what you will use to program that chips. If this is Rigetti, you need to use PyQuill. And what if you are familiar with Qiskit? So you need to switch to new framework, which is for quantum cloud providers, I think it's the best if they offer
to let users to choose whatever framework they want to use, no matter which chip is connected. And we have open source solutions for that, where you can contribute of course. So we have in projects in JavaScript and in Python,
both JavaScript and Python. Why JavaScript? JavaScript is very unusual in quantum computing space. People mostly use Python. But why JavaScript? Because it works in browser.
And if you have code, you don't need to serve your code server side. It executes client side in a browser and it's much more responsive. This is why we have both JavaScript and Python projects.
So this QConvert is a common line tool. There is also web UI and HTTP API written in JavaScript. There is Quantastica QConvert. This is Python package.
It's code converter for Python. And we have Quantastica Qiskit Forest. This allows you to run Qiskit code on Rigetti quantum computer and simulator by replacing only single line of your original Qiskit code.
And Forest backend, it's currently in prototype. It's not public yet and there is no name, official name. So I name it Forest backend. It allows you to run PyQuill on IBM quantum computer and simulator. And so this is our Quantastica GitHub.
Those are projects, open source projects. This is connectivity. You can see that we import, we can import QObject.
QObject is low level format, JSON, which describes quantum circuit. And this is output from Qiskit actually. And that code we import and convert into all formats you see at the right side.
Then we can import QASM, quantum assembler, and we import Quill. Quill is new, very new. Quill parser is very fresh from last week. I couldn't look into Will Zeng's eyes without implementing Quill parser.
So before Forest backend, it was deadline, let's make Quill parser, and it's very useful to have because now we can import code from let's say three formats. And output is from our, and yes,
there is one more input, not on the diagram, is input from our formats and input from quantum programming studio drag and drop tool. And now from when we have it in our internal format,
we export it to QASM, and you can run it on IBM chip or simulator. We also export it back to QObject. So we intercept from Qiskit code, it produces QObject. We convert it to other format,
and from other formats, we convert it back to QObject, which can be executed. Export to Quill and PyQuill. And we support multiple versions of PyQuill. This is Rigetti formats, formats used by Rigetti.
Then export to Google formats, to Cirq framework. Export to Quest. Quest is simulator by Oxford. It's written in, so the code is C++. So it converts to C++, and export to Qsharp,
Microsoft Qsharp. So code can run on Microsoft quantum development kit. They don't have yet quantum computer, but soon they will have Azure quantum in the cloud. Export to Quirk.
Quirk is drag and drop tool, very handy. It runs up to 16 qubits, so we can export into that format as well. And export to our own formats and export simply drawing into vector or bitmap formats. So this is connectivity diagram,
and this is QConvert. This is common line tool written in JavaScript, so you install it from NPM, NPM install QConvert, and you can see the usage. So QConvert input file source format.
It doesn't automatically detect source format, so you need to tell this is chasm or this is quill. Output file and destination format, and it can also generate the Jupyter notebook, which is handy. You don't need to copy paste. You can directly generate Jupyter notebook.
Nothing more to tell about QConvert. So there is a UI. I can show you live, demonstrate how it works. So here you can type the code.
In left side, you choose chasm, quill, or you can also import unitary matrix. Let's say quill, and use, for example, C, not, two, three,
and at the right side, it generates code. For example, let's show Qsharp. So at left side, you type quill. At right side, you have Microsoft Qsharp, or you can have a drawing. For example, it automatically updates as you type,
and you can download, and of course, you can download directly, you can download Jupyter notebook. Okay, let's continue.
Excuse me. Okay, so QConvert is fresh, very fresh, and very untested, but it works,
and we accept pull requests. So this is usage, few lines. So from Quantastica, import QConvert, and then you have converter. So you can use it as, you have source code
in some variable. You can say QConvert convert from which format. You give it source code into which format, and some options, and you get the text converted language. Easy to use.
Then there is Forest backend for Qiskit. It allows you to run Qiskit code on the Getty quantum computer or simulator by replacing only a single line of code. So how you do it, pip install Quantastica Qiskit Forest, and from Quantastica, you import that package,
and instead writing this backend, a line, you type forest backend, get backend, and your Qiskit code will execute on Rigetti chip. Now my intention, I reserved block,
I reserved quantum computer, 15 minutes of quantum computer in Rigetti quantum cloud services. Let me see. Yes, so my reservation is active now.
554, yes, next few minutes, next 10 minutes. Problem is that something is not working. I think because the connection, because the internet connection,
some port is closed on router here, so my intention was to run Qiskit code on Rigetti real quantum computer in front of your eyes, but unfortunately, that didn't work, but I will run on simulator. So I prepared, let me see.
Okay, so this is Qiskit, Jupyter notebook, Qiskit from popular Qiskit textbook. This is quantum approximate optimization for solving max cut problem.
And I will simply, so this is original code, and somewhere here is, so here is the code which executes this on local simulator.
Now I will run entire notebook, and we have some results here, okay. And now I will switch to, I will switch to Rigetti. So this is IBM Qiskit code which executes
on custom simulator, ships with Qiskit. Now just comment that line, import our forest backend, and say instead this line, say this one. So forest backend, get backend five qubit QVM, and run.
And it executes and gives the same results. So, and it also works on real quantum computer, not only on simulator, but unfortunately
I was not able to show you. Okay, let's continue. Yes, demonstration, that was demonstration. And that's all from me. Thank you for your attention.
Now that rotten tomatoes you prepared, you can drop now, I'm ready. And if you have any questions, please ask.
I'm ready to answer. So I have a question about this QConverter. So when you translate various ways of writing down quantum computing, are they always compatible?
So is it always easy or possible to turn one script into the other, or are there cases when there's errors because you cannot turn it, or even worse, when something's almost like, but it's not exactly? I'm not sure that I understood the question, so can you please? Okay, so maybe in other way, in QConverter,
is it always possible to turn one script into the other, or sometimes there are some instructions which are not supported by the other language? Well, it converts low-level quantum,
so it doesn't convert entire Qiskit into PyQuill, for example. It converts only quantum secrets because in quantum program, you have classical part and quantum part. Classical part is optimization and other things you normally do, classical program, and the quantum part, the quantum secret,
which executes on simulator or on quantum computer, this is what we convert. So we don't convert entire, for example, entire Jupyter notebook into another spice of PyQuill or of Python into another framework. We just convert low-level quantum secret.
If this is, that was the question. It's hard to convert, for example, we tried to parse Python and to convert Qiskit into PyQuill, but it doesn't go well. Simply, you cannot do that because the code
relies on other libraries and packages from Qiskit, so in that case, we will need to convert entire Qiskit into PyQuill, and I mean, it doesn't work, if that was your question.
Coming up. Thank you. Since you have such a overview of all the different frameworks, do you think you can comment if there's already
like a framework you would prefer from the standpoint of formulating and then using the converter to get into the framework which is actually used by the hardware or the implementation? Yes, idea is that users, for example, of quantum cloud or whatever you do
with quantum computer or quantum simulator, even if you are experimenting at home, to use your framework of preference with any chip.
Any other questions? If not, let's thank the speaker.