qcloud Module
The pyqpanda3.qcloud module provides quantum cloud computing services for submitting quantum programs to OriginQ cloud backends, including simulators, supercomputing clusters, and real quantum processing units (QPUs).
Overview
The qcloud module is the primary interface for interacting with the OriginQ quantum cloud platform. It provides classes for managing cloud services, submitting quantum jobs, retrieving results, and configuring noise models for realistic simulations.
The typical workflow is:
- Create a
QCloudServiceinstance with your API key. - List available backends with
backends()and select one withbackend(). - Submit quantum programs via
QCloudBackend.run(). - Monitor job status through
QCloudJob. - Retrieve measurement results from
QCloudResult.
Classes
| Class | Description |
|---|---|
| QCloudService | Main entry point for connecting to the quantum cloud platform and managing backends |
| QCloudBackend | Represents a specific quantum backend (simulator or real chip) for running programs |
| QCloudJob | Represents a submitted quantum job with methods for status tracking and result retrieval |
| QCloudResult | Contains the results of a completed quantum job, including probabilities, counts, and amplitudes |
| QCloudOptions | Configuration options for cloud job execution such as mapping, optimization, and amendment |
| QCloudNoiseModel | Noise model configuration for cloud-based noisy simulations |
| ChipInfo | Information about a quantum chip including qubit properties and topology |
| ChipBackend | Low-level chip backend configuration including topology edges and gate timing |
| SingleQubitInfo | Properties of a single qubit on a chip (fidelity, T1, T2, frequency) |
| DoubleQubitsInfo | Properties of a qubit pair (gate fidelity) |
Enumerations
| Enum | Description |
|---|---|
| JobStatus | Status of a cloud job (WAITING, COMPUTING, FINISHED, FAILED, QUEUING) |
| DataFormat | Data format for circuit export (DEFAULT, BINARY, INSTRUCTION_SET) |
| DataBase | Base representation for measurement results (Binary, Hex) |
| NOISE_MODEL | Quantum noise model types (bit-flip, damping, decoherence, etc.) |
| LogLevel | Logging verbosity levels (CLOUD_INFO, CLOUD_DEBUG, CLOUD_WARNING, CLOUD_ERROR) |
| LogOutput | Log output destination (CONSOLE, FILE) |
Quick Start
python
from pyqpanda3.qcloud import QCloudService, QCloudNoiseModel
from pyqpanda3.core import QCircuit, H, CNOT, measure
# Connect to the cloud service
service = QCloudService(api_key="your_api_key")
# List available backends
backend_names = service.backends()
print("Available backends:", backend_names)
# Select a backend
backend = service.backend("backend_name")
# Create a quantum program
circuit = QCircuit(2)
circuit << H(0) << CNOT(0, 1)
prog = QProg()
prog << circuit << measure([0, 1], [0, 1])
# Run on the backend
job = backend.run(prog, shots=1000)
# Get the result
result = job.result()
probs = result.get_probs()
print("Probabilities:", probs)See Also
- pilot_service Module -- Lower-level QPilot OS integration