diff --git a/asv.conf.json b/asv.conf.json index 08fb23781ebd..04c649d43abd 100644 --- a/asv.conf.json +++ b/asv.conf.json @@ -25,7 +25,8 @@ "return-code=any python -c \"import shutil; shutil.rmtree('{build_dir}/build')\"", "return-code=any python -c \"import shutil; shutil.rmtree('{build_dir}/qiskit_terra.egg-info')\"", "python -mpip install {wheel_file}", - "python -mpip install -U qiskit-ignis==0.2.0" + "python -mpip install -U qiskit-ignis==0.2.0", + "python -mpip install -U python-constraint" ], "uninstall_command": [ "return-code=any python -mpip uninstall -y {project}", diff --git a/test/benchmarks/backends/fake_singapore.py b/test/benchmarks/backends/fake_singapore.py new file mode 100644 index 000000000000..321aaab3361d --- /dev/null +++ b/test/benchmarks/backends/fake_singapore.py @@ -0,0 +1,73 @@ +# -*- coding: utf-8 -*- + +# This code is part of Qiskit. +# +# (C) Copyright IBM 2019. +# +# This code is licensed under the Apache License, Version 2.0. You may +# obtain a copy of this license in the LICENSE.txt file in the root directory +# of this source tree or at http://www.apache.org/licenses/LICENSE-2.0. +# +# Any modifications or derivative works of this code must retain this +# copyright notice, and modified files need to carry a notice indicating +# that they have been altered from the originals. + +""" +Fake Boeblingen device (20 qubit). +""" + +import os +import json + +from qiskit.providers.models import (GateConfig, QasmBackendConfiguration, + BackendProperties) +from qiskit.test.mock.fake_backend import FakeBackend + + +class FakeSingapore(FakeBackend): + """A fake Singapore backend.""" + + def __init__(self): + """ + 00 ↔ 01 ↔ 02 ↔ 03 ↔ 04 + ↕ ↕ + 05 ↔ 06 ↔ 07 ↔ 08 ↔ 09 + ↕ ↕ ↕ + 10 ↔ 11 ↔ 12 ↔ 13 ↔ 14 + ↕ ↕ + 15 ↔ 16 ↔ 17 ↔ 18 ↔ 19 + """ + cmap = [[0, 1], [1, 0], [1, 2], [1, 6], [2, 1], [2, 3], [3, 2], + [3, 4], [3, 8], [4, 3], [5, 6], [5, 10], [6, 1], [6, 5], + [6, 7], [7, 6], [7, 8], [7, 12], [8, 3], [8, 7], [8, 9], + [9, 8], [9, 14], [10, 5], [10, 11], [11, 10], [11, 12], + [11, 16], [12, 7], [12, 11], [12, 13], [13, 12], [13, 14], + [13, 18], [14, 9], [14, 13], [15, 16], [16, 11], [16, 15], + [16, 17], [17, 16], [17, 18], [18, 13], [18, 17], [18, 19], + [19, 18]] + + configuration = QasmBackendConfiguration( + backend_name='fake_singapore', + backend_version='0.0.0', + n_qubits=20, + basis_gates=['u1', 'u2', 'u3', 'cx', 'id'], + simulator=False, + local=True, + conditional=False, + open_pulse=False, + memory=True, + max_shots=8192, + gates=[GateConfig(name='TODO', parameters=[], qasm_def='TODO')], + coupling_map=cmap, + ) + + super().__init__(configuration) + + def properties(self): + """Returns a snapshot of device properties as recorded on 10/08/19. + """ + dirname = os.path.dirname(__file__) + filename = "props_singapore.json" + with open(os.path.join(dirname, filename), "r") as f_prop: + props = json.load(f_prop) + return BackendProperties.from_dict(props) diff --git a/test/benchmarks/backends/props_singapore.json b/test/benchmarks/backends/props_singapore.json new file mode 100644 index 000000000000..bd460403197e --- /dev/null +++ b/test/benchmarks/backends/props_singapore.json @@ -0,0 +1 @@ +{"general": [], "qubits": [[{"date": "2019-10-07T10:10:07+00:00", "unit": "\u00b5s", "value": 98.50001846063365, "name": "T1"}, {"date": "2019-10-07T10:11:53+00:00", "unit": "\u00b5s", "value": 142.79433528474766, "name": "T2"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "GHz", "value": 4.676715786802928, "name": "frequency"}, {"date": "2019-10-07T09:58:52+00:00", "unit": "", "value": 0.028000000000000025, "name": "readout_error"}, {"date": "2019-10-07T09:58:52+00:00", "unit": "", "value": 0.04, "name": "prob_meas0_prep1"}, {"date": "2019-10-07T09:58:52+00:00", "unit": "", "value": 0.016000000000000014, "name": "prob_meas1_prep0"}], [{"date": "2019-10-05T10:14:29+00:00", "unit": "\u00b5s", "value": 71.8423910064075, "name": "T1"}, {"date": "2019-10-07T10:13:37+00:00", "unit": "\u00b5s", "value": 86.1000420353437, "name": "T2"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "GHz", "value": 4.782680699300517, "name": "frequency"}, {"date": "2019-10-07T09:58:52+00:00", "unit": "", "value": 0.03500000000000003, "name": "readout_error"}, {"date": "2019-10-07T09:58:52+00:00", "unit": "", "value": 0.05800000000000005, "name": "prob_meas0_prep1"}, {"date": "2019-10-07T09:58:52+00:00", "unit": "", "value": 0.012, "name": "prob_meas1_prep0"}], [{"date": "2019-10-07T10:10:07+00:00", "unit": "\u00b5s", "value": 54.586493833620445, "name": "T1"}, {"date": "2019-10-07T10:11:53+00:00", "unit": "\u00b5s", "value": 64.28987220978689, "name": "T2"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "GHz", "value": 4.685409810699721, "name": "frequency"}, {"date": "2019-10-07T09:58:52+00:00", "unit": "", "value": 0.02750000000000008, "name": "readout_error"}, {"date": "2019-10-07T09:58:52+00:00", "unit": "", "value": 0.040000000000000036, "name": "prob_meas0_prep1"}, {"date": "2019-10-07T09:58:52+00:00", "unit": "", "value": 0.015, "name": "prob_meas1_prep0"}], [{"date": "2019-10-07T10:10:07+00:00", "unit": "\u00b5s", "value": 71.88906145160064, "name": "T1"}, {"date": "2019-10-07T10:13:37+00:00", "unit": "\u00b5s", "value": 100.29926276217378, "name": "T2"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "GHz", "value": 4.716928039422963, "name": "frequency"}, {"date": "2019-10-07T09:58:52+00:00", "unit": "", "value": 0.031000000000000028, "name": "readout_error"}, {"date": "2019-10-07T09:58:52+00:00", "unit": "", "value": 0.049000000000000044, "name": "prob_meas0_prep1"}, {"date": "2019-10-07T09:58:52+00:00", "unit": "", "value": 0.013, "name": "prob_meas1_prep0"}], [{"date": "2019-10-07T10:10:07+00:00", "unit": "\u00b5s", "value": 52.770110881257324, "name": "T1"}, {"date": "2019-10-07T10:11:53+00:00", "unit": "\u00b5s", "value": 61.064644709448174, "name": "T2"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "GHz", "value": 4.564662441799778, "name": "frequency"}, {"date": "2019-10-07T09:58:52+00:00", "unit": "", "value": 0.024499999999999966, "name": "readout_error"}, {"date": "2019-10-07T09:58:52+00:00", "unit": "", "value": 0.04400000000000004, "name": "prob_meas0_prep1"}, {"date": "2019-10-07T09:58:52+00:00", "unit": "", "value": 0.005, "name": "prob_meas1_prep0"}], [{"date": "2019-10-07T10:10:07+00:00", "unit": "\u00b5s", "value": 106.63080350740401, "name": "T1"}, {"date": "2019-10-07T10:11:53+00:00", "unit": "\u00b5s", "value": 63.847221711183266, "name": "T2"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "GHz", "value": 4.3093990890670115, "name": "frequency"}, {"date": "2019-10-07T09:58:52+00:00", "unit": "", "value": 0.05049999999999999, "name": "readout_error"}, {"date": "2019-10-07T09:58:52+00:00", "unit": "", "value": 0.05700000000000005, "name": "prob_meas0_prep1"}, {"date": "2019-10-07T09:58:52+00:00", "unit": "", "value": 0.044, "name": "prob_meas1_prep0"}], [{"date": "2019-10-07T10:10:07+00:00", "unit": "\u00b5s", "value": 53.25798980049998, "name": "T1"}, {"date": "2019-10-07T10:25:34+00:00", "unit": "\u00b5s", "value": 59.50768130704096, "name": "T2"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "GHz", "value": 4.662502738898581, "name": "frequency"}, {"date": "2019-10-07T09:58:52+00:00", "unit": "", "value": 0.03500000000000003, "name": "readout_error"}, {"date": "2019-10-07T09:58:52+00:00", "unit": "", "value": 0.05300000000000005, "name": "prob_meas0_prep1"}, {"date": "2019-10-07T09:58:52+00:00", "unit": "", "value": 0.017, "name": "prob_meas1_prep0"}], [{"date": "2019-10-07T10:10:07+00:00", "unit": "\u00b5s", "value": 70.7178193327572, "name": "T1"}, {"date": "2019-09-30T09:12:16+00:00", "unit": "\u00b5s", "value": 91.5454015797137, "name": "T2"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "GHz", "value": 4.83100170618901, "name": "frequency"}, {"date": "2019-10-07T09:58:52+00:00", "unit": "", "value": 0.034499999999999975, "name": "readout_error"}, {"date": "2019-10-07T09:58:52+00:00", "unit": "", "value": 0.04400000000000004, "name": "prob_meas0_prep1"}, {"date": "2019-10-07T09:58:52+00:00", "unit": "", "value": 0.025, "name": "prob_meas1_prep0"}], [{"date": "2019-10-05T10:14:29+00:00", "unit": "\u00b5s", "value": 81.4823552465602, "name": "T1"}, {"date": "2019-10-07T10:25:34+00:00", "unit": "\u00b5s", "value": 80.29259328068997, "name": "T2"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "GHz", "value": 4.623118095677056, "name": "frequency"}, {"date": "2019-10-07T09:58:52+00:00", "unit": "", "value": 0.04200000000000004, "name": "readout_error"}, {"date": "2019-10-07T09:58:52+00:00", "unit": "", "value": 0.05700000000000005, "name": "prob_meas0_prep1"}, {"date": "2019-10-07T09:58:52+00:00", "unit": "", "value": 0.027, "name": "prob_meas1_prep0"}], [{"date": "2019-10-06T09:52:34+00:00", "unit": "\u00b5s", "value": 75.22358280239378, "name": "T1"}, {"date": "2019-10-04T10:03:13+00:00", "unit": "\u00b5s", "value": 33.6275779166682, "name": "T2"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "GHz", "value": 4.697684600011119, "name": "frequency"}, {"date": "2019-10-07T09:58:52+00:00", "unit": "", "value": 0.040000000000000036, "name": "readout_error"}, {"date": "2019-10-07T09:58:52+00:00", "unit": "", "value": 0.05600000000000005, "name": "prob_meas0_prep1"}, {"date": "2019-10-07T09:58:52+00:00", "unit": "", "value": 0.024, "name": "prob_meas1_prep0"}], [{"date": "2019-10-07T10:10:07+00:00", "unit": "\u00b5s", "value": 70.98747296573573, "name": "T1"}, {"date": "2019-10-07T10:13:37+00:00", "unit": "\u00b5s", "value": 113.20586880438636, "name": "T2"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "GHz", "value": 4.424172526087491, "name": "frequency"}, {"date": "2019-10-07T09:58:52+00:00", "unit": "", "value": 0.02849999999999997, "name": "readout_error"}, {"date": "2019-10-07T09:58:52+00:00", "unit": "", "value": 0.04500000000000004, "name": "prob_meas0_prep1"}, {"date": "2019-10-07T09:58:52+00:00", "unit": "", "value": 0.012, "name": "prob_meas1_prep0"}], [{"date": "2019-10-07T10:10:07+00:00", "unit": "\u00b5s", "value": 49.81041273082784, "name": "T1"}, {"date": "2019-10-07T10:11:53+00:00", "unit": "\u00b5s", "value": 72.19589834748233, "name": "T2"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "GHz", "value": 4.521513114099939, "name": "frequency"}, {"date": "2019-10-07T09:58:52+00:00", "unit": "", "value": 0.03400000000000003, "name": "readout_error"}, {"date": "2019-10-07T09:58:52+00:00", "unit": "", "value": 0.061, "name": "prob_meas0_prep1"}, {"date": "2019-10-07T09:58:52+00:00", "unit": "", "value": 0.007000000000000006, "name": "prob_meas1_prep0"}], [{"date": "2019-10-07T10:10:07+00:00", "unit": "\u00b5s", "value": 82.5827071619044, "name": "T1"}, {"date": "2019-10-07T10:13:37+00:00", "unit": "\u00b5s", "value": 141.83075197141548, "name": "T2"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "GHz", "value": 4.603498735627486, "name": "frequency"}, {"date": "2019-10-07T09:58:52+00:00", "unit": "", "value": 0.034499999999999975, "name": "readout_error"}, {"date": "2019-10-07T09:58:52+00:00", "unit": "", "value": 0.05500000000000005, "name": "prob_meas0_prep1"}, {"date": "2019-10-07T09:58:52+00:00", "unit": "", "value": 0.014, "name": "prob_meas1_prep0"}], [{"date": "2019-10-07T10:10:07+00:00", "unit": "\u00b5s", "value": 95.85019354756015, "name": "T1"}, {"date": "2019-10-07T10:11:53+00:00", "unit": "\u00b5s", "value": 131.6531371896787, "name": "T2"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "GHz", "value": 4.624418341917924, "name": "frequency"}, {"date": "2019-10-07T09:58:52+00:00", "unit": "", "value": 0.027000000000000024, "name": "readout_error"}, {"date": "2019-10-07T09:58:52+00:00", "unit": "", "value": 0.03500000000000003, "name": "prob_meas0_prep1"}, {"date": "2019-10-07T09:58:52+00:00", "unit": "", "value": 0.019, "name": "prob_meas1_prep0"}], [{"date": "2019-10-07T10:10:07+00:00", "unit": "\u00b5s", "value": 35.88916991811218, "name": "T1"}, {"date": "2019-10-07T10:13:37+00:00", "unit": "\u00b5s", "value": 62.03490787220797, "name": "T2"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "GHz", "value": 4.757476384494219, "name": "frequency"}, {"date": "2019-10-07T09:58:52+00:00", "unit": "", "value": 0.024499999999999966, "name": "readout_error"}, {"date": "2019-10-07T09:58:52+00:00", "unit": "", "value": 0.03700000000000003, "name": "prob_meas0_prep1"}, {"date": "2019-10-07T09:58:52+00:00", "unit": "", "value": 0.012, "name": "prob_meas1_prep0"}], [{"date": "2019-10-06T09:52:34+00:00", "unit": "\u00b5s", "value": 104.68198729947855, "name": "T1"}, {"date": "2019-10-07T10:11:53+00:00", "unit": "\u00b5s", "value": 57.97422234961757, "name": "T2"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "GHz", "value": 4.488504164049106, "name": "frequency"}, {"date": "2019-10-07T09:58:52+00:00", "unit": "", "value": 0.033500000000000085, "name": "readout_error"}, {"date": "2019-10-07T09:58:52+00:00", "unit": "", "value": 0.05600000000000005, "name": "prob_meas0_prep1"}, {"date": "2019-10-07T09:58:52+00:00", "unit": "", "value": 0.011, "name": "prob_meas1_prep0"}], [{"date": "2019-10-07T10:10:07+00:00", "unit": "\u00b5s", "value": 92.36366680998361, "name": "T1"}, {"date": "2019-10-07T10:13:37+00:00", "unit": "\u00b5s", "value": 94.59861170877572, "name": "T2"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "GHz", "value": 4.738439313844244, "name": "frequency"}, {"date": "2019-10-07T09:58:52+00:00", "unit": "", "value": 0.027000000000000024, "name": "readout_error"}, {"date": "2019-10-07T09:58:52+00:00", "unit": "", "value": 0.039000000000000035, "name": "prob_meas0_prep1"}, {"date": "2019-10-07T09:58:52+00:00", "unit": "", "value": 0.015, "name": "prob_meas1_prep0"}], [{"date": "2019-10-07T10:10:07+00:00", "unit": "\u00b5s", "value": 107.49950920916586, "name": "T1"}, {"date": "2019-10-07T10:11:53+00:00", "unit": "\u00b5s", "value": 133.11941489971574, "name": "T2"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "GHz", "value": 4.8824966313847975, "name": "frequency"}, {"date": "2019-10-07T09:58:52+00:00", "unit": "", "value": 0.03049999999999997, "name": "readout_error"}, {"date": "2019-10-07T09:58:52+00:00", "unit": "", "value": 0.04700000000000004, "name": "prob_meas0_prep1"}, {"date": "2019-10-07T09:58:52+00:00", "unit": "", "value": 0.014, "name": "prob_meas1_prep0"}], [{"date": "2019-10-03T09:48:38+00:00", "unit": "\u00b5s", "value": 105.19080597037585, "name": "T1"}, {"date": "2019-10-07T10:13:37+00:00", "unit": "\u00b5s", "value": 111.7410815464684, "name": "T2"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "GHz", "value": 4.5284500512834285, "name": "frequency"}, {"date": "2019-10-07T09:58:52+00:00", "unit": "", "value": 0.08450000000000002, "name": "readout_error"}, {"date": "2019-10-07T09:58:52+00:00", "unit": "", "value": 0.101, "name": "prob_meas0_prep1"}, {"date": "2019-10-07T09:58:52+00:00", "unit": "", "value": 0.06799999999999995, "name": "prob_meas1_prep0"}], [{"date": "2019-10-04T10:01:26+00:00", "unit": "\u00b5s", "value": 129.411447716364, "name": "T1"}, {"date": "2019-10-04T10:03:13+00:00", "unit": "\u00b5s", "value": 94.47076929782332, "name": "T2"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "GHz", "value": 4.6976528478044095, "name": "frequency"}, {"date": "2019-10-07T09:58:52+00:00", "unit": "", "value": 0.04200000000000004, "name": "readout_error"}, {"date": "2019-10-07T09:58:52+00:00", "unit": "", "value": 0.06499999999999995, "name": "prob_meas0_prep1"}, {"date": "2019-10-07T09:58:52+00:00", "unit": "", "value": 0.019, "name": "prob_meas1_prep0"}]], "gates": [{"qubits": [0], "gate": "id", "parameters": [{"date": "2019-10-07T10:27:19+00:00", "unit": "", "value": 0.0005688851193218149, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "name": "id_0"}, {"qubits": [0], "gate": "u1", "parameters": [{"date": "2019-10-07T10:27:19+00:00", "unit": "", "value": 0.0, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 0.0, "name": "gate_length"}], "name": "u1_0"}, {"qubits": [0], "gate": "u2", "parameters": [{"date": "2019-10-07T10:27:19+00:00", "unit": "", "value": 0.0005688851193218149, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "name": "u2_0"}, {"qubits": [0], "gate": "u3", "parameters": [{"date": "2019-10-07T10:27:19+00:00", "unit": "", "value": 0.0011377702386436298, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 71.11111111111111, "name": "gate_length"}], "name": "u3_0"}, {"qubits": [1], "gate": "id", "parameters": [{"date": "2019-10-07T10:29:19+00:00", "unit": "", "value": 0.0005995105803450207, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "name": "id_1"}, {"qubits": [1], "gate": "u1", "parameters": [{"date": "2019-10-07T10:29:19+00:00", "unit": "", "value": 0.0, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 0.0, "name": "gate_length"}], "name": "u1_1"}, {"qubits": [1], "gate": "u2", "parameters": [{"date": "2019-10-07T10:29:19+00:00", "unit": "", "value": 0.0005995105803450207, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "name": "u2_1"}, {"qubits": [1], "gate": "u3", "parameters": [{"date": "2019-10-07T10:29:19+00:00", "unit": "", "value": 0.0011990211606900413, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 71.11111111111111, "name": "gate_length"}], "name": "u3_1"}, {"qubits": [2], "gate": "id", "parameters": [{"date": "2019-10-07T10:27:19+00:00", "unit": "", "value": 0.0022127694703092497, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "name": "id_2"}, {"qubits": [2], "gate": "u1", "parameters": [{"date": "2019-10-07T10:27:19+00:00", "unit": "", "value": 0.0, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 0.0, "name": "gate_length"}], "name": "u1_2"}, {"qubits": [2], "gate": "u2", "parameters": [{"date": "2019-10-07T10:27:19+00:00", "unit": "", "value": 0.0022127694703092497, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "name": "u2_2"}, {"qubits": [2], "gate": "u3", "parameters": [{"date": "2019-10-07T10:27:19+00:00", "unit": "", "value": 0.0044255389406184995, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 71.11111111111111, "name": "gate_length"}], "name": "u3_2"}, {"qubits": [3], "gate": "id", "parameters": [{"date": "2019-10-07T10:29:19+00:00", "unit": "", "value": 0.0009010448455703253, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "name": "id_3"}, {"qubits": [3], "gate": "u1", "parameters": [{"date": "2019-10-07T10:29:19+00:00", "unit": "", "value": 0.0, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 0.0, "name": "gate_length"}], "name": "u1_3"}, {"qubits": [3], "gate": "u2", "parameters": [{"date": "2019-10-07T10:29:19+00:00", "unit": "", "value": 0.0009010448455703253, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "name": "u2_3"}, {"qubits": [3], "gate": "u3", "parameters": [{"date": "2019-10-07T10:29:19+00:00", "unit": "", "value": 0.0018020896911406506, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 71.11111111111111, "name": "gate_length"}], "name": "u3_3"}, {"qubits": [4], "gate": "id", "parameters": [{"date": "2019-10-07T10:27:19+00:00", "unit": "", "value": 0.00022510791737658382, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "name": "id_4"}, {"qubits": [4], "gate": "u1", "parameters": [{"date": "2019-10-07T10:27:19+00:00", "unit": "", "value": 0.0, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 0.0, "name": "gate_length"}], "name": "u1_4"}, {"qubits": [4], "gate": "u2", "parameters": [{"date": "2019-10-07T10:27:19+00:00", "unit": "", "value": 0.00022510791737658382, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "name": "u2_4"}, {"qubits": [4], "gate": "u3", "parameters": [{"date": "2019-10-07T10:27:19+00:00", "unit": "", "value": 0.00045021583475316764, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 71.11111111111111, "name": "gate_length"}], "name": "u3_4"}, {"qubits": [5], "gate": "id", "parameters": [{"date": "2019-10-07T10:27:19+00:00", "unit": "", "value": 0.00037422191608514393, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "name": "id_5"}, {"qubits": [5], "gate": "u1", "parameters": [{"date": "2019-10-07T10:27:19+00:00", "unit": "", "value": 0.0, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 0.0, "name": "gate_length"}], "name": "u1_5"}, {"qubits": [5], "gate": "u2", "parameters": [{"date": "2019-10-07T10:27:19+00:00", "unit": "", "value": 0.00037422191608514393, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "name": "u2_5"}, {"qubits": [5], "gate": "u3", "parameters": [{"date": "2019-10-07T10:27:19+00:00", "unit": "", "value": 0.0007484438321702879, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 71.11111111111111, "name": "gate_length"}], "name": "u3_5"}, {"qubits": [6], "gate": "id", "parameters": [{"date": "2019-10-07T10:41:33+00:00", "unit": "", "value": 0.000378362284572259, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "name": "id_6"}, {"qubits": [6], "gate": "u1", "parameters": [{"date": "2019-10-07T10:41:33+00:00", "unit": "", "value": 0.0, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 0.0, "name": "gate_length"}], "name": "u1_6"}, {"qubits": [6], "gate": "u2", "parameters": [{"date": "2019-10-07T10:41:33+00:00", "unit": "", "value": 0.000378362284572259, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "name": "u2_6"}, {"qubits": [6], "gate": "u3", "parameters": [{"date": "2019-10-07T10:41:33+00:00", "unit": "", "value": 0.000756724569144518, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 71.11111111111111, "name": "gate_length"}], "name": "u3_6"}, {"qubits": [7], "gate": "id", "parameters": [{"date": "2019-10-07T10:27:19+00:00", "unit": "", "value": 0.0004125770256412488, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "name": "id_7"}, {"qubits": [7], "gate": "u1", "parameters": [{"date": "2019-10-07T10:27:19+00:00", "unit": "", "value": 0.0, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 0.0, "name": "gate_length"}], "name": "u1_7"}, {"qubits": [7], "gate": "u2", "parameters": [{"date": "2019-10-07T10:27:19+00:00", "unit": "", "value": 0.0004125770256412488, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "name": "u2_7"}, {"qubits": [7], "gate": "u3", "parameters": [{"date": "2019-10-07T10:27:19+00:00", "unit": "", "value": 0.0008251540512824976, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 71.11111111111111, "name": "gate_length"}], "name": "u3_7"}, {"qubits": [8], "gate": "id", "parameters": [{"date": "2019-10-07T10:41:33+00:00", "unit": "", "value": 0.0005417535111698166, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "name": "id_8"}, {"qubits": [8], "gate": "u1", "parameters": [{"date": "2019-10-07T10:41:33+00:00", "unit": "", "value": 0.0, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 0.0, "name": "gate_length"}], "name": "u1_8"}, {"qubits": [8], "gate": "u2", "parameters": [{"date": "2019-10-07T10:41:33+00:00", "unit": "", "value": 0.0005417535111698166, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "name": "u2_8"}, {"qubits": [8], "gate": "u3", "parameters": [{"date": "2019-10-07T10:41:33+00:00", "unit": "", "value": 0.0010835070223396332, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 71.11111111111111, "name": "gate_length"}], "name": "u3_8"}, {"qubits": [9], "gate": "id", "parameters": [{"date": "2019-10-07T10:27:19+00:00", "unit": "", "value": 0.0003155501728177163, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "name": "id_9"}, {"qubits": [9], "gate": "u1", "parameters": [{"date": "2019-10-07T10:27:19+00:00", "unit": "", "value": 0.0, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 0.0, "name": "gate_length"}], "name": "u1_9"}, {"qubits": [9], "gate": "u2", "parameters": [{"date": "2019-10-07T10:27:19+00:00", "unit": "", "value": 0.0003155501728177163, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "name": "u2_9"}, {"qubits": [9], "gate": "u3", "parameters": [{"date": "2019-10-07T10:27:19+00:00", "unit": "", "value": 0.0006311003456354326, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 71.11111111111111, "name": "gate_length"}], "name": "u3_9"}, {"qubits": [10], "gate": "id", "parameters": [{"date": "2019-10-07T10:29:19+00:00", "unit": "", "value": 0.0005368264006968577, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "name": "id_10"}, {"qubits": [10], "gate": "u1", "parameters": [{"date": "2019-10-07T10:29:19+00:00", "unit": "", "value": 0.0, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 0.0, "name": "gate_length"}], "name": "u1_10"}, {"qubits": [10], "gate": "u2", "parameters": [{"date": "2019-10-07T10:29:19+00:00", "unit": "", "value": 0.0005368264006968577, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "name": "u2_10"}, {"qubits": [10], "gate": "u3", "parameters": [{"date": "2019-10-07T10:29:19+00:00", "unit": "", "value": 0.0010736528013937153, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 71.11111111111111, "name": "gate_length"}], "name": "u3_10"}, {"qubits": [11], "gate": "id", "parameters": [{"date": "2019-10-07T10:27:19+00:00", "unit": "", "value": 0.0004105472539004482, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "name": "id_11"}, {"qubits": [11], "gate": "u1", "parameters": [{"date": "2019-10-07T10:27:19+00:00", "unit": "", "value": 0.0, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 0.0, "name": "gate_length"}], "name": "u1_11"}, {"qubits": [11], "gate": "u2", "parameters": [{"date": "2019-10-07T10:27:19+00:00", "unit": "", "value": 0.0004105472539004482, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "name": "u2_11"}, {"qubits": [11], "gate": "u3", "parameters": [{"date": "2019-10-07T10:27:19+00:00", "unit": "", "value": 0.0008210945078008964, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 71.11111111111111, "name": "gate_length"}], "name": "u3_11"}, {"qubits": [12], "gate": "id", "parameters": [{"date": "2019-10-07T10:29:19+00:00", "unit": "", "value": 0.0027345208771739214, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "name": "id_12"}, {"qubits": [12], "gate": "u1", "parameters": [{"date": "2019-10-07T10:29:19+00:00", "unit": "", "value": 0.0, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 0.0, "name": "gate_length"}], "name": "u1_12"}, {"qubits": [12], "gate": "u2", "parameters": [{"date": "2019-10-07T10:29:19+00:00", "unit": "", "value": 0.0027345208771739214, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "name": "u2_12"}, {"qubits": [12], "gate": "u3", "parameters": [{"date": "2019-10-07T10:29:19+00:00", "unit": "", "value": 0.005469041754347843, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 71.11111111111111, "name": "gate_length"}], "name": "u3_12"}, {"qubits": [13], "gate": "id", "parameters": [{"date": "2019-10-07T10:27:19+00:00", "unit": "", "value": 0.0034136411938485564, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "name": "id_13"}, {"qubits": [13], "gate": "u1", "parameters": [{"date": "2019-10-07T10:27:19+00:00", "unit": "", "value": 0.0, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 0.0, "name": "gate_length"}], "name": "u1_13"}, {"qubits": [13], "gate": "u2", "parameters": [{"date": "2019-10-07T10:27:19+00:00", "unit": "", "value": 0.0034136411938485564, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "name": "u2_13"}, {"qubits": [13], "gate": "u3", "parameters": [{"date": "2019-10-07T10:27:19+00:00", "unit": "", "value": 0.006827282387697113, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 71.11111111111111, "name": "gate_length"}], "name": "u3_13"}, {"qubits": [14], "gate": "id", "parameters": [{"date": "2019-10-07T10:29:19+00:00", "unit": "", "value": 0.0003519344587204795, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "name": "id_14"}, {"qubits": [14], "gate": "u1", "parameters": [{"date": "2019-10-07T10:29:19+00:00", "unit": "", "value": 0.0, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 0.0, "name": "gate_length"}], "name": "u1_14"}, {"qubits": [14], "gate": "u2", "parameters": [{"date": "2019-10-07T10:29:19+00:00", "unit": "", "value": 0.0003519344587204795, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "name": "u2_14"}, {"qubits": [14], "gate": "u3", "parameters": [{"date": "2019-10-07T10:29:19+00:00", "unit": "", "value": 0.000703868917440959, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 71.11111111111111, "name": "gate_length"}], "name": "u3_14"}, {"qubits": [15], "gate": "id", "parameters": [{"date": "2019-10-07T10:27:19+00:00", "unit": "", "value": 0.0016090282661921586, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "name": "id_15"}, {"qubits": [15], "gate": "u1", "parameters": [{"date": "2019-10-07T10:27:19+00:00", "unit": "", "value": 0.0, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 0.0, "name": "gate_length"}], "name": "u1_15"}, {"qubits": [15], "gate": "u2", "parameters": [{"date": "2019-10-07T10:27:19+00:00", "unit": "", "value": 0.0016090282661921586, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "name": "u2_15"}, {"qubits": [15], "gate": "u3", "parameters": [{"date": "2019-10-07T10:27:19+00:00", "unit": "", "value": 0.003218056532384317, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 71.11111111111111, "name": "gate_length"}], "name": "u3_15"}, {"qubits": [16], "gate": "id", "parameters": [{"date": "2019-10-07T10:29:19+00:00", "unit": "", "value": 0.00036655471720775684, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "name": "id_16"}, {"qubits": [16], "gate": "u1", "parameters": [{"date": "2019-10-07T10:29:19+00:00", "unit": "", "value": 0.0, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 0.0, "name": "gate_length"}], "name": "u1_16"}, {"qubits": [16], "gate": "u2", "parameters": [{"date": "2019-10-07T10:29:19+00:00", "unit": "", "value": 0.00036655471720775684, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "name": "u2_16"}, {"qubits": [16], "gate": "u3", "parameters": [{"date": "2019-10-07T10:29:19+00:00", "unit": "", "value": 0.0007331094344155137, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 71.11111111111111, "name": "gate_length"}], "name": "u3_16"}, {"qubits": [17], "gate": "id", "parameters": [{"date": "2019-10-07T10:27:19+00:00", "unit": "", "value": 0.00028697003074466967, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "name": "id_17"}, {"qubits": [17], "gate": "u1", "parameters": [{"date": "2019-10-07T10:27:19+00:00", "unit": "", "value": 0.0, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 0.0, "name": "gate_length"}], "name": "u1_17"}, {"qubits": [17], "gate": "u2", "parameters": [{"date": "2019-10-07T10:27:19+00:00", "unit": "", "value": 0.00028697003074466967, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "name": "u2_17"}, {"qubits": [17], "gate": "u3", "parameters": [{"date": "2019-10-07T10:27:19+00:00", "unit": "", "value": 0.0005739400614893393, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 71.11111111111111, "name": "gate_length"}], "name": "u3_17"}, {"qubits": [18], "gate": "id", "parameters": [{"date": "2019-10-07T10:29:19+00:00", "unit": "", "value": 0.0003816864785326346, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "name": "id_18"}, {"qubits": [18], "gate": "u1", "parameters": [{"date": "2019-10-07T10:29:19+00:00", "unit": "", "value": 0.0, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 0.0, "name": "gate_length"}], "name": "u1_18"}, {"qubits": [18], "gate": "u2", "parameters": [{"date": "2019-10-07T10:29:19+00:00", "unit": "", "value": 0.0003816864785326346, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "name": "u2_18"}, {"qubits": [18], "gate": "u3", "parameters": [{"date": "2019-10-07T10:29:19+00:00", "unit": "", "value": 0.0007633729570652692, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 71.11111111111111, "name": "gate_length"}], "name": "u3_18"}, {"qubits": [19], "gate": "id", "parameters": [{"date": "2019-10-07T10:27:19+00:00", "unit": "", "value": 0.0003179681265439094, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "name": "id_19"}, {"qubits": [19], "gate": "u1", "parameters": [{"date": "2019-10-07T10:27:19+00:00", "unit": "", "value": 0.0, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 0.0, "name": "gate_length"}], "name": "u1_19"}, {"qubits": [19], "gate": "u2", "parameters": [{"date": "2019-10-07T10:27:19+00:00", "unit": "", "value": 0.0003179681265439094, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 35.55555555555556, "name": "gate_length"}], "name": "u2_19"}, {"qubits": [19], "gate": "u3", "parameters": [{"date": "2019-10-07T10:27:19+00:00", "unit": "", "value": 0.0006359362530878187, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 71.11111111111111, "name": "gate_length"}], "name": "u3_19"}, {"qubits": [0, 1], "gate": "cx", "parameters": [{"date": "2019-10-07T10:56:40+00:00", "unit": "", "value": 0.016951800122571692, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 504.88888888888886, "name": "gate_length"}], "name": "cx0_1"}, {"qubits": [1, 0], "gate": "cx", "parameters": [{"date": "2019-10-07T10:56:40+00:00", "unit": "", "value": 0.016951800122571692, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 504.88888888888886, "name": "gate_length"}], "name": "cx1_0"}, {"qubits": [1, 2], "gate": "cx", "parameters": [{"date": "2019-10-07T11:13:55+00:00", "unit": "", "value": 0.03515653355748438, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 440.88888888888886, "name": "gate_length"}], "name": "cx1_2"}, {"qubits": [1, 6], "gate": "cx", "parameters": [{"date": "2019-10-07T11:20:02+00:00", "unit": "", "value": 0.015497896558171687, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 398.2222222222222, "name": "gate_length"}], "name": "cx1_6"}, {"qubits": [2, 1], "gate": "cx", "parameters": [{"date": "2019-10-07T11:13:55+00:00", "unit": "", "value": 0.03515653355748438, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 440.88888888888886, "name": "gate_length"}], "name": "cx2_1"}, {"qubits": [2, 3], "gate": "cx", "parameters": [{"date": "2019-10-07T11:37:38+00:00", "unit": "", "value": 0.0160990621644867, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 405.3333333333333, "name": "gate_length"}], "name": "cx2_3"}, {"qubits": [3, 2], "gate": "cx", "parameters": [{"date": "2019-10-07T11:37:38+00:00", "unit": "", "value": 0.0160990621644867, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 405.3333333333333, "name": "gate_length"}], "name": "cx3_2"}, {"qubits": [3, 4], "gate": "cx", "parameters": [{"date": "2019-10-07T11:55:00+00:00", "unit": "", "value": 0.011826337096007389, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 568.8888888888889, "name": "gate_length"}], "name": "cx3_4"}, {"qubits": [3, 8], "gate": "cx", "parameters": [{"date": "2019-10-07T12:12:23+00:00", "unit": "", "value": 0.02454490012996005, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 419.55555555555554, "name": "gate_length"}], "name": "cx3_8"}, {"qubits": [4, 3], "gate": "cx", "parameters": [{"date": "2019-10-07T11:55:00+00:00", "unit": "", "value": 0.011826337096007389, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 568.8888888888889, "name": "gate_length"}], "name": "cx4_3"}, {"qubits": [5, 6], "gate": "cx", "parameters": [{"date": "2019-10-07T12:29:49+00:00", "unit": "", "value": 0.02021153777322543, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 590.2222222222222, "name": "gate_length"}], "name": "cx5_6"}, {"qubits": [5, 10], "gate": "cx", "parameters": [{"date": "2019-10-07T14:13:49+00:00", "unit": "", "value": 0.015922830657213644, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 711.1111111111111, "name": "gate_length"}], "name": "cx5_10"}, {"qubits": [6, 1], "gate": "cx", "parameters": [{"date": "2019-10-07T11:20:02+00:00", "unit": "", "value": 0.015497896558171687, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 398.2222222222222, "name": "gate_length"}], "name": "cx6_1"}, {"qubits": [6, 5], "gate": "cx", "parameters": [{"date": "2019-10-07T12:29:49+00:00", "unit": "", "value": 0.02021153777322543, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 590.2222222222222, "name": "gate_length"}], "name": "cx6_5"}, {"qubits": [6, 7], "gate": "cx", "parameters": [{"date": "2019-10-07T12:47:04+00:00", "unit": "", "value": 0.013273348749692243, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 540.4444444444445, "name": "gate_length"}], "name": "cx6_7"}, {"qubits": [7, 6], "gate": "cx", "parameters": [{"date": "2019-10-07T12:47:04+00:00", "unit": "", "value": 0.013273348749692243, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 540.4444444444445, "name": "gate_length"}], "name": "cx7_6"}, {"qubits": [7, 8], "gate": "cx", "parameters": [{"date": "2019-10-07T13:04:16+00:00", "unit": "", "value": 0.016090620555644725, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 462.2222222222222, "name": "gate_length"}], "name": "cx7_8"}, {"qubits": [7, 12], "gate": "cx", "parameters": [{"date": "2019-10-07T13:21:38+00:00", "unit": "", "value": 0.011384053501933722, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 490.66666666666663, "name": "gate_length"}], "name": "cx7_12"}, {"qubits": [8, 3], "gate": "cx", "parameters": [{"date": "2019-10-07T12:12:23+00:00", "unit": "", "value": 0.02454490012996005, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 419.55555555555554, "name": "gate_length"}], "name": "cx8_3"}, {"qubits": [8, 7], "gate": "cx", "parameters": [{"date": "2019-10-07T13:04:16+00:00", "unit": "", "value": 0.016090620555644725, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 462.2222222222222, "name": "gate_length"}], "name": "cx8_7"}, {"qubits": [8, 9], "gate": "cx", "parameters": [{"date": "2019-10-07T13:39:02+00:00", "unit": "", "value": 0.014462795657984778, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 248.88888888888889, "name": "gate_length"}], "name": "cx8_9"}, {"qubits": [9, 8], "gate": "cx", "parameters": [{"date": "2019-10-07T13:39:02+00:00", "unit": "", "value": 0.014462795657984778, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 248.88888888888889, "name": "gate_length"}], "name": "cx9_8"}, {"qubits": [9, 14], "gate": "cx", "parameters": [{"date": "2019-10-07T13:56:21+00:00", "unit": "", "value": 0.010910395045313853, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 348.4444444444444, "name": "gate_length"}], "name": "cx9_14"}, {"qubits": [10, 5], "gate": "cx", "parameters": [{"date": "2019-10-07T14:13:49+00:00", "unit": "", "value": 0.015922830657213644, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 711.1111111111111, "name": "gate_length"}], "name": "cx10_5"}, {"qubits": [10, 11], "gate": "cx", "parameters": [{"date": "2019-10-07T14:35:42+00:00", "unit": "", "value": 0.010285529834766077, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 426.66666666666663, "name": "gate_length"}], "name": "cx10_11"}, {"qubits": [11, 10], "gate": "cx", "parameters": [{"date": "2019-10-07T14:35:42+00:00", "unit": "", "value": 0.010285529834766077, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 426.66666666666663, "name": "gate_length"}], "name": "cx11_10"}, {"qubits": [11, 12], "gate": "cx", "parameters": [{"date": "2019-10-07T14:57:14+00:00", "unit": "", "value": 0.02382591530175221, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 440.88888888888886, "name": "gate_length"}], "name": "cx11_12"}, {"qubits": [11, 16], "gate": "cx", "parameters": [{"date": "2019-10-07T16:09:43+00:00", "unit": "", "value": 0.01296503598444329, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 533.3333333333333, "name": "gate_length"}], "name": "cx11_16"}, {"qubits": [12, 7], "gate": "cx", "parameters": [{"date": "2019-10-07T13:21:38+00:00", "unit": "", "value": 0.011384053501933722, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 490.66666666666663, "name": "gate_length"}], "name": "cx12_7"}, {"qubits": [12, 11], "gate": "cx", "parameters": [{"date": "2019-10-07T14:57:14+00:00", "unit": "", "value": 0.02382591530175221, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 440.88888888888886, "name": "gate_length"}], "name": "cx12_11"}, {"qubits": [12, 13], "gate": "cx", "parameters": [{"date": "2019-10-07T15:14:44+00:00", "unit": "", "value": 0.0634606351390915, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 1045.3333333333333, "name": "gate_length"}], "name": "cx12_13"}, {"qubits": [13, 12], "gate": "cx", "parameters": [{"date": "2019-10-07T15:14:44+00:00", "unit": "", "value": 0.0634606351390915, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 1045.3333333333333, "name": "gate_length"}], "name": "cx13_12"}, {"qubits": [13, 14], "gate": "cx", "parameters": [{"date": "2019-10-07T15:50:34+00:00", "unit": "", "value": 0.02584357040051538, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 369.77777777777777, "name": "gate_length"}], "name": "cx13_14"}, {"qubits": [13, 18], "gate": "cx", "parameters": [{"date": "2019-10-07T15:33:08+00:00", "unit": "", "value": 0.02862492489048793, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 568.8888888888889, "name": "gate_length"}], "name": "cx13_18"}, {"qubits": [14, 9], "gate": "cx", "parameters": [{"date": "2019-10-07T13:56:21+00:00", "unit": "", "value": 0.010910395045313853, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 348.4444444444444, "name": "gate_length"}], "name": "cx14_9"}, {"qubits": [14, 13], "gate": "cx", "parameters": [{"date": "2019-10-07T15:50:34+00:00", "unit": "", "value": 0.02584357040051538, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 369.77777777777777, "name": "gate_length"}], "name": "cx14_13"}, {"qubits": [15, 16], "gate": "cx", "parameters": [{"date": "2019-10-07T16:32:14+00:00", "unit": "", "value": 0.013742969331295318, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 391.1111111111111, "name": "gate_length"}], "name": "cx15_16"}, {"qubits": [16, 11], "gate": "cx", "parameters": [{"date": "2019-10-07T16:09:43+00:00", "unit": "", "value": 0.01296503598444329, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 533.3333333333333, "name": "gate_length"}], "name": "cx16_11"}, {"qubits": [16, 15], "gate": "cx", "parameters": [{"date": "2019-10-07T16:32:14+00:00", "unit": "", "value": 0.013742969331295318, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 391.1111111111111, "name": "gate_length"}], "name": "cx16_15"}, {"qubits": [16, 17], "gate": "cx", "parameters": [{"date": "2019-10-07T16:49:53+00:00", "unit": "", "value": 0.012724327435765598, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 554.6666666666666, "name": "gate_length"}], "name": "cx16_17"}, {"qubits": [17, 16], "gate": "cx", "parameters": [{"date": "2019-10-07T16:49:53+00:00", "unit": "", "value": 0.012724327435765598, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 554.6666666666666, "name": "gate_length"}], "name": "cx17_16"}, {"qubits": [17, 18], "gate": "cx", "parameters": [{"date": "2019-10-07T17:07:15+00:00", "unit": "", "value": 0.0116296454858979, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 760.8888888888888, "name": "gate_length"}], "name": "cx17_18"}, {"qubits": [18, 13], "gate": "cx", "parameters": [{"date": "2019-10-07T15:33:08+00:00", "unit": "", "value": 0.02862492489048793, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 568.8888888888889, "name": "gate_length"}], "name": "cx18_13"}, {"qubits": [18, 17], "gate": "cx", "parameters": [{"date": "2019-10-07T17:07:15+00:00", "unit": "", "value": 0.0116296454858979, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 760.8888888888888, "name": "gate_length"}], "name": "cx18_17"}, {"qubits": [18, 19], "gate": "cx", "parameters": [{"date": "2019-10-07T17:24:07+00:00", "unit": "", "value": 0.009729516587356962, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 533.3333333333333, "name": "gate_length"}], "name": "cx18_19"}, {"qubits": [19, 18], "gate": "cx", "parameters": [{"date": "2019-10-07T17:24:07+00:00", "unit": "", "value": 0.009729516587356962, "name": "gate_error"}, {"date": "2019-10-07T17:24:07+00:00", "unit": "ns", "value": 533.3333333333333, "name": "gate_length"}], "name": "cx19_18"}], "backend_version": "1.0.10", "backend_name": "ibmq_singapore", "last_update_date": "2019-10-07T17:24:07+00:00"} \ No newline at end of file diff --git a/test/benchmarks/mapping_passes.py b/test/benchmarks/mapping_passes.py new file mode 100644 index 000000000000..b84390d32046 --- /dev/null +++ b/test/benchmarks/mapping_passes.py @@ -0,0 +1,219 @@ +# -*- coding: utf-8 -*- + +# This code is part of Qiskit. +# +# (C) Copyright IBM 2019. +# +# This code is licensed under the Apache License, Version 2.0. You may +# obtain a copy of this license in the LICENSE.txt file in the root directory +# of this source tree or at http://www.apache.org/licenses/LICENSE-2.0. +# +# Any modifications or derivative works of this code must retain this +# copyright notice, and modified files need to carry a notice indicating +# that they have been altered from the originals. + +# pylint: disable=no-member,invalid-name,missing-docstring,no-name-in-module +# pylint: disable=attribute-defined-outside-init,unsubscriptable-object +# pylint: disable=unused-wildcard-import,wildcard-import,undefined-variable + +from qiskit.transpiler import CouplingMap +from qiskit.transpiler.passes import * +from qiskit.converters import circuit_to_dag + +from .backends import fake_singapore +from .utils import random_circuit + + +class PassBenchmarks: + + params = ([1, 2, 5, 8, 14, 20], + [8, 128, 1024]) + + param_names = ['n_qubits', 'depth'] + timeout = 300 + + def setup(self, n_qubits, depth): + seed = 42 + self.circuit = random_circuit(n_qubits, depth, measure=True, + conditional=True, reset=True, seed=seed, + max_operands=2) + self.fresh_dag = circuit_to_dag(self.circuit) + self.basis_gates = ['u1', 'u2', 'u3', 'cx', 'iid'] + self.cmap = [[0, 1], [1, 0], [1, 2], [1, 6], [2, 1], [2, 3], [3, 2], + [3, 4], [3, 8], [4, 3], [5, 6], [5, 10], [6, 1], [6, 5], + [6, 7], [7, 6], [7, 8], [7, 12], [8, 3], [8, 7], [8, 9], + [9, 8], [9, 14], [10, 5], [10, 11], [11, 10], [11, 12], + [11, 16], [12, 7], [12, 11], [12, 13], [13, 12], [13, 14], + [13, 18], [14, 9], [14, 13], [15, 16], [16, 11], [16, 15], + [16, 17], [17, 16], [17, 18], [18, 13], [18, 17], + [18, 19], [19, 18]] + self.coupling_map = CouplingMap(self.cmap) + + layout_pass = DenseLayout(self.coupling_map) + layout_pass.run(self.fresh_dag) + self.layout = layout_pass.property_set['layout'] + full_ancilla_pass = FullAncillaAllocation(self.coupling_map) + full_ancilla_pass.property_set['layout'] = self.layout + self.full_ancilla_dag = full_ancilla_pass.run(self.fresh_dag) + enlarge_pass = EnlargeWithAncilla() + enlarge_pass.property_set['layout'] = self.layout + self.enlarge_dag = enlarge_pass.run(self.full_ancilla_dag) + apply_pass = ApplyLayout() + apply_pass.property_set['layout'] = self.layout + self.dag = apply_pass.run(self.enlarge_dag) + self.backend_props = fake_singapore.FakeSingapore().properties() + + def time_stochastic_swap(self, _, __): + swap = StochasticSwap(self.coupling_map, seed=42) + swap.property_set['layout'] = self.layout + swap.run(self.dag) + + def peakmem_stochastic_swap(self, _, __): + swap = StochasticSwap(self.coupling_map, seed=42) + swap.property_set['layout'] = self.layout + swap.run(self.dag) + + def track_stochastic_swap_depth(self, _, __): + swap = StochasticSwap(self.coupling_map, seed=42) + swap.property_set['layout'] = self.layout + return swap.run(self.dag).depth() + + def track_stochastic_swap_swap_count(self, _, __): + swap = StochasticSwap(self.coupling_map, seed=42) + swap.property_set['layout'] = self.layout + return swap.run(self.dag).count_ops().get('swap') + + def time_lookahead_swap(self, _, __): + swap = LookaheadSwap(self.coupling_map) + swap.property_set['layout'] = self.layout + swap.run(self.dag) + + def peakmem_lookahead_swap(self, _, __): + swap = LookaheadSwap(self.coupling_map) + swap.property_set['layout'] = self.layout + swap.run(self.dag) + + def track_lookahead_swap_depth(self, _, __): + swap = LookaheadSwap(self.coupling_map) + swap.property_set['layout'] = self.layout + return swap.run(self.dag).depth() + + def track_lookahead_swap_swap_count(self, _, __): + swap = LookaheadSwap(self.coupling_map) + swap.property_set['layout'] = self.layout + return swap.run(self.dag).depth().count_ops().get('swap') + + def time_basic_swap(self, _, __): + swap = BasicSwap(self.coupling_map) + swap.property_set['layout'] = self.layout + swap.run(self.dag) + + def peakmem_basic_swap(self, _, __): + swap = BasicSwap(self.coupling_map) + swap.property_set['layout'] = self.layout + swap.run(self.dag) + + def track_basic_swap_depth(self, _, __): + swap = BasicSwap(self.coupling_map) + swap.property_set['layout'] = self.layout + return swap.run(self.dag).depth() + + def track_basic_swap_swap_count(self, _, __): + swap = BasicSwap(self.coupling_map) + swap.property_set['layout'] = self.layout + return swap.run(self.dag).depth().count_ops().get('swap') + + def time_csp_layout(self, _, __): + CSPLayout(self.coupling_map, seed=42).run(self.fresh_dag) + + def peakmem_csp_layout(self, _, __): + CSPLayout(self.coupling_map, seed=42).run(self.fresh_dag) + + def time_dense_layout(self, _, __): + DenseLayout(self.coupling_map).run(self.fresh_dag) + + def peakmem_dense_layout(self, _, __): + DenseLayout(self.coupling_map).run(self.fresh_dag) + + def time_layout_2q_distance(self, _, __): + layout = Layout2qDistance(self.coupling_map) + layout.property_set['layout'] = self.layout + layout.run(self.dag) + + def peakmem_layout_2q_distance(self, _, __): + layout = Layout2qDistance(self.coupling_map) + layout.property_set['layout'] = self.layout + layout.run(self.dag) + + def time_cxdirection(self, _, __): + CXDirection(self.coupling_map).run(self.dag) + + def peakmem_cxdirection(self, _, __): + CXDirection(self.coupling_map).run(self.dag) + + def track_cxdirection_depth(self, _, __): + return CXDirection(self.coupling_map).run(self.dag).depth() + + def track_cxdirection_cnot_count(self, _, __): + return CXDirection( + self.coupling_map).run(self.dag).count_ops().get('cx') + + def time_apply_layout(self, _, __): + layout = ApplyLayout() + layout.property_set['layout'] = self.layout + layout.run(self.dag) + + def peakmem_apply_layout(self, _, __): + layout = ApplyLayout() + layout.property_set['layout'] = self.layout + layout.run(self.dag) + + def time_full_ancilla_allocation(self, _, __): + ancilla = FullAncillaAllocation(self.coupling_map) + ancilla.property_set['layout'] = self.layout + ancilla.run(self.fresh_dag) + + def peakmem_full_ancilla_allocation(self, _, __): + ancilla = FullAncillaAllocation(self.coupling_map) + ancilla.property_set['layout'] = self.layout + ancilla.run(self.fresh_dag) + + def time_enlarge_with_ancilla(self, _, __): + ancilla = EnlargeWithAncilla() + ancilla.property_set['layout'] = self.layout + ancilla.run(self.full_ancilla_dag) + + def peakmem_enlarge_with_ancilla(self, _, __): + ancilla = EnlargeWithAncilla() + ancilla.property_set['layout'] = self.layout + ancilla.run(self.full_ancilla_dag) + + def time_check_map(self, _, __): + CheckMap(self.coupling_map).run(self.dag) + + def peakmem_check_map(self, _, __): + CheckMap(self.coupling_map).run(self.dag) + + def time_check_cx_direction(self, _, __): + CheckCXDirection(self.coupling_map).run(self.dag) + + def peakmem_check_cx_direction(self, _, __): + CheckCXDirection(self.coupling_map).run(self.dag) + + def time_trivial_layout(self, _, __): + TrivialLayout(self.coupling_map).run(self.fresh_dag) + + def peakmem_trivial_layout(self, _, __): + TrivialLayout(self.coupling_map).run(self.fresh_dag) + + def time_set_layout(self, _, __): + SetLayout(self.layout).run(self.fresh_dag) + + def peakmem_set_layout(self, _, __): + SetLayout(self.layout).run(self.fresh_dag) + + def time_noise_adaptive_layout(self, _, __): + NoiseAdaptiveLayout(self.backend_props).run(self.fresh_dag) + + def peakmem_noise_adaptive_layout(self, _, __): + NoiseAdaptiveLayout(self.backend_props).run(self.fresh_dag)