Backend JSON

Here it is presented how to specify a backend using JSON. Supported simulators must be indicated with the following aliases:

Siulator Name

Alias for the backend

AerSimulator

Aer

MQT-DDSIM

Munich

Qulacs

Qulacs

Maestro

Maestro

CunqaSimulator

Cunqa

Ideal backend

This is the simplest backend example. The only thing to note is that the number of qubits is specified under the key _num_qubits_ as a list where the first element is the number of data qubits and the second element is the number of communication qubits.

{
    "backend":{
        "name": "IdealBackend",
        "version": "0.0.1",
        "description": "Example of an ideal backend",
        "num_qubits": [16,0],
        "basis_gates": [
            "id", "h", "x", "y", "z", "cx", "cy", "cz", "ecr"
        ],
        "coupling_map": [],
    }
}

Noisy backend

The simplest way to specify a noisy backend is through a JSON file containing the desired noise properties in the format specified in Noise properties JSON. Then, internally it will be convert to the specific noise model format supported for the corresponding simulator.

{
    "backend": {
        "name": "NoisyBackend",
        "version": "0.0.1",
        "description": "Example of a noisy backend",
        "num_qubits": [16, 0],
        "basis_gates": [
            "id", "h", "x", "y", "z", "cx", "cy", "cz", "ecr"
        ],
        "coupling_map": [],
        "noise_model": {
            "noise_properties_path": "/path/to/noise/properties/json",
            "thermal_relaxation": true,
            "readout_error": true,
            "gate_error": true
        }
    }
}

Quantum Communications backend

The only unique feature of this type of backend is that it specifies the number of communication qubits as the second element in the list associated with the key _num_qubits_. In this example, the vQPU would have 16 data qubits and 3 communication qubits associated with it.

{
    "backend":{
        "name": "IdealBackend",
        "version": "0.0.1",
        "description": "Example of an ideal backend",
        "num_qubits": [16,3],
        "basis_gates": [
            "id", "h", "x", "y", "z", "cx", "cy", "cz", "ecr"
        ],
        "coupling_map": [],
    }
}