{"id":2646,"date":"2018-08-15T13:36:28","date_gmt":"2018-08-15T12:36:28","guid":{"rendered":"https:\/\/www.quantum-bits.org\/?p=2646"},"modified":"2022-08-12T17:14:48","modified_gmt":"2022-08-12T16:14:48","slug":"on-cloud-based-quantum-computing","status":"publish","type":"post","link":"https:\/\/www.quantum-bits.org\/?p=2646","title":{"rendered":"On cloud-based quantum computing"},"content":{"rendered":"<p>Cloud-based quantum computing is the invocation of quantum emulators, simulators or processors through the <a href=\"https:\/\/en.wikipedia.org\/wiki\/Cloud_computing\" target=\"_blank\" rel=\"noopener\">cloud<\/a>. Increasingly, cloud services are being looked on as the method for providing access to quantum processing.<\/p>\n<p>Cloud-based quantum computing can be used in several contexts, such as:<\/p>\n<ul>\n<li><strong>Teaching<\/strong>: teachers can use cloud-based quantum computing to help their students better understand quantum mechanics, as well as implement and test quantum algorithms;<\/li>\n<li><strong>Research<\/strong>: scientists can use cloud-based quantum resources to test quantum information theories,perform experiments, &#8230;<\/li>\n<\/ul>\n<p>Major actors are prepping their solutions. We introduced in <a href=\"https:\/\/www.quantum-bits.org\/?p=1785\">previous<\/a> <a href=\"https:\/\/www.quantum-bits.org\/?p=1857\" target=\"_blank\" rel=\"noopener\">posts<\/a> Microsoft&#8217;s Quantum Development Kit and Q#, capable of processing on a simulator up to 32 qubits locally and up to 40 qubits on the <a title=\"Microsoft Azure\" href=\"https:\/\/en.wikipedia.org\/wiki\/Microsoft_Azure\" target=\"_blank\" rel=\"noopener\">Azure<\/a> Cloud. Microsoft is aiming at cloud services based on real life <a href=\"https:\/\/www.quantum-bits.org\/?p=2226\" target=\"_blank\" rel=\"noopener\">topological quantum computers<\/a> available (hopefully) in a close future.<\/p>\n<p>We introduced the Strawberry Field software platform for continuous variable quantum optical circuits in our previous post on <a href=\"https:\/\/www.quantum-bits.org\/?p=2513\" target=\"_blank\" rel=\"noopener\">photonic quantum computing<\/a>.<\/p>\n<p>In this post, we will have a look at <a href=\"https:\/\/en.wikipedia.org\/wiki\/IBM\" target=\"_blank\" rel=\"noopener\">Big Blue<\/a>&#8216;s solutions: <a href=\"https:\/\/quantumexperience.ng.bluemix.net\/qx\" target=\"_blank\" rel=\"noopener\">IBM Q &gt; Experience<\/a> is a cloud-based platform that gives users access to a set of <strong>actual quantum processors<\/strong>.<\/p>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"aligncenter wp-image-1612\" src=\"https:\/\/www.quantum-bits.org\/wp-content\/uploads\/2018\/03\/quantum-physics-formulas-over-blackboard.jpg\" alt=\"\" width=\"850\" height=\"332\" srcset=\"https:\/\/www.quantum-bits.org\/wp-content\/uploads\/2018\/03\/quantum-physics-formulas-over-blackboard.jpg 768w, https:\/\/www.quantum-bits.org\/wp-content\/uploads\/2018\/03\/quantum-physics-formulas-over-blackboard-300x117.jpg 300w\" sizes=\"(max-width: 850px) 100vw, 850px\" \/><\/p>\n<p><strong>Open QASM<\/strong><\/p>\n<p>The <strong>Open Quantum Assembly Language<\/strong> (or Open QASM) is an <a href=\"https:\/\/en.wikipedia.org\/wiki\/Intermediate_representation\" target=\"_blank\" rel=\"noopener\">intermediate representation<\/a> for quantum instructions. Its source code was released as part of IBM&#8217;s Quantum Information Software Kit (QISKit) for use with their IBM Q Experience cloud quantum computing platform. It is a simple language for describing acyclic quantum circuits composed of single or mutliple qubits and single or multiple quantum gates.<\/p>\n<p>IBM&#8217;s model of program execution does not allow fully general classical computations in the loop with quantum computations because <em>qubits remain coherent for a limited time<\/em>. Quantum programs are broken into distinct circuits whose quantum outputs cannot be carried over into the next circuit.<\/p>\n<p>Classical computation is done between quantum circuit execution. Indeed, generally speaking, quantum programs require a coordination between the quantum and classical parts of the computation. Let&#8217;s identify the different phases needed to process such a general quantum program:<\/p>\n<ol>\n<li><strong>Compilation<\/strong>: this <em>offline<\/em> phase takes place on a <em>classical<\/em> computer. The input is a source code describing a quantum algorithm. The output is a combined quantum\/classical program expressed using a high level Intermediate Representation (IR);<\/li>\n<li><strong>Circuit generation<\/strong>: this <em>online<\/em> phase takes place on a <em>classical<\/em> computer (as some interaction with the quantum computer may occur). The input is a quantum\/classical program expressed using a high level IR. The output is a collection of quantum circuits together with associated classical control instructions and classical object code needed at run-time. The output of circuit generation is expressed using a quantum circuit IR.<\/li>\n<li><strong>Execution<\/strong>: the execution phase takes place on a <em>quantum<\/em> computer in real-time environment. The input comes from the previous phase and is processed by a high-level controller (a <a href=\"https:\/\/en.wikipedia.org\/wiki\/Virtual_machine\" target=\"_blank\" rel=\"noopener\">virtual machine<\/a>) into a stream of real-time instructions in a low-level format that corresponds to <em>physical<\/em> operations.&nbsp;The output of circuit execution is a collection of processed measurement results.<\/li>\n<li><strong>Post-processing<\/strong>: this last phase takes place on a <em>classical<\/em> computer all real-time processing is complete.&nbsp; The output is intermediate results for further circuit generation and\/or the final result of the quantum computation.<\/li>\n<\/ol>\n<p>The syntax of the human-readable form of Open QASM has elements of C and assembly languages. Open QASM generic grammar goes as follows:<\/p>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"aligncenter size-full wp-image-2656\" src=\"https:\/\/www.quantum-bits.org\/wp-content\/uploads\/2018\/07\/qasm-grammar.png\" alt=\"\" width=\"587\" height=\"682\" srcset=\"https:\/\/www.quantum-bits.org\/wp-content\/uploads\/2018\/07\/qasm-grammar.png 587w, https:\/\/www.quantum-bits.org\/wp-content\/uploads\/2018\/07\/qasm-grammar-258x300.png 258w\" sizes=\"(max-width: 587px) 100vw, 587px\" \/><\/p>\n<p>Namely, Open QASM language statements are:<\/p>\n<table width=\"450\" cellspacing=\"0\" cellpadding=\"0\" border=\"1\">\n<tbody>\n<tr style=\"border-top: none !important;\">\n<td style=\"text-align: center; border-top: none !important;\"><b>Statement<\/b><\/td>\n<td style=\"text-align: left; border-top: none !important;\"><b>Description<\/b><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left; font-family: monospace;\">OPENQASM 2.0;<\/td>\n<td style=\"text-align: left;\">Denote a file in Open QASM format<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left; font-family: monospace;\">creg name[size];<\/td>\n<td style=\"text-align: left;\">Declare a named register of qubits<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left; font-family: monospace;\">creg name[size];<\/td>\n<td style=\"text-align: left;\">Declare a named register of bits<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left; font-family: monospace;\">include &#8220;filename&#8221;;<\/td>\n<td style=\"text-align: left;\">Open and parse another source file<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left; font-family: monospace;\">gate name(params) qargs { body }<\/td>\n<td style=\"text-align: left;\">Declare a unitary gate<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left; font-family: monospace;\">opaque name(params) qargs;<\/td>\n<td style=\"text-align: left;\">Declare an opaque gate<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left; font-family: monospace;\">\/\/ comment text<\/td>\n<td style=\"text-align: left;\">Comment a line of text<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left; font-family: monospace;\">U(theta,phi,lambda) qubit|qreg;<\/td>\n<td style=\"text-align: left;\">Apply built-in single qubit gate(s)<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left; font-family: monospace;\">CX qubit|qreg,qubit|qreg;<\/td>\n<td style=\"text-align: left;\">Apply built-in CNOT gate(s)<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left; font-family: monospace;\">measure qubit|qreg -&gt; bit|creg;<\/td>\n<td style=\"text-align: left;\">Make measurement(s) in Z basis<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left; font-family: monospace;\">reset qubit|qreg;<\/td>\n<td style=\"text-align: left;\">Prepare qubit(s) in |0i<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left; font-family: monospace;\">gatename(params) qargs;<\/td>\n<td style=\"text-align: left;\">Apply a user-defined unitary gate<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left; font-family: monospace;\">if(creg==int) qop;<\/td>\n<td style=\"text-align: left;\">Conditionally apply quantum operation<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left; font-family: monospace;\">barrier qargs;<\/td>\n<td style=\"text-align: left;\">Prevent transformations across this source line<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Based on these statements, the Quantum Experience standard header (&#8220;<span style=\"font-family: =;\">qelib1.inc&#8221;<\/span>) defines common gates such as Hadamard, Pauli X,Y,Z, Rotation X,Y,Z, Toffoli, etc.&nbsp; A typical Open QASM quantum teleportation algorithm reads :<\/p>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"aligncenter size-full wp-image-2664\" src=\"https:\/\/www.quantum-bits.org\/wp-content\/uploads\/2018\/07\/qasm-teleport.png\" alt=\"\" width=\"1097\" height=\"512\" srcset=\"https:\/\/www.quantum-bits.org\/wp-content\/uploads\/2018\/07\/qasm-teleport.png 1097w, https:\/\/www.quantum-bits.org\/wp-content\/uploads\/2018\/07\/qasm-teleport-300x140.png 300w, https:\/\/www.quantum-bits.org\/wp-content\/uploads\/2018\/07\/qasm-teleport-768x358.png 768w, https:\/\/www.quantum-bits.org\/wp-content\/uploads\/2018\/07\/qasm-teleport-1024x478.png 1024w\" sizes=\"(max-width: 1097px) 100vw, 1097px\" \/><\/p>\n<p>Detailed description of the language is available in IBM&#8217;s <a href=\"https:\/\/arxiv.org\/pdf\/1707.03429.pdf\" target=\"_blank\" rel=\"noopener\">2017 paper<\/a> [PDF} and on <a href=\"https:\/\/github.com\/Qiskit\/openqasm\/blob\/master\/spec\/qasm2.rst\" target=\"_blank\" rel=\"noopener\">GitHub<\/a>.<\/p>\n<p><strong>QISKit<\/strong><\/p>\n<p>IBM&#8217;s Quantum Information Software Kit (QISKit) is an open-source quantum computing framework, sitting on top of Open QASM, which sits on top of the hardware. Its goal is to be accessible to people with many backgrounds: quantum researchers and other scientists, teachers, developers, and general tech enthusiasts.<\/p>\n<p>QISKit is a collection of software for working with short depth quantum circuits and building near term applications and experiments on quantum computers. In QISKit, a quantum program is an array of quantum circuits. The program workflow consists of three stages:<\/p>\n<ol>\n<li><strong>Build<\/strong> allows you to make different quantum circuits that represent the problem you are solving.<\/li>\n<li><strong>Compile<\/strong> allows you to rewrite them to run on different backends (simulators or real quantum chips)<\/li>\n<li><strong>Run<\/strong> launches the jobs. After the jobs have been run, the data is collected.<\/li>\n<\/ol>\n<p><a href=\"https:\/\/github.com\/Qiskit\" target=\"_blank\" rel=\"noopener\">QISKit<\/a> consists of four foundational \u2018elements\u2019:<\/p>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"aligncenter wp-image-2676\" src=\"https:\/\/www.quantum-bits.org\/wp-content\/uploads\/2018\/07\/qiskit.png\" alt=\"\" width=\"450\" height=\"250\" srcset=\"https:\/\/www.quantum-bits.org\/wp-content\/uploads\/2018\/07\/qiskit.png 856w, https:\/\/www.quantum-bits.org\/wp-content\/uploads\/2018\/07\/qiskit-300x167.png 300w, https:\/\/www.quantum-bits.org\/wp-content\/uploads\/2018\/07\/qiskit-768x427.png 768w\" sizes=\"(max-width: 450px) 100vw, 450px\" \/><\/p>\n<ul>\n<li><strong>Terra<\/strong>: QISKit Terra, the \u2018earth\u2019 element, is the foundation on which the rest of the software lies. It provides the foundational roots for our software stack. Within Terra is a set of tools for composing quantum programs at the level of circuits and pulses, optimizing them for the constraints of a particular physical quantum processor, and managing the batched execution of experiments on remote-access backends. Terra is <a href=\"https:\/\/github.com\/Qiskit\/qiskit-terra\" target=\"_blank\" rel=\"noopener\">available on GitHub<\/a>.&nbsp;<br \/>\n&nbsp;<\/li>\n<li><strong>Aqua<\/strong>: QISKit Aqua, the \u2018water\u2019 element, is the element of life. To make quantum computing live up to its expectations, one needs to find real-world applications. Aqua is where algorithms for noisy intermediate-scale quantum computers are built. These algorithms can be used to build applications for quantum computing. It is accessible to domain experts in chemistry, optimization or AI, who want to explore the benefits of using quantum computers as accelerators for specific computational tasks, without needing to worry about how to translate the problem into the language of quantum machines. Aqua is <a href=\"https:\/\/github.com\/Qiskit\/aqua\" target=\"_blank\" rel=\"noopener\">available on GitHub<\/a>.<br \/>\n&nbsp;<\/li>\n<li><strong>Ignis<\/strong>: QISKit Ignis, the \u2018fire\u2019 element, is dedicated to fighting noise and errors. This includes better characterization of errors, improving gates, and computing in the presence of noise. Ignis is meant for those who want to design quantum error correction codes, or who wish to study ways to characterize errors through methods such as tomography, or even to find a better way for using gates by exploring dynamical decoupling and optimal control. At the time of writing, <em>Ignis is not yet released<\/em> (though part of the code is included into Terra libraries).<br \/>\n&nbsp;<\/li>\n<li><strong>Aer<\/strong>: QISKit Aer, the \u2018air\u2019 element, permeates all Qiskit elements. To speed up development of quantum computers one needs better simulators, emulators and debuggers. <em>Aer is not yet released<\/em>. It will help us understand the limits of classical processors by demonstrating to what extent they can mimic quantum computation.<\/li>\n<\/ul>\n<p>QISKit&#8217;s documentation is available <a href=\"https:\/\/qiskit.org\/documentation\/dev_introduction.html\" target=\"_blank\" rel=\"noopener\">online<\/a>.<\/p>\n<p><strong>Quantum Composer<\/strong><\/p>\n<p>The Quantum Composer sits on top of QISKit. It is a graphic user interface designed to allow users to construct various quantum algorithms or run other quantum experiments. Users may see the results of their quantum algorithms by either running it on a real quantum processor and using &#8220;units&#8221; or by using a simulator.<\/p>\n<p>Algorithms developed in the Quantum Composer are referred to as a &#8220;quantum score&#8221;. In such a quantum score, just as with music, time progresses from left to right. Each line represents a qubit (as well as what happens to that qubit over time). A quantum circuit begins by preparing the qubits in well-defined states (<img src='https:\/\/s0.wp.com\/latex.php?latex=%7C0%5Crangle&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='|0\\rangle' title='|0\\rangle' class='latex' \/> in the picture below), then executing a series of quantum gates in time from left to right:<\/p>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"aligncenter wp-image-2679 size-full\" src=\"https:\/\/www.quantum-bits.org\/wp-content\/uploads\/2018\/08\/quantum-score.png\" alt=\"\" width=\"731\" height=\"153\" srcset=\"https:\/\/www.quantum-bits.org\/wp-content\/uploads\/2018\/08\/quantum-score.png 731w, https:\/\/www.quantum-bits.org\/wp-content\/uploads\/2018\/08\/quantum-score-300x63.png 300w\" sizes=\"(max-width: 731px) 100vw, 731px\" \/><\/p>\n<p>Quantum gates are represented by square boxes on the score. Once the score is populated with the required gates, the quantum algorithm can be ran either on a simulator or on a real quantum processor. Each circuit must end with a measurement gate in order to run the experiment:<\/p>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"aligncenter size-full wp-image-2681\" src=\"https:\/\/www.quantum-bits.org\/wp-content\/uploads\/2018\/08\/quantum-score-gate.png\" alt=\"\" width=\"726\" height=\"176\" srcset=\"https:\/\/www.quantum-bits.org\/wp-content\/uploads\/2018\/08\/quantum-score-gate.png 726w, https:\/\/www.quantum-bits.org\/wp-content\/uploads\/2018\/08\/quantum-score-gate-300x73.png 300w\" sizes=\"(max-width: 726px) 100vw, 726px\" \/><\/p>\n<p>As an example, a simple bit-flip X gate is represented below both on the Bloch sphere and on the quantum score:<\/p>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"aligncenter size-full wp-image-2683\" src=\"https:\/\/www.quantum-bits.org\/wp-content\/uploads\/2018\/08\/quantum-score-gate-bit-flip.png\" alt=\"\" width=\"657\" height=\"434\" srcset=\"https:\/\/www.quantum-bits.org\/wp-content\/uploads\/2018\/08\/quantum-score-gate-bit-flip.png 657w, https:\/\/www.quantum-bits.org\/wp-content\/uploads\/2018\/08\/quantum-score-gate-bit-flip-300x198.png 300w\" sizes=\"(max-width: 657px) 100vw, 657px\" \/><\/p>\n<p>Likewise, a Hadamard gate would be:<\/p>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"aligncenter size-full wp-image-2684\" src=\"https:\/\/www.quantum-bits.org\/wp-content\/uploads\/2018\/08\/quantum-score-gate-hadamard.png\" alt=\"\" width=\"657\" height=\"434\" srcset=\"https:\/\/www.quantum-bits.org\/wp-content\/uploads\/2018\/08\/quantum-score-gate-hadamard.png 657w, https:\/\/www.quantum-bits.org\/wp-content\/uploads\/2018\/08\/quantum-score-gate-hadamard-300x198.png 300w\" sizes=\"(max-width: 657px) 100vw, 657px\" \/><\/p>\n<p>For a typical quantum state <a href=\"https:\/\/www.quantum-bits.org\/?p=1785\" target=\"_blank\" rel=\"noopener\">superposition<\/a>, one would have use both gates :<\/p>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"aligncenter size-full wp-image-2685\" src=\"https:\/\/www.quantum-bits.org\/wp-content\/uploads\/2018\/08\/quantum-score-gate-superoposition.png\" alt=\"\" width=\"672\" height=\"291\" srcset=\"https:\/\/www.quantum-bits.org\/wp-content\/uploads\/2018\/08\/quantum-score-gate-superoposition.png 672w, https:\/\/www.quantum-bits.org\/wp-content\/uploads\/2018\/08\/quantum-score-gate-superoposition-300x130.png 300w\" sizes=\"(max-width: 672px) 100vw, 672px\" \/><\/p>\n<p>And the resulting measurements would read:<\/p>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"aligncenter size-full wp-image-2686\" src=\"https:\/\/www.quantum-bits.org\/wp-content\/uploads\/2018\/08\/quantum-score-results.png\" alt=\"\" width=\"696\" height=\"183\" srcset=\"https:\/\/www.quantum-bits.org\/wp-content\/uploads\/2018\/08\/quantum-score-results.png 696w, https:\/\/www.quantum-bits.org\/wp-content\/uploads\/2018\/08\/quantum-score-results-300x79.png 300w\" sizes=\"(max-width: 696px) 100vw, 696px\" \/><\/p>\n<p>For multi-qubit gates, it is possible to add lines on the quantum score (a CNOT gate for example):<\/p>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"aligncenter size-full wp-image-2687\" src=\"https:\/\/www.quantum-bits.org\/wp-content\/uploads\/2018\/08\/quantum-score-cnot.png\" alt=\"\" width=\"582\" height=\"88\" srcset=\"https:\/\/www.quantum-bits.org\/wp-content\/uploads\/2018\/08\/quantum-score-cnot.png 582w, https:\/\/www.quantum-bits.org\/wp-content\/uploads\/2018\/08\/quantum-score-cnot-300x45.png 300w\" sizes=\"(max-width: 582px) 100vw, 582px\" \/><\/p>\n<p>The Open QASM code corresponding to each score is accessible right from the composer and can be edited. Conversely Open QASM code can be visualized as quantum score from the composer:<\/p>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"aligncenter size-full wp-image-2688\" src=\"https:\/\/www.quantum-bits.org\/wp-content\/uploads\/2018\/08\/quantum-score-and-qasm.png\" alt=\"\" width=\"668\" height=\"195\" srcset=\"https:\/\/www.quantum-bits.org\/wp-content\/uploads\/2018\/08\/quantum-score-and-qasm.png 668w, https:\/\/www.quantum-bits.org\/wp-content\/uploads\/2018\/08\/quantum-score-and-qasm-300x88.png 300w\" sizes=\"(max-width: 668px) 100vw, 668px\" \/><\/p>\n<p><strong>Available qubit processors<\/strong><\/p>\n<p>At the time of writing, <a title=\"Transmon\" href=\"https:\/\/en.wikipedia.org\/wiki\/Transmon\" target=\"_blank\" rel=\"noopener\">transmon<\/a> qubit processors, located at the <a title=\"IBM Research\" href=\"https:\/\/en.wikipedia.org\/wiki\/IBM_Research\" target=\"_blank\" rel=\"noopener\">IBM Research<\/a> headquarters at the <a title=\"\" href=\"https:\/\/en.wikipedia.org\/wiki\/Thomas_J._Watson_Research_Center\" target=\"_blank\" rel=\"noopener\">Thomas J. Watson Research Center<\/a> can be used as backend:<\/p>\n<ul>\n<li>IBM Q5 computers <a href=\"https:\/\/github.com\/Qiskit\/qiskit-backend-information\/tree\/master\/backends\/tenerife\/V1\" target=\"_blank\" rel=\"noopener\">Tenerife<\/a> and <a href=\"https:\/\/github.com\/Qiskit\/qiskit-backend-information\/tree\/master\/backends\/yorktown\/V1\" target=\"_blank\" rel=\"noopener\">Yorktown<\/a> (5-qubit processors);<\/li>\n<li>IBM Q16 computer&nbsp;<a href=\"https:\/\/github.com\/Qiskit\/qiskit-backend-information\/tree\/master\/backends\/rueschlikon\/V1\" target=\"_blank\" rel=\"noopener\">Rueschlikon&nbsp;<\/a> (16-qubit processor)<\/li>\n<\/ul>\n<p>In the following screenshot, a score for <a href=\"https:\/\/en.wikipedia.org\/wiki\/Grover%27s_algorithm\" target=\"_blank\" rel=\"noopener\">Grover&#8217;s algorithm<\/a> (N=2) has been written down. The corresponding Open QASM code can be ran on IBM Q5 Tenerife (Yorktown being down for maintenance at the time of writing):<\/p>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"aligncenter size-full wp-image-2689\" src=\"https:\/\/www.quantum-bits.org\/wp-content\/uploads\/2018\/08\/quantum-score-grover.png\" alt=\"\" width=\"983\" height=\"766\" srcset=\"https:\/\/www.quantum-bits.org\/wp-content\/uploads\/2018\/08\/quantum-score-grover.png 983w, https:\/\/www.quantum-bits.org\/wp-content\/uploads\/2018\/08\/quantum-score-grover-300x234.png 300w, https:\/\/www.quantum-bits.org\/wp-content\/uploads\/2018\/08\/quantum-score-grover-768x598.png 768w\" sizes=\"(max-width: 983px) 100vw, 983px\" \/><\/p>\n<p><span style=\"font-size: 8pt;\">Note: to speedup the writing process, a few paragraphs and illustrations of this post were extracted from IBM&#8217;s Q &gt; Experience documentation.<\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Cloud-based quantum computing is the invocation of quantum emulators, simulators or processors through the cloud. Increasingly, cloud services are being looked on as the method for providing access to quantum &#8230;<\/p>\n","protected":false},"author":1,"featured_media":3846,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"ngg_post_thumbnail":0},"categories":[6],"tags":[],"_links":{"self":[{"href":"https:\/\/www.quantum-bits.org\/index.php?rest_route=\/wp\/v2\/posts\/2646"}],"collection":[{"href":"https:\/\/www.quantum-bits.org\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.quantum-bits.org\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.quantum-bits.org\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.quantum-bits.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=2646"}],"version-history":[{"count":0,"href":"https:\/\/www.quantum-bits.org\/index.php?rest_route=\/wp\/v2\/posts\/2646\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.quantum-bits.org\/index.php?rest_route=\/wp\/v2\/media\/3846"}],"wp:attachment":[{"href":"https:\/\/www.quantum-bits.org\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=2646"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.quantum-bits.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=2646"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.quantum-bits.org\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=2646"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}