Portability is not a promise until it has been drilled. A workload that compiles for several providers may still depend on hidden assumptions: measurement ordering, basis gates, dynamic-control support, mitigation defaults, queue behavior, shot limits, data schemas, or regional policy.
This chapter turns provider portability into an operational practice, not an architectural aspiration.
View diagram source
flowchart LR
Workload[Workload package] --> Abstract[Abstract contract]
Abstract --> ProviderA[Provider A]
Abstract --> ProviderB[Provider B]
Abstract --> ProviderC[Provider C]
ProviderA --> Compare[Compare outputs and evidence]
ProviderB --> Compare
ProviderC --> ComparePortability dimensions
A portable quantum workload requires more than source-code translation.
| Dimension | Question |
|---|---|
| semantic | does the same workload mean the same thing? |
| compiler | can it be lowered without invalidating assumptions? |
| hardware | does the target support required topology, timing, and operations? |
| runtime | are shots, batching, sessions, and mitigation comparable? |
| evidence | can provenance be represented consistently? |
| governance | can access, residency, and policy be enforced? |
| economics | is the migrated path economically viable? |
View diagram source
mindmap
root((Portability))
Semantics
Compiler
Hardware
Runtime
Evidence
Governance
EconomicsThe portability contract
A portability contract defines what must remain invariant and what may vary.
View diagram source
classDiagram
class PortabilityContract {
workload_id
invariant_semantics
acceptable_transformations
required_evidence
comparable_metrics
disallowed_provider_features
exit_thresholds
}
class ProviderAdapter {
provider
target_mapping
compiler_profile
runtime_profile
evidence_mapper
}
PortabilityContract --> ProviderAdapterInvariants may include the Hamiltonian, objective function, logical circuit, random seed policy, required confidence level and precision, or claim boundary. Variables may include the observed confidence interval, physical layout, shot allocation, mitigation method, and queue timing.
Migration drill lifecycle
View diagram source
flowchart TB
Select[Select workload] --> Package[Package evidence and contract]
Package --> Translate[Translate/adapt]
Translate --> DryRun[Simulator or dry run]
DryRun --> Execute[Execute on alternate provider]
Execute --> Compare[Compare result and evidence]
Compare --> Report[Migration report]
Report --> Fix[Fix portability gaps]A drill should produce a report even if migration fails. Failure identifies coupling that architecture diagrams usually hide.
Comparison is not equality
Cross-provider results rarely match exactly. The question is whether differences remain inside the claim boundary.
View diagram source
flowchart LR
ResultA[Provider A distribution] --> Distance[Distance and interval analysis]
ResultB[Provider B distribution] --> Distance
Distance --> Boundary{Inside claim boundary?}
Boundary -- yes --> Portable[Portable enough]
Boundary -- no --> Gap[Portability gap]Comparison techniques may include distribution distance with uncertainty bounds, an interval for the difference between observables, benchmark-relative scoring, or task-specific success probability. Predeclare practical equivalence margins and the comparison method. Overlap between two separate confidence intervals, or failure to detect a difference, does not establish equivalence.
Evidence mapping
Evidence mapping is often harder than execution. Each provider exposes different metadata and runtime semantics.
View diagram source
flowchart TB
ProviderEvidence[Provider evidence] --> Mapper[Evidence mapper]
Mapper --> Canonical[Canonical evidence schema]
Canonical --> Validator[Schema validator]
Validator --> Archive[Evidence archive]| Provider-specific item | Canonical concept |
|---|---|
| backend properties | target snapshot |
| job tags | workload lineage |
| reservation identifier | execution context |
| primitive options | runtime profile |
| mitigation settings | inference profile |
| queue timestamps | scheduling record |
Exit strategy drills
An exit strategy should be tested before it is needed. The test does not need to migrate every workload. It should migrate representative workload classes.
View diagram source
flowchart LR
Dependency[Provider dependency] --> Drill[Exit drill]
Drill --> Gaps[Gap register]
Gaps --> Remediation[Remediation backlog]
Remediation --> Retest[Retest]
Retest --> Confidence[Exit confidence]Exit confidence depends on workload coverage, evidence portability, contract flexibility, staff familiarity, and cost impact.
Operating rule
Do not describe a workload as portable until a migration drill has produced comparable results, canonical evidence, and a gap register.