Skip to content

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

python
CommProtocolConfig()

Creates a new CommProtocolConfig with default values.

Fields

FieldTypeDefaultDescription
open_mappingboolTrueWhether to enable quantum gate mapping (qubit routing to hardware topology).
open_error_mitigationboolTrueWhether to enable readout error mitigation on measurement results.
optimization_levelint4Optimization level for circuit compilation. Higher values enable more aggressive optimizations.
circuits_numint100Number of distinct circuit variants to generate during optimization.
shotsint1000Number of measurement shots (repetitions) per circuit.

Examples

python
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 = 2000

comm_protocol_encode

Encodes a list of quantum programs together with a configuration into a binary byte string.

Signature

python
comm_protocol_encode(
    prog_list: list[QProg],
    config: CommProtocolConfig = CommProtocolConfig(),
) -> bytes

Parameters

ParameterTypeDescription
prog_listlist[QProg]List of quantum programs to encode.
configCommProtocolConfigConfiguration to embed in the encoded data. Defaults to a default-constructed CommProtocolConfig.

Returns

bytes -- The encoded binary data.

Examples

python
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

python
comm_protocol_decode(
    encode_data: bytes,
) -> tuple[list[QProg], CommProtocolConfig]

Parameters

ParameterTypeDescription
encode_databytesThe 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

python
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

Released under the MIT License.