uniqc.backend_adapter.virtual_machine module

User-defined noisy virtual machines under ~/.uniqc/backend/virtual/.

Each *.yaml file in that directory describes one noisy virtual machine: qubit set, coupling topology, and a layered gate error model (uniform per-arity depolarizing, per-gate-type and per-gate-instance overrides, T1/T2 thermal relaxation, and per-qubit readout error).

A configured machine is referenced through the dummy platform as dummy:virtual:<name> (filename stem):

submit_task(circuit, backend="dummy:virtual:my-machine", shots=1000)

YAML schema

description: 6-qubit noisy virtual machine
qubits: [0, 1, 2, 3, 4, 5]        # or: num_qubits: 6
topology:                          # optional; omit for all-to-all
  - [0, 1]
  - [1, 2]
gate_times_ns:                     # required when thermal_relaxation is used
  default_1q: 30
  default_2q: 80
  CZ: 120                          # optional per-gate override
noise:
  depolarizing:                    # uniform, per gate arity
    1q: 0.001                      #   every single-qubit gate
    2q: 0.01                       #   every two-qubit gate (true 2q channel)
  gate_type:                       # per gate type, stacked on top of the above
    CZ: {depolarizing: 0.015}
    H: 0.0005                      # bare-float shorthand
  gate_instance:                   # per (gate, qubits) instance
    - {gate: CZ, qubits: [0, 1], depolarizing: 0.04}
    - {gate: H,  qubits: [3],  depolarizing: 0.002}
  thermal_relaxation:              # per-qubit T1/T2 (microseconds)
    default: {t1_us: 50, t2_us: 40}
    qubits:
      2: {t1_us: 30, t2_us: 25}
  readout:                         # [p(0->1), p(1->0)]
    default: [0.02, 0.02]
    qubits:
      4: [0.05, 0.08]
class uniqc.backend_adapter.virtual_machine.VirtualMachineConfig(name, description='', qubits=(), topology=(), gate_times_ns=<factory>, depol_1q=None, depol_2q=None, gate_type_depol=<factory>, gate_instance_depol=<factory>, t1_us=<factory>, t2_us=<factory>, readout=<factory>, source_path='')[source]

Bases: object

Parsed and validated user-defined noisy virtual machine.

depol_1q
depol_2q
description
gate_instance_depol
gate_times_ns
gate_type_depol
name
qubits
readout
source_path
t1_us
t2_us
topology
class uniqc.backend_adapter.virtual_machine.VirtualMachineScan(name, path, config, error)[source]

Bases: object

Result of scanning one *.yaml file in the virtual machine directory.

config
error
name
path
uniqc.backend_adapter.virtual_machine.build_error_loader(config)[source]

Build the gate error loader described by a virtual machine config.

Layers (all stacked): uniform per-arity depolarizing, per-gate-type overrides, per-gate-instance overrides, and T1/T2 thermal relaxation (attached per gate type using the configured gate durations).

Returns:

An ErrorLoader_GateSpecificError, or None when the config carries no gate noise.

uniqc.backend_adapter.virtual_machine.build_readout_error(config)[source]

Return the per-qubit readout error mapping {qubit: [p01, p10]}.

uniqc.backend_adapter.virtual_machine.create_virtual_machine_template(name, virtual_dir=None, *, force=False)[source]

Write a commented template config for name and return its path.

Raises:
  • ValueError – If the name is invalid.

  • FileExistsError – If the file already exists and force is False.

uniqc.backend_adapter.virtual_machine.list_virtual_machines(virtual_dir=None)[source]

Return all valid virtual machine configs, warning about invalid files.

uniqc.backend_adapter.virtual_machine.load_virtual_machine(name, virtual_dir=None)[source]

Load and validate the virtual machine <name>.yaml from the config directory.

Parameters:
  • name – Virtual machine name (filename stem). Only letters, digits, - and _ are allowed.

  • virtual_dir – Directory to search. Defaults to ~/.uniqc/backend/virtual/.

Returns:

The validated VirtualMachineConfig.

Raises:

ValueError – If the name is invalid, the file is missing, or the configuration fails validation.

uniqc.backend_adapter.virtual_machine.scan_virtual_machines(virtual_dir=None)[source]

Scan the virtual machine directory, reporting valid and invalid files alike.