Documentation
¶
Overview ¶
Package backend defines the interface for quantum execution backends.
Package backend defines the Backend interface for quantum execution targets and the associated request/response types.
A Backend can submit circuits, poll job status, retrieve results, and cancel pending jobs. Result carries both measurement counts and probabilities, with conversion methods Result.ToCounts and Result.ToProbabilities.
Implementations: local simulator (backend/local), IonQ REST client (backend/ionq), IBM Quantum Runtime (backend/ibm), Amazon Braket (backend/braket), and configurable mock (backend/mock).
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Backend ¶
type Backend interface {
// Name returns the backend identifier (e.g., "ionq.aria-1").
Name() string
// Target returns hardware constraints for transpilation.
Target() target.Target
// Submit sends a circuit for execution.
Submit(ctx context.Context, req *SubmitRequest) (*Job, error)
// Status checks the current state of a job.
Status(ctx context.Context, jobID string) (*JobStatus, error)
// Result retrieves completed job results.
Result(ctx context.Context, jobID string) (*Result, error)
// Cancel attempts to cancel a pending/running job.
Cancel(ctx context.Context, jobID string) error
}
Backend represents a quantum execution target.
type JobState ¶
type JobState int
JobState represents the lifecycle state of a quantum job.
type JobStatus ¶
type JobStatus struct {
ID string
State JobState
Progress float64 // 0.0–1.0, or -1 if unknown
QueuePos int // position in queue, or -1 if unknown
CreatedAt time.Time
UpdatedAt time.Time
Error string // populated when State == StateFailed
}
JobStatus contains detailed information about a job's current state.
type Result ¶
type Result struct {
Counts map[string]int // bitstring → shot count
Probabilities map[string]float64 // bitstring → probability
Shots int
Metadata map[string]string
}
Result contains the output of a completed quantum job.
func (*Result) ToCounts ¶
ToCounts returns measurement counts. If only probabilities are available, they are converted to counts using the largest-remainder method.
func (*Result) ToProbabilities ¶
ToProbabilities returns measurement probabilities. If only counts are available, they are normalized by the total number of shots.
type SubmitRequest ¶
type SubmitRequest struct {
Circuit *ir.Circuit // gate-level circuit (nil if PulseProgram set)
PulseProgram *pulse.Program // OpenPulse program (nil if Circuit set)
Shots int
Name string
Metadata map[string]string
Options map[string]any // backend-specific options (e.g., ionq.PulseShapes)
}
SubmitRequest contains the parameters for submitting a quantum job. Exactly one of Circuit or PulseProgram must be non-nil.
Directories
¶
| Path | Synopsis |
|---|---|
|
Package ibm implements a backend.Backend for IBM Quantum via the Qiskit Runtime V2 API.
|
Package ibm implements a backend.Backend for IBM Quantum via the Qiskit Runtime V2 API. |
|
Package ionq implements a backend.Backend for the IonQ quantum cloud via its REST API (v0.4).
|
Package ionq implements a backend.Backend for the IonQ quantum cloud via its REST API (v0.4). |
|
Package local provides a backend.Backend backed by the in-process statevector simulator.
|
Package local provides a backend.Backend backed by the in-process statevector simulator. |
|
Package mock provides a configurable backend.Backend for testing job managers and pipelines without network calls.
|
Package mock provides a configurable backend.Backend for testing job managers and pipelines without network calls. |
|
Package quantinuum implements a backend.Backend for Quantinuum's H-series trapped-ion quantum computers via the Quantinuum Machine API (v1).
|
Package quantinuum implements a backend.Backend for Quantinuum's H-series trapped-ion quantum computers via the Quantinuum Machine API (v1). |