Protocol -- CommProtocolConfig
API reference for the communication protocol configuration class and its associated encode/decode functions. These utilities serialize quantum programs into a binary format for transmission and deserialize them back.
CommProtocolConfig
Configuration object that controls how quantum programs are processed during execution. All fields are read/write.
Construction
CommProtocolConfig()Creates a new CommProtocolConfig with default values.
Fields
| Field | Type | Default | Description |
|---|---|---|---|
| open_mapping | bool | True | Whether to enable quantum gate mapping (qubit routing to hardware topology). |
| open_error_mitigation | bool | True | Whether to enable readout error mitigation on measurement results. |
| optimization_level | int | 4 | Optimization level for circuit compilation. Higher values enable more aggressive optimizations. |
| circuits_num | int | 100 | Number of distinct circuit variants to generate during optimization. |
| shots | int | 1000 | Number of measurement shots (repetitions) per circuit. |
Examples
from pyqpanda3.utils import CommProtocolConfig
config = CommProtocolConfig()
config.open_mapping = True
config.open_error_mitigation = False
config.optimization_level = 2
config.circuits_num = 50
config.shots = 2000comm_protocol_encode
Encodes a list of quantum programs together with a configuration into a binary byte string.
Signature
comm_protocol_encode(
prog_list: list[QProg],
config: CommProtocolConfig = CommProtocolConfig(),
) -> bytesParameters
| Parameter | Type | Description |
|---|---|---|
| prog_list | list[QProg] | List of quantum programs to encode. |
| config | CommProtocolConfig | Configuration to embed in the encoded data. Defaults to a default-constructed CommProtocolConfig. |
Returns
bytes -- The encoded binary data.
Examples
from pyqpanda3.utils import CommProtocolConfig, comm_protocol_encode
from pyqpanda3.core import QProg, H, CNOT
prog = QProg() << H(0) << CNOT(0, 1)
config = CommProtocolConfig()
config.shots = 4096
encoded = comm_protocol_encode([prog], config)comm_protocol_decode
Decodes a binary byte string back into a list of quantum programs and the associated configuration.
Signature
comm_protocol_decode(
encode_data: bytes,
) -> tuple[list[QProg], CommProtocolConfig]Parameters
| Parameter | Type | Description |
|---|---|---|
| encode_data | bytes | The binary data previously produced by comm_protocol_encode. |
Returns
tuple[list[QProg], CommProtocolConfig] -- A tuple containing the decoded list of quantum programs and the configuration that was embedded in the binary data.
Examples
from pyqpanda3.utils import comm_protocol_decode
prog_list, config = comm_protocol_decode(encoded)
print(f"Recovered {len(prog_list)} programs, shots={config.shots}")See Also
- OriginBIS -- Alternative binary serialization using Protocol Buffers