Skip to content

Commit fd0de07

Browse files
Docs preview for PR #2660.
1 parent fafb167 commit fd0de07

File tree

108 files changed

+609
-20
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

108 files changed

+609
-20
lines changed

pr-2660/_images/qpus.png

315 KB
Loading

pr-2660/_sources/api/languages/cpp_api.rst.txt

+3-1
Original file line numberDiff line numberDiff line change
@@ -218,7 +218,9 @@ Platform
218218

219219
.. doxygenclass:: cudaq::FermioniqBaseQPU
220220

221-
.. doxygenclass:: cudaq::OrcaRemoteRESTQPU
221+
.. doxygenclass:: cudaq::OrcaRemoteRESTQPU
222+
223+
.. doxygenclass:: cudaq::PasqalBaseQPU
222224

223225
.. doxygenclass:: cudaq::QuEraBaseQPU
224226

pr-2660/_sources/using/backends/hardware/neutralatom.rst.txt

+79
Original file line numberDiff line numberDiff line change
@@ -130,6 +130,85 @@ Submitting
130130

131131

132132

133+
Pasqal
134+
++++++++++++++++
135+
136+
Pasqal is a quantum computing hardware company that builds quantum processors from ordered neutral atoms in 2D and 3D
137+
arrays to bring a practical quantum advantage to its customers and address real-world problems.
138+
The currently available Pasqal QPUs are analog quantum computers, and one, named Fresnel, is available through our cloud
139+
portal.
140+
141+
In order to access Pasqal's devices you need an account for `Pasqal's cloud platform <https://portal.pasqal.cloud>`__
142+
and an active project. Although a different interface, `Pasqal's Pulser library <https://pulser.readthedocs.io/en/latest/>`__, is a good
143+
resource for getting started with analog neutral atom quantum computing. For support you can also use `Pasqal Community <https://community.pasqal.com/>`__.
144+
145+
146+
.. _pasqal-backend:
147+
148+
Setting Credentials
149+
```````````````````
150+
151+
An authentication token for the session must be obtained from Pasqal's cloud platform.
152+
For example from Python one can use the `pasqal-cloud package <https://github.com/pasqal-io/pasqal-cloud>`__ as below:
153+
154+
.. code:: python
155+
156+
from pasqal_cloud import SDK
157+
import os
158+
159+
sdk = SDK(
160+
username=os.environ.get['PASQAL_USERNAME'],
161+
password=os.environ.get('PASQAL_PASSWORD', None)
162+
)
163+
164+
token = sdk._client.authenticator.token_provider.get_token()
165+
os.environ['PASQAL_AUTH_TOKEN'] = str(token)
166+
os.environ['PASQAL_PROJECT_ID'] = 'your project id'
167+
168+
Alternatively, users can set the following environment variables directly.
169+
170+
.. code:: bash
171+
172+
export PASQAL_AUTH_TOKEN=<>
173+
export PASQAL_PROJECT_ID=<>
174+
175+
176+
Submission from Python
177+
`````````````````````````
178+
179+
The target to which quantum kernels are submitted
180+
can be controlled with the ``cudaq::set_target()`` function.
181+
182+
.. code:: python
183+
184+
cudaq.set_target('pasqal')
185+
186+
187+
Due to the nature of the underlying hardware, this target only supports the
188+
``evolve`` and ``evolve_async`` APIs.
189+
The `hamiltonian` must be an `Operator` of the type `RydbergHamiltonian`. Only
190+
other parameters supported are `schedule` (mandatory) and `shots_count` (optional).
191+
192+
For example,
193+
194+
.. code:: python
195+
196+
evolution_result = evolve(RydbergHamiltonian(atom_sites=register,
197+
amplitude=omega,
198+
phase=phi,
199+
delta_global=delta),
200+
schedule=schedule)
201+
202+
The number of shots for a kernel execution can be set through the ``shots_count``
203+
argument to ``evolve`` or ``evolve_async``. By default, the ``shots_count`` is
204+
set to 100.
205+
206+
.. code:: python
207+
208+
cudaq.evolve(RydbergHamiltonian(...), schedule=s, shots_count=1000)
209+
210+
To see a complete example for using Pasqal's backend, take a look at our :doc:`Python examples <../../examples/hardware_providers>`.
211+
133212

134213
QuEra Computing
135214
++++++++++++++++

pr-2660/_sources/using/examples/hardware_providers.rst.txt

+12-1
Original file line numberDiff line numberDiff line change
@@ -114,7 +114,18 @@ This experiment is performed on ORCA's backends by the code below.
114114

115115
.. literalinclude:: ../../targets/cpp/orca.cpp
116116
:language: cpp
117-
117+
118+
Pasqal
119+
==================================
120+
121+
The following code illustrates how to run kernels on Pasqal's backends.
122+
123+
.. tab:: Python
124+
125+
.. literalinclude:: ../../targets/python/pasqal.py
126+
:language: python
127+
128+
118129
Quantinuum
119130
==================================
120131

pr-2660/api/api.html

+2
Original file line numberDiff line numberDiff line change
@@ -188,6 +188,7 @@
188188
<li class="toctree-l3"><a class="reference internal" href="../using/examples/hardware_providers.html#iqm">IQM</a></li>
189189
<li class="toctree-l3"><a class="reference internal" href="../using/examples/hardware_providers.html#oqc">OQC</a></li>
190190
<li class="toctree-l3"><a class="reference internal" href="../using/examples/hardware_providers.html#orca-computing">ORCA Computing</a></li>
191+
<li class="toctree-l3"><a class="reference internal" href="../using/examples/hardware_providers.html#pasqal">Pasqal</a></li>
191192
<li class="toctree-l3"><a class="reference internal" href="../using/examples/hardware_providers.html#quantinuum">Quantinuum</a></li>
192193
<li class="toctree-l3"><a class="reference internal" href="../using/examples/hardware_providers.html#quera-computing">QuEra Computing</a></li>
193194
</ul>
@@ -389,6 +390,7 @@
389390
</li>
390391
<li class="toctree-l3"><a class="reference internal" href="../using/backends/hardware/neutralatom.html"> Neutral Atom QPUs</a><ul>
391392
<li class="toctree-l4"><a class="reference internal" href="../using/backends/hardware/neutralatom.html#infleqtion">Infleqtion</a></li>
393+
<li class="toctree-l4"><a class="reference internal" href="../using/backends/hardware/neutralatom.html#pasqal">Pasqal</a></li>
392394
<li class="toctree-l4"><a class="reference internal" href="../using/backends/hardware/neutralatom.html#quera-computing">QuEra Computing</a></li>
393395
</ul>
394396
</li>

pr-2660/api/default_ops.html

+2
Original file line numberDiff line numberDiff line change
@@ -190,6 +190,7 @@
190190
<li class="toctree-l3"><a class="reference internal" href="../using/examples/hardware_providers.html#iqm">IQM</a></li>
191191
<li class="toctree-l3"><a class="reference internal" href="../using/examples/hardware_providers.html#oqc">OQC</a></li>
192192
<li class="toctree-l3"><a class="reference internal" href="../using/examples/hardware_providers.html#orca-computing">ORCA Computing</a></li>
193+
<li class="toctree-l3"><a class="reference internal" href="../using/examples/hardware_providers.html#pasqal">Pasqal</a></li>
193194
<li class="toctree-l3"><a class="reference internal" href="../using/examples/hardware_providers.html#quantinuum">Quantinuum</a></li>
194195
<li class="toctree-l3"><a class="reference internal" href="../using/examples/hardware_providers.html#quera-computing">QuEra Computing</a></li>
195196
</ul>
@@ -391,6 +392,7 @@
391392
</li>
392393
<li class="toctree-l3"><a class="reference internal" href="../using/backends/hardware/neutralatom.html"> Neutral Atom QPUs</a><ul>
393394
<li class="toctree-l4"><a class="reference internal" href="../using/backends/hardware/neutralatom.html#infleqtion">Infleqtion</a></li>
395+
<li class="toctree-l4"><a class="reference internal" href="../using/backends/hardware/neutralatom.html#pasqal">Pasqal</a></li>
394396
<li class="toctree-l4"><a class="reference internal" href="../using/backends/hardware/neutralatom.html#quera-computing">QuEra Computing</a></li>
395397
</ul>
396398
</li>

pr-2660/api/languages/cpp_api.html

+9-1
Original file line numberDiff line numberDiff line change
@@ -188,6 +188,7 @@
188188
<li class="toctree-l3"><a class="reference internal" href="../../using/examples/hardware_providers.html#iqm">IQM</a></li>
189189
<li class="toctree-l3"><a class="reference internal" href="../../using/examples/hardware_providers.html#oqc">OQC</a></li>
190190
<li class="toctree-l3"><a class="reference internal" href="../../using/examples/hardware_providers.html#orca-computing">ORCA Computing</a></li>
191+
<li class="toctree-l3"><a class="reference internal" href="../../using/examples/hardware_providers.html#pasqal">Pasqal</a></li>
191192
<li class="toctree-l3"><a class="reference internal" href="../../using/examples/hardware_providers.html#quantinuum">Quantinuum</a></li>
192193
<li class="toctree-l3"><a class="reference internal" href="../../using/examples/hardware_providers.html#quera-computing">QuEra Computing</a></li>
193194
</ul>
@@ -389,6 +390,7 @@
389390
</li>
390391
<li class="toctree-l3"><a class="reference internal" href="../../using/backends/hardware/neutralatom.html"> Neutral Atom QPUs</a><ul>
391392
<li class="toctree-l4"><a class="reference internal" href="../../using/backends/hardware/neutralatom.html#infleqtion">Infleqtion</a></li>
393+
<li class="toctree-l4"><a class="reference internal" href="../../using/backends/hardware/neutralatom.html#pasqal">Pasqal</a></li>
392394
<li class="toctree-l4"><a class="reference internal" href="../../using/backends/hardware/neutralatom.html#quera-computing">QuEra Computing</a></li>
393395
</ul>
394396
</li>
@@ -3850,7 +3852,7 @@ <h2>Platform<a class="headerlink" href="#platform" title="Permalink to this head
38503852
<dl class="cpp class">
38513853
<dt class="sig sig-object cpp" id="_CPPv4N5cudaq17BaseRemoteRESTQPUE">
38523854
<span class="target" id="classcudaq_1_1BaseRemoteRESTQPU"></span><span class="k"><span class="pre">class</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">BaseRemoteRESTQPU</span></span></span><span class="w"> </span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="k"><span class="pre">public</span></span><span class="w"> </span><a class="reference internal" href="#_CPPv45cudaq" title="cudaq"><span class="n"><span class="pre">cudaq</span></span></a><span class="p"><span class="pre">::</span></span><a class="reference internal" href="#_CPPv4N5cudaq3QPUE" title="cudaq::QPU"><span class="n"><span class="pre">QPU</span></span></a><a class="headerlink" href="#_CPPv4N5cudaq17BaseRemoteRESTQPUE" title="Permalink to this definition">¶</a><br /></dt>
3853-
<dd><p>Subclassed by <a class="reference internal" href="#classcudaq_1_1FermioniqBaseQPU"><span class="std std-ref">cudaq::FermioniqBaseQPU</span></a>, <a class="reference internal" href="#classcudaq_1_1QuEraBaseQPU"><span class="std std-ref">cudaq::QuEraBaseQPU</span></a></p>
3855+
<dd><p>Subclassed by <a class="reference internal" href="#classcudaq_1_1FermioniqBaseQPU"><span class="std std-ref">cudaq::FermioniqBaseQPU</span></a>, <a class="reference internal" href="#classcudaq_1_1PasqalBaseQPU"><span class="std std-ref">cudaq::PasqalBaseQPU</span></a>, <a class="reference internal" href="#classcudaq_1_1QuEraBaseQPU"><span class="std std-ref">cudaq::QuEraBaseQPU</span></a></p>
38543856
</dd></dl>
38553857

38563858
<dl class="cpp class">
@@ -3877,6 +3879,12 @@ <h2>Platform<a class="headerlink" href="#platform" title="Permalink to this head
38773879
<dd><p>The <a class="reference internal" href="#classcudaq_1_1OrcaRemoteRESTQPU"><span class="std std-ref">OrcaRemoteRESTQPU</span></a> is a subtype of <a class="reference internal" href="#classcudaq_1_1QPU"><span class="std std-ref">QPU</span></a> that enables the execution of CUDA-Q kernels on remotely hosted quantum computing services via a REST Client / Server interaction. This type is meant to be general enough to support any remotely hosted service. Moreover, this <a class="reference internal" href="#classcudaq_1_1QPU"><span class="std std-ref">QPU</span></a> handles launching kernels under the Execution Context that includes sampling via synchronous client invocations. </p>
38783880
</dd></dl>
38793881

3882+
<dl class="cpp class">
3883+
<dt class="sig sig-object cpp" id="_CPPv4N5cudaq13PasqalBaseQPUE">
3884+
<span class="target" id="classcudaq_1_1PasqalBaseQPU"></span><span class="k"><span class="pre">class</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">PasqalBaseQPU</span></span></span><span class="w"> </span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="k"><span class="pre">public</span></span><span class="w"> </span><a class="reference internal" href="#_CPPv45cudaq" title="cudaq"><span class="n"><span class="pre">cudaq</span></span></a><span class="p"><span class="pre">::</span></span><a class="reference internal" href="#_CPPv4N5cudaq17BaseRemoteRESTQPUE" title="cudaq::BaseRemoteRESTQPU"><span class="n"><span class="pre">BaseRemoteRESTQPU</span></span></a><a class="headerlink" href="#_CPPv4N5cudaq13PasqalBaseQPUE" title="Permalink to this definition">¶</a><br /></dt>
3885+
<dd><p>The <code class="docutils literal notranslate"><a class="reference internal" href="#classcudaq_1_1PasqalBaseQPU"><span class="std std-ref"><span class="pre">PasqalBaseQPU</span></span></a></code> is a <a class="reference internal" href="#classcudaq_1_1QPU"><span class="std std-ref">QPU</span></a> that allows users to submit kernels to the Pasqal machine. </p>
3886+
</dd></dl>
3887+
38803888
<dl class="cpp class">
38813889
<dt class="sig sig-object cpp" id="_CPPv4N5cudaq12QuEraBaseQPUE">
38823890
<span class="target" id="classcudaq_1_1QuEraBaseQPU"></span><span class="k"><span class="pre">class</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">QuEraBaseQPU</span></span></span><span class="w"> </span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="k"><span class="pre">public</span></span><span class="w"> </span><a class="reference internal" href="#_CPPv45cudaq" title="cudaq"><span class="n"><span class="pre">cudaq</span></span></a><span class="p"><span class="pre">::</span></span><a class="reference internal" href="#_CPPv4N5cudaq17BaseRemoteRESTQPUE" title="cudaq::BaseRemoteRESTQPU"><span class="n"><span class="pre">BaseRemoteRESTQPU</span></span></a><a class="headerlink" href="#_CPPv4N5cudaq12QuEraBaseQPUE" title="Permalink to this definition">¶</a><br /></dt>

pr-2660/api/languages/python_api.html

+3-1
Original file line numberDiff line numberDiff line change
@@ -188,6 +188,7 @@
188188
<li class="toctree-l3"><a class="reference internal" href="../../using/examples/hardware_providers.html#iqm">IQM</a></li>
189189
<li class="toctree-l3"><a class="reference internal" href="../../using/examples/hardware_providers.html#oqc">OQC</a></li>
190190
<li class="toctree-l3"><a class="reference internal" href="../../using/examples/hardware_providers.html#orca-computing">ORCA Computing</a></li>
191+
<li class="toctree-l3"><a class="reference internal" href="../../using/examples/hardware_providers.html#pasqal">Pasqal</a></li>
191192
<li class="toctree-l3"><a class="reference internal" href="../../using/examples/hardware_providers.html#quantinuum">Quantinuum</a></li>
192193
<li class="toctree-l3"><a class="reference internal" href="../../using/examples/hardware_providers.html#quera-computing">QuEra Computing</a></li>
193194
</ul>
@@ -389,6 +390,7 @@
389390
</li>
390391
<li class="toctree-l3"><a class="reference internal" href="../../using/backends/hardware/neutralatom.html"> Neutral Atom QPUs</a><ul>
391392
<li class="toctree-l4"><a class="reference internal" href="../../using/backends/hardware/neutralatom.html#infleqtion">Infleqtion</a></li>
393+
<li class="toctree-l4"><a class="reference internal" href="../../using/backends/hardware/neutralatom.html#pasqal">Pasqal</a></li>
392394
<li class="toctree-l4"><a class="reference internal" href="../../using/backends/hardware/neutralatom.html#quera-computing">QuEra Computing</a></li>
393395
</ul>
394396
</li>
@@ -2253,7 +2255,7 @@ <h2>Data Types<a class="headerlink" href="#data-types" title="Permalink to this
22532255
<dt class="sig sig-object py" id="cudaq.operator.expressions.RydbergHamiltonian">
22542256
<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">cudaq.operator.expressions.</span></span><span class="sig-name descname"><span class="pre">RydbergHamiltonian</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">atom_sites</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://docs.python.org/3/library/typing.html#typing.Iterable" title="(in Python v3.13)"><span class="pre">Iterable</span></a><span class="p"><span class="pre">[</span></span><a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#tuple" title="(in Python v3.13)"><span class="pre">tuple</span></a><span class="p"><span class="pre">[</span></span><a class="reference external" href="https://docs.python.org/3/library/functions.html#float" title="(in Python v3.13)"><span class="pre">float</span></a><span class="p"><span class="pre">,</span></span><span class="w"> </span><a class="reference external" href="https://docs.python.org/3/library/functions.html#float" title="(in Python v3.13)"><span class="pre">float</span></a><span class="p"><span class="pre">]</span></span><span class="p"><span class="pre">]</span></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">amplitude</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference internal" href="#cudaq.operator.expressions.ScalarOperator" title="cudaq.operator.expressions.ScalarOperator"><span class="pre">ScalarOperator</span></a></span></em>, <em class="sig-param"><span class="n"><span class="pre">phase</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference internal" href="#cudaq.operator.expressions.ScalarOperator" title="cudaq.operator.expressions.ScalarOperator"><span class="pre">ScalarOperator</span></a></span></em>, <em class="sig-param"><span class="n"><span class="pre">delta_global</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference internal" href="#cudaq.operator.expressions.ScalarOperator" title="cudaq.operator.expressions.ScalarOperator"><span class="pre">ScalarOperator</span></a></span></em>, <em class="sig-param"><span class="n"><span class="pre">atom_filling</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://docs.python.org/3/library/typing.html#typing.Optional" title="(in Python v3.13)"><span class="pre">Optional</span></a><span class="p"><span class="pre">[</span></span><a class="reference external" href="https://docs.python.org/3/library/typing.html#typing.Iterable" title="(in Python v3.13)"><span class="pre">Iterable</span></a><span class="p"><span class="pre">[</span></span><a class="reference external" href="https://docs.python.org/3/library/functions.html#int" title="(in Python v3.13)"><span class="pre">int</span></a><span class="p"><span class="pre">]</span></span><span class="p"><span class="pre">]</span></span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">[]</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">delta_local</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference external" href="https://docs.python.org/3/library/typing.html#typing.Optional" title="(in Python v3.13)"><span class="pre">Optional</span></a><span class="p"><span class="pre">[</span></span><a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#tuple" title="(in Python v3.13)"><span class="pre">tuple</span></a><span class="p"><span class="pre">[</span></span><a class="reference internal" href="#cudaq.operator.expressions.ScalarOperator" title="cudaq.operator.expressions.ScalarOperator"><span class="pre">cudaq.operator.expressions.ScalarOperator</span></a><span class="p"><span class="pre">,</span></span><span class="w"> </span><a class="reference external" href="https://docs.python.org/3/library/typing.html#typing.Iterable" title="(in Python v3.13)"><span class="pre">Iterable</span></a><span class="p"><span class="pre">[</span></span><a class="reference external" href="https://docs.python.org/3/library/functions.html#float" title="(in Python v3.13)"><span class="pre">float</span></a><span class="p"><span class="pre">]</span></span><span class="p"><span class="pre">]</span></span><span class="p"><span class="pre">]</span></span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#cudaq.operator.expressions.RydbergHamiltonian" title="Permalink to this definition">¶</a></dt>
22552257
<dd><p>Representation for the time-dependent Hamiltonian which is simulated by
2256-
QuEra’s Aquila machine.
2258+
analog neutral-atom machines such as QuEra’s Aquila and Pasqal’s Fresnel.
22572259
Ref: <a class="reference external" href="https://docs.aws.amazon.com/braket/latest/developerguide/braket-quera-submitting-analog-program-aquila.html#braket-quera-ahs-program-schema">https://docs.aws.amazon.com/braket/latest/developerguide/braket-quera-submitting-analog-program-aquila.html#braket-quera-ahs-program-schema</a></p>
22582260
<dl class="py method">
22592261
<dt class="sig sig-object py" id="cudaq.operator.expressions.RydbergHamiltonian.__init__">

0 commit comments

Comments
 (0)