iqm-pulla 9.2.0__py3-none-any.whl → 9.4.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- iqm/pulla/utils_qir.py +2 -2
- {iqm_pulla-9.2.0.dist-info → iqm_pulla-9.4.0.dist-info}/METADATA +2 -2
- {iqm_pulla-9.2.0.dist-info → iqm_pulla-9.4.0.dist-info}/RECORD +7 -8
- iqm/cpc/compiler/circuit_compilation_request_handler.py +0 -100
- {iqm_pulla-9.2.0.dist-info → iqm_pulla-9.4.0.dist-info}/AUTHORS.rst +0 -0
- {iqm_pulla-9.2.0.dist-info → iqm_pulla-9.4.0.dist-info}/LICENSE.txt +0 -0
- {iqm_pulla-9.2.0.dist-info → iqm_pulla-9.4.0.dist-info}/WHEEL +0 -0
- {iqm_pulla-9.2.0.dist-info → iqm_pulla-9.4.0.dist-info}/top_level.txt +0 -0
iqm/pulla/utils_qir.py
CHANGED
|
@@ -263,8 +263,8 @@ def generate_qiskit_qir_qubit_mapping(qiskit_circuit: QuantumCircuit, qiskit_bac
|
|
|
263
263
|
Then we assign qiskit-qir index to the qiskit logic qubit idx.
|
|
264
264
|
|
|
265
265
|
Args:
|
|
266
|
-
qiskit_circuit: Qiskit circuit to generate the mapping for.
|
|
267
|
-
qiskit_backend: Qiskit backend object to be used for qubit name generation.
|
|
266
|
+
qiskit_circuit: The Qiskit circuit to generate the mapping for.
|
|
267
|
+
qiskit_backend: The Qiskit backend object to be used for qubit name generation.
|
|
268
268
|
|
|
269
269
|
Returns:
|
|
270
270
|
A dictionary mapping Qiskit qubit indices to QIR qubit pointers.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: iqm-pulla
|
|
3
|
-
Version: 9.
|
|
3
|
+
Version: 9.4.0
|
|
4
4
|
Summary: Client library for pulse-level access to an IQM quantum computer
|
|
5
5
|
Author-email: IQM Finland Oy <developers@meetiqm.com>
|
|
6
6
|
License: Apache License
|
|
@@ -246,7 +246,7 @@ IQM Pulla
|
|
|
246
246
|
#########
|
|
247
247
|
|
|
248
248
|
Pulla (pulse-level access) is a client-side software which allows the user to control the generation and
|
|
249
|
-
execution of pulse schedules on a quantum computer. Within the existing IQM QCCSW stack,
|
|
249
|
+
execution of pulse schedules on a quantum computer. Within the existing IQM QCCSW stack, Pulla is somewhere between
|
|
250
250
|
circuit-level execution and EXA-experiment.
|
|
251
251
|
|
|
252
252
|
An interactive user guide is available as a Jupyter notebook in the `docs` folder.
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
iqm/cpc/__init__.py,sha256=qw_SFgwld1YOYYyBE-NSticm60xx5aCAw5LJJzjou8Y,1745
|
|
2
2
|
iqm/cpc/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
3
3
|
iqm/cpc/compiler/__init__.py,sha256=ieYyHzb2IyevDm5swU--rPMsh5GdUtLrw8773Cd0ens,678
|
|
4
|
-
iqm/cpc/compiler/circuit_compilation_request_handler.py,sha256=Es3VoO1kOG2XHcJ5ntmT6-aMo7GiCUYkMJGILrUjkfg,4409
|
|
5
4
|
iqm/cpc/compiler/compiler.py,sha256=KsxRrpfPawZYqg3gvTYch58GXlSW8mr3p-11hejbZ_0,20383
|
|
6
5
|
iqm/cpc/compiler/dd.py,sha256=j4onTod24RPxRwwsM3EMBBgX4hDO0k_nW9R762AocXo,21674
|
|
7
6
|
iqm/cpc/compiler/errors.py,sha256=tz-8g1QtDvCAPmAjjCYK3FoULrazkpSTmXIvyqukaT4,1949
|
|
@@ -18,11 +17,11 @@ iqm/pulla/quantum_architecture.py,sha256=mJH9e9fdkblg6LrgN7qd-Ui3Igawf-hGd2Z7Zcl
|
|
|
18
17
|
iqm/pulla/utils.py,sha256=TTAOFhNW59VFAjnu6ZicmHXvp-GI_f66oh6IC1zFQKE,24732
|
|
19
18
|
iqm/pulla/utils_cirq.py,sha256=8SBy6w7cr4AmnCgKwh7dBWwBGfGKxnoEMv9-1yfKs0A,777
|
|
20
19
|
iqm/pulla/utils_dd.py,sha256=SxYAuRBgvYELKjeXpFbP4mM0xCCivDk7WUHw7oEXfMo,1695
|
|
21
|
-
iqm/pulla/utils_qir.py,sha256=
|
|
20
|
+
iqm/pulla/utils_qir.py,sha256=SKQyYwqluMOqfts6jdhP6ik8BvAIppwaq6-_sY0MO8M,11503
|
|
22
21
|
iqm/pulla/utils_qiskit.py,sha256=RBrAf_KbxlL8DI078mtN8nK1pdfAbd4yk7DJSZVEFSs,10397
|
|
23
|
-
iqm_pulla-9.
|
|
24
|
-
iqm_pulla-9.
|
|
25
|
-
iqm_pulla-9.
|
|
26
|
-
iqm_pulla-9.
|
|
27
|
-
iqm_pulla-9.
|
|
28
|
-
iqm_pulla-9.
|
|
22
|
+
iqm_pulla-9.4.0.dist-info/AUTHORS.rst,sha256=iCStz7WP5Jk7uMnn9jRA4ybS14X4yeUW2SsWE-OTaRk,328
|
|
23
|
+
iqm_pulla-9.4.0.dist-info/LICENSE.txt,sha256=cCj_biRA4Q8A77vxR8AuvAf-DZ5G79yxR_3lYY6TrmA,11333
|
|
24
|
+
iqm_pulla-9.4.0.dist-info/METADATA,sha256=-Mwh4sq-K2TKjyZV5uVsaH0TE5rlgkLNQNE0qE0I1z8,17695
|
|
25
|
+
iqm_pulla-9.4.0.dist-info/WHEEL,sha256=y4mX-SOX4fYIkonsAGA5N0Oy-8_gI4FXw5HNI1xqvWg,91
|
|
26
|
+
iqm_pulla-9.4.0.dist-info/top_level.txt,sha256=NB4XRfyDS6_wG9gMsyX-9LTU7kWnTQxNvkbzIxGv3-c,4
|
|
27
|
+
iqm_pulla-9.4.0.dist-info/RECORD,,
|
|
@@ -1,100 +0,0 @@
|
|
|
1
|
-
# Copyright 2024-2025 IQM
|
|
2
|
-
#
|
|
3
|
-
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
|
-
# you may not use this file except in compliance with the License.
|
|
5
|
-
# You may obtain a copy of the License at
|
|
6
|
-
#
|
|
7
|
-
# http://www.apache.org/licenses/LICENSE-2.0
|
|
8
|
-
#
|
|
9
|
-
# Unless required by applicable law or agreed to in writing, software
|
|
10
|
-
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
11
|
-
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
|
-
# See the License for the specific language governing permissions and
|
|
13
|
-
# limitations under the License.
|
|
14
|
-
"""Convert quantum circuits into instruction schedules.
|
|
15
|
-
|
|
16
|
-
This is the entry-point for integrations, e.g. for a server-side component performing circuit-to-pulse compilation.
|
|
17
|
-
"""
|
|
18
|
-
|
|
19
|
-
import logging
|
|
20
|
-
from typing import Any
|
|
21
|
-
|
|
22
|
-
from opentelemetry import context as telemetry_context
|
|
23
|
-
from opentelemetry import propagate
|
|
24
|
-
|
|
25
|
-
from exa.common.data.setting_node import SettingNode
|
|
26
|
-
from exa.common.qcm_data.chip_topology import ChipTopology
|
|
27
|
-
from iqm.cpc.compiler.compiler import Compiler, cpc_logger, tracer
|
|
28
|
-
from iqm.cpc.compiler.standard_stages import get_standard_stages
|
|
29
|
-
from iqm.cpc.interface.compiler import CircuitBatch, CircuitCompilationResult, CircuitExecutionOptions
|
|
30
|
-
from iqm.pulla.interface import CalibrationSet
|
|
31
|
-
from iqm.pulse.playlist.channel import ChannelProperties
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
def handle_circuit_compilation_request( # noqa: PLR0913
|
|
35
|
-
job_id: str,
|
|
36
|
-
circuits: CircuitBatch,
|
|
37
|
-
shots: int,
|
|
38
|
-
calibration_set: CalibrationSet,
|
|
39
|
-
chip_topology: ChipTopology,
|
|
40
|
-
channel_properties: dict[str, ChannelProperties],
|
|
41
|
-
component_channels: dict[str, dict[str, str]],
|
|
42
|
-
options: CircuitExecutionOptions,
|
|
43
|
-
custom_settings: SettingNode | None,
|
|
44
|
-
qubit_mapping: dict[str, str] | None,
|
|
45
|
-
trace_context: dict[str, Any] | None,
|
|
46
|
-
) -> CircuitCompilationResult:
|
|
47
|
-
"""Compile a batch of quantum circuits into a form that can be executed by Station Control.
|
|
48
|
-
|
|
49
|
-
Args:
|
|
50
|
-
job_id: ID of the job requesting compilation, used in logging
|
|
51
|
-
circuits: quantum circuits to compile into schedules
|
|
52
|
-
shots: number of times to repeat the execution of each circuit
|
|
53
|
-
calibration_set: calibration data for the station the circuits are executed on
|
|
54
|
-
chip_topology: topology of the QPU the circuits are executed on
|
|
55
|
-
channel_properties: properties of control channels on the station
|
|
56
|
-
component_channels: QPU component to function to channel mapping
|
|
57
|
-
options: various discrete options for circuit execution that affect compilation
|
|
58
|
-
custom_settings: additional Station Control settings to override generated settings
|
|
59
|
-
qubit_mapping: Mapping of logical qubit names to physical qubit names. ``None`` means the identity mapping.
|
|
60
|
-
trace_context: telemetry context to be propagated during circuit compilation
|
|
61
|
-
|
|
62
|
-
Returns:
|
|
63
|
-
circuit compilation result
|
|
64
|
-
|
|
65
|
-
"""
|
|
66
|
-
if trace_context:
|
|
67
|
-
telemetry_context.attach(propagate.extract(trace_context))
|
|
68
|
-
cpc_logger.debug("Compiling circuits for job %s", job_id)
|
|
69
|
-
|
|
70
|
-
with tracer.start_as_current_span("prepare_compilation"):
|
|
71
|
-
if cpc_logger.isEnabledFor(logging.DEBUG):
|
|
72
|
-
cpc_logger.debug(
|
|
73
|
-
"calibration set contents:\n%s",
|
|
74
|
-
"".join(f" {k:60s}: {v}\n" for k, v in calibration_set.items()),
|
|
75
|
-
)
|
|
76
|
-
compiler = Compiler(
|
|
77
|
-
calibration_set=calibration_set,
|
|
78
|
-
chip_topology=chip_topology,
|
|
79
|
-
channel_properties=channel_properties,
|
|
80
|
-
component_channels=component_channels,
|
|
81
|
-
component_mapping=qubit_mapping,
|
|
82
|
-
options=options,
|
|
83
|
-
stages=get_standard_stages(idempotent=False),
|
|
84
|
-
strict=True,
|
|
85
|
-
)
|
|
86
|
-
|
|
87
|
-
with tracer.start_as_current_span("compile_circuits", attributes={"len(circuits)": len(circuits)}):
|
|
88
|
-
playlist, compilation_context = compiler.compile(circuits)
|
|
89
|
-
|
|
90
|
-
with tracer.start_as_current_span("build_settings"):
|
|
91
|
-
compilation_context["custom_settings"] = custom_settings
|
|
92
|
-
settings, compilation_context = compiler.build_settings(compilation_context, shots)
|
|
93
|
-
|
|
94
|
-
with tracer.start_as_current_span("prepare_compilation_results"):
|
|
95
|
-
return CircuitCompilationResult(
|
|
96
|
-
playlist=playlist,
|
|
97
|
-
readout_mappings=compilation_context["readout_mappings"],
|
|
98
|
-
settings=settings,
|
|
99
|
-
circuit_metrics=compilation_context["circuit_metrics"],
|
|
100
|
-
)
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|