ClusterΒΆ

In the previous sections we explained how to configure the backend for use with the standalone Pulsars, now we will explain how to adapt this config to use one or multiple Clusters instead. Since the cluster modules behave similarly, we recommend first familiarizing yourself with the configuration for the pulsars.

We start by looking at an example config for a single cluster:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
mapping_config = {
    "backend": "quantify_scheduler.backends.qblox_backend.hardware_compile",
    "cluster0": {
        "cluster0_module1": {
            "complex_output_0": {
                "line_gain_db": 0,
                "lo_name": "lo0",
                "seq0": {
                    "clock": "q4.01",
                    "interm_freq": 200000000.0,
                    "mixer_amp_ratio": 0.9999,
                    "mixer_phase_error_deg": -4.2,
                    "port": "q4:mw",
                },
            },
            "instrument_type": "QCM",
        },
        "cluster0_module2": {
            "complex_output_0": {
                "line_gain_db": 0,
                "seq0": {"clock": "q5.01", "interm_freq": 50000000.0, "port": "q5:mw"},
            },
            "instrument_type": "QCM_RF",
        },
        "instrument_type": "Cluster",
        "ref": "internal",
    },
    "lo0": {"instrument_type": "LocalOscillator", "frequency": None, "power": 20},
}

In the example, we notice that the cluster is specified using an instrument with "instrument_type": "Cluster". In the backend, the cluster instrument functions as a collection of modules. The modules themselves can be configured identically to pulsars, except for the ref, which has now become a cluster wide setting.

Valid values for "instrument_type" for the modules are: QCM, QRM, QCM_RF and QRM_RF.