From 08ae282d56cf288c4f0cb231543b027c853dba46 Mon Sep 17 00:00:00 2001 From: Eric Arellano <14852634+Eric-Arellano@users.noreply.github.com> Date: Wed, 6 Mar 2024 10:27:01 -0500 Subject: [PATCH 1/9] Make 0.20 historical --- .../api/qiskit-ibm-runtime/0.20/_package.json | 4 + docs/api/qiskit-ibm-runtime/0.20/_toc.json | 517 +++++++++++++ .../qiskit-ibm-runtime/0.20/fake_provider.md | 189 +++++ docs/api/qiskit-ibm-runtime/0.20/index.md | 12 + docs/api/qiskit-ibm-runtime/0.20/options.md | 48 ++ .../0.20/qiskit_ibm_runtime.Estimator.md | 145 ++++ .../0.20/qiskit_ibm_runtime.IBMBackend.md | 711 ++++++++++++++++++ ...qiskit_ibm_runtime.QiskitRuntimeService.md | 514 +++++++++++++ .../0.20/qiskit_ibm_runtime.RuntimeDecoder.md | 60 ++ .../0.20/qiskit_ibm_runtime.RuntimeEncoder.md | 105 +++ .../0.20/qiskit_ibm_runtime.RuntimeJob.md | 553 ++++++++++++++ .../0.20/qiskit_ibm_runtime.RuntimeOptions.md | 108 +++ .../0.20/qiskit_ibm_runtime.Sampler.md | 136 ++++ .../0.20/qiskit_ibm_runtime.Session.md | 204 +++++ ...t_ibm_runtime.fake_provider.FakeAlmaden.md | 177 +++++ ...ibm_runtime.fake_provider.FakeAlmadenV2.md | 387 ++++++++++ ...it_ibm_runtime.fake_provider.FakeArmonk.md | 189 +++++ ..._ibm_runtime.fake_provider.FakeArmonkV2.md | 381 ++++++++++ ...it_ibm_runtime.fake_provider.FakeAthens.md | 185 +++++ ..._ibm_runtime.fake_provider.FakeAthensV2.md | 377 ++++++++++ ..._ibm_runtime.fake_provider.FakeAuckland.md | 377 ++++++++++ ...kit_ibm_runtime.fake_provider.FakeBelem.md | 185 +++++ ...t_ibm_runtime.fake_provider.FakeBelemV2.md | 377 ++++++++++ ...bm_runtime.fake_provider.FakeBoeblingen.md | 195 +++++ ..._runtime.fake_provider.FakeBoeblingenV2.md | 387 ++++++++++ ...it_ibm_runtime.fake_provider.FakeBogota.md | 185 +++++ ..._ibm_runtime.fake_provider.FakeBogotaV2.md | 377 ++++++++++ ..._ibm_runtime.fake_provider.FakeBrooklyn.md | 185 +++++ ...bm_runtime.fake_provider.FakeBrooklynV2.md | 377 ++++++++++ ...bm_runtime.fake_provider.FakeBurlington.md | 173 +++++ ..._runtime.fake_provider.FakeBurlingtonV2.md | 383 ++++++++++ ...kit_ibm_runtime.fake_provider.FakeCairo.md | 185 +++++ ...t_ibm_runtime.fake_provider.FakeCairoV2.md | 377 ++++++++++ ...ibm_runtime.fake_provider.FakeCambridge.md | 179 +++++ ...m_runtime.fake_provider.FakeCambridgeV2.md | 389 ++++++++++ ...bm_runtime.fake_provider.FakeCasablanca.md | 185 +++++ ..._runtime.fake_provider.FakeCasablancaV2.md | 377 ++++++++++ ...kit_ibm_runtime.fake_provider.FakeEssex.md | 175 +++++ ...t_ibm_runtime.fake_provider.FakeEssexV2.md | 385 ++++++++++ ...it_ibm_runtime.fake_provider.FakeGeneva.md | 377 ++++++++++ ...ibm_runtime.fake_provider.FakeGuadalupe.md | 185 +++++ ...m_runtime.fake_provider.FakeGuadalupeV2.md | 377 ++++++++++ ...kit_ibm_runtime.fake_provider.FakeHanoi.md | 185 +++++ ...t_ibm_runtime.fake_provider.FakeHanoiV2.md | 377 ++++++++++ ...t_ibm_runtime.fake_provider.FakeJakarta.md | 185 +++++ ...ibm_runtime.fake_provider.FakeJakartaV2.md | 377 ++++++++++ ..._runtime.fake_provider.FakeJohannesburg.md | 177 +++++ ...untime.fake_provider.FakeJohannesburgV2.md | 387 ++++++++++ ...t_ibm_runtime.fake_provider.FakeKolkata.md | 185 +++++ ...ibm_runtime.fake_provider.FakeKolkataV2.md | 377 ++++++++++ ...kit_ibm_runtime.fake_provider.FakeLagos.md | 185 +++++ ...t_ibm_runtime.fake_provider.FakeLagosV2.md | 377 ++++++++++ ...skit_ibm_runtime.fake_provider.FakeLima.md | 185 +++++ ...it_ibm_runtime.fake_provider.FakeLimaV2.md | 377 ++++++++++ ...it_ibm_runtime.fake_provider.FakeLondon.md | 175 +++++ ..._ibm_runtime.fake_provider.FakeLondonV2.md | 385 ++++++++++ ...ibm_runtime.fake_provider.FakeManhattan.md | 185 +++++ ...m_runtime.fake_provider.FakeManhattanV2.md | 377 ++++++++++ ...it_ibm_runtime.fake_provider.FakeManila.md | 185 +++++ ..._ibm_runtime.fake_provider.FakeManilaV2.md | 377 ++++++++++ ...ibm_runtime.fake_provider.FakeMelbourne.md | 142 ++++ ...m_runtime.fake_provider.FakeMelbourneV2.md | 377 ++++++++++ ..._ibm_runtime.fake_provider.FakeMontreal.md | 185 +++++ ...bm_runtime.fake_provider.FakeMontrealV2.md | 377 ++++++++++ ...it_ibm_runtime.fake_provider.FakeMumbai.md | 185 +++++ ..._ibm_runtime.fake_provider.FakeMumbaiV2.md | 377 ++++++++++ ...t_ibm_runtime.fake_provider.FakeNairobi.md | 185 +++++ ...ibm_runtime.fake_provider.FakeNairobiV2.md | 377 ++++++++++ ...skit_ibm_runtime.fake_provider.FakeOslo.md | 377 ++++++++++ ...t_ibm_runtime.fake_provider.FakeOurense.md | 173 +++++ ...ibm_runtime.fake_provider.FakeOurenseV2.md | 383 ++++++++++ ...kit_ibm_runtime.fake_provider.FakeParis.md | 197 +++++ ...t_ibm_runtime.fake_provider.FakeParisV2.md | 389 ++++++++++ ...kit_ibm_runtime.fake_provider.FakePerth.md | 377 ++++++++++ ..._runtime.fake_provider.FakePoughkeepsie.md | 146 ++++ ...untime.fake_provider.FakePoughkeepsieV2.md | 377 ++++++++++ ...it_ibm_runtime.fake_provider.FakePrague.md | 377 ++++++++++ ..._ibm_runtime.fake_provider.FakeProvider.md | 76 ++ ....fake_provider.FakeProviderForBackendV2.md | 84 +++ ...kit_ibm_runtime.fake_provider.FakeQuito.md | 185 +++++ ...t_ibm_runtime.fake_provider.FakeQuitoV2.md | 377 ++++++++++ ...ibm_runtime.fake_provider.FakeRochester.md | 167 ++++ ...m_runtime.fake_provider.FakeRochesterV2.md | 377 ++++++++++ ...skit_ibm_runtime.fake_provider.FakeRome.md | 185 +++++ ...it_ibm_runtime.fake_provider.FakeRomeV2.md | 377 ++++++++++ ...m_runtime.fake_provider.FakeRueschlikon.md | 138 ++++ ..._ibm_runtime.fake_provider.FakeSantiago.md | 185 +++++ ...bm_runtime.fake_provider.FakeSantiagoV2.md | 377 ++++++++++ ...bm_runtime.fake_provider.FakeSherbrooke.md | 377 ++++++++++ ...ibm_runtime.fake_provider.FakeSingapore.md | 177 +++++ ...m_runtime.fake_provider.FakeSingaporeV2.md | 387 ++++++++++ ...it_ibm_runtime.fake_provider.FakeSydney.md | 185 +++++ ..._ibm_runtime.fake_provider.FakeSydneyV2.md | 377 ++++++++++ ..._ibm_runtime.fake_provider.FakeTenerife.md | 144 ++++ ...kit_ibm_runtime.fake_provider.FakeTokyo.md | 146 ++++ ...t_ibm_runtime.fake_provider.FakeToronto.md | 185 +++++ ...ibm_runtime.fake_provider.FakeTorontoV2.md | 377 ++++++++++ ..._ibm_runtime.fake_provider.FakeValencia.md | 185 +++++ ...bm_runtime.fake_provider.FakeValenciaV2.md | 377 ++++++++++ ...skit_ibm_runtime.fake_provider.FakeVigo.md | 173 +++++ ...it_ibm_runtime.fake_provider.FakeVigoV2.md | 383 ++++++++++ ...bm_runtime.fake_provider.FakeWashington.md | 185 +++++ ..._runtime.fake_provider.FakeWashingtonV2.md | 377 ++++++++++ ..._ibm_runtime.fake_provider.FakeYorktown.md | 175 +++++ ...bm_runtime.fake_provider.FakeYorktownV2.md | 385 ++++++++++ ..._ibm_runtime.options.EnvironmentOptions.md | 67 ++ ...it_ibm_runtime.options.ExecutionOptions.md | 53 ++ .../qiskit_ibm_runtime.options.Options.md | 124 +++ ...t_ibm_runtime.options.ResilienceOptions.md | 63 ++ ...it_ibm_runtime.options.SimulatorOptions.md | 93 +++ ...bm_runtime.options.TranspilationOptions.md | 80 ++ ...kit_ibm_runtime.transpiler.passes.basis.md | 22 + .../qiskit_ibm_runtime.transpiler.passes.md | 29 + ....passes.scheduling.ALAPScheduleAnalysis.md | 153 ++++ ....passes.scheduling.ASAPScheduleAnalysis.md | 153 ++++ ...piler.passes.scheduling.BlockBasePadder.md | 147 ++++ ...ling.DynamicCircuitInstructionDurations.md | 136 ++++ ...e.transpiler.passes.scheduling.PadDelay.md | 160 ++++ ...asses.scheduling.PadDynamicalDecoupling.md | 296 ++++++++ ...bm_runtime.transpiler.passes.scheduling.md | 380 ++++++++++ .../0.20/runtime_service.md | 146 ++++ .../api/qiskit-ibm-runtime/0.20/transpiler.md | 26 + .../api/qiskit-ibm-runtime/0.20/objects.inv | Bin 0 -> 53614 bytes .../0.20/fake_provider-1_00.png | Bin 0 -> 13102 bytes .../0.20/fake_provider-1_01.png | Bin 0 -> 22140 bytes .../0.20/fake_provider-1_02.png | Bin 0 -> 14701 bytes ...ntime.transpiler.passes.scheduling_0_0.png | Bin 0 -> 57845 bytes ...time.transpiler.passes.scheduling_10_0.png | Bin 0 -> 9687 bytes ...time.transpiler.passes.scheduling_11_0.png | Bin 0 -> 7004 bytes ...time.transpiler.passes.scheduling_12_0.png | Bin 0 -> 6991 bytes ...time.transpiler.passes.scheduling_13_0.png | Bin 0 -> 7246 bytes ...time.transpiler.passes.scheduling_14_0.png | Bin 0 -> 18297 bytes ...time.transpiler.passes.scheduling_15_0.png | Bin 0 -> 11921 bytes ...ntime.transpiler.passes.scheduling_1_0.png | Bin 0 -> 63023 bytes ...ntime.transpiler.passes.scheduling_2_0.png | Bin 0 -> 3565 bytes ...ntime.transpiler.passes.scheduling_3_0.png | Bin 0 -> 21200 bytes ...ntime.transpiler.passes.scheduling_4_0.png | Bin 0 -> 21200 bytes ...ntime.transpiler.passes.scheduling_5_0.png | Bin 0 -> 11208 bytes ...ntime.transpiler.passes.scheduling_6_0.png | Bin 0 -> 7598 bytes ...ntime.transpiler.passes.scheduling_7_0.png | Bin 0 -> 8263 bytes ...ntime.transpiler.passes.scheduling_8_0.png | Bin 0 -> 12759 bytes ...ntime.transpiler.passes.scheduling_9_0.png | Bin 0 -> 9282 bytes 142 files changed, 30704 insertions(+) create mode 100644 docs/api/qiskit-ibm-runtime/0.20/_package.json create mode 100644 docs/api/qiskit-ibm-runtime/0.20/_toc.json create mode 100644 docs/api/qiskit-ibm-runtime/0.20/fake_provider.md create mode 100644 docs/api/qiskit-ibm-runtime/0.20/index.md create mode 100644 docs/api/qiskit-ibm-runtime/0.20/options.md create mode 100644 docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.Estimator.md create mode 100644 docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.IBMBackend.md create mode 100644 docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.QiskitRuntimeService.md create mode 100644 docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.RuntimeDecoder.md create mode 100644 docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.RuntimeEncoder.md create mode 100644 docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.RuntimeJob.md create mode 100644 docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.RuntimeOptions.md create mode 100644 docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.Sampler.md create mode 100644 docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.Session.md create mode 100644 docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeAlmaden.md create mode 100644 docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeAlmadenV2.md create mode 100644 docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeArmonk.md create mode 100644 docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeArmonkV2.md create mode 100644 docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeAthens.md create mode 100644 docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeAthensV2.md create mode 100644 docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeAuckland.md create mode 100644 docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeBelem.md create mode 100644 docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeBelemV2.md create mode 100644 docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeBoeblingen.md create mode 100644 docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeBoeblingenV2.md create mode 100644 docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeBogota.md create mode 100644 docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeBogotaV2.md create mode 100644 docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeBrooklyn.md create mode 100644 docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeBrooklynV2.md create mode 100644 docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeBurlington.md create mode 100644 docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeBurlingtonV2.md create mode 100644 docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeCairo.md create mode 100644 docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeCairoV2.md create mode 100644 docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeCambridge.md create mode 100644 docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeCambridgeV2.md create mode 100644 docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeCasablanca.md create mode 100644 docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeCasablancaV2.md create mode 100644 docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeEssex.md create mode 100644 docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeEssexV2.md create mode 100644 docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeGeneva.md create mode 100644 docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeGuadalupe.md create mode 100644 docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeGuadalupeV2.md create mode 100644 docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeHanoi.md create mode 100644 docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeHanoiV2.md create mode 100644 docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeJakarta.md create mode 100644 docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeJakartaV2.md create mode 100644 docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeJohannesburg.md create mode 100644 docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeJohannesburgV2.md create mode 100644 docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeKolkata.md create mode 100644 docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeKolkataV2.md create mode 100644 docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeLagos.md create mode 100644 docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeLagosV2.md create mode 100644 docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeLima.md create mode 100644 docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeLimaV2.md create mode 100644 docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeLondon.md create mode 100644 docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeLondonV2.md create mode 100644 docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeManhattan.md create mode 100644 docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeManhattanV2.md create mode 100644 docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeManila.md create mode 100644 docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeManilaV2.md create mode 100644 docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeMelbourne.md create mode 100644 docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeMelbourneV2.md create mode 100644 docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeMontreal.md create mode 100644 docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeMontrealV2.md create mode 100644 docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeMumbai.md create mode 100644 docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeMumbaiV2.md create mode 100644 docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeNairobi.md create mode 100644 docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeNairobiV2.md create mode 100644 docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeOslo.md create mode 100644 docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeOurense.md create mode 100644 docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeOurenseV2.md create mode 100644 docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeParis.md create mode 100644 docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeParisV2.md create mode 100644 docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakePerth.md create mode 100644 docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakePoughkeepsie.md create mode 100644 docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakePoughkeepsieV2.md create mode 100644 docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakePrague.md create mode 100644 docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeProvider.md create mode 100644 docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeProviderForBackendV2.md create mode 100644 docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeQuito.md create mode 100644 docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeQuitoV2.md create mode 100644 docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeRochester.md create mode 100644 docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeRochesterV2.md create mode 100644 docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeRome.md create mode 100644 docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeRomeV2.md create mode 100644 docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeRueschlikon.md create mode 100644 docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeSantiago.md create mode 100644 docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeSantiagoV2.md create mode 100644 docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeSherbrooke.md create mode 100644 docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeSingapore.md create mode 100644 docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeSingaporeV2.md create mode 100644 docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeSydney.md create mode 100644 docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeSydneyV2.md create mode 100644 docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeTenerife.md create mode 100644 docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeTokyo.md create mode 100644 docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeToronto.md create mode 100644 docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeTorontoV2.md create mode 100644 docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeValencia.md create mode 100644 docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeValenciaV2.md create mode 100644 docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeVigo.md create mode 100644 docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeVigoV2.md create mode 100644 docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeWashington.md create mode 100644 docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeWashingtonV2.md create mode 100644 docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeYorktown.md create mode 100644 docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeYorktownV2.md create mode 100644 docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.options.EnvironmentOptions.md create mode 100644 docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.options.ExecutionOptions.md create mode 100644 docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.options.Options.md create mode 100644 docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.options.ResilienceOptions.md create mode 100644 docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.options.SimulatorOptions.md create mode 100644 docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.options.TranspilationOptions.md create mode 100644 docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.transpiler.passes.basis.md create mode 100644 docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.transpiler.passes.md create mode 100644 docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.transpiler.passes.scheduling.ALAPScheduleAnalysis.md create mode 100644 docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.transpiler.passes.scheduling.ASAPScheduleAnalysis.md create mode 100644 docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.transpiler.passes.scheduling.BlockBasePadder.md create mode 100644 docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.transpiler.passes.scheduling.DynamicCircuitInstructionDurations.md create mode 100644 docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.transpiler.passes.scheduling.PadDelay.md create mode 100644 docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.transpiler.passes.scheduling.PadDynamicalDecoupling.md create mode 100644 docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.transpiler.passes.scheduling.md create mode 100644 docs/api/qiskit-ibm-runtime/0.20/runtime_service.md create mode 100644 docs/api/qiskit-ibm-runtime/0.20/transpiler.md create mode 100644 public/api/qiskit-ibm-runtime/0.20/objects.inv create mode 100644 public/images/api/qiskit-ibm-runtime/0.20/fake_provider-1_00.png create mode 100644 public/images/api/qiskit-ibm-runtime/0.20/fake_provider-1_01.png create mode 100644 public/images/api/qiskit-ibm-runtime/0.20/fake_provider-1_02.png create mode 100644 public/images/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.transpiler.passes.scheduling_0_0.png create mode 100644 public/images/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.transpiler.passes.scheduling_10_0.png create mode 100644 public/images/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.transpiler.passes.scheduling_11_0.png create mode 100644 public/images/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.transpiler.passes.scheduling_12_0.png create mode 100644 public/images/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.transpiler.passes.scheduling_13_0.png create mode 100644 public/images/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.transpiler.passes.scheduling_14_0.png create mode 100644 public/images/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.transpiler.passes.scheduling_15_0.png create mode 100644 public/images/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.transpiler.passes.scheduling_1_0.png create mode 100644 public/images/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.transpiler.passes.scheduling_2_0.png create mode 100644 public/images/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.transpiler.passes.scheduling_3_0.png create mode 100644 public/images/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.transpiler.passes.scheduling_4_0.png create mode 100644 public/images/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.transpiler.passes.scheduling_5_0.png create mode 100644 public/images/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.transpiler.passes.scheduling_6_0.png create mode 100644 public/images/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.transpiler.passes.scheduling_7_0.png create mode 100644 public/images/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.transpiler.passes.scheduling_8_0.png create mode 100644 public/images/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.transpiler.passes.scheduling_9_0.png diff --git a/docs/api/qiskit-ibm-runtime/0.20/_package.json b/docs/api/qiskit-ibm-runtime/0.20/_package.json new file mode 100644 index 00000000000..ca759f626c4 --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.20/_package.json @@ -0,0 +1,4 @@ +{ + "name": "qiskit-ibm-runtime", + "version": "0.20.0" +} diff --git a/docs/api/qiskit-ibm-runtime/0.20/_toc.json b/docs/api/qiskit-ibm-runtime/0.20/_toc.json new file mode 100644 index 00000000000..5f09ab565f3 --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.20/_toc.json @@ -0,0 +1,517 @@ +{ + "title": "Qiskit Runtime IBM Client", + "children": [ + { + "title": "qiskit_ibm_runtime", + "children": [ + { + "title": "Overview", + "url": "/api/qiskit-ibm-runtime/0.20/runtime_service" + }, + { + "title": "Estimator", + "url": "/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.Estimator" + }, + { + "title": "IBMBackend", + "url": "/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.IBMBackend" + }, + { + "title": "QiskitRuntimeService", + "url": "/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.QiskitRuntimeService" + }, + { + "title": "RuntimeDecoder", + "url": "/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.RuntimeDecoder" + }, + { + "title": "RuntimeEncoder", + "url": "/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.RuntimeEncoder" + }, + { + "title": "RuntimeJob", + "url": "/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.RuntimeJob" + }, + { + "title": "RuntimeOptions", + "url": "/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.RuntimeOptions" + }, + { + "title": "Sampler", + "url": "/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.Sampler" + }, + { + "title": "Session", + "url": "/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.Session" + } + ] + }, + { + "title": "qiskit_ibm_runtime.fake_provider", + "children": [ + { + "title": "Overview", + "url": "/api/qiskit-ibm-runtime/0.20/fake_provider" + }, + { + "title": "FakeAlmaden", + "url": "/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeAlmaden" + }, + { + "title": "FakeAlmadenV2", + "url": "/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeAlmadenV2" + }, + { + "title": "FakeArmonk", + "url": "/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeArmonk" + }, + { + "title": "FakeArmonkV2", + "url": "/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeArmonkV2" + }, + { + "title": "FakeAthens", + "url": "/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeAthens" + }, + { + "title": "FakeAthensV2", + "url": "/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeAthensV2" + }, + { + "title": "FakeAuckland", + "url": "/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeAuckland" + }, + { + "title": "FakeBelem", + "url": "/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeBelem" + }, + { + "title": "FakeBelemV2", + "url": "/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeBelemV2" + }, + { + "title": "FakeBoeblingen", + "url": "/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeBoeblingen" + }, + { + "title": "FakeBoeblingenV2", + "url": "/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeBoeblingenV2" + }, + { + "title": "FakeBogota", + "url": "/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeBogota" + }, + { + "title": "FakeBogotaV2", + "url": "/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeBogotaV2" + }, + { + "title": "FakeBrooklyn", + "url": "/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeBrooklyn" + }, + { + "title": "FakeBrooklynV2", + "url": "/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeBrooklynV2" + }, + { + "title": "FakeBurlington", + "url": "/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeBurlington" + }, + { + "title": "FakeBurlingtonV2", + "url": "/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeBurlingtonV2" + }, + { + "title": "FakeCairo", + "url": "/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeCairo" + }, + { + "title": "FakeCairoV2", + "url": "/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeCairoV2" + }, + { + "title": "FakeCambridge", + "url": "/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeCambridge" + }, + { + "title": "FakeCambridgeV2", + "url": "/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeCambridgeV2" + }, + { + "title": "FakeCasablanca", + "url": "/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeCasablanca" + }, + { + "title": "FakeCasablancaV2", + "url": "/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeCasablancaV2" + }, + { + "title": "FakeEssex", + "url": "/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeEssex" + }, + { + "title": "FakeEssexV2", + "url": "/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeEssexV2" + }, + { + "title": "FakeGeneva", + "url": "/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeGeneva" + }, + { + "title": "FakeGuadalupe", + "url": "/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeGuadalupe" + }, + { + "title": "FakeGuadalupeV2", + "url": "/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeGuadalupeV2" + }, + { + "title": "FakeHanoi", + "url": "/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeHanoi" + }, + { + "title": "FakeHanoiV2", + "url": "/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeHanoiV2" + }, + { + "title": "FakeJakarta", + "url": "/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeJakarta" + }, + { + "title": "FakeJakartaV2", + "url": "/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeJakartaV2" + }, + { + "title": "FakeJohannesburg", + "url": "/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeJohannesburg" + }, + { + "title": "FakeJohannesburgV2", + "url": "/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeJohannesburgV2" + }, + { + "title": "FakeKolkata", + "url": "/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeKolkata" + }, + { + "title": "FakeKolkataV2", + "url": "/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeKolkataV2" + }, + { + "title": "FakeLagos", + "url": "/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeLagos" + }, + { + "title": "FakeLagosV2", + "url": "/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeLagosV2" + }, + { + "title": "FakeLima", + "url": "/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeLima" + }, + { + "title": "FakeLimaV2", + "url": "/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeLimaV2" + }, + { + "title": "FakeLondon", + "url": "/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeLondon" + }, + { + "title": "FakeLondonV2", + "url": "/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeLondonV2" + }, + { + "title": "FakeManhattan", + "url": "/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeManhattan" + }, + { + "title": "FakeManhattanV2", + "url": "/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeManhattanV2" + }, + { + "title": "FakeManila", + "url": "/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeManila" + }, + { + "title": "FakeManilaV2", + "url": "/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeManilaV2" + }, + { + "title": "FakeMelbourne", + "url": "/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeMelbourne" + }, + { + "title": "FakeMelbourneV2", + "url": "/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeMelbourneV2" + }, + { + "title": "FakeMontreal", + "url": "/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeMontreal" + }, + { + "title": "FakeMontrealV2", + "url": "/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeMontrealV2" + }, + { + "title": "FakeMumbai", + "url": "/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeMumbai" + }, + { + "title": "FakeMumbaiV2", + "url": "/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeMumbaiV2" + }, + { + "title": "FakeNairobi", + "url": "/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeNairobi" + }, + { + "title": "FakeNairobiV2", + "url": "/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeNairobiV2" + }, + { + "title": "FakeOslo", + "url": "/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeOslo" + }, + { + "title": "FakeOurense", + "url": "/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeOurense" + }, + { + "title": "FakeOurenseV2", + "url": "/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeOurenseV2" + }, + { + "title": "FakeParis", + "url": "/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeParis" + }, + { + "title": "FakeParisV2", + "url": "/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeParisV2" + }, + { + "title": "FakePerth", + "url": "/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakePerth" + }, + { + "title": "FakePoughkeepsie", + "url": "/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakePoughkeepsie" + }, + { + "title": "FakePoughkeepsieV2", + "url": "/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakePoughkeepsieV2" + }, + { + "title": "FakePrague", + "url": "/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakePrague" + }, + { + "title": "FakeProvider", + "url": "/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeProvider" + }, + { + "title": "FakeProviderForBackendV2", + "url": "/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeProviderForBackendV2" + }, + { + "title": "FakeQuito", + "url": "/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeQuito" + }, + { + "title": "FakeQuitoV2", + "url": "/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeQuitoV2" + }, + { + "title": "FakeRochester", + "url": "/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeRochester" + }, + { + "title": "FakeRochesterV2", + "url": "/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeRochesterV2" + }, + { + "title": "FakeRome", + "url": "/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeRome" + }, + { + "title": "FakeRomeV2", + "url": "/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeRomeV2" + }, + { + "title": "FakeRueschlikon", + "url": "/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeRueschlikon" + }, + { + "title": "FakeSantiago", + "url": "/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeSantiago" + }, + { + "title": "FakeSantiagoV2", + "url": "/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeSantiagoV2" + }, + { + "title": "FakeSherbrooke", + "url": "/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeSherbrooke" + }, + { + "title": "FakeSingapore", + "url": "/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeSingapore" + }, + { + "title": "FakeSingaporeV2", + "url": "/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeSingaporeV2" + }, + { + "title": "FakeSydney", + "url": "/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeSydney" + }, + { + "title": "FakeSydneyV2", + "url": "/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeSydneyV2" + }, + { + "title": "FakeTenerife", + "url": "/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeTenerife" + }, + { + "title": "FakeTokyo", + "url": "/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeTokyo" + }, + { + "title": "FakeToronto", + "url": "/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeToronto" + }, + { + "title": "FakeTorontoV2", + "url": "/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeTorontoV2" + }, + { + "title": "FakeValencia", + "url": "/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeValencia" + }, + { + "title": "FakeValenciaV2", + "url": "/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeValenciaV2" + }, + { + "title": "FakeVigo", + "url": "/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeVigo" + }, + { + "title": "FakeVigoV2", + "url": "/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeVigoV2" + }, + { + "title": "FakeWashington", + "url": "/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeWashington" + }, + { + "title": "FakeWashingtonV2", + "url": "/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeWashingtonV2" + }, + { + "title": "FakeYorktown", + "url": "/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeYorktown" + }, + { + "title": "FakeYorktownV2", + "url": "/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeYorktownV2" + } + ] + }, + { + "title": "qiskit_ibm_runtime.options", + "children": [ + { + "title": "Overview", + "url": "/api/qiskit-ibm-runtime/0.20/options" + }, + { + "title": "EnvironmentOptions", + "url": "/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.options.EnvironmentOptions" + }, + { + "title": "ExecutionOptions", + "url": "/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.options.ExecutionOptions" + }, + { + "title": "Options", + "url": "/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.options.Options" + }, + { + "title": "ResilienceOptions", + "url": "/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.options.ResilienceOptions" + }, + { + "title": "SimulatorOptions", + "url": "/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.options.SimulatorOptions" + }, + { + "title": "TranspilationOptions", + "url": "/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.options.TranspilationOptions" + } + ] + }, + { + "title": "qiskit_ibm_runtime.transpiler", + "children": [ + { + "title": "Overview", + "url": "/api/qiskit-ibm-runtime/0.20/transpiler" + }, + { + "title": "qiskit_ibm_runtime.transpiler.passes", + "children": [ + { + "title": "Overview", + "url": "/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.transpiler.passes" + }, + { + "title": "qiskit_ibm_runtime.transpiler.passes.basis", + "url": "/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.transpiler.passes.basis" + }, + { + "title": "qiskit_ibm_runtime.transpiler.passes.scheduling", + "children": [ + { + "title": "Overview", + "url": "/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.transpiler.passes.scheduling" + }, + { + "title": "ALAPScheduleAnalysis", + "url": "/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.transpiler.passes.scheduling.ALAPScheduleAnalysis" + }, + { + "title": "ASAPScheduleAnalysis", + "url": "/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.transpiler.passes.scheduling.ASAPScheduleAnalysis" + }, + { + "title": "BlockBasePadder", + "url": "/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.transpiler.passes.scheduling.BlockBasePadder" + }, + { + "title": "DynamicCircuitInstructionDurations", + "url": "/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.transpiler.passes.scheduling.DynamicCircuitInstructionDurations" + }, + { + "title": "PadDelay", + "url": "/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.transpiler.passes.scheduling.PadDelay" + }, + { + "title": "PadDynamicalDecoupling", + "url": "/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.transpiler.passes.scheduling.PadDynamicalDecoupling" + } + ] + } + ] + } + ] + }, + { + "title": "Release notes", + "url": "/api/qiskit-ibm-runtime/release-notes" + } + ], + "collapsed": true +} + diff --git a/docs/api/qiskit-ibm-runtime/0.20/fake_provider.md b/docs/api/qiskit-ibm-runtime/0.20/fake_provider.md new file mode 100644 index 00000000000..ad8fcf1c013 --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.20/fake_provider.md @@ -0,0 +1,189 @@ +--- +title: fake_provider +description: API reference for qiskit_ibm_runtime.fake_provider +in_page_toc_min_heading_level: 2 +python_api_type: module +python_api_name: qiskit_ibm_runtime.fake_provider +--- + + + + + +# Fake Provider + + + +`qiskit_ibm_runtime.fake_provider` + +## Overview + +The fake provider module contains fake providers and fake backends classes. The fake backends are built to mimic the behaviors of IBM Quantum systems using system snapshots. The system snapshots contain important information about the quantum system such as coupling map, basis gates, qubit properties (T1, T2, error rate, etc.) which are useful for testing the transpiler and performing noisy simulations of the system. + +## Example Usage + +Here is an example of using a fake backend for transpilation and simulation. + +```python +from qiskit import QuantumCircuit +from qiskit import transpile +from qiskit.visualization import plot_histogram +from qiskit_ibm_runtime.fake_provider import FakeManilaV2 + +# Get a fake backend from the fake provider +backend = FakeManilaV2() + +# Create a simple circuit +circuit = QuantumCircuit(3) +circuit.h(0) +circuit.cx(0,1) +circuit.cx(0,2) +circuit.measure_all() +circuit.draw('mpl', style="iqp") + +# Transpile the ideal circuit to a circuit that can be directly executed by the backend +transpiled_circuit = transpile(circuit, backend) +transpiled_circuit.draw('mpl', style="iqp") + +# Run the transpiled circuit using the simulated fake backend +job = backend.run(transpiled_circuit) +counts = job.result().get_counts() +plot_histogram(counts) +``` + +![../\_images/fake\_provider-1\_00.png](/images/api/qiskit-ibm-runtime/0.20/fake_provider-1_00.png) + +![../\_images/fake\_provider-1\_01.png](/images/api/qiskit-ibm-runtime/0.20/fake_provider-1_01.png) + +![../\_images/fake\_provider-1\_02.png](/images/api/qiskit-ibm-runtime/0.20/fake_provider-1_02.png) + + + Please note that the simulation is done using a noise model generated from system snapshots obtained in the past (sometimes a few years ago) and the results are not representative of the latest behaviours of the real quantum system which the fake backend is mimicking. If you want to run noisy simulations to compare with the real quantum system, you should use the `qiskit_aer` library. After installation, you can follow the steps below to generate a simulator that mimics a real quantum system with the latest calibration results. + + ```python + from qiskit_ibm_runtime import QiskitRuntimeService + from qiskit_aer import AerSimulator + + # get a real backend from the runtime service + service = QiskitRuntimeService() + backend = service.get_backend('ibmq_manila') + + # generate a simulator that mimics the real quantum system with the latest calibration results + backend_sim = AerSimulator.from_backend(backend) + ``` + + +## Fake Providers + +Fake providers provide access to a list of fake backends. + +| | | +| ----------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------ | +| [`FakeProviderForBackendV2`](qiskit_ibm_runtime.fake_provider.FakeProviderForBackendV2 "qiskit_ibm_runtime.fake_provider.FakeProviderForBackendV2")() | Fake provider containing fake V2 backends. | +| [`FakeProvider`](qiskit_ibm_runtime.fake_provider.FakeProvider "qiskit_ibm_runtime.fake_provider.FakeProvider")() | Fake provider containing fake V1 backends. | + +## Fake Backends + +### Fake V2 Backends + +Fake V2 backends are fake backends with IBM Quantum systems snapshots implemented with `BackendV2` interface. They are all subclasses of `FakeBackendV2`. + +| | | +| ----------------------------------------------------------------------------------------------------------------------------------- | ------------------------------- | +| [`FakeAlmadenV2`](qiskit_ibm_runtime.fake_provider.FakeAlmadenV2 "qiskit_ibm_runtime.fake_provider.FakeAlmadenV2")() | A fake Almaden V2 backend. | +| [`FakeArmonkV2`](qiskit_ibm_runtime.fake_provider.FakeArmonkV2 "qiskit_ibm_runtime.fake_provider.FakeArmonkV2")() | A fake 1 qubit backend. | +| [`FakeAthensV2`](qiskit_ibm_runtime.fake_provider.FakeAthensV2 "qiskit_ibm_runtime.fake_provider.FakeAthensV2")() | A fake 5 qubit backend. | +| [`FakeAuckland`](qiskit_ibm_runtime.fake_provider.FakeAuckland "qiskit_ibm_runtime.fake_provider.FakeAuckland")() | A fake 27 qubit backend. | +| [`FakeBelemV2`](qiskit_ibm_runtime.fake_provider.FakeBelemV2 "qiskit_ibm_runtime.fake_provider.FakeBelemV2")() | A fake 5 qubit backend. | +| [`FakeBoeblingenV2`](qiskit_ibm_runtime.fake_provider.FakeBoeblingenV2 "qiskit_ibm_runtime.fake_provider.FakeBoeblingenV2")() | A fake Boeblingen V2 backend. | +| [`FakeBogotaV2`](qiskit_ibm_runtime.fake_provider.FakeBogotaV2 "qiskit_ibm_runtime.fake_provider.FakeBogotaV2")() | A fake 5 qubit backend. | +| [`FakeBrooklynV2`](qiskit_ibm_runtime.fake_provider.FakeBrooklynV2 "qiskit_ibm_runtime.fake_provider.FakeBrooklynV2")() | A fake Brooklyn V2 backend. | +| [`FakeBurlingtonV2`](qiskit_ibm_runtime.fake_provider.FakeBurlingtonV2 "qiskit_ibm_runtime.fake_provider.FakeBurlingtonV2")() | A fake 5 qubit backend. | +| [`FakeCairoV2`](qiskit_ibm_runtime.fake_provider.FakeCairoV2 "qiskit_ibm_runtime.fake_provider.FakeCairoV2")() | A fake 27 qubit backend. | +| [`FakeCambridgeV2`](qiskit_ibm_runtime.fake_provider.FakeCambridgeV2 "qiskit_ibm_runtime.fake_provider.FakeCambridgeV2")() | A fake Cambridge backend. | +| [`FakeCasablancaV2`](qiskit_ibm_runtime.fake_provider.FakeCasablancaV2 "qiskit_ibm_runtime.fake_provider.FakeCasablancaV2")() | A fake 7 qubit backend. | +| [`FakeEssexV2`](qiskit_ibm_runtime.fake_provider.FakeEssexV2 "qiskit_ibm_runtime.fake_provider.FakeEssexV2")() | A fake 5 qubit backend. | +| [`FakeGeneva`](qiskit_ibm_runtime.fake_provider.FakeGeneva "qiskit_ibm_runtime.fake_provider.FakeGeneva")() | A fake 27 qubit backend. | +| [`FakeGuadalupeV2`](qiskit_ibm_runtime.fake_provider.FakeGuadalupeV2 "qiskit_ibm_runtime.fake_provider.FakeGuadalupeV2")() | A fake 16 qubit backend. | +| [`FakeHanoiV2`](qiskit_ibm_runtime.fake_provider.FakeHanoiV2 "qiskit_ibm_runtime.fake_provider.FakeHanoiV2")() | A fake 27 qubit backend. | +| [`FakeJakartaV2`](qiskit_ibm_runtime.fake_provider.FakeJakartaV2 "qiskit_ibm_runtime.fake_provider.FakeJakartaV2")() | A fake 7 qubit V2 backend. | +| [`FakeJohannesburgV2`](qiskit_ibm_runtime.fake_provider.FakeJohannesburgV2 "qiskit_ibm_runtime.fake_provider.FakeJohannesburgV2")() | A fake Johannesburg V2 backend. | +| [`FakeKolkataV2`](qiskit_ibm_runtime.fake_provider.FakeKolkataV2 "qiskit_ibm_runtime.fake_provider.FakeKolkataV2")() | A fake 27 qubit backend. | +| [`FakeLagosV2`](qiskit_ibm_runtime.fake_provider.FakeLagosV2 "qiskit_ibm_runtime.fake_provider.FakeLagosV2")() | A fake 7 qubit backend. | +| [`FakeLimaV2`](qiskit_ibm_runtime.fake_provider.FakeLimaV2 "qiskit_ibm_runtime.fake_provider.FakeLimaV2")() | A fake 5 qubit backend. | +| [`FakeLondonV2`](qiskit_ibm_runtime.fake_provider.FakeLondonV2 "qiskit_ibm_runtime.fake_provider.FakeLondonV2")() | A fake 5 qubit backend. | +| [`FakeManhattanV2`](qiskit_ibm_runtime.fake_provider.FakeManhattanV2 "qiskit_ibm_runtime.fake_provider.FakeManhattanV2")() | A fake Manhattan backend. | +| [`FakeManilaV2`](qiskit_ibm_runtime.fake_provider.FakeManilaV2 "qiskit_ibm_runtime.fake_provider.FakeManilaV2")() | A fake 5 qubit backend. | +| [`FakeMelbourneV2`](qiskit_ibm_runtime.fake_provider.FakeMelbourneV2 "qiskit_ibm_runtime.fake_provider.FakeMelbourneV2")() | A fake 14 qubit backend. | +| [`FakeMontrealV2`](qiskit_ibm_runtime.fake_provider.FakeMontrealV2 "qiskit_ibm_runtime.fake_provider.FakeMontrealV2")() | A fake 27 qubit backend. | +| [`FakeMumbaiV2`](qiskit_ibm_runtime.fake_provider.FakeMumbaiV2 "qiskit_ibm_runtime.fake_provider.FakeMumbaiV2")() | A fake 27 qubit backend. | +| [`FakeNairobiV2`](qiskit_ibm_runtime.fake_provider.FakeNairobiV2 "qiskit_ibm_runtime.fake_provider.FakeNairobiV2")() | A fake 7 qubit backend. | +| [`FakeOslo`](qiskit_ibm_runtime.fake_provider.FakeOslo "qiskit_ibm_runtime.fake_provider.FakeOslo")() | A fake 7 qubit backend. | +| [`FakeOurenseV2`](qiskit_ibm_runtime.fake_provider.FakeOurenseV2 "qiskit_ibm_runtime.fake_provider.FakeOurenseV2")() | A fake 5 qubit backend. | +| [`FakeParisV2`](qiskit_ibm_runtime.fake_provider.FakeParisV2 "qiskit_ibm_runtime.fake_provider.FakeParisV2")() | A fake Paris backend. | +| [`FakePerth`](qiskit_ibm_runtime.fake_provider.FakePerth "qiskit_ibm_runtime.fake_provider.FakePerth")() | A fake 7 qubit backend. | +| [`FakePrague`](qiskit_ibm_runtime.fake_provider.FakePrague "qiskit_ibm_runtime.fake_provider.FakePrague")() | A fake 33 qubit backend. | +| [`FakePoughkeepsieV2`](qiskit_ibm_runtime.fake_provider.FakePoughkeepsieV2 "qiskit_ibm_runtime.fake_provider.FakePoughkeepsieV2")() | A fake Poughkeepsie backend. | +| [`FakeQuitoV2`](qiskit_ibm_runtime.fake_provider.FakeQuitoV2 "qiskit_ibm_runtime.fake_provider.FakeQuitoV2")() | A fake 5 qubit backend. | +| [`FakeRochesterV2`](qiskit_ibm_runtime.fake_provider.FakeRochesterV2 "qiskit_ibm_runtime.fake_provider.FakeRochesterV2")() | A fake Rochester backend. | +| [`FakeRomeV2`](qiskit_ibm_runtime.fake_provider.FakeRomeV2 "qiskit_ibm_runtime.fake_provider.FakeRomeV2")() | A fake 5 qubit backend. | +| [`FakeSantiagoV2`](qiskit_ibm_runtime.fake_provider.FakeSantiagoV2 "qiskit_ibm_runtime.fake_provider.FakeSantiagoV2")() | A fake Santiago backend. | +| [`FakeSherbrooke`](qiskit_ibm_runtime.fake_provider.FakeSherbrooke "qiskit_ibm_runtime.fake_provider.FakeSherbrooke")() | A fake 127 qubit backend. | +| [`FakeSingaporeV2`](qiskit_ibm_runtime.fake_provider.FakeSingaporeV2 "qiskit_ibm_runtime.fake_provider.FakeSingaporeV2")() | A fake Singapore backend. | +| [`FakeSydneyV2`](qiskit_ibm_runtime.fake_provider.FakeSydneyV2 "qiskit_ibm_runtime.fake_provider.FakeSydneyV2")() | A fake 27 qubit backend. | +| [`FakeTorontoV2`](qiskit_ibm_runtime.fake_provider.FakeTorontoV2 "qiskit_ibm_runtime.fake_provider.FakeTorontoV2")() | A fake 27 qubit backend. | +| [`FakeValenciaV2`](qiskit_ibm_runtime.fake_provider.FakeValenciaV2 "qiskit_ibm_runtime.fake_provider.FakeValenciaV2")() | A fake 5 qubit backend. | +| [`FakeVigoV2`](qiskit_ibm_runtime.fake_provider.FakeVigoV2 "qiskit_ibm_runtime.fake_provider.FakeVigoV2")() | A fake 5 qubit backend. | +| [`FakeWashingtonV2`](qiskit_ibm_runtime.fake_provider.FakeWashingtonV2 "qiskit_ibm_runtime.fake_provider.FakeWashingtonV2")() | A fake 127 qubit backend. | +| [`FakeYorktownV2`](qiskit_ibm_runtime.fake_provider.FakeYorktownV2 "qiskit_ibm_runtime.fake_provider.FakeYorktownV2")() | A fake 5 qubit backend. | + +### Fake V1 Backends + +Fake V1 backends are fake backends with IBM Quantum systems snapshots implemented with `BackendV1` interface. + +| | | +| ----------------------------------------------------------------------------------------------------------------------------- | ---------------------------- | +| [`FakeAlmaden`](qiskit_ibm_runtime.fake_provider.FakeAlmaden "qiskit_ibm_runtime.fake_provider.FakeAlmaden")() | A fake Almaden backend. | +| [`FakeArmonk`](qiskit_ibm_runtime.fake_provider.FakeArmonk "qiskit_ibm_runtime.fake_provider.FakeArmonk")() | A fake 1 qubit backend. | +| [`FakeAthens`](qiskit_ibm_runtime.fake_provider.FakeAthens "qiskit_ibm_runtime.fake_provider.FakeAthens")() | A fake 5 qubit backend. | +| [`FakeBelem`](qiskit_ibm_runtime.fake_provider.FakeBelem "qiskit_ibm_runtime.fake_provider.FakeBelem")() | A fake 5 qubit backend. | +| [`FakeBoeblingen`](qiskit_ibm_runtime.fake_provider.FakeBoeblingen "qiskit_ibm_runtime.fake_provider.FakeBoeblingen")() | A fake Boeblingen backend. | +| [`FakeBogota`](qiskit_ibm_runtime.fake_provider.FakeBogota "qiskit_ibm_runtime.fake_provider.FakeBogota")() | A fake 5 qubit backend. | +| [`FakeBrooklyn`](qiskit_ibm_runtime.fake_provider.FakeBrooklyn "qiskit_ibm_runtime.fake_provider.FakeBrooklyn")() | A fake Brooklyn backend. | +| [`FakeBurlington`](qiskit_ibm_runtime.fake_provider.FakeBurlington "qiskit_ibm_runtime.fake_provider.FakeBurlington")() | A fake 5 qubit backend. | +| [`FakeCairo`](qiskit_ibm_runtime.fake_provider.FakeCairo "qiskit_ibm_runtime.fake_provider.FakeCairo")() | A fake 27 qubit backend. | +| [`FakeCambridge`](qiskit_ibm_runtime.fake_provider.FakeCambridge "qiskit_ibm_runtime.fake_provider.FakeCambridge")() | A fake Cambridge backend. | +| [`FakeCasablanca`](qiskit_ibm_runtime.fake_provider.FakeCasablanca "qiskit_ibm_runtime.fake_provider.FakeCasablanca")() | A fake 7 qubit backend. | +| [`FakeEssex`](qiskit_ibm_runtime.fake_provider.FakeEssex "qiskit_ibm_runtime.fake_provider.FakeEssex")() | A fake 5 qubit backend. | +| [`FakeGuadalupe`](qiskit_ibm_runtime.fake_provider.FakeGuadalupe "qiskit_ibm_runtime.fake_provider.FakeGuadalupe")() | A fake 16 qubit backend. | +| [`FakeHanoi`](qiskit_ibm_runtime.fake_provider.FakeHanoi "qiskit_ibm_runtime.fake_provider.FakeHanoi")() | A fake 27 qubit backend. | +| [`FakeJakarta`](qiskit_ibm_runtime.fake_provider.FakeJakarta "qiskit_ibm_runtime.fake_provider.FakeJakarta")() | A fake 7 qubit backend. | +| [`FakeJohannesburg`](qiskit_ibm_runtime.fake_provider.FakeJohannesburg "qiskit_ibm_runtime.fake_provider.FakeJohannesburg")() | A fake Johannesburg backend. | +| [`FakeKolkata`](qiskit_ibm_runtime.fake_provider.FakeKolkata "qiskit_ibm_runtime.fake_provider.FakeKolkata")() | A fake 27 qubit backend. | +| [`FakeLagos`](qiskit_ibm_runtime.fake_provider.FakeLagos "qiskit_ibm_runtime.fake_provider.FakeLagos")() | A fake 7 qubit backend. | +| [`FakeLima`](qiskit_ibm_runtime.fake_provider.FakeLima "qiskit_ibm_runtime.fake_provider.FakeLima")() | A fake 5 qubit backend. | +| [`FakeLondon`](qiskit_ibm_runtime.fake_provider.FakeLondon "qiskit_ibm_runtime.fake_provider.FakeLondon")() | A fake 5 qubit backend. | +| [`FakeManhattan`](qiskit_ibm_runtime.fake_provider.FakeManhattan "qiskit_ibm_runtime.fake_provider.FakeManhattan")() | A fake Manhattan backend. | +| [`FakeManila`](qiskit_ibm_runtime.fake_provider.FakeManila "qiskit_ibm_runtime.fake_provider.FakeManila")() | A fake 5 qubit backend. | +| [`FakeMelbourne`](qiskit_ibm_runtime.fake_provider.FakeMelbourne "qiskit_ibm_runtime.fake_provider.FakeMelbourne")() | A fake 14 qubit backend. | +| [`FakeMontreal`](qiskit_ibm_runtime.fake_provider.FakeMontreal "qiskit_ibm_runtime.fake_provider.FakeMontreal")() | A fake 27 qubit backend. | +| [`FakeMumbai`](qiskit_ibm_runtime.fake_provider.FakeMumbai "qiskit_ibm_runtime.fake_provider.FakeMumbai")() | A fake 27 qubit backend. | +| [`FakeNairobi`](qiskit_ibm_runtime.fake_provider.FakeNairobi "qiskit_ibm_runtime.fake_provider.FakeNairobi")() | A fake 7 qubit backend. | +| [`FakeOurense`](qiskit_ibm_runtime.fake_provider.FakeOurense "qiskit_ibm_runtime.fake_provider.FakeOurense")() | A fake 5 qubit backend. | +| [`FakeParis`](qiskit_ibm_runtime.fake_provider.FakeParis "qiskit_ibm_runtime.fake_provider.FakeParis")() | A fake Paris backend. | +| [`FakePoughkeepsie`](qiskit_ibm_runtime.fake_provider.FakePoughkeepsie "qiskit_ibm_runtime.fake_provider.FakePoughkeepsie")() | A fake Poughkeepsie backend. | +| [`FakeQuito`](qiskit_ibm_runtime.fake_provider.FakeQuito "qiskit_ibm_runtime.fake_provider.FakeQuito")() | A fake 5 qubit backend. | +| [`FakeRochester`](qiskit_ibm_runtime.fake_provider.FakeRochester "qiskit_ibm_runtime.fake_provider.FakeRochester")() | A fake Rochester backend. | +| [`FakeRome`](qiskit_ibm_runtime.fake_provider.FakeRome "qiskit_ibm_runtime.fake_provider.FakeRome")() | A fake 5 qubit backend. | +| [`FakeRueschlikon`](qiskit_ibm_runtime.fake_provider.FakeRueschlikon "qiskit_ibm_runtime.fake_provider.FakeRueschlikon")() | A fake 16 qubit backend. | +| [`FakeSantiago`](qiskit_ibm_runtime.fake_provider.FakeSantiago "qiskit_ibm_runtime.fake_provider.FakeSantiago")() | A fake Santiago backend. | +| [`FakeSingapore`](qiskit_ibm_runtime.fake_provider.FakeSingapore "qiskit_ibm_runtime.fake_provider.FakeSingapore")() | A fake Singapore backend. | +| [`FakeSydney`](qiskit_ibm_runtime.fake_provider.FakeSydney "qiskit_ibm_runtime.fake_provider.FakeSydney")() | A fake 27 qubit backend. | +| [`FakeTenerife`](qiskit_ibm_runtime.fake_provider.FakeTenerife "qiskit_ibm_runtime.fake_provider.FakeTenerife")() | A fake 5 qubit backend. | +| [`FakeTokyo`](qiskit_ibm_runtime.fake_provider.FakeTokyo "qiskit_ibm_runtime.fake_provider.FakeTokyo")() | A fake 20 qubit backend. | +| [`FakeToronto`](qiskit_ibm_runtime.fake_provider.FakeToronto "qiskit_ibm_runtime.fake_provider.FakeToronto")() | A fake 27 qubit backend. | +| [`FakeValencia`](qiskit_ibm_runtime.fake_provider.FakeValencia "qiskit_ibm_runtime.fake_provider.FakeValencia")() | A fake 5 qubit backend. | +| [`FakeVigo`](qiskit_ibm_runtime.fake_provider.FakeVigo "qiskit_ibm_runtime.fake_provider.FakeVigo")() | A fake 5 qubit backend. | +| [`FakeWashington`](qiskit_ibm_runtime.fake_provider.FakeWashington "qiskit_ibm_runtime.fake_provider.FakeWashington")() | A fake 127 qubit backend. | +| [`FakeYorktown`](qiskit_ibm_runtime.fake_provider.FakeYorktown "qiskit_ibm_runtime.fake_provider.FakeYorktown")() | A fake 5 qubit backend. | + diff --git a/docs/api/qiskit-ibm-runtime/0.20/index.md b/docs/api/qiskit-ibm-runtime/0.20/index.md new file mode 100644 index 00000000000..71a9da5c99c --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.20/index.md @@ -0,0 +1,12 @@ +--- +title: Qiskit Runtime IBM Client API Docs +description: API documentation for qiskit-ibm-runtime +--- + +# qiskit-ibm-runtime API reference + +* [Qiskit Runtime (`qiskit_ibm_runtime`)](runtime_service) +* [Primitive options (`qiskit_ibm_runtime.options`)](options) +* [IBM Backend Transpiler Tools (`qiskit_ibm_runtime.transpiler`)](transpiler) +* [Fake Provider (`qiskit_ibm_runtime.fake_provider`)](fake_provider) + diff --git a/docs/api/qiskit-ibm-runtime/0.20/options.md b/docs/api/qiskit-ibm-runtime/0.20/options.md new file mode 100644 index 00000000000..5d3a56bc888 --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.20/options.md @@ -0,0 +1,48 @@ +--- +title: options +description: API reference for qiskit_ibm_runtime.options +in_page_toc_min_heading_level: 2 +python_api_type: module +python_api_name: qiskit_ibm_runtime.options +--- + + + + + +# Primitive options + + + +`qiskit_ibm_runtime.options` + +Options that can be passed to the primitives. + +The [`Options`](qiskit_ibm_runtime.options.Options "qiskit_ibm_runtime.options.Options") class encapsulates all the options you can specify when invoking a primitive. It includes frequently used options, such as `optimization_level` and `resilience_level` as well as sub-categories, such as `transpilation` and `execution`. You can use auto-complete to easily find the options inside each sub-category, for example: + +```python +from qiskit_ibm_runtime.options import Options + +options = Options() +options.transpilation.initial_layout = [0, 1, 2, 3] # This an be done using auto-complete +``` + +You can also pass dictionaries to each sub-category, for example: + +```python +from qiskit_ibm_runtime.options import Options + +options = Options(transpilation={"initial_layout": [0, 1, 2, 3]}) +``` + +## Classes + +| | | +| -------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------- | +| [`Options`](qiskit_ibm_runtime.options.Options "qiskit_ibm_runtime.options.Options")(\[optimization\_level, ...]) | Options for the primitives. | +| [`TranspilationOptions`](qiskit_ibm_runtime.options.TranspilationOptions "qiskit_ibm_runtime.options.TranspilationOptions")(\[skip\_transpilation, ...]) | Transpilation options. | +| [`ResilienceOptions`](qiskit_ibm_runtime.options.ResilienceOptions "qiskit_ibm_runtime.options.ResilienceOptions")(\[noise\_amplifier, ...]) | Resilience options. | +| [`ExecutionOptions`](qiskit_ibm_runtime.options.ExecutionOptions "qiskit_ibm_runtime.options.ExecutionOptions")(\[shots, init\_qubits]) | Execution options. | +| [`EnvironmentOptions`](qiskit_ibm_runtime.options.EnvironmentOptions "qiskit_ibm_runtime.options.EnvironmentOptions")(\[log\_level, callback, ...]) | Options related to the execution environment. | +| [`SimulatorOptions`](qiskit_ibm_runtime.options.SimulatorOptions "qiskit_ibm_runtime.options.SimulatorOptions")(\[noise\_model, ...]) | Simulator options. | + diff --git a/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.Estimator.md b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.Estimator.md new file mode 100644 index 00000000000..edae11af4a4 --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.Estimator.md @@ -0,0 +1,145 @@ +--- +title: Estimator +description: API reference for qiskit_ibm_runtime.Estimator +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.Estimator +--- + +# Estimator + + + +`Estimator(backend=None, session=None, options=None)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/estimator.py#L36-L219 "view source code") + +Class for interacting with Qiskit Runtime Estimator primitive service. + +Qiskit Runtime Estimator primitive service estimates expectation values of quantum circuits and observables. + +The [`run()`](#qiskit_ibm_runtime.Estimator.run "qiskit_ibm_runtime.Estimator.run") can be used to submit circuits, observables, and parameters to the Estimator primitive. + +You are encouraged to use [`Session`](qiskit_ibm_runtime.Session "qiskit_ibm_runtime.Session") to open a session, during which you can invoke one or more primitives. Jobs submitted within a session are prioritized by the scheduler, and data is cached for efficiency. + +Example: + +```python +from qiskit.circuit.library import RealAmplitudes +from qiskit.quantum_info import SparsePauliOp + +from qiskit_ibm_runtime import QiskitRuntimeService, Estimator + +service = QiskitRuntimeService(channel="ibm_cloud") + +psi1 = RealAmplitudes(num_qubits=2, reps=2) + +H1 = SparsePauliOp.from_list([("II", 1), ("IZ", 2), ("XI", 3)]) +H2 = SparsePauliOp.from_list([("IZ", 1)]) +H3 = SparsePauliOp.from_list([("ZI", 1), ("ZZ", 1)]) + +with Session(service=service, backend="ibmq_qasm_simulator") as session: + estimator = Estimator(session=session) + + theta1 = [0, 1, 1, 2, 3, 5] + + # calculate [ ] + psi1_H1 = estimator.run(circuits=[psi1], observables=[H1], parameter_values=[theta1]) + print(psi1_H1.result()) + + # calculate [ , ] + psi1_H23 = estimator.run( + circuits=[psi1, psi1], + observables=[H2, H3], + parameter_values=[theta1]*2 + ) + print(psi1_H23.result()) +``` + +Initializes the Estimator primitive. + +**Parameters** + +* **backend** (`Union`\[`str`, [`IBMBackend`](qiskit_ibm_runtime.IBMBackend "qiskit_ibm_runtime.ibm_backend.IBMBackend"), `None`]) – Backend to run the primitive. This can be a backend name or an [`IBMBackend`](qiskit_ibm_runtime.IBMBackend "qiskit_ibm_runtime.IBMBackend") instance. If a name is specified, the default account (e.g. `QiskitRuntimeService()`) is used. + +* **session** (`Union`\[[`Session`](qiskit_ibm_runtime.Session "qiskit_ibm_runtime.session.Session"), `str`, [`IBMBackend`](qiskit_ibm_runtime.IBMBackend "qiskit_ibm_runtime.ibm_backend.IBMBackend"), `None`]) – + + Session in which to call the primitive. + + If both `session` and `backend` are specified, `session` takes precedence. If neither is specified, and the primitive is created inside a [`qiskit_ibm_runtime.Session`](qiskit_ibm_runtime.Session "qiskit_ibm_runtime.Session") context manager, then the session is used. Otherwise if IBM Cloud channel is used, a default backend is selected. + +* **options** (`Union`\[`Dict`, [`Options`](qiskit_ibm_runtime.options.Options "qiskit_ibm_runtime.options.options.Options"), `None`]) – Primitive options, see `Options` for detailed description. The `backend` keyword is still supported but is deprecated. + +## Attributes + + + +### options + +Return options values for the sampler. + +**Return type** + +`Options` + +**Returns** + +options + + + +### session + +Return session used by this primitive. + +**Return type** + +`Optional`\[[`Session`](qiskit_ibm_runtime.Session "qiskit_ibm_runtime.session.Session")] + +**Returns** + +Session used by this primitive, or `None` if session is not used. + +## Methods + +### run + + + +`run(circuits, observables, parameter_values=None, **kwargs)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/estimator.py#L114-L148 "view source code") + +Submit a request to the estimator primitive. + +**Parameters** + +* **circuits** (*QuantumCircuit | Sequence\[QuantumCircuit]*) – a (parameterized) `QuantumCircuit` or a list of (parameterized) `QuantumCircuit`. +* **observables** (*BaseOperator | Sequence\[BaseOperator]*) – Observable objects. +* **parameter\_values** (*Sequence\[float] | Sequence\[Sequence\[float]] | None*) – Concrete parameters to be bound. +* **\*\*kwargs** – Individual options to overwrite the default primitive options. These include the runtime options in [`qiskit_ibm_runtime.RuntimeOptions`](qiskit_ibm_runtime.RuntimeOptions "qiskit_ibm_runtime.RuntimeOptions"). + +**Return type** + +[RuntimeJob](qiskit_ibm_runtime.RuntimeJob "qiskit_ibm_runtime.RuntimeJob") + +**Returns** + +Submitted job. The result of the job is an instance of `qiskit.primitives.EstimatorResult`. + +**Raises** + +**ValueError** – Invalid arguments are given. + +### set\_options + + + +`set_options(**fields)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/base_primitive.py#L216-L222 "view source code") + +Set options values for the sampler. + +**Parameters** + +**\*\*fields** – The fields to update the options + +**Return type** + +`None` + diff --git a/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.IBMBackend.md b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.IBMBackend.md new file mode 100644 index 00000000000..e00db922b50 --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.IBMBackend.md @@ -0,0 +1,711 @@ +--- +title: IBMBackend +description: API reference for qiskit_ibm_runtime.IBMBackend +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.IBMBackend +--- + +# IBMBackend + + + +`IBMBackend(configuration, service, api_client, instance=None)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/ibm_backend.py#L75-L856 "view source code") + +Backend class interfacing with an IBM Quantum backend. + + + * You should not instantiate the `IBMBackend` class directly. Instead, use the methods provided by an [`QiskitRuntimeService`](qiskit_ibm_runtime.QiskitRuntimeService "qiskit_ibm_runtime.QiskitRuntimeService") instance to retrieve and handle backends. + + +This class represents an IBM Quantum backend. Its attributes and methods provide information about the backend. For example, the [`status()`](#qiskit_ibm_runtime.IBMBackend.status "qiskit_ibm_runtime.IBMBackend.status") method returns a `BackendStatus` instance. The instance contains the `operational` and `pending_jobs` attributes, which state whether the backend is operational and also the number of jobs in the server queue for the backend, respectively: + +```python +status = backend.status() +is_operational = status.operational +jobs_in_queue = status.pending_jobs +``` + +Here is list of attributes available on the `IBMBackend` class: + +> * name: backend name. +> +> * backend\_version: backend version in the form X.Y.Z. +> +> * num\_qubits: number of qubits. +> +> * target: A `qiskit.transpiler.Target` object for the backend. +> +> * basis\_gates: list of basis gates names on the backend. +> +> * gates: list of basis gates on the backend. +> +> * local: backend is local or remote. +> +> * simulator: backend is a simulator. +> +> * conditional: backend supports conditional operations. +> +> * open\_pulse: backend supports open pulse. +> +> * memory: backend supports memory. +> +> * max\_shots: maximum number of shots supported. +> +> * coupling\_map (list): The coupling map for the device +> +> * supported\_instructions (List\[str]): Instructions supported by the backend. +> +> * dynamic\_reprate\_enabled (bool): whether delay between programs can be set dynamically (ie via `rep_delay`). Defaults to False. +> +> * rep\_delay\_range (List\[float]): 2d list defining supported range of repetition delays for backend in μs. First entry is lower end of the range, second entry is higher end of the range. Optional, but will be specified when `dynamic_reprate_enabled=True`. +> +> * default\_rep\_delay (float): Value of `rep_delay` if not specified by user and `dynamic_reprate_enabled=True`. +> +> * n\_uchannels: Number of u-channels. +> +> * u\_channel\_lo: U-channel relationship on device los. +> +> * meas\_levels: Supported measurement levels. +> +> * qubit\_lo\_range: Qubit lo ranges for each qubit with form (min, max) in GHz. +> +> * meas\_lo\_range: Measurement lo ranges for each qubit with form (min, max) in GHz. +> +> * dt: Qubit drive channel timestep in nanoseconds. +> +> * dtm: Measurement drive channel timestep in nanoseconds. +> +> * rep\_times: Supported repetition times (program execution time) for backend in μs. +> +> * meas\_kernels: Supported measurement kernels. +> +> * discriminators: Supported discriminators. +> +> * hamiltonian: An optional dictionary with fields characterizing the system hamiltonian. +> +> * channel\_bandwidth (list): Bandwidth of all channels (qubit, measurement, and U) +> +> * acquisition\_latency (list): Array of dimension n\_qubits x n\_registers. Latency (in units of dt) to write a measurement result from qubit n into register slot m. +> +> * conditional\_latency (list): Array of dimension n\_channels \[d->u->m] x n\_registers. Latency (in units of dt) to do a conditional operation on channel n from register slot m +> +> * meas\_map (list): Grouping of measurement which are multiplexed +> +> * max\_circuits (int): The maximum number of experiments per job +> +> * sample\_name (str): Sample name for the backend +> +> * n\_registers (int): Number of register slots available for feedback (if conditional is True) +> +> * register\_map (list): An array of dimension n\_qubits X n\_registers that specifies whether a qubit can store a measurement in a certain register slot. +> +> * configurable (bool): True if the backend is configurable, if the backend is a simulator +> +> * credits\_required (bool): True if backend requires credits to run a job. +> +> * online\_date (datetime): The date that the device went online +> +> * display\_name (str): Alternate name field for the backend +> +> * description (str): A description for the backend +> +> * tags (list): A list of string tags to describe the backend +> +> * version: version of `Backend` class (Ex: 1, 2) +> +> * channels: An optional dictionary containing information of each channel – their purpose, type, and qubits operated on. +> +> * parametric\_pulses (list): A list of pulse shapes which are supported on the backend. For example: `['gaussian', 'constant']` +> +> * processor\_type (dict): Processor type for this backend. A dictionary of the form `{"family": , "revision": , segment: }` such as `{"family": "Canary", "revision": "1.0", segment: "A"}`. +> +> > * family: Processor family of this backend. +> > * revision: Revision version of this processor. +> > * segment: Segment this processor belongs to within a larger chip. + +IBMBackend constructor. + +**Parameters** + +* **configuration** (`Union`\[`QasmBackendConfiguration`, `PulseBackendConfiguration`]) – Backend configuration. +* **service** ([`QiskitRuntimeService`](qiskit_ibm_runtime.QiskitRuntimeService "qiskit_ibm_runtime.qiskit_runtime_service.QiskitRuntimeService")) – Instance of QiskitRuntimeService. +* **api\_client** (`RuntimeClient`) – IBM client used to communicate with the server. + +## Attributes + + + +### coupling\_map + +Return the `CouplingMap` object + + + +### dt + +Return the system time resolution of input signals + +This is required to be implemented if the backend supports Pulse scheduling. + +**Return type** + +`Optional`\[`float`] + +**Returns** + +The input signal timestep in seconds. If the backend doesn’t define `dt`, `None` will be returned. + + + +### dtm + +Return the system time resolution of output signals + +**Returns** + +The output signal timestep in seconds. + +**Return type** + +dtm + + + +### id\_warning\_issued + +`= False` + + + +### instruction\_durations + +Return the `InstructionDurations` object. + + + +### instruction\_schedule\_map + +Return the `InstructionScheduleMap` for the instructions defined in this backend’s target. + + + +### instructions + +A list of Instruction tuples on the backend of the form `(instruction, (qubits)` + +**Return type** + +`List`\[`Tuple`\[`Instruction`, `Tuple`\[`int`]]] + + + +### max\_circuits + +The maximum number of circuits + +The maximum number of circuits (or Pulse schedules) that can be run in a single job. If there is no limit this will return None. + +**Return type** + +`int` + + + +### meas\_map + +Return the grouping of measurements which are multiplexed + +This is required to be implemented if the backend supports Pulse scheduling. + +**Returns** + +The grouping of measurements which are multiplexed + +**Return type** + +meas\_map + + + +### num\_qubits + +Return the number of qubits the backend has. + +**Return type** + +`int` + + + +### operation\_names + +A list of instruction names that the backend supports. + +**Return type** + +`List`\[`str`] + + + +### operations + +A list of `Instruction` instances that the backend supports. + +**Return type** + +`List`\[`Instruction`] + + + +### options + +Return the options for the backend + +The options of a backend are the dynamic parameters defining how the backend is used. These are used to control the [`run()`](#qiskit_ibm_runtime.IBMBackend.run "qiskit_ibm_runtime.IBMBackend.run") method. + + + +### provider + +Return the backend Provider. + +**Returns** + +the Provider responsible for the backend. + +**Return type** + +Provider + + + +### service + +Return the `service` object + +**Returns** + +instance of QiskitRuntimeService + +**Return type** + +service + + + +### session + +Return session + +**Return type** + +`Session` + + + +### target + +A `qiskit.transpiler.Target` object for the backend. + +**Return type** + +`Target` + +**Returns** + +Target + + + +### version + +`= 2` + + + +### name + +Name of the backend. + + + +### description + +Optional human-readable description. + + + +### online\_date + +Date that the backend came online. + + + +### backend\_version + +Version of the backend being provided. This is not the same as `BackendV2.version`, which is the version of the `Backend` abstract interface. + +## Methods + +### \_\_call\_\_ + + + +`__call__()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/ibm_backend.py#L506-L508 "view source code") + +Call self as a function. + +**Return type** + +[`IBMBackend`](#qiskit_ibm_runtime.IBMBackend "qiskit_ibm_runtime.ibm_backend.IBMBackend") + +### acquire\_channel + + + +`acquire_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/ibm_backend.py#L480-L486 "view source code") + +Return the acquisition channel for the given qubit. + +**Returns** + +The Qubit measurement acquisition line. + +**Return type** + +AcquireChannel + +### cancel\_session + + + +`cancel_session()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/ibm_backend.py#L839-L846 "view source code") + +Cancel session. All pending jobs will be cancelled. + +**Return type** + +`None` + +### check\_faulty + + + +`check_faulty(circuit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/ibm_backend.py#L530-L562 "view source code") + +Check if the input circuit uses faulty qubits or edges. + +**Parameters** + +**circuit** (`QuantumCircuit`) – Circuit to check. + +**Raises** + +**ValueError** – If an instruction operating on a faulty qubit or edge is found. + +**Return type** + +`None` + +### close\_session + + + +`close_session()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/ibm_backend.py#L848-L856 "view source code") + +Close the session so new jobs will no longer be accepted, but existing queued or running jobs will run to completion. The session will be terminated once there are no more pending jobs. + +**Return type** + +`None` + +### configuration + + + +`configuration()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/ibm_backend.py#L447-L462 "view source code") + +Return the backend configuration. + +Backend configuration contains fixed information about the backend, such as its name, number of qubits, basis gates, coupling map, quantum volume, etc. + +The schema for backend configuration can be found in [Qiskit/ibm-quantum-schemas/backend\_configuration](https://github.com/Qiskit/ibm-quantum-schemas/blob/main/schemas/backend_configuration_schema.json). + +**Return type** + +`Union`\[`QasmBackendConfiguration`, `PulseBackendConfiguration`] + +**Returns** + +The configuration for the backend. + +### control\_channel + + + +`control_channel(qubits)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/ibm_backend.py#L488-L501 "view source code") + +Return the secondary drive channel for the given qubit + +This is typically utilized for controlling multiqubit interactions. This channel is derived from other channels. + +**Parameters** + +**qubits** (`Iterable`\[`int`]) – Tuple or list of qubits of the form `(control_qubit, target_qubit)`. + +**Returns** + +The Qubit measurement acquisition line. + +**Return type** + +List\[ControlChannel] + +### defaults + + + +`defaults(refresh=False)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/ibm_backend.py#L424-L445 "view source code") + +Return the pulse defaults for the backend. + +The schema for default pulse configuration can be found in [Qiskit/ibm-quantum-schemas/default\_pulse\_configuration](https://github.com/Qiskit/ibm-quantum-schemas/blob/main/schemas/default_pulse_configuration_schema.json). + +**Parameters** + +**refresh** (`bool`) – If `True`, re-query the server for the backend pulse defaults. Otherwise, return a cached version. + +**Return type** + +`Optional`\[`PulseDefaults`] + +**Returns** + +The backend pulse defaults or `None` if the backend does not support pulse. + +### drive\_channel + + + +`drive_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/ibm_backend.py#L464-L470 "view source code") + +Return the drive channel for the given qubit. + +**Returns** + +The Qubit drive channel + +**Return type** + +DriveChannel + +### measure\_channel + + + +`measure_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/ibm_backend.py#L472-L478 "view source code") + +Return the measure stimulus channel for the given qubit. + +**Returns** + +The Qubit measurement stimulus line + +**Return type** + +MeasureChannel + +### open\_session + + + +`open_session(max_time=None)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/ibm_backend.py#L823-L832 "view source code") + +Open session + +**Return type** + +`Session` + +### properties + + + +`properties(refresh=False, datetime=None)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/ibm_backend.py#L348-L398 "view source code") + +Return the backend properties, subject to optional filtering. + +This data describes qubits properties (such as T1 and T2), gates properties (such as gate length and error), and other general properties of the backend. + +The schema for backend properties can be found in [Qiskit/ibm-quantum-schemas/backend\_properties](https://github.com/Qiskit/ibm-quantum-schemas/blob/main/schemas/backend_properties_schema.json). + +**Parameters** + +* **refresh** (`bool`) – If `True`, re-query the server for the backend properties. Otherwise, return a cached version. +* **datetime** (`Optional`\[`datetime`]) – By specifying datetime, this function returns an instance of the `BackendProperties` whose timestamp is closest to, but older than, the specified datetime. Note that this is only supported using `ibm_quantum` runtime. + +**Return type** + +`Optional`\[`BackendProperties`] + +**Returns** + +The backend properties or `None` if the backend properties are not currently available. + +**Raises** + +* **TypeError** – If an input argument is not of the correct type. +* **NotImplementedError** – If datetime is specified when cloud runtime is used. + +### qubit\_properties + + + +`qubit_properties(qubit)` + +Return QubitProperties for a given qubit. + +If there are no defined or the backend doesn’t support querying these details this method does not need to be implemented. + +**Parameters** + +**qubit** (`Union`\[`int`, `List`\[`int`]]) – The qubit to get the `QubitProperties` object for. This can be a single integer for 1 qubit or a list of qubits and a list of `QubitProperties` objects will be returned in the same order + +**Return type** + +`Union`\[`QubitProperties`, `List`\[`QubitProperties`]] + +**Returns** + +The `QubitProperties` object for the specified qubit. If a list of qubits is provided a list will be returned. If properties are missing for a qubit this can be `None`. + +**Raises** + +**NotImplementedError** – if the backend doesn’t support querying the qubit properties + +### run + + + +`run(circuits, dynamic=None, job_tags=None, init_circuit=None, init_num_resets=None, header=None, shots=None, memory=None, meas_level=None, meas_return=None, rep_delay=None, init_qubits=None, use_measure_esp=None, noise_model=None, seed_simulator=None, **run_config)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/ibm_backend.py#L582-L739 "view source code") + +Run on the backend. If a keyword specified here is also present in the `options` attribute/object, the value specified here will be used for this run. + +**Parameters** + +* **circuits** (`Union`\[`QuantumCircuit`, `str`, `List`\[`Union`\[`QuantumCircuit`, `str`]]]) – An individual or a list of `QuantumCircuit`. + +* **dynamic** (`Optional`\[`bool`]) – Whether the circuit is dynamic (uses in-circuit conditionals) + +* **job\_tags** (`Optional`\[`List`\[`str`]]) – Tags to be assigned to the job. The tags can subsequently be used as a filter in the `jobs()` function call. + +* **init\_circuit** (`Optional`\[`QuantumCircuit`]) – A quantum circuit to execute for initializing qubits before each circuit. If specified, `init_num_resets` is ignored. Applicable only if `dynamic=True` is specified. + +* **init\_num\_resets** (`Optional`\[`int`]) – The number of qubit resets to insert before each circuit execution. + +* **or** (*The following parameters are applicable only if dynamic=False is specified*) – + +* **to.** (*defaulted*) – + +* **header** (`Optional`\[`Dict`]) – User input that will be attached to the job and will be copied to the corresponding result header. Headers do not affect the run. This replaces the old `Qobj` header. + +* **shots** (`Union`\[`int`, `float`, `None`]) – Number of repetitions of each circuit, for sampling. Default: 4000 or `max_shots` from the backend configuration, whichever is smaller. + +* **memory** (`Optional`\[`bool`]) – If `True`, per-shot measurement bitstrings are returned as well (provided the backend supports it). For OpenPulse jobs, only measurement level 2 supports this option. + +* **meas\_level** (`Union`\[`int`, `MeasLevel`, `None`]) – + + Level of the measurement output for pulse experiments. See [OpenPulse specification](https://arxiv.org/pdf/1809.03452.pdf) for details: + + * `0`, measurements of the raw signal (the measurement output pulse envelope) + * `1`, measurement kernel is selected (a complex number obtained after applying the measurement kernel to the measurement output signal) + * `2` (default), a discriminator is selected and the qubit state is stored (0 or 1) + +* **meas\_return** (`Union`\[`str`, `MeasReturnType`, `None`]) – + + Level of measurement data for the backend to return. For `meas_level` 0 and 1: + + * `single` returns information from every shot. + * `avg` returns average measurement output (averaged over number of shots). + +* **rep\_delay** (`Optional`\[`float`]) – Delay between programs in seconds. Only supported on certain backends (if `backend.configuration().dynamic_reprate_enabled=True`). If supported, `rep_delay` must be from the range supplied by the backend (`backend.configuration().rep_delay_range`). Default is given by `backend.configuration().default_rep_delay`. + +* **init\_qubits** (`Optional`\[`bool`]) – Whether to reset the qubits to the ground state for each shot. Default: `True`. + +* **use\_measure\_esp** (`Optional`\[`bool`]) – Whether to use excited state promoted (ESP) readout for measurements which are the terminal instruction to a qubit. ESP readout can offer higher fidelity than standard measurement sequences. See [here](https://arxiv.org/pdf/2008.08571.pdf). Default: `True` if backend supports ESP readout, else `False`. Backend support for ESP readout is determined by the flag `measure_esp_enabled` in `backend.configuration()`. + +* **noise\_model** (`Optional`\[`Any`]) – Noise model. (Simulators only) + +* **seed\_simulator** (`Optional`\[`int`]) – Random seed to control sampling. (Simulators only) + +* **\*\*run\_config** – Extra arguments used to configure the run. + +**Return type** + +[`RuntimeJob`](qiskit_ibm_runtime.RuntimeJob "qiskit_ibm_runtime.runtime_job.RuntimeJob") + +**Returns** + +The job to be executed. + +**Raises** + +* **IBMBackendApiError** – If an unexpected error occurred while submitting the job. + +* **IBMBackendApiProtocolError** – If an unexpected value received from the server. + +* **IBMBackendValueError** – + + * If an input parameter value is not valid. - If ESP readout is used and the backend does not support this. + +### set\_options + + + +`set_options(**fields)` + +Set the options fields for the backend + +This method is used to update the options of a backend. If you need to change any of the options prior to running just pass in the kwarg with the new value for the options. + +**Parameters** + +**fields** – The fields to update the options + +**Raises** + +**AttributeError** – If the field passed in is not part of the options + +### status + + + +`status()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/ibm_backend.py#L400-L422 "view source code") + +Return the backend status. + + + If the returned `BackendStatus` instance has `operational=True` but `status_msg="internal"`, then the backend is accepting jobs but not processing them. + + +**Return type** + +`BackendStatus` + +**Returns** + +The status of the backend. + +**Raises** + +**IBMBackendApiProtocolError** – If the status for the backend cannot be formatted properly. + +### target\_history + + + +`target_history(datetime=None)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/ibm_backend.py#L338-L346 "view source code") + +A `qiskit.transpiler.Target` object for the backend. :rtype: `Target` :returns: Target with properties found on datetime + diff --git a/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.QiskitRuntimeService.md b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.QiskitRuntimeService.md new file mode 100644 index 00000000000..0e636261475 --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.QiskitRuntimeService.md @@ -0,0 +1,514 @@ +--- +title: QiskitRuntimeService +description: API reference for qiskit_ibm_runtime.QiskitRuntimeService +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.QiskitRuntimeService +--- + +# QiskitRuntimeService + + + +`QiskitRuntimeService(channel=None, token=None, url=None, filename=None, name=None, instance=None, proxies=None, verify=None, channel_strategy=None)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/qiskit_runtime_service.py#L64-L1219 "view source code") + +Class for interacting with the Qiskit Runtime service. + +Qiskit Runtime is a new architecture offered by IBM Quantum that streamlines computations requiring many iterations. These experiments will execute significantly faster within its improved hybrid quantum/classical process. + +A sample workflow of using the runtime service: + +```python +from qiskit_ibm_runtime import QiskitRuntimeService, Session, Sampler, Estimator, Options +from qiskit.circuit.library import RealAmplitudes +from qiskit.circuit import QuantumCircuit, QuantumRegister, ClassicalRegister +from qiskit.quantum_info import SparsePauliOp + +# Initialize account. +service = QiskitRuntimeService() + +# Set options, which can be overwritten at job level. +options = Options(optimization_level=1) + +# Prepare inputs. +psi = RealAmplitudes(num_qubits=2, reps=2) +H1 = SparsePauliOp.from_list([("II", 1), ("IZ", 2), ("XI", 3)]) +theta = [0, 1, 1, 2, 3, 5] + +# Bell Circuit +qr = QuantumRegister(2, name="qr") +cr = ClassicalRegister(2, name="cr") +qc = QuantumCircuit(qr, cr, name="bell") +qc.h(qr[0]) +qc.cx(qr[0], qr[1]) +qc.measure(qr, cr) + +with Session(service=service, backend="ibmq_qasm_simulator") as session: + # Submit a request to the Sampler primitive within the session. + sampler = Sampler(session=session, options=options) + job = sampler.run(circuits=qc) + print(f"Sampler results: {job.result()}") + + # Submit a request to the Estimator primitive within the session. + estimator = Estimator(session=session, options=options) + job = estimator.run( + circuits=[psi], observables=[H1], parameter_values=[theta] + ) + print(f"Estimator results: {job.result()}") +``` + +The example above uses the dedicated [`Sampler`](qiskit_ibm_runtime.Sampler "qiskit_ibm_runtime.Sampler") and [`Estimator`](qiskit_ibm_runtime.Estimator "qiskit_ibm_runtime.Estimator") classes. You can also use the [`run()`](#qiskit_ibm_runtime.QiskitRuntimeService.run "qiskit_ibm_runtime.QiskitRuntimeService.run") method directly to invoke a Qiskit Runtime program. + +If the program has any interim results, you can use the `callback` parameter of the [`run()`](#qiskit_ibm_runtime.QiskitRuntimeService.run "qiskit_ibm_runtime.QiskitRuntimeService.run") method to stream the interim results. Alternatively, you can use the [`RuntimeJob.stream_results()`](qiskit_ibm_runtime.RuntimeJob#stream_results "qiskit_ibm_runtime.RuntimeJob.stream_results") method to stream the results at a later time, but before the job finishes. + +The [`run()`](#qiskit_ibm_runtime.QiskitRuntimeService.run "qiskit_ibm_runtime.QiskitRuntimeService.run") method returns a [`RuntimeJob`](qiskit_ibm_runtime.RuntimeJob "qiskit_ibm_runtime.RuntimeJob") object. You can use its methods to perform tasks like checking job status, getting job result, and canceling job. + +QiskitRuntimeService constructor + +An account is selected in the following order: + +> * Account with the input name, if specified. +> * Default account for the channel type, if channel is specified but token is not. +> * Account defined by the input channel and token, if specified. +> * Account defined by the default\_channel if defined in filename +> * Account defined by the environment variables, if defined. +> * Default account for the `ibm_cloud` account, if one is available. +> * Default account for the `ibm_quantum` account, if one is available. + +instance, proxies, and verify can be used to overwrite corresponding values in the loaded account. + +**Parameters** + +* **channel** (`Optional`\[`Literal`\[‘ibm\_cloud’, ‘ibm\_quantum’]]) – Channel type. `ibm_cloud` or `ibm_quantum`. +* **token** (`Optional`\[`str`]) – IBM Cloud API key or IBM Quantum API token. +* **url** (`Optional`\[`str`]) – The API URL. Defaults to [https://cloud.ibm.com](https://cloud.ibm.com) (ibm\_cloud) or [https://auth.quantum-computing.ibm.com/api](https://auth.quantum-computing.ibm.com/api) (ibm\_quantum). +* **filename** (`Optional`\[`str`]) – Full path of the file where the account is created. Default: \_DEFAULT\_ACCOUNT\_CONFIG\_JSON\_FILE +* **name** (`Optional`\[`str`]) – Name of the account to load. +* **instance** (`Optional`\[`str`]) – The service instance to use. For `ibm_cloud` runtime, this is the Cloud Resource Name (CRN) or the service name. For `ibm_quantum` runtime, this is the hub/group/project in that format. +* **proxies** (`Optional`\[`dict`]) – Proxy configuration. Supported optional keys are `urls` (a dictionary mapping protocol or protocol and host to the URL of the proxy, documented at [https://docs.python-requests.org/en/latest/api/#requests.Session.proxies](https://docs.python-requests.org/en/latest/api/#requests.Session.proxies)), `username_ntlm`, `password_ntlm` (username and password to enable NTLM user authentication) +* **verify** (`Optional`\[`bool`]) – Whether to verify the server’s TLS certificate. +* **channel\_strategy** (`Optional`\[`str`]) – Error mitigation strategy. + +**Returns** + +An instance of QiskitRuntimeService. + +**Raises** + +**IBMInputValueError** – If an input is invalid. + +## Attributes + + + +### channel + +Return the channel type used. + +**Return type** + +`str` + +**Returns** + +The channel type used. + + + +### global\_service + +`= None` + + + +### runtime + +Return self for compatibility with IBMQ provider. + +**Returns** + +self + + + +### version + +`= 1` + +## Methods + +### active\_account + + + +`active_account()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/qiskit_runtime_service.py#L708-L714 "view source code") + +Return the IBM Quantum account currently in use for the session. + +**Return type** + +`Optional`\[`Dict`\[`str`, `str`]] + +**Returns** + +A dictionary with information about the account currently in the session. + +### backend + + + +`backend(name=None, instance=None)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/qiskit_runtime_service.py#L817-L847 "view source code") + +Return a single backend matching the specified filtering. + +**Parameters** + +* **name** (`Optional`\[`str`]) – Name of the backend. +* **instance** (`Optional`\[`str`]) – This is only supported for `ibm_quantum` runtime and is in the hub/group/project format. If an instance is not given, among the providers with access to the backend, a premium provider will be prioritized. For users without access to a premium provider, the default open provider will be used. + +**Returns** + +A backend matching the filtering. + +**Return type** + +Backend + +**Raises** + +**QiskitBackendNotFoundError** – if no backend could be found. + +### backends + + + +`backends(name=None, min_num_qubits=None, instance=None, dynamic_circuits=None, filters=None, **kwargs)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/qiskit_runtime_service.py#L544-L652 "view source code") + +Return all backends accessible via this account, subject to optional filtering. + +**Parameters** + +* **name** (`Optional`\[`str`]) – Backend name to filter by. + +* **min\_num\_qubits** (`Optional`\[`int`]) – Minimum number of qubits the backend has to have. + +* **instance** (`Optional`\[`str`]) – This is only supported for `ibm_quantum` runtime and is in the hub/group/project format. + +* **dynamic\_circuits** (`Optional`\[`bool`]) – Filter by whether the backend supports dynamic circuits. + +* **filters** (`Optional`\[`Callable`\[\[`List`\[[`IBMBackend`](qiskit_ibm_runtime.IBMBackend "qiskit_ibm_runtime.ibm_backend.IBMBackend")]], `bool`]]) – + + More complex filters, such as lambda functions. For example: + + ```python + QiskitRuntimeService.backends( + filters=lambda b: b.max_shots > 50000) + QiskitRuntimeService.backends( + filters=lambda x: ("rz" in x.basis_gates ) + ``` + +* **\*\*kwargs** – + + Simple filters that require a specific value for an attribute in backend configuration or status. Examples: + + ```python + # Get the operational real backends + QiskitRuntimeService.backends(simulator=False, operational=True) + + # Get the backends with at least 127 qubits + QiskitRuntimeService.backends(min_num_qubits=127) + + # Get the backends that support OpenPulse + QiskitRuntimeService.backends(open_pulse=True) + ``` + + For the full list of backend attributes, see the IBMBackend class documentation \<[api/qiskit/providers\_models](/api/qiskit/providers_models)> + +**Return type** + +`List`\[[`IBMBackend`](qiskit_ibm_runtime.IBMBackend "qiskit_ibm_runtime.ibm_backend.IBMBackend")] + +**Returns** + +The list of available backends that match the filter. + +**Raises** + +* **IBMInputValueError** – If an input is invalid. +* **QiskitBackendNotFoundError** – If the backend is not in any instance. + +### delete\_account + + + +`static delete_account(filename=None, name=None, channel=None)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/qiskit_runtime_service.py#L716-L734 "view source code") + +Delete a saved account from disk. + +**Parameters** + +* **filename** (`Optional`\[`str`]) – Name of file from which to delete the account. +* **name** (`Optional`\[`str`]) – Name of the saved account to delete. +* **channel** (`Optional`\[`Literal`\[‘ibm\_cloud’, ‘ibm\_quantum’]]) – Channel type of the default account to delete. Ignored if account name is provided. + +**Return type** + +`bool` + +**Returns** + +True if the account was deleted. False if no account was found. + +### delete\_job + + + +`delete_job(job_id)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/qiskit_runtime_service.py#L1077-L1094 "view source code") + +Delete a runtime job. + +Note that this operation cannot be reversed. + +**Parameters** + +**job\_id** (`str`) – ID of the job to delete. + +**Raises** + +* **RuntimeJobNotFound** – If the job doesn’t exist. +* **IBMRuntimeError** – If the request failed. + +**Return type** + +`None` + +### get\_backend + + + +`get_backend(name=None, **kwargs)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/qiskit_runtime_service.py#L849-L850 "view source code") + +Return a single backend matching the specified filtering. + +**Parameters** + +* **name** (*str*) – name of the backend. +* **\*\*kwargs** – dict used for filtering. + +**Returns** + +a backend matching the filtering. + +**Return type** + +Backend + +**Raises** + +**QiskitBackendNotFoundError** – if no backend could be found or more than one backend matches the filtering criteria. + +### instances + + + +`instances()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/qiskit_runtime_service.py#L1184-L1192 "view source code") + +Return the IBM Quantum instances list currently in use for the session. + +**Return type** + +`List`\[`str`] + +**Returns** + +A list with instances currently in the session. + +### job + + + +`job(job_id)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/qiskit_runtime_service.py#L960-L979 "view source code") + +Retrieve a runtime job. + +**Parameters** + +**job\_id** (`str`) – Job ID. + +**Return type** + +[`RuntimeJob`](qiskit_ibm_runtime.RuntimeJob "qiskit_ibm_runtime.runtime_job.RuntimeJob") + +**Returns** + +Runtime job retrieved. + +**Raises** + +* **RuntimeJobNotFound** – If the job doesn’t exist. +* **IBMRuntimeError** – If the request failed. + +### jobs + + + +`jobs(limit=10, skip=0, backend_name=None, pending=None, program_id=None, instance=None, job_tags=None, session_id=None, created_after=None, created_before=None, descending=True)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/qiskit_runtime_service.py#L981-L1075 "view source code") + +Retrieve all runtime jobs, subject to optional filtering. + +**Parameters** + +* **limit** (`Optional`\[`int`]) – Number of jobs to retrieve. `None` means no limit. +* **skip** (`int`) – Starting index for the job retrieval. +* **backend\_name** (`Optional`\[`str`]) – Name of the backend to retrieve jobs from. +* **pending** (`Optional`\[`bool`]) – Filter by job pending state. If `True`, ‘QUEUED’ and ‘RUNNING’ jobs are included. If `False`, ‘DONE’, ‘CANCELLED’ and ‘ERROR’ jobs are included. +* **program\_id** (`Optional`\[`str`]) – Filter by Program ID. +* **instance** (`Optional`\[`str`]) – This is only supported for `ibm_quantum` runtime and is in the hub/group/project format. +* **job\_tags** (`Optional`\[`List`\[`str`]]) – Filter by tags assigned to jobs. Matched jobs are associated with all tags. +* **session\_id** (`Optional`\[`str`]) – Job ID of the first job in a runtime session. +* **created\_after** (`Optional`\[`datetime`]) – Filter by the given start date, in local time. This is used to find jobs whose creation dates are after (greater than or equal to) this local date/time. +* **created\_before** (`Optional`\[`datetime`]) – Filter by the given end date, in local time. This is used to find jobs whose creation dates are before (less than or equal to) this local date/time. +* **descending** (`bool`) – If `True`, return the jobs in descending order of the job creation date (i.e. newest first) until the limit is reached. + +**Return type** + +`List`\[[`RuntimeJob`](qiskit_ibm_runtime.RuntimeJob "qiskit_ibm_runtime.runtime_job.RuntimeJob")] + +**Returns** + +A list of runtime jobs. + +**Raises** + +**IBMInputValueError** – If an input value is invalid. + +### least\_busy + + + +`least_busy(min_num_qubits=None, instance=None, filters=None, **kwargs)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/qiskit_runtime_service.py#L1147-L1182 "view source code") + +Return the least busy available backend. + +**Parameters** + +* **min\_num\_qubits** (`Optional`\[`int`]) – Minimum number of qubits the backend has to have. + +* **instance** (`Optional`\[`str`]) – This is only supported for `ibm_quantum` runtime and is in the hub/group/project format. + +* **filters** (`Optional`\[`Callable`\[\[`List`\[[`IBMBackend`](qiskit_ibm_runtime.IBMBackend "qiskit_ibm_runtime.ibm_backend.IBMBackend")]], `bool`]]) – + + Filters can be defined as for the [`backends()`](#qiskit_ibm_runtime.QiskitRuntimeService.backends "qiskit_ibm_runtime.QiskitRuntimeService.backends") method. An example to get the operational backends with 5 qubits: + + ```python + QiskitRuntimeService.least_busy(n_qubits=5, operational=True) + ``` + +**Return type** + +[`IBMBackend`](qiskit_ibm_runtime.IBMBackend "qiskit_ibm_runtime.ibm_backend.IBMBackend") + +**Returns** + +The backend with the fewest number of pending jobs. + +**Raises** + +**QiskitBackendNotFoundError** – If no backend matches the criteria. + +### run + + + +`run(program_id, inputs, options=None, callback=None, result_decoder=None, session_id=None, start_session=False)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/qiskit_runtime_service.py#L852-L958 "view source code") + +Execute the runtime program. + +**Parameters** + +* **program\_id** (`str`) – Program ID. + +* **inputs** (`Dict`) – Program input parameters. These input values are passed to the runtime program. + +* **options** (`Union`\[[`RuntimeOptions`](qiskit_ibm_runtime.RuntimeOptions "qiskit_ibm_runtime.runtime_options.RuntimeOptions"), `Dict`, `None`]) – Runtime options that control the execution environment. See [`RuntimeOptions`](qiskit_ibm_runtime.RuntimeOptions "qiskit_ibm_runtime.RuntimeOptions") for all available options. + +* **callback** (`Optional`\[`Callable`]) – + + Callback function to be invoked for any interim results and final result. The callback function will receive 2 positional parameters: + + > 1. Job ID + > 2. Job result. + +* **result\_decoder** (`Union`\[`Type`\[`ResultDecoder`], `Sequence`\[`Type`\[`ResultDecoder`]], `None`]) – A `ResultDecoder` subclass used to decode job results. If more than one decoder is specified, the first is used for interim results and the second final results. If not specified, a program-specific decoder or the default `ResultDecoder` is used. + +* **session\_id** (`Optional`\[`str`]) – Job ID of the first job in a runtime session. + +* **start\_session** (`Optional`\[`bool`]) – Set to True to explicitly start a runtime session. Defaults to False. + +**Return type** + +[`RuntimeJob`](qiskit_ibm_runtime.RuntimeJob "qiskit_ibm_runtime.runtime_job.RuntimeJob") + +**Returns** + +A `RuntimeJob` instance representing the execution. + +**Raises** + +* **IBMInputValueError** – If input is invalid. +* **RuntimeProgramNotFound** – If the program cannot be found. +* **IBMRuntimeError** – An error occurred running the program. + +### save\_account + + + +`static save_account(token=None, url=None, instance=None, channel=None, filename=None, name=None, proxies=None, verify=None, overwrite=False, channel_strategy=None, set_as_default=None)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/qiskit_runtime_service.py#L736-L785 "view source code") + +Save the account to disk for future use. + +**Parameters** + +* **token** (`Optional`\[`str`]) – IBM Cloud API key or IBM Quantum API token. +* **url** (`Optional`\[`str`]) – The API URL. Defaults to [https://cloud.ibm.com](https://cloud.ibm.com) (ibm\_cloud) or [https://auth.quantum-computing.ibm.com/api](https://auth.quantum-computing.ibm.com/api) (ibm\_quantum). +* **instance** (`Optional`\[`str`]) – The CRN (ibm\_cloud) or hub/group/project (ibm\_quantum). +* **channel** (`Optional`\[`Literal`\[‘ibm\_cloud’, ‘ibm\_quantum’]]) – Channel type. ibm\_cloud or ibm\_quantum. +* **filename** (`Optional`\[`str`]) – Full path of the file where the account is saved. +* **name** (`Optional`\[`str`]) – Name of the account to save. +* **proxies** (`Optional`\[`dict`]) – Proxy configuration. Supported optional keys are `urls` (a dictionary mapping protocol or protocol and host to the URL of the proxy, documented at [https://docs.python-requests.org/en/latest/api/#requests.Session.proxies](https://docs.python-requests.org/en/latest/api/#requests.Session.proxies)), `username_ntlm`, `password_ntlm` (username and password to enable NTLM user authentication) +* **verify** (`Optional`\[`bool`]) – Verify the server’s TLS certificate. +* **overwrite** (`Optional`\[`bool`]) – `True` if the existing account is to be overwritten. +* **channel\_strategy** (`Optional`\[`str`]) – Error mitigation strategy. +* **set\_as\_default** (`Optional`\[`bool`]) – If `True`, the account is saved in filename, as the default account. + +**Return type** + +`None` + +### saved\_accounts + + + +`static saved_accounts(default=None, channel=None, filename=None, name=None)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/qiskit_runtime_service.py#L787-L815 "view source code") + +List the accounts saved on disk. + +**Parameters** + +* **default** (`Optional`\[`bool`]) – If set to True, only default accounts are returned. +* **channel** (`Optional`\[`Literal`\[‘ibm\_cloud’, ‘ibm\_quantum’]]) – Channel type. ibm\_cloud or ibm\_quantum. +* **filename** (`Optional`\[`str`]) – Name of file whose accounts are returned. +* **name** (`Optional`\[`str`]) – If set, only accounts with the given name are returned. + +**Return type** + +`dict` + +**Returns** + +A dictionary with information about the accounts saved on disk. + +**Raises** + +**ValueError** – If an invalid account is found on disk. + diff --git a/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.RuntimeDecoder.md b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.RuntimeDecoder.md new file mode 100644 index 00000000000..2a367574489 --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.RuntimeDecoder.md @@ -0,0 +1,60 @@ +--- +title: RuntimeDecoder +description: API reference for qiskit_ibm_runtime.RuntimeDecoder +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.RuntimeDecoder +--- + +# RuntimeDecoder + + + +`RuntimeDecoder(*args, **kwargs)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/utils/json.py#L282-L343 "view source code") + +JSON Decoder used by runtime service. + +`object_hook`, if specified, will be called with the result of every JSON object decoded and its return value will be used in place of the given `dict`. This can be used to provide custom deserializations (e.g. to support JSON-RPC class hinting). + +`object_pairs_hook`, if specified will be called with the result of every JSON object decoded with an ordered list of pairs. The return value of `object_pairs_hook` will be used instead of the `dict`. This feature can be used to implement custom decoders. If `object_hook` is also defined, the `object_pairs_hook` takes priority. + +`parse_float`, if specified, will be called with the string of every JSON float to be decoded. By default this is equivalent to float(num\_str). This can be used to use another datatype or parser for JSON floats (e.g. decimal.Decimal). + +`parse_int`, if specified, will be called with the string of every JSON int to be decoded. By default this is equivalent to int(num\_str). This can be used to use another datatype or parser for JSON integers (e.g. float). + +`parse_constant`, if specified, will be called with one of the following strings: -Infinity, Infinity, NaN. This can be used to raise an exception if invalid JSON numbers are encountered. + +If `strict` is false (true is the default), then control characters will be allowed inside strings. Control characters in this context are those with character codes in the 0-31 range, including `'\t'` (tab), `'\n'`, `'\r'` and `'\0'`. + +## Methods + +### decode + + + +`decode(s, _w=)` + +Return the Python representation of `s` (a `str` instance containing a JSON document). + +### object\_hook + + + +`object_hook(obj)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/utils/json.py#L297-L343 "view source code") + +Called to decode object. + +**Return type** + +`Any` + +### raw\_decode + + + +`raw_decode(s, idx=0)` + +Decode a JSON document from `s` (a `str` beginning with a JSON document) and return a 2-tuple of the Python representation and the index in `s` where the document ended. + +This can be used to decode a JSON document from a string that may have extraneous data at the end. + diff --git a/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.RuntimeEncoder.md b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.RuntimeEncoder.md new file mode 100644 index 00000000000..fc1b85bba7e --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.RuntimeEncoder.md @@ -0,0 +1,105 @@ +--- +title: RuntimeEncoder +description: API reference for qiskit_ibm_runtime.RuntimeEncoder +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.RuntimeEncoder +--- + +# RuntimeEncoder + + + +`RuntimeEncoder(*, skipkeys=False, ensure_ascii=True, check_circular=True, allow_nan=True, sort_keys=False, indent=None, separators=None, default=None)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/utils/json.py#L196-L279 "view source code") + +JSON Encoder used by runtime service. + +Constructor for JSONEncoder, with sensible defaults. + +If skipkeys is false, then it is a TypeError to attempt encoding of keys that are not str, int, float or None. If skipkeys is True, such items are simply skipped. + +If ensure\_ascii is true, the output is guaranteed to be str objects with all incoming non-ASCII characters escaped. If ensure\_ascii is false, the output can contain non-ASCII characters. + +If check\_circular is true, then lists, dicts, and custom encoded objects will be checked for circular references during encoding to prevent an infinite recursion (which would cause an RecursionError). Otherwise, no such check takes place. + +If allow\_nan is true, then NaN, Infinity, and -Infinity will be encoded as such. This behavior is not JSON specification compliant, but is consistent with most JavaScript based encoders and decoders. Otherwise, it will be a ValueError to encode such floats. + +If sort\_keys is true, then the output of dictionaries will be sorted by key; this is useful for regression tests to ensure that JSON serializations can be compared on a day-to-day basis. + +If indent is a non-negative integer, then JSON array elements and object members will be pretty-printed with that indent level. An indent level of 0 will only insert newlines. None is the most compact representation. + +If specified, separators should be an (item\_separator, key\_separator) tuple. The default is (’, ‘, ‘: ‘) if *indent* is `None` and (‘,’, ‘: ‘) otherwise. To get the most compact JSON representation, you should specify (‘,’, ‘:’) to eliminate whitespace. + +If specified, default is a function that gets called for objects that can’t otherwise be serialized. It should return a JSON encodable version of the object or raise a `TypeError`. + +## Attributes + + + +### item\_separator + +`= ', '` + + + +### key\_separator + +`= ': '` + +## Methods + +### default + + + +`default(obj)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/utils/json.py#L199-L279 "view source code") + +Implement this method in a subclass such that it returns a serializable object for `o`, or calls the base implementation (to raise a `TypeError`). + +For example, to support arbitrary iterators, you could implement default like this: + +```python +def default(self, o): + try: + iterable = iter(o) + except TypeError: + pass + else: + return list(iterable) + # Let the base class default method raise the TypeError + return JSONEncoder.default(self, o) +``` + +**Return type** + +`Any` + +### encode + + + +`encode(o)` + +Return a JSON string representation of a Python data structure. + +```python +>>> from json.encoder import JSONEncoder +>>> JSONEncoder().encode({"foo": ["bar", "baz"]}) +'{"foo": ["bar", "baz"]}' +``` + +### iterencode + + + +`iterencode(o, _one_shot=False)` + +Encode the given object and yield each string representation as available. + +For example: + +```python +for chunk in JSONEncoder().iterencode(bigobject): + mysocket.write(chunk) +``` + diff --git a/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.RuntimeJob.md b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.RuntimeJob.md new file mode 100644 index 00000000000..861646b4459 --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.RuntimeJob.md @@ -0,0 +1,553 @@ +--- +title: RuntimeJob +description: API reference for qiskit_ibm_runtime.RuntimeJob +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.RuntimeJob +--- + +# RuntimeJob + + + +`RuntimeJob(backend, api_client, client_params, job_id, program_id, service, params=None, creation_date=None, user_callback=None, result_decoder=None, image='', session_id=None, tags=None)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/runtime_job.py#L55-L752 "view source code") + +Representation of a runtime program execution. + +A new `RuntimeJob` instance is returned when you call [`QiskitRuntimeService.run`](qiskit_ibm_runtime.QiskitRuntimeService#run "qiskit_ibm_runtime.QiskitRuntimeService.run") to execute a runtime program, or [`QiskitRuntimeService.job`](qiskit_ibm_runtime.QiskitRuntimeService#job "qiskit_ibm_runtime.QiskitRuntimeService.job") to retrieve a previously executed job. + +If the program execution is successful, you can inspect the job’s status by calling [`status()`](#qiskit_ibm_runtime.RuntimeJob.status "qiskit_ibm_runtime.RuntimeJob.status"). Job status can be one of the `JobStatus` members. + +Some of the methods in this class are blocking, which means control may not be returned immediately. [`result()`](#qiskit_ibm_runtime.RuntimeJob.result "qiskit_ibm_runtime.RuntimeJob.result") is an example of a blocking method: + +```python +job = service.run(...) + +try: + job_result = job.result() # It will block until the job finishes. + print("The job finished with result {}".format(job_result)) +except RuntimeJobFailureError as ex: + print("Job failed!: {}".format(ex)) +``` + +If the program has any interim results, you can use the `callback` parameter of the [`run()`](qiskit_ibm_runtime.QiskitRuntimeService#run "qiskit_ibm_runtime.QiskitRuntimeService.run") method to stream the interim results along with the final result. Alternatively, you can use the [`stream_results()`](#qiskit_ibm_runtime.RuntimeJob.stream_results "qiskit_ibm_runtime.RuntimeJob.stream_results") method to stream the results at a later time, but before the job finishes. + +RuntimeJob constructor. + +**Parameters** + +* **backend** (`Backend`) – The backend instance used to run this job. +* **api\_client** (`RuntimeClient`) – Object for connecting to the server. +* **client\_params** (`ClientParameters`) – Parameters used for server connection. +* **job\_id** (`str`) – Job ID. +* **program\_id** (`str`) – ID of the program this job is for. +* **params** (`Optional`\[`Dict`]) – Job parameters. +* **creation\_date** (`Optional`\[`str`]) – Job creation date, in UTC. +* **user\_callback** (`Optional`\[`Callable`]) – User callback function. +* **result\_decoder** (`Union`\[`Type`\[`ResultDecoder`], `Sequence`\[`Type`\[`ResultDecoder`]], `None`]) – A `ResultDecoder` subclass used to decode job results. +* **image** (`Optional`\[`str`]) – Runtime image used for this job: image\_name:tag. +* **service** ([`QiskitRuntimeService`](qiskit_ibm_runtime.QiskitRuntimeService "qiskit_ibm_runtime.qiskit_runtime_service.QiskitRuntimeService")) – Runtime service. +* **session\_id** (`Optional`\[`str`]) – Job ID of the first job in a runtime session. +* **tags** (`Optional`\[`List`]) – Tags assigned to the job. + +## Attributes + + + +### creation\_date + +Job creation date in local time. + +**Return type** + +`Optional`\[`datetime`] + +**Returns** + +The job creation date as a datetime object, in local time, or `None` if creation date is not available. + + + +### image + +Return the runtime image used for the job. + +**Returns** + +image\_name:tag or “” if the default image is used. + +**Return type** + +Runtime image + + + +### inputs + +Job input parameters. + +**Return type** + +`Dict` + +**Returns** + +Input parameters used in this job. + + + +### program\_id + +Program ID. + +**Return type** + +`str` + +**Returns** + +ID of the program this job is for. + + + +### session\_id + +Session ID. + +**Return type** + +`str` + +**Returns** + +Session ID. None if the backend is a simulator. + + + +### tags + +Job tags. + +**Return type** + +`List` + +**Returns** + +Tags assigned to the job that can be used for filtering. + + + +### usage\_estimation + +Return the usage estimation infromation for this job. + +**Return type** + +`Dict`\[`str`, `Any`] + +**Returns** + +`quantum_seconds` which is the estimated system execution time of the job in seconds. Quantum time represents the time that the system is dedicated to processing your job. + + + +### version + +`= 1` + +## Methods + +### backend + + + +`backend(timeout=None)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/runtime_job.py#L251-L265 "view source code") + +Return the backend where this job was executed. Retrieve data again if backend is None. + +**Raises** + +**IBMRuntimeError** – If a network error occurred. + +**Return type** + +`Optional`\[`Backend`] + +### cancel + + + +`cancel()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/runtime_job.py#L235-L249 "view source code") + +Cancel the job. + +**Raises** + +* **RuntimeInvalidStateError** – If the job is in a state that cannot be cancelled. +* **IBMRuntimeError** – If unable to cancel job. + +**Return type** + +`None` + +### cancel\_result\_streaming + + + +`cancel_result_streaming()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/runtime_job.py#L352-L356 "view source code") + +Cancel result streaming. + +**Return type** + +`None` + +### cancelled + + + +`cancelled()` + +Return whether the job has been cancelled. + +**Return type** + +`bool` + +### done + + + +`done()` + +Return whether the job has successfully run. + +**Return type** + +`bool` + +### error\_message + + + +`error_message()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/runtime_job.py#L276-L283 "view source code") + +Returns the reason if the job failed. + +**Return type** + +`Optional`\[`str`] + +**Returns** + +Error message string or `None`. + +### in\_final\_state + + + +`in_final_state()` + +Return whether the job is in a final job state such as `DONE` or `ERROR`. + +**Return type** + +`bool` + +### interim\_results + + + +`interim_results(decoder=None)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/runtime_job.py#L178-L196 "view source code") + +Return the interim results of the job. + +**Parameters** + +**decoder** (`Optional`\[`Type`\[`ResultDecoder`]]) – A `ResultDecoder` subclass used to decode interim results. + +**Return type** + +`Any` + +**Returns** + +Runtime job interim results. + +**Raises** + +**RuntimeJobFailureError** – If the job failed. + +### job\_id + + + +`job_id()` + +Return a unique id identifying the job. + +**Return type** + +`str` + +### logs + + + +`logs()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/runtime_job.py#L358-L377 "view source code") + +Return job logs. + + + Job logs are only available after the job finishes. + + +**Return type** + +`str` + +**Returns** + +Job logs, including standard output and error. + +**Raises** + +**IBMRuntimeError** – If a network error occurred. + +### metrics + + + +`metrics()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/runtime_job.py#L379-L391 "view source code") + +Return job metrics. + +**Return type** + +`Dict`\[`str`, `Any`] + +**Returns** + +Job metrics, which includes timestamp information. + +**Raises** + +**IBMRuntimeError** – If a network error occurred. + +### properties + + + +`properties(refresh=False)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/runtime_job.py#L436-L448 "view source code") + +Return the backend properties for this job. + +**Parameters** + +**refresh** (`bool`) – If `True`, re-query the server for the backend properties. Otherwise, return a cached version. + +**Return type** + +`Optional`\[`BackendProperties`] + +**Returns** + +The backend properties used for this job, at the time the job was run, or `None` if properties are not available. + +### queue\_info + + + +`queue_info()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/runtime_job.py#L720-L752 "view source code") + +Return queue information for this job. + +The queue information may include queue position, estimated start and end time, and dynamic priorities for the hub, group, and project. See `QueueInfo` for more information. + + + The queue information is calculated after the job enters the queue. Therefore, some or all of the information may not be immediately available, and this method may return `None`. + + +**Return type** + +`Optional`\[`QueueInfo`] + +**Returns** + +A `QueueInfo` instance that contains queue information for this job, or `None` if queue information is unknown or not applicable. + +### queue\_position + + + +`queue_position(refresh=False)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/runtime_job.py#L693-L718 "view source code") + +Return the position of the job in the server queue. + + + The position returned is within the scope of the provider and may differ from the global queue position. + + +**Parameters** + +**refresh** (`bool`) – If `True`, re-query the server to get the latest value. Otherwise return the cached value. + +**Return type** + +`Optional`\[`int`] + +**Returns** + +Position in the queue or `None` if position is unknown or not applicable. + +### result + + + +`result(timeout=None, decoder=None)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/runtime_job.py#L198-L233 "view source code") + +Return the results of the job. + +**Parameters** + +* **timeout** (`Optional`\[`float`]) – Number of seconds to wait for job. +* **decoder** (`Optional`\[`Type`\[`ResultDecoder`]]) – A `ResultDecoder` subclass used to decode job results. + +**Return type** + +`Any` + +**Returns** + +Runtime job result. + +**Raises** + +* **RuntimeJobFailureError** – If the job failed. +* **RuntimeJobMaxTimeoutError** – If the job does not complete within given timeout. +* **RuntimeInvalidStateError** – If the job was cancelled, and attempting to retrieve result. + +### running + + + +`running()` + +Return whether the job is actively running. + +**Return type** + +`bool` + +### status + + + +`status()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/runtime_job.py#L267-L274 "view source code") + +Return the status of the job. + +**Return type** + +`JobStatus` + +**Returns** + +Status of this job. + +### stream\_results + + + +`stream_results(callback, decoder=None)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/runtime_job.py#L322-L350 "view source code") + +Start streaming job results. + +**Parameters** + +* **callback** (`Callable`) – + + Callback function to be invoked for any interim results and final result. The callback function will receive 2 positional parameters: + + > 1. Job ID + > 2. Job result. + +* **decoder** (`Optional`\[`Type`\[`ResultDecoder`]]) – A `ResultDecoder` subclass used to decode job results. + +**Raises** + +**RuntimeInvalidStateError** – If a callback function is already streaming results or if the job already finished. + +**Return type** + +`None` + +### submit + + + +`submit()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/runtime_job.py#L393-L405 "view source code") + +Unsupported method. .. note: + +```python +This method is not supported, please use +:meth:`~qiskit_ibm_runtime.QiskitRuntimeService.run` +to submit a job. +``` + +**Raises** + +**NotImplementedError** – Upon invocation. + +**Return type** + +`None` + +### update\_tags + + + +`update_tags(new_tags)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/runtime_job.py#L407-L434 "view source code") + +Update the tags associated with this job. + +**Parameters** + +**new\_tags** (`List`\[`str`]) – New tags to assign to the job. + +**Return type** + +`List`\[`str`] + +**Returns** + +The new tags associated with this job. + +**Raises** + +**IBMApiError** – If an unexpected error occurred when communicating with the server or updating the job tags. + +### wait\_for\_final\_state + + + +`wait_for_final_state(timeout=None)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/runtime_job.py#L285-L320 "view source code") + +Use the websocket server to wait for the final the state of a job. + +The server will remain open if the job is still running and the connection will be terminated once the job completes. Then update and return the status of the job. + +**Parameters** + +**timeout** (`Optional`\[`float`]) – Seconds to wait for the job. If `None`, wait indefinitely. + +**Raises** + +**RuntimeJobTimeoutError** – If the job does not complete within given timeout. + +**Return type** + +`None` + diff --git a/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.RuntimeOptions.md b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.RuntimeOptions.md new file mode 100644 index 00000000000..650a2a9aaec --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.RuntimeOptions.md @@ -0,0 +1,108 @@ +--- +title: RuntimeOptions +description: API reference for qiskit_ibm_runtime.RuntimeOptions +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.RuntimeOptions +--- + +# RuntimeOptions + + + +`RuntimeOptions(backend=None, image=None, log_level=None, instance=None, job_tags=None, max_execution_time=None, session_time=None)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/runtime_options.py#L24-L106 "view source code") + +Class for representing generic runtime execution options. + +RuntimeOptions constructor. + +**Parameters** + +* **backend** (`Optional`\[`str`]) – target backend to run on. This is required for `ibm_quantum` channel. +* **image** (`Optional`\[`str`]) – the runtime image used to execute the program, specified in the form of `image_name:tag`. Not all accounts are authorized to select a different image. +* **log\_level** (`Optional`\[`str`]) – logging level to set in the execution environment. The valid log levels are: `DEBUG`, `INFO`, `WARNING`, `ERROR`, and `CRITICAL`. The default level is `WARNING`. +* **instance** (`Optional`\[`str`]) – The hub/group/project to use, in that format. This is only supported for `ibm_quantum` channel. If `None`, a hub/group/project that provides access to the target backend is randomly selected. +* **job\_tags** (`Optional`\[`List`\[`str`]]) – Tags to be assigned to the job. The tags can subsequently be used as a filter in the `jobs()` function call. +* **max\_execution\_time** (`Optional`\[`int`]) – Maximum execution time in seconds, which is based on system execution time (not wall clock time). System execution time is the amount of time that the system is dedicated to processing your job. If a job exceeds this time limit, it is forcibly cancelled. Simulator jobs continue to use wall clock time. +* **session\_time** (`Optional`\[`int`]) – Length of session in seconds. + +## Attributes + + + +### backend + +`str | None` + +`= None` + + + +### image + +`str | None` + +`= None` + + + +### instance + +`str | None` + +`= None` + + + +### job\_tags + +`List[str] | None` + +`= None` + + + +### log\_level + +`str | None` + +`= None` + + + +### max\_execution\_time + +`int | None` + +`= None` + + + +### session\_time + +`int | None` + +`= None` + +## Methods + +### validate + + + +`validate(channel)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/runtime_options.py#L76-L106 "view source code") + +Validate options. + +**Parameters** + +**channel** (`str`) – channel type. + +**Raises** + +**IBMInputValueError** – If one or more option is invalid. + +**Return type** + +`None` + diff --git a/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.Sampler.md b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.Sampler.md new file mode 100644 index 00000000000..e0d643f5588 --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.Sampler.md @@ -0,0 +1,136 @@ +--- +title: Sampler +description: API reference for qiskit_ibm_runtime.Sampler +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.Sampler +--- + +# Sampler + + + +`Sampler(backend=None, session=None, options=None)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/sampler.py#L35-L184 "view source code") + +Class for interacting with Qiskit Runtime Sampler primitive service. + +Qiskit Runtime Sampler primitive service calculates quasi-probability distribution of bitstrings from quantum circuits. + +The [`run()`](#qiskit_ibm_runtime.Sampler.run "qiskit_ibm_runtime.Sampler.run") method can be used to submit circuits and parameters to the Sampler primitive. + +You are encouraged to use [`Session`](qiskit_ibm_runtime.Session "qiskit_ibm_runtime.Session") to open a session, during which you can invoke one or more primitives. Jobs submitted within a session are prioritized by the scheduler, and data is cached for efficiency. + +Example: + +```python +from qiskit.circuit import QuantumCircuit, QuantumRegister, ClassicalRegister +from qiskit_ibm_runtime import QiskitRuntimeService, Session, Sampler + +service = QiskitRuntimeService(channel="ibm_cloud") + +# Bell Circuit +qr = QuantumRegister(2, name="qr") +cr = ClassicalRegister(2, name="cr") +qc = QuantumCircuit(qr, cr, name="bell") +qc.h(qr[0]) +qc.cx(qr[0], qr[1]) +qc.measure(qr, cr) + +with Session(service, backend="ibmq_qasm_simulator") as session: + sampler = Sampler(session=session) + + job = sampler.run(qc, shots=1024) + print(f"Job ID: {job.job_id()}") + print(f"Job result: {job.result()}") + + # You can run more jobs inside the session +``` + +Initializes the Sampler primitive. + +**Parameters** + +* **backend** (`Union`\[`str`, [`IBMBackend`](qiskit_ibm_runtime.IBMBackend "qiskit_ibm_runtime.ibm_backend.IBMBackend"), `None`]) – Backend to run the primitive. This can be a backend name or an [`IBMBackend`](qiskit_ibm_runtime.IBMBackend "qiskit_ibm_runtime.IBMBackend") instance. If a name is specified, the default account (e.g. `QiskitRuntimeService()`) is used. + +* **session** (`Union`\[[`Session`](qiskit_ibm_runtime.Session "qiskit_ibm_runtime.session.Session"), `str`, [`IBMBackend`](qiskit_ibm_runtime.IBMBackend "qiskit_ibm_runtime.ibm_backend.IBMBackend"), `None`]) – + + Session in which to call the primitive. + + If both `session` and `backend` are specified, `session` takes precedence. If neither is specified, and the primitive is created inside a [`qiskit_ibm_runtime.Session`](qiskit_ibm_runtime.Session "qiskit_ibm_runtime.Session") context manager, then the session is used. Otherwise if IBM Cloud channel is used, a default backend is selected. + +* **options** (`Union`\[`Dict`, [`Options`](qiskit_ibm_runtime.options.Options "qiskit_ibm_runtime.options.options.Options"), `None`]) – Primitive options, see `Options` for detailed description. The `backend` keyword is still supported but is deprecated. + +## Attributes + + + +### options + +Return options values for the sampler. + +**Return type** + +`Options` + +**Returns** + +options + + + +### session + +Return session used by this primitive. + +**Return type** + +`Optional`\[[`Session`](qiskit_ibm_runtime.Session "qiskit_ibm_runtime.session.Session")] + +**Returns** + +Session used by this primitive, or `None` if session is not used. + +## Methods + +### run + + + +`run(circuits, parameter_values=None, **kwargs)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/sampler.py#L102-L130 "view source code") + +Submit a request to the sampler primitive. + +**Parameters** + +* **circuits** (*QuantumCircuit | Sequence\[QuantumCircuit]*) – A (parameterized) `QuantumCircuit` or a list of (parameterized) `QuantumCircuit`. +* **parameter\_values** (*Sequence\[float] | Sequence\[Sequence\[float]] | None*) – Concrete parameters to be bound. +* **\*\*kwargs** – Individual options to overwrite the default primitive options. These include the runtime options in [`qiskit_ibm_runtime.RuntimeOptions`](qiskit_ibm_runtime.RuntimeOptions "qiskit_ibm_runtime.RuntimeOptions"). + +**Return type** + +[RuntimeJob](qiskit_ibm_runtime.RuntimeJob "qiskit_ibm_runtime.RuntimeJob") + +**Returns** + +Submitted job. The result of the job is an instance of `qiskit.primitives.SamplerResult`. + +**Raises** + +**ValueError** – Invalid arguments are given. + +### set\_options + + + +`set_options(**fields)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/base_primitive.py#L216-L222 "view source code") + +Set options values for the sampler. + +**Parameters** + +**\*\*fields** – The fields to update the options + +**Return type** + +`None` + diff --git a/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.Session.md b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.Session.md new file mode 100644 index 00000000000..c3bb4cc48e4 --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.Session.md @@ -0,0 +1,204 @@ +--- +title: Session +description: API reference for qiskit_ibm_runtime.Session +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.Session +--- + +# Session + + + +`Session(service=None, backend=None, max_time=None)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/session.py#L40-L336 "view source code") + +Class for creating a flexible Qiskit Runtime session. + +A Qiskit Runtime `session` allows you to group a collection of iterative calls to the quantum computer. A session is started when the first job within the session is started. Subsequent jobs within the session are prioritized by the scheduler. Data used within a session, such as transpiled circuits, is also cached to avoid unnecessary overhead. + +You can open a Qiskit Runtime session using this `Session` class and submit jobs to one or more primitives. + +For example: + +```python +from qiskit.circuit import QuantumCircuit, QuantumRegister, ClassicalRegister +from qiskit_ibm_runtime import Sampler, Session, Options + +# Bell Circuit +qr = QuantumRegister(2, name="qr") +cr = ClassicalRegister(2, name="cr") +qc = QuantumCircuit(qr, cr, name="bell") +qc.h(qr[0]) +qc.cx(qr[0], qr[1]) +qc.measure(qr, cr) + +options = Options(optimization_level=3) + +with Session(backend="ibmq_qasm_simulator") as session: + sampler = Sampler(session=session, options=options) + job = sampler.run(qc) + print(f"Sampler job ID: {job.job_id()}") + print(f"Sampler job result: {job.result()}") +``` + +Session constructor. + +**Parameters** + +* **service** (`Optional`\[[`QiskitRuntimeService`](qiskit_ibm_runtime.QiskitRuntimeService "qiskit_ibm_runtime.qiskit_runtime_service.QiskitRuntimeService")]) – Optional instance of the `QiskitRuntimeService` class. If `None`, the service associated with the backend, if known, is used. Otherwise `QiskitRuntimeService()` is used to initialize your default saved account. +* **backend** (`Union`\[`str`, [`IBMBackend`](qiskit_ibm_runtime.IBMBackend "qiskit_ibm_runtime.ibm_backend.IBMBackend"), `None`]) – Optional instance of [`qiskit_ibm_runtime.IBMBackend`](qiskit_ibm_runtime.IBMBackend "qiskit_ibm_runtime.IBMBackend") class or string name of backend. An instance of `qiskit_ibm_provider.IBMBackend` will not work. If not specified, a backend will be selected automatically (IBM Cloud channel only). +* **max\_time** (`Union`\[`int`, `str`, `None`]) – (EXPERIMENTAL setting, can break between releases without warning) Maximum amount of time, a runtime session can be open before being forcibly closed. Can be specified as seconds (int) or a string like “2h 30m 40s”. This value must be less than the [system imposed maximum](/run/max-execution-time). + +**Raises** + +**ValueError** – If an input value is invalid. + +## Attributes + + + +### service + +Return service associated with this session. + +**Return type** + +[`QiskitRuntimeService`](qiskit_ibm_runtime.QiskitRuntimeService "qiskit_ibm_runtime.qiskit_runtime_service.QiskitRuntimeService") + +**Returns** + +[`qiskit_ibm_runtime.QiskitRuntimeService`](qiskit_ibm_runtime.QiskitRuntimeService "qiskit_ibm_runtime.QiskitRuntimeService") associated with this session. + + + +### session\_id + +Return the session ID. + +**Return type** + +`Optional`\[`str`] + +**Returns** + +Session ID. None if the backend is a simulator. + +## Methods + +### backend + + + +`backend()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/session.py#L208-L214 "view source code") + +Return backend for this session. + +**Return type** + +`Optional`\[`str`] + +**Returns** + +Backend for this session. None if unknown. + +### cancel + + + +`cancel()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/session.py#L194-L198 "view source code") + +Cancel all pending jobs in a session. + +**Return type** + +`None` + +### close + + + +`close()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/session.py#L200-L206 "view source code") + +Close the session so new jobs will no longer be accepted, but existing queued or running jobs will run to completion. The session will be terminated once there are no more pending jobs. + +**Return type** + +`None` + +### details + + + +`details()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/session.py#L242-L278 "view source code") + +Return session details. + +**Returns** + +id: id of the session. backend\_name: backend used for the session. interactive\_timeout: The maximum idle time (in seconds) between jobs that is allowed to occur before the session is deactivated. max\_time: Maximum allowed time (in seconds) for the session, subject to plan limits. active\_timeout: The maximum time (in seconds) a session can stay active. state: State of the session - open, active, inactive, or closed. accepting\_jobs: Whether or not the session is accepting jobs. last\_job\_started: Timestamp of when the last job in the session started. last\_job\_completed: Timestamp of when the last job in the session completed. started\_at: Timestamp of when the session was started. closed\_at: Timestamp of when the session was closed. activated\_at: Timestamp of when the session state was changed to active. + +**Return type** + +A dictionary with the sessions details, including + +### from\_id + + + +`classmethod from_id(session_id, service=None, backend=None)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/session.py#L298-L323 "view source code") + +Construct a Session object with a given session\_id + +**Parameters** + +* **session\_id** (`str`) – the id of the session to be created. This must be an already existing session id. +* **service** (`Optional`\[[`QiskitRuntimeService`](qiskit_ibm_runtime.QiskitRuntimeService "qiskit_ibm_runtime.qiskit_runtime_service.QiskitRuntimeService")]) – instance of the `QiskitRuntimeService` class. +* **backend** (`Union`\[`str`, [`IBMBackend`](qiskit_ibm_runtime.IBMBackend "qiskit_ibm_runtime.ibm_backend.IBMBackend"), `None`]) – instance of [`qiskit_ibm_runtime.IBMBackend`](qiskit_ibm_runtime.IBMBackend "qiskit_ibm_runtime.IBMBackend") class or string name of backend. + +**Return type** + +[`Session`](#qiskit_ibm_runtime.Session "qiskit_ibm_runtime.session.Session") + +**Returns** + +A new Session with the given `session_id` + +### run + + + +`run(program_id, inputs, options=None, callback=None, result_decoder=None)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/session.py#L149-L192 "view source code") + +Run a program in the session. + +**Parameters** + +* **program\_id** (`str`) – Program ID. +* **inputs** (`Dict`) – Program input parameters. These input values are passed to the runtime program. +* **options** (`Optional`\[`Dict`]) – Runtime options that control the execution environment. See [`qiskit_ibm_runtime.RuntimeOptions`](qiskit_ibm_runtime.RuntimeOptions "qiskit_ibm_runtime.RuntimeOptions") for all available options. +* **callback** (`Optional`\[`Callable`]) – Callback function to be invoked for any interim results and final result. + +**Return type** + +[`RuntimeJob`](qiskit_ibm_runtime.RuntimeJob "qiskit_ibm_runtime.runtime_job.RuntimeJob") + +**Returns** + +Submitted job. + +### status + + + +`status()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/session.py#L216-L240 "view source code") + +Return current session status. + +**Returns** + +Pending: Session is created but not active. It will become active when the next job of this session is dequeued. In progress, accepting new jobs: session is active and accepting new jobs. In progress, not accepting new jobs: session is active and not accepting new jobs. Closed: max\_time expired or session was explicitly closed. None: status details are not available. + +**Return type** + +The current status of the session, including + diff --git a/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeAlmaden.md b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeAlmaden.md new file mode 100644 index 00000000000..08c420e0312 --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeAlmaden.md @@ -0,0 +1,177 @@ +--- +title: FakeAlmaden +description: API reference for qiskit_ibm_runtime.fake_provider.FakeAlmaden +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.fake_provider.FakeAlmaden +--- + +# FakeAlmaden + + + +`FakeAlmaden` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/backends/almaden/fake_almaden.py#L41-L58 "view source code") + +A fake Almaden backend. + +```python +00 ↔ 01 ↔ 02 ↔ 03 ↔ 04 + ↕ ↕ +05 ↔ 06 ↔ 07 ↔ 08 ↔ 09 + ↕ ↕ ↕ +10 ↔ 11 ↔ 12 ↔ 13 ↔ 14 + ↕ ↕ +15 ↔ 16 ↔ 17 ↔ 18 ↔ 19 +``` + +FakeBackend initializer. + +**Parameters** + +* **configuration** (*BackendConfiguration*) – backend configuration +* **time\_alive** (*int*) – time to wait before returning result + +## Attributes + + + +### backend\_name + +`= 'fake_almaden'` + + + +### conf\_filename + +`= 'conf_almaden.json'` + + + +### dirname + +`= '/home/runner/work/qiskit-ibm-runtime/qiskit-ibm-runtime/qiskit_ibm_runtime/fake_provider/backends/almaden'` + + + +### options + +Return the options for the backend + +The options of a backend are the dynamic parameters defining how the backend is used. These are used to control the [`run()`](#qiskit_ibm_runtime.fake_provider.FakeAlmaden.run "qiskit_ibm_runtime.fake_provider.FakeAlmaden.run") method. + + + +### props\_filename + +`= 'props_almaden.json'` + + + +### version + +`= 1` + +## Methods + +### configuration + + + +`configuration()` + +Return the backend configuration. + +**Returns** + +the configuration for the backend. + +**Return type** + +BackendConfiguration + +### name + + + +`name()` + +Return the backend name. + +**Returns** + +the name of the backend. + +**Return type** + +str + +### properties + + + +`properties()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_qasm_backend.py#L44-L48 "view source code") + +Returns a snapshot of device properties + +**Return type** + +`BackendProperties` + +### provider + + + +`provider()` + +Return the backend Provider. + +**Returns** + +the Provider responsible for the backend. + +**Return type** + +Provider + +### run + + + +`run(run_input, **kwargs)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L545-L574 "view source code") + +Main job in simulator + +### set\_options + + + +`set_options(**fields)` + +Set the options fields for the backend + +This method is used to update the options of a backend. If you need to change any of the options prior to running just pass in the kwarg with the new value for the options. + +**Parameters** + +**fields** – The fields to update the options + +**Raises** + +**AttributeError** – If the field passed in is not part of the options + +### status + + + +`status()` + +Return the backend status. + +**Returns** + +the status of the backend. + +**Return type** + +BackendStatus + diff --git a/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeAlmadenV2.md b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeAlmadenV2.md new file mode 100644 index 00000000000..2731171efc6 --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeAlmadenV2.md @@ -0,0 +1,387 @@ +--- +title: FakeAlmadenV2 +description: API reference for qiskit_ibm_runtime.fake_provider.FakeAlmadenV2 +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.fake_provider.FakeAlmadenV2 +--- + +# FakeAlmadenV2 + + + +`FakeAlmadenV2` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/backends/almaden/fake_almaden.py#L21-L38 "view source code") + +A fake Almaden V2 backend. + +```python +00 ↔ 01 ↔ 02 ↔ 03 ↔ 04 + ↕ ↕ +05 ↔ 06 ↔ 07 ↔ 08 ↔ 09 + ↕ ↕ ↕ +10 ↔ 11 ↔ 12 ↔ 13 ↔ 14 + ↕ ↕ +15 ↔ 16 ↔ 17 ↔ 18 ↔ 19 +``` + +FakeBackendV2 initializer. + +## Attributes + + + +### backend\_name + +`= 'fake_almaden'` + + + +### conf\_filename + +`= 'conf_almaden.json'` + + + +### coupling\_map + +Return the `CouplingMap` object + + + +### defs\_filename + +`= None` + + + +### dirname + +`= '/home/runner/work/qiskit-ibm-runtime/qiskit-ibm-runtime/qiskit_ibm_runtime/fake_provider/backends/almaden'` + + + +### dt + +Return the system time resolution of input signals + +This is required to be implemented if the backend supports Pulse scheduling. + +**Return type** + +`Optional`\[`float`] + +**Returns** + +The input signal timestep in seconds. If the backend doesn’t define `dt`, `None` will be returned. + + + +### dtm + +Return the system time resolution of output signals + +**Return type** + +`float` + +**Returns** + +The output signal timestep in seconds. + + + +### instruction\_durations + +Return the `InstructionDurations` object. + + + +### instruction\_schedule\_map + +Return the `InstructionScheduleMap` for the instructions defined in this backend’s target. + + + +### instructions + +A list of Instruction tuples on the backend of the form `(instruction, (qubits)` + +**Return type** + +`List`\[`Tuple`\[`Instruction`, `Tuple`\[`int`]]] + + + +### max\_circuits + +**Return type** + +`None` + + + +### meas\_map + +Return the grouping of measurements which are multiplexed This is required to be implemented if the backend supports Pulse scheduling. + +**Return type** + +`List`\[`List`\[`int`]] + +**Returns** + +The grouping of measurements which are multiplexed + + + +### num\_qubits + +Return the number of qubits the backend has. + +**Return type** + +`int` + + + +### operation\_names + +A list of instruction names that the backend supports. + +**Return type** + +`List`\[`str`] + + + +### operations + +A list of `Instruction` instances that the backend supports. + +**Return type** + +`List`\[`Instruction`] + + + +### options + +Return the options for the backend + +The options of a backend are the dynamic parameters defining how the backend is used. These are used to control the [`run()`](#qiskit_ibm_runtime.fake_provider.FakeAlmadenV2.run "qiskit_ibm_runtime.fake_provider.FakeAlmadenV2.run") method. + + + +### props\_filename + +`= 'props_almaden.json'` + + + +### provider + +Return the backend Provider. + +**Returns** + +the Provider responsible for the backend. + +**Return type** + +Provider + + + +### target + +A `qiskit.transpiler.Target` object for the backend. + +**Return type** + +Target + + + +### version + +`= 2` + + + +### name + +Name of the backend. + + + +### description + +Optional human-readable description. + + + +### online\_date + +Date that the backend came online. + + + +### backend\_version + +Version of the backend being provided. This is not the same as `BackendV2.version`, which is the version of the `Backend` abstract interface. + +## Methods + +### acquire\_channel + + + +`acquire_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L269-L282 "view source code") + +Return the acquisition channel for the given qubit. + +This is required to be implemented if the backend supports Pulse scheduling. + +**Returns** + +The Qubit measurement acquisition line. + +**Return type** + +AcquireChannel + +### control\_channel + + + +`control_channel(qubits)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L284-L304 "view source code") + +Return the secondary drive channel for the given qubit + +This is typically utilized for controlling multiqubit interactions. This channel is derived from other channels. + +This is required to be implemented if the backend supports Pulse scheduling. + +**Parameters** + +**qubits** (`Iterable`\[`int`]) – Tuple or list of qubits of the form `(control_qubit, target_qubit)`. + +**Returns** + +The multi qubit control line. + +**Return type** + +List\[ControlChannel] + +### drive\_channel + + + +`drive_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L239-L252 "view source code") + +Return the drive channel for the given qubit. + +This is required to be implemented if the backend supports Pulse scheduling. + +**Returns** + +The Qubit drive channel + +**Return type** + +DriveChannel + +### measure\_channel + + + +`measure_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L254-L267 "view source code") + +Return the measure stimulus channel for the given qubit. + +This is required to be implemented if the backend supports Pulse scheduling. + +**Returns** + +The Qubit measurement stimulus line + +**Return type** + +MeasureChannel + +### qubit\_properties + + + +`qubit_properties(qubit)` + +Return QubitProperties for a given qubit. + +If there are no defined or the backend doesn’t support querying these details this method does not need to be implemented. + +**Parameters** + +**qubit** (`Union`\[`int`, `List`\[`int`]]) – The qubit to get the `QubitProperties` object for. This can be a single integer for 1 qubit or a list of qubits and a list of `QubitProperties` objects will be returned in the same order + +**Return type** + +`Union`\[`QubitProperties`, `List`\[`QubitProperties`]] + +**Returns** + +The `QubitProperties` object for the specified qubit. If a list of qubits is provided a list will be returned. If properties are missing for a qubit this can be `None`. + +**Raises** + +**NotImplementedError** – if the backend doesn’t support querying the qubit properties + +### run + + + +`run(run_input, **options)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L306-L365 "view source code") + +Run on the fake backend using a simulator. + +This method runs circuit jobs (an individual or a list of QuantumCircuit ) and pulse jobs (an individual or a list of Schedule or ScheduleBlock) using BasicAer simulator/ BasicSimulator or Aer simulator and returns a `Job` object. + +If qiskit-aer is installed, jobs will be run using AerSimulator with noise model of the fake backend. Otherwise, jobs will be run using BasicAer simulator/ BasicSimulator simulator without noise. + +Currently noisy simulation of a pulse job is not supported yet in FakeBackendV2. + +**Parameters** + +* **run\_input** (*QuantumCircuit or Schedule or ScheduleBlock or list*) – An individual or a list of `QuantumCircuit`, `ScheduleBlock`, or `Schedule` objects to run on the backend. +* **options** – Any kwarg options to pass to the backend for running the config. If a key is also present in the options attribute/object then the expectation is that the value specified will be used instead of what’s set in the options object. + +**Returns** + +The job object for the run + +**Return type** + +Job + +**Raises** + +**QiskitError** – If a pulse job is supplied and qiskit-aer is not installed. + +### set\_options + + + +`set_options(**fields)` + +Set the options fields for the backend + +This method is used to update the options of a backend. If you need to change any of the options prior to running just pass in the kwarg with the new value for the options. + +**Parameters** + +**fields** – The fields to update the options + +**Raises** + +**AttributeError** – If the field passed in is not part of the options + diff --git a/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeArmonk.md b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeArmonk.md new file mode 100644 index 00000000000..2735b267633 --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeArmonk.md @@ -0,0 +1,189 @@ +--- +title: FakeArmonk +description: API reference for qiskit_ibm_runtime.fake_provider.FakeArmonk +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.fake_provider.FakeArmonk +--- + +# FakeArmonk + + + +`FakeArmonk` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/backends/armonk/fake_armonk.py#L36-L48 "view source code") + +A fake 1 qubit backend. + +```python +0 +``` + +FakeBackend initializer. + +**Parameters** + +* **configuration** (*BackendConfiguration*) – backend configuration +* **time\_alive** (*int*) – time to wait before returning result + +## Attributes + + + +### backend\_name + +`= 'fake_armonk'` + + + +### conf\_filename + +`= 'conf_armonk.json'` + + + +### defs\_filename + +`= 'defs_armonk.json'` + + + +### dirname + +`= '/home/runner/work/qiskit-ibm-runtime/qiskit-ibm-runtime/qiskit_ibm_runtime/fake_provider/backends/armonk'` + + + +### options + +Return the options for the backend + +The options of a backend are the dynamic parameters defining how the backend is used. These are used to control the [`run()`](#qiskit_ibm_runtime.fake_provider.FakeArmonk.run "qiskit_ibm_runtime.fake_provider.FakeArmonk.run") method. + + + +### props\_filename + +`= 'props_armonk.json'` + + + +### version + +`= 1` + +## Methods + +### configuration + + + +`configuration()` + +Return the backend configuration. + +**Returns** + +the configuration for the backend. + +**Return type** + +BackendConfiguration + +### defaults + + + +`defaults()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_pulse_backend.py#L29-L33 "view source code") + +Returns a snapshot of device defaults + +**Return type** + +`PulseDefaults` + +### name + + + +`name()` + +Return the backend name. + +**Returns** + +the name of the backend. + +**Return type** + +str + +### properties + + + +`properties()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_qasm_backend.py#L44-L48 "view source code") + +Returns a snapshot of device properties + +**Return type** + +`BackendProperties` + +### provider + + + +`provider()` + +Return the backend Provider. + +**Returns** + +the Provider responsible for the backend. + +**Return type** + +Provider + +### run + + + +`run(run_input, **kwargs)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L545-L574 "view source code") + +Main job in simulator + +### set\_options + + + +`set_options(**fields)` + +Set the options fields for the backend + +This method is used to update the options of a backend. If you need to change any of the options prior to running just pass in the kwarg with the new value for the options. + +**Parameters** + +**fields** – The fields to update the options + +**Raises** + +**AttributeError** – If the field passed in is not part of the options + +### status + + + +`status()` + +Return the backend status. + +**Returns** + +the status of the backend. + +**Return type** + +BackendStatus + diff --git a/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeArmonkV2.md b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeArmonkV2.md new file mode 100644 index 00000000000..97cea6b3f6e --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeArmonkV2.md @@ -0,0 +1,381 @@ +--- +title: FakeArmonkV2 +description: API reference for qiskit_ibm_runtime.fake_provider.FakeArmonkV2 +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.fake_provider.FakeArmonkV2 +--- + +# FakeArmonkV2 + + + +`FakeArmonkV2` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/backends/armonk/fake_armonk.py#L21-L33 "view source code") + +A fake 1 qubit backend. + +```python +0 +``` + +FakeBackendV2 initializer. + +## Attributes + + + +### backend\_name + +`= 'fake_armonk'` + + + +### conf\_filename + +`= 'conf_armonk.json'` + + + +### coupling\_map + +Return the `CouplingMap` object + + + +### defs\_filename + +`= 'defs_armonk.json'` + + + +### dirname + +`= '/home/runner/work/qiskit-ibm-runtime/qiskit-ibm-runtime/qiskit_ibm_runtime/fake_provider/backends/armonk'` + + + +### dt + +Return the system time resolution of input signals + +This is required to be implemented if the backend supports Pulse scheduling. + +**Return type** + +`Optional`\[`float`] + +**Returns** + +The input signal timestep in seconds. If the backend doesn’t define `dt`, `None` will be returned. + + + +### dtm + +Return the system time resolution of output signals + +**Return type** + +`float` + +**Returns** + +The output signal timestep in seconds. + + + +### instruction\_durations + +Return the `InstructionDurations` object. + + + +### instruction\_schedule\_map + +Return the `InstructionScheduleMap` for the instructions defined in this backend’s target. + + + +### instructions + +A list of Instruction tuples on the backend of the form `(instruction, (qubits)` + +**Return type** + +`List`\[`Tuple`\[`Instruction`, `Tuple`\[`int`]]] + + + +### max\_circuits + +**Return type** + +`None` + + + +### meas\_map + +Return the grouping of measurements which are multiplexed This is required to be implemented if the backend supports Pulse scheduling. + +**Return type** + +`List`\[`List`\[`int`]] + +**Returns** + +The grouping of measurements which are multiplexed + + + +### num\_qubits + +Return the number of qubits the backend has. + +**Return type** + +`int` + + + +### operation\_names + +A list of instruction names that the backend supports. + +**Return type** + +`List`\[`str`] + + + +### operations + +A list of `Instruction` instances that the backend supports. + +**Return type** + +`List`\[`Instruction`] + + + +### options + +Return the options for the backend + +The options of a backend are the dynamic parameters defining how the backend is used. These are used to control the [`run()`](#qiskit_ibm_runtime.fake_provider.FakeArmonkV2.run "qiskit_ibm_runtime.fake_provider.FakeArmonkV2.run") method. + + + +### props\_filename + +`= 'props_armonk.json'` + + + +### provider + +Return the backend Provider. + +**Returns** + +the Provider responsible for the backend. + +**Return type** + +Provider + + + +### target + +A `qiskit.transpiler.Target` object for the backend. + +**Return type** + +Target + + + +### version + +`= 2` + + + +### name + +Name of the backend. + + + +### description + +Optional human-readable description. + + + +### online\_date + +Date that the backend came online. + + + +### backend\_version + +Version of the backend being provided. This is not the same as `BackendV2.version`, which is the version of the `Backend` abstract interface. + +## Methods + +### acquire\_channel + + + +`acquire_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L269-L282 "view source code") + +Return the acquisition channel for the given qubit. + +This is required to be implemented if the backend supports Pulse scheduling. + +**Returns** + +The Qubit measurement acquisition line. + +**Return type** + +AcquireChannel + +### control\_channel + + + +`control_channel(qubits)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L284-L304 "view source code") + +Return the secondary drive channel for the given qubit + +This is typically utilized for controlling multiqubit interactions. This channel is derived from other channels. + +This is required to be implemented if the backend supports Pulse scheduling. + +**Parameters** + +**qubits** (`Iterable`\[`int`]) – Tuple or list of qubits of the form `(control_qubit, target_qubit)`. + +**Returns** + +The multi qubit control line. + +**Return type** + +List\[ControlChannel] + +### drive\_channel + + + +`drive_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L239-L252 "view source code") + +Return the drive channel for the given qubit. + +This is required to be implemented if the backend supports Pulse scheduling. + +**Returns** + +The Qubit drive channel + +**Return type** + +DriveChannel + +### measure\_channel + + + +`measure_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L254-L267 "view source code") + +Return the measure stimulus channel for the given qubit. + +This is required to be implemented if the backend supports Pulse scheduling. + +**Returns** + +The Qubit measurement stimulus line + +**Return type** + +MeasureChannel + +### qubit\_properties + + + +`qubit_properties(qubit)` + +Return QubitProperties for a given qubit. + +If there are no defined or the backend doesn’t support querying these details this method does not need to be implemented. + +**Parameters** + +**qubit** (`Union`\[`int`, `List`\[`int`]]) – The qubit to get the `QubitProperties` object for. This can be a single integer for 1 qubit or a list of qubits and a list of `QubitProperties` objects will be returned in the same order + +**Return type** + +`Union`\[`QubitProperties`, `List`\[`QubitProperties`]] + +**Returns** + +The `QubitProperties` object for the specified qubit. If a list of qubits is provided a list will be returned. If properties are missing for a qubit this can be `None`. + +**Raises** + +**NotImplementedError** – if the backend doesn’t support querying the qubit properties + +### run + + + +`run(run_input, **options)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L306-L365 "view source code") + +Run on the fake backend using a simulator. + +This method runs circuit jobs (an individual or a list of QuantumCircuit ) and pulse jobs (an individual or a list of Schedule or ScheduleBlock) using BasicAer simulator/ BasicSimulator or Aer simulator and returns a `Job` object. + +If qiskit-aer is installed, jobs will be run using AerSimulator with noise model of the fake backend. Otherwise, jobs will be run using BasicAer simulator/ BasicSimulator simulator without noise. + +Currently noisy simulation of a pulse job is not supported yet in FakeBackendV2. + +**Parameters** + +* **run\_input** (*QuantumCircuit or Schedule or ScheduleBlock or list*) – An individual or a list of `QuantumCircuit`, `ScheduleBlock`, or `Schedule` objects to run on the backend. +* **options** – Any kwarg options to pass to the backend for running the config. If a key is also present in the options attribute/object then the expectation is that the value specified will be used instead of what’s set in the options object. + +**Returns** + +The job object for the run + +**Return type** + +Job + +**Raises** + +**QiskitError** – If a pulse job is supplied and qiskit-aer is not installed. + +### set\_options + + + +`set_options(**fields)` + +Set the options fields for the backend + +This method is used to update the options of a backend. If you need to change any of the options prior to running just pass in the kwarg with the new value for the options. + +**Parameters** + +**fields** – The fields to update the options + +**Raises** + +**AttributeError** – If the field passed in is not part of the options + diff --git a/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeAthens.md b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeAthens.md new file mode 100644 index 00000000000..f7bb0cd4d3f --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeAthens.md @@ -0,0 +1,185 @@ +--- +title: FakeAthens +description: API reference for qiskit_ibm_runtime.fake_provider.FakeAthens +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.fake_provider.FakeAthens +--- + +# FakeAthens + + + +`FakeAthens` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/backends/athens/fake_athens.py#L31-L38 "view source code") + +A fake 5 qubit backend. + +FakeBackend initializer. + +**Parameters** + +* **configuration** (*BackendConfiguration*) – backend configuration +* **time\_alive** (*int*) – time to wait before returning result + +## Attributes + + + +### backend\_name + +`= 'fake_athens'` + + + +### conf\_filename + +`= 'conf_athens.json'` + + + +### defs\_filename + +`= 'defs_athens.json'` + + + +### dirname + +`= '/home/runner/work/qiskit-ibm-runtime/qiskit-ibm-runtime/qiskit_ibm_runtime/fake_provider/backends/athens'` + + + +### options + +Return the options for the backend + +The options of a backend are the dynamic parameters defining how the backend is used. These are used to control the [`run()`](#qiskit_ibm_runtime.fake_provider.FakeAthens.run "qiskit_ibm_runtime.fake_provider.FakeAthens.run") method. + + + +### props\_filename + +`= 'props_athens.json'` + + + +### version + +`= 1` + +## Methods + +### configuration + + + +`configuration()` + +Return the backend configuration. + +**Returns** + +the configuration for the backend. + +**Return type** + +BackendConfiguration + +### defaults + + + +`defaults()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_pulse_backend.py#L29-L33 "view source code") + +Returns a snapshot of device defaults + +**Return type** + +`PulseDefaults` + +### name + + + +`name()` + +Return the backend name. + +**Returns** + +the name of the backend. + +**Return type** + +str + +### properties + + + +`properties()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_qasm_backend.py#L44-L48 "view source code") + +Returns a snapshot of device properties + +**Return type** + +`BackendProperties` + +### provider + + + +`provider()` + +Return the backend Provider. + +**Returns** + +the Provider responsible for the backend. + +**Return type** + +Provider + +### run + + + +`run(run_input, **kwargs)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L545-L574 "view source code") + +Main job in simulator + +### set\_options + + + +`set_options(**fields)` + +Set the options fields for the backend + +This method is used to update the options of a backend. If you need to change any of the options prior to running just pass in the kwarg with the new value for the options. + +**Parameters** + +**fields** – The fields to update the options + +**Raises** + +**AttributeError** – If the field passed in is not part of the options + +### status + + + +`status()` + +Return the backend status. + +**Returns** + +the status of the backend. + +**Return type** + +BackendStatus + diff --git a/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeAthensV2.md b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeAthensV2.md new file mode 100644 index 00000000000..bec95b6467c --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeAthensV2.md @@ -0,0 +1,377 @@ +--- +title: FakeAthensV2 +description: API reference for qiskit_ibm_runtime.fake_provider.FakeAthensV2 +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.fake_provider.FakeAthensV2 +--- + +# FakeAthensV2 + + + +`FakeAthensV2` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/backends/athens/fake_athens.py#L21-L28 "view source code") + +A fake 5 qubit backend. + +FakeBackendV2 initializer. + +## Attributes + + + +### backend\_name + +`= 'fake_athens'` + + + +### conf\_filename + +`= 'conf_athens.json'` + + + +### coupling\_map + +Return the `CouplingMap` object + + + +### defs\_filename + +`= 'defs_athens.json'` + + + +### dirname + +`= '/home/runner/work/qiskit-ibm-runtime/qiskit-ibm-runtime/qiskit_ibm_runtime/fake_provider/backends/athens'` + + + +### dt + +Return the system time resolution of input signals + +This is required to be implemented if the backend supports Pulse scheduling. + +**Return type** + +`Optional`\[`float`] + +**Returns** + +The input signal timestep in seconds. If the backend doesn’t define `dt`, `None` will be returned. + + + +### dtm + +Return the system time resolution of output signals + +**Return type** + +`float` + +**Returns** + +The output signal timestep in seconds. + + + +### instruction\_durations + +Return the `InstructionDurations` object. + + + +### instruction\_schedule\_map + +Return the `InstructionScheduleMap` for the instructions defined in this backend’s target. + + + +### instructions + +A list of Instruction tuples on the backend of the form `(instruction, (qubits)` + +**Return type** + +`List`\[`Tuple`\[`Instruction`, `Tuple`\[`int`]]] + + + +### max\_circuits + +**Return type** + +`None` + + + +### meas\_map + +Return the grouping of measurements which are multiplexed This is required to be implemented if the backend supports Pulse scheduling. + +**Return type** + +`List`\[`List`\[`int`]] + +**Returns** + +The grouping of measurements which are multiplexed + + + +### num\_qubits + +Return the number of qubits the backend has. + +**Return type** + +`int` + + + +### operation\_names + +A list of instruction names that the backend supports. + +**Return type** + +`List`\[`str`] + + + +### operations + +A list of `Instruction` instances that the backend supports. + +**Return type** + +`List`\[`Instruction`] + + + +### options + +Return the options for the backend + +The options of a backend are the dynamic parameters defining how the backend is used. These are used to control the [`run()`](#qiskit_ibm_runtime.fake_provider.FakeAthensV2.run "qiskit_ibm_runtime.fake_provider.FakeAthensV2.run") method. + + + +### props\_filename + +`= 'props_athens.json'` + + + +### provider + +Return the backend Provider. + +**Returns** + +the Provider responsible for the backend. + +**Return type** + +Provider + + + +### target + +A `qiskit.transpiler.Target` object for the backend. + +**Return type** + +Target + + + +### version + +`= 2` + + + +### name + +Name of the backend. + + + +### description + +Optional human-readable description. + + + +### online\_date + +Date that the backend came online. + + + +### backend\_version + +Version of the backend being provided. This is not the same as `BackendV2.version`, which is the version of the `Backend` abstract interface. + +## Methods + +### acquire\_channel + + + +`acquire_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L269-L282 "view source code") + +Return the acquisition channel for the given qubit. + +This is required to be implemented if the backend supports Pulse scheduling. + +**Returns** + +The Qubit measurement acquisition line. + +**Return type** + +AcquireChannel + +### control\_channel + + + +`control_channel(qubits)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L284-L304 "view source code") + +Return the secondary drive channel for the given qubit + +This is typically utilized for controlling multiqubit interactions. This channel is derived from other channels. + +This is required to be implemented if the backend supports Pulse scheduling. + +**Parameters** + +**qubits** (`Iterable`\[`int`]) – Tuple or list of qubits of the form `(control_qubit, target_qubit)`. + +**Returns** + +The multi qubit control line. + +**Return type** + +List\[ControlChannel] + +### drive\_channel + + + +`drive_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L239-L252 "view source code") + +Return the drive channel for the given qubit. + +This is required to be implemented if the backend supports Pulse scheduling. + +**Returns** + +The Qubit drive channel + +**Return type** + +DriveChannel + +### measure\_channel + + + +`measure_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L254-L267 "view source code") + +Return the measure stimulus channel for the given qubit. + +This is required to be implemented if the backend supports Pulse scheduling. + +**Returns** + +The Qubit measurement stimulus line + +**Return type** + +MeasureChannel + +### qubit\_properties + + + +`qubit_properties(qubit)` + +Return QubitProperties for a given qubit. + +If there are no defined or the backend doesn’t support querying these details this method does not need to be implemented. + +**Parameters** + +**qubit** (`Union`\[`int`, `List`\[`int`]]) – The qubit to get the `QubitProperties` object for. This can be a single integer for 1 qubit or a list of qubits and a list of `QubitProperties` objects will be returned in the same order + +**Return type** + +`Union`\[`QubitProperties`, `List`\[`QubitProperties`]] + +**Returns** + +The `QubitProperties` object for the specified qubit. If a list of qubits is provided a list will be returned. If properties are missing for a qubit this can be `None`. + +**Raises** + +**NotImplementedError** – if the backend doesn’t support querying the qubit properties + +### run + + + +`run(run_input, **options)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L306-L365 "view source code") + +Run on the fake backend using a simulator. + +This method runs circuit jobs (an individual or a list of QuantumCircuit ) and pulse jobs (an individual or a list of Schedule or ScheduleBlock) using BasicAer simulator/ BasicSimulator or Aer simulator and returns a `Job` object. + +If qiskit-aer is installed, jobs will be run using AerSimulator with noise model of the fake backend. Otherwise, jobs will be run using BasicAer simulator/ BasicSimulator simulator without noise. + +Currently noisy simulation of a pulse job is not supported yet in FakeBackendV2. + +**Parameters** + +* **run\_input** (*QuantumCircuit or Schedule or ScheduleBlock or list*) – An individual or a list of `QuantumCircuit`, `ScheduleBlock`, or `Schedule` objects to run on the backend. +* **options** – Any kwarg options to pass to the backend for running the config. If a key is also present in the options attribute/object then the expectation is that the value specified will be used instead of what’s set in the options object. + +**Returns** + +The job object for the run + +**Return type** + +Job + +**Raises** + +**QiskitError** – If a pulse job is supplied and qiskit-aer is not installed. + +### set\_options + + + +`set_options(**fields)` + +Set the options fields for the backend + +This method is used to update the options of a backend. If you need to change any of the options prior to running just pass in the kwarg with the new value for the options. + +**Parameters** + +**fields** – The fields to update the options + +**Raises** + +**AttributeError** – If the field passed in is not part of the options + diff --git a/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeAuckland.md b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeAuckland.md new file mode 100644 index 00000000000..982e308f839 --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeAuckland.md @@ -0,0 +1,377 @@ +--- +title: FakeAuckland +description: API reference for qiskit_ibm_runtime.fake_provider.FakeAuckland +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.fake_provider.FakeAuckland +--- + +# FakeAuckland + + + +`FakeAuckland` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/backends/auckland/fake_auckland.py#L22-L29 "view source code") + +A fake 27 qubit backend. + +FakeBackendV2 initializer. + +## Attributes + + + +### backend\_name + +`= 'fake_auckland'` + + + +### conf\_filename + +`= 'conf_auckland.json'` + + + +### coupling\_map + +Return the `CouplingMap` object + + + +### defs\_filename + +`= 'defs_auckland.json'` + + + +### dirname + +`= '/home/runner/work/qiskit-ibm-runtime/qiskit-ibm-runtime/qiskit_ibm_runtime/fake_provider/backends/auckland'` + + + +### dt + +Return the system time resolution of input signals + +This is required to be implemented if the backend supports Pulse scheduling. + +**Return type** + +`Optional`\[`float`] + +**Returns** + +The input signal timestep in seconds. If the backend doesn’t define `dt`, `None` will be returned. + + + +### dtm + +Return the system time resolution of output signals + +**Return type** + +`float` + +**Returns** + +The output signal timestep in seconds. + + + +### instruction\_durations + +Return the `InstructionDurations` object. + + + +### instruction\_schedule\_map + +Return the `InstructionScheduleMap` for the instructions defined in this backend’s target. + + + +### instructions + +A list of Instruction tuples on the backend of the form `(instruction, (qubits)` + +**Return type** + +`List`\[`Tuple`\[`Instruction`, `Tuple`\[`int`]]] + + + +### max\_circuits + +**Return type** + +`None` + + + +### meas\_map + +Return the grouping of measurements which are multiplexed This is required to be implemented if the backend supports Pulse scheduling. + +**Return type** + +`List`\[`List`\[`int`]] + +**Returns** + +The grouping of measurements which are multiplexed + + + +### num\_qubits + +Return the number of qubits the backend has. + +**Return type** + +`int` + + + +### operation\_names + +A list of instruction names that the backend supports. + +**Return type** + +`List`\[`str`] + + + +### operations + +A list of `Instruction` instances that the backend supports. + +**Return type** + +`List`\[`Instruction`] + + + +### options + +Return the options for the backend + +The options of a backend are the dynamic parameters defining how the backend is used. These are used to control the [`run()`](#qiskit_ibm_runtime.fake_provider.FakeAuckland.run "qiskit_ibm_runtime.fake_provider.FakeAuckland.run") method. + + + +### props\_filename + +`= 'props_auckland.json'` + + + +### provider + +Return the backend Provider. + +**Returns** + +the Provider responsible for the backend. + +**Return type** + +Provider + + + +### target + +A `qiskit.transpiler.Target` object for the backend. + +**Return type** + +Target + + + +### version + +`= 2` + + + +### name + +Name of the backend. + + + +### description + +Optional human-readable description. + + + +### online\_date + +Date that the backend came online. + + + +### backend\_version + +Version of the backend being provided. This is not the same as `BackendV2.version`, which is the version of the `Backend` abstract interface. + +## Methods + +### acquire\_channel + + + +`acquire_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L269-L282 "view source code") + +Return the acquisition channel for the given qubit. + +This is required to be implemented if the backend supports Pulse scheduling. + +**Returns** + +The Qubit measurement acquisition line. + +**Return type** + +AcquireChannel + +### control\_channel + + + +`control_channel(qubits)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L284-L304 "view source code") + +Return the secondary drive channel for the given qubit + +This is typically utilized for controlling multiqubit interactions. This channel is derived from other channels. + +This is required to be implemented if the backend supports Pulse scheduling. + +**Parameters** + +**qubits** (`Iterable`\[`int`]) – Tuple or list of qubits of the form `(control_qubit, target_qubit)`. + +**Returns** + +The multi qubit control line. + +**Return type** + +List\[ControlChannel] + +### drive\_channel + + + +`drive_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L239-L252 "view source code") + +Return the drive channel for the given qubit. + +This is required to be implemented if the backend supports Pulse scheduling. + +**Returns** + +The Qubit drive channel + +**Return type** + +DriveChannel + +### measure\_channel + + + +`measure_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L254-L267 "view source code") + +Return the measure stimulus channel for the given qubit. + +This is required to be implemented if the backend supports Pulse scheduling. + +**Returns** + +The Qubit measurement stimulus line + +**Return type** + +MeasureChannel + +### qubit\_properties + + + +`qubit_properties(qubit)` + +Return QubitProperties for a given qubit. + +If there are no defined or the backend doesn’t support querying these details this method does not need to be implemented. + +**Parameters** + +**qubit** (`Union`\[`int`, `List`\[`int`]]) – The qubit to get the `QubitProperties` object for. This can be a single integer for 1 qubit or a list of qubits and a list of `QubitProperties` objects will be returned in the same order + +**Return type** + +`Union`\[`QubitProperties`, `List`\[`QubitProperties`]] + +**Returns** + +The `QubitProperties` object for the specified qubit. If a list of qubits is provided a list will be returned. If properties are missing for a qubit this can be `None`. + +**Raises** + +**NotImplementedError** – if the backend doesn’t support querying the qubit properties + +### run + + + +`run(run_input, **options)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L306-L365 "view source code") + +Run on the fake backend using a simulator. + +This method runs circuit jobs (an individual or a list of QuantumCircuit ) and pulse jobs (an individual or a list of Schedule or ScheduleBlock) using BasicAer simulator/ BasicSimulator or Aer simulator and returns a `Job` object. + +If qiskit-aer is installed, jobs will be run using AerSimulator with noise model of the fake backend. Otherwise, jobs will be run using BasicAer simulator/ BasicSimulator simulator without noise. + +Currently noisy simulation of a pulse job is not supported yet in FakeBackendV2. + +**Parameters** + +* **run\_input** (*QuantumCircuit or Schedule or ScheduleBlock or list*) – An individual or a list of `QuantumCircuit`, `ScheduleBlock`, or `Schedule` objects to run on the backend. +* **options** – Any kwarg options to pass to the backend for running the config. If a key is also present in the options attribute/object then the expectation is that the value specified will be used instead of what’s set in the options object. + +**Returns** + +The job object for the run + +**Return type** + +Job + +**Raises** + +**QiskitError** – If a pulse job is supplied and qiskit-aer is not installed. + +### set\_options + + + +`set_options(**fields)` + +Set the options fields for the backend + +This method is used to update the options of a backend. If you need to change any of the options prior to running just pass in the kwarg with the new value for the options. + +**Parameters** + +**fields** – The fields to update the options + +**Raises** + +**AttributeError** – If the field passed in is not part of the options + diff --git a/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeBelem.md b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeBelem.md new file mode 100644 index 00000000000..8cdf31e5d19 --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeBelem.md @@ -0,0 +1,185 @@ +--- +title: FakeBelem +description: API reference for qiskit_ibm_runtime.fake_provider.FakeBelem +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.fake_provider.FakeBelem +--- + +# FakeBelem + + + +`FakeBelem` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/backends/belem/fake_belem.py#L31-L38 "view source code") + +A fake 5 qubit backend. + +FakeBackend initializer. + +**Parameters** + +* **configuration** (*BackendConfiguration*) – backend configuration +* **time\_alive** (*int*) – time to wait before returning result + +## Attributes + + + +### backend\_name + +`= 'fake_belem'` + + + +### conf\_filename + +`= 'conf_belem.json'` + + + +### defs\_filename + +`= 'defs_belem.json'` + + + +### dirname + +`= '/home/runner/work/qiskit-ibm-runtime/qiskit-ibm-runtime/qiskit_ibm_runtime/fake_provider/backends/belem'` + + + +### options + +Return the options for the backend + +The options of a backend are the dynamic parameters defining how the backend is used. These are used to control the [`run()`](#qiskit_ibm_runtime.fake_provider.FakeBelem.run "qiskit_ibm_runtime.fake_provider.FakeBelem.run") method. + + + +### props\_filename + +`= 'props_belem.json'` + + + +### version + +`= 1` + +## Methods + +### configuration + + + +`configuration()` + +Return the backend configuration. + +**Returns** + +the configuration for the backend. + +**Return type** + +BackendConfiguration + +### defaults + + + +`defaults()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_pulse_backend.py#L29-L33 "view source code") + +Returns a snapshot of device defaults + +**Return type** + +`PulseDefaults` + +### name + + + +`name()` + +Return the backend name. + +**Returns** + +the name of the backend. + +**Return type** + +str + +### properties + + + +`properties()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_qasm_backend.py#L44-L48 "view source code") + +Returns a snapshot of device properties + +**Return type** + +`BackendProperties` + +### provider + + + +`provider()` + +Return the backend Provider. + +**Returns** + +the Provider responsible for the backend. + +**Return type** + +Provider + +### run + + + +`run(run_input, **kwargs)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L545-L574 "view source code") + +Main job in simulator + +### set\_options + + + +`set_options(**fields)` + +Set the options fields for the backend + +This method is used to update the options of a backend. If you need to change any of the options prior to running just pass in the kwarg with the new value for the options. + +**Parameters** + +**fields** – The fields to update the options + +**Raises** + +**AttributeError** – If the field passed in is not part of the options + +### status + + + +`status()` + +Return the backend status. + +**Returns** + +the status of the backend. + +**Return type** + +BackendStatus + diff --git a/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeBelemV2.md b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeBelemV2.md new file mode 100644 index 00000000000..c3417125d30 --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeBelemV2.md @@ -0,0 +1,377 @@ +--- +title: FakeBelemV2 +description: API reference for qiskit_ibm_runtime.fake_provider.FakeBelemV2 +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.fake_provider.FakeBelemV2 +--- + +# FakeBelemV2 + + + +`FakeBelemV2` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/backends/belem/fake_belem.py#L21-L28 "view source code") + +A fake 5 qubit backend. + +FakeBackendV2 initializer. + +## Attributes + + + +### backend\_name + +`= 'fake_belem'` + + + +### conf\_filename + +`= 'conf_belem.json'` + + + +### coupling\_map + +Return the `CouplingMap` object + + + +### defs\_filename + +`= 'defs_belem.json'` + + + +### dirname + +`= '/home/runner/work/qiskit-ibm-runtime/qiskit-ibm-runtime/qiskit_ibm_runtime/fake_provider/backends/belem'` + + + +### dt + +Return the system time resolution of input signals + +This is required to be implemented if the backend supports Pulse scheduling. + +**Return type** + +`Optional`\[`float`] + +**Returns** + +The input signal timestep in seconds. If the backend doesn’t define `dt`, `None` will be returned. + + + +### dtm + +Return the system time resolution of output signals + +**Return type** + +`float` + +**Returns** + +The output signal timestep in seconds. + + + +### instruction\_durations + +Return the `InstructionDurations` object. + + + +### instruction\_schedule\_map + +Return the `InstructionScheduleMap` for the instructions defined in this backend’s target. + + + +### instructions + +A list of Instruction tuples on the backend of the form `(instruction, (qubits)` + +**Return type** + +`List`\[`Tuple`\[`Instruction`, `Tuple`\[`int`]]] + + + +### max\_circuits + +**Return type** + +`None` + + + +### meas\_map + +Return the grouping of measurements which are multiplexed This is required to be implemented if the backend supports Pulse scheduling. + +**Return type** + +`List`\[`List`\[`int`]] + +**Returns** + +The grouping of measurements which are multiplexed + + + +### num\_qubits + +Return the number of qubits the backend has. + +**Return type** + +`int` + + + +### operation\_names + +A list of instruction names that the backend supports. + +**Return type** + +`List`\[`str`] + + + +### operations + +A list of `Instruction` instances that the backend supports. + +**Return type** + +`List`\[`Instruction`] + + + +### options + +Return the options for the backend + +The options of a backend are the dynamic parameters defining how the backend is used. These are used to control the [`run()`](#qiskit_ibm_runtime.fake_provider.FakeBelemV2.run "qiskit_ibm_runtime.fake_provider.FakeBelemV2.run") method. + + + +### props\_filename + +`= 'props_belem.json'` + + + +### provider + +Return the backend Provider. + +**Returns** + +the Provider responsible for the backend. + +**Return type** + +Provider + + + +### target + +A `qiskit.transpiler.Target` object for the backend. + +**Return type** + +Target + + + +### version + +`= 2` + + + +### name + +Name of the backend. + + + +### description + +Optional human-readable description. + + + +### online\_date + +Date that the backend came online. + + + +### backend\_version + +Version of the backend being provided. This is not the same as `BackendV2.version`, which is the version of the `Backend` abstract interface. + +## Methods + +### acquire\_channel + + + +`acquire_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L269-L282 "view source code") + +Return the acquisition channel for the given qubit. + +This is required to be implemented if the backend supports Pulse scheduling. + +**Returns** + +The Qubit measurement acquisition line. + +**Return type** + +AcquireChannel + +### control\_channel + + + +`control_channel(qubits)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L284-L304 "view source code") + +Return the secondary drive channel for the given qubit + +This is typically utilized for controlling multiqubit interactions. This channel is derived from other channels. + +This is required to be implemented if the backend supports Pulse scheduling. + +**Parameters** + +**qubits** (`Iterable`\[`int`]) – Tuple or list of qubits of the form `(control_qubit, target_qubit)`. + +**Returns** + +The multi qubit control line. + +**Return type** + +List\[ControlChannel] + +### drive\_channel + + + +`drive_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L239-L252 "view source code") + +Return the drive channel for the given qubit. + +This is required to be implemented if the backend supports Pulse scheduling. + +**Returns** + +The Qubit drive channel + +**Return type** + +DriveChannel + +### measure\_channel + + + +`measure_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L254-L267 "view source code") + +Return the measure stimulus channel for the given qubit. + +This is required to be implemented if the backend supports Pulse scheduling. + +**Returns** + +The Qubit measurement stimulus line + +**Return type** + +MeasureChannel + +### qubit\_properties + + + +`qubit_properties(qubit)` + +Return QubitProperties for a given qubit. + +If there are no defined or the backend doesn’t support querying these details this method does not need to be implemented. + +**Parameters** + +**qubit** (`Union`\[`int`, `List`\[`int`]]) – The qubit to get the `QubitProperties` object for. This can be a single integer for 1 qubit or a list of qubits and a list of `QubitProperties` objects will be returned in the same order + +**Return type** + +`Union`\[`QubitProperties`, `List`\[`QubitProperties`]] + +**Returns** + +The `QubitProperties` object for the specified qubit. If a list of qubits is provided a list will be returned. If properties are missing for a qubit this can be `None`. + +**Raises** + +**NotImplementedError** – if the backend doesn’t support querying the qubit properties + +### run + + + +`run(run_input, **options)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L306-L365 "view source code") + +Run on the fake backend using a simulator. + +This method runs circuit jobs (an individual or a list of QuantumCircuit ) and pulse jobs (an individual or a list of Schedule or ScheduleBlock) using BasicAer simulator/ BasicSimulator or Aer simulator and returns a `Job` object. + +If qiskit-aer is installed, jobs will be run using AerSimulator with noise model of the fake backend. Otherwise, jobs will be run using BasicAer simulator/ BasicSimulator simulator without noise. + +Currently noisy simulation of a pulse job is not supported yet in FakeBackendV2. + +**Parameters** + +* **run\_input** (*QuantumCircuit or Schedule or ScheduleBlock or list*) – An individual or a list of `QuantumCircuit`, `ScheduleBlock`, or `Schedule` objects to run on the backend. +* **options** – Any kwarg options to pass to the backend for running the config. If a key is also present in the options attribute/object then the expectation is that the value specified will be used instead of what’s set in the options object. + +**Returns** + +The job object for the run + +**Return type** + +Job + +**Raises** + +**QiskitError** – If a pulse job is supplied and qiskit-aer is not installed. + +### set\_options + + + +`set_options(**fields)` + +Set the options fields for the backend + +This method is used to update the options of a backend. If you need to change any of the options prior to running just pass in the kwarg with the new value for the options. + +**Parameters** + +**fields** – The fields to update the options + +**Raises** + +**AttributeError** – If the field passed in is not part of the options + diff --git a/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeBoeblingen.md b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeBoeblingen.md new file mode 100644 index 00000000000..8818d7785b1 --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeBoeblingen.md @@ -0,0 +1,195 @@ +--- +title: FakeBoeblingen +description: API reference for qiskit_ibm_runtime.fake_provider.FakeBoeblingen +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.fake_provider.FakeBoeblingen +--- + +# FakeBoeblingen + + + +`FakeBoeblingen` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/backends/boeblingen/fake_boeblingen.py#L42-L60 "view source code") + +A fake Boeblingen backend. + +```python +00 ↔ 01 ↔ 02 ↔ 03 ↔ 04 + ↕ ↕ +05 ↔ 06 ↔ 07 ↔ 08 ↔ 09 + ↕ ↕ ↕ +10 ↔ 11 ↔ 12 ↔ 13 ↔ 14 + ↕ ↕ +15 ↔ 16 ↔ 17 ↔ 18 ↔ 19 +``` + +FakeBackend initializer. + +**Parameters** + +* **configuration** (*BackendConfiguration*) – backend configuration +* **time\_alive** (*int*) – time to wait before returning result + +## Attributes + + + +### backend\_name + +`= 'fake_boeblingen'` + + + +### conf\_filename + +`= 'conf_boeblingen.json'` + + + +### defs\_filename + +`= 'defs_boeblingen.json'` + + + +### dirname + +`= '/home/runner/work/qiskit-ibm-runtime/qiskit-ibm-runtime/qiskit_ibm_runtime/fake_provider/backends/boeblingen'` + + + +### options + +Return the options for the backend + +The options of a backend are the dynamic parameters defining how the backend is used. These are used to control the [`run()`](#qiskit_ibm_runtime.fake_provider.FakeBoeblingen.run "qiskit_ibm_runtime.fake_provider.FakeBoeblingen.run") method. + + + +### props\_filename + +`= 'props_boeblingen.json'` + + + +### version + +`= 1` + +## Methods + +### configuration + + + +`configuration()` + +Return the backend configuration. + +**Returns** + +the configuration for the backend. + +**Return type** + +BackendConfiguration + +### defaults + + + +`defaults()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_pulse_backend.py#L29-L33 "view source code") + +Returns a snapshot of device defaults + +**Return type** + +`PulseDefaults` + +### name + + + +`name()` + +Return the backend name. + +**Returns** + +the name of the backend. + +**Return type** + +str + +### properties + + + +`properties()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_qasm_backend.py#L44-L48 "view source code") + +Returns a snapshot of device properties + +**Return type** + +`BackendProperties` + +### provider + + + +`provider()` + +Return the backend Provider. + +**Returns** + +the Provider responsible for the backend. + +**Return type** + +Provider + +### run + + + +`run(run_input, **kwargs)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L545-L574 "view source code") + +Main job in simulator + +### set\_options + + + +`set_options(**fields)` + +Set the options fields for the backend + +This method is used to update the options of a backend. If you need to change any of the options prior to running just pass in the kwarg with the new value for the options. + +**Parameters** + +**fields** – The fields to update the options + +**Raises** + +**AttributeError** – If the field passed in is not part of the options + +### status + + + +`status()` + +Return the backend status. + +**Returns** + +the status of the backend. + +**Return type** + +BackendStatus + diff --git a/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeBoeblingenV2.md b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeBoeblingenV2.md new file mode 100644 index 00000000000..84da16aaada --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeBoeblingenV2.md @@ -0,0 +1,387 @@ +--- +title: FakeBoeblingenV2 +description: API reference for qiskit_ibm_runtime.fake_provider.FakeBoeblingenV2 +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.fake_provider.FakeBoeblingenV2 +--- + +# FakeBoeblingenV2 + + + +`FakeBoeblingenV2` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/backends/boeblingen/fake_boeblingen.py#L21-L39 "view source code") + +A fake Boeblingen V2 backend. + +```python +00 ↔ 01 ↔ 02 ↔ 03 ↔ 04 + ↕ ↕ +05 ↔ 06 ↔ 07 ↔ 08 ↔ 09 + ↕ ↕ ↕ +10 ↔ 11 ↔ 12 ↔ 13 ↔ 14 + ↕ ↕ +15 ↔ 16 ↔ 17 ↔ 18 ↔ 19 +``` + +FakeBackendV2 initializer. + +## Attributes + + + +### backend\_name + +`= 'fake_boeblingen'` + + + +### conf\_filename + +`= 'conf_boeblingen.json'` + + + +### coupling\_map + +Return the `CouplingMap` object + + + +### defs\_filename + +`= 'defs_boeblingen.json'` + + + +### dirname + +`= '/home/runner/work/qiskit-ibm-runtime/qiskit-ibm-runtime/qiskit_ibm_runtime/fake_provider/backends/boeblingen'` + + + +### dt + +Return the system time resolution of input signals + +This is required to be implemented if the backend supports Pulse scheduling. + +**Return type** + +`Optional`\[`float`] + +**Returns** + +The input signal timestep in seconds. If the backend doesn’t define `dt`, `None` will be returned. + + + +### dtm + +Return the system time resolution of output signals + +**Return type** + +`float` + +**Returns** + +The output signal timestep in seconds. + + + +### instruction\_durations + +Return the `InstructionDurations` object. + + + +### instruction\_schedule\_map + +Return the `InstructionScheduleMap` for the instructions defined in this backend’s target. + + + +### instructions + +A list of Instruction tuples on the backend of the form `(instruction, (qubits)` + +**Return type** + +`List`\[`Tuple`\[`Instruction`, `Tuple`\[`int`]]] + + + +### max\_circuits + +**Return type** + +`None` + + + +### meas\_map + +Return the grouping of measurements which are multiplexed This is required to be implemented if the backend supports Pulse scheduling. + +**Return type** + +`List`\[`List`\[`int`]] + +**Returns** + +The grouping of measurements which are multiplexed + + + +### num\_qubits + +Return the number of qubits the backend has. + +**Return type** + +`int` + + + +### operation\_names + +A list of instruction names that the backend supports. + +**Return type** + +`List`\[`str`] + + + +### operations + +A list of `Instruction` instances that the backend supports. + +**Return type** + +`List`\[`Instruction`] + + + +### options + +Return the options for the backend + +The options of a backend are the dynamic parameters defining how the backend is used. These are used to control the [`run()`](#qiskit_ibm_runtime.fake_provider.FakeBoeblingenV2.run "qiskit_ibm_runtime.fake_provider.FakeBoeblingenV2.run") method. + + + +### props\_filename + +`= 'props_boeblingen.json'` + + + +### provider + +Return the backend Provider. + +**Returns** + +the Provider responsible for the backend. + +**Return type** + +Provider + + + +### target + +A `qiskit.transpiler.Target` object for the backend. + +**Return type** + +Target + + + +### version + +`= 2` + + + +### name + +Name of the backend. + + + +### description + +Optional human-readable description. + + + +### online\_date + +Date that the backend came online. + + + +### backend\_version + +Version of the backend being provided. This is not the same as `BackendV2.version`, which is the version of the `Backend` abstract interface. + +## Methods + +### acquire\_channel + + + +`acquire_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L269-L282 "view source code") + +Return the acquisition channel for the given qubit. + +This is required to be implemented if the backend supports Pulse scheduling. + +**Returns** + +The Qubit measurement acquisition line. + +**Return type** + +AcquireChannel + +### control\_channel + + + +`control_channel(qubits)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L284-L304 "view source code") + +Return the secondary drive channel for the given qubit + +This is typically utilized for controlling multiqubit interactions. This channel is derived from other channels. + +This is required to be implemented if the backend supports Pulse scheduling. + +**Parameters** + +**qubits** (`Iterable`\[`int`]) – Tuple or list of qubits of the form `(control_qubit, target_qubit)`. + +**Returns** + +The multi qubit control line. + +**Return type** + +List\[ControlChannel] + +### drive\_channel + + + +`drive_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L239-L252 "view source code") + +Return the drive channel for the given qubit. + +This is required to be implemented if the backend supports Pulse scheduling. + +**Returns** + +The Qubit drive channel + +**Return type** + +DriveChannel + +### measure\_channel + + + +`measure_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L254-L267 "view source code") + +Return the measure stimulus channel for the given qubit. + +This is required to be implemented if the backend supports Pulse scheduling. + +**Returns** + +The Qubit measurement stimulus line + +**Return type** + +MeasureChannel + +### qubit\_properties + + + +`qubit_properties(qubit)` + +Return QubitProperties for a given qubit. + +If there are no defined or the backend doesn’t support querying these details this method does not need to be implemented. + +**Parameters** + +**qubit** (`Union`\[`int`, `List`\[`int`]]) – The qubit to get the `QubitProperties` object for. This can be a single integer for 1 qubit or a list of qubits and a list of `QubitProperties` objects will be returned in the same order + +**Return type** + +`Union`\[`QubitProperties`, `List`\[`QubitProperties`]] + +**Returns** + +The `QubitProperties` object for the specified qubit. If a list of qubits is provided a list will be returned. If properties are missing for a qubit this can be `None`. + +**Raises** + +**NotImplementedError** – if the backend doesn’t support querying the qubit properties + +### run + + + +`run(run_input, **options)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L306-L365 "view source code") + +Run on the fake backend using a simulator. + +This method runs circuit jobs (an individual or a list of QuantumCircuit ) and pulse jobs (an individual or a list of Schedule or ScheduleBlock) using BasicAer simulator/ BasicSimulator or Aer simulator and returns a `Job` object. + +If qiskit-aer is installed, jobs will be run using AerSimulator with noise model of the fake backend. Otherwise, jobs will be run using BasicAer simulator/ BasicSimulator simulator without noise. + +Currently noisy simulation of a pulse job is not supported yet in FakeBackendV2. + +**Parameters** + +* **run\_input** (*QuantumCircuit or Schedule or ScheduleBlock or list*) – An individual or a list of `QuantumCircuit`, `ScheduleBlock`, or `Schedule` objects to run on the backend. +* **options** – Any kwarg options to pass to the backend for running the config. If a key is also present in the options attribute/object then the expectation is that the value specified will be used instead of what’s set in the options object. + +**Returns** + +The job object for the run + +**Return type** + +Job + +**Raises** + +**QiskitError** – If a pulse job is supplied and qiskit-aer is not installed. + +### set\_options + + + +`set_options(**fields)` + +Set the options fields for the backend + +This method is used to update the options of a backend. If you need to change any of the options prior to running just pass in the kwarg with the new value for the options. + +**Parameters** + +**fields** – The fields to update the options + +**Raises** + +**AttributeError** – If the field passed in is not part of the options + diff --git a/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeBogota.md b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeBogota.md new file mode 100644 index 00000000000..fcda71f37a1 --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeBogota.md @@ -0,0 +1,185 @@ +--- +title: FakeBogota +description: API reference for qiskit_ibm_runtime.fake_provider.FakeBogota +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.fake_provider.FakeBogota +--- + +# FakeBogota + + + +`FakeBogota` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/backends/bogota/fake_bogota.py#L31-L38 "view source code") + +A fake 5 qubit backend. + +FakeBackend initializer. + +**Parameters** + +* **configuration** (*BackendConfiguration*) – backend configuration +* **time\_alive** (*int*) – time to wait before returning result + +## Attributes + + + +### backend\_name + +`= 'fake_bogota'` + + + +### conf\_filename + +`= 'conf_bogota.json'` + + + +### defs\_filename + +`= 'defs_bogota.json'` + + + +### dirname + +`= '/home/runner/work/qiskit-ibm-runtime/qiskit-ibm-runtime/qiskit_ibm_runtime/fake_provider/backends/bogota'` + + + +### options + +Return the options for the backend + +The options of a backend are the dynamic parameters defining how the backend is used. These are used to control the [`run()`](#qiskit_ibm_runtime.fake_provider.FakeBogota.run "qiskit_ibm_runtime.fake_provider.FakeBogota.run") method. + + + +### props\_filename + +`= 'props_bogota.json'` + + + +### version + +`= 1` + +## Methods + +### configuration + + + +`configuration()` + +Return the backend configuration. + +**Returns** + +the configuration for the backend. + +**Return type** + +BackendConfiguration + +### defaults + + + +`defaults()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_pulse_backend.py#L29-L33 "view source code") + +Returns a snapshot of device defaults + +**Return type** + +`PulseDefaults` + +### name + + + +`name()` + +Return the backend name. + +**Returns** + +the name of the backend. + +**Return type** + +str + +### properties + + + +`properties()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_qasm_backend.py#L44-L48 "view source code") + +Returns a snapshot of device properties + +**Return type** + +`BackendProperties` + +### provider + + + +`provider()` + +Return the backend Provider. + +**Returns** + +the Provider responsible for the backend. + +**Return type** + +Provider + +### run + + + +`run(run_input, **kwargs)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L545-L574 "view source code") + +Main job in simulator + +### set\_options + + + +`set_options(**fields)` + +Set the options fields for the backend + +This method is used to update the options of a backend. If you need to change any of the options prior to running just pass in the kwarg with the new value for the options. + +**Parameters** + +**fields** – The fields to update the options + +**Raises** + +**AttributeError** – If the field passed in is not part of the options + +### status + + + +`status()` + +Return the backend status. + +**Returns** + +the status of the backend. + +**Return type** + +BackendStatus + diff --git a/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeBogotaV2.md b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeBogotaV2.md new file mode 100644 index 00000000000..d7be2f10516 --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeBogotaV2.md @@ -0,0 +1,377 @@ +--- +title: FakeBogotaV2 +description: API reference for qiskit_ibm_runtime.fake_provider.FakeBogotaV2 +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.fake_provider.FakeBogotaV2 +--- + +# FakeBogotaV2 + + + +`FakeBogotaV2` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/backends/bogota/fake_bogota.py#L21-L28 "view source code") + +A fake 5 qubit backend. + +FakeBackendV2 initializer. + +## Attributes + + + +### backend\_name + +`= 'fake_bogota'` + + + +### conf\_filename + +`= 'conf_bogota.json'` + + + +### coupling\_map + +Return the `CouplingMap` object + + + +### defs\_filename + +`= 'defs_bogota.json'` + + + +### dirname + +`= '/home/runner/work/qiskit-ibm-runtime/qiskit-ibm-runtime/qiskit_ibm_runtime/fake_provider/backends/bogota'` + + + +### dt + +Return the system time resolution of input signals + +This is required to be implemented if the backend supports Pulse scheduling. + +**Return type** + +`Optional`\[`float`] + +**Returns** + +The input signal timestep in seconds. If the backend doesn’t define `dt`, `None` will be returned. + + + +### dtm + +Return the system time resolution of output signals + +**Return type** + +`float` + +**Returns** + +The output signal timestep in seconds. + + + +### instruction\_durations + +Return the `InstructionDurations` object. + + + +### instruction\_schedule\_map + +Return the `InstructionScheduleMap` for the instructions defined in this backend’s target. + + + +### instructions + +A list of Instruction tuples on the backend of the form `(instruction, (qubits)` + +**Return type** + +`List`\[`Tuple`\[`Instruction`, `Tuple`\[`int`]]] + + + +### max\_circuits + +**Return type** + +`None` + + + +### meas\_map + +Return the grouping of measurements which are multiplexed This is required to be implemented if the backend supports Pulse scheduling. + +**Return type** + +`List`\[`List`\[`int`]] + +**Returns** + +The grouping of measurements which are multiplexed + + + +### num\_qubits + +Return the number of qubits the backend has. + +**Return type** + +`int` + + + +### operation\_names + +A list of instruction names that the backend supports. + +**Return type** + +`List`\[`str`] + + + +### operations + +A list of `Instruction` instances that the backend supports. + +**Return type** + +`List`\[`Instruction`] + + + +### options + +Return the options for the backend + +The options of a backend are the dynamic parameters defining how the backend is used. These are used to control the [`run()`](#qiskit_ibm_runtime.fake_provider.FakeBogotaV2.run "qiskit_ibm_runtime.fake_provider.FakeBogotaV2.run") method. + + + +### props\_filename + +`= 'props_bogota.json'` + + + +### provider + +Return the backend Provider. + +**Returns** + +the Provider responsible for the backend. + +**Return type** + +Provider + + + +### target + +A `qiskit.transpiler.Target` object for the backend. + +**Return type** + +Target + + + +### version + +`= 2` + + + +### name + +Name of the backend. + + + +### description + +Optional human-readable description. + + + +### online\_date + +Date that the backend came online. + + + +### backend\_version + +Version of the backend being provided. This is not the same as `BackendV2.version`, which is the version of the `Backend` abstract interface. + +## Methods + +### acquire\_channel + + + +`acquire_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L269-L282 "view source code") + +Return the acquisition channel for the given qubit. + +This is required to be implemented if the backend supports Pulse scheduling. + +**Returns** + +The Qubit measurement acquisition line. + +**Return type** + +AcquireChannel + +### control\_channel + + + +`control_channel(qubits)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L284-L304 "view source code") + +Return the secondary drive channel for the given qubit + +This is typically utilized for controlling multiqubit interactions. This channel is derived from other channels. + +This is required to be implemented if the backend supports Pulse scheduling. + +**Parameters** + +**qubits** (`Iterable`\[`int`]) – Tuple or list of qubits of the form `(control_qubit, target_qubit)`. + +**Returns** + +The multi qubit control line. + +**Return type** + +List\[ControlChannel] + +### drive\_channel + + + +`drive_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L239-L252 "view source code") + +Return the drive channel for the given qubit. + +This is required to be implemented if the backend supports Pulse scheduling. + +**Returns** + +The Qubit drive channel + +**Return type** + +DriveChannel + +### measure\_channel + + + +`measure_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L254-L267 "view source code") + +Return the measure stimulus channel for the given qubit. + +This is required to be implemented if the backend supports Pulse scheduling. + +**Returns** + +The Qubit measurement stimulus line + +**Return type** + +MeasureChannel + +### qubit\_properties + + + +`qubit_properties(qubit)` + +Return QubitProperties for a given qubit. + +If there are no defined or the backend doesn’t support querying these details this method does not need to be implemented. + +**Parameters** + +**qubit** (`Union`\[`int`, `List`\[`int`]]) – The qubit to get the `QubitProperties` object for. This can be a single integer for 1 qubit or a list of qubits and a list of `QubitProperties` objects will be returned in the same order + +**Return type** + +`Union`\[`QubitProperties`, `List`\[`QubitProperties`]] + +**Returns** + +The `QubitProperties` object for the specified qubit. If a list of qubits is provided a list will be returned. If properties are missing for a qubit this can be `None`. + +**Raises** + +**NotImplementedError** – if the backend doesn’t support querying the qubit properties + +### run + + + +`run(run_input, **options)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L306-L365 "view source code") + +Run on the fake backend using a simulator. + +This method runs circuit jobs (an individual or a list of QuantumCircuit ) and pulse jobs (an individual or a list of Schedule or ScheduleBlock) using BasicAer simulator/ BasicSimulator or Aer simulator and returns a `Job` object. + +If qiskit-aer is installed, jobs will be run using AerSimulator with noise model of the fake backend. Otherwise, jobs will be run using BasicAer simulator/ BasicSimulator simulator without noise. + +Currently noisy simulation of a pulse job is not supported yet in FakeBackendV2. + +**Parameters** + +* **run\_input** (*QuantumCircuit or Schedule or ScheduleBlock or list*) – An individual or a list of `QuantumCircuit`, `ScheduleBlock`, or `Schedule` objects to run on the backend. +* **options** – Any kwarg options to pass to the backend for running the config. If a key is also present in the options attribute/object then the expectation is that the value specified will be used instead of what’s set in the options object. + +**Returns** + +The job object for the run + +**Return type** + +Job + +**Raises** + +**QiskitError** – If a pulse job is supplied and qiskit-aer is not installed. + +### set\_options + + + +`set_options(**fields)` + +Set the options fields for the backend + +This method is used to update the options of a backend. If you need to change any of the options prior to running just pass in the kwarg with the new value for the options. + +**Parameters** + +**fields** – The fields to update the options + +**Raises** + +**AttributeError** – If the field passed in is not part of the options + diff --git a/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeBrooklyn.md b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeBrooklyn.md new file mode 100644 index 00000000000..34a9375f2e9 --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeBrooklyn.md @@ -0,0 +1,185 @@ +--- +title: FakeBrooklyn +description: API reference for qiskit_ibm_runtime.fake_provider.FakeBrooklyn +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.fake_provider.FakeBrooklyn +--- + +# FakeBrooklyn + + + +`FakeBrooklyn` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/backends/brooklyn/fake_brooklyn.py#L31-L38 "view source code") + +A fake Brooklyn backend. + +FakeBackend initializer. + +**Parameters** + +* **configuration** (*BackendConfiguration*) – backend configuration +* **time\_alive** (*int*) – time to wait before returning result + +## Attributes + + + +### backend\_name + +`= 'fake_brooklyn'` + + + +### conf\_filename + +`= 'conf_brooklyn.json'` + + + +### defs\_filename + +`= 'defs_brooklyn.json'` + + + +### dirname + +`= '/home/runner/work/qiskit-ibm-runtime/qiskit-ibm-runtime/qiskit_ibm_runtime/fake_provider/backends/brooklyn'` + + + +### options + +Return the options for the backend + +The options of a backend are the dynamic parameters defining how the backend is used. These are used to control the [`run()`](#qiskit_ibm_runtime.fake_provider.FakeBrooklyn.run "qiskit_ibm_runtime.fake_provider.FakeBrooklyn.run") method. + + + +### props\_filename + +`= 'props_brooklyn.json'` + + + +### version + +`= 1` + +## Methods + +### configuration + + + +`configuration()` + +Return the backend configuration. + +**Returns** + +the configuration for the backend. + +**Return type** + +BackendConfiguration + +### defaults + + + +`defaults()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_pulse_backend.py#L29-L33 "view source code") + +Returns a snapshot of device defaults + +**Return type** + +`PulseDefaults` + +### name + + + +`name()` + +Return the backend name. + +**Returns** + +the name of the backend. + +**Return type** + +str + +### properties + + + +`properties()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_qasm_backend.py#L44-L48 "view source code") + +Returns a snapshot of device properties + +**Return type** + +`BackendProperties` + +### provider + + + +`provider()` + +Return the backend Provider. + +**Returns** + +the Provider responsible for the backend. + +**Return type** + +Provider + +### run + + + +`run(run_input, **kwargs)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L545-L574 "view source code") + +Main job in simulator + +### set\_options + + + +`set_options(**fields)` + +Set the options fields for the backend + +This method is used to update the options of a backend. If you need to change any of the options prior to running just pass in the kwarg with the new value for the options. + +**Parameters** + +**fields** – The fields to update the options + +**Raises** + +**AttributeError** – If the field passed in is not part of the options + +### status + + + +`status()` + +Return the backend status. + +**Returns** + +the status of the backend. + +**Return type** + +BackendStatus + diff --git a/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeBrooklynV2.md b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeBrooklynV2.md new file mode 100644 index 00000000000..6c36246a4d3 --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeBrooklynV2.md @@ -0,0 +1,377 @@ +--- +title: FakeBrooklynV2 +description: API reference for qiskit_ibm_runtime.fake_provider.FakeBrooklynV2 +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.fake_provider.FakeBrooklynV2 +--- + +# FakeBrooklynV2 + + + +`FakeBrooklynV2` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/backends/brooklyn/fake_brooklyn.py#L21-L28 "view source code") + +A fake Brooklyn V2 backend. + +FakeBackendV2 initializer. + +## Attributes + + + +### backend\_name + +`= 'fake_brooklyn'` + + + +### conf\_filename + +`= 'conf_brooklyn.json'` + + + +### coupling\_map + +Return the `CouplingMap` object + + + +### defs\_filename + +`= 'defs_brooklyn.json'` + + + +### dirname + +`= '/home/runner/work/qiskit-ibm-runtime/qiskit-ibm-runtime/qiskit_ibm_runtime/fake_provider/backends/brooklyn'` + + + +### dt + +Return the system time resolution of input signals + +This is required to be implemented if the backend supports Pulse scheduling. + +**Return type** + +`Optional`\[`float`] + +**Returns** + +The input signal timestep in seconds. If the backend doesn’t define `dt`, `None` will be returned. + + + +### dtm + +Return the system time resolution of output signals + +**Return type** + +`float` + +**Returns** + +The output signal timestep in seconds. + + + +### instruction\_durations + +Return the `InstructionDurations` object. + + + +### instruction\_schedule\_map + +Return the `InstructionScheduleMap` for the instructions defined in this backend’s target. + + + +### instructions + +A list of Instruction tuples on the backend of the form `(instruction, (qubits)` + +**Return type** + +`List`\[`Tuple`\[`Instruction`, `Tuple`\[`int`]]] + + + +### max\_circuits + +**Return type** + +`None` + + + +### meas\_map + +Return the grouping of measurements which are multiplexed This is required to be implemented if the backend supports Pulse scheduling. + +**Return type** + +`List`\[`List`\[`int`]] + +**Returns** + +The grouping of measurements which are multiplexed + + + +### num\_qubits + +Return the number of qubits the backend has. + +**Return type** + +`int` + + + +### operation\_names + +A list of instruction names that the backend supports. + +**Return type** + +`List`\[`str`] + + + +### operations + +A list of `Instruction` instances that the backend supports. + +**Return type** + +`List`\[`Instruction`] + + + +### options + +Return the options for the backend + +The options of a backend are the dynamic parameters defining how the backend is used. These are used to control the [`run()`](#qiskit_ibm_runtime.fake_provider.FakeBrooklynV2.run "qiskit_ibm_runtime.fake_provider.FakeBrooklynV2.run") method. + + + +### props\_filename + +`= 'props_brooklyn.json'` + + + +### provider + +Return the backend Provider. + +**Returns** + +the Provider responsible for the backend. + +**Return type** + +Provider + + + +### target + +A `qiskit.transpiler.Target` object for the backend. + +**Return type** + +Target + + + +### version + +`= 2` + + + +### name + +Name of the backend. + + + +### description + +Optional human-readable description. + + + +### online\_date + +Date that the backend came online. + + + +### backend\_version + +Version of the backend being provided. This is not the same as `BackendV2.version`, which is the version of the `Backend` abstract interface. + +## Methods + +### acquire\_channel + + + +`acquire_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L269-L282 "view source code") + +Return the acquisition channel for the given qubit. + +This is required to be implemented if the backend supports Pulse scheduling. + +**Returns** + +The Qubit measurement acquisition line. + +**Return type** + +AcquireChannel + +### control\_channel + + + +`control_channel(qubits)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L284-L304 "view source code") + +Return the secondary drive channel for the given qubit + +This is typically utilized for controlling multiqubit interactions. This channel is derived from other channels. + +This is required to be implemented if the backend supports Pulse scheduling. + +**Parameters** + +**qubits** (`Iterable`\[`int`]) – Tuple or list of qubits of the form `(control_qubit, target_qubit)`. + +**Returns** + +The multi qubit control line. + +**Return type** + +List\[ControlChannel] + +### drive\_channel + + + +`drive_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L239-L252 "view source code") + +Return the drive channel for the given qubit. + +This is required to be implemented if the backend supports Pulse scheduling. + +**Returns** + +The Qubit drive channel + +**Return type** + +DriveChannel + +### measure\_channel + + + +`measure_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L254-L267 "view source code") + +Return the measure stimulus channel for the given qubit. + +This is required to be implemented if the backend supports Pulse scheduling. + +**Returns** + +The Qubit measurement stimulus line + +**Return type** + +MeasureChannel + +### qubit\_properties + + + +`qubit_properties(qubit)` + +Return QubitProperties for a given qubit. + +If there are no defined or the backend doesn’t support querying these details this method does not need to be implemented. + +**Parameters** + +**qubit** (`Union`\[`int`, `List`\[`int`]]) – The qubit to get the `QubitProperties` object for. This can be a single integer for 1 qubit or a list of qubits and a list of `QubitProperties` objects will be returned in the same order + +**Return type** + +`Union`\[`QubitProperties`, `List`\[`QubitProperties`]] + +**Returns** + +The `QubitProperties` object for the specified qubit. If a list of qubits is provided a list will be returned. If properties are missing for a qubit this can be `None`. + +**Raises** + +**NotImplementedError** – if the backend doesn’t support querying the qubit properties + +### run + + + +`run(run_input, **options)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L306-L365 "view source code") + +Run on the fake backend using a simulator. + +This method runs circuit jobs (an individual or a list of QuantumCircuit ) and pulse jobs (an individual or a list of Schedule or ScheduleBlock) using BasicAer simulator/ BasicSimulator or Aer simulator and returns a `Job` object. + +If qiskit-aer is installed, jobs will be run using AerSimulator with noise model of the fake backend. Otherwise, jobs will be run using BasicAer simulator/ BasicSimulator simulator without noise. + +Currently noisy simulation of a pulse job is not supported yet in FakeBackendV2. + +**Parameters** + +* **run\_input** (*QuantumCircuit or Schedule or ScheduleBlock or list*) – An individual or a list of `QuantumCircuit`, `ScheduleBlock`, or `Schedule` objects to run on the backend. +* **options** – Any kwarg options to pass to the backend for running the config. If a key is also present in the options attribute/object then the expectation is that the value specified will be used instead of what’s set in the options object. + +**Returns** + +The job object for the run + +**Return type** + +Job + +**Raises** + +**QiskitError** – If a pulse job is supplied and qiskit-aer is not installed. + +### set\_options + + + +`set_options(**fields)` + +Set the options fields for the backend + +This method is used to update the options of a backend. If you need to change any of the options prior to running just pass in the kwarg with the new value for the options. + +**Parameters** + +**fields** – The fields to update the options + +**Raises** + +**AttributeError** – If the field passed in is not part of the options + diff --git a/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeBurlington.md b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeBurlington.md new file mode 100644 index 00000000000..167af4fb88f --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeBurlington.md @@ -0,0 +1,173 @@ +--- +title: FakeBurlington +description: API reference for qiskit_ibm_runtime.fake_provider.FakeBurlington +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.fake_provider.FakeBurlington +--- + +# FakeBurlington + + + +`FakeBurlington` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/backends/burlington/fake_burlington.py#L37-L50 "view source code") + +A fake 5 qubit backend. + +```python +0 ↔ 1 ↔ 3 ↔ 4 + ↕ + 2 +``` + +FakeBackend initializer. + +**Parameters** + +* **configuration** (*BackendConfiguration*) – backend configuration +* **time\_alive** (*int*) – time to wait before returning result + +## Attributes + + + +### backend\_name + +`= 'fake_burlington'` + + + +### conf\_filename + +`= 'conf_burlington.json'` + + + +### dirname + +`= '/home/runner/work/qiskit-ibm-runtime/qiskit-ibm-runtime/qiskit_ibm_runtime/fake_provider/backends/burlington'` + + + +### options + +Return the options for the backend + +The options of a backend are the dynamic parameters defining how the backend is used. These are used to control the [`run()`](#qiskit_ibm_runtime.fake_provider.FakeBurlington.run "qiskit_ibm_runtime.fake_provider.FakeBurlington.run") method. + + + +### props\_filename + +`= 'props_burlington.json'` + + + +### version + +`= 1` + +## Methods + +### configuration + + + +`configuration()` + +Return the backend configuration. + +**Returns** + +the configuration for the backend. + +**Return type** + +BackendConfiguration + +### name + + + +`name()` + +Return the backend name. + +**Returns** + +the name of the backend. + +**Return type** + +str + +### properties + + + +`properties()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_qasm_backend.py#L44-L48 "view source code") + +Returns a snapshot of device properties + +**Return type** + +`BackendProperties` + +### provider + + + +`provider()` + +Return the backend Provider. + +**Returns** + +the Provider responsible for the backend. + +**Return type** + +Provider + +### run + + + +`run(run_input, **kwargs)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L545-L574 "view source code") + +Main job in simulator + +### set\_options + + + +`set_options(**fields)` + +Set the options fields for the backend + +This method is used to update the options of a backend. If you need to change any of the options prior to running just pass in the kwarg with the new value for the options. + +**Parameters** + +**fields** – The fields to update the options + +**Raises** + +**AttributeError** – If the field passed in is not part of the options + +### status + + + +`status()` + +Return the backend status. + +**Returns** + +the status of the backend. + +**Return type** + +BackendStatus + diff --git a/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeBurlingtonV2.md b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeBurlingtonV2.md new file mode 100644 index 00000000000..28e9536cf76 --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeBurlingtonV2.md @@ -0,0 +1,383 @@ +--- +title: FakeBurlingtonV2 +description: API reference for qiskit_ibm_runtime.fake_provider.FakeBurlingtonV2 +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.fake_provider.FakeBurlingtonV2 +--- + +# FakeBurlingtonV2 + + + +`FakeBurlingtonV2` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/backends/burlington/fake_burlington.py#L21-L34 "view source code") + +A fake 5 qubit backend. + +```python +0 ↔ 1 ↔ 3 ↔ 4 + ↕ + 2 +``` + +FakeBackendV2 initializer. + +## Attributes + + + +### backend\_name + +`= 'fake_burlington'` + + + +### conf\_filename + +`= 'conf_burlington.json'` + + + +### coupling\_map + +Return the `CouplingMap` object + + + +### defs\_filename + +`= None` + + + +### dirname + +`= '/home/runner/work/qiskit-ibm-runtime/qiskit-ibm-runtime/qiskit_ibm_runtime/fake_provider/backends/burlington'` + + + +### dt + +Return the system time resolution of input signals + +This is required to be implemented if the backend supports Pulse scheduling. + +**Return type** + +`Optional`\[`float`] + +**Returns** + +The input signal timestep in seconds. If the backend doesn’t define `dt`, `None` will be returned. + + + +### dtm + +Return the system time resolution of output signals + +**Return type** + +`float` + +**Returns** + +The output signal timestep in seconds. + + + +### instruction\_durations + +Return the `InstructionDurations` object. + + + +### instruction\_schedule\_map + +Return the `InstructionScheduleMap` for the instructions defined in this backend’s target. + + + +### instructions + +A list of Instruction tuples on the backend of the form `(instruction, (qubits)` + +**Return type** + +`List`\[`Tuple`\[`Instruction`, `Tuple`\[`int`]]] + + + +### max\_circuits + +**Return type** + +`None` + + + +### meas\_map + +Return the grouping of measurements which are multiplexed This is required to be implemented if the backend supports Pulse scheduling. + +**Return type** + +`List`\[`List`\[`int`]] + +**Returns** + +The grouping of measurements which are multiplexed + + + +### num\_qubits + +Return the number of qubits the backend has. + +**Return type** + +`int` + + + +### operation\_names + +A list of instruction names that the backend supports. + +**Return type** + +`List`\[`str`] + + + +### operations + +A list of `Instruction` instances that the backend supports. + +**Return type** + +`List`\[`Instruction`] + + + +### options + +Return the options for the backend + +The options of a backend are the dynamic parameters defining how the backend is used. These are used to control the [`run()`](#qiskit_ibm_runtime.fake_provider.FakeBurlingtonV2.run "qiskit_ibm_runtime.fake_provider.FakeBurlingtonV2.run") method. + + + +### props\_filename + +`= 'props_burlington.json'` + + + +### provider + +Return the backend Provider. + +**Returns** + +the Provider responsible for the backend. + +**Return type** + +Provider + + + +### target + +A `qiskit.transpiler.Target` object for the backend. + +**Return type** + +Target + + + +### version + +`= 2` + + + +### name + +Name of the backend. + + + +### description + +Optional human-readable description. + + + +### online\_date + +Date that the backend came online. + + + +### backend\_version + +Version of the backend being provided. This is not the same as `BackendV2.version`, which is the version of the `Backend` abstract interface. + +## Methods + +### acquire\_channel + + + +`acquire_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L269-L282 "view source code") + +Return the acquisition channel for the given qubit. + +This is required to be implemented if the backend supports Pulse scheduling. + +**Returns** + +The Qubit measurement acquisition line. + +**Return type** + +AcquireChannel + +### control\_channel + + + +`control_channel(qubits)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L284-L304 "view source code") + +Return the secondary drive channel for the given qubit + +This is typically utilized for controlling multiqubit interactions. This channel is derived from other channels. + +This is required to be implemented if the backend supports Pulse scheduling. + +**Parameters** + +**qubits** (`Iterable`\[`int`]) – Tuple or list of qubits of the form `(control_qubit, target_qubit)`. + +**Returns** + +The multi qubit control line. + +**Return type** + +List\[ControlChannel] + +### drive\_channel + + + +`drive_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L239-L252 "view source code") + +Return the drive channel for the given qubit. + +This is required to be implemented if the backend supports Pulse scheduling. + +**Returns** + +The Qubit drive channel + +**Return type** + +DriveChannel + +### measure\_channel + + + +`measure_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L254-L267 "view source code") + +Return the measure stimulus channel for the given qubit. + +This is required to be implemented if the backend supports Pulse scheduling. + +**Returns** + +The Qubit measurement stimulus line + +**Return type** + +MeasureChannel + +### qubit\_properties + + + +`qubit_properties(qubit)` + +Return QubitProperties for a given qubit. + +If there are no defined or the backend doesn’t support querying these details this method does not need to be implemented. + +**Parameters** + +**qubit** (`Union`\[`int`, `List`\[`int`]]) – The qubit to get the `QubitProperties` object for. This can be a single integer for 1 qubit or a list of qubits and a list of `QubitProperties` objects will be returned in the same order + +**Return type** + +`Union`\[`QubitProperties`, `List`\[`QubitProperties`]] + +**Returns** + +The `QubitProperties` object for the specified qubit. If a list of qubits is provided a list will be returned. If properties are missing for a qubit this can be `None`. + +**Raises** + +**NotImplementedError** – if the backend doesn’t support querying the qubit properties + +### run + + + +`run(run_input, **options)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L306-L365 "view source code") + +Run on the fake backend using a simulator. + +This method runs circuit jobs (an individual or a list of QuantumCircuit ) and pulse jobs (an individual or a list of Schedule or ScheduleBlock) using BasicAer simulator/ BasicSimulator or Aer simulator and returns a `Job` object. + +If qiskit-aer is installed, jobs will be run using AerSimulator with noise model of the fake backend. Otherwise, jobs will be run using BasicAer simulator/ BasicSimulator simulator without noise. + +Currently noisy simulation of a pulse job is not supported yet in FakeBackendV2. + +**Parameters** + +* **run\_input** (*QuantumCircuit or Schedule or ScheduleBlock or list*) – An individual or a list of `QuantumCircuit`, `ScheduleBlock`, or `Schedule` objects to run on the backend. +* **options** – Any kwarg options to pass to the backend for running the config. If a key is also present in the options attribute/object then the expectation is that the value specified will be used instead of what’s set in the options object. + +**Returns** + +The job object for the run + +**Return type** + +Job + +**Raises** + +**QiskitError** – If a pulse job is supplied and qiskit-aer is not installed. + +### set\_options + + + +`set_options(**fields)` + +Set the options fields for the backend + +This method is used to update the options of a backend. If you need to change any of the options prior to running just pass in the kwarg with the new value for the options. + +**Parameters** + +**fields** – The fields to update the options + +**Raises** + +**AttributeError** – If the field passed in is not part of the options + diff --git a/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeCairo.md b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeCairo.md new file mode 100644 index 00000000000..e369a5a7b99 --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeCairo.md @@ -0,0 +1,185 @@ +--- +title: FakeCairo +description: API reference for qiskit_ibm_runtime.fake_provider.FakeCairo +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.fake_provider.FakeCairo +--- + +# FakeCairo + + + +`FakeCairo` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/backends/cairo/fake_cairo.py#L31-L38 "view source code") + +A fake 27 qubit backend. + +FakeBackend initializer. + +**Parameters** + +* **configuration** (*BackendConfiguration*) – backend configuration +* **time\_alive** (*int*) – time to wait before returning result + +## Attributes + + + +### backend\_name + +`= 'fake_cairo'` + + + +### conf\_filename + +`= 'conf_cairo.json'` + + + +### defs\_filename + +`= 'defs_cairo.json'` + + + +### dirname + +`= '/home/runner/work/qiskit-ibm-runtime/qiskit-ibm-runtime/qiskit_ibm_runtime/fake_provider/backends/cairo'` + + + +### options + +Return the options for the backend + +The options of a backend are the dynamic parameters defining how the backend is used. These are used to control the [`run()`](#qiskit_ibm_runtime.fake_provider.FakeCairo.run "qiskit_ibm_runtime.fake_provider.FakeCairo.run") method. + + + +### props\_filename + +`= 'props_cairo.json'` + + + +### version + +`= 1` + +## Methods + +### configuration + + + +`configuration()` + +Return the backend configuration. + +**Returns** + +the configuration for the backend. + +**Return type** + +BackendConfiguration + +### defaults + + + +`defaults()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_pulse_backend.py#L29-L33 "view source code") + +Returns a snapshot of device defaults + +**Return type** + +`PulseDefaults` + +### name + + + +`name()` + +Return the backend name. + +**Returns** + +the name of the backend. + +**Return type** + +str + +### properties + + + +`properties()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_qasm_backend.py#L44-L48 "view source code") + +Returns a snapshot of device properties + +**Return type** + +`BackendProperties` + +### provider + + + +`provider()` + +Return the backend Provider. + +**Returns** + +the Provider responsible for the backend. + +**Return type** + +Provider + +### run + + + +`run(run_input, **kwargs)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L545-L574 "view source code") + +Main job in simulator + +### set\_options + + + +`set_options(**fields)` + +Set the options fields for the backend + +This method is used to update the options of a backend. If you need to change any of the options prior to running just pass in the kwarg with the new value for the options. + +**Parameters** + +**fields** – The fields to update the options + +**Raises** + +**AttributeError** – If the field passed in is not part of the options + +### status + + + +`status()` + +Return the backend status. + +**Returns** + +the status of the backend. + +**Return type** + +BackendStatus + diff --git a/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeCairoV2.md b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeCairoV2.md new file mode 100644 index 00000000000..998ef0f99c2 --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeCairoV2.md @@ -0,0 +1,377 @@ +--- +title: FakeCairoV2 +description: API reference for qiskit_ibm_runtime.fake_provider.FakeCairoV2 +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.fake_provider.FakeCairoV2 +--- + +# FakeCairoV2 + + + +`FakeCairoV2` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/backends/cairo/fake_cairo.py#L21-L28 "view source code") + +A fake 27 qubit backend. + +FakeBackendV2 initializer. + +## Attributes + + + +### backend\_name + +`= 'fake_cairo'` + + + +### conf\_filename + +`= 'conf_cairo.json'` + + + +### coupling\_map + +Return the `CouplingMap` object + + + +### defs\_filename + +`= 'defs_cairo.json'` + + + +### dirname + +`= '/home/runner/work/qiskit-ibm-runtime/qiskit-ibm-runtime/qiskit_ibm_runtime/fake_provider/backends/cairo'` + + + +### dt + +Return the system time resolution of input signals + +This is required to be implemented if the backend supports Pulse scheduling. + +**Return type** + +`Optional`\[`float`] + +**Returns** + +The input signal timestep in seconds. If the backend doesn’t define `dt`, `None` will be returned. + + + +### dtm + +Return the system time resolution of output signals + +**Return type** + +`float` + +**Returns** + +The output signal timestep in seconds. + + + +### instruction\_durations + +Return the `InstructionDurations` object. + + + +### instruction\_schedule\_map + +Return the `InstructionScheduleMap` for the instructions defined in this backend’s target. + + + +### instructions + +A list of Instruction tuples on the backend of the form `(instruction, (qubits)` + +**Return type** + +`List`\[`Tuple`\[`Instruction`, `Tuple`\[`int`]]] + + + +### max\_circuits + +**Return type** + +`None` + + + +### meas\_map + +Return the grouping of measurements which are multiplexed This is required to be implemented if the backend supports Pulse scheduling. + +**Return type** + +`List`\[`List`\[`int`]] + +**Returns** + +The grouping of measurements which are multiplexed + + + +### num\_qubits + +Return the number of qubits the backend has. + +**Return type** + +`int` + + + +### operation\_names + +A list of instruction names that the backend supports. + +**Return type** + +`List`\[`str`] + + + +### operations + +A list of `Instruction` instances that the backend supports. + +**Return type** + +`List`\[`Instruction`] + + + +### options + +Return the options for the backend + +The options of a backend are the dynamic parameters defining how the backend is used. These are used to control the [`run()`](#qiskit_ibm_runtime.fake_provider.FakeCairoV2.run "qiskit_ibm_runtime.fake_provider.FakeCairoV2.run") method. + + + +### props\_filename + +`= 'props_cairo.json'` + + + +### provider + +Return the backend Provider. + +**Returns** + +the Provider responsible for the backend. + +**Return type** + +Provider + + + +### target + +A `qiskit.transpiler.Target` object for the backend. + +**Return type** + +Target + + + +### version + +`= 2` + + + +### name + +Name of the backend. + + + +### description + +Optional human-readable description. + + + +### online\_date + +Date that the backend came online. + + + +### backend\_version + +Version of the backend being provided. This is not the same as `BackendV2.version`, which is the version of the `Backend` abstract interface. + +## Methods + +### acquire\_channel + + + +`acquire_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L269-L282 "view source code") + +Return the acquisition channel for the given qubit. + +This is required to be implemented if the backend supports Pulse scheduling. + +**Returns** + +The Qubit measurement acquisition line. + +**Return type** + +AcquireChannel + +### control\_channel + + + +`control_channel(qubits)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L284-L304 "view source code") + +Return the secondary drive channel for the given qubit + +This is typically utilized for controlling multiqubit interactions. This channel is derived from other channels. + +This is required to be implemented if the backend supports Pulse scheduling. + +**Parameters** + +**qubits** (`Iterable`\[`int`]) – Tuple or list of qubits of the form `(control_qubit, target_qubit)`. + +**Returns** + +The multi qubit control line. + +**Return type** + +List\[ControlChannel] + +### drive\_channel + + + +`drive_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L239-L252 "view source code") + +Return the drive channel for the given qubit. + +This is required to be implemented if the backend supports Pulse scheduling. + +**Returns** + +The Qubit drive channel + +**Return type** + +DriveChannel + +### measure\_channel + + + +`measure_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L254-L267 "view source code") + +Return the measure stimulus channel for the given qubit. + +This is required to be implemented if the backend supports Pulse scheduling. + +**Returns** + +The Qubit measurement stimulus line + +**Return type** + +MeasureChannel + +### qubit\_properties + + + +`qubit_properties(qubit)` + +Return QubitProperties for a given qubit. + +If there are no defined or the backend doesn’t support querying these details this method does not need to be implemented. + +**Parameters** + +**qubit** (`Union`\[`int`, `List`\[`int`]]) – The qubit to get the `QubitProperties` object for. This can be a single integer for 1 qubit or a list of qubits and a list of `QubitProperties` objects will be returned in the same order + +**Return type** + +`Union`\[`QubitProperties`, `List`\[`QubitProperties`]] + +**Returns** + +The `QubitProperties` object for the specified qubit. If a list of qubits is provided a list will be returned. If properties are missing for a qubit this can be `None`. + +**Raises** + +**NotImplementedError** – if the backend doesn’t support querying the qubit properties + +### run + + + +`run(run_input, **options)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L306-L365 "view source code") + +Run on the fake backend using a simulator. + +This method runs circuit jobs (an individual or a list of QuantumCircuit ) and pulse jobs (an individual or a list of Schedule or ScheduleBlock) using BasicAer simulator/ BasicSimulator or Aer simulator and returns a `Job` object. + +If qiskit-aer is installed, jobs will be run using AerSimulator with noise model of the fake backend. Otherwise, jobs will be run using BasicAer simulator/ BasicSimulator simulator without noise. + +Currently noisy simulation of a pulse job is not supported yet in FakeBackendV2. + +**Parameters** + +* **run\_input** (*QuantumCircuit or Schedule or ScheduleBlock or list*) – An individual or a list of `QuantumCircuit`, `ScheduleBlock`, or `Schedule` objects to run on the backend. +* **options** – Any kwarg options to pass to the backend for running the config. If a key is also present in the options attribute/object then the expectation is that the value specified will be used instead of what’s set in the options object. + +**Returns** + +The job object for the run + +**Return type** + +Job + +**Raises** + +**QiskitError** – If a pulse job is supplied and qiskit-aer is not installed. + +### set\_options + + + +`set_options(**fields)` + +Set the options fields for the backend + +This method is used to update the options of a backend. If you need to change any of the options prior to running just pass in the kwarg with the new value for the options. + +**Parameters** + +**fields** – The fields to update the options + +**Raises** + +**AttributeError** – If the field passed in is not part of the options + diff --git a/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeCambridge.md b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeCambridge.md new file mode 100644 index 00000000000..83914bd354e --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeCambridge.md @@ -0,0 +1,179 @@ +--- +title: FakeCambridge +description: API reference for qiskit_ibm_runtime.fake_provider.FakeCambridge +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.fake_provider.FakeCambridge +--- + +# FakeCambridge + + + +`FakeCambridge` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/backends/cambridge/fake_cambridge.py#L43-L62 "view source code") + +A fake Cambridge backend. + +```python + 00 ↔ 01 ↔ 02 ↔ 03 ↔ 04 + ↕ ↕ + 05 06 + ↕ ↕ +07 ↔ 08 ↔ 09 ↔ 10 ↔ 11 ↔ 12 ↔ 13 ↔ 14 ↔ 15 +↕ ↕ ↕ +16 17 18 +↕ ↕ ↕ +19 ↔ 20 ↔ 21 ↔ 22 ↔ 23 ↔ 24 ↔ 25 ↔ 26 ↔ 27 +``` + +FakeBackend initializer. + +**Parameters** + +* **configuration** (*BackendConfiguration*) – backend configuration +* **time\_alive** (*int*) – time to wait before returning result + +## Attributes + + + +### backend\_name + +`= 'fake_cambridge'` + + + +### conf\_filename + +`= 'conf_cambridge.json'` + + + +### dirname + +`= '/home/runner/work/qiskit-ibm-runtime/qiskit-ibm-runtime/qiskit_ibm_runtime/fake_provider/backends/cambridge'` + + + +### options + +Return the options for the backend + +The options of a backend are the dynamic parameters defining how the backend is used. These are used to control the [`run()`](#qiskit_ibm_runtime.fake_provider.FakeCambridge.run "qiskit_ibm_runtime.fake_provider.FakeCambridge.run") method. + + + +### props\_filename + +`= 'props_cambridge.json'` + + + +### version + +`= 1` + +## Methods + +### configuration + + + +`configuration()` + +Return the backend configuration. + +**Returns** + +the configuration for the backend. + +**Return type** + +BackendConfiguration + +### name + + + +`name()` + +Return the backend name. + +**Returns** + +the name of the backend. + +**Return type** + +str + +### properties + + + +`properties()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_qasm_backend.py#L44-L48 "view source code") + +Returns a snapshot of device properties + +**Return type** + +`BackendProperties` + +### provider + + + +`provider()` + +Return the backend Provider. + +**Returns** + +the Provider responsible for the backend. + +**Return type** + +Provider + +### run + + + +`run(run_input, **kwargs)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L545-L574 "view source code") + +Main job in simulator + +### set\_options + + + +`set_options(**fields)` + +Set the options fields for the backend + +This method is used to update the options of a backend. If you need to change any of the options prior to running just pass in the kwarg with the new value for the options. + +**Parameters** + +**fields** – The fields to update the options + +**Raises** + +**AttributeError** – If the field passed in is not part of the options + +### status + + + +`status()` + +Return the backend status. + +**Returns** + +the status of the backend. + +**Return type** + +BackendStatus + diff --git a/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeCambridgeV2.md b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeCambridgeV2.md new file mode 100644 index 00000000000..3223dbdb144 --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeCambridgeV2.md @@ -0,0 +1,389 @@ +--- +title: FakeCambridgeV2 +description: API reference for qiskit_ibm_runtime.fake_provider.FakeCambridgeV2 +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.fake_provider.FakeCambridgeV2 +--- + +# FakeCambridgeV2 + + + +`FakeCambridgeV2` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/backends/cambridge/fake_cambridge.py#L21-L40 "view source code") + +A fake Cambridge backend. + +```python + 00 ↔ 01 ↔ 02 ↔ 03 ↔ 04 + ↕ ↕ + 05 06 + ↕ ↕ +07 ↔ 08 ↔ 09 ↔ 10 ↔ 11 ↔ 12 ↔ 13 ↔ 14 ↔ 15 +↕ ↕ ↕ +16 17 18 +↕ ↕ ↕ +19 ↔ 20 ↔ 21 ↔ 22 ↔ 23 ↔ 24 ↔ 25 ↔ 26 ↔ 27 +``` + +FakeBackendV2 initializer. + +## Attributes + + + +### backend\_name + +`= 'fake_cambridge'` + + + +### conf\_filename + +`= 'conf_cambridge.json'` + + + +### coupling\_map + +Return the `CouplingMap` object + + + +### defs\_filename + +`= None` + + + +### dirname + +`= '/home/runner/work/qiskit-ibm-runtime/qiskit-ibm-runtime/qiskit_ibm_runtime/fake_provider/backends/cambridge'` + + + +### dt + +Return the system time resolution of input signals + +This is required to be implemented if the backend supports Pulse scheduling. + +**Return type** + +`Optional`\[`float`] + +**Returns** + +The input signal timestep in seconds. If the backend doesn’t define `dt`, `None` will be returned. + + + +### dtm + +Return the system time resolution of output signals + +**Return type** + +`float` + +**Returns** + +The output signal timestep in seconds. + + + +### instruction\_durations + +Return the `InstructionDurations` object. + + + +### instruction\_schedule\_map + +Return the `InstructionScheduleMap` for the instructions defined in this backend’s target. + + + +### instructions + +A list of Instruction tuples on the backend of the form `(instruction, (qubits)` + +**Return type** + +`List`\[`Tuple`\[`Instruction`, `Tuple`\[`int`]]] + + + +### max\_circuits + +**Return type** + +`None` + + + +### meas\_map + +Return the grouping of measurements which are multiplexed This is required to be implemented if the backend supports Pulse scheduling. + +**Return type** + +`List`\[`List`\[`int`]] + +**Returns** + +The grouping of measurements which are multiplexed + + + +### num\_qubits + +Return the number of qubits the backend has. + +**Return type** + +`int` + + + +### operation\_names + +A list of instruction names that the backend supports. + +**Return type** + +`List`\[`str`] + + + +### operations + +A list of `Instruction` instances that the backend supports. + +**Return type** + +`List`\[`Instruction`] + + + +### options + +Return the options for the backend + +The options of a backend are the dynamic parameters defining how the backend is used. These are used to control the [`run()`](#qiskit_ibm_runtime.fake_provider.FakeCambridgeV2.run "qiskit_ibm_runtime.fake_provider.FakeCambridgeV2.run") method. + + + +### props\_filename + +`= 'props_cambridge.json'` + + + +### provider + +Return the backend Provider. + +**Returns** + +the Provider responsible for the backend. + +**Return type** + +Provider + + + +### target + +A `qiskit.transpiler.Target` object for the backend. + +**Return type** + +Target + + + +### version + +`= 2` + + + +### name + +Name of the backend. + + + +### description + +Optional human-readable description. + + + +### online\_date + +Date that the backend came online. + + + +### backend\_version + +Version of the backend being provided. This is not the same as `BackendV2.version`, which is the version of the `Backend` abstract interface. + +## Methods + +### acquire\_channel + + + +`acquire_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L269-L282 "view source code") + +Return the acquisition channel for the given qubit. + +This is required to be implemented if the backend supports Pulse scheduling. + +**Returns** + +The Qubit measurement acquisition line. + +**Return type** + +AcquireChannel + +### control\_channel + + + +`control_channel(qubits)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L284-L304 "view source code") + +Return the secondary drive channel for the given qubit + +This is typically utilized for controlling multiqubit interactions. This channel is derived from other channels. + +This is required to be implemented if the backend supports Pulse scheduling. + +**Parameters** + +**qubits** (`Iterable`\[`int`]) – Tuple or list of qubits of the form `(control_qubit, target_qubit)`. + +**Returns** + +The multi qubit control line. + +**Return type** + +List\[ControlChannel] + +### drive\_channel + + + +`drive_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L239-L252 "view source code") + +Return the drive channel for the given qubit. + +This is required to be implemented if the backend supports Pulse scheduling. + +**Returns** + +The Qubit drive channel + +**Return type** + +DriveChannel + +### measure\_channel + + + +`measure_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L254-L267 "view source code") + +Return the measure stimulus channel for the given qubit. + +This is required to be implemented if the backend supports Pulse scheduling. + +**Returns** + +The Qubit measurement stimulus line + +**Return type** + +MeasureChannel + +### qubit\_properties + + + +`qubit_properties(qubit)` + +Return QubitProperties for a given qubit. + +If there are no defined or the backend doesn’t support querying these details this method does not need to be implemented. + +**Parameters** + +**qubit** (`Union`\[`int`, `List`\[`int`]]) – The qubit to get the `QubitProperties` object for. This can be a single integer for 1 qubit or a list of qubits and a list of `QubitProperties` objects will be returned in the same order + +**Return type** + +`Union`\[`QubitProperties`, `List`\[`QubitProperties`]] + +**Returns** + +The `QubitProperties` object for the specified qubit. If a list of qubits is provided a list will be returned. If properties are missing for a qubit this can be `None`. + +**Raises** + +**NotImplementedError** – if the backend doesn’t support querying the qubit properties + +### run + + + +`run(run_input, **options)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L306-L365 "view source code") + +Run on the fake backend using a simulator. + +This method runs circuit jobs (an individual or a list of QuantumCircuit ) and pulse jobs (an individual or a list of Schedule or ScheduleBlock) using BasicAer simulator/ BasicSimulator or Aer simulator and returns a `Job` object. + +If qiskit-aer is installed, jobs will be run using AerSimulator with noise model of the fake backend. Otherwise, jobs will be run using BasicAer simulator/ BasicSimulator simulator without noise. + +Currently noisy simulation of a pulse job is not supported yet in FakeBackendV2. + +**Parameters** + +* **run\_input** (*QuantumCircuit or Schedule or ScheduleBlock or list*) – An individual or a list of `QuantumCircuit`, `ScheduleBlock`, or `Schedule` objects to run on the backend. +* **options** – Any kwarg options to pass to the backend for running the config. If a key is also present in the options attribute/object then the expectation is that the value specified will be used instead of what’s set in the options object. + +**Returns** + +The job object for the run + +**Return type** + +Job + +**Raises** + +**QiskitError** – If a pulse job is supplied and qiskit-aer is not installed. + +### set\_options + + + +`set_options(**fields)` + +Set the options fields for the backend + +This method is used to update the options of a backend. If you need to change any of the options prior to running just pass in the kwarg with the new value for the options. + +**Parameters** + +**fields** – The fields to update the options + +**Raises** + +**AttributeError** – If the field passed in is not part of the options + diff --git a/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeCasablanca.md b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeCasablanca.md new file mode 100644 index 00000000000..f07fdf7e90e --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeCasablanca.md @@ -0,0 +1,185 @@ +--- +title: FakeCasablanca +description: API reference for qiskit_ibm_runtime.fake_provider.FakeCasablanca +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.fake_provider.FakeCasablanca +--- + +# FakeCasablanca + + + +`FakeCasablanca` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/backends/casablanca/fake_casablanca.py#L31-L38 "view source code") + +A fake 7 qubit backend. + +FakeBackend initializer. + +**Parameters** + +* **configuration** (*BackendConfiguration*) – backend configuration +* **time\_alive** (*int*) – time to wait before returning result + +## Attributes + + + +### backend\_name + +`= 'fake_casablanca'` + + + +### conf\_filename + +`= 'conf_casablanca.json'` + + + +### defs\_filename + +`= 'defs_casablanca.json'` + + + +### dirname + +`= '/home/runner/work/qiskit-ibm-runtime/qiskit-ibm-runtime/qiskit_ibm_runtime/fake_provider/backends/casablanca'` + + + +### options + +Return the options for the backend + +The options of a backend are the dynamic parameters defining how the backend is used. These are used to control the [`run()`](#qiskit_ibm_runtime.fake_provider.FakeCasablanca.run "qiskit_ibm_runtime.fake_provider.FakeCasablanca.run") method. + + + +### props\_filename + +`= 'props_casablanca.json'` + + + +### version + +`= 1` + +## Methods + +### configuration + + + +`configuration()` + +Return the backend configuration. + +**Returns** + +the configuration for the backend. + +**Return type** + +BackendConfiguration + +### defaults + + + +`defaults()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_pulse_backend.py#L29-L33 "view source code") + +Returns a snapshot of device defaults + +**Return type** + +`PulseDefaults` + +### name + + + +`name()` + +Return the backend name. + +**Returns** + +the name of the backend. + +**Return type** + +str + +### properties + + + +`properties()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_qasm_backend.py#L44-L48 "view source code") + +Returns a snapshot of device properties + +**Return type** + +`BackendProperties` + +### provider + + + +`provider()` + +Return the backend Provider. + +**Returns** + +the Provider responsible for the backend. + +**Return type** + +Provider + +### run + + + +`run(run_input, **kwargs)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L545-L574 "view source code") + +Main job in simulator + +### set\_options + + + +`set_options(**fields)` + +Set the options fields for the backend + +This method is used to update the options of a backend. If you need to change any of the options prior to running just pass in the kwarg with the new value for the options. + +**Parameters** + +**fields** – The fields to update the options + +**Raises** + +**AttributeError** – If the field passed in is not part of the options + +### status + + + +`status()` + +Return the backend status. + +**Returns** + +the status of the backend. + +**Return type** + +BackendStatus + diff --git a/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeCasablancaV2.md b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeCasablancaV2.md new file mode 100644 index 00000000000..48aa653c74b --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeCasablancaV2.md @@ -0,0 +1,377 @@ +--- +title: FakeCasablancaV2 +description: API reference for qiskit_ibm_runtime.fake_provider.FakeCasablancaV2 +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.fake_provider.FakeCasablancaV2 +--- + +# FakeCasablancaV2 + + + +`FakeCasablancaV2` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/backends/casablanca/fake_casablanca.py#L21-L28 "view source code") + +A fake 7 qubit backend. + +FakeBackendV2 initializer. + +## Attributes + + + +### backend\_name + +`= 'fake_casablanca'` + + + +### conf\_filename + +`= 'conf_casablanca.json'` + + + +### coupling\_map + +Return the `CouplingMap` object + + + +### defs\_filename + +`= 'defs_casablanca.json'` + + + +### dirname + +`= '/home/runner/work/qiskit-ibm-runtime/qiskit-ibm-runtime/qiskit_ibm_runtime/fake_provider/backends/casablanca'` + + + +### dt + +Return the system time resolution of input signals + +This is required to be implemented if the backend supports Pulse scheduling. + +**Return type** + +`Optional`\[`float`] + +**Returns** + +The input signal timestep in seconds. If the backend doesn’t define `dt`, `None` will be returned. + + + +### dtm + +Return the system time resolution of output signals + +**Return type** + +`float` + +**Returns** + +The output signal timestep in seconds. + + + +### instruction\_durations + +Return the `InstructionDurations` object. + + + +### instruction\_schedule\_map + +Return the `InstructionScheduleMap` for the instructions defined in this backend’s target. + + + +### instructions + +A list of Instruction tuples on the backend of the form `(instruction, (qubits)` + +**Return type** + +`List`\[`Tuple`\[`Instruction`, `Tuple`\[`int`]]] + + + +### max\_circuits + +**Return type** + +`None` + + + +### meas\_map + +Return the grouping of measurements which are multiplexed This is required to be implemented if the backend supports Pulse scheduling. + +**Return type** + +`List`\[`List`\[`int`]] + +**Returns** + +The grouping of measurements which are multiplexed + + + +### num\_qubits + +Return the number of qubits the backend has. + +**Return type** + +`int` + + + +### operation\_names + +A list of instruction names that the backend supports. + +**Return type** + +`List`\[`str`] + + + +### operations + +A list of `Instruction` instances that the backend supports. + +**Return type** + +`List`\[`Instruction`] + + + +### options + +Return the options for the backend + +The options of a backend are the dynamic parameters defining how the backend is used. These are used to control the [`run()`](#qiskit_ibm_runtime.fake_provider.FakeCasablancaV2.run "qiskit_ibm_runtime.fake_provider.FakeCasablancaV2.run") method. + + + +### props\_filename + +`= 'props_casablanca.json'` + + + +### provider + +Return the backend Provider. + +**Returns** + +the Provider responsible for the backend. + +**Return type** + +Provider + + + +### target + +A `qiskit.transpiler.Target` object for the backend. + +**Return type** + +Target + + + +### version + +`= 2` + + + +### name + +Name of the backend. + + + +### description + +Optional human-readable description. + + + +### online\_date + +Date that the backend came online. + + + +### backend\_version + +Version of the backend being provided. This is not the same as `BackendV2.version`, which is the version of the `Backend` abstract interface. + +## Methods + +### acquire\_channel + + + +`acquire_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L269-L282 "view source code") + +Return the acquisition channel for the given qubit. + +This is required to be implemented if the backend supports Pulse scheduling. + +**Returns** + +The Qubit measurement acquisition line. + +**Return type** + +AcquireChannel + +### control\_channel + + + +`control_channel(qubits)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L284-L304 "view source code") + +Return the secondary drive channel for the given qubit + +This is typically utilized for controlling multiqubit interactions. This channel is derived from other channels. + +This is required to be implemented if the backend supports Pulse scheduling. + +**Parameters** + +**qubits** (`Iterable`\[`int`]) – Tuple or list of qubits of the form `(control_qubit, target_qubit)`. + +**Returns** + +The multi qubit control line. + +**Return type** + +List\[ControlChannel] + +### drive\_channel + + + +`drive_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L239-L252 "view source code") + +Return the drive channel for the given qubit. + +This is required to be implemented if the backend supports Pulse scheduling. + +**Returns** + +The Qubit drive channel + +**Return type** + +DriveChannel + +### measure\_channel + + + +`measure_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L254-L267 "view source code") + +Return the measure stimulus channel for the given qubit. + +This is required to be implemented if the backend supports Pulse scheduling. + +**Returns** + +The Qubit measurement stimulus line + +**Return type** + +MeasureChannel + +### qubit\_properties + + + +`qubit_properties(qubit)` + +Return QubitProperties for a given qubit. + +If there are no defined or the backend doesn’t support querying these details this method does not need to be implemented. + +**Parameters** + +**qubit** (`Union`\[`int`, `List`\[`int`]]) – The qubit to get the `QubitProperties` object for. This can be a single integer for 1 qubit or a list of qubits and a list of `QubitProperties` objects will be returned in the same order + +**Return type** + +`Union`\[`QubitProperties`, `List`\[`QubitProperties`]] + +**Returns** + +The `QubitProperties` object for the specified qubit. If a list of qubits is provided a list will be returned. If properties are missing for a qubit this can be `None`. + +**Raises** + +**NotImplementedError** – if the backend doesn’t support querying the qubit properties + +### run + + + +`run(run_input, **options)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L306-L365 "view source code") + +Run on the fake backend using a simulator. + +This method runs circuit jobs (an individual or a list of QuantumCircuit ) and pulse jobs (an individual or a list of Schedule or ScheduleBlock) using BasicAer simulator/ BasicSimulator or Aer simulator and returns a `Job` object. + +If qiskit-aer is installed, jobs will be run using AerSimulator with noise model of the fake backend. Otherwise, jobs will be run using BasicAer simulator/ BasicSimulator simulator without noise. + +Currently noisy simulation of a pulse job is not supported yet in FakeBackendV2. + +**Parameters** + +* **run\_input** (*QuantumCircuit or Schedule or ScheduleBlock or list*) – An individual or a list of `QuantumCircuit`, `ScheduleBlock`, or `Schedule` objects to run on the backend. +* **options** – Any kwarg options to pass to the backend for running the config. If a key is also present in the options attribute/object then the expectation is that the value specified will be used instead of what’s set in the options object. + +**Returns** + +The job object for the run + +**Return type** + +Job + +**Raises** + +**QiskitError** – If a pulse job is supplied and qiskit-aer is not installed. + +### set\_options + + + +`set_options(**fields)` + +Set the options fields for the backend + +This method is used to update the options of a backend. If you need to change any of the options prior to running just pass in the kwarg with the new value for the options. + +**Parameters** + +**fields** – The fields to update the options + +**Raises** + +**AttributeError** – If the field passed in is not part of the options + diff --git a/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeEssex.md b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeEssex.md new file mode 100644 index 00000000000..30b0a3f07d3 --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeEssex.md @@ -0,0 +1,175 @@ +--- +title: FakeEssex +description: API reference for qiskit_ibm_runtime.fake_provider.FakeEssex +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.fake_provider.FakeEssex +--- + +# FakeEssex + + + +`FakeEssex` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/backends/essex/fake_essex.py#L39-L54 "view source code") + +A fake 5 qubit backend. + +```python +0 ↔ 1 ↔ 2 + ↕ + 3 + ↕ + 4 +``` + +FakeBackend initializer. + +**Parameters** + +* **configuration** (*BackendConfiguration*) – backend configuration +* **time\_alive** (*int*) – time to wait before returning result + +## Attributes + + + +### backend\_name + +`= 'fake_essex'` + + + +### conf\_filename + +`= 'conf_essex.json'` + + + +### dirname + +`= '/home/runner/work/qiskit-ibm-runtime/qiskit-ibm-runtime/qiskit_ibm_runtime/fake_provider/backends/essex'` + + + +### options + +Return the options for the backend + +The options of a backend are the dynamic parameters defining how the backend is used. These are used to control the [`run()`](#qiskit_ibm_runtime.fake_provider.FakeEssex.run "qiskit_ibm_runtime.fake_provider.FakeEssex.run") method. + + + +### props\_filename + +`= 'props_essex.json'` + + + +### version + +`= 1` + +## Methods + +### configuration + + + +`configuration()` + +Return the backend configuration. + +**Returns** + +the configuration for the backend. + +**Return type** + +BackendConfiguration + +### name + + + +`name()` + +Return the backend name. + +**Returns** + +the name of the backend. + +**Return type** + +str + +### properties + + + +`properties()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_qasm_backend.py#L44-L48 "view source code") + +Returns a snapshot of device properties + +**Return type** + +`BackendProperties` + +### provider + + + +`provider()` + +Return the backend Provider. + +**Returns** + +the Provider responsible for the backend. + +**Return type** + +Provider + +### run + + + +`run(run_input, **kwargs)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L545-L574 "view source code") + +Main job in simulator + +### set\_options + + + +`set_options(**fields)` + +Set the options fields for the backend + +This method is used to update the options of a backend. If you need to change any of the options prior to running just pass in the kwarg with the new value for the options. + +**Parameters** + +**fields** – The fields to update the options + +**Raises** + +**AttributeError** – If the field passed in is not part of the options + +### status + + + +`status()` + +Return the backend status. + +**Returns** + +the status of the backend. + +**Return type** + +BackendStatus + diff --git a/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeEssexV2.md b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeEssexV2.md new file mode 100644 index 00000000000..f52d617ba21 --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeEssexV2.md @@ -0,0 +1,385 @@ +--- +title: FakeEssexV2 +description: API reference for qiskit_ibm_runtime.fake_provider.FakeEssexV2 +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.fake_provider.FakeEssexV2 +--- + +# FakeEssexV2 + + + +`FakeEssexV2` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/backends/essex/fake_essex.py#L21-L36 "view source code") + +A fake 5 qubit backend. + +```python +0 ↔ 1 ↔ 2 + ↕ + 3 + ↕ + 4 +``` + +FakeBackendV2 initializer. + +## Attributes + + + +### backend\_name + +`= 'fake_essex'` + + + +### conf\_filename + +`= 'conf_essex.json'` + + + +### coupling\_map + +Return the `CouplingMap` object + + + +### defs\_filename + +`= None` + + + +### dirname + +`= '/home/runner/work/qiskit-ibm-runtime/qiskit-ibm-runtime/qiskit_ibm_runtime/fake_provider/backends/essex'` + + + +### dt + +Return the system time resolution of input signals + +This is required to be implemented if the backend supports Pulse scheduling. + +**Return type** + +`Optional`\[`float`] + +**Returns** + +The input signal timestep in seconds. If the backend doesn’t define `dt`, `None` will be returned. + + + +### dtm + +Return the system time resolution of output signals + +**Return type** + +`float` + +**Returns** + +The output signal timestep in seconds. + + + +### instruction\_durations + +Return the `InstructionDurations` object. + + + +### instruction\_schedule\_map + +Return the `InstructionScheduleMap` for the instructions defined in this backend’s target. + + + +### instructions + +A list of Instruction tuples on the backend of the form `(instruction, (qubits)` + +**Return type** + +`List`\[`Tuple`\[`Instruction`, `Tuple`\[`int`]]] + + + +### max\_circuits + +**Return type** + +`None` + + + +### meas\_map + +Return the grouping of measurements which are multiplexed This is required to be implemented if the backend supports Pulse scheduling. + +**Return type** + +`List`\[`List`\[`int`]] + +**Returns** + +The grouping of measurements which are multiplexed + + + +### num\_qubits + +Return the number of qubits the backend has. + +**Return type** + +`int` + + + +### operation\_names + +A list of instruction names that the backend supports. + +**Return type** + +`List`\[`str`] + + + +### operations + +A list of `Instruction` instances that the backend supports. + +**Return type** + +`List`\[`Instruction`] + + + +### options + +Return the options for the backend + +The options of a backend are the dynamic parameters defining how the backend is used. These are used to control the [`run()`](#qiskit_ibm_runtime.fake_provider.FakeEssexV2.run "qiskit_ibm_runtime.fake_provider.FakeEssexV2.run") method. + + + +### props\_filename + +`= 'props_essex.json'` + + + +### provider + +Return the backend Provider. + +**Returns** + +the Provider responsible for the backend. + +**Return type** + +Provider + + + +### target + +A `qiskit.transpiler.Target` object for the backend. + +**Return type** + +Target + + + +### version + +`= 2` + + + +### name + +Name of the backend. + + + +### description + +Optional human-readable description. + + + +### online\_date + +Date that the backend came online. + + + +### backend\_version + +Version of the backend being provided. This is not the same as `BackendV2.version`, which is the version of the `Backend` abstract interface. + +## Methods + +### acquire\_channel + + + +`acquire_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L269-L282 "view source code") + +Return the acquisition channel for the given qubit. + +This is required to be implemented if the backend supports Pulse scheduling. + +**Returns** + +The Qubit measurement acquisition line. + +**Return type** + +AcquireChannel + +### control\_channel + + + +`control_channel(qubits)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L284-L304 "view source code") + +Return the secondary drive channel for the given qubit + +This is typically utilized for controlling multiqubit interactions. This channel is derived from other channels. + +This is required to be implemented if the backend supports Pulse scheduling. + +**Parameters** + +**qubits** (`Iterable`\[`int`]) – Tuple or list of qubits of the form `(control_qubit, target_qubit)`. + +**Returns** + +The multi qubit control line. + +**Return type** + +List\[ControlChannel] + +### drive\_channel + + + +`drive_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L239-L252 "view source code") + +Return the drive channel for the given qubit. + +This is required to be implemented if the backend supports Pulse scheduling. + +**Returns** + +The Qubit drive channel + +**Return type** + +DriveChannel + +### measure\_channel + + + +`measure_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L254-L267 "view source code") + +Return the measure stimulus channel for the given qubit. + +This is required to be implemented if the backend supports Pulse scheduling. + +**Returns** + +The Qubit measurement stimulus line + +**Return type** + +MeasureChannel + +### qubit\_properties + + + +`qubit_properties(qubit)` + +Return QubitProperties for a given qubit. + +If there are no defined or the backend doesn’t support querying these details this method does not need to be implemented. + +**Parameters** + +**qubit** (`Union`\[`int`, `List`\[`int`]]) – The qubit to get the `QubitProperties` object for. This can be a single integer for 1 qubit or a list of qubits and a list of `QubitProperties` objects will be returned in the same order + +**Return type** + +`Union`\[`QubitProperties`, `List`\[`QubitProperties`]] + +**Returns** + +The `QubitProperties` object for the specified qubit. If a list of qubits is provided a list will be returned. If properties are missing for a qubit this can be `None`. + +**Raises** + +**NotImplementedError** – if the backend doesn’t support querying the qubit properties + +### run + + + +`run(run_input, **options)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L306-L365 "view source code") + +Run on the fake backend using a simulator. + +This method runs circuit jobs (an individual or a list of QuantumCircuit ) and pulse jobs (an individual or a list of Schedule or ScheduleBlock) using BasicAer simulator/ BasicSimulator or Aer simulator and returns a `Job` object. + +If qiskit-aer is installed, jobs will be run using AerSimulator with noise model of the fake backend. Otherwise, jobs will be run using BasicAer simulator/ BasicSimulator simulator without noise. + +Currently noisy simulation of a pulse job is not supported yet in FakeBackendV2. + +**Parameters** + +* **run\_input** (*QuantumCircuit or Schedule or ScheduleBlock or list*) – An individual or a list of `QuantumCircuit`, `ScheduleBlock`, or `Schedule` objects to run on the backend. +* **options** – Any kwarg options to pass to the backend for running the config. If a key is also present in the options attribute/object then the expectation is that the value specified will be used instead of what’s set in the options object. + +**Returns** + +The job object for the run + +**Return type** + +Job + +**Raises** + +**QiskitError** – If a pulse job is supplied and qiskit-aer is not installed. + +### set\_options + + + +`set_options(**fields)` + +Set the options fields for the backend + +This method is used to update the options of a backend. If you need to change any of the options prior to running just pass in the kwarg with the new value for the options. + +**Parameters** + +**fields** – The fields to update the options + +**Raises** + +**AttributeError** – If the field passed in is not part of the options + diff --git a/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeGeneva.md b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeGeneva.md new file mode 100644 index 00000000000..31d42cf6a34 --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeGeneva.md @@ -0,0 +1,377 @@ +--- +title: FakeGeneva +description: API reference for qiskit_ibm_runtime.fake_provider.FakeGeneva +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.fake_provider.FakeGeneva +--- + +# FakeGeneva + + + +`FakeGeneva` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/backends/geneva/fake_geneva.py#L22-L29 "view source code") + +A fake 27 qubit backend. + +FakeBackendV2 initializer. + +## Attributes + + + +### backend\_name + +`= 'fake_geneva'` + + + +### conf\_filename + +`= 'conf_geneva.json'` + + + +### coupling\_map + +Return the `CouplingMap` object + + + +### defs\_filename + +`= 'defs_geneva.json'` + + + +### dirname + +`= '/home/runner/work/qiskit-ibm-runtime/qiskit-ibm-runtime/qiskit_ibm_runtime/fake_provider/backends/geneva'` + + + +### dt + +Return the system time resolution of input signals + +This is required to be implemented if the backend supports Pulse scheduling. + +**Return type** + +`Optional`\[`float`] + +**Returns** + +The input signal timestep in seconds. If the backend doesn’t define `dt`, `None` will be returned. + + + +### dtm + +Return the system time resolution of output signals + +**Return type** + +`float` + +**Returns** + +The output signal timestep in seconds. + + + +### instruction\_durations + +Return the `InstructionDurations` object. + + + +### instruction\_schedule\_map + +Return the `InstructionScheduleMap` for the instructions defined in this backend’s target. + + + +### instructions + +A list of Instruction tuples on the backend of the form `(instruction, (qubits)` + +**Return type** + +`List`\[`Tuple`\[`Instruction`, `Tuple`\[`int`]]] + + + +### max\_circuits + +**Return type** + +`None` + + + +### meas\_map + +Return the grouping of measurements which are multiplexed This is required to be implemented if the backend supports Pulse scheduling. + +**Return type** + +`List`\[`List`\[`int`]] + +**Returns** + +The grouping of measurements which are multiplexed + + + +### num\_qubits + +Return the number of qubits the backend has. + +**Return type** + +`int` + + + +### operation\_names + +A list of instruction names that the backend supports. + +**Return type** + +`List`\[`str`] + + + +### operations + +A list of `Instruction` instances that the backend supports. + +**Return type** + +`List`\[`Instruction`] + + + +### options + +Return the options for the backend + +The options of a backend are the dynamic parameters defining how the backend is used. These are used to control the [`run()`](#qiskit_ibm_runtime.fake_provider.FakeGeneva.run "qiskit_ibm_runtime.fake_provider.FakeGeneva.run") method. + + + +### props\_filename + +`= 'props_geneva.json'` + + + +### provider + +Return the backend Provider. + +**Returns** + +the Provider responsible for the backend. + +**Return type** + +Provider + + + +### target + +A `qiskit.transpiler.Target` object for the backend. + +**Return type** + +Target + + + +### version + +`= 2` + + + +### name + +Name of the backend. + + + +### description + +Optional human-readable description. + + + +### online\_date + +Date that the backend came online. + + + +### backend\_version + +Version of the backend being provided. This is not the same as `BackendV2.version`, which is the version of the `Backend` abstract interface. + +## Methods + +### acquire\_channel + + + +`acquire_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L269-L282 "view source code") + +Return the acquisition channel for the given qubit. + +This is required to be implemented if the backend supports Pulse scheduling. + +**Returns** + +The Qubit measurement acquisition line. + +**Return type** + +AcquireChannel + +### control\_channel + + + +`control_channel(qubits)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L284-L304 "view source code") + +Return the secondary drive channel for the given qubit + +This is typically utilized for controlling multiqubit interactions. This channel is derived from other channels. + +This is required to be implemented if the backend supports Pulse scheduling. + +**Parameters** + +**qubits** (`Iterable`\[`int`]) – Tuple or list of qubits of the form `(control_qubit, target_qubit)`. + +**Returns** + +The multi qubit control line. + +**Return type** + +List\[ControlChannel] + +### drive\_channel + + + +`drive_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L239-L252 "view source code") + +Return the drive channel for the given qubit. + +This is required to be implemented if the backend supports Pulse scheduling. + +**Returns** + +The Qubit drive channel + +**Return type** + +DriveChannel + +### measure\_channel + + + +`measure_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L254-L267 "view source code") + +Return the measure stimulus channel for the given qubit. + +This is required to be implemented if the backend supports Pulse scheduling. + +**Returns** + +The Qubit measurement stimulus line + +**Return type** + +MeasureChannel + +### qubit\_properties + + + +`qubit_properties(qubit)` + +Return QubitProperties for a given qubit. + +If there are no defined or the backend doesn’t support querying these details this method does not need to be implemented. + +**Parameters** + +**qubit** (`Union`\[`int`, `List`\[`int`]]) – The qubit to get the `QubitProperties` object for. This can be a single integer for 1 qubit or a list of qubits and a list of `QubitProperties` objects will be returned in the same order + +**Return type** + +`Union`\[`QubitProperties`, `List`\[`QubitProperties`]] + +**Returns** + +The `QubitProperties` object for the specified qubit. If a list of qubits is provided a list will be returned. If properties are missing for a qubit this can be `None`. + +**Raises** + +**NotImplementedError** – if the backend doesn’t support querying the qubit properties + +### run + + + +`run(run_input, **options)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L306-L365 "view source code") + +Run on the fake backend using a simulator. + +This method runs circuit jobs (an individual or a list of QuantumCircuit ) and pulse jobs (an individual or a list of Schedule or ScheduleBlock) using BasicAer simulator/ BasicSimulator or Aer simulator and returns a `Job` object. + +If qiskit-aer is installed, jobs will be run using AerSimulator with noise model of the fake backend. Otherwise, jobs will be run using BasicAer simulator/ BasicSimulator simulator without noise. + +Currently noisy simulation of a pulse job is not supported yet in FakeBackendV2. + +**Parameters** + +* **run\_input** (*QuantumCircuit or Schedule or ScheduleBlock or list*) – An individual or a list of `QuantumCircuit`, `ScheduleBlock`, or `Schedule` objects to run on the backend. +* **options** – Any kwarg options to pass to the backend for running the config. If a key is also present in the options attribute/object then the expectation is that the value specified will be used instead of what’s set in the options object. + +**Returns** + +The job object for the run + +**Return type** + +Job + +**Raises** + +**QiskitError** – If a pulse job is supplied and qiskit-aer is not installed. + +### set\_options + + + +`set_options(**fields)` + +Set the options fields for the backend + +This method is used to update the options of a backend. If you need to change any of the options prior to running just pass in the kwarg with the new value for the options. + +**Parameters** + +**fields** – The fields to update the options + +**Raises** + +**AttributeError** – If the field passed in is not part of the options + diff --git a/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeGuadalupe.md b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeGuadalupe.md new file mode 100644 index 00000000000..6f3f9192fec --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeGuadalupe.md @@ -0,0 +1,185 @@ +--- +title: FakeGuadalupe +description: API reference for qiskit_ibm_runtime.fake_provider.FakeGuadalupe +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.fake_provider.FakeGuadalupe +--- + +# FakeGuadalupe + + + +`FakeGuadalupe` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/backends/guadalupe/fake_guadalupe.py#L32-L39 "view source code") + +A fake 16 qubit backend. + +FakeBackend initializer. + +**Parameters** + +* **configuration** (*BackendConfiguration*) – backend configuration +* **time\_alive** (*int*) – time to wait before returning result + +## Attributes + + + +### backend\_name + +`= 'fake_guadalupe'` + + + +### conf\_filename + +`= 'conf_guadalupe.json'` + + + +### defs\_filename + +`= 'defs_guadalupe.json'` + + + +### dirname + +`= '/home/runner/work/qiskit-ibm-runtime/qiskit-ibm-runtime/qiskit_ibm_runtime/fake_provider/backends/guadalupe'` + + + +### options + +Return the options for the backend + +The options of a backend are the dynamic parameters defining how the backend is used. These are used to control the [`run()`](#qiskit_ibm_runtime.fake_provider.FakeGuadalupe.run "qiskit_ibm_runtime.fake_provider.FakeGuadalupe.run") method. + + + +### props\_filename + +`= 'props_guadalupe.json'` + + + +### version + +`= 1` + +## Methods + +### configuration + + + +`configuration()` + +Return the backend configuration. + +**Returns** + +the configuration for the backend. + +**Return type** + +BackendConfiguration + +### defaults + + + +`defaults()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_pulse_backend.py#L29-L33 "view source code") + +Returns a snapshot of device defaults + +**Return type** + +`PulseDefaults` + +### name + + + +`name()` + +Return the backend name. + +**Returns** + +the name of the backend. + +**Return type** + +str + +### properties + + + +`properties()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_qasm_backend.py#L44-L48 "view source code") + +Returns a snapshot of device properties + +**Return type** + +`BackendProperties` + +### provider + + + +`provider()` + +Return the backend Provider. + +**Returns** + +the Provider responsible for the backend. + +**Return type** + +Provider + +### run + + + +`run(run_input, **kwargs)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L545-L574 "view source code") + +Main job in simulator + +### set\_options + + + +`set_options(**fields)` + +Set the options fields for the backend + +This method is used to update the options of a backend. If you need to change any of the options prior to running just pass in the kwarg with the new value for the options. + +**Parameters** + +**fields** – The fields to update the options + +**Raises** + +**AttributeError** – If the field passed in is not part of the options + +### status + + + +`status()` + +Return the backend status. + +**Returns** + +the status of the backend. + +**Return type** + +BackendStatus + diff --git a/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeGuadalupeV2.md b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeGuadalupeV2.md new file mode 100644 index 00000000000..72644571f69 --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeGuadalupeV2.md @@ -0,0 +1,377 @@ +--- +title: FakeGuadalupeV2 +description: API reference for qiskit_ibm_runtime.fake_provider.FakeGuadalupeV2 +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.fake_provider.FakeGuadalupeV2 +--- + +# FakeGuadalupeV2 + + + +`FakeGuadalupeV2` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/backends/guadalupe/fake_guadalupe.py#L22-L29 "view source code") + +A fake 16 qubit backend. + +FakeBackendV2 initializer. + +## Attributes + + + +### backend\_name + +`= 'fake_guadalupe'` + + + +### conf\_filename + +`= 'conf_guadalupe.json'` + + + +### coupling\_map + +Return the `CouplingMap` object + + + +### defs\_filename + +`= 'defs_guadalupe.json'` + + + +### dirname + +`= '/home/runner/work/qiskit-ibm-runtime/qiskit-ibm-runtime/qiskit_ibm_runtime/fake_provider/backends/guadalupe'` + + + +### dt + +Return the system time resolution of input signals + +This is required to be implemented if the backend supports Pulse scheduling. + +**Return type** + +`Optional`\[`float`] + +**Returns** + +The input signal timestep in seconds. If the backend doesn’t define `dt`, `None` will be returned. + + + +### dtm + +Return the system time resolution of output signals + +**Return type** + +`float` + +**Returns** + +The output signal timestep in seconds. + + + +### instruction\_durations + +Return the `InstructionDurations` object. + + + +### instruction\_schedule\_map + +Return the `InstructionScheduleMap` for the instructions defined in this backend’s target. + + + +### instructions + +A list of Instruction tuples on the backend of the form `(instruction, (qubits)` + +**Return type** + +`List`\[`Tuple`\[`Instruction`, `Tuple`\[`int`]]] + + + +### max\_circuits + +**Return type** + +`None` + + + +### meas\_map + +Return the grouping of measurements which are multiplexed This is required to be implemented if the backend supports Pulse scheduling. + +**Return type** + +`List`\[`List`\[`int`]] + +**Returns** + +The grouping of measurements which are multiplexed + + + +### num\_qubits + +Return the number of qubits the backend has. + +**Return type** + +`int` + + + +### operation\_names + +A list of instruction names that the backend supports. + +**Return type** + +`List`\[`str`] + + + +### operations + +A list of `Instruction` instances that the backend supports. + +**Return type** + +`List`\[`Instruction`] + + + +### options + +Return the options for the backend + +The options of a backend are the dynamic parameters defining how the backend is used. These are used to control the [`run()`](#qiskit_ibm_runtime.fake_provider.FakeGuadalupeV2.run "qiskit_ibm_runtime.fake_provider.FakeGuadalupeV2.run") method. + + + +### props\_filename + +`= 'props_guadalupe.json'` + + + +### provider + +Return the backend Provider. + +**Returns** + +the Provider responsible for the backend. + +**Return type** + +Provider + + + +### target + +A `qiskit.transpiler.Target` object for the backend. + +**Return type** + +Target + + + +### version + +`= 2` + + + +### name + +Name of the backend. + + + +### description + +Optional human-readable description. + + + +### online\_date + +Date that the backend came online. + + + +### backend\_version + +Version of the backend being provided. This is not the same as `BackendV2.version`, which is the version of the `Backend` abstract interface. + +## Methods + +### acquire\_channel + + + +`acquire_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L269-L282 "view source code") + +Return the acquisition channel for the given qubit. + +This is required to be implemented if the backend supports Pulse scheduling. + +**Returns** + +The Qubit measurement acquisition line. + +**Return type** + +AcquireChannel + +### control\_channel + + + +`control_channel(qubits)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L284-L304 "view source code") + +Return the secondary drive channel for the given qubit + +This is typically utilized for controlling multiqubit interactions. This channel is derived from other channels. + +This is required to be implemented if the backend supports Pulse scheduling. + +**Parameters** + +**qubits** (`Iterable`\[`int`]) – Tuple or list of qubits of the form `(control_qubit, target_qubit)`. + +**Returns** + +The multi qubit control line. + +**Return type** + +List\[ControlChannel] + +### drive\_channel + + + +`drive_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L239-L252 "view source code") + +Return the drive channel for the given qubit. + +This is required to be implemented if the backend supports Pulse scheduling. + +**Returns** + +The Qubit drive channel + +**Return type** + +DriveChannel + +### measure\_channel + + + +`measure_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L254-L267 "view source code") + +Return the measure stimulus channel for the given qubit. + +This is required to be implemented if the backend supports Pulse scheduling. + +**Returns** + +The Qubit measurement stimulus line + +**Return type** + +MeasureChannel + +### qubit\_properties + + + +`qubit_properties(qubit)` + +Return QubitProperties for a given qubit. + +If there are no defined or the backend doesn’t support querying these details this method does not need to be implemented. + +**Parameters** + +**qubit** (`Union`\[`int`, `List`\[`int`]]) – The qubit to get the `QubitProperties` object for. This can be a single integer for 1 qubit or a list of qubits and a list of `QubitProperties` objects will be returned in the same order + +**Return type** + +`Union`\[`QubitProperties`, `List`\[`QubitProperties`]] + +**Returns** + +The `QubitProperties` object for the specified qubit. If a list of qubits is provided a list will be returned. If properties are missing for a qubit this can be `None`. + +**Raises** + +**NotImplementedError** – if the backend doesn’t support querying the qubit properties + +### run + + + +`run(run_input, **options)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L306-L365 "view source code") + +Run on the fake backend using a simulator. + +This method runs circuit jobs (an individual or a list of QuantumCircuit ) and pulse jobs (an individual or a list of Schedule or ScheduleBlock) using BasicAer simulator/ BasicSimulator or Aer simulator and returns a `Job` object. + +If qiskit-aer is installed, jobs will be run using AerSimulator with noise model of the fake backend. Otherwise, jobs will be run using BasicAer simulator/ BasicSimulator simulator without noise. + +Currently noisy simulation of a pulse job is not supported yet in FakeBackendV2. + +**Parameters** + +* **run\_input** (*QuantumCircuit or Schedule or ScheduleBlock or list*) – An individual or a list of `QuantumCircuit`, `ScheduleBlock`, or `Schedule` objects to run on the backend. +* **options** – Any kwarg options to pass to the backend for running the config. If a key is also present in the options attribute/object then the expectation is that the value specified will be used instead of what’s set in the options object. + +**Returns** + +The job object for the run + +**Return type** + +Job + +**Raises** + +**QiskitError** – If a pulse job is supplied and qiskit-aer is not installed. + +### set\_options + + + +`set_options(**fields)` + +Set the options fields for the backend + +This method is used to update the options of a backend. If you need to change any of the options prior to running just pass in the kwarg with the new value for the options. + +**Parameters** + +**fields** – The fields to update the options + +**Raises** + +**AttributeError** – If the field passed in is not part of the options + diff --git a/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeHanoi.md b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeHanoi.md new file mode 100644 index 00000000000..39ddd171695 --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeHanoi.md @@ -0,0 +1,185 @@ +--- +title: FakeHanoi +description: API reference for qiskit_ibm_runtime.fake_provider.FakeHanoi +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.fake_provider.FakeHanoi +--- + +# FakeHanoi + + + +`FakeHanoi` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/backends/hanoi/fake_hanoi.py#L31-L38 "view source code") + +A fake 27 qubit backend. + +FakeBackend initializer. + +**Parameters** + +* **configuration** (*BackendConfiguration*) – backend configuration +* **time\_alive** (*int*) – time to wait before returning result + +## Attributes + + + +### backend\_name + +`= 'fake_hanoi'` + + + +### conf\_filename + +`= 'conf_hanoi.json'` + + + +### defs\_filename + +`= 'defs_hanoi.json'` + + + +### dirname + +`= '/home/runner/work/qiskit-ibm-runtime/qiskit-ibm-runtime/qiskit_ibm_runtime/fake_provider/backends/hanoi'` + + + +### options + +Return the options for the backend + +The options of a backend are the dynamic parameters defining how the backend is used. These are used to control the [`run()`](#qiskit_ibm_runtime.fake_provider.FakeHanoi.run "qiskit_ibm_runtime.fake_provider.FakeHanoi.run") method. + + + +### props\_filename + +`= 'props_hanoi.json'` + + + +### version + +`= 1` + +## Methods + +### configuration + + + +`configuration()` + +Return the backend configuration. + +**Returns** + +the configuration for the backend. + +**Return type** + +BackendConfiguration + +### defaults + + + +`defaults()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_pulse_backend.py#L29-L33 "view source code") + +Returns a snapshot of device defaults + +**Return type** + +`PulseDefaults` + +### name + + + +`name()` + +Return the backend name. + +**Returns** + +the name of the backend. + +**Return type** + +str + +### properties + + + +`properties()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_qasm_backend.py#L44-L48 "view source code") + +Returns a snapshot of device properties + +**Return type** + +`BackendProperties` + +### provider + + + +`provider()` + +Return the backend Provider. + +**Returns** + +the Provider responsible for the backend. + +**Return type** + +Provider + +### run + + + +`run(run_input, **kwargs)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L545-L574 "view source code") + +Main job in simulator + +### set\_options + + + +`set_options(**fields)` + +Set the options fields for the backend + +This method is used to update the options of a backend. If you need to change any of the options prior to running just pass in the kwarg with the new value for the options. + +**Parameters** + +**fields** – The fields to update the options + +**Raises** + +**AttributeError** – If the field passed in is not part of the options + +### status + + + +`status()` + +Return the backend status. + +**Returns** + +the status of the backend. + +**Return type** + +BackendStatus + diff --git a/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeHanoiV2.md b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeHanoiV2.md new file mode 100644 index 00000000000..fa54d705a5f --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeHanoiV2.md @@ -0,0 +1,377 @@ +--- +title: FakeHanoiV2 +description: API reference for qiskit_ibm_runtime.fake_provider.FakeHanoiV2 +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.fake_provider.FakeHanoiV2 +--- + +# FakeHanoiV2 + + + +`FakeHanoiV2` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/backends/hanoi/fake_hanoi.py#L21-L28 "view source code") + +A fake 27 qubit backend. + +FakeBackendV2 initializer. + +## Attributes + + + +### backend\_name + +`= 'fake_hanoi'` + + + +### conf\_filename + +`= 'conf_hanoi.json'` + + + +### coupling\_map + +Return the `CouplingMap` object + + + +### defs\_filename + +`= 'defs_hanoi.json'` + + + +### dirname + +`= '/home/runner/work/qiskit-ibm-runtime/qiskit-ibm-runtime/qiskit_ibm_runtime/fake_provider/backends/hanoi'` + + + +### dt + +Return the system time resolution of input signals + +This is required to be implemented if the backend supports Pulse scheduling. + +**Return type** + +`Optional`\[`float`] + +**Returns** + +The input signal timestep in seconds. If the backend doesn’t define `dt`, `None` will be returned. + + + +### dtm + +Return the system time resolution of output signals + +**Return type** + +`float` + +**Returns** + +The output signal timestep in seconds. + + + +### instruction\_durations + +Return the `InstructionDurations` object. + + + +### instruction\_schedule\_map + +Return the `InstructionScheduleMap` for the instructions defined in this backend’s target. + + + +### instructions + +A list of Instruction tuples on the backend of the form `(instruction, (qubits)` + +**Return type** + +`List`\[`Tuple`\[`Instruction`, `Tuple`\[`int`]]] + + + +### max\_circuits + +**Return type** + +`None` + + + +### meas\_map + +Return the grouping of measurements which are multiplexed This is required to be implemented if the backend supports Pulse scheduling. + +**Return type** + +`List`\[`List`\[`int`]] + +**Returns** + +The grouping of measurements which are multiplexed + + + +### num\_qubits + +Return the number of qubits the backend has. + +**Return type** + +`int` + + + +### operation\_names + +A list of instruction names that the backend supports. + +**Return type** + +`List`\[`str`] + + + +### operations + +A list of `Instruction` instances that the backend supports. + +**Return type** + +`List`\[`Instruction`] + + + +### options + +Return the options for the backend + +The options of a backend are the dynamic parameters defining how the backend is used. These are used to control the [`run()`](#qiskit_ibm_runtime.fake_provider.FakeHanoiV2.run "qiskit_ibm_runtime.fake_provider.FakeHanoiV2.run") method. + + + +### props\_filename + +`= 'props_hanoi.json'` + + + +### provider + +Return the backend Provider. + +**Returns** + +the Provider responsible for the backend. + +**Return type** + +Provider + + + +### target + +A `qiskit.transpiler.Target` object for the backend. + +**Return type** + +Target + + + +### version + +`= 2` + + + +### name + +Name of the backend. + + + +### description + +Optional human-readable description. + + + +### online\_date + +Date that the backend came online. + + + +### backend\_version + +Version of the backend being provided. This is not the same as `BackendV2.version`, which is the version of the `Backend` abstract interface. + +## Methods + +### acquire\_channel + + + +`acquire_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L269-L282 "view source code") + +Return the acquisition channel for the given qubit. + +This is required to be implemented if the backend supports Pulse scheduling. + +**Returns** + +The Qubit measurement acquisition line. + +**Return type** + +AcquireChannel + +### control\_channel + + + +`control_channel(qubits)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L284-L304 "view source code") + +Return the secondary drive channel for the given qubit + +This is typically utilized for controlling multiqubit interactions. This channel is derived from other channels. + +This is required to be implemented if the backend supports Pulse scheduling. + +**Parameters** + +**qubits** (`Iterable`\[`int`]) – Tuple or list of qubits of the form `(control_qubit, target_qubit)`. + +**Returns** + +The multi qubit control line. + +**Return type** + +List\[ControlChannel] + +### drive\_channel + + + +`drive_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L239-L252 "view source code") + +Return the drive channel for the given qubit. + +This is required to be implemented if the backend supports Pulse scheduling. + +**Returns** + +The Qubit drive channel + +**Return type** + +DriveChannel + +### measure\_channel + + + +`measure_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L254-L267 "view source code") + +Return the measure stimulus channel for the given qubit. + +This is required to be implemented if the backend supports Pulse scheduling. + +**Returns** + +The Qubit measurement stimulus line + +**Return type** + +MeasureChannel + +### qubit\_properties + + + +`qubit_properties(qubit)` + +Return QubitProperties for a given qubit. + +If there are no defined or the backend doesn’t support querying these details this method does not need to be implemented. + +**Parameters** + +**qubit** (`Union`\[`int`, `List`\[`int`]]) – The qubit to get the `QubitProperties` object for. This can be a single integer for 1 qubit or a list of qubits and a list of `QubitProperties` objects will be returned in the same order + +**Return type** + +`Union`\[`QubitProperties`, `List`\[`QubitProperties`]] + +**Returns** + +The `QubitProperties` object for the specified qubit. If a list of qubits is provided a list will be returned. If properties are missing for a qubit this can be `None`. + +**Raises** + +**NotImplementedError** – if the backend doesn’t support querying the qubit properties + +### run + + + +`run(run_input, **options)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L306-L365 "view source code") + +Run on the fake backend using a simulator. + +This method runs circuit jobs (an individual or a list of QuantumCircuit ) and pulse jobs (an individual or a list of Schedule or ScheduleBlock) using BasicAer simulator/ BasicSimulator or Aer simulator and returns a `Job` object. + +If qiskit-aer is installed, jobs will be run using AerSimulator with noise model of the fake backend. Otherwise, jobs will be run using BasicAer simulator/ BasicSimulator simulator without noise. + +Currently noisy simulation of a pulse job is not supported yet in FakeBackendV2. + +**Parameters** + +* **run\_input** (*QuantumCircuit or Schedule or ScheduleBlock or list*) – An individual or a list of `QuantumCircuit`, `ScheduleBlock`, or `Schedule` objects to run on the backend. +* **options** – Any kwarg options to pass to the backend for running the config. If a key is also present in the options attribute/object then the expectation is that the value specified will be used instead of what’s set in the options object. + +**Returns** + +The job object for the run + +**Return type** + +Job + +**Raises** + +**QiskitError** – If a pulse job is supplied and qiskit-aer is not installed. + +### set\_options + + + +`set_options(**fields)` + +Set the options fields for the backend + +This method is used to update the options of a backend. If you need to change any of the options prior to running just pass in the kwarg with the new value for the options. + +**Parameters** + +**fields** – The fields to update the options + +**Raises** + +**AttributeError** – If the field passed in is not part of the options + diff --git a/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeJakarta.md b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeJakarta.md new file mode 100644 index 00000000000..f4938e2b9aa --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeJakarta.md @@ -0,0 +1,185 @@ +--- +title: FakeJakarta +description: API reference for qiskit_ibm_runtime.fake_provider.FakeJakarta +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.fake_provider.FakeJakarta +--- + +# FakeJakarta + + + +`FakeJakarta` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/backends/jakarta/fake_jakarta.py#L31-L38 "view source code") + +A fake 7 qubit backend. + +FakeBackend initializer. + +**Parameters** + +* **configuration** (*BackendConfiguration*) – backend configuration +* **time\_alive** (*int*) – time to wait before returning result + +## Attributes + + + +### backend\_name + +`= 'fake_jakarta'` + + + +### conf\_filename + +`= 'conf_jakarta.json'` + + + +### defs\_filename + +`= 'defs_jakarta.json'` + + + +### dirname + +`= '/home/runner/work/qiskit-ibm-runtime/qiskit-ibm-runtime/qiskit_ibm_runtime/fake_provider/backends/jakarta'` + + + +### options + +Return the options for the backend + +The options of a backend are the dynamic parameters defining how the backend is used. These are used to control the [`run()`](#qiskit_ibm_runtime.fake_provider.FakeJakarta.run "qiskit_ibm_runtime.fake_provider.FakeJakarta.run") method. + + + +### props\_filename + +`= 'props_jakarta.json'` + + + +### version + +`= 1` + +## Methods + +### configuration + + + +`configuration()` + +Return the backend configuration. + +**Returns** + +the configuration for the backend. + +**Return type** + +BackendConfiguration + +### defaults + + + +`defaults()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_pulse_backend.py#L29-L33 "view source code") + +Returns a snapshot of device defaults + +**Return type** + +`PulseDefaults` + +### name + + + +`name()` + +Return the backend name. + +**Returns** + +the name of the backend. + +**Return type** + +str + +### properties + + + +`properties()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_qasm_backend.py#L44-L48 "view source code") + +Returns a snapshot of device properties + +**Return type** + +`BackendProperties` + +### provider + + + +`provider()` + +Return the backend Provider. + +**Returns** + +the Provider responsible for the backend. + +**Return type** + +Provider + +### run + + + +`run(run_input, **kwargs)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L545-L574 "view source code") + +Main job in simulator + +### set\_options + + + +`set_options(**fields)` + +Set the options fields for the backend + +This method is used to update the options of a backend. If you need to change any of the options prior to running just pass in the kwarg with the new value for the options. + +**Parameters** + +**fields** – The fields to update the options + +**Raises** + +**AttributeError** – If the field passed in is not part of the options + +### status + + + +`status()` + +Return the backend status. + +**Returns** + +the status of the backend. + +**Return type** + +BackendStatus + diff --git a/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeJakartaV2.md b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeJakartaV2.md new file mode 100644 index 00000000000..1d3cbbab0a7 --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeJakartaV2.md @@ -0,0 +1,377 @@ +--- +title: FakeJakartaV2 +description: API reference for qiskit_ibm_runtime.fake_provider.FakeJakartaV2 +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.fake_provider.FakeJakartaV2 +--- + +# FakeJakartaV2 + + + +`FakeJakartaV2` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/backends/jakarta/fake_jakarta.py#L21-L28 "view source code") + +A fake 7 qubit V2 backend. + +FakeBackendV2 initializer. + +## Attributes + + + +### backend\_name + +`= 'fake_jakarta'` + + + +### conf\_filename + +`= 'conf_jakarta.json'` + + + +### coupling\_map + +Return the `CouplingMap` object + + + +### defs\_filename + +`= 'defs_jakarta.json'` + + + +### dirname + +`= '/home/runner/work/qiskit-ibm-runtime/qiskit-ibm-runtime/qiskit_ibm_runtime/fake_provider/backends/jakarta'` + + + +### dt + +Return the system time resolution of input signals + +This is required to be implemented if the backend supports Pulse scheduling. + +**Return type** + +`Optional`\[`float`] + +**Returns** + +The input signal timestep in seconds. If the backend doesn’t define `dt`, `None` will be returned. + + + +### dtm + +Return the system time resolution of output signals + +**Return type** + +`float` + +**Returns** + +The output signal timestep in seconds. + + + +### instruction\_durations + +Return the `InstructionDurations` object. + + + +### instruction\_schedule\_map + +Return the `InstructionScheduleMap` for the instructions defined in this backend’s target. + + + +### instructions + +A list of Instruction tuples on the backend of the form `(instruction, (qubits)` + +**Return type** + +`List`\[`Tuple`\[`Instruction`, `Tuple`\[`int`]]] + + + +### max\_circuits + +**Return type** + +`None` + + + +### meas\_map + +Return the grouping of measurements which are multiplexed This is required to be implemented if the backend supports Pulse scheduling. + +**Return type** + +`List`\[`List`\[`int`]] + +**Returns** + +The grouping of measurements which are multiplexed + + + +### num\_qubits + +Return the number of qubits the backend has. + +**Return type** + +`int` + + + +### operation\_names + +A list of instruction names that the backend supports. + +**Return type** + +`List`\[`str`] + + + +### operations + +A list of `Instruction` instances that the backend supports. + +**Return type** + +`List`\[`Instruction`] + + + +### options + +Return the options for the backend + +The options of a backend are the dynamic parameters defining how the backend is used. These are used to control the [`run()`](#qiskit_ibm_runtime.fake_provider.FakeJakartaV2.run "qiskit_ibm_runtime.fake_provider.FakeJakartaV2.run") method. + + + +### props\_filename + +`= 'props_jakarta.json'` + + + +### provider + +Return the backend Provider. + +**Returns** + +the Provider responsible for the backend. + +**Return type** + +Provider + + + +### target + +A `qiskit.transpiler.Target` object for the backend. + +**Return type** + +Target + + + +### version + +`= 2` + + + +### name + +Name of the backend. + + + +### description + +Optional human-readable description. + + + +### online\_date + +Date that the backend came online. + + + +### backend\_version + +Version of the backend being provided. This is not the same as `BackendV2.version`, which is the version of the `Backend` abstract interface. + +## Methods + +### acquire\_channel + + + +`acquire_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L269-L282 "view source code") + +Return the acquisition channel for the given qubit. + +This is required to be implemented if the backend supports Pulse scheduling. + +**Returns** + +The Qubit measurement acquisition line. + +**Return type** + +AcquireChannel + +### control\_channel + + + +`control_channel(qubits)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L284-L304 "view source code") + +Return the secondary drive channel for the given qubit + +This is typically utilized for controlling multiqubit interactions. This channel is derived from other channels. + +This is required to be implemented if the backend supports Pulse scheduling. + +**Parameters** + +**qubits** (`Iterable`\[`int`]) – Tuple or list of qubits of the form `(control_qubit, target_qubit)`. + +**Returns** + +The multi qubit control line. + +**Return type** + +List\[ControlChannel] + +### drive\_channel + + + +`drive_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L239-L252 "view source code") + +Return the drive channel for the given qubit. + +This is required to be implemented if the backend supports Pulse scheduling. + +**Returns** + +The Qubit drive channel + +**Return type** + +DriveChannel + +### measure\_channel + + + +`measure_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L254-L267 "view source code") + +Return the measure stimulus channel for the given qubit. + +This is required to be implemented if the backend supports Pulse scheduling. + +**Returns** + +The Qubit measurement stimulus line + +**Return type** + +MeasureChannel + +### qubit\_properties + + + +`qubit_properties(qubit)` + +Return QubitProperties for a given qubit. + +If there are no defined or the backend doesn’t support querying these details this method does not need to be implemented. + +**Parameters** + +**qubit** (`Union`\[`int`, `List`\[`int`]]) – The qubit to get the `QubitProperties` object for. This can be a single integer for 1 qubit or a list of qubits and a list of `QubitProperties` objects will be returned in the same order + +**Return type** + +`Union`\[`QubitProperties`, `List`\[`QubitProperties`]] + +**Returns** + +The `QubitProperties` object for the specified qubit. If a list of qubits is provided a list will be returned. If properties are missing for a qubit this can be `None`. + +**Raises** + +**NotImplementedError** – if the backend doesn’t support querying the qubit properties + +### run + + + +`run(run_input, **options)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L306-L365 "view source code") + +Run on the fake backend using a simulator. + +This method runs circuit jobs (an individual or a list of QuantumCircuit ) and pulse jobs (an individual or a list of Schedule or ScheduleBlock) using BasicAer simulator/ BasicSimulator or Aer simulator and returns a `Job` object. + +If qiskit-aer is installed, jobs will be run using AerSimulator with noise model of the fake backend. Otherwise, jobs will be run using BasicAer simulator/ BasicSimulator simulator without noise. + +Currently noisy simulation of a pulse job is not supported yet in FakeBackendV2. + +**Parameters** + +* **run\_input** (*QuantumCircuit or Schedule or ScheduleBlock or list*) – An individual or a list of `QuantumCircuit`, `ScheduleBlock`, or `Schedule` objects to run on the backend. +* **options** – Any kwarg options to pass to the backend for running the config. If a key is also present in the options attribute/object then the expectation is that the value specified will be used instead of what’s set in the options object. + +**Returns** + +The job object for the run + +**Return type** + +Job + +**Raises** + +**QiskitError** – If a pulse job is supplied and qiskit-aer is not installed. + +### set\_options + + + +`set_options(**fields)` + +Set the options fields for the backend + +This method is used to update the options of a backend. If you need to change any of the options prior to running just pass in the kwarg with the new value for the options. + +**Parameters** + +**fields** – The fields to update the options + +**Raises** + +**AttributeError** – If the field passed in is not part of the options + diff --git a/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeJohannesburg.md b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeJohannesburg.md new file mode 100644 index 00000000000..8c18616c24d --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeJohannesburg.md @@ -0,0 +1,177 @@ +--- +title: FakeJohannesburg +description: API reference for qiskit_ibm_runtime.fake_provider.FakeJohannesburg +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.fake_provider.FakeJohannesburg +--- + +# FakeJohannesburg + + + +`FakeJohannesburg` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/backends/johannesburg/fake_johannesburg.py#L41-L58 "view source code") + +A fake Johannesburg backend. + +```python +00 ↔ 01 ↔ 02 ↔ 03 ↔ 04 + ↕ ↕ +05 ↔ 06 ↔ 07 ↔ 08 ↔ 09 + ↕ ↕ ↕ +10 ↔ 11 ↔ 12 ↔ 13 ↔ 14 + ↕ ↕ +15 ↔ 16 ↔ 17 ↔ 18 ↔ 19 +``` + +FakeBackend initializer. + +**Parameters** + +* **configuration** (*BackendConfiguration*) – backend configuration +* **time\_alive** (*int*) – time to wait before returning result + +## Attributes + + + +### backend\_name + +`= 'fake_johannesburg'` + + + +### conf\_filename + +`= 'conf_johannesburg.json'` + + + +### dirname + +`= '/home/runner/work/qiskit-ibm-runtime/qiskit-ibm-runtime/qiskit_ibm_runtime/fake_provider/backends/johannesburg'` + + + +### options + +Return the options for the backend + +The options of a backend are the dynamic parameters defining how the backend is used. These are used to control the [`run()`](#qiskit_ibm_runtime.fake_provider.FakeJohannesburg.run "qiskit_ibm_runtime.fake_provider.FakeJohannesburg.run") method. + + + +### props\_filename + +`= 'props_johannesburg.json'` + + + +### version + +`= 1` + +## Methods + +### configuration + + + +`configuration()` + +Return the backend configuration. + +**Returns** + +the configuration for the backend. + +**Return type** + +BackendConfiguration + +### name + + + +`name()` + +Return the backend name. + +**Returns** + +the name of the backend. + +**Return type** + +str + +### properties + + + +`properties()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_qasm_backend.py#L44-L48 "view source code") + +Returns a snapshot of device properties + +**Return type** + +`BackendProperties` + +### provider + + + +`provider()` + +Return the backend Provider. + +**Returns** + +the Provider responsible for the backend. + +**Return type** + +Provider + +### run + + + +`run(run_input, **kwargs)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L545-L574 "view source code") + +Main job in simulator + +### set\_options + + + +`set_options(**fields)` + +Set the options fields for the backend + +This method is used to update the options of a backend. If you need to change any of the options prior to running just pass in the kwarg with the new value for the options. + +**Parameters** + +**fields** – The fields to update the options + +**Raises** + +**AttributeError** – If the field passed in is not part of the options + +### status + + + +`status()` + +Return the backend status. + +**Returns** + +the status of the backend. + +**Return type** + +BackendStatus + diff --git a/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeJohannesburgV2.md b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeJohannesburgV2.md new file mode 100644 index 00000000000..1dca3811fe0 --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeJohannesburgV2.md @@ -0,0 +1,387 @@ +--- +title: FakeJohannesburgV2 +description: API reference for qiskit_ibm_runtime.fake_provider.FakeJohannesburgV2 +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.fake_provider.FakeJohannesburgV2 +--- + +# FakeJohannesburgV2 + + + +`FakeJohannesburgV2` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/backends/johannesburg/fake_johannesburg.py#L21-L38 "view source code") + +A fake Johannesburg V2 backend. + +```python +00 ↔ 01 ↔ 02 ↔ 03 ↔ 04 + ↕ ↕ +05 ↔ 06 ↔ 07 ↔ 08 ↔ 09 + ↕ ↕ ↕ +10 ↔ 11 ↔ 12 ↔ 13 ↔ 14 + ↕ ↕ +15 ↔ 16 ↔ 17 ↔ 18 ↔ 19 +``` + +FakeBackendV2 initializer. + +## Attributes + + + +### backend\_name + +`= 'fake_johannesburg'` + + + +### conf\_filename + +`= 'conf_johannesburg.json'` + + + +### coupling\_map + +Return the `CouplingMap` object + + + +### defs\_filename + +`= None` + + + +### dirname + +`= '/home/runner/work/qiskit-ibm-runtime/qiskit-ibm-runtime/qiskit_ibm_runtime/fake_provider/backends/johannesburg'` + + + +### dt + +Return the system time resolution of input signals + +This is required to be implemented if the backend supports Pulse scheduling. + +**Return type** + +`Optional`\[`float`] + +**Returns** + +The input signal timestep in seconds. If the backend doesn’t define `dt`, `None` will be returned. + + + +### dtm + +Return the system time resolution of output signals + +**Return type** + +`float` + +**Returns** + +The output signal timestep in seconds. + + + +### instruction\_durations + +Return the `InstructionDurations` object. + + + +### instruction\_schedule\_map + +Return the `InstructionScheduleMap` for the instructions defined in this backend’s target. + + + +### instructions + +A list of Instruction tuples on the backend of the form `(instruction, (qubits)` + +**Return type** + +`List`\[`Tuple`\[`Instruction`, `Tuple`\[`int`]]] + + + +### max\_circuits + +**Return type** + +`None` + + + +### meas\_map + +Return the grouping of measurements which are multiplexed This is required to be implemented if the backend supports Pulse scheduling. + +**Return type** + +`List`\[`List`\[`int`]] + +**Returns** + +The grouping of measurements which are multiplexed + + + +### num\_qubits + +Return the number of qubits the backend has. + +**Return type** + +`int` + + + +### operation\_names + +A list of instruction names that the backend supports. + +**Return type** + +`List`\[`str`] + + + +### operations + +A list of `Instruction` instances that the backend supports. + +**Return type** + +`List`\[`Instruction`] + + + +### options + +Return the options for the backend + +The options of a backend are the dynamic parameters defining how the backend is used. These are used to control the [`run()`](#qiskit_ibm_runtime.fake_provider.FakeJohannesburgV2.run "qiskit_ibm_runtime.fake_provider.FakeJohannesburgV2.run") method. + + + +### props\_filename + +`= 'props_johannesburg.json'` + + + +### provider + +Return the backend Provider. + +**Returns** + +the Provider responsible for the backend. + +**Return type** + +Provider + + + +### target + +A `qiskit.transpiler.Target` object for the backend. + +**Return type** + +Target + + + +### version + +`= 2` + + + +### name + +Name of the backend. + + + +### description + +Optional human-readable description. + + + +### online\_date + +Date that the backend came online. + + + +### backend\_version + +Version of the backend being provided. This is not the same as `BackendV2.version`, which is the version of the `Backend` abstract interface. + +## Methods + +### acquire\_channel + + + +`acquire_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L269-L282 "view source code") + +Return the acquisition channel for the given qubit. + +This is required to be implemented if the backend supports Pulse scheduling. + +**Returns** + +The Qubit measurement acquisition line. + +**Return type** + +AcquireChannel + +### control\_channel + + + +`control_channel(qubits)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L284-L304 "view source code") + +Return the secondary drive channel for the given qubit + +This is typically utilized for controlling multiqubit interactions. This channel is derived from other channels. + +This is required to be implemented if the backend supports Pulse scheduling. + +**Parameters** + +**qubits** (`Iterable`\[`int`]) – Tuple or list of qubits of the form `(control_qubit, target_qubit)`. + +**Returns** + +The multi qubit control line. + +**Return type** + +List\[ControlChannel] + +### drive\_channel + + + +`drive_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L239-L252 "view source code") + +Return the drive channel for the given qubit. + +This is required to be implemented if the backend supports Pulse scheduling. + +**Returns** + +The Qubit drive channel + +**Return type** + +DriveChannel + +### measure\_channel + + + +`measure_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L254-L267 "view source code") + +Return the measure stimulus channel for the given qubit. + +This is required to be implemented if the backend supports Pulse scheduling. + +**Returns** + +The Qubit measurement stimulus line + +**Return type** + +MeasureChannel + +### qubit\_properties + + + +`qubit_properties(qubit)` + +Return QubitProperties for a given qubit. + +If there are no defined or the backend doesn’t support querying these details this method does not need to be implemented. + +**Parameters** + +**qubit** (`Union`\[`int`, `List`\[`int`]]) – The qubit to get the `QubitProperties` object for. This can be a single integer for 1 qubit or a list of qubits and a list of `QubitProperties` objects will be returned in the same order + +**Return type** + +`Union`\[`QubitProperties`, `List`\[`QubitProperties`]] + +**Returns** + +The `QubitProperties` object for the specified qubit. If a list of qubits is provided a list will be returned. If properties are missing for a qubit this can be `None`. + +**Raises** + +**NotImplementedError** – if the backend doesn’t support querying the qubit properties + +### run + + + +`run(run_input, **options)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L306-L365 "view source code") + +Run on the fake backend using a simulator. + +This method runs circuit jobs (an individual or a list of QuantumCircuit ) and pulse jobs (an individual or a list of Schedule or ScheduleBlock) using BasicAer simulator/ BasicSimulator or Aer simulator and returns a `Job` object. + +If qiskit-aer is installed, jobs will be run using AerSimulator with noise model of the fake backend. Otherwise, jobs will be run using BasicAer simulator/ BasicSimulator simulator without noise. + +Currently noisy simulation of a pulse job is not supported yet in FakeBackendV2. + +**Parameters** + +* **run\_input** (*QuantumCircuit or Schedule or ScheduleBlock or list*) – An individual or a list of `QuantumCircuit`, `ScheduleBlock`, or `Schedule` objects to run on the backend. +* **options** – Any kwarg options to pass to the backend for running the config. If a key is also present in the options attribute/object then the expectation is that the value specified will be used instead of what’s set in the options object. + +**Returns** + +The job object for the run + +**Return type** + +Job + +**Raises** + +**QiskitError** – If a pulse job is supplied and qiskit-aer is not installed. + +### set\_options + + + +`set_options(**fields)` + +Set the options fields for the backend + +This method is used to update the options of a backend. If you need to change any of the options prior to running just pass in the kwarg with the new value for the options. + +**Parameters** + +**fields** – The fields to update the options + +**Raises** + +**AttributeError** – If the field passed in is not part of the options + diff --git a/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeKolkata.md b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeKolkata.md new file mode 100644 index 00000000000..73b259a39dc --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeKolkata.md @@ -0,0 +1,185 @@ +--- +title: FakeKolkata +description: API reference for qiskit_ibm_runtime.fake_provider.FakeKolkata +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.fake_provider.FakeKolkata +--- + +# FakeKolkata + + + +`FakeKolkata` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/backends/kolkata/fake_kolkata.py#L31-L38 "view source code") + +A fake 27 qubit backend. + +FakeBackend initializer. + +**Parameters** + +* **configuration** (*BackendConfiguration*) – backend configuration +* **time\_alive** (*int*) – time to wait before returning result + +## Attributes + + + +### backend\_name + +`= 'fake_kolkata'` + + + +### conf\_filename + +`= 'conf_kolkata.json'` + + + +### defs\_filename + +`= 'defs_kolkata.json'` + + + +### dirname + +`= '/home/runner/work/qiskit-ibm-runtime/qiskit-ibm-runtime/qiskit_ibm_runtime/fake_provider/backends/kolkata'` + + + +### options + +Return the options for the backend + +The options of a backend are the dynamic parameters defining how the backend is used. These are used to control the [`run()`](#qiskit_ibm_runtime.fake_provider.FakeKolkata.run "qiskit_ibm_runtime.fake_provider.FakeKolkata.run") method. + + + +### props\_filename + +`= 'props_kolkata.json'` + + + +### version + +`= 1` + +## Methods + +### configuration + + + +`configuration()` + +Return the backend configuration. + +**Returns** + +the configuration for the backend. + +**Return type** + +BackendConfiguration + +### defaults + + + +`defaults()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_pulse_backend.py#L29-L33 "view source code") + +Returns a snapshot of device defaults + +**Return type** + +`PulseDefaults` + +### name + + + +`name()` + +Return the backend name. + +**Returns** + +the name of the backend. + +**Return type** + +str + +### properties + + + +`properties()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_qasm_backend.py#L44-L48 "view source code") + +Returns a snapshot of device properties + +**Return type** + +`BackendProperties` + +### provider + + + +`provider()` + +Return the backend Provider. + +**Returns** + +the Provider responsible for the backend. + +**Return type** + +Provider + +### run + + + +`run(run_input, **kwargs)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L545-L574 "view source code") + +Main job in simulator + +### set\_options + + + +`set_options(**fields)` + +Set the options fields for the backend + +This method is used to update the options of a backend. If you need to change any of the options prior to running just pass in the kwarg with the new value for the options. + +**Parameters** + +**fields** – The fields to update the options + +**Raises** + +**AttributeError** – If the field passed in is not part of the options + +### status + + + +`status()` + +Return the backend status. + +**Returns** + +the status of the backend. + +**Return type** + +BackendStatus + diff --git a/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeKolkataV2.md b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeKolkataV2.md new file mode 100644 index 00000000000..ee3920cf960 --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeKolkataV2.md @@ -0,0 +1,377 @@ +--- +title: FakeKolkataV2 +description: API reference for qiskit_ibm_runtime.fake_provider.FakeKolkataV2 +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.fake_provider.FakeKolkataV2 +--- + +# FakeKolkataV2 + + + +`FakeKolkataV2` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/backends/kolkata/fake_kolkata.py#L21-L28 "view source code") + +A fake 27 qubit backend. + +FakeBackendV2 initializer. + +## Attributes + + + +### backend\_name + +`= 'fake_kolkata'` + + + +### conf\_filename + +`= 'conf_kolkata.json'` + + + +### coupling\_map + +Return the `CouplingMap` object + + + +### defs\_filename + +`= 'defs_kolkata.json'` + + + +### dirname + +`= '/home/runner/work/qiskit-ibm-runtime/qiskit-ibm-runtime/qiskit_ibm_runtime/fake_provider/backends/kolkata'` + + + +### dt + +Return the system time resolution of input signals + +This is required to be implemented if the backend supports Pulse scheduling. + +**Return type** + +`Optional`\[`float`] + +**Returns** + +The input signal timestep in seconds. If the backend doesn’t define `dt`, `None` will be returned. + + + +### dtm + +Return the system time resolution of output signals + +**Return type** + +`float` + +**Returns** + +The output signal timestep in seconds. + + + +### instruction\_durations + +Return the `InstructionDurations` object. + + + +### instruction\_schedule\_map + +Return the `InstructionScheduleMap` for the instructions defined in this backend’s target. + + + +### instructions + +A list of Instruction tuples on the backend of the form `(instruction, (qubits)` + +**Return type** + +`List`\[`Tuple`\[`Instruction`, `Tuple`\[`int`]]] + + + +### max\_circuits + +**Return type** + +`None` + + + +### meas\_map + +Return the grouping of measurements which are multiplexed This is required to be implemented if the backend supports Pulse scheduling. + +**Return type** + +`List`\[`List`\[`int`]] + +**Returns** + +The grouping of measurements which are multiplexed + + + +### num\_qubits + +Return the number of qubits the backend has. + +**Return type** + +`int` + + + +### operation\_names + +A list of instruction names that the backend supports. + +**Return type** + +`List`\[`str`] + + + +### operations + +A list of `Instruction` instances that the backend supports. + +**Return type** + +`List`\[`Instruction`] + + + +### options + +Return the options for the backend + +The options of a backend are the dynamic parameters defining how the backend is used. These are used to control the [`run()`](#qiskit_ibm_runtime.fake_provider.FakeKolkataV2.run "qiskit_ibm_runtime.fake_provider.FakeKolkataV2.run") method. + + + +### props\_filename + +`= 'props_kolkata.json'` + + + +### provider + +Return the backend Provider. + +**Returns** + +the Provider responsible for the backend. + +**Return type** + +Provider + + + +### target + +A `qiskit.transpiler.Target` object for the backend. + +**Return type** + +Target + + + +### version + +`= 2` + + + +### name + +Name of the backend. + + + +### description + +Optional human-readable description. + + + +### online\_date + +Date that the backend came online. + + + +### backend\_version + +Version of the backend being provided. This is not the same as `BackendV2.version`, which is the version of the `Backend` abstract interface. + +## Methods + +### acquire\_channel + + + +`acquire_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L269-L282 "view source code") + +Return the acquisition channel for the given qubit. + +This is required to be implemented if the backend supports Pulse scheduling. + +**Returns** + +The Qubit measurement acquisition line. + +**Return type** + +AcquireChannel + +### control\_channel + + + +`control_channel(qubits)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L284-L304 "view source code") + +Return the secondary drive channel for the given qubit + +This is typically utilized for controlling multiqubit interactions. This channel is derived from other channels. + +This is required to be implemented if the backend supports Pulse scheduling. + +**Parameters** + +**qubits** (`Iterable`\[`int`]) – Tuple or list of qubits of the form `(control_qubit, target_qubit)`. + +**Returns** + +The multi qubit control line. + +**Return type** + +List\[ControlChannel] + +### drive\_channel + + + +`drive_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L239-L252 "view source code") + +Return the drive channel for the given qubit. + +This is required to be implemented if the backend supports Pulse scheduling. + +**Returns** + +The Qubit drive channel + +**Return type** + +DriveChannel + +### measure\_channel + + + +`measure_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L254-L267 "view source code") + +Return the measure stimulus channel for the given qubit. + +This is required to be implemented if the backend supports Pulse scheduling. + +**Returns** + +The Qubit measurement stimulus line + +**Return type** + +MeasureChannel + +### qubit\_properties + + + +`qubit_properties(qubit)` + +Return QubitProperties for a given qubit. + +If there are no defined or the backend doesn’t support querying these details this method does not need to be implemented. + +**Parameters** + +**qubit** (`Union`\[`int`, `List`\[`int`]]) – The qubit to get the `QubitProperties` object for. This can be a single integer for 1 qubit or a list of qubits and a list of `QubitProperties` objects will be returned in the same order + +**Return type** + +`Union`\[`QubitProperties`, `List`\[`QubitProperties`]] + +**Returns** + +The `QubitProperties` object for the specified qubit. If a list of qubits is provided a list will be returned. If properties are missing for a qubit this can be `None`. + +**Raises** + +**NotImplementedError** – if the backend doesn’t support querying the qubit properties + +### run + + + +`run(run_input, **options)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L306-L365 "view source code") + +Run on the fake backend using a simulator. + +This method runs circuit jobs (an individual or a list of QuantumCircuit ) and pulse jobs (an individual or a list of Schedule or ScheduleBlock) using BasicAer simulator/ BasicSimulator or Aer simulator and returns a `Job` object. + +If qiskit-aer is installed, jobs will be run using AerSimulator with noise model of the fake backend. Otherwise, jobs will be run using BasicAer simulator/ BasicSimulator simulator without noise. + +Currently noisy simulation of a pulse job is not supported yet in FakeBackendV2. + +**Parameters** + +* **run\_input** (*QuantumCircuit or Schedule or ScheduleBlock or list*) – An individual or a list of `QuantumCircuit`, `ScheduleBlock`, or `Schedule` objects to run on the backend. +* **options** – Any kwarg options to pass to the backend for running the config. If a key is also present in the options attribute/object then the expectation is that the value specified will be used instead of what’s set in the options object. + +**Returns** + +The job object for the run + +**Return type** + +Job + +**Raises** + +**QiskitError** – If a pulse job is supplied and qiskit-aer is not installed. + +### set\_options + + + +`set_options(**fields)` + +Set the options fields for the backend + +This method is used to update the options of a backend. If you need to change any of the options prior to running just pass in the kwarg with the new value for the options. + +**Parameters** + +**fields** – The fields to update the options + +**Raises** + +**AttributeError** – If the field passed in is not part of the options + diff --git a/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeLagos.md b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeLagos.md new file mode 100644 index 00000000000..18966c99e3e --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeLagos.md @@ -0,0 +1,185 @@ +--- +title: FakeLagos +description: API reference for qiskit_ibm_runtime.fake_provider.FakeLagos +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.fake_provider.FakeLagos +--- + +# FakeLagos + + + +`FakeLagos` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/backends/lagos/fake_lagos.py#L31-L38 "view source code") + +A fake 7 qubit backend. + +FakeBackend initializer. + +**Parameters** + +* **configuration** (*BackendConfiguration*) – backend configuration +* **time\_alive** (*int*) – time to wait before returning result + +## Attributes + + + +### backend\_name + +`= 'fake_lagos'` + + + +### conf\_filename + +`= 'conf_lagos.json'` + + + +### defs\_filename + +`= 'defs_lagos.json'` + + + +### dirname + +`= '/home/runner/work/qiskit-ibm-runtime/qiskit-ibm-runtime/qiskit_ibm_runtime/fake_provider/backends/lagos'` + + + +### options + +Return the options for the backend + +The options of a backend are the dynamic parameters defining how the backend is used. These are used to control the [`run()`](#qiskit_ibm_runtime.fake_provider.FakeLagos.run "qiskit_ibm_runtime.fake_provider.FakeLagos.run") method. + + + +### props\_filename + +`= 'props_lagos.json'` + + + +### version + +`= 1` + +## Methods + +### configuration + + + +`configuration()` + +Return the backend configuration. + +**Returns** + +the configuration for the backend. + +**Return type** + +BackendConfiguration + +### defaults + + + +`defaults()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_pulse_backend.py#L29-L33 "view source code") + +Returns a snapshot of device defaults + +**Return type** + +`PulseDefaults` + +### name + + + +`name()` + +Return the backend name. + +**Returns** + +the name of the backend. + +**Return type** + +str + +### properties + + + +`properties()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_qasm_backend.py#L44-L48 "view source code") + +Returns a snapshot of device properties + +**Return type** + +`BackendProperties` + +### provider + + + +`provider()` + +Return the backend Provider. + +**Returns** + +the Provider responsible for the backend. + +**Return type** + +Provider + +### run + + + +`run(run_input, **kwargs)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L545-L574 "view source code") + +Main job in simulator + +### set\_options + + + +`set_options(**fields)` + +Set the options fields for the backend + +This method is used to update the options of a backend. If you need to change any of the options prior to running just pass in the kwarg with the new value for the options. + +**Parameters** + +**fields** – The fields to update the options + +**Raises** + +**AttributeError** – If the field passed in is not part of the options + +### status + + + +`status()` + +Return the backend status. + +**Returns** + +the status of the backend. + +**Return type** + +BackendStatus + diff --git a/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeLagosV2.md b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeLagosV2.md new file mode 100644 index 00000000000..c921bb30bd5 --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeLagosV2.md @@ -0,0 +1,377 @@ +--- +title: FakeLagosV2 +description: API reference for qiskit_ibm_runtime.fake_provider.FakeLagosV2 +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.fake_provider.FakeLagosV2 +--- + +# FakeLagosV2 + + + +`FakeLagosV2` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/backends/lagos/fake_lagos.py#L21-L28 "view source code") + +A fake 7 qubit backend. + +FakeBackendV2 initializer. + +## Attributes + + + +### backend\_name + +`= 'fake_lagos'` + + + +### conf\_filename + +`= 'conf_lagos.json'` + + + +### coupling\_map + +Return the `CouplingMap` object + + + +### defs\_filename + +`= 'defs_lagos.json'` + + + +### dirname + +`= '/home/runner/work/qiskit-ibm-runtime/qiskit-ibm-runtime/qiskit_ibm_runtime/fake_provider/backends/lagos'` + + + +### dt + +Return the system time resolution of input signals + +This is required to be implemented if the backend supports Pulse scheduling. + +**Return type** + +`Optional`\[`float`] + +**Returns** + +The input signal timestep in seconds. If the backend doesn’t define `dt`, `None` will be returned. + + + +### dtm + +Return the system time resolution of output signals + +**Return type** + +`float` + +**Returns** + +The output signal timestep in seconds. + + + +### instruction\_durations + +Return the `InstructionDurations` object. + + + +### instruction\_schedule\_map + +Return the `InstructionScheduleMap` for the instructions defined in this backend’s target. + + + +### instructions + +A list of Instruction tuples on the backend of the form `(instruction, (qubits)` + +**Return type** + +`List`\[`Tuple`\[`Instruction`, `Tuple`\[`int`]]] + + + +### max\_circuits + +**Return type** + +`None` + + + +### meas\_map + +Return the grouping of measurements which are multiplexed This is required to be implemented if the backend supports Pulse scheduling. + +**Return type** + +`List`\[`List`\[`int`]] + +**Returns** + +The grouping of measurements which are multiplexed + + + +### num\_qubits + +Return the number of qubits the backend has. + +**Return type** + +`int` + + + +### operation\_names + +A list of instruction names that the backend supports. + +**Return type** + +`List`\[`str`] + + + +### operations + +A list of `Instruction` instances that the backend supports. + +**Return type** + +`List`\[`Instruction`] + + + +### options + +Return the options for the backend + +The options of a backend are the dynamic parameters defining how the backend is used. These are used to control the [`run()`](#qiskit_ibm_runtime.fake_provider.FakeLagosV2.run "qiskit_ibm_runtime.fake_provider.FakeLagosV2.run") method. + + + +### props\_filename + +`= 'props_lagos.json'` + + + +### provider + +Return the backend Provider. + +**Returns** + +the Provider responsible for the backend. + +**Return type** + +Provider + + + +### target + +A `qiskit.transpiler.Target` object for the backend. + +**Return type** + +Target + + + +### version + +`= 2` + + + +### name + +Name of the backend. + + + +### description + +Optional human-readable description. + + + +### online\_date + +Date that the backend came online. + + + +### backend\_version + +Version of the backend being provided. This is not the same as `BackendV2.version`, which is the version of the `Backend` abstract interface. + +## Methods + +### acquire\_channel + + + +`acquire_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L269-L282 "view source code") + +Return the acquisition channel for the given qubit. + +This is required to be implemented if the backend supports Pulse scheduling. + +**Returns** + +The Qubit measurement acquisition line. + +**Return type** + +AcquireChannel + +### control\_channel + + + +`control_channel(qubits)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L284-L304 "view source code") + +Return the secondary drive channel for the given qubit + +This is typically utilized for controlling multiqubit interactions. This channel is derived from other channels. + +This is required to be implemented if the backend supports Pulse scheduling. + +**Parameters** + +**qubits** (`Iterable`\[`int`]) – Tuple or list of qubits of the form `(control_qubit, target_qubit)`. + +**Returns** + +The multi qubit control line. + +**Return type** + +List\[ControlChannel] + +### drive\_channel + + + +`drive_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L239-L252 "view source code") + +Return the drive channel for the given qubit. + +This is required to be implemented if the backend supports Pulse scheduling. + +**Returns** + +The Qubit drive channel + +**Return type** + +DriveChannel + +### measure\_channel + + + +`measure_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L254-L267 "view source code") + +Return the measure stimulus channel for the given qubit. + +This is required to be implemented if the backend supports Pulse scheduling. + +**Returns** + +The Qubit measurement stimulus line + +**Return type** + +MeasureChannel + +### qubit\_properties + + + +`qubit_properties(qubit)` + +Return QubitProperties for a given qubit. + +If there are no defined or the backend doesn’t support querying these details this method does not need to be implemented. + +**Parameters** + +**qubit** (`Union`\[`int`, `List`\[`int`]]) – The qubit to get the `QubitProperties` object for. This can be a single integer for 1 qubit or a list of qubits and a list of `QubitProperties` objects will be returned in the same order + +**Return type** + +`Union`\[`QubitProperties`, `List`\[`QubitProperties`]] + +**Returns** + +The `QubitProperties` object for the specified qubit. If a list of qubits is provided a list will be returned. If properties are missing for a qubit this can be `None`. + +**Raises** + +**NotImplementedError** – if the backend doesn’t support querying the qubit properties + +### run + + + +`run(run_input, **options)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L306-L365 "view source code") + +Run on the fake backend using a simulator. + +This method runs circuit jobs (an individual or a list of QuantumCircuit ) and pulse jobs (an individual or a list of Schedule or ScheduleBlock) using BasicAer simulator/ BasicSimulator or Aer simulator and returns a `Job` object. + +If qiskit-aer is installed, jobs will be run using AerSimulator with noise model of the fake backend. Otherwise, jobs will be run using BasicAer simulator/ BasicSimulator simulator without noise. + +Currently noisy simulation of a pulse job is not supported yet in FakeBackendV2. + +**Parameters** + +* **run\_input** (*QuantumCircuit or Schedule or ScheduleBlock or list*) – An individual or a list of `QuantumCircuit`, `ScheduleBlock`, or `Schedule` objects to run on the backend. +* **options** – Any kwarg options to pass to the backend for running the config. If a key is also present in the options attribute/object then the expectation is that the value specified will be used instead of what’s set in the options object. + +**Returns** + +The job object for the run + +**Return type** + +Job + +**Raises** + +**QiskitError** – If a pulse job is supplied and qiskit-aer is not installed. + +### set\_options + + + +`set_options(**fields)` + +Set the options fields for the backend + +This method is used to update the options of a backend. If you need to change any of the options prior to running just pass in the kwarg with the new value for the options. + +**Parameters** + +**fields** – The fields to update the options + +**Raises** + +**AttributeError** – If the field passed in is not part of the options + diff --git a/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeLima.md b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeLima.md new file mode 100644 index 00000000000..7c0cf92b666 --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeLima.md @@ -0,0 +1,185 @@ +--- +title: FakeLima +description: API reference for qiskit_ibm_runtime.fake_provider.FakeLima +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.fake_provider.FakeLima +--- + +# FakeLima + + + +`FakeLima` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/backends/lima/fake_lima.py#L31-L38 "view source code") + +A fake 5 qubit backend. + +FakeBackend initializer. + +**Parameters** + +* **configuration** (*BackendConfiguration*) – backend configuration +* **time\_alive** (*int*) – time to wait before returning result + +## Attributes + + + +### backend\_name + +`= 'fake_lima'` + + + +### conf\_filename + +`= 'conf_lima.json'` + + + +### defs\_filename + +`= 'defs_lima.json'` + + + +### dirname + +`= '/home/runner/work/qiskit-ibm-runtime/qiskit-ibm-runtime/qiskit_ibm_runtime/fake_provider/backends/lima'` + + + +### options + +Return the options for the backend + +The options of a backend are the dynamic parameters defining how the backend is used. These are used to control the [`run()`](#qiskit_ibm_runtime.fake_provider.FakeLima.run "qiskit_ibm_runtime.fake_provider.FakeLima.run") method. + + + +### props\_filename + +`= 'props_lima.json'` + + + +### version + +`= 1` + +## Methods + +### configuration + + + +`configuration()` + +Return the backend configuration. + +**Returns** + +the configuration for the backend. + +**Return type** + +BackendConfiguration + +### defaults + + + +`defaults()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_pulse_backend.py#L29-L33 "view source code") + +Returns a snapshot of device defaults + +**Return type** + +`PulseDefaults` + +### name + + + +`name()` + +Return the backend name. + +**Returns** + +the name of the backend. + +**Return type** + +str + +### properties + + + +`properties()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_qasm_backend.py#L44-L48 "view source code") + +Returns a snapshot of device properties + +**Return type** + +`BackendProperties` + +### provider + + + +`provider()` + +Return the backend Provider. + +**Returns** + +the Provider responsible for the backend. + +**Return type** + +Provider + +### run + + + +`run(run_input, **kwargs)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L545-L574 "view source code") + +Main job in simulator + +### set\_options + + + +`set_options(**fields)` + +Set the options fields for the backend + +This method is used to update the options of a backend. If you need to change any of the options prior to running just pass in the kwarg with the new value for the options. + +**Parameters** + +**fields** – The fields to update the options + +**Raises** + +**AttributeError** – If the field passed in is not part of the options + +### status + + + +`status()` + +Return the backend status. + +**Returns** + +the status of the backend. + +**Return type** + +BackendStatus + diff --git a/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeLimaV2.md b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeLimaV2.md new file mode 100644 index 00000000000..5a20d6a5ee2 --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeLimaV2.md @@ -0,0 +1,377 @@ +--- +title: FakeLimaV2 +description: API reference for qiskit_ibm_runtime.fake_provider.FakeLimaV2 +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.fake_provider.FakeLimaV2 +--- + +# FakeLimaV2 + + + +`FakeLimaV2` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/backends/lima/fake_lima.py#L21-L28 "view source code") + +A fake 5 qubit backend. + +FakeBackendV2 initializer. + +## Attributes + + + +### backend\_name + +`= 'fake_lima'` + + + +### conf\_filename + +`= 'conf_lima.json'` + + + +### coupling\_map + +Return the `CouplingMap` object + + + +### defs\_filename + +`= 'defs_lima.json'` + + + +### dirname + +`= '/home/runner/work/qiskit-ibm-runtime/qiskit-ibm-runtime/qiskit_ibm_runtime/fake_provider/backends/lima'` + + + +### dt + +Return the system time resolution of input signals + +This is required to be implemented if the backend supports Pulse scheduling. + +**Return type** + +`Optional`\[`float`] + +**Returns** + +The input signal timestep in seconds. If the backend doesn’t define `dt`, `None` will be returned. + + + +### dtm + +Return the system time resolution of output signals + +**Return type** + +`float` + +**Returns** + +The output signal timestep in seconds. + + + +### instruction\_durations + +Return the `InstructionDurations` object. + + + +### instruction\_schedule\_map + +Return the `InstructionScheduleMap` for the instructions defined in this backend’s target. + + + +### instructions + +A list of Instruction tuples on the backend of the form `(instruction, (qubits)` + +**Return type** + +`List`\[`Tuple`\[`Instruction`, `Tuple`\[`int`]]] + + + +### max\_circuits + +**Return type** + +`None` + + + +### meas\_map + +Return the grouping of measurements which are multiplexed This is required to be implemented if the backend supports Pulse scheduling. + +**Return type** + +`List`\[`List`\[`int`]] + +**Returns** + +The grouping of measurements which are multiplexed + + + +### num\_qubits + +Return the number of qubits the backend has. + +**Return type** + +`int` + + + +### operation\_names + +A list of instruction names that the backend supports. + +**Return type** + +`List`\[`str`] + + + +### operations + +A list of `Instruction` instances that the backend supports. + +**Return type** + +`List`\[`Instruction`] + + + +### options + +Return the options for the backend + +The options of a backend are the dynamic parameters defining how the backend is used. These are used to control the [`run()`](#qiskit_ibm_runtime.fake_provider.FakeLimaV2.run "qiskit_ibm_runtime.fake_provider.FakeLimaV2.run") method. + + + +### props\_filename + +`= 'props_lima.json'` + + + +### provider + +Return the backend Provider. + +**Returns** + +the Provider responsible for the backend. + +**Return type** + +Provider + + + +### target + +A `qiskit.transpiler.Target` object for the backend. + +**Return type** + +Target + + + +### version + +`= 2` + + + +### name + +Name of the backend. + + + +### description + +Optional human-readable description. + + + +### online\_date + +Date that the backend came online. + + + +### backend\_version + +Version of the backend being provided. This is not the same as `BackendV2.version`, which is the version of the `Backend` abstract interface. + +## Methods + +### acquire\_channel + + + +`acquire_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L269-L282 "view source code") + +Return the acquisition channel for the given qubit. + +This is required to be implemented if the backend supports Pulse scheduling. + +**Returns** + +The Qubit measurement acquisition line. + +**Return type** + +AcquireChannel + +### control\_channel + + + +`control_channel(qubits)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L284-L304 "view source code") + +Return the secondary drive channel for the given qubit + +This is typically utilized for controlling multiqubit interactions. This channel is derived from other channels. + +This is required to be implemented if the backend supports Pulse scheduling. + +**Parameters** + +**qubits** (`Iterable`\[`int`]) – Tuple or list of qubits of the form `(control_qubit, target_qubit)`. + +**Returns** + +The multi qubit control line. + +**Return type** + +List\[ControlChannel] + +### drive\_channel + + + +`drive_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L239-L252 "view source code") + +Return the drive channel for the given qubit. + +This is required to be implemented if the backend supports Pulse scheduling. + +**Returns** + +The Qubit drive channel + +**Return type** + +DriveChannel + +### measure\_channel + + + +`measure_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L254-L267 "view source code") + +Return the measure stimulus channel for the given qubit. + +This is required to be implemented if the backend supports Pulse scheduling. + +**Returns** + +The Qubit measurement stimulus line + +**Return type** + +MeasureChannel + +### qubit\_properties + + + +`qubit_properties(qubit)` + +Return QubitProperties for a given qubit. + +If there are no defined or the backend doesn’t support querying these details this method does not need to be implemented. + +**Parameters** + +**qubit** (`Union`\[`int`, `List`\[`int`]]) – The qubit to get the `QubitProperties` object for. This can be a single integer for 1 qubit or a list of qubits and a list of `QubitProperties` objects will be returned in the same order + +**Return type** + +`Union`\[`QubitProperties`, `List`\[`QubitProperties`]] + +**Returns** + +The `QubitProperties` object for the specified qubit. If a list of qubits is provided a list will be returned. If properties are missing for a qubit this can be `None`. + +**Raises** + +**NotImplementedError** – if the backend doesn’t support querying the qubit properties + +### run + + + +`run(run_input, **options)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L306-L365 "view source code") + +Run on the fake backend using a simulator. + +This method runs circuit jobs (an individual or a list of QuantumCircuit ) and pulse jobs (an individual or a list of Schedule or ScheduleBlock) using BasicAer simulator/ BasicSimulator or Aer simulator and returns a `Job` object. + +If qiskit-aer is installed, jobs will be run using AerSimulator with noise model of the fake backend. Otherwise, jobs will be run using BasicAer simulator/ BasicSimulator simulator without noise. + +Currently noisy simulation of a pulse job is not supported yet in FakeBackendV2. + +**Parameters** + +* **run\_input** (*QuantumCircuit or Schedule or ScheduleBlock or list*) – An individual or a list of `QuantumCircuit`, `ScheduleBlock`, or `Schedule` objects to run on the backend. +* **options** – Any kwarg options to pass to the backend for running the config. If a key is also present in the options attribute/object then the expectation is that the value specified will be used instead of what’s set in the options object. + +**Returns** + +The job object for the run + +**Return type** + +Job + +**Raises** + +**QiskitError** – If a pulse job is supplied and qiskit-aer is not installed. + +### set\_options + + + +`set_options(**fields)` + +Set the options fields for the backend + +This method is used to update the options of a backend. If you need to change any of the options prior to running just pass in the kwarg with the new value for the options. + +**Parameters** + +**fields** – The fields to update the options + +**Raises** + +**AttributeError** – If the field passed in is not part of the options + diff --git a/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeLondon.md b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeLondon.md new file mode 100644 index 00000000000..edf701d6351 --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeLondon.md @@ -0,0 +1,175 @@ +--- +title: FakeLondon +description: API reference for qiskit_ibm_runtime.fake_provider.FakeLondon +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.fake_provider.FakeLondon +--- + +# FakeLondon + + + +`FakeLondon` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/backends/london/fake_london.py#L39-L54 "view source code") + +A fake 5 qubit backend. + +```python +0 ↔ 1 ↔ 2 + ↕ + 3 + ↕ + 4 +``` + +FakeBackend initializer. + +**Parameters** + +* **configuration** (*BackendConfiguration*) – backend configuration +* **time\_alive** (*int*) – time to wait before returning result + +## Attributes + + + +### backend\_name + +`= 'fake_london'` + + + +### conf\_filename + +`= 'conf_london.json'` + + + +### dirname + +`= '/home/runner/work/qiskit-ibm-runtime/qiskit-ibm-runtime/qiskit_ibm_runtime/fake_provider/backends/london'` + + + +### options + +Return the options for the backend + +The options of a backend are the dynamic parameters defining how the backend is used. These are used to control the [`run()`](#qiskit_ibm_runtime.fake_provider.FakeLondon.run "qiskit_ibm_runtime.fake_provider.FakeLondon.run") method. + + + +### props\_filename + +`= 'props_london.json'` + + + +### version + +`= 1` + +## Methods + +### configuration + + + +`configuration()` + +Return the backend configuration. + +**Returns** + +the configuration for the backend. + +**Return type** + +BackendConfiguration + +### name + + + +`name()` + +Return the backend name. + +**Returns** + +the name of the backend. + +**Return type** + +str + +### properties + + + +`properties()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_qasm_backend.py#L44-L48 "view source code") + +Returns a snapshot of device properties + +**Return type** + +`BackendProperties` + +### provider + + + +`provider()` + +Return the backend Provider. + +**Returns** + +the Provider responsible for the backend. + +**Return type** + +Provider + +### run + + + +`run(run_input, **kwargs)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L545-L574 "view source code") + +Main job in simulator + +### set\_options + + + +`set_options(**fields)` + +Set the options fields for the backend + +This method is used to update the options of a backend. If you need to change any of the options prior to running just pass in the kwarg with the new value for the options. + +**Parameters** + +**fields** – The fields to update the options + +**Raises** + +**AttributeError** – If the field passed in is not part of the options + +### status + + + +`status()` + +Return the backend status. + +**Returns** + +the status of the backend. + +**Return type** + +BackendStatus + diff --git a/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeLondonV2.md b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeLondonV2.md new file mode 100644 index 00000000000..2a77cc4075c --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeLondonV2.md @@ -0,0 +1,385 @@ +--- +title: FakeLondonV2 +description: API reference for qiskit_ibm_runtime.fake_provider.FakeLondonV2 +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.fake_provider.FakeLondonV2 +--- + +# FakeLondonV2 + + + +`FakeLondonV2` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/backends/london/fake_london.py#L21-L36 "view source code") + +A fake 5 qubit backend. + +```python +0 ↔ 1 ↔ 2 + ↕ + 3 + ↕ + 4 +``` + +FakeBackendV2 initializer. + +## Attributes + + + +### backend\_name + +`= 'fake_london'` + + + +### conf\_filename + +`= 'conf_london.json'` + + + +### coupling\_map + +Return the `CouplingMap` object + + + +### defs\_filename + +`= None` + + + +### dirname + +`= '/home/runner/work/qiskit-ibm-runtime/qiskit-ibm-runtime/qiskit_ibm_runtime/fake_provider/backends/london'` + + + +### dt + +Return the system time resolution of input signals + +This is required to be implemented if the backend supports Pulse scheduling. + +**Return type** + +`Optional`\[`float`] + +**Returns** + +The input signal timestep in seconds. If the backend doesn’t define `dt`, `None` will be returned. + + + +### dtm + +Return the system time resolution of output signals + +**Return type** + +`float` + +**Returns** + +The output signal timestep in seconds. + + + +### instruction\_durations + +Return the `InstructionDurations` object. + + + +### instruction\_schedule\_map + +Return the `InstructionScheduleMap` for the instructions defined in this backend’s target. + + + +### instructions + +A list of Instruction tuples on the backend of the form `(instruction, (qubits)` + +**Return type** + +`List`\[`Tuple`\[`Instruction`, `Tuple`\[`int`]]] + + + +### max\_circuits + +**Return type** + +`None` + + + +### meas\_map + +Return the grouping of measurements which are multiplexed This is required to be implemented if the backend supports Pulse scheduling. + +**Return type** + +`List`\[`List`\[`int`]] + +**Returns** + +The grouping of measurements which are multiplexed + + + +### num\_qubits + +Return the number of qubits the backend has. + +**Return type** + +`int` + + + +### operation\_names + +A list of instruction names that the backend supports. + +**Return type** + +`List`\[`str`] + + + +### operations + +A list of `Instruction` instances that the backend supports. + +**Return type** + +`List`\[`Instruction`] + + + +### options + +Return the options for the backend + +The options of a backend are the dynamic parameters defining how the backend is used. These are used to control the [`run()`](#qiskit_ibm_runtime.fake_provider.FakeLondonV2.run "qiskit_ibm_runtime.fake_provider.FakeLondonV2.run") method. + + + +### props\_filename + +`= 'props_london.json'` + + + +### provider + +Return the backend Provider. + +**Returns** + +the Provider responsible for the backend. + +**Return type** + +Provider + + + +### target + +A `qiskit.transpiler.Target` object for the backend. + +**Return type** + +Target + + + +### version + +`= 2` + + + +### name + +Name of the backend. + + + +### description + +Optional human-readable description. + + + +### online\_date + +Date that the backend came online. + + + +### backend\_version + +Version of the backend being provided. This is not the same as `BackendV2.version`, which is the version of the `Backend` abstract interface. + +## Methods + +### acquire\_channel + + + +`acquire_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L269-L282 "view source code") + +Return the acquisition channel for the given qubit. + +This is required to be implemented if the backend supports Pulse scheduling. + +**Returns** + +The Qubit measurement acquisition line. + +**Return type** + +AcquireChannel + +### control\_channel + + + +`control_channel(qubits)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L284-L304 "view source code") + +Return the secondary drive channel for the given qubit + +This is typically utilized for controlling multiqubit interactions. This channel is derived from other channels. + +This is required to be implemented if the backend supports Pulse scheduling. + +**Parameters** + +**qubits** (`Iterable`\[`int`]) – Tuple or list of qubits of the form `(control_qubit, target_qubit)`. + +**Returns** + +The multi qubit control line. + +**Return type** + +List\[ControlChannel] + +### drive\_channel + + + +`drive_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L239-L252 "view source code") + +Return the drive channel for the given qubit. + +This is required to be implemented if the backend supports Pulse scheduling. + +**Returns** + +The Qubit drive channel + +**Return type** + +DriveChannel + +### measure\_channel + + + +`measure_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L254-L267 "view source code") + +Return the measure stimulus channel for the given qubit. + +This is required to be implemented if the backend supports Pulse scheduling. + +**Returns** + +The Qubit measurement stimulus line + +**Return type** + +MeasureChannel + +### qubit\_properties + + + +`qubit_properties(qubit)` + +Return QubitProperties for a given qubit. + +If there are no defined or the backend doesn’t support querying these details this method does not need to be implemented. + +**Parameters** + +**qubit** (`Union`\[`int`, `List`\[`int`]]) – The qubit to get the `QubitProperties` object for. This can be a single integer for 1 qubit or a list of qubits and a list of `QubitProperties` objects will be returned in the same order + +**Return type** + +`Union`\[`QubitProperties`, `List`\[`QubitProperties`]] + +**Returns** + +The `QubitProperties` object for the specified qubit. If a list of qubits is provided a list will be returned. If properties are missing for a qubit this can be `None`. + +**Raises** + +**NotImplementedError** – if the backend doesn’t support querying the qubit properties + +### run + + + +`run(run_input, **options)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L306-L365 "view source code") + +Run on the fake backend using a simulator. + +This method runs circuit jobs (an individual or a list of QuantumCircuit ) and pulse jobs (an individual or a list of Schedule or ScheduleBlock) using BasicAer simulator/ BasicSimulator or Aer simulator and returns a `Job` object. + +If qiskit-aer is installed, jobs will be run using AerSimulator with noise model of the fake backend. Otherwise, jobs will be run using BasicAer simulator/ BasicSimulator simulator without noise. + +Currently noisy simulation of a pulse job is not supported yet in FakeBackendV2. + +**Parameters** + +* **run\_input** (*QuantumCircuit or Schedule or ScheduleBlock or list*) – An individual or a list of `QuantumCircuit`, `ScheduleBlock`, or `Schedule` objects to run on the backend. +* **options** – Any kwarg options to pass to the backend for running the config. If a key is also present in the options attribute/object then the expectation is that the value specified will be used instead of what’s set in the options object. + +**Returns** + +The job object for the run + +**Return type** + +Job + +**Raises** + +**QiskitError** – If a pulse job is supplied and qiskit-aer is not installed. + +### set\_options + + + +`set_options(**fields)` + +Set the options fields for the backend + +This method is used to update the options of a backend. If you need to change any of the options prior to running just pass in the kwarg with the new value for the options. + +**Parameters** + +**fields** – The fields to update the options + +**Raises** + +**AttributeError** – If the field passed in is not part of the options + diff --git a/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeManhattan.md b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeManhattan.md new file mode 100644 index 00000000000..98b213f38ac --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeManhattan.md @@ -0,0 +1,185 @@ +--- +title: FakeManhattan +description: API reference for qiskit_ibm_runtime.fake_provider.FakeManhattan +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.fake_provider.FakeManhattan +--- + +# FakeManhattan + + + +`FakeManhattan` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/backends/manhattan/fake_manhattan.py#L31-L38 "view source code") + +A fake Manhattan backend. + +FakeBackend initializer. + +**Parameters** + +* **configuration** (*BackendConfiguration*) – backend configuration +* **time\_alive** (*int*) – time to wait before returning result + +## Attributes + + + +### backend\_name + +`= 'fake_manhattan'` + + + +### conf\_filename + +`= 'conf_manhattan.json'` + + + +### defs\_filename + +`= 'defs_manhattan.json'` + + + +### dirname + +`= '/home/runner/work/qiskit-ibm-runtime/qiskit-ibm-runtime/qiskit_ibm_runtime/fake_provider/backends/manhattan'` + + + +### options + +Return the options for the backend + +The options of a backend are the dynamic parameters defining how the backend is used. These are used to control the [`run()`](#qiskit_ibm_runtime.fake_provider.FakeManhattan.run "qiskit_ibm_runtime.fake_provider.FakeManhattan.run") method. + + + +### props\_filename + +`= 'props_manhattan.json'` + + + +### version + +`= 1` + +## Methods + +### configuration + + + +`configuration()` + +Return the backend configuration. + +**Returns** + +the configuration for the backend. + +**Return type** + +BackendConfiguration + +### defaults + + + +`defaults()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_pulse_backend.py#L29-L33 "view source code") + +Returns a snapshot of device defaults + +**Return type** + +`PulseDefaults` + +### name + + + +`name()` + +Return the backend name. + +**Returns** + +the name of the backend. + +**Return type** + +str + +### properties + + + +`properties()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_qasm_backend.py#L44-L48 "view source code") + +Returns a snapshot of device properties + +**Return type** + +`BackendProperties` + +### provider + + + +`provider()` + +Return the backend Provider. + +**Returns** + +the Provider responsible for the backend. + +**Return type** + +Provider + +### run + + + +`run(run_input, **kwargs)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L545-L574 "view source code") + +Main job in simulator + +### set\_options + + + +`set_options(**fields)` + +Set the options fields for the backend + +This method is used to update the options of a backend. If you need to change any of the options prior to running just pass in the kwarg with the new value for the options. + +**Parameters** + +**fields** – The fields to update the options + +**Raises** + +**AttributeError** – If the field passed in is not part of the options + +### status + + + +`status()` + +Return the backend status. + +**Returns** + +the status of the backend. + +**Return type** + +BackendStatus + diff --git a/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeManhattanV2.md b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeManhattanV2.md new file mode 100644 index 00000000000..66e3d53d1af --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeManhattanV2.md @@ -0,0 +1,377 @@ +--- +title: FakeManhattanV2 +description: API reference for qiskit_ibm_runtime.fake_provider.FakeManhattanV2 +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.fake_provider.FakeManhattanV2 +--- + +# FakeManhattanV2 + + + +`FakeManhattanV2` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/backends/manhattan/fake_manhattan.py#L21-L28 "view source code") + +A fake Manhattan backend. + +FakeBackendV2 initializer. + +## Attributes + + + +### backend\_name + +`= 'fake_manhattan'` + + + +### conf\_filename + +`= 'conf_manhattan.json'` + + + +### coupling\_map + +Return the `CouplingMap` object + + + +### defs\_filename + +`= 'defs_manhattan.json'` + + + +### dirname + +`= '/home/runner/work/qiskit-ibm-runtime/qiskit-ibm-runtime/qiskit_ibm_runtime/fake_provider/backends/manhattan'` + + + +### dt + +Return the system time resolution of input signals + +This is required to be implemented if the backend supports Pulse scheduling. + +**Return type** + +`Optional`\[`float`] + +**Returns** + +The input signal timestep in seconds. If the backend doesn’t define `dt`, `None` will be returned. + + + +### dtm + +Return the system time resolution of output signals + +**Return type** + +`float` + +**Returns** + +The output signal timestep in seconds. + + + +### instruction\_durations + +Return the `InstructionDurations` object. + + + +### instruction\_schedule\_map + +Return the `InstructionScheduleMap` for the instructions defined in this backend’s target. + + + +### instructions + +A list of Instruction tuples on the backend of the form `(instruction, (qubits)` + +**Return type** + +`List`\[`Tuple`\[`Instruction`, `Tuple`\[`int`]]] + + + +### max\_circuits + +**Return type** + +`None` + + + +### meas\_map + +Return the grouping of measurements which are multiplexed This is required to be implemented if the backend supports Pulse scheduling. + +**Return type** + +`List`\[`List`\[`int`]] + +**Returns** + +The grouping of measurements which are multiplexed + + + +### num\_qubits + +Return the number of qubits the backend has. + +**Return type** + +`int` + + + +### operation\_names + +A list of instruction names that the backend supports. + +**Return type** + +`List`\[`str`] + + + +### operations + +A list of `Instruction` instances that the backend supports. + +**Return type** + +`List`\[`Instruction`] + + + +### options + +Return the options for the backend + +The options of a backend are the dynamic parameters defining how the backend is used. These are used to control the [`run()`](#qiskit_ibm_runtime.fake_provider.FakeManhattanV2.run "qiskit_ibm_runtime.fake_provider.FakeManhattanV2.run") method. + + + +### props\_filename + +`= 'props_manhattan.json'` + + + +### provider + +Return the backend Provider. + +**Returns** + +the Provider responsible for the backend. + +**Return type** + +Provider + + + +### target + +A `qiskit.transpiler.Target` object for the backend. + +**Return type** + +Target + + + +### version + +`= 2` + + + +### name + +Name of the backend. + + + +### description + +Optional human-readable description. + + + +### online\_date + +Date that the backend came online. + + + +### backend\_version + +Version of the backend being provided. This is not the same as `BackendV2.version`, which is the version of the `Backend` abstract interface. + +## Methods + +### acquire\_channel + + + +`acquire_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L269-L282 "view source code") + +Return the acquisition channel for the given qubit. + +This is required to be implemented if the backend supports Pulse scheduling. + +**Returns** + +The Qubit measurement acquisition line. + +**Return type** + +AcquireChannel + +### control\_channel + + + +`control_channel(qubits)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L284-L304 "view source code") + +Return the secondary drive channel for the given qubit + +This is typically utilized for controlling multiqubit interactions. This channel is derived from other channels. + +This is required to be implemented if the backend supports Pulse scheduling. + +**Parameters** + +**qubits** (`Iterable`\[`int`]) – Tuple or list of qubits of the form `(control_qubit, target_qubit)`. + +**Returns** + +The multi qubit control line. + +**Return type** + +List\[ControlChannel] + +### drive\_channel + + + +`drive_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L239-L252 "view source code") + +Return the drive channel for the given qubit. + +This is required to be implemented if the backend supports Pulse scheduling. + +**Returns** + +The Qubit drive channel + +**Return type** + +DriveChannel + +### measure\_channel + + + +`measure_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L254-L267 "view source code") + +Return the measure stimulus channel for the given qubit. + +This is required to be implemented if the backend supports Pulse scheduling. + +**Returns** + +The Qubit measurement stimulus line + +**Return type** + +MeasureChannel + +### qubit\_properties + + + +`qubit_properties(qubit)` + +Return QubitProperties for a given qubit. + +If there are no defined or the backend doesn’t support querying these details this method does not need to be implemented. + +**Parameters** + +**qubit** (`Union`\[`int`, `List`\[`int`]]) – The qubit to get the `QubitProperties` object for. This can be a single integer for 1 qubit or a list of qubits and a list of `QubitProperties` objects will be returned in the same order + +**Return type** + +`Union`\[`QubitProperties`, `List`\[`QubitProperties`]] + +**Returns** + +The `QubitProperties` object for the specified qubit. If a list of qubits is provided a list will be returned. If properties are missing for a qubit this can be `None`. + +**Raises** + +**NotImplementedError** – if the backend doesn’t support querying the qubit properties + +### run + + + +`run(run_input, **options)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L306-L365 "view source code") + +Run on the fake backend using a simulator. + +This method runs circuit jobs (an individual or a list of QuantumCircuit ) and pulse jobs (an individual or a list of Schedule or ScheduleBlock) using BasicAer simulator/ BasicSimulator or Aer simulator and returns a `Job` object. + +If qiskit-aer is installed, jobs will be run using AerSimulator with noise model of the fake backend. Otherwise, jobs will be run using BasicAer simulator/ BasicSimulator simulator without noise. + +Currently noisy simulation of a pulse job is not supported yet in FakeBackendV2. + +**Parameters** + +* **run\_input** (*QuantumCircuit or Schedule or ScheduleBlock or list*) – An individual or a list of `QuantumCircuit`, `ScheduleBlock`, or `Schedule` objects to run on the backend. +* **options** – Any kwarg options to pass to the backend for running the config. If a key is also present in the options attribute/object then the expectation is that the value specified will be used instead of what’s set in the options object. + +**Returns** + +The job object for the run + +**Return type** + +Job + +**Raises** + +**QiskitError** – If a pulse job is supplied and qiskit-aer is not installed. + +### set\_options + + + +`set_options(**fields)` + +Set the options fields for the backend + +This method is used to update the options of a backend. If you need to change any of the options prior to running just pass in the kwarg with the new value for the options. + +**Parameters** + +**fields** – The fields to update the options + +**Raises** + +**AttributeError** – If the field passed in is not part of the options + diff --git a/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeManila.md b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeManila.md new file mode 100644 index 00000000000..74f7f71a6af --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeManila.md @@ -0,0 +1,185 @@ +--- +title: FakeManila +description: API reference for qiskit_ibm_runtime.fake_provider.FakeManila +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.fake_provider.FakeManila +--- + +# FakeManila + + + +`FakeManila` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/backends/manila/fake_manila.py#L31-L38 "view source code") + +A fake 5 qubit backend. + +FakeBackend initializer. + +**Parameters** + +* **configuration** (*BackendConfiguration*) – backend configuration +* **time\_alive** (*int*) – time to wait before returning result + +## Attributes + + + +### backend\_name + +`= 'fake_manila'` + + + +### conf\_filename + +`= 'conf_manila.json'` + + + +### defs\_filename + +`= 'defs_manila.json'` + + + +### dirname + +`= '/home/runner/work/qiskit-ibm-runtime/qiskit-ibm-runtime/qiskit_ibm_runtime/fake_provider/backends/manila'` + + + +### options + +Return the options for the backend + +The options of a backend are the dynamic parameters defining how the backend is used. These are used to control the [`run()`](#qiskit_ibm_runtime.fake_provider.FakeManila.run "qiskit_ibm_runtime.fake_provider.FakeManila.run") method. + + + +### props\_filename + +`= 'props_manila.json'` + + + +### version + +`= 1` + +## Methods + +### configuration + + + +`configuration()` + +Return the backend configuration. + +**Returns** + +the configuration for the backend. + +**Return type** + +BackendConfiguration + +### defaults + + + +`defaults()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_pulse_backend.py#L29-L33 "view source code") + +Returns a snapshot of device defaults + +**Return type** + +`PulseDefaults` + +### name + + + +`name()` + +Return the backend name. + +**Returns** + +the name of the backend. + +**Return type** + +str + +### properties + + + +`properties()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_qasm_backend.py#L44-L48 "view source code") + +Returns a snapshot of device properties + +**Return type** + +`BackendProperties` + +### provider + + + +`provider()` + +Return the backend Provider. + +**Returns** + +the Provider responsible for the backend. + +**Return type** + +Provider + +### run + + + +`run(run_input, **kwargs)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L545-L574 "view source code") + +Main job in simulator + +### set\_options + + + +`set_options(**fields)` + +Set the options fields for the backend + +This method is used to update the options of a backend. If you need to change any of the options prior to running just pass in the kwarg with the new value for the options. + +**Parameters** + +**fields** – The fields to update the options + +**Raises** + +**AttributeError** – If the field passed in is not part of the options + +### status + + + +`status()` + +Return the backend status. + +**Returns** + +the status of the backend. + +**Return type** + +BackendStatus + diff --git a/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeManilaV2.md b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeManilaV2.md new file mode 100644 index 00000000000..3c13a17354d --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeManilaV2.md @@ -0,0 +1,377 @@ +--- +title: FakeManilaV2 +description: API reference for qiskit_ibm_runtime.fake_provider.FakeManilaV2 +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.fake_provider.FakeManilaV2 +--- + +# FakeManilaV2 + + + +`FakeManilaV2` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/backends/manila/fake_manila.py#L21-L28 "view source code") + +A fake 5 qubit backend. + +FakeBackendV2 initializer. + +## Attributes + + + +### backend\_name + +`= 'fake_manila'` + + + +### conf\_filename + +`= 'conf_manila.json'` + + + +### coupling\_map + +Return the `CouplingMap` object + + + +### defs\_filename + +`= 'defs_manila.json'` + + + +### dirname + +`= '/home/runner/work/qiskit-ibm-runtime/qiskit-ibm-runtime/qiskit_ibm_runtime/fake_provider/backends/manila'` + + + +### dt + +Return the system time resolution of input signals + +This is required to be implemented if the backend supports Pulse scheduling. + +**Return type** + +`Optional`\[`float`] + +**Returns** + +The input signal timestep in seconds. If the backend doesn’t define `dt`, `None` will be returned. + + + +### dtm + +Return the system time resolution of output signals + +**Return type** + +`float` + +**Returns** + +The output signal timestep in seconds. + + + +### instruction\_durations + +Return the `InstructionDurations` object. + + + +### instruction\_schedule\_map + +Return the `InstructionScheduleMap` for the instructions defined in this backend’s target. + + + +### instructions + +A list of Instruction tuples on the backend of the form `(instruction, (qubits)` + +**Return type** + +`List`\[`Tuple`\[`Instruction`, `Tuple`\[`int`]]] + + + +### max\_circuits + +**Return type** + +`None` + + + +### meas\_map + +Return the grouping of measurements which are multiplexed This is required to be implemented if the backend supports Pulse scheduling. + +**Return type** + +`List`\[`List`\[`int`]] + +**Returns** + +The grouping of measurements which are multiplexed + + + +### num\_qubits + +Return the number of qubits the backend has. + +**Return type** + +`int` + + + +### operation\_names + +A list of instruction names that the backend supports. + +**Return type** + +`List`\[`str`] + + + +### operations + +A list of `Instruction` instances that the backend supports. + +**Return type** + +`List`\[`Instruction`] + + + +### options + +Return the options for the backend + +The options of a backend are the dynamic parameters defining how the backend is used. These are used to control the [`run()`](#qiskit_ibm_runtime.fake_provider.FakeManilaV2.run "qiskit_ibm_runtime.fake_provider.FakeManilaV2.run") method. + + + +### props\_filename + +`= 'props_manila.json'` + + + +### provider + +Return the backend Provider. + +**Returns** + +the Provider responsible for the backend. + +**Return type** + +Provider + + + +### target + +A `qiskit.transpiler.Target` object for the backend. + +**Return type** + +Target + + + +### version + +`= 2` + + + +### name + +Name of the backend. + + + +### description + +Optional human-readable description. + + + +### online\_date + +Date that the backend came online. + + + +### backend\_version + +Version of the backend being provided. This is not the same as `BackendV2.version`, which is the version of the `Backend` abstract interface. + +## Methods + +### acquire\_channel + + + +`acquire_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L269-L282 "view source code") + +Return the acquisition channel for the given qubit. + +This is required to be implemented if the backend supports Pulse scheduling. + +**Returns** + +The Qubit measurement acquisition line. + +**Return type** + +AcquireChannel + +### control\_channel + + + +`control_channel(qubits)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L284-L304 "view source code") + +Return the secondary drive channel for the given qubit + +This is typically utilized for controlling multiqubit interactions. This channel is derived from other channels. + +This is required to be implemented if the backend supports Pulse scheduling. + +**Parameters** + +**qubits** (`Iterable`\[`int`]) – Tuple or list of qubits of the form `(control_qubit, target_qubit)`. + +**Returns** + +The multi qubit control line. + +**Return type** + +List\[ControlChannel] + +### drive\_channel + + + +`drive_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L239-L252 "view source code") + +Return the drive channel for the given qubit. + +This is required to be implemented if the backend supports Pulse scheduling. + +**Returns** + +The Qubit drive channel + +**Return type** + +DriveChannel + +### measure\_channel + + + +`measure_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L254-L267 "view source code") + +Return the measure stimulus channel for the given qubit. + +This is required to be implemented if the backend supports Pulse scheduling. + +**Returns** + +The Qubit measurement stimulus line + +**Return type** + +MeasureChannel + +### qubit\_properties + + + +`qubit_properties(qubit)` + +Return QubitProperties for a given qubit. + +If there are no defined or the backend doesn’t support querying these details this method does not need to be implemented. + +**Parameters** + +**qubit** (`Union`\[`int`, `List`\[`int`]]) – The qubit to get the `QubitProperties` object for. This can be a single integer for 1 qubit or a list of qubits and a list of `QubitProperties` objects will be returned in the same order + +**Return type** + +`Union`\[`QubitProperties`, `List`\[`QubitProperties`]] + +**Returns** + +The `QubitProperties` object for the specified qubit. If a list of qubits is provided a list will be returned. If properties are missing for a qubit this can be `None`. + +**Raises** + +**NotImplementedError** – if the backend doesn’t support querying the qubit properties + +### run + + + +`run(run_input, **options)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L306-L365 "view source code") + +Run on the fake backend using a simulator. + +This method runs circuit jobs (an individual or a list of QuantumCircuit ) and pulse jobs (an individual or a list of Schedule or ScheduleBlock) using BasicAer simulator/ BasicSimulator or Aer simulator and returns a `Job` object. + +If qiskit-aer is installed, jobs will be run using AerSimulator with noise model of the fake backend. Otherwise, jobs will be run using BasicAer simulator/ BasicSimulator simulator without noise. + +Currently noisy simulation of a pulse job is not supported yet in FakeBackendV2. + +**Parameters** + +* **run\_input** (*QuantumCircuit or Schedule or ScheduleBlock or list*) – An individual or a list of `QuantumCircuit`, `ScheduleBlock`, or `Schedule` objects to run on the backend. +* **options** – Any kwarg options to pass to the backend for running the config. If a key is also present in the options attribute/object then the expectation is that the value specified will be used instead of what’s set in the options object. + +**Returns** + +The job object for the run + +**Return type** + +Job + +**Raises** + +**QiskitError** – If a pulse job is supplied and qiskit-aer is not installed. + +### set\_options + + + +`set_options(**fields)` + +Set the options fields for the backend + +This method is used to update the options of a backend. If you need to change any of the options prior to running just pass in the kwarg with the new value for the options. + +**Parameters** + +**fields** – The fields to update the options + +**Raises** + +**AttributeError** – If the field passed in is not part of the options + diff --git a/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeMelbourne.md b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeMelbourne.md new file mode 100644 index 00000000000..1cc5349e4b4 --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeMelbourne.md @@ -0,0 +1,142 @@ +--- +title: FakeMelbourne +description: API reference for qiskit_ibm_runtime.fake_provider.FakeMelbourne +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.fake_provider.FakeMelbourne +--- + +# FakeMelbourne + + + +`FakeMelbourne` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/backends/melbourne/fake_melbourne.py#L38-L95 "view source code") + +A fake 14 qubit backend. + +```python +0 ← 1 → 2 → 3 ← 4 ← 5 → 6 + ↑ ↑ ↑ ↓ ↓ ↓ + 13 → 12 ← 11 → 10 ← 9 → 8 ← 7 +``` + +## Attributes + + + +### options + +Return the options for the backend + +The options of a backend are the dynamic parameters defining how the backend is used. These are used to control the [`run()`](#qiskit_ibm_runtime.fake_provider.FakeMelbourne.run "qiskit_ibm_runtime.fake_provider.FakeMelbourne.run") method. + + + +### version + +`= 1` + +## Methods + +### configuration + + + +`configuration()` + +Return the backend configuration. + +**Returns** + +the configuration for the backend. + +**Return type** + +BackendConfiguration + +### name + + + +`name()` + +Return the backend name. + +**Returns** + +the name of the backend. + +**Return type** + +str + +### properties + + + +`properties()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/backends/melbourne/fake_melbourne.py#L89-L95 "view source code") + +Returns a snapshot of device properties + +**Return type** + +`BackendProperties` + +### provider + + + +`provider()` + +Return the backend Provider. + +**Returns** + +the Provider responsible for the backend. + +**Return type** + +Provider + +### run + + + +`run(run_input, **kwargs)` + +Main job in simulator + +### set\_options + + + +`set_options(**fields)` + +Set the options fields for the backend + +This method is used to update the options of a backend. If you need to change any of the options prior to running just pass in the kwarg with the new value for the options. + +**Parameters** + +**fields** – The fields to update the options + +**Raises** + +**AttributeError** – If the field passed in is not part of the options + +### status + + + +`status()` + +Return the backend status. + +**Returns** + +the status of the backend. + +**Return type** + +BackendStatus + diff --git a/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeMelbourneV2.md b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeMelbourneV2.md new file mode 100644 index 00000000000..5752179d450 --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeMelbourneV2.md @@ -0,0 +1,377 @@ +--- +title: FakeMelbourneV2 +description: API reference for qiskit_ibm_runtime.fake_provider.FakeMelbourneV2 +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.fake_provider.FakeMelbourneV2 +--- + +# FakeMelbourneV2 + + + +`FakeMelbourneV2` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/backends/melbourne/fake_melbourne.py#L29-L35 "view source code") + +A fake 14 qubit backend. + +FakeBackendV2 initializer. + +## Attributes + + + +### backend\_name + +`= 'fake_melbourne'` + + + +### conf\_filename + +`= 'conf_melbourne.json'` + + + +### coupling\_map + +Return the `CouplingMap` object + + + +### defs\_filename + +`= None` + + + +### dirname + +`= '/home/runner/work/qiskit-ibm-runtime/qiskit-ibm-runtime/qiskit_ibm_runtime/fake_provider/backends/melbourne'` + + + +### dt + +Return the system time resolution of input signals + +This is required to be implemented if the backend supports Pulse scheduling. + +**Return type** + +`Optional`\[`float`] + +**Returns** + +The input signal timestep in seconds. If the backend doesn’t define `dt`, `None` will be returned. + + + +### dtm + +Return the system time resolution of output signals + +**Return type** + +`float` + +**Returns** + +The output signal timestep in seconds. + + + +### instruction\_durations + +Return the `InstructionDurations` object. + + + +### instruction\_schedule\_map + +Return the `InstructionScheduleMap` for the instructions defined in this backend’s target. + + + +### instructions + +A list of Instruction tuples on the backend of the form `(instruction, (qubits)` + +**Return type** + +`List`\[`Tuple`\[`Instruction`, `Tuple`\[`int`]]] + + + +### max\_circuits + +**Return type** + +`None` + + + +### meas\_map + +Return the grouping of measurements which are multiplexed This is required to be implemented if the backend supports Pulse scheduling. + +**Return type** + +`List`\[`List`\[`int`]] + +**Returns** + +The grouping of measurements which are multiplexed + + + +### num\_qubits + +Return the number of qubits the backend has. + +**Return type** + +`int` + + + +### operation\_names + +A list of instruction names that the backend supports. + +**Return type** + +`List`\[`str`] + + + +### operations + +A list of `Instruction` instances that the backend supports. + +**Return type** + +`List`\[`Instruction`] + + + +### options + +Return the options for the backend + +The options of a backend are the dynamic parameters defining how the backend is used. These are used to control the [`run()`](#qiskit_ibm_runtime.fake_provider.FakeMelbourneV2.run "qiskit_ibm_runtime.fake_provider.FakeMelbourneV2.run") method. + + + +### props\_filename + +`= 'props_melbourne.json'` + + + +### provider + +Return the backend Provider. + +**Returns** + +the Provider responsible for the backend. + +**Return type** + +Provider + + + +### target + +A `qiskit.transpiler.Target` object for the backend. + +**Return type** + +Target + + + +### version + +`= 2` + + + +### name + +Name of the backend. + + + +### description + +Optional human-readable description. + + + +### online\_date + +Date that the backend came online. + + + +### backend\_version + +Version of the backend being provided. This is not the same as `BackendV2.version`, which is the version of the `Backend` abstract interface. + +## Methods + +### acquire\_channel + + + +`acquire_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L269-L282 "view source code") + +Return the acquisition channel for the given qubit. + +This is required to be implemented if the backend supports Pulse scheduling. + +**Returns** + +The Qubit measurement acquisition line. + +**Return type** + +AcquireChannel + +### control\_channel + + + +`control_channel(qubits)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L284-L304 "view source code") + +Return the secondary drive channel for the given qubit + +This is typically utilized for controlling multiqubit interactions. This channel is derived from other channels. + +This is required to be implemented if the backend supports Pulse scheduling. + +**Parameters** + +**qubits** (`Iterable`\[`int`]) – Tuple or list of qubits of the form `(control_qubit, target_qubit)`. + +**Returns** + +The multi qubit control line. + +**Return type** + +List\[ControlChannel] + +### drive\_channel + + + +`drive_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L239-L252 "view source code") + +Return the drive channel for the given qubit. + +This is required to be implemented if the backend supports Pulse scheduling. + +**Returns** + +The Qubit drive channel + +**Return type** + +DriveChannel + +### measure\_channel + + + +`measure_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L254-L267 "view source code") + +Return the measure stimulus channel for the given qubit. + +This is required to be implemented if the backend supports Pulse scheduling. + +**Returns** + +The Qubit measurement stimulus line + +**Return type** + +MeasureChannel + +### qubit\_properties + + + +`qubit_properties(qubit)` + +Return QubitProperties for a given qubit. + +If there are no defined or the backend doesn’t support querying these details this method does not need to be implemented. + +**Parameters** + +**qubit** (`Union`\[`int`, `List`\[`int`]]) – The qubit to get the `QubitProperties` object for. This can be a single integer for 1 qubit or a list of qubits and a list of `QubitProperties` objects will be returned in the same order + +**Return type** + +`Union`\[`QubitProperties`, `List`\[`QubitProperties`]] + +**Returns** + +The `QubitProperties` object for the specified qubit. If a list of qubits is provided a list will be returned. If properties are missing for a qubit this can be `None`. + +**Raises** + +**NotImplementedError** – if the backend doesn’t support querying the qubit properties + +### run + + + +`run(run_input, **options)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L306-L365 "view source code") + +Run on the fake backend using a simulator. + +This method runs circuit jobs (an individual or a list of QuantumCircuit ) and pulse jobs (an individual or a list of Schedule or ScheduleBlock) using BasicAer simulator/ BasicSimulator or Aer simulator and returns a `Job` object. + +If qiskit-aer is installed, jobs will be run using AerSimulator with noise model of the fake backend. Otherwise, jobs will be run using BasicAer simulator/ BasicSimulator simulator without noise. + +Currently noisy simulation of a pulse job is not supported yet in FakeBackendV2. + +**Parameters** + +* **run\_input** (*QuantumCircuit or Schedule or ScheduleBlock or list*) – An individual or a list of `QuantumCircuit`, `ScheduleBlock`, or `Schedule` objects to run on the backend. +* **options** – Any kwarg options to pass to the backend for running the config. If a key is also present in the options attribute/object then the expectation is that the value specified will be used instead of what’s set in the options object. + +**Returns** + +The job object for the run + +**Return type** + +Job + +**Raises** + +**QiskitError** – If a pulse job is supplied and qiskit-aer is not installed. + +### set\_options + + + +`set_options(**fields)` + +Set the options fields for the backend + +This method is used to update the options of a backend. If you need to change any of the options prior to running just pass in the kwarg with the new value for the options. + +**Parameters** + +**fields** – The fields to update the options + +**Raises** + +**AttributeError** – If the field passed in is not part of the options + diff --git a/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeMontreal.md b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeMontreal.md new file mode 100644 index 00000000000..758340de903 --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeMontreal.md @@ -0,0 +1,185 @@ +--- +title: FakeMontreal +description: API reference for qiskit_ibm_runtime.fake_provider.FakeMontreal +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.fake_provider.FakeMontreal +--- + +# FakeMontreal + + + +`FakeMontreal` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/backends/montreal/fake_montreal.py#L31-L38 "view source code") + +A fake 27 qubit backend. + +FakeBackend initializer. + +**Parameters** + +* **configuration** (*BackendConfiguration*) – backend configuration +* **time\_alive** (*int*) – time to wait before returning result + +## Attributes + + + +### backend\_name + +`= 'fake_montreal'` + + + +### conf\_filename + +`= 'conf_montreal.json'` + + + +### defs\_filename + +`= 'defs_montreal.json'` + + + +### dirname + +`= '/home/runner/work/qiskit-ibm-runtime/qiskit-ibm-runtime/qiskit_ibm_runtime/fake_provider/backends/montreal'` + + + +### options + +Return the options for the backend + +The options of a backend are the dynamic parameters defining how the backend is used. These are used to control the [`run()`](#qiskit_ibm_runtime.fake_provider.FakeMontreal.run "qiskit_ibm_runtime.fake_provider.FakeMontreal.run") method. + + + +### props\_filename + +`= 'props_montreal.json'` + + + +### version + +`= 1` + +## Methods + +### configuration + + + +`configuration()` + +Return the backend configuration. + +**Returns** + +the configuration for the backend. + +**Return type** + +BackendConfiguration + +### defaults + + + +`defaults()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_pulse_backend.py#L29-L33 "view source code") + +Returns a snapshot of device defaults + +**Return type** + +`PulseDefaults` + +### name + + + +`name()` + +Return the backend name. + +**Returns** + +the name of the backend. + +**Return type** + +str + +### properties + + + +`properties()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_qasm_backend.py#L44-L48 "view source code") + +Returns a snapshot of device properties + +**Return type** + +`BackendProperties` + +### provider + + + +`provider()` + +Return the backend Provider. + +**Returns** + +the Provider responsible for the backend. + +**Return type** + +Provider + +### run + + + +`run(run_input, **kwargs)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L545-L574 "view source code") + +Main job in simulator + +### set\_options + + + +`set_options(**fields)` + +Set the options fields for the backend + +This method is used to update the options of a backend. If you need to change any of the options prior to running just pass in the kwarg with the new value for the options. + +**Parameters** + +**fields** – The fields to update the options + +**Raises** + +**AttributeError** – If the field passed in is not part of the options + +### status + + + +`status()` + +Return the backend status. + +**Returns** + +the status of the backend. + +**Return type** + +BackendStatus + diff --git a/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeMontrealV2.md b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeMontrealV2.md new file mode 100644 index 00000000000..e24c1e08383 --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeMontrealV2.md @@ -0,0 +1,377 @@ +--- +title: FakeMontrealV2 +description: API reference for qiskit_ibm_runtime.fake_provider.FakeMontrealV2 +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.fake_provider.FakeMontrealV2 +--- + +# FakeMontrealV2 + + + +`FakeMontrealV2` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/backends/montreal/fake_montreal.py#L21-L28 "view source code") + +A fake 27 qubit backend. + +FakeBackendV2 initializer. + +## Attributes + + + +### backend\_name + +`= 'fake_montreal'` + + + +### conf\_filename + +`= 'conf_montreal.json'` + + + +### coupling\_map + +Return the `CouplingMap` object + + + +### defs\_filename + +`= 'defs_montreal.json'` + + + +### dirname + +`= '/home/runner/work/qiskit-ibm-runtime/qiskit-ibm-runtime/qiskit_ibm_runtime/fake_provider/backends/montreal'` + + + +### dt + +Return the system time resolution of input signals + +This is required to be implemented if the backend supports Pulse scheduling. + +**Return type** + +`Optional`\[`float`] + +**Returns** + +The input signal timestep in seconds. If the backend doesn’t define `dt`, `None` will be returned. + + + +### dtm + +Return the system time resolution of output signals + +**Return type** + +`float` + +**Returns** + +The output signal timestep in seconds. + + + +### instruction\_durations + +Return the `InstructionDurations` object. + + + +### instruction\_schedule\_map + +Return the `InstructionScheduleMap` for the instructions defined in this backend’s target. + + + +### instructions + +A list of Instruction tuples on the backend of the form `(instruction, (qubits)` + +**Return type** + +`List`\[`Tuple`\[`Instruction`, `Tuple`\[`int`]]] + + + +### max\_circuits + +**Return type** + +`None` + + + +### meas\_map + +Return the grouping of measurements which are multiplexed This is required to be implemented if the backend supports Pulse scheduling. + +**Return type** + +`List`\[`List`\[`int`]] + +**Returns** + +The grouping of measurements which are multiplexed + + + +### num\_qubits + +Return the number of qubits the backend has. + +**Return type** + +`int` + + + +### operation\_names + +A list of instruction names that the backend supports. + +**Return type** + +`List`\[`str`] + + + +### operations + +A list of `Instruction` instances that the backend supports. + +**Return type** + +`List`\[`Instruction`] + + + +### options + +Return the options for the backend + +The options of a backend are the dynamic parameters defining how the backend is used. These are used to control the [`run()`](#qiskit_ibm_runtime.fake_provider.FakeMontrealV2.run "qiskit_ibm_runtime.fake_provider.FakeMontrealV2.run") method. + + + +### props\_filename + +`= 'props_montreal.json'` + + + +### provider + +Return the backend Provider. + +**Returns** + +the Provider responsible for the backend. + +**Return type** + +Provider + + + +### target + +A `qiskit.transpiler.Target` object for the backend. + +**Return type** + +Target + + + +### version + +`= 2` + + + +### name + +Name of the backend. + + + +### description + +Optional human-readable description. + + + +### online\_date + +Date that the backend came online. + + + +### backend\_version + +Version of the backend being provided. This is not the same as `BackendV2.version`, which is the version of the `Backend` abstract interface. + +## Methods + +### acquire\_channel + + + +`acquire_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L269-L282 "view source code") + +Return the acquisition channel for the given qubit. + +This is required to be implemented if the backend supports Pulse scheduling. + +**Returns** + +The Qubit measurement acquisition line. + +**Return type** + +AcquireChannel + +### control\_channel + + + +`control_channel(qubits)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L284-L304 "view source code") + +Return the secondary drive channel for the given qubit + +This is typically utilized for controlling multiqubit interactions. This channel is derived from other channels. + +This is required to be implemented if the backend supports Pulse scheduling. + +**Parameters** + +**qubits** (`Iterable`\[`int`]) – Tuple or list of qubits of the form `(control_qubit, target_qubit)`. + +**Returns** + +The multi qubit control line. + +**Return type** + +List\[ControlChannel] + +### drive\_channel + + + +`drive_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L239-L252 "view source code") + +Return the drive channel for the given qubit. + +This is required to be implemented if the backend supports Pulse scheduling. + +**Returns** + +The Qubit drive channel + +**Return type** + +DriveChannel + +### measure\_channel + + + +`measure_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L254-L267 "view source code") + +Return the measure stimulus channel for the given qubit. + +This is required to be implemented if the backend supports Pulse scheduling. + +**Returns** + +The Qubit measurement stimulus line + +**Return type** + +MeasureChannel + +### qubit\_properties + + + +`qubit_properties(qubit)` + +Return QubitProperties for a given qubit. + +If there are no defined or the backend doesn’t support querying these details this method does not need to be implemented. + +**Parameters** + +**qubit** (`Union`\[`int`, `List`\[`int`]]) – The qubit to get the `QubitProperties` object for. This can be a single integer for 1 qubit or a list of qubits and a list of `QubitProperties` objects will be returned in the same order + +**Return type** + +`Union`\[`QubitProperties`, `List`\[`QubitProperties`]] + +**Returns** + +The `QubitProperties` object for the specified qubit. If a list of qubits is provided a list will be returned. If properties are missing for a qubit this can be `None`. + +**Raises** + +**NotImplementedError** – if the backend doesn’t support querying the qubit properties + +### run + + + +`run(run_input, **options)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L306-L365 "view source code") + +Run on the fake backend using a simulator. + +This method runs circuit jobs (an individual or a list of QuantumCircuit ) and pulse jobs (an individual or a list of Schedule or ScheduleBlock) using BasicAer simulator/ BasicSimulator or Aer simulator and returns a `Job` object. + +If qiskit-aer is installed, jobs will be run using AerSimulator with noise model of the fake backend. Otherwise, jobs will be run using BasicAer simulator/ BasicSimulator simulator without noise. + +Currently noisy simulation of a pulse job is not supported yet in FakeBackendV2. + +**Parameters** + +* **run\_input** (*QuantumCircuit or Schedule or ScheduleBlock or list*) – An individual or a list of `QuantumCircuit`, `ScheduleBlock`, or `Schedule` objects to run on the backend. +* **options** – Any kwarg options to pass to the backend for running the config. If a key is also present in the options attribute/object then the expectation is that the value specified will be used instead of what’s set in the options object. + +**Returns** + +The job object for the run + +**Return type** + +Job + +**Raises** + +**QiskitError** – If a pulse job is supplied and qiskit-aer is not installed. + +### set\_options + + + +`set_options(**fields)` + +Set the options fields for the backend + +This method is used to update the options of a backend. If you need to change any of the options prior to running just pass in the kwarg with the new value for the options. + +**Parameters** + +**fields** – The fields to update the options + +**Raises** + +**AttributeError** – If the field passed in is not part of the options + diff --git a/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeMumbai.md b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeMumbai.md new file mode 100644 index 00000000000..fefd67dd44f --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeMumbai.md @@ -0,0 +1,185 @@ +--- +title: FakeMumbai +description: API reference for qiskit_ibm_runtime.fake_provider.FakeMumbai +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.fake_provider.FakeMumbai +--- + +# FakeMumbai + + + +`FakeMumbai` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/backends/mumbai/fake_mumbai.py#L31-L38 "view source code") + +A fake 27 qubit backend. + +FakeBackend initializer. + +**Parameters** + +* **configuration** (*BackendConfiguration*) – backend configuration +* **time\_alive** (*int*) – time to wait before returning result + +## Attributes + + + +### backend\_name + +`= 'fake_mumbai'` + + + +### conf\_filename + +`= 'conf_mumbai.json'` + + + +### defs\_filename + +`= 'defs_mumbai.json'` + + + +### dirname + +`= '/home/runner/work/qiskit-ibm-runtime/qiskit-ibm-runtime/qiskit_ibm_runtime/fake_provider/backends/mumbai'` + + + +### options + +Return the options for the backend + +The options of a backend are the dynamic parameters defining how the backend is used. These are used to control the [`run()`](#qiskit_ibm_runtime.fake_provider.FakeMumbai.run "qiskit_ibm_runtime.fake_provider.FakeMumbai.run") method. + + + +### props\_filename + +`= 'props_mumbai.json'` + + + +### version + +`= 1` + +## Methods + +### configuration + + + +`configuration()` + +Return the backend configuration. + +**Returns** + +the configuration for the backend. + +**Return type** + +BackendConfiguration + +### defaults + + + +`defaults()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_pulse_backend.py#L29-L33 "view source code") + +Returns a snapshot of device defaults + +**Return type** + +`PulseDefaults` + +### name + + + +`name()` + +Return the backend name. + +**Returns** + +the name of the backend. + +**Return type** + +str + +### properties + + + +`properties()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_qasm_backend.py#L44-L48 "view source code") + +Returns a snapshot of device properties + +**Return type** + +`BackendProperties` + +### provider + + + +`provider()` + +Return the backend Provider. + +**Returns** + +the Provider responsible for the backend. + +**Return type** + +Provider + +### run + + + +`run(run_input, **kwargs)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L545-L574 "view source code") + +Main job in simulator + +### set\_options + + + +`set_options(**fields)` + +Set the options fields for the backend + +This method is used to update the options of a backend. If you need to change any of the options prior to running just pass in the kwarg with the new value for the options. + +**Parameters** + +**fields** – The fields to update the options + +**Raises** + +**AttributeError** – If the field passed in is not part of the options + +### status + + + +`status()` + +Return the backend status. + +**Returns** + +the status of the backend. + +**Return type** + +BackendStatus + diff --git a/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeMumbaiV2.md b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeMumbaiV2.md new file mode 100644 index 00000000000..4628e7b631f --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeMumbaiV2.md @@ -0,0 +1,377 @@ +--- +title: FakeMumbaiV2 +description: API reference for qiskit_ibm_runtime.fake_provider.FakeMumbaiV2 +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.fake_provider.FakeMumbaiV2 +--- + +# FakeMumbaiV2 + + + +`FakeMumbaiV2` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/backends/mumbai/fake_mumbai.py#L21-L28 "view source code") + +A fake 27 qubit backend. + +FakeBackendV2 initializer. + +## Attributes + + + +### backend\_name + +`= 'fake_mumbai'` + + + +### conf\_filename + +`= 'conf_mumbai.json'` + + + +### coupling\_map + +Return the `CouplingMap` object + + + +### defs\_filename + +`= 'defs_mumbai.json'` + + + +### dirname + +`= '/home/runner/work/qiskit-ibm-runtime/qiskit-ibm-runtime/qiskit_ibm_runtime/fake_provider/backends/mumbai'` + + + +### dt + +Return the system time resolution of input signals + +This is required to be implemented if the backend supports Pulse scheduling. + +**Return type** + +`Optional`\[`float`] + +**Returns** + +The input signal timestep in seconds. If the backend doesn’t define `dt`, `None` will be returned. + + + +### dtm + +Return the system time resolution of output signals + +**Return type** + +`float` + +**Returns** + +The output signal timestep in seconds. + + + +### instruction\_durations + +Return the `InstructionDurations` object. + + + +### instruction\_schedule\_map + +Return the `InstructionScheduleMap` for the instructions defined in this backend’s target. + + + +### instructions + +A list of Instruction tuples on the backend of the form `(instruction, (qubits)` + +**Return type** + +`List`\[`Tuple`\[`Instruction`, `Tuple`\[`int`]]] + + + +### max\_circuits + +**Return type** + +`None` + + + +### meas\_map + +Return the grouping of measurements which are multiplexed This is required to be implemented if the backend supports Pulse scheduling. + +**Return type** + +`List`\[`List`\[`int`]] + +**Returns** + +The grouping of measurements which are multiplexed + + + +### num\_qubits + +Return the number of qubits the backend has. + +**Return type** + +`int` + + + +### operation\_names + +A list of instruction names that the backend supports. + +**Return type** + +`List`\[`str`] + + + +### operations + +A list of `Instruction` instances that the backend supports. + +**Return type** + +`List`\[`Instruction`] + + + +### options + +Return the options for the backend + +The options of a backend are the dynamic parameters defining how the backend is used. These are used to control the [`run()`](#qiskit_ibm_runtime.fake_provider.FakeMumbaiV2.run "qiskit_ibm_runtime.fake_provider.FakeMumbaiV2.run") method. + + + +### props\_filename + +`= 'props_mumbai.json'` + + + +### provider + +Return the backend Provider. + +**Returns** + +the Provider responsible for the backend. + +**Return type** + +Provider + + + +### target + +A `qiskit.transpiler.Target` object for the backend. + +**Return type** + +Target + + + +### version + +`= 2` + + + +### name + +Name of the backend. + + + +### description + +Optional human-readable description. + + + +### online\_date + +Date that the backend came online. + + + +### backend\_version + +Version of the backend being provided. This is not the same as `BackendV2.version`, which is the version of the `Backend` abstract interface. + +## Methods + +### acquire\_channel + + + +`acquire_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L269-L282 "view source code") + +Return the acquisition channel for the given qubit. + +This is required to be implemented if the backend supports Pulse scheduling. + +**Returns** + +The Qubit measurement acquisition line. + +**Return type** + +AcquireChannel + +### control\_channel + + + +`control_channel(qubits)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L284-L304 "view source code") + +Return the secondary drive channel for the given qubit + +This is typically utilized for controlling multiqubit interactions. This channel is derived from other channels. + +This is required to be implemented if the backend supports Pulse scheduling. + +**Parameters** + +**qubits** (`Iterable`\[`int`]) – Tuple or list of qubits of the form `(control_qubit, target_qubit)`. + +**Returns** + +The multi qubit control line. + +**Return type** + +List\[ControlChannel] + +### drive\_channel + + + +`drive_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L239-L252 "view source code") + +Return the drive channel for the given qubit. + +This is required to be implemented if the backend supports Pulse scheduling. + +**Returns** + +The Qubit drive channel + +**Return type** + +DriveChannel + +### measure\_channel + + + +`measure_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L254-L267 "view source code") + +Return the measure stimulus channel for the given qubit. + +This is required to be implemented if the backend supports Pulse scheduling. + +**Returns** + +The Qubit measurement stimulus line + +**Return type** + +MeasureChannel + +### qubit\_properties + + + +`qubit_properties(qubit)` + +Return QubitProperties for a given qubit. + +If there are no defined or the backend doesn’t support querying these details this method does not need to be implemented. + +**Parameters** + +**qubit** (`Union`\[`int`, `List`\[`int`]]) – The qubit to get the `QubitProperties` object for. This can be a single integer for 1 qubit or a list of qubits and a list of `QubitProperties` objects will be returned in the same order + +**Return type** + +`Union`\[`QubitProperties`, `List`\[`QubitProperties`]] + +**Returns** + +The `QubitProperties` object for the specified qubit. If a list of qubits is provided a list will be returned. If properties are missing for a qubit this can be `None`. + +**Raises** + +**NotImplementedError** – if the backend doesn’t support querying the qubit properties + +### run + + + +`run(run_input, **options)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L306-L365 "view source code") + +Run on the fake backend using a simulator. + +This method runs circuit jobs (an individual or a list of QuantumCircuit ) and pulse jobs (an individual or a list of Schedule or ScheduleBlock) using BasicAer simulator/ BasicSimulator or Aer simulator and returns a `Job` object. + +If qiskit-aer is installed, jobs will be run using AerSimulator with noise model of the fake backend. Otherwise, jobs will be run using BasicAer simulator/ BasicSimulator simulator without noise. + +Currently noisy simulation of a pulse job is not supported yet in FakeBackendV2. + +**Parameters** + +* **run\_input** (*QuantumCircuit or Schedule or ScheduleBlock or list*) – An individual or a list of `QuantumCircuit`, `ScheduleBlock`, or `Schedule` objects to run on the backend. +* **options** – Any kwarg options to pass to the backend for running the config. If a key is also present in the options attribute/object then the expectation is that the value specified will be used instead of what’s set in the options object. + +**Returns** + +The job object for the run + +**Return type** + +Job + +**Raises** + +**QiskitError** – If a pulse job is supplied and qiskit-aer is not installed. + +### set\_options + + + +`set_options(**fields)` + +Set the options fields for the backend + +This method is used to update the options of a backend. If you need to change any of the options prior to running just pass in the kwarg with the new value for the options. + +**Parameters** + +**fields** – The fields to update the options + +**Raises** + +**AttributeError** – If the field passed in is not part of the options + diff --git a/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeNairobi.md b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeNairobi.md new file mode 100644 index 00000000000..7ed004a8e44 --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeNairobi.md @@ -0,0 +1,185 @@ +--- +title: FakeNairobi +description: API reference for qiskit_ibm_runtime.fake_provider.FakeNairobi +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.fake_provider.FakeNairobi +--- + +# FakeNairobi + + + +`FakeNairobi` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/backends/nairobi/fake_nairobi.py#L31-L38 "view source code") + +A fake 7 qubit backend. + +FakeBackend initializer. + +**Parameters** + +* **configuration** (*BackendConfiguration*) – backend configuration +* **time\_alive** (*int*) – time to wait before returning result + +## Attributes + + + +### backend\_name + +`= 'fake_nairobi'` + + + +### conf\_filename + +`= 'conf_nairobi.json'` + + + +### defs\_filename + +`= 'defs_nairobi.json'` + + + +### dirname + +`= '/home/runner/work/qiskit-ibm-runtime/qiskit-ibm-runtime/qiskit_ibm_runtime/fake_provider/backends/nairobi'` + + + +### options + +Return the options for the backend + +The options of a backend are the dynamic parameters defining how the backend is used. These are used to control the [`run()`](#qiskit_ibm_runtime.fake_provider.FakeNairobi.run "qiskit_ibm_runtime.fake_provider.FakeNairobi.run") method. + + + +### props\_filename + +`= 'props_nairobi.json'` + + + +### version + +`= 1` + +## Methods + +### configuration + + + +`configuration()` + +Return the backend configuration. + +**Returns** + +the configuration for the backend. + +**Return type** + +BackendConfiguration + +### defaults + + + +`defaults()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_pulse_backend.py#L29-L33 "view source code") + +Returns a snapshot of device defaults + +**Return type** + +`PulseDefaults` + +### name + + + +`name()` + +Return the backend name. + +**Returns** + +the name of the backend. + +**Return type** + +str + +### properties + + + +`properties()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_qasm_backend.py#L44-L48 "view source code") + +Returns a snapshot of device properties + +**Return type** + +`BackendProperties` + +### provider + + + +`provider()` + +Return the backend Provider. + +**Returns** + +the Provider responsible for the backend. + +**Return type** + +Provider + +### run + + + +`run(run_input, **kwargs)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L545-L574 "view source code") + +Main job in simulator + +### set\_options + + + +`set_options(**fields)` + +Set the options fields for the backend + +This method is used to update the options of a backend. If you need to change any of the options prior to running just pass in the kwarg with the new value for the options. + +**Parameters** + +**fields** – The fields to update the options + +**Raises** + +**AttributeError** – If the field passed in is not part of the options + +### status + + + +`status()` + +Return the backend status. + +**Returns** + +the status of the backend. + +**Return type** + +BackendStatus + diff --git a/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeNairobiV2.md b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeNairobiV2.md new file mode 100644 index 00000000000..461ca09c1b8 --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeNairobiV2.md @@ -0,0 +1,377 @@ +--- +title: FakeNairobiV2 +description: API reference for qiskit_ibm_runtime.fake_provider.FakeNairobiV2 +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.fake_provider.FakeNairobiV2 +--- + +# FakeNairobiV2 + + + +`FakeNairobiV2` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/backends/nairobi/fake_nairobi.py#L21-L28 "view source code") + +A fake 7 qubit backend. + +FakeBackendV2 initializer. + +## Attributes + + + +### backend\_name + +`= 'fake_nairobi'` + + + +### conf\_filename + +`= 'conf_nairobi.json'` + + + +### coupling\_map + +Return the `CouplingMap` object + + + +### defs\_filename + +`= 'defs_nairobi.json'` + + + +### dirname + +`= '/home/runner/work/qiskit-ibm-runtime/qiskit-ibm-runtime/qiskit_ibm_runtime/fake_provider/backends/nairobi'` + + + +### dt + +Return the system time resolution of input signals + +This is required to be implemented if the backend supports Pulse scheduling. + +**Return type** + +`Optional`\[`float`] + +**Returns** + +The input signal timestep in seconds. If the backend doesn’t define `dt`, `None` will be returned. + + + +### dtm + +Return the system time resolution of output signals + +**Return type** + +`float` + +**Returns** + +The output signal timestep in seconds. + + + +### instruction\_durations + +Return the `InstructionDurations` object. + + + +### instruction\_schedule\_map + +Return the `InstructionScheduleMap` for the instructions defined in this backend’s target. + + + +### instructions + +A list of Instruction tuples on the backend of the form `(instruction, (qubits)` + +**Return type** + +`List`\[`Tuple`\[`Instruction`, `Tuple`\[`int`]]] + + + +### max\_circuits + +**Return type** + +`None` + + + +### meas\_map + +Return the grouping of measurements which are multiplexed This is required to be implemented if the backend supports Pulse scheduling. + +**Return type** + +`List`\[`List`\[`int`]] + +**Returns** + +The grouping of measurements which are multiplexed + + + +### num\_qubits + +Return the number of qubits the backend has. + +**Return type** + +`int` + + + +### operation\_names + +A list of instruction names that the backend supports. + +**Return type** + +`List`\[`str`] + + + +### operations + +A list of `Instruction` instances that the backend supports. + +**Return type** + +`List`\[`Instruction`] + + + +### options + +Return the options for the backend + +The options of a backend are the dynamic parameters defining how the backend is used. These are used to control the [`run()`](#qiskit_ibm_runtime.fake_provider.FakeNairobiV2.run "qiskit_ibm_runtime.fake_provider.FakeNairobiV2.run") method. + + + +### props\_filename + +`= 'props_nairobi.json'` + + + +### provider + +Return the backend Provider. + +**Returns** + +the Provider responsible for the backend. + +**Return type** + +Provider + + + +### target + +A `qiskit.transpiler.Target` object for the backend. + +**Return type** + +Target + + + +### version + +`= 2` + + + +### name + +Name of the backend. + + + +### description + +Optional human-readable description. + + + +### online\_date + +Date that the backend came online. + + + +### backend\_version + +Version of the backend being provided. This is not the same as `BackendV2.version`, which is the version of the `Backend` abstract interface. + +## Methods + +### acquire\_channel + + + +`acquire_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L269-L282 "view source code") + +Return the acquisition channel for the given qubit. + +This is required to be implemented if the backend supports Pulse scheduling. + +**Returns** + +The Qubit measurement acquisition line. + +**Return type** + +AcquireChannel + +### control\_channel + + + +`control_channel(qubits)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L284-L304 "view source code") + +Return the secondary drive channel for the given qubit + +This is typically utilized for controlling multiqubit interactions. This channel is derived from other channels. + +This is required to be implemented if the backend supports Pulse scheduling. + +**Parameters** + +**qubits** (`Iterable`\[`int`]) – Tuple or list of qubits of the form `(control_qubit, target_qubit)`. + +**Returns** + +The multi qubit control line. + +**Return type** + +List\[ControlChannel] + +### drive\_channel + + + +`drive_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L239-L252 "view source code") + +Return the drive channel for the given qubit. + +This is required to be implemented if the backend supports Pulse scheduling. + +**Returns** + +The Qubit drive channel + +**Return type** + +DriveChannel + +### measure\_channel + + + +`measure_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L254-L267 "view source code") + +Return the measure stimulus channel for the given qubit. + +This is required to be implemented if the backend supports Pulse scheduling. + +**Returns** + +The Qubit measurement stimulus line + +**Return type** + +MeasureChannel + +### qubit\_properties + + + +`qubit_properties(qubit)` + +Return QubitProperties for a given qubit. + +If there are no defined or the backend doesn’t support querying these details this method does not need to be implemented. + +**Parameters** + +**qubit** (`Union`\[`int`, `List`\[`int`]]) – The qubit to get the `QubitProperties` object for. This can be a single integer for 1 qubit or a list of qubits and a list of `QubitProperties` objects will be returned in the same order + +**Return type** + +`Union`\[`QubitProperties`, `List`\[`QubitProperties`]] + +**Returns** + +The `QubitProperties` object for the specified qubit. If a list of qubits is provided a list will be returned. If properties are missing for a qubit this can be `None`. + +**Raises** + +**NotImplementedError** – if the backend doesn’t support querying the qubit properties + +### run + + + +`run(run_input, **options)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L306-L365 "view source code") + +Run on the fake backend using a simulator. + +This method runs circuit jobs (an individual or a list of QuantumCircuit ) and pulse jobs (an individual or a list of Schedule or ScheduleBlock) using BasicAer simulator/ BasicSimulator or Aer simulator and returns a `Job` object. + +If qiskit-aer is installed, jobs will be run using AerSimulator with noise model of the fake backend. Otherwise, jobs will be run using BasicAer simulator/ BasicSimulator simulator without noise. + +Currently noisy simulation of a pulse job is not supported yet in FakeBackendV2. + +**Parameters** + +* **run\_input** (*QuantumCircuit or Schedule or ScheduleBlock or list*) – An individual or a list of `QuantumCircuit`, `ScheduleBlock`, or `Schedule` objects to run on the backend. +* **options** – Any kwarg options to pass to the backend for running the config. If a key is also present in the options attribute/object then the expectation is that the value specified will be used instead of what’s set in the options object. + +**Returns** + +The job object for the run + +**Return type** + +Job + +**Raises** + +**QiskitError** – If a pulse job is supplied and qiskit-aer is not installed. + +### set\_options + + + +`set_options(**fields)` + +Set the options fields for the backend + +This method is used to update the options of a backend. If you need to change any of the options prior to running just pass in the kwarg with the new value for the options. + +**Parameters** + +**fields** – The fields to update the options + +**Raises** + +**AttributeError** – If the field passed in is not part of the options + diff --git a/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeOslo.md b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeOslo.md new file mode 100644 index 00000000000..fbbec79d7b4 --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeOslo.md @@ -0,0 +1,377 @@ +--- +title: FakeOslo +description: API reference for qiskit_ibm_runtime.fake_provider.FakeOslo +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.fake_provider.FakeOslo +--- + +# FakeOslo + + + +`FakeOslo` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/backends/oslo/fake_oslo.py#L22-L29 "view source code") + +A fake 7 qubit backend. + +FakeBackendV2 initializer. + +## Attributes + + + +### backend\_name + +`= 'fake_oslo'` + + + +### conf\_filename + +`= 'conf_oslo.json'` + + + +### coupling\_map + +Return the `CouplingMap` object + + + +### defs\_filename + +`= 'defs_oslo.json'` + + + +### dirname + +`= '/home/runner/work/qiskit-ibm-runtime/qiskit-ibm-runtime/qiskit_ibm_runtime/fake_provider/backends/oslo'` + + + +### dt + +Return the system time resolution of input signals + +This is required to be implemented if the backend supports Pulse scheduling. + +**Return type** + +`Optional`\[`float`] + +**Returns** + +The input signal timestep in seconds. If the backend doesn’t define `dt`, `None` will be returned. + + + +### dtm + +Return the system time resolution of output signals + +**Return type** + +`float` + +**Returns** + +The output signal timestep in seconds. + + + +### instruction\_durations + +Return the `InstructionDurations` object. + + + +### instruction\_schedule\_map + +Return the `InstructionScheduleMap` for the instructions defined in this backend’s target. + + + +### instructions + +A list of Instruction tuples on the backend of the form `(instruction, (qubits)` + +**Return type** + +`List`\[`Tuple`\[`Instruction`, `Tuple`\[`int`]]] + + + +### max\_circuits + +**Return type** + +`None` + + + +### meas\_map + +Return the grouping of measurements which are multiplexed This is required to be implemented if the backend supports Pulse scheduling. + +**Return type** + +`List`\[`List`\[`int`]] + +**Returns** + +The grouping of measurements which are multiplexed + + + +### num\_qubits + +Return the number of qubits the backend has. + +**Return type** + +`int` + + + +### operation\_names + +A list of instruction names that the backend supports. + +**Return type** + +`List`\[`str`] + + + +### operations + +A list of `Instruction` instances that the backend supports. + +**Return type** + +`List`\[`Instruction`] + + + +### options + +Return the options for the backend + +The options of a backend are the dynamic parameters defining how the backend is used. These are used to control the [`run()`](#qiskit_ibm_runtime.fake_provider.FakeOslo.run "qiskit_ibm_runtime.fake_provider.FakeOslo.run") method. + + + +### props\_filename + +`= 'props_oslo.json'` + + + +### provider + +Return the backend Provider. + +**Returns** + +the Provider responsible for the backend. + +**Return type** + +Provider + + + +### target + +A `qiskit.transpiler.Target` object for the backend. + +**Return type** + +Target + + + +### version + +`= 2` + + + +### name + +Name of the backend. + + + +### description + +Optional human-readable description. + + + +### online\_date + +Date that the backend came online. + + + +### backend\_version + +Version of the backend being provided. This is not the same as `BackendV2.version`, which is the version of the `Backend` abstract interface. + +## Methods + +### acquire\_channel + + + +`acquire_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L269-L282 "view source code") + +Return the acquisition channel for the given qubit. + +This is required to be implemented if the backend supports Pulse scheduling. + +**Returns** + +The Qubit measurement acquisition line. + +**Return type** + +AcquireChannel + +### control\_channel + + + +`control_channel(qubits)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L284-L304 "view source code") + +Return the secondary drive channel for the given qubit + +This is typically utilized for controlling multiqubit interactions. This channel is derived from other channels. + +This is required to be implemented if the backend supports Pulse scheduling. + +**Parameters** + +**qubits** (`Iterable`\[`int`]) – Tuple or list of qubits of the form `(control_qubit, target_qubit)`. + +**Returns** + +The multi qubit control line. + +**Return type** + +List\[ControlChannel] + +### drive\_channel + + + +`drive_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L239-L252 "view source code") + +Return the drive channel for the given qubit. + +This is required to be implemented if the backend supports Pulse scheduling. + +**Returns** + +The Qubit drive channel + +**Return type** + +DriveChannel + +### measure\_channel + + + +`measure_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L254-L267 "view source code") + +Return the measure stimulus channel for the given qubit. + +This is required to be implemented if the backend supports Pulse scheduling. + +**Returns** + +The Qubit measurement stimulus line + +**Return type** + +MeasureChannel + +### qubit\_properties + + + +`qubit_properties(qubit)` + +Return QubitProperties for a given qubit. + +If there are no defined or the backend doesn’t support querying these details this method does not need to be implemented. + +**Parameters** + +**qubit** (`Union`\[`int`, `List`\[`int`]]) – The qubit to get the `QubitProperties` object for. This can be a single integer for 1 qubit or a list of qubits and a list of `QubitProperties` objects will be returned in the same order + +**Return type** + +`Union`\[`QubitProperties`, `List`\[`QubitProperties`]] + +**Returns** + +The `QubitProperties` object for the specified qubit. If a list of qubits is provided a list will be returned. If properties are missing for a qubit this can be `None`. + +**Raises** + +**NotImplementedError** – if the backend doesn’t support querying the qubit properties + +### run + + + +`run(run_input, **options)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L306-L365 "view source code") + +Run on the fake backend using a simulator. + +This method runs circuit jobs (an individual or a list of QuantumCircuit ) and pulse jobs (an individual or a list of Schedule or ScheduleBlock) using BasicAer simulator/ BasicSimulator or Aer simulator and returns a `Job` object. + +If qiskit-aer is installed, jobs will be run using AerSimulator with noise model of the fake backend. Otherwise, jobs will be run using BasicAer simulator/ BasicSimulator simulator without noise. + +Currently noisy simulation of a pulse job is not supported yet in FakeBackendV2. + +**Parameters** + +* **run\_input** (*QuantumCircuit or Schedule or ScheduleBlock or list*) – An individual or a list of `QuantumCircuit`, `ScheduleBlock`, or `Schedule` objects to run on the backend. +* **options** – Any kwarg options to pass to the backend for running the config. If a key is also present in the options attribute/object then the expectation is that the value specified will be used instead of what’s set in the options object. + +**Returns** + +The job object for the run + +**Return type** + +Job + +**Raises** + +**QiskitError** – If a pulse job is supplied and qiskit-aer is not installed. + +### set\_options + + + +`set_options(**fields)` + +Set the options fields for the backend + +This method is used to update the options of a backend. If you need to change any of the options prior to running just pass in the kwarg with the new value for the options. + +**Parameters** + +**fields** – The fields to update the options + +**Raises** + +**AttributeError** – If the field passed in is not part of the options + diff --git a/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeOurense.md b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeOurense.md new file mode 100644 index 00000000000..a663c05a4c7 --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeOurense.md @@ -0,0 +1,173 @@ +--- +title: FakeOurense +description: API reference for qiskit_ibm_runtime.fake_provider.FakeOurense +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.fake_provider.FakeOurense +--- + +# FakeOurense + + + +`FakeOurense` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/backends/ourense/fake_ourense.py#L37-L50 "view source code") + +A fake 5 qubit backend. + +```python +0 ↔ 1 ↔ 3 ↔ 4 + ↕ + 2 +``` + +FakeBackend initializer. + +**Parameters** + +* **configuration** (*BackendConfiguration*) – backend configuration +* **time\_alive** (*int*) – time to wait before returning result + +## Attributes + + + +### backend\_name + +`= 'fake_ourense'` + + + +### conf\_filename + +`= 'conf_ourense.json'` + + + +### dirname + +`= '/home/runner/work/qiskit-ibm-runtime/qiskit-ibm-runtime/qiskit_ibm_runtime/fake_provider/backends/ourense'` + + + +### options + +Return the options for the backend + +The options of a backend are the dynamic parameters defining how the backend is used. These are used to control the [`run()`](#qiskit_ibm_runtime.fake_provider.FakeOurense.run "qiskit_ibm_runtime.fake_provider.FakeOurense.run") method. + + + +### props\_filename + +`= 'props_ourense.json'` + + + +### version + +`= 1` + +## Methods + +### configuration + + + +`configuration()` + +Return the backend configuration. + +**Returns** + +the configuration for the backend. + +**Return type** + +BackendConfiguration + +### name + + + +`name()` + +Return the backend name. + +**Returns** + +the name of the backend. + +**Return type** + +str + +### properties + + + +`properties()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_qasm_backend.py#L44-L48 "view source code") + +Returns a snapshot of device properties + +**Return type** + +`BackendProperties` + +### provider + + + +`provider()` + +Return the backend Provider. + +**Returns** + +the Provider responsible for the backend. + +**Return type** + +Provider + +### run + + + +`run(run_input, **kwargs)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L545-L574 "view source code") + +Main job in simulator + +### set\_options + + + +`set_options(**fields)` + +Set the options fields for the backend + +This method is used to update the options of a backend. If you need to change any of the options prior to running just pass in the kwarg with the new value for the options. + +**Parameters** + +**fields** – The fields to update the options + +**Raises** + +**AttributeError** – If the field passed in is not part of the options + +### status + + + +`status()` + +Return the backend status. + +**Returns** + +the status of the backend. + +**Return type** + +BackendStatus + diff --git a/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeOurenseV2.md b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeOurenseV2.md new file mode 100644 index 00000000000..4a65c7f2ec6 --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeOurenseV2.md @@ -0,0 +1,383 @@ +--- +title: FakeOurenseV2 +description: API reference for qiskit_ibm_runtime.fake_provider.FakeOurenseV2 +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.fake_provider.FakeOurenseV2 +--- + +# FakeOurenseV2 + + + +`FakeOurenseV2` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/backends/ourense/fake_ourense.py#L21-L34 "view source code") + +A fake 5 qubit backend. + +```python +0 ↔ 1 ↔ 3 ↔ 4 + ↕ + 2 +``` + +FakeBackendV2 initializer. + +## Attributes + + + +### backend\_name + +`= 'fake_ourense'` + + + +### conf\_filename + +`= 'conf_ourense.json'` + + + +### coupling\_map + +Return the `CouplingMap` object + + + +### defs\_filename + +`= None` + + + +### dirname + +`= '/home/runner/work/qiskit-ibm-runtime/qiskit-ibm-runtime/qiskit_ibm_runtime/fake_provider/backends/ourense'` + + + +### dt + +Return the system time resolution of input signals + +This is required to be implemented if the backend supports Pulse scheduling. + +**Return type** + +`Optional`\[`float`] + +**Returns** + +The input signal timestep in seconds. If the backend doesn’t define `dt`, `None` will be returned. + + + +### dtm + +Return the system time resolution of output signals + +**Return type** + +`float` + +**Returns** + +The output signal timestep in seconds. + + + +### instruction\_durations + +Return the `InstructionDurations` object. + + + +### instruction\_schedule\_map + +Return the `InstructionScheduleMap` for the instructions defined in this backend’s target. + + + +### instructions + +A list of Instruction tuples on the backend of the form `(instruction, (qubits)` + +**Return type** + +`List`\[`Tuple`\[`Instruction`, `Tuple`\[`int`]]] + + + +### max\_circuits + +**Return type** + +`None` + + + +### meas\_map + +Return the grouping of measurements which are multiplexed This is required to be implemented if the backend supports Pulse scheduling. + +**Return type** + +`List`\[`List`\[`int`]] + +**Returns** + +The grouping of measurements which are multiplexed + + + +### num\_qubits + +Return the number of qubits the backend has. + +**Return type** + +`int` + + + +### operation\_names + +A list of instruction names that the backend supports. + +**Return type** + +`List`\[`str`] + + + +### operations + +A list of `Instruction` instances that the backend supports. + +**Return type** + +`List`\[`Instruction`] + + + +### options + +Return the options for the backend + +The options of a backend are the dynamic parameters defining how the backend is used. These are used to control the [`run()`](#qiskit_ibm_runtime.fake_provider.FakeOurenseV2.run "qiskit_ibm_runtime.fake_provider.FakeOurenseV2.run") method. + + + +### props\_filename + +`= 'props_ourense.json'` + + + +### provider + +Return the backend Provider. + +**Returns** + +the Provider responsible for the backend. + +**Return type** + +Provider + + + +### target + +A `qiskit.transpiler.Target` object for the backend. + +**Return type** + +Target + + + +### version + +`= 2` + + + +### name + +Name of the backend. + + + +### description + +Optional human-readable description. + + + +### online\_date + +Date that the backend came online. + + + +### backend\_version + +Version of the backend being provided. This is not the same as `BackendV2.version`, which is the version of the `Backend` abstract interface. + +## Methods + +### acquire\_channel + + + +`acquire_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L269-L282 "view source code") + +Return the acquisition channel for the given qubit. + +This is required to be implemented if the backend supports Pulse scheduling. + +**Returns** + +The Qubit measurement acquisition line. + +**Return type** + +AcquireChannel + +### control\_channel + + + +`control_channel(qubits)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L284-L304 "view source code") + +Return the secondary drive channel for the given qubit + +This is typically utilized for controlling multiqubit interactions. This channel is derived from other channels. + +This is required to be implemented if the backend supports Pulse scheduling. + +**Parameters** + +**qubits** (`Iterable`\[`int`]) – Tuple or list of qubits of the form `(control_qubit, target_qubit)`. + +**Returns** + +The multi qubit control line. + +**Return type** + +List\[ControlChannel] + +### drive\_channel + + + +`drive_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L239-L252 "view source code") + +Return the drive channel for the given qubit. + +This is required to be implemented if the backend supports Pulse scheduling. + +**Returns** + +The Qubit drive channel + +**Return type** + +DriveChannel + +### measure\_channel + + + +`measure_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L254-L267 "view source code") + +Return the measure stimulus channel for the given qubit. + +This is required to be implemented if the backend supports Pulse scheduling. + +**Returns** + +The Qubit measurement stimulus line + +**Return type** + +MeasureChannel + +### qubit\_properties + + + +`qubit_properties(qubit)` + +Return QubitProperties for a given qubit. + +If there are no defined or the backend doesn’t support querying these details this method does not need to be implemented. + +**Parameters** + +**qubit** (`Union`\[`int`, `List`\[`int`]]) – The qubit to get the `QubitProperties` object for. This can be a single integer for 1 qubit or a list of qubits and a list of `QubitProperties` objects will be returned in the same order + +**Return type** + +`Union`\[`QubitProperties`, `List`\[`QubitProperties`]] + +**Returns** + +The `QubitProperties` object for the specified qubit. If a list of qubits is provided a list will be returned. If properties are missing for a qubit this can be `None`. + +**Raises** + +**NotImplementedError** – if the backend doesn’t support querying the qubit properties + +### run + + + +`run(run_input, **options)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L306-L365 "view source code") + +Run on the fake backend using a simulator. + +This method runs circuit jobs (an individual or a list of QuantumCircuit ) and pulse jobs (an individual or a list of Schedule or ScheduleBlock) using BasicAer simulator/ BasicSimulator or Aer simulator and returns a `Job` object. + +If qiskit-aer is installed, jobs will be run using AerSimulator with noise model of the fake backend. Otherwise, jobs will be run using BasicAer simulator/ BasicSimulator simulator without noise. + +Currently noisy simulation of a pulse job is not supported yet in FakeBackendV2. + +**Parameters** + +* **run\_input** (*QuantumCircuit or Schedule or ScheduleBlock or list*) – An individual or a list of `QuantumCircuit`, `ScheduleBlock`, or `Schedule` objects to run on the backend. +* **options** – Any kwarg options to pass to the backend for running the config. If a key is also present in the options attribute/object then the expectation is that the value specified will be used instead of what’s set in the options object. + +**Returns** + +The job object for the run + +**Return type** + +Job + +**Raises** + +**QiskitError** – If a pulse job is supplied and qiskit-aer is not installed. + +### set\_options + + + +`set_options(**fields)` + +Set the options fields for the backend + +This method is used to update the options of a backend. If you need to change any of the options prior to running just pass in the kwarg with the new value for the options. + +**Parameters** + +**fields** – The fields to update the options + +**Raises** + +**AttributeError** – If the field passed in is not part of the options + diff --git a/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeParis.md b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeParis.md new file mode 100644 index 00000000000..f4363561eae --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeParis.md @@ -0,0 +1,197 @@ +--- +title: FakeParis +description: API reference for qiskit_ibm_runtime.fake_provider.FakeParis +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.fake_provider.FakeParis +--- + +# FakeParis + + + +`FakeParis` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/backends/paris/fake_paris.py#L44-L64 "view source code") + +A fake Paris backend. + +```python + 06 17 + ↕ ↕ +00 ↔ 01 ↔ 04 ↔ 07 ↔ 10 ↔ 12 ↔ 15 ↔ 18 ↔ 20 ↔ 23 + ↕ ↕ ↕ + 02 13 24 + ↕ ↕ ↕ + 03 ↔ 05 ↔ 08 ↔ 11 ↔ 14 ↔ 16 ↔ 19 ↔ 22 ↔ 25 ↔ 26 + ↕ ↕ + 09 20 +``` + +FakeBackend initializer. + +**Parameters** + +* **configuration** (*BackendConfiguration*) – backend configuration +* **time\_alive** (*int*) – time to wait before returning result + +## Attributes + + + +### backend\_name + +`= 'fake_paris'` + + + +### conf\_filename + +`= 'conf_paris.json'` + + + +### defs\_filename + +`= 'defs_paris.json'` + + + +### dirname + +`= '/home/runner/work/qiskit-ibm-runtime/qiskit-ibm-runtime/qiskit_ibm_runtime/fake_provider/backends/paris'` + + + +### options + +Return the options for the backend + +The options of a backend are the dynamic parameters defining how the backend is used. These are used to control the [`run()`](#qiskit_ibm_runtime.fake_provider.FakeParis.run "qiskit_ibm_runtime.fake_provider.FakeParis.run") method. + + + +### props\_filename + +`= 'props_paris.json'` + + + +### version + +`= 1` + +## Methods + +### configuration + + + +`configuration()` + +Return the backend configuration. + +**Returns** + +the configuration for the backend. + +**Return type** + +BackendConfiguration + +### defaults + + + +`defaults()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_pulse_backend.py#L29-L33 "view source code") + +Returns a snapshot of device defaults + +**Return type** + +`PulseDefaults` + +### name + + + +`name()` + +Return the backend name. + +**Returns** + +the name of the backend. + +**Return type** + +str + +### properties + + + +`properties()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_qasm_backend.py#L44-L48 "view source code") + +Returns a snapshot of device properties + +**Return type** + +`BackendProperties` + +### provider + + + +`provider()` + +Return the backend Provider. + +**Returns** + +the Provider responsible for the backend. + +**Return type** + +Provider + +### run + + + +`run(run_input, **kwargs)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L545-L574 "view source code") + +Main job in simulator + +### set\_options + + + +`set_options(**fields)` + +Set the options fields for the backend + +This method is used to update the options of a backend. If you need to change any of the options prior to running just pass in the kwarg with the new value for the options. + +**Parameters** + +**fields** – The fields to update the options + +**Raises** + +**AttributeError** – If the field passed in is not part of the options + +### status + + + +`status()` + +Return the backend status. + +**Returns** + +the status of the backend. + +**Return type** + +BackendStatus + diff --git a/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeParisV2.md b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeParisV2.md new file mode 100644 index 00000000000..20bddd80ad9 --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeParisV2.md @@ -0,0 +1,389 @@ +--- +title: FakeParisV2 +description: API reference for qiskit_ibm_runtime.fake_provider.FakeParisV2 +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.fake_provider.FakeParisV2 +--- + +# FakeParisV2 + + + +`FakeParisV2` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/backends/paris/fake_paris.py#L21-L41 "view source code") + +A fake Paris backend. + +```python + 06 17 + ↕ ↕ +00 ↔ 01 ↔ 04 ↔ 07 ↔ 10 ↔ 12 ↔ 15 ↔ 18 ↔ 20 ↔ 23 + ↕ ↕ ↕ + 02 13 24 + ↕ ↕ ↕ + 03 ↔ 05 ↔ 08 ↔ 11 ↔ 14 ↔ 16 ↔ 19 ↔ 22 ↔ 25 ↔ 26 + ↕ ↕ + 09 20 +``` + +FakeBackendV2 initializer. + +## Attributes + + + +### backend\_name + +`= 'fake_paris'` + + + +### conf\_filename + +`= 'conf_paris.json'` + + + +### coupling\_map + +Return the `CouplingMap` object + + + +### defs\_filename + +`= 'defs_paris.json'` + + + +### dirname + +`= '/home/runner/work/qiskit-ibm-runtime/qiskit-ibm-runtime/qiskit_ibm_runtime/fake_provider/backends/paris'` + + + +### dt + +Return the system time resolution of input signals + +This is required to be implemented if the backend supports Pulse scheduling. + +**Return type** + +`Optional`\[`float`] + +**Returns** + +The input signal timestep in seconds. If the backend doesn’t define `dt`, `None` will be returned. + + + +### dtm + +Return the system time resolution of output signals + +**Return type** + +`float` + +**Returns** + +The output signal timestep in seconds. + + + +### instruction\_durations + +Return the `InstructionDurations` object. + + + +### instruction\_schedule\_map + +Return the `InstructionScheduleMap` for the instructions defined in this backend’s target. + + + +### instructions + +A list of Instruction tuples on the backend of the form `(instruction, (qubits)` + +**Return type** + +`List`\[`Tuple`\[`Instruction`, `Tuple`\[`int`]]] + + + +### max\_circuits + +**Return type** + +`None` + + + +### meas\_map + +Return the grouping of measurements which are multiplexed This is required to be implemented if the backend supports Pulse scheduling. + +**Return type** + +`List`\[`List`\[`int`]] + +**Returns** + +The grouping of measurements which are multiplexed + + + +### num\_qubits + +Return the number of qubits the backend has. + +**Return type** + +`int` + + + +### operation\_names + +A list of instruction names that the backend supports. + +**Return type** + +`List`\[`str`] + + + +### operations + +A list of `Instruction` instances that the backend supports. + +**Return type** + +`List`\[`Instruction`] + + + +### options + +Return the options for the backend + +The options of a backend are the dynamic parameters defining how the backend is used. These are used to control the [`run()`](#qiskit_ibm_runtime.fake_provider.FakeParisV2.run "qiskit_ibm_runtime.fake_provider.FakeParisV2.run") method. + + + +### props\_filename + +`= 'props_paris.json'` + + + +### provider + +Return the backend Provider. + +**Returns** + +the Provider responsible for the backend. + +**Return type** + +Provider + + + +### target + +A `qiskit.transpiler.Target` object for the backend. + +**Return type** + +Target + + + +### version + +`= 2` + + + +### name + +Name of the backend. + + + +### description + +Optional human-readable description. + + + +### online\_date + +Date that the backend came online. + + + +### backend\_version + +Version of the backend being provided. This is not the same as `BackendV2.version`, which is the version of the `Backend` abstract interface. + +## Methods + +### acquire\_channel + + + +`acquire_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L269-L282 "view source code") + +Return the acquisition channel for the given qubit. + +This is required to be implemented if the backend supports Pulse scheduling. + +**Returns** + +The Qubit measurement acquisition line. + +**Return type** + +AcquireChannel + +### control\_channel + + + +`control_channel(qubits)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L284-L304 "view source code") + +Return the secondary drive channel for the given qubit + +This is typically utilized for controlling multiqubit interactions. This channel is derived from other channels. + +This is required to be implemented if the backend supports Pulse scheduling. + +**Parameters** + +**qubits** (`Iterable`\[`int`]) – Tuple or list of qubits of the form `(control_qubit, target_qubit)`. + +**Returns** + +The multi qubit control line. + +**Return type** + +List\[ControlChannel] + +### drive\_channel + + + +`drive_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L239-L252 "view source code") + +Return the drive channel for the given qubit. + +This is required to be implemented if the backend supports Pulse scheduling. + +**Returns** + +The Qubit drive channel + +**Return type** + +DriveChannel + +### measure\_channel + + + +`measure_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L254-L267 "view source code") + +Return the measure stimulus channel for the given qubit. + +This is required to be implemented if the backend supports Pulse scheduling. + +**Returns** + +The Qubit measurement stimulus line + +**Return type** + +MeasureChannel + +### qubit\_properties + + + +`qubit_properties(qubit)` + +Return QubitProperties for a given qubit. + +If there are no defined or the backend doesn’t support querying these details this method does not need to be implemented. + +**Parameters** + +**qubit** (`Union`\[`int`, `List`\[`int`]]) – The qubit to get the `QubitProperties` object for. This can be a single integer for 1 qubit or a list of qubits and a list of `QubitProperties` objects will be returned in the same order + +**Return type** + +`Union`\[`QubitProperties`, `List`\[`QubitProperties`]] + +**Returns** + +The `QubitProperties` object for the specified qubit. If a list of qubits is provided a list will be returned. If properties are missing for a qubit this can be `None`. + +**Raises** + +**NotImplementedError** – if the backend doesn’t support querying the qubit properties + +### run + + + +`run(run_input, **options)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L306-L365 "view source code") + +Run on the fake backend using a simulator. + +This method runs circuit jobs (an individual or a list of QuantumCircuit ) and pulse jobs (an individual or a list of Schedule or ScheduleBlock) using BasicAer simulator/ BasicSimulator or Aer simulator and returns a `Job` object. + +If qiskit-aer is installed, jobs will be run using AerSimulator with noise model of the fake backend. Otherwise, jobs will be run using BasicAer simulator/ BasicSimulator simulator without noise. + +Currently noisy simulation of a pulse job is not supported yet in FakeBackendV2. + +**Parameters** + +* **run\_input** (*QuantumCircuit or Schedule or ScheduleBlock or list*) – An individual or a list of `QuantumCircuit`, `ScheduleBlock`, or `Schedule` objects to run on the backend. +* **options** – Any kwarg options to pass to the backend for running the config. If a key is also present in the options attribute/object then the expectation is that the value specified will be used instead of what’s set in the options object. + +**Returns** + +The job object for the run + +**Return type** + +Job + +**Raises** + +**QiskitError** – If a pulse job is supplied and qiskit-aer is not installed. + +### set\_options + + + +`set_options(**fields)` + +Set the options fields for the backend + +This method is used to update the options of a backend. If you need to change any of the options prior to running just pass in the kwarg with the new value for the options. + +**Parameters** + +**fields** – The fields to update the options + +**Raises** + +**AttributeError** – If the field passed in is not part of the options + diff --git a/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakePerth.md b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakePerth.md new file mode 100644 index 00000000000..5c4ac453e52 --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakePerth.md @@ -0,0 +1,377 @@ +--- +title: FakePerth +description: API reference for qiskit_ibm_runtime.fake_provider.FakePerth +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.fake_provider.FakePerth +--- + +# FakePerth + + + +`FakePerth` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/backends/perth/fake_perth.py#L22-L29 "view source code") + +A fake 7 qubit backend. + +FakeBackendV2 initializer. + +## Attributes + + + +### backend\_name + +`= 'fake_perth'` + + + +### conf\_filename + +`= 'conf_perth.json'` + + + +### coupling\_map + +Return the `CouplingMap` object + + + +### defs\_filename + +`= 'defs_perth.json'` + + + +### dirname + +`= '/home/runner/work/qiskit-ibm-runtime/qiskit-ibm-runtime/qiskit_ibm_runtime/fake_provider/backends/perth'` + + + +### dt + +Return the system time resolution of input signals + +This is required to be implemented if the backend supports Pulse scheduling. + +**Return type** + +`Optional`\[`float`] + +**Returns** + +The input signal timestep in seconds. If the backend doesn’t define `dt`, `None` will be returned. + + + +### dtm + +Return the system time resolution of output signals + +**Return type** + +`float` + +**Returns** + +The output signal timestep in seconds. + + + +### instruction\_durations + +Return the `InstructionDurations` object. + + + +### instruction\_schedule\_map + +Return the `InstructionScheduleMap` for the instructions defined in this backend’s target. + + + +### instructions + +A list of Instruction tuples on the backend of the form `(instruction, (qubits)` + +**Return type** + +`List`\[`Tuple`\[`Instruction`, `Tuple`\[`int`]]] + + + +### max\_circuits + +**Return type** + +`None` + + + +### meas\_map + +Return the grouping of measurements which are multiplexed This is required to be implemented if the backend supports Pulse scheduling. + +**Return type** + +`List`\[`List`\[`int`]] + +**Returns** + +The grouping of measurements which are multiplexed + + + +### num\_qubits + +Return the number of qubits the backend has. + +**Return type** + +`int` + + + +### operation\_names + +A list of instruction names that the backend supports. + +**Return type** + +`List`\[`str`] + + + +### operations + +A list of `Instruction` instances that the backend supports. + +**Return type** + +`List`\[`Instruction`] + + + +### options + +Return the options for the backend + +The options of a backend are the dynamic parameters defining how the backend is used. These are used to control the [`run()`](#qiskit_ibm_runtime.fake_provider.FakePerth.run "qiskit_ibm_runtime.fake_provider.FakePerth.run") method. + + + +### props\_filename + +`= 'props_perth.json'` + + + +### provider + +Return the backend Provider. + +**Returns** + +the Provider responsible for the backend. + +**Return type** + +Provider + + + +### target + +A `qiskit.transpiler.Target` object for the backend. + +**Return type** + +Target + + + +### version + +`= 2` + + + +### name + +Name of the backend. + + + +### description + +Optional human-readable description. + + + +### online\_date + +Date that the backend came online. + + + +### backend\_version + +Version of the backend being provided. This is not the same as `BackendV2.version`, which is the version of the `Backend` abstract interface. + +## Methods + +### acquire\_channel + + + +`acquire_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L269-L282 "view source code") + +Return the acquisition channel for the given qubit. + +This is required to be implemented if the backend supports Pulse scheduling. + +**Returns** + +The Qubit measurement acquisition line. + +**Return type** + +AcquireChannel + +### control\_channel + + + +`control_channel(qubits)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L284-L304 "view source code") + +Return the secondary drive channel for the given qubit + +This is typically utilized for controlling multiqubit interactions. This channel is derived from other channels. + +This is required to be implemented if the backend supports Pulse scheduling. + +**Parameters** + +**qubits** (`Iterable`\[`int`]) – Tuple or list of qubits of the form `(control_qubit, target_qubit)`. + +**Returns** + +The multi qubit control line. + +**Return type** + +List\[ControlChannel] + +### drive\_channel + + + +`drive_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L239-L252 "view source code") + +Return the drive channel for the given qubit. + +This is required to be implemented if the backend supports Pulse scheduling. + +**Returns** + +The Qubit drive channel + +**Return type** + +DriveChannel + +### measure\_channel + + + +`measure_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L254-L267 "view source code") + +Return the measure stimulus channel for the given qubit. + +This is required to be implemented if the backend supports Pulse scheduling. + +**Returns** + +The Qubit measurement stimulus line + +**Return type** + +MeasureChannel + +### qubit\_properties + + + +`qubit_properties(qubit)` + +Return QubitProperties for a given qubit. + +If there are no defined or the backend doesn’t support querying these details this method does not need to be implemented. + +**Parameters** + +**qubit** (`Union`\[`int`, `List`\[`int`]]) – The qubit to get the `QubitProperties` object for. This can be a single integer for 1 qubit or a list of qubits and a list of `QubitProperties` objects will be returned in the same order + +**Return type** + +`Union`\[`QubitProperties`, `List`\[`QubitProperties`]] + +**Returns** + +The `QubitProperties` object for the specified qubit. If a list of qubits is provided a list will be returned. If properties are missing for a qubit this can be `None`. + +**Raises** + +**NotImplementedError** – if the backend doesn’t support querying the qubit properties + +### run + + + +`run(run_input, **options)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L306-L365 "view source code") + +Run on the fake backend using a simulator. + +This method runs circuit jobs (an individual or a list of QuantumCircuit ) and pulse jobs (an individual or a list of Schedule or ScheduleBlock) using BasicAer simulator/ BasicSimulator or Aer simulator and returns a `Job` object. + +If qiskit-aer is installed, jobs will be run using AerSimulator with noise model of the fake backend. Otherwise, jobs will be run using BasicAer simulator/ BasicSimulator simulator without noise. + +Currently noisy simulation of a pulse job is not supported yet in FakeBackendV2. + +**Parameters** + +* **run\_input** (*QuantumCircuit or Schedule or ScheduleBlock or list*) – An individual or a list of `QuantumCircuit`, `ScheduleBlock`, or `Schedule` objects to run on the backend. +* **options** – Any kwarg options to pass to the backend for running the config. If a key is also present in the options attribute/object then the expectation is that the value specified will be used instead of what’s set in the options object. + +**Returns** + +The job object for the run + +**Return type** + +Job + +**Raises** + +**QiskitError** – If a pulse job is supplied and qiskit-aer is not installed. + +### set\_options + + + +`set_options(**fields)` + +Set the options fields for the backend + +This method is used to update the options of a backend. If you need to change any of the options prior to running just pass in the kwarg with the new value for the options. + +**Parameters** + +**fields** – The fields to update the options + +**Raises** + +**AttributeError** – If the field passed in is not part of the options + diff --git a/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakePoughkeepsie.md b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakePoughkeepsie.md new file mode 100644 index 00000000000..9c96dcf3b52 --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakePoughkeepsie.md @@ -0,0 +1,146 @@ +--- +title: FakePoughkeepsie +description: API reference for qiskit_ibm_runtime.fake_provider.FakePoughkeepsie +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.fake_provider.FakePoughkeepsie +--- + +# FakePoughkeepsie + + + +`FakePoughkeepsie` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/backends/poughkeepsie/fake_poughkeepsie.py#L39-L128 "view source code") + +A fake Poughkeepsie backend. + +```python +00 ↔ 01 ↔ 02 ↔ 03 ↔ 04 + ↕ ↕ +05 ↔ 06 ↔ 07 ↔ 08 ↔ 09 + ↕ ↕ ↕ +10 ↔ 11 ↔ 12 ↔ 13 ↔ 14 + ↕ ↕ +15 ↔ 16 ↔ 17 ↔ 18 ↔ 19 +``` + +## Attributes + + + +### options + +Return the options for the backend + +The options of a backend are the dynamic parameters defining how the backend is used. These are used to control the [`run()`](#qiskit_ibm_runtime.fake_provider.FakePoughkeepsie.run "qiskit_ibm_runtime.fake_provider.FakePoughkeepsie.run") method. + + + +### version + +`= 1` + +## Methods + +### configuration + + + +`configuration()` + +Return the backend configuration. + +**Returns** + +the configuration for the backend. + +**Return type** + +BackendConfiguration + +### name + + + +`name()` + +Return the backend name. + +**Returns** + +the name of the backend. + +**Return type** + +str + +### properties + + + +`properties()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/backends/poughkeepsie/fake_poughkeepsie.py#L122-L128 "view source code") + +Returns a snapshot of device properties + +**Return type** + +`BackendProperties` + +### provider + + + +`provider()` + +Return the backend Provider. + +**Returns** + +the Provider responsible for the backend. + +**Return type** + +Provider + +### run + + + +`run(run_input, **kwargs)` + +Main job in simulator + +### set\_options + + + +`set_options(**fields)` + +Set the options fields for the backend + +This method is used to update the options of a backend. If you need to change any of the options prior to running just pass in the kwarg with the new value for the options. + +**Parameters** + +**fields** – The fields to update the options + +**Raises** + +**AttributeError** – If the field passed in is not part of the options + +### status + + + +`status()` + +Return the backend status. + +**Returns** + +the status of the backend. + +**Return type** + +BackendStatus + diff --git a/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakePoughkeepsieV2.md b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakePoughkeepsieV2.md new file mode 100644 index 00000000000..cab29be2a95 --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakePoughkeepsieV2.md @@ -0,0 +1,377 @@ +--- +title: FakePoughkeepsieV2 +description: API reference for qiskit_ibm_runtime.fake_provider.FakePoughkeepsieV2 +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.fake_provider.FakePoughkeepsieV2 +--- + +# FakePoughkeepsieV2 + + + +`FakePoughkeepsieV2` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/backends/poughkeepsie/fake_poughkeepsie.py#L29-L36 "view source code") + +A fake Poughkeepsie backend. + +FakeBackendV2 initializer. + +## Attributes + + + +### backend\_name + +`= 'fake_poughkeepsie'` + + + +### conf\_filename + +`= 'conf_poughkeepsie.json'` + + + +### coupling\_map + +Return the `CouplingMap` object + + + +### defs\_filename + +`= 'defs_poughkeepsie.json'` + + + +### dirname + +`= '/home/runner/work/qiskit-ibm-runtime/qiskit-ibm-runtime/qiskit_ibm_runtime/fake_provider/backends/poughkeepsie'` + + + +### dt + +Return the system time resolution of input signals + +This is required to be implemented if the backend supports Pulse scheduling. + +**Return type** + +`Optional`\[`float`] + +**Returns** + +The input signal timestep in seconds. If the backend doesn’t define `dt`, `None` will be returned. + + + +### dtm + +Return the system time resolution of output signals + +**Return type** + +`float` + +**Returns** + +The output signal timestep in seconds. + + + +### instruction\_durations + +Return the `InstructionDurations` object. + + + +### instruction\_schedule\_map + +Return the `InstructionScheduleMap` for the instructions defined in this backend’s target. + + + +### instructions + +A list of Instruction tuples on the backend of the form `(instruction, (qubits)` + +**Return type** + +`List`\[`Tuple`\[`Instruction`, `Tuple`\[`int`]]] + + + +### max\_circuits + +**Return type** + +`None` + + + +### meas\_map + +Return the grouping of measurements which are multiplexed This is required to be implemented if the backend supports Pulse scheduling. + +**Return type** + +`List`\[`List`\[`int`]] + +**Returns** + +The grouping of measurements which are multiplexed + + + +### num\_qubits + +Return the number of qubits the backend has. + +**Return type** + +`int` + + + +### operation\_names + +A list of instruction names that the backend supports. + +**Return type** + +`List`\[`str`] + + + +### operations + +A list of `Instruction` instances that the backend supports. + +**Return type** + +`List`\[`Instruction`] + + + +### options + +Return the options for the backend + +The options of a backend are the dynamic parameters defining how the backend is used. These are used to control the [`run()`](#qiskit_ibm_runtime.fake_provider.FakePoughkeepsieV2.run "qiskit_ibm_runtime.fake_provider.FakePoughkeepsieV2.run") method. + + + +### props\_filename + +`= 'props_poughkeepsie.json'` + + + +### provider + +Return the backend Provider. + +**Returns** + +the Provider responsible for the backend. + +**Return type** + +Provider + + + +### target + +A `qiskit.transpiler.Target` object for the backend. + +**Return type** + +Target + + + +### version + +`= 2` + + + +### name + +Name of the backend. + + + +### description + +Optional human-readable description. + + + +### online\_date + +Date that the backend came online. + + + +### backend\_version + +Version of the backend being provided. This is not the same as `BackendV2.version`, which is the version of the `Backend` abstract interface. + +## Methods + +### acquire\_channel + + + +`acquire_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L269-L282 "view source code") + +Return the acquisition channel for the given qubit. + +This is required to be implemented if the backend supports Pulse scheduling. + +**Returns** + +The Qubit measurement acquisition line. + +**Return type** + +AcquireChannel + +### control\_channel + + + +`control_channel(qubits)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L284-L304 "view source code") + +Return the secondary drive channel for the given qubit + +This is typically utilized for controlling multiqubit interactions. This channel is derived from other channels. + +This is required to be implemented if the backend supports Pulse scheduling. + +**Parameters** + +**qubits** (`Iterable`\[`int`]) – Tuple or list of qubits of the form `(control_qubit, target_qubit)`. + +**Returns** + +The multi qubit control line. + +**Return type** + +List\[ControlChannel] + +### drive\_channel + + + +`drive_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L239-L252 "view source code") + +Return the drive channel for the given qubit. + +This is required to be implemented if the backend supports Pulse scheduling. + +**Returns** + +The Qubit drive channel + +**Return type** + +DriveChannel + +### measure\_channel + + + +`measure_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L254-L267 "view source code") + +Return the measure stimulus channel for the given qubit. + +This is required to be implemented if the backend supports Pulse scheduling. + +**Returns** + +The Qubit measurement stimulus line + +**Return type** + +MeasureChannel + +### qubit\_properties + + + +`qubit_properties(qubit)` + +Return QubitProperties for a given qubit. + +If there are no defined or the backend doesn’t support querying these details this method does not need to be implemented. + +**Parameters** + +**qubit** (`Union`\[`int`, `List`\[`int`]]) – The qubit to get the `QubitProperties` object for. This can be a single integer for 1 qubit or a list of qubits and a list of `QubitProperties` objects will be returned in the same order + +**Return type** + +`Union`\[`QubitProperties`, `List`\[`QubitProperties`]] + +**Returns** + +The `QubitProperties` object for the specified qubit. If a list of qubits is provided a list will be returned. If properties are missing for a qubit this can be `None`. + +**Raises** + +**NotImplementedError** – if the backend doesn’t support querying the qubit properties + +### run + + + +`run(run_input, **options)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L306-L365 "view source code") + +Run on the fake backend using a simulator. + +This method runs circuit jobs (an individual or a list of QuantumCircuit ) and pulse jobs (an individual or a list of Schedule or ScheduleBlock) using BasicAer simulator/ BasicSimulator or Aer simulator and returns a `Job` object. + +If qiskit-aer is installed, jobs will be run using AerSimulator with noise model of the fake backend. Otherwise, jobs will be run using BasicAer simulator/ BasicSimulator simulator without noise. + +Currently noisy simulation of a pulse job is not supported yet in FakeBackendV2. + +**Parameters** + +* **run\_input** (*QuantumCircuit or Schedule or ScheduleBlock or list*) – An individual or a list of `QuantumCircuit`, `ScheduleBlock`, or `Schedule` objects to run on the backend. +* **options** – Any kwarg options to pass to the backend for running the config. If a key is also present in the options attribute/object then the expectation is that the value specified will be used instead of what’s set in the options object. + +**Returns** + +The job object for the run + +**Return type** + +Job + +**Raises** + +**QiskitError** – If a pulse job is supplied and qiskit-aer is not installed. + +### set\_options + + + +`set_options(**fields)` + +Set the options fields for the backend + +This method is used to update the options of a backend. If you need to change any of the options prior to running just pass in the kwarg with the new value for the options. + +**Parameters** + +**fields** – The fields to update the options + +**Raises** + +**AttributeError** – If the field passed in is not part of the options + diff --git a/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakePrague.md b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakePrague.md new file mode 100644 index 00000000000..99413c085f4 --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakePrague.md @@ -0,0 +1,377 @@ +--- +title: FakePrague +description: API reference for qiskit_ibm_runtime.fake_provider.FakePrague +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.fake_provider.FakePrague +--- + +# FakePrague + + + +`FakePrague` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/backends/prague/fake_prague.py#L22-L28 "view source code") + +A fake 33 qubit backend. + +FakeBackendV2 initializer. + +## Attributes + + + +### backend\_name + +`= 'fake_prague'` + + + +### conf\_filename + +`= 'conf_prague.json'` + + + +### coupling\_map + +Return the `CouplingMap` object + + + +### defs\_filename + +`= None` + + + +### dirname + +`= '/home/runner/work/qiskit-ibm-runtime/qiskit-ibm-runtime/qiskit_ibm_runtime/fake_provider/backends/prague'` + + + +### dt + +Return the system time resolution of input signals + +This is required to be implemented if the backend supports Pulse scheduling. + +**Return type** + +`Optional`\[`float`] + +**Returns** + +The input signal timestep in seconds. If the backend doesn’t define `dt`, `None` will be returned. + + + +### dtm + +Return the system time resolution of output signals + +**Return type** + +`float` + +**Returns** + +The output signal timestep in seconds. + + + +### instruction\_durations + +Return the `InstructionDurations` object. + + + +### instruction\_schedule\_map + +Return the `InstructionScheduleMap` for the instructions defined in this backend’s target. + + + +### instructions + +A list of Instruction tuples on the backend of the form `(instruction, (qubits)` + +**Return type** + +`List`\[`Tuple`\[`Instruction`, `Tuple`\[`int`]]] + + + +### max\_circuits + +**Return type** + +`None` + + + +### meas\_map + +Return the grouping of measurements which are multiplexed This is required to be implemented if the backend supports Pulse scheduling. + +**Return type** + +`List`\[`List`\[`int`]] + +**Returns** + +The grouping of measurements which are multiplexed + + + +### num\_qubits + +Return the number of qubits the backend has. + +**Return type** + +`int` + + + +### operation\_names + +A list of instruction names that the backend supports. + +**Return type** + +`List`\[`str`] + + + +### operations + +A list of `Instruction` instances that the backend supports. + +**Return type** + +`List`\[`Instruction`] + + + +### options + +Return the options for the backend + +The options of a backend are the dynamic parameters defining how the backend is used. These are used to control the [`run()`](#qiskit_ibm_runtime.fake_provider.FakePrague.run "qiskit_ibm_runtime.fake_provider.FakePrague.run") method. + + + +### props\_filename + +`= 'props_prague.json'` + + + +### provider + +Return the backend Provider. + +**Returns** + +the Provider responsible for the backend. + +**Return type** + +Provider + + + +### target + +A `qiskit.transpiler.Target` object for the backend. + +**Return type** + +Target + + + +### version + +`= 2` + + + +### name + +Name of the backend. + + + +### description + +Optional human-readable description. + + + +### online\_date + +Date that the backend came online. + + + +### backend\_version + +Version of the backend being provided. This is not the same as `BackendV2.version`, which is the version of the `Backend` abstract interface. + +## Methods + +### acquire\_channel + + + +`acquire_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L269-L282 "view source code") + +Return the acquisition channel for the given qubit. + +This is required to be implemented if the backend supports Pulse scheduling. + +**Returns** + +The Qubit measurement acquisition line. + +**Return type** + +AcquireChannel + +### control\_channel + + + +`control_channel(qubits)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L284-L304 "view source code") + +Return the secondary drive channel for the given qubit + +This is typically utilized for controlling multiqubit interactions. This channel is derived from other channels. + +This is required to be implemented if the backend supports Pulse scheduling. + +**Parameters** + +**qubits** (`Iterable`\[`int`]) – Tuple or list of qubits of the form `(control_qubit, target_qubit)`. + +**Returns** + +The multi qubit control line. + +**Return type** + +List\[ControlChannel] + +### drive\_channel + + + +`drive_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L239-L252 "view source code") + +Return the drive channel for the given qubit. + +This is required to be implemented if the backend supports Pulse scheduling. + +**Returns** + +The Qubit drive channel + +**Return type** + +DriveChannel + +### measure\_channel + + + +`measure_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L254-L267 "view source code") + +Return the measure stimulus channel for the given qubit. + +This is required to be implemented if the backend supports Pulse scheduling. + +**Returns** + +The Qubit measurement stimulus line + +**Return type** + +MeasureChannel + +### qubit\_properties + + + +`qubit_properties(qubit)` + +Return QubitProperties for a given qubit. + +If there are no defined or the backend doesn’t support querying these details this method does not need to be implemented. + +**Parameters** + +**qubit** (`Union`\[`int`, `List`\[`int`]]) – The qubit to get the `QubitProperties` object for. This can be a single integer for 1 qubit or a list of qubits and a list of `QubitProperties` objects will be returned in the same order + +**Return type** + +`Union`\[`QubitProperties`, `List`\[`QubitProperties`]] + +**Returns** + +The `QubitProperties` object for the specified qubit. If a list of qubits is provided a list will be returned. If properties are missing for a qubit this can be `None`. + +**Raises** + +**NotImplementedError** – if the backend doesn’t support querying the qubit properties + +### run + + + +`run(run_input, **options)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L306-L365 "view source code") + +Run on the fake backend using a simulator. + +This method runs circuit jobs (an individual or a list of QuantumCircuit ) and pulse jobs (an individual or a list of Schedule or ScheduleBlock) using BasicAer simulator/ BasicSimulator or Aer simulator and returns a `Job` object. + +If qiskit-aer is installed, jobs will be run using AerSimulator with noise model of the fake backend. Otherwise, jobs will be run using BasicAer simulator/ BasicSimulator simulator without noise. + +Currently noisy simulation of a pulse job is not supported yet in FakeBackendV2. + +**Parameters** + +* **run\_input** (*QuantumCircuit or Schedule or ScheduleBlock or list*) – An individual or a list of `QuantumCircuit`, `ScheduleBlock`, or `Schedule` objects to run on the backend. +* **options** – Any kwarg options to pass to the backend for running the config. If a key is also present in the options attribute/object then the expectation is that the value specified will be used instead of what’s set in the options object. + +**Returns** + +The job object for the run + +**Return type** + +Job + +**Raises** + +**QiskitError** – If a pulse job is supplied and qiskit-aer is not installed. + +### set\_options + + + +`set_options(**fields)` + +Set the options fields for the backend + +This method is used to update the options of a backend. If you need to change any of the options prior to running just pass in the kwarg with the new value for the options. + +**Parameters** + +**fields** – The fields to update the options + +**Raises** + +**AttributeError** – If the field passed in is not part of the options + diff --git a/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeProvider.md b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeProvider.md new file mode 100644 index 00000000000..0deceb327aa --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeProvider.md @@ -0,0 +1,76 @@ +--- +title: FakeProvider +description: API reference for qiskit_ibm_runtime.fake_provider.FakeProvider +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.fake_provider.FakeProvider +--- + +# FakeProvider + + + +`FakeProvider` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_provider.py#L142-L211 "view source code") + +Fake provider containing fake V1 backends. + +Only filtering backends by name is implemented. This class contains all fake V1 backends available in the [`qiskit_ibm_runtime.fake_provider`](fake_provider#module-qiskit_ibm_runtime.fake_provider "qiskit_ibm_runtime.fake_provider"). + +## Attributes + + + +### version + +`= 1` + +## Methods + +### backends + + + +`backends(name=None, **kwargs)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_provider.py#L160-L161 "view source code") + +Return a list of backends matching the specified filtering. + +**Parameters** + +* **name** (*str*) – name of the backend. +* **\*\*kwargs** – dict used for filtering. + +**Returns** + +**a list of Backends that match the filtering** + +criteria. + +**Return type** + +list\[Backend] + +### get\_backend + + + +`get_backend(name=None, **kwargs)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_provider.py#L149-L158 "view source code") + +Return a single backend matching the specified filtering. + +**Parameters** + +* **name** (*str*) – name of the backend. +* **\*\*kwargs** – dict used for filtering. + +**Returns** + +a backend matching the filtering. + +**Return type** + +Backend + +**Raises** + +**QiskitBackendNotFoundError** – if no backend could be found or more than one backend matches the filtering criteria. + diff --git a/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeProviderForBackendV2.md b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeProviderForBackendV2.md new file mode 100644 index 00000000000..bd71cb19f20 --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeProviderForBackendV2.md @@ -0,0 +1,84 @@ +--- +title: FakeProviderForBackendV2 +description: API reference for qiskit_ibm_runtime.fake_provider.FakeProviderForBackendV2 +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.fake_provider.FakeProviderForBackendV2 +--- + +# FakeProviderForBackendV2 + + + +`FakeProviderForBackendV2` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_provider.py#L65-L139 "view source code") + +Fake provider containing fake V2 backends. + +Only filtering backends by name is implemented. This class contains all fake V2 backends available in the [`qiskit_ibm_runtime.fake_provider`](fake_provider#module-qiskit_ibm_runtime.fake_provider "qiskit_ibm_runtime.fake_provider"). + +## Attributes + + + +### version + +`= 1` + +## Methods + +### backend + + + +`backend(name=None, **kwargs)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_provider.py#L72-L84 "view source code") + +Filter backends in provider by name. + +### backends + + + +`backends(name=None, **kwargs)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_provider.py#L86-L87 "view source code") + +Return a list of backends matching the specified filtering. + +**Parameters** + +* **name** (*str*) – name of the backend. +* **\*\*kwargs** – dict used for filtering. + +**Returns** + +**a list of Backends that match the filtering** + +criteria. + +**Return type** + +list\[Backend] + +### get\_backend + + + +`get_backend(name=None, **kwargs)` + +Return a single backend matching the specified filtering. + +**Parameters** + +* **name** (*str*) – name of the backend. +* **\*\*kwargs** – dict used for filtering. + +**Returns** + +a backend matching the filtering. + +**Return type** + +Backend + +**Raises** + +**QiskitBackendNotFoundError** – if no backend could be found or more than one backend matches the filtering criteria. + diff --git a/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeQuito.md b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeQuito.md new file mode 100644 index 00000000000..af26d993790 --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeQuito.md @@ -0,0 +1,185 @@ +--- +title: FakeQuito +description: API reference for qiskit_ibm_runtime.fake_provider.FakeQuito +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.fake_provider.FakeQuito +--- + +# FakeQuito + + + +`FakeQuito` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/backends/quito/fake_quito.py#L31-L38 "view source code") + +A fake 5 qubit backend. + +FakeBackend initializer. + +**Parameters** + +* **configuration** (*BackendConfiguration*) – backend configuration +* **time\_alive** (*int*) – time to wait before returning result + +## Attributes + + + +### backend\_name + +`= 'fake_quito'` + + + +### conf\_filename + +`= 'conf_quito.json'` + + + +### defs\_filename + +`= 'defs_quito.json'` + + + +### dirname + +`= '/home/runner/work/qiskit-ibm-runtime/qiskit-ibm-runtime/qiskit_ibm_runtime/fake_provider/backends/quito'` + + + +### options + +Return the options for the backend + +The options of a backend are the dynamic parameters defining how the backend is used. These are used to control the [`run()`](#qiskit_ibm_runtime.fake_provider.FakeQuito.run "qiskit_ibm_runtime.fake_provider.FakeQuito.run") method. + + + +### props\_filename + +`= 'props_quito.json'` + + + +### version + +`= 1` + +## Methods + +### configuration + + + +`configuration()` + +Return the backend configuration. + +**Returns** + +the configuration for the backend. + +**Return type** + +BackendConfiguration + +### defaults + + + +`defaults()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_pulse_backend.py#L29-L33 "view source code") + +Returns a snapshot of device defaults + +**Return type** + +`PulseDefaults` + +### name + + + +`name()` + +Return the backend name. + +**Returns** + +the name of the backend. + +**Return type** + +str + +### properties + + + +`properties()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_qasm_backend.py#L44-L48 "view source code") + +Returns a snapshot of device properties + +**Return type** + +`BackendProperties` + +### provider + + + +`provider()` + +Return the backend Provider. + +**Returns** + +the Provider responsible for the backend. + +**Return type** + +Provider + +### run + + + +`run(run_input, **kwargs)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L545-L574 "view source code") + +Main job in simulator + +### set\_options + + + +`set_options(**fields)` + +Set the options fields for the backend + +This method is used to update the options of a backend. If you need to change any of the options prior to running just pass in the kwarg with the new value for the options. + +**Parameters** + +**fields** – The fields to update the options + +**Raises** + +**AttributeError** – If the field passed in is not part of the options + +### status + + + +`status()` + +Return the backend status. + +**Returns** + +the status of the backend. + +**Return type** + +BackendStatus + diff --git a/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeQuitoV2.md b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeQuitoV2.md new file mode 100644 index 00000000000..194156b6493 --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeQuitoV2.md @@ -0,0 +1,377 @@ +--- +title: FakeQuitoV2 +description: API reference for qiskit_ibm_runtime.fake_provider.FakeQuitoV2 +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.fake_provider.FakeQuitoV2 +--- + +# FakeQuitoV2 + + + +`FakeQuitoV2` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/backends/quito/fake_quito.py#L21-L28 "view source code") + +A fake 5 qubit backend. + +FakeBackendV2 initializer. + +## Attributes + + + +### backend\_name + +`= 'fake_quito'` + + + +### conf\_filename + +`= 'conf_quito.json'` + + + +### coupling\_map + +Return the `CouplingMap` object + + + +### defs\_filename + +`= 'defs_quito.json'` + + + +### dirname + +`= '/home/runner/work/qiskit-ibm-runtime/qiskit-ibm-runtime/qiskit_ibm_runtime/fake_provider/backends/quito'` + + + +### dt + +Return the system time resolution of input signals + +This is required to be implemented if the backend supports Pulse scheduling. + +**Return type** + +`Optional`\[`float`] + +**Returns** + +The input signal timestep in seconds. If the backend doesn’t define `dt`, `None` will be returned. + + + +### dtm + +Return the system time resolution of output signals + +**Return type** + +`float` + +**Returns** + +The output signal timestep in seconds. + + + +### instruction\_durations + +Return the `InstructionDurations` object. + + + +### instruction\_schedule\_map + +Return the `InstructionScheduleMap` for the instructions defined in this backend’s target. + + + +### instructions + +A list of Instruction tuples on the backend of the form `(instruction, (qubits)` + +**Return type** + +`List`\[`Tuple`\[`Instruction`, `Tuple`\[`int`]]] + + + +### max\_circuits + +**Return type** + +`None` + + + +### meas\_map + +Return the grouping of measurements which are multiplexed This is required to be implemented if the backend supports Pulse scheduling. + +**Return type** + +`List`\[`List`\[`int`]] + +**Returns** + +The grouping of measurements which are multiplexed + + + +### num\_qubits + +Return the number of qubits the backend has. + +**Return type** + +`int` + + + +### operation\_names + +A list of instruction names that the backend supports. + +**Return type** + +`List`\[`str`] + + + +### operations + +A list of `Instruction` instances that the backend supports. + +**Return type** + +`List`\[`Instruction`] + + + +### options + +Return the options for the backend + +The options of a backend are the dynamic parameters defining how the backend is used. These are used to control the [`run()`](#qiskit_ibm_runtime.fake_provider.FakeQuitoV2.run "qiskit_ibm_runtime.fake_provider.FakeQuitoV2.run") method. + + + +### props\_filename + +`= 'props_quito.json'` + + + +### provider + +Return the backend Provider. + +**Returns** + +the Provider responsible for the backend. + +**Return type** + +Provider + + + +### target + +A `qiskit.transpiler.Target` object for the backend. + +**Return type** + +Target + + + +### version + +`= 2` + + + +### name + +Name of the backend. + + + +### description + +Optional human-readable description. + + + +### online\_date + +Date that the backend came online. + + + +### backend\_version + +Version of the backend being provided. This is not the same as `BackendV2.version`, which is the version of the `Backend` abstract interface. + +## Methods + +### acquire\_channel + + + +`acquire_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L269-L282 "view source code") + +Return the acquisition channel for the given qubit. + +This is required to be implemented if the backend supports Pulse scheduling. + +**Returns** + +The Qubit measurement acquisition line. + +**Return type** + +AcquireChannel + +### control\_channel + + + +`control_channel(qubits)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L284-L304 "view source code") + +Return the secondary drive channel for the given qubit + +This is typically utilized for controlling multiqubit interactions. This channel is derived from other channels. + +This is required to be implemented if the backend supports Pulse scheduling. + +**Parameters** + +**qubits** (`Iterable`\[`int`]) – Tuple or list of qubits of the form `(control_qubit, target_qubit)`. + +**Returns** + +The multi qubit control line. + +**Return type** + +List\[ControlChannel] + +### drive\_channel + + + +`drive_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L239-L252 "view source code") + +Return the drive channel for the given qubit. + +This is required to be implemented if the backend supports Pulse scheduling. + +**Returns** + +The Qubit drive channel + +**Return type** + +DriveChannel + +### measure\_channel + + + +`measure_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L254-L267 "view source code") + +Return the measure stimulus channel for the given qubit. + +This is required to be implemented if the backend supports Pulse scheduling. + +**Returns** + +The Qubit measurement stimulus line + +**Return type** + +MeasureChannel + +### qubit\_properties + + + +`qubit_properties(qubit)` + +Return QubitProperties for a given qubit. + +If there are no defined or the backend doesn’t support querying these details this method does not need to be implemented. + +**Parameters** + +**qubit** (`Union`\[`int`, `List`\[`int`]]) – The qubit to get the `QubitProperties` object for. This can be a single integer for 1 qubit or a list of qubits and a list of `QubitProperties` objects will be returned in the same order + +**Return type** + +`Union`\[`QubitProperties`, `List`\[`QubitProperties`]] + +**Returns** + +The `QubitProperties` object for the specified qubit. If a list of qubits is provided a list will be returned. If properties are missing for a qubit this can be `None`. + +**Raises** + +**NotImplementedError** – if the backend doesn’t support querying the qubit properties + +### run + + + +`run(run_input, **options)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L306-L365 "view source code") + +Run on the fake backend using a simulator. + +This method runs circuit jobs (an individual or a list of QuantumCircuit ) and pulse jobs (an individual or a list of Schedule or ScheduleBlock) using BasicAer simulator/ BasicSimulator or Aer simulator and returns a `Job` object. + +If qiskit-aer is installed, jobs will be run using AerSimulator with noise model of the fake backend. Otherwise, jobs will be run using BasicAer simulator/ BasicSimulator simulator without noise. + +Currently noisy simulation of a pulse job is not supported yet in FakeBackendV2. + +**Parameters** + +* **run\_input** (*QuantumCircuit or Schedule or ScheduleBlock or list*) – An individual or a list of `QuantumCircuit`, `ScheduleBlock`, or `Schedule` objects to run on the backend. +* **options** – Any kwarg options to pass to the backend for running the config. If a key is also present in the options attribute/object then the expectation is that the value specified will be used instead of what’s set in the options object. + +**Returns** + +The job object for the run + +**Return type** + +Job + +**Raises** + +**QiskitError** – If a pulse job is supplied and qiskit-aer is not installed. + +### set\_options + + + +`set_options(**fields)` + +Set the options fields for the backend + +This method is used to update the options of a backend. If you need to change any of the options prior to running just pass in the kwarg with the new value for the options. + +**Parameters** + +**fields** – The fields to update the options + +**Raises** + +**AttributeError** – If the field passed in is not part of the options + diff --git a/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeRochester.md b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeRochester.md new file mode 100644 index 00000000000..81179f2ba44 --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeRochester.md @@ -0,0 +1,167 @@ +--- +title: FakeRochester +description: API reference for qiskit_ibm_runtime.fake_provider.FakeRochester +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.fake_provider.FakeRochester +--- + +# FakeRochester + + + +`FakeRochester` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/backends/rochester/fake_rochester.py#L30-L36 "view source code") + +A fake Rochester backend. + +FakeBackend initializer. + +**Parameters** + +* **configuration** (*BackendConfiguration*) – backend configuration +* **time\_alive** (*int*) – time to wait before returning result + +## Attributes + + + +### backend\_name + +`= 'fake_rochester'` + + + +### conf\_filename + +`= 'conf_rochester.json'` + + + +### dirname + +`= '/home/runner/work/qiskit-ibm-runtime/qiskit-ibm-runtime/qiskit_ibm_runtime/fake_provider/backends/rochester'` + + + +### options + +Return the options for the backend + +The options of a backend are the dynamic parameters defining how the backend is used. These are used to control the [`run()`](#qiskit_ibm_runtime.fake_provider.FakeRochester.run "qiskit_ibm_runtime.fake_provider.FakeRochester.run") method. + + + +### props\_filename + +`= 'props_rochester.json'` + + + +### version + +`= 1` + +## Methods + +### configuration + + + +`configuration()` + +Return the backend configuration. + +**Returns** + +the configuration for the backend. + +**Return type** + +BackendConfiguration + +### name + + + +`name()` + +Return the backend name. + +**Returns** + +the name of the backend. + +**Return type** + +str + +### properties + + + +`properties()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_qasm_backend.py#L44-L48 "view source code") + +Returns a snapshot of device properties + +**Return type** + +`BackendProperties` + +### provider + + + +`provider()` + +Return the backend Provider. + +**Returns** + +the Provider responsible for the backend. + +**Return type** + +Provider + +### run + + + +`run(run_input, **kwargs)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L545-L574 "view source code") + +Main job in simulator + +### set\_options + + + +`set_options(**fields)` + +Set the options fields for the backend + +This method is used to update the options of a backend. If you need to change any of the options prior to running just pass in the kwarg with the new value for the options. + +**Parameters** + +**fields** – The fields to update the options + +**Raises** + +**AttributeError** – If the field passed in is not part of the options + +### status + + + +`status()` + +Return the backend status. + +**Returns** + +the status of the backend. + +**Return type** + +BackendStatus + diff --git a/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeRochesterV2.md b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeRochesterV2.md new file mode 100644 index 00000000000..b25d523c06c --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeRochesterV2.md @@ -0,0 +1,377 @@ +--- +title: FakeRochesterV2 +description: API reference for qiskit_ibm_runtime.fake_provider.FakeRochesterV2 +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.fake_provider.FakeRochesterV2 +--- + +# FakeRochesterV2 + + + +`FakeRochesterV2` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/backends/rochester/fake_rochester.py#L21-L27 "view source code") + +A fake Rochester backend. + +FakeBackendV2 initializer. + +## Attributes + + + +### backend\_name + +`= 'fake_rochester'` + + + +### conf\_filename + +`= 'conf_rochester.json'` + + + +### coupling\_map + +Return the `CouplingMap` object + + + +### defs\_filename + +`= None` + + + +### dirname + +`= '/home/runner/work/qiskit-ibm-runtime/qiskit-ibm-runtime/qiskit_ibm_runtime/fake_provider/backends/rochester'` + + + +### dt + +Return the system time resolution of input signals + +This is required to be implemented if the backend supports Pulse scheduling. + +**Return type** + +`Optional`\[`float`] + +**Returns** + +The input signal timestep in seconds. If the backend doesn’t define `dt`, `None` will be returned. + + + +### dtm + +Return the system time resolution of output signals + +**Return type** + +`float` + +**Returns** + +The output signal timestep in seconds. + + + +### instruction\_durations + +Return the `InstructionDurations` object. + + + +### instruction\_schedule\_map + +Return the `InstructionScheduleMap` for the instructions defined in this backend’s target. + + + +### instructions + +A list of Instruction tuples on the backend of the form `(instruction, (qubits)` + +**Return type** + +`List`\[`Tuple`\[`Instruction`, `Tuple`\[`int`]]] + + + +### max\_circuits + +**Return type** + +`None` + + + +### meas\_map + +Return the grouping of measurements which are multiplexed This is required to be implemented if the backend supports Pulse scheduling. + +**Return type** + +`List`\[`List`\[`int`]] + +**Returns** + +The grouping of measurements which are multiplexed + + + +### num\_qubits + +Return the number of qubits the backend has. + +**Return type** + +`int` + + + +### operation\_names + +A list of instruction names that the backend supports. + +**Return type** + +`List`\[`str`] + + + +### operations + +A list of `Instruction` instances that the backend supports. + +**Return type** + +`List`\[`Instruction`] + + + +### options + +Return the options for the backend + +The options of a backend are the dynamic parameters defining how the backend is used. These are used to control the [`run()`](#qiskit_ibm_runtime.fake_provider.FakeRochesterV2.run "qiskit_ibm_runtime.fake_provider.FakeRochesterV2.run") method. + + + +### props\_filename + +`= 'props_rochester.json'` + + + +### provider + +Return the backend Provider. + +**Returns** + +the Provider responsible for the backend. + +**Return type** + +Provider + + + +### target + +A `qiskit.transpiler.Target` object for the backend. + +**Return type** + +Target + + + +### version + +`= 2` + + + +### name + +Name of the backend. + + + +### description + +Optional human-readable description. + + + +### online\_date + +Date that the backend came online. + + + +### backend\_version + +Version of the backend being provided. This is not the same as `BackendV2.version`, which is the version of the `Backend` abstract interface. + +## Methods + +### acquire\_channel + + + +`acquire_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L269-L282 "view source code") + +Return the acquisition channel for the given qubit. + +This is required to be implemented if the backend supports Pulse scheduling. + +**Returns** + +The Qubit measurement acquisition line. + +**Return type** + +AcquireChannel + +### control\_channel + + + +`control_channel(qubits)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L284-L304 "view source code") + +Return the secondary drive channel for the given qubit + +This is typically utilized for controlling multiqubit interactions. This channel is derived from other channels. + +This is required to be implemented if the backend supports Pulse scheduling. + +**Parameters** + +**qubits** (`Iterable`\[`int`]) – Tuple or list of qubits of the form `(control_qubit, target_qubit)`. + +**Returns** + +The multi qubit control line. + +**Return type** + +List\[ControlChannel] + +### drive\_channel + + + +`drive_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L239-L252 "view source code") + +Return the drive channel for the given qubit. + +This is required to be implemented if the backend supports Pulse scheduling. + +**Returns** + +The Qubit drive channel + +**Return type** + +DriveChannel + +### measure\_channel + + + +`measure_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L254-L267 "view source code") + +Return the measure stimulus channel for the given qubit. + +This is required to be implemented if the backend supports Pulse scheduling. + +**Returns** + +The Qubit measurement stimulus line + +**Return type** + +MeasureChannel + +### qubit\_properties + + + +`qubit_properties(qubit)` + +Return QubitProperties for a given qubit. + +If there are no defined or the backend doesn’t support querying these details this method does not need to be implemented. + +**Parameters** + +**qubit** (`Union`\[`int`, `List`\[`int`]]) – The qubit to get the `QubitProperties` object for. This can be a single integer for 1 qubit or a list of qubits and a list of `QubitProperties` objects will be returned in the same order + +**Return type** + +`Union`\[`QubitProperties`, `List`\[`QubitProperties`]] + +**Returns** + +The `QubitProperties` object for the specified qubit. If a list of qubits is provided a list will be returned. If properties are missing for a qubit this can be `None`. + +**Raises** + +**NotImplementedError** – if the backend doesn’t support querying the qubit properties + +### run + + + +`run(run_input, **options)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L306-L365 "view source code") + +Run on the fake backend using a simulator. + +This method runs circuit jobs (an individual or a list of QuantumCircuit ) and pulse jobs (an individual or a list of Schedule or ScheduleBlock) using BasicAer simulator/ BasicSimulator or Aer simulator and returns a `Job` object. + +If qiskit-aer is installed, jobs will be run using AerSimulator with noise model of the fake backend. Otherwise, jobs will be run using BasicAer simulator/ BasicSimulator simulator without noise. + +Currently noisy simulation of a pulse job is not supported yet in FakeBackendV2. + +**Parameters** + +* **run\_input** (*QuantumCircuit or Schedule or ScheduleBlock or list*) – An individual or a list of `QuantumCircuit`, `ScheduleBlock`, or `Schedule` objects to run on the backend. +* **options** – Any kwarg options to pass to the backend for running the config. If a key is also present in the options attribute/object then the expectation is that the value specified will be used instead of what’s set in the options object. + +**Returns** + +The job object for the run + +**Return type** + +Job + +**Raises** + +**QiskitError** – If a pulse job is supplied and qiskit-aer is not installed. + +### set\_options + + + +`set_options(**fields)` + +Set the options fields for the backend + +This method is used to update the options of a backend. If you need to change any of the options prior to running just pass in the kwarg with the new value for the options. + +**Parameters** + +**fields** – The fields to update the options + +**Raises** + +**AttributeError** – If the field passed in is not part of the options + diff --git a/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeRome.md b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeRome.md new file mode 100644 index 00000000000..2d2dc476151 --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeRome.md @@ -0,0 +1,185 @@ +--- +title: FakeRome +description: API reference for qiskit_ibm_runtime.fake_provider.FakeRome +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.fake_provider.FakeRome +--- + +# FakeRome + + + +`FakeRome` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/backends/rome/fake_rome.py#L31-L38 "view source code") + +A fake 5 qubit backend. + +FakeBackend initializer. + +**Parameters** + +* **configuration** (*BackendConfiguration*) – backend configuration +* **time\_alive** (*int*) – time to wait before returning result + +## Attributes + + + +### backend\_name + +`= 'fake_rome'` + + + +### conf\_filename + +`= 'conf_rome.json'` + + + +### defs\_filename + +`= 'defs_rome.json'` + + + +### dirname + +`= '/home/runner/work/qiskit-ibm-runtime/qiskit-ibm-runtime/qiskit_ibm_runtime/fake_provider/backends/rome'` + + + +### options + +Return the options for the backend + +The options of a backend are the dynamic parameters defining how the backend is used. These are used to control the [`run()`](#qiskit_ibm_runtime.fake_provider.FakeRome.run "qiskit_ibm_runtime.fake_provider.FakeRome.run") method. + + + +### props\_filename + +`= 'props_rome.json'` + + + +### version + +`= 1` + +## Methods + +### configuration + + + +`configuration()` + +Return the backend configuration. + +**Returns** + +the configuration for the backend. + +**Return type** + +BackendConfiguration + +### defaults + + + +`defaults()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_pulse_backend.py#L29-L33 "view source code") + +Returns a snapshot of device defaults + +**Return type** + +`PulseDefaults` + +### name + + + +`name()` + +Return the backend name. + +**Returns** + +the name of the backend. + +**Return type** + +str + +### properties + + + +`properties()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_qasm_backend.py#L44-L48 "view source code") + +Returns a snapshot of device properties + +**Return type** + +`BackendProperties` + +### provider + + + +`provider()` + +Return the backend Provider. + +**Returns** + +the Provider responsible for the backend. + +**Return type** + +Provider + +### run + + + +`run(run_input, **kwargs)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L545-L574 "view source code") + +Main job in simulator + +### set\_options + + + +`set_options(**fields)` + +Set the options fields for the backend + +This method is used to update the options of a backend. If you need to change any of the options prior to running just pass in the kwarg with the new value for the options. + +**Parameters** + +**fields** – The fields to update the options + +**Raises** + +**AttributeError** – If the field passed in is not part of the options + +### status + + + +`status()` + +Return the backend status. + +**Returns** + +the status of the backend. + +**Return type** + +BackendStatus + diff --git a/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeRomeV2.md b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeRomeV2.md new file mode 100644 index 00000000000..622d93c116d --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeRomeV2.md @@ -0,0 +1,377 @@ +--- +title: FakeRomeV2 +description: API reference for qiskit_ibm_runtime.fake_provider.FakeRomeV2 +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.fake_provider.FakeRomeV2 +--- + +# FakeRomeV2 + + + +`FakeRomeV2` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/backends/rome/fake_rome.py#L21-L28 "view source code") + +A fake 5 qubit backend. + +FakeBackendV2 initializer. + +## Attributes + + + +### backend\_name + +`= 'fake_rome'` + + + +### conf\_filename + +`= 'conf_rome.json'` + + + +### coupling\_map + +Return the `CouplingMap` object + + + +### defs\_filename + +`= 'defs_rome.json'` + + + +### dirname + +`= '/home/runner/work/qiskit-ibm-runtime/qiskit-ibm-runtime/qiskit_ibm_runtime/fake_provider/backends/rome'` + + + +### dt + +Return the system time resolution of input signals + +This is required to be implemented if the backend supports Pulse scheduling. + +**Return type** + +`Optional`\[`float`] + +**Returns** + +The input signal timestep in seconds. If the backend doesn’t define `dt`, `None` will be returned. + + + +### dtm + +Return the system time resolution of output signals + +**Return type** + +`float` + +**Returns** + +The output signal timestep in seconds. + + + +### instruction\_durations + +Return the `InstructionDurations` object. + + + +### instruction\_schedule\_map + +Return the `InstructionScheduleMap` for the instructions defined in this backend’s target. + + + +### instructions + +A list of Instruction tuples on the backend of the form `(instruction, (qubits)` + +**Return type** + +`List`\[`Tuple`\[`Instruction`, `Tuple`\[`int`]]] + + + +### max\_circuits + +**Return type** + +`None` + + + +### meas\_map + +Return the grouping of measurements which are multiplexed This is required to be implemented if the backend supports Pulse scheduling. + +**Return type** + +`List`\[`List`\[`int`]] + +**Returns** + +The grouping of measurements which are multiplexed + + + +### num\_qubits + +Return the number of qubits the backend has. + +**Return type** + +`int` + + + +### operation\_names + +A list of instruction names that the backend supports. + +**Return type** + +`List`\[`str`] + + + +### operations + +A list of `Instruction` instances that the backend supports. + +**Return type** + +`List`\[`Instruction`] + + + +### options + +Return the options for the backend + +The options of a backend are the dynamic parameters defining how the backend is used. These are used to control the [`run()`](#qiskit_ibm_runtime.fake_provider.FakeRomeV2.run "qiskit_ibm_runtime.fake_provider.FakeRomeV2.run") method. + + + +### props\_filename + +`= 'props_rome.json'` + + + +### provider + +Return the backend Provider. + +**Returns** + +the Provider responsible for the backend. + +**Return type** + +Provider + + + +### target + +A `qiskit.transpiler.Target` object for the backend. + +**Return type** + +Target + + + +### version + +`= 2` + + + +### name + +Name of the backend. + + + +### description + +Optional human-readable description. + + + +### online\_date + +Date that the backend came online. + + + +### backend\_version + +Version of the backend being provided. This is not the same as `BackendV2.version`, which is the version of the `Backend` abstract interface. + +## Methods + +### acquire\_channel + + + +`acquire_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L269-L282 "view source code") + +Return the acquisition channel for the given qubit. + +This is required to be implemented if the backend supports Pulse scheduling. + +**Returns** + +The Qubit measurement acquisition line. + +**Return type** + +AcquireChannel + +### control\_channel + + + +`control_channel(qubits)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L284-L304 "view source code") + +Return the secondary drive channel for the given qubit + +This is typically utilized for controlling multiqubit interactions. This channel is derived from other channels. + +This is required to be implemented if the backend supports Pulse scheduling. + +**Parameters** + +**qubits** (`Iterable`\[`int`]) – Tuple or list of qubits of the form `(control_qubit, target_qubit)`. + +**Returns** + +The multi qubit control line. + +**Return type** + +List\[ControlChannel] + +### drive\_channel + + + +`drive_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L239-L252 "view source code") + +Return the drive channel for the given qubit. + +This is required to be implemented if the backend supports Pulse scheduling. + +**Returns** + +The Qubit drive channel + +**Return type** + +DriveChannel + +### measure\_channel + + + +`measure_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L254-L267 "view source code") + +Return the measure stimulus channel for the given qubit. + +This is required to be implemented if the backend supports Pulse scheduling. + +**Returns** + +The Qubit measurement stimulus line + +**Return type** + +MeasureChannel + +### qubit\_properties + + + +`qubit_properties(qubit)` + +Return QubitProperties for a given qubit. + +If there are no defined or the backend doesn’t support querying these details this method does not need to be implemented. + +**Parameters** + +**qubit** (`Union`\[`int`, `List`\[`int`]]) – The qubit to get the `QubitProperties` object for. This can be a single integer for 1 qubit or a list of qubits and a list of `QubitProperties` objects will be returned in the same order + +**Return type** + +`Union`\[`QubitProperties`, `List`\[`QubitProperties`]] + +**Returns** + +The `QubitProperties` object for the specified qubit. If a list of qubits is provided a list will be returned. If properties are missing for a qubit this can be `None`. + +**Raises** + +**NotImplementedError** – if the backend doesn’t support querying the qubit properties + +### run + + + +`run(run_input, **options)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L306-L365 "view source code") + +Run on the fake backend using a simulator. + +This method runs circuit jobs (an individual or a list of QuantumCircuit ) and pulse jobs (an individual or a list of Schedule or ScheduleBlock) using BasicAer simulator/ BasicSimulator or Aer simulator and returns a `Job` object. + +If qiskit-aer is installed, jobs will be run using AerSimulator with noise model of the fake backend. Otherwise, jobs will be run using BasicAer simulator/ BasicSimulator simulator without noise. + +Currently noisy simulation of a pulse job is not supported yet in FakeBackendV2. + +**Parameters** + +* **run\_input** (*QuantumCircuit or Schedule or ScheduleBlock or list*) – An individual or a list of `QuantumCircuit`, `ScheduleBlock`, or `Schedule` objects to run on the backend. +* **options** – Any kwarg options to pass to the backend for running the config. If a key is also present in the options attribute/object then the expectation is that the value specified will be used instead of what’s set in the options object. + +**Returns** + +The job object for the run + +**Return type** + +Job + +**Raises** + +**QiskitError** – If a pulse job is supplied and qiskit-aer is not installed. + +### set\_options + + + +`set_options(**fields)` + +Set the options fields for the backend + +This method is used to update the options of a backend. If you need to change any of the options prior to running just pass in the kwarg with the new value for the options. + +**Parameters** + +**fields** – The fields to update the options + +**Raises** + +**AttributeError** – If the field passed in is not part of the options + diff --git a/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeRueschlikon.md b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeRueschlikon.md new file mode 100644 index 00000000000..d10a03f3b23 --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeRueschlikon.md @@ -0,0 +1,138 @@ +--- +title: FakeRueschlikon +description: API reference for qiskit_ibm_runtime.fake_provider.FakeRueschlikon +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.fake_provider.FakeRueschlikon +--- + +# FakeRueschlikon + + + +`FakeRueschlikon` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/backends/rueschlikon/fake_rueschlikon.py#L21-L74 "view source code") + +A fake 16 qubit backend. + +```python +1 → 2 → 3 → 4 ← 5 ← 6 → 7 ← 8 +↓ ↑ ↓ ↓ ↑ ↓ ↓ ↑ +0 ← 15 → 14 ← 13 ← 12 → 11 → 10 ← 9 +``` + +## Attributes + + + +### options + +Return the options for the backend + +The options of a backend are the dynamic parameters defining how the backend is used. These are used to control the [`run()`](#qiskit_ibm_runtime.fake_provider.FakeRueschlikon.run "qiskit_ibm_runtime.fake_provider.FakeRueschlikon.run") method. + + + +### version + +`= 1` + +## Methods + +### configuration + + + +`configuration()` + +Return the backend configuration. + +**Returns** + +the configuration for the backend. + +**Return type** + +BackendConfiguration + +### name + + + +`name()` + +Return the backend name. + +**Returns** + +the name of the backend. + +**Return type** + +str + +### properties + + + +`properties()` + +Return backend properties + +### provider + + + +`provider()` + +Return the backend Provider. + +**Returns** + +the Provider responsible for the backend. + +**Return type** + +Provider + +### run + + + +`run(run_input, **kwargs)` + +Main job in simulator + +### set\_options + + + +`set_options(**fields)` + +Set the options fields for the backend + +This method is used to update the options of a backend. If you need to change any of the options prior to running just pass in the kwarg with the new value for the options. + +**Parameters** + +**fields** – The fields to update the options + +**Raises** + +**AttributeError** – If the field passed in is not part of the options + +### status + + + +`status()` + +Return the backend status. + +**Returns** + +the status of the backend. + +**Return type** + +BackendStatus + diff --git a/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeSantiago.md b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeSantiago.md new file mode 100644 index 00000000000..ec524ccddcd --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeSantiago.md @@ -0,0 +1,185 @@ +--- +title: FakeSantiago +description: API reference for qiskit_ibm_runtime.fake_provider.FakeSantiago +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.fake_provider.FakeSantiago +--- + +# FakeSantiago + + + +`FakeSantiago` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/backends/santiago/fake_santiago.py#L31-L38 "view source code") + +A fake Santiago backend. + +FakeBackend initializer. + +**Parameters** + +* **configuration** (*BackendConfiguration*) – backend configuration +* **time\_alive** (*int*) – time to wait before returning result + +## Attributes + + + +### backend\_name + +`= 'fake_santiago'` + + + +### conf\_filename + +`= 'conf_santiago.json'` + + + +### defs\_filename + +`= 'defs_santiago.json'` + + + +### dirname + +`= '/home/runner/work/qiskit-ibm-runtime/qiskit-ibm-runtime/qiskit_ibm_runtime/fake_provider/backends/santiago'` + + + +### options + +Return the options for the backend + +The options of a backend are the dynamic parameters defining how the backend is used. These are used to control the [`run()`](#qiskit_ibm_runtime.fake_provider.FakeSantiago.run "qiskit_ibm_runtime.fake_provider.FakeSantiago.run") method. + + + +### props\_filename + +`= 'props_santiago.json'` + + + +### version + +`= 1` + +## Methods + +### configuration + + + +`configuration()` + +Return the backend configuration. + +**Returns** + +the configuration for the backend. + +**Return type** + +BackendConfiguration + +### defaults + + + +`defaults()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_pulse_backend.py#L29-L33 "view source code") + +Returns a snapshot of device defaults + +**Return type** + +`PulseDefaults` + +### name + + + +`name()` + +Return the backend name. + +**Returns** + +the name of the backend. + +**Return type** + +str + +### properties + + + +`properties()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_qasm_backend.py#L44-L48 "view source code") + +Returns a snapshot of device properties + +**Return type** + +`BackendProperties` + +### provider + + + +`provider()` + +Return the backend Provider. + +**Returns** + +the Provider responsible for the backend. + +**Return type** + +Provider + +### run + + + +`run(run_input, **kwargs)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L545-L574 "view source code") + +Main job in simulator + +### set\_options + + + +`set_options(**fields)` + +Set the options fields for the backend + +This method is used to update the options of a backend. If you need to change any of the options prior to running just pass in the kwarg with the new value for the options. + +**Parameters** + +**fields** – The fields to update the options + +**Raises** + +**AttributeError** – If the field passed in is not part of the options + +### status + + + +`status()` + +Return the backend status. + +**Returns** + +the status of the backend. + +**Return type** + +BackendStatus + diff --git a/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeSantiagoV2.md b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeSantiagoV2.md new file mode 100644 index 00000000000..47d2e67ac99 --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeSantiagoV2.md @@ -0,0 +1,377 @@ +--- +title: FakeSantiagoV2 +description: API reference for qiskit_ibm_runtime.fake_provider.FakeSantiagoV2 +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.fake_provider.FakeSantiagoV2 +--- + +# FakeSantiagoV2 + + + +`FakeSantiagoV2` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/backends/santiago/fake_santiago.py#L21-L28 "view source code") + +A fake Santiago backend. + +FakeBackendV2 initializer. + +## Attributes + + + +### backend\_name + +`= 'fake_santiago'` + + + +### conf\_filename + +`= 'conf_santiago.json'` + + + +### coupling\_map + +Return the `CouplingMap` object + + + +### defs\_filename + +`= 'defs_santiago.json'` + + + +### dirname + +`= '/home/runner/work/qiskit-ibm-runtime/qiskit-ibm-runtime/qiskit_ibm_runtime/fake_provider/backends/santiago'` + + + +### dt + +Return the system time resolution of input signals + +This is required to be implemented if the backend supports Pulse scheduling. + +**Return type** + +`Optional`\[`float`] + +**Returns** + +The input signal timestep in seconds. If the backend doesn’t define `dt`, `None` will be returned. + + + +### dtm + +Return the system time resolution of output signals + +**Return type** + +`float` + +**Returns** + +The output signal timestep in seconds. + + + +### instruction\_durations + +Return the `InstructionDurations` object. + + + +### instruction\_schedule\_map + +Return the `InstructionScheduleMap` for the instructions defined in this backend’s target. + + + +### instructions + +A list of Instruction tuples on the backend of the form `(instruction, (qubits)` + +**Return type** + +`List`\[`Tuple`\[`Instruction`, `Tuple`\[`int`]]] + + + +### max\_circuits + +**Return type** + +`None` + + + +### meas\_map + +Return the grouping of measurements which are multiplexed This is required to be implemented if the backend supports Pulse scheduling. + +**Return type** + +`List`\[`List`\[`int`]] + +**Returns** + +The grouping of measurements which are multiplexed + + + +### num\_qubits + +Return the number of qubits the backend has. + +**Return type** + +`int` + + + +### operation\_names + +A list of instruction names that the backend supports. + +**Return type** + +`List`\[`str`] + + + +### operations + +A list of `Instruction` instances that the backend supports. + +**Return type** + +`List`\[`Instruction`] + + + +### options + +Return the options for the backend + +The options of a backend are the dynamic parameters defining how the backend is used. These are used to control the [`run()`](#qiskit_ibm_runtime.fake_provider.FakeSantiagoV2.run "qiskit_ibm_runtime.fake_provider.FakeSantiagoV2.run") method. + + + +### props\_filename + +`= 'props_santiago.json'` + + + +### provider + +Return the backend Provider. + +**Returns** + +the Provider responsible for the backend. + +**Return type** + +Provider + + + +### target + +A `qiskit.transpiler.Target` object for the backend. + +**Return type** + +Target + + + +### version + +`= 2` + + + +### name + +Name of the backend. + + + +### description + +Optional human-readable description. + + + +### online\_date + +Date that the backend came online. + + + +### backend\_version + +Version of the backend being provided. This is not the same as `BackendV2.version`, which is the version of the `Backend` abstract interface. + +## Methods + +### acquire\_channel + + + +`acquire_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L269-L282 "view source code") + +Return the acquisition channel for the given qubit. + +This is required to be implemented if the backend supports Pulse scheduling. + +**Returns** + +The Qubit measurement acquisition line. + +**Return type** + +AcquireChannel + +### control\_channel + + + +`control_channel(qubits)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L284-L304 "view source code") + +Return the secondary drive channel for the given qubit + +This is typically utilized for controlling multiqubit interactions. This channel is derived from other channels. + +This is required to be implemented if the backend supports Pulse scheduling. + +**Parameters** + +**qubits** (`Iterable`\[`int`]) – Tuple or list of qubits of the form `(control_qubit, target_qubit)`. + +**Returns** + +The multi qubit control line. + +**Return type** + +List\[ControlChannel] + +### drive\_channel + + + +`drive_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L239-L252 "view source code") + +Return the drive channel for the given qubit. + +This is required to be implemented if the backend supports Pulse scheduling. + +**Returns** + +The Qubit drive channel + +**Return type** + +DriveChannel + +### measure\_channel + + + +`measure_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L254-L267 "view source code") + +Return the measure stimulus channel for the given qubit. + +This is required to be implemented if the backend supports Pulse scheduling. + +**Returns** + +The Qubit measurement stimulus line + +**Return type** + +MeasureChannel + +### qubit\_properties + + + +`qubit_properties(qubit)` + +Return QubitProperties for a given qubit. + +If there are no defined or the backend doesn’t support querying these details this method does not need to be implemented. + +**Parameters** + +**qubit** (`Union`\[`int`, `List`\[`int`]]) – The qubit to get the `QubitProperties` object for. This can be a single integer for 1 qubit or a list of qubits and a list of `QubitProperties` objects will be returned in the same order + +**Return type** + +`Union`\[`QubitProperties`, `List`\[`QubitProperties`]] + +**Returns** + +The `QubitProperties` object for the specified qubit. If a list of qubits is provided a list will be returned. If properties are missing for a qubit this can be `None`. + +**Raises** + +**NotImplementedError** – if the backend doesn’t support querying the qubit properties + +### run + + + +`run(run_input, **options)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L306-L365 "view source code") + +Run on the fake backend using a simulator. + +This method runs circuit jobs (an individual or a list of QuantumCircuit ) and pulse jobs (an individual or a list of Schedule or ScheduleBlock) using BasicAer simulator/ BasicSimulator or Aer simulator and returns a `Job` object. + +If qiskit-aer is installed, jobs will be run using AerSimulator with noise model of the fake backend. Otherwise, jobs will be run using BasicAer simulator/ BasicSimulator simulator without noise. + +Currently noisy simulation of a pulse job is not supported yet in FakeBackendV2. + +**Parameters** + +* **run\_input** (*QuantumCircuit or Schedule or ScheduleBlock or list*) – An individual or a list of `QuantumCircuit`, `ScheduleBlock`, or `Schedule` objects to run on the backend. +* **options** – Any kwarg options to pass to the backend for running the config. If a key is also present in the options attribute/object then the expectation is that the value specified will be used instead of what’s set in the options object. + +**Returns** + +The job object for the run + +**Return type** + +Job + +**Raises** + +**QiskitError** – If a pulse job is supplied and qiskit-aer is not installed. + +### set\_options + + + +`set_options(**fields)` + +Set the options fields for the backend + +This method is used to update the options of a backend. If you need to change any of the options prior to running just pass in the kwarg with the new value for the options. + +**Parameters** + +**fields** – The fields to update the options + +**Raises** + +**AttributeError** – If the field passed in is not part of the options + diff --git a/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeSherbrooke.md b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeSherbrooke.md new file mode 100644 index 00000000000..67abf2d9a06 --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeSherbrooke.md @@ -0,0 +1,377 @@ +--- +title: FakeSherbrooke +description: API reference for qiskit_ibm_runtime.fake_provider.FakeSherbrooke +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.fake_provider.FakeSherbrooke +--- + +# FakeSherbrooke + + + +`FakeSherbrooke` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/backends/sherbrooke/fake_sherbrooke.py#L21-L28 "view source code") + +A fake 127 qubit backend. + +FakeBackendV2 initializer. + +## Attributes + + + +### backend\_name + +`= 'fake_sherbrooke'` + + + +### conf\_filename + +`= 'conf_sherbrooke.json'` + + + +### coupling\_map + +Return the `CouplingMap` object + + + +### defs\_filename + +`= 'defs_sherbrooke.json'` + + + +### dirname + +`= '/home/runner/work/qiskit-ibm-runtime/qiskit-ibm-runtime/qiskit_ibm_runtime/fake_provider/backends/sherbrooke'` + + + +### dt + +Return the system time resolution of input signals + +This is required to be implemented if the backend supports Pulse scheduling. + +**Return type** + +`Optional`\[`float`] + +**Returns** + +The input signal timestep in seconds. If the backend doesn’t define `dt`, `None` will be returned. + + + +### dtm + +Return the system time resolution of output signals + +**Return type** + +`float` + +**Returns** + +The output signal timestep in seconds. + + + +### instruction\_durations + +Return the `InstructionDurations` object. + + + +### instruction\_schedule\_map + +Return the `InstructionScheduleMap` for the instructions defined in this backend’s target. + + + +### instructions + +A list of Instruction tuples on the backend of the form `(instruction, (qubits)` + +**Return type** + +`List`\[`Tuple`\[`Instruction`, `Tuple`\[`int`]]] + + + +### max\_circuits + +**Return type** + +`None` + + + +### meas\_map + +Return the grouping of measurements which are multiplexed This is required to be implemented if the backend supports Pulse scheduling. + +**Return type** + +`List`\[`List`\[`int`]] + +**Returns** + +The grouping of measurements which are multiplexed + + + +### num\_qubits + +Return the number of qubits the backend has. + +**Return type** + +`int` + + + +### operation\_names + +A list of instruction names that the backend supports. + +**Return type** + +`List`\[`str`] + + + +### operations + +A list of `Instruction` instances that the backend supports. + +**Return type** + +`List`\[`Instruction`] + + + +### options + +Return the options for the backend + +The options of a backend are the dynamic parameters defining how the backend is used. These are used to control the [`run()`](#qiskit_ibm_runtime.fake_provider.FakeSherbrooke.run "qiskit_ibm_runtime.fake_provider.FakeSherbrooke.run") method. + + + +### props\_filename + +`= 'props_sherbrooke.json'` + + + +### provider + +Return the backend Provider. + +**Returns** + +the Provider responsible for the backend. + +**Return type** + +Provider + + + +### target + +A `qiskit.transpiler.Target` object for the backend. + +**Return type** + +Target + + + +### version + +`= 2` + + + +### name + +Name of the backend. + + + +### description + +Optional human-readable description. + + + +### online\_date + +Date that the backend came online. + + + +### backend\_version + +Version of the backend being provided. This is not the same as `BackendV2.version`, which is the version of the `Backend` abstract interface. + +## Methods + +### acquire\_channel + + + +`acquire_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L269-L282 "view source code") + +Return the acquisition channel for the given qubit. + +This is required to be implemented if the backend supports Pulse scheduling. + +**Returns** + +The Qubit measurement acquisition line. + +**Return type** + +AcquireChannel + +### control\_channel + + + +`control_channel(qubits)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L284-L304 "view source code") + +Return the secondary drive channel for the given qubit + +This is typically utilized for controlling multiqubit interactions. This channel is derived from other channels. + +This is required to be implemented if the backend supports Pulse scheduling. + +**Parameters** + +**qubits** (`Iterable`\[`int`]) – Tuple or list of qubits of the form `(control_qubit, target_qubit)`. + +**Returns** + +The multi qubit control line. + +**Return type** + +List\[ControlChannel] + +### drive\_channel + + + +`drive_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L239-L252 "view source code") + +Return the drive channel for the given qubit. + +This is required to be implemented if the backend supports Pulse scheduling. + +**Returns** + +The Qubit drive channel + +**Return type** + +DriveChannel + +### measure\_channel + + + +`measure_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L254-L267 "view source code") + +Return the measure stimulus channel for the given qubit. + +This is required to be implemented if the backend supports Pulse scheduling. + +**Returns** + +The Qubit measurement stimulus line + +**Return type** + +MeasureChannel + +### qubit\_properties + + + +`qubit_properties(qubit)` + +Return QubitProperties for a given qubit. + +If there are no defined or the backend doesn’t support querying these details this method does not need to be implemented. + +**Parameters** + +**qubit** (`Union`\[`int`, `List`\[`int`]]) – The qubit to get the `QubitProperties` object for. This can be a single integer for 1 qubit or a list of qubits and a list of `QubitProperties` objects will be returned in the same order + +**Return type** + +`Union`\[`QubitProperties`, `List`\[`QubitProperties`]] + +**Returns** + +The `QubitProperties` object for the specified qubit. If a list of qubits is provided a list will be returned. If properties are missing for a qubit this can be `None`. + +**Raises** + +**NotImplementedError** – if the backend doesn’t support querying the qubit properties + +### run + + + +`run(run_input, **options)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L306-L365 "view source code") + +Run on the fake backend using a simulator. + +This method runs circuit jobs (an individual or a list of QuantumCircuit ) and pulse jobs (an individual or a list of Schedule or ScheduleBlock) using BasicAer simulator/ BasicSimulator or Aer simulator and returns a `Job` object. + +If qiskit-aer is installed, jobs will be run using AerSimulator with noise model of the fake backend. Otherwise, jobs will be run using BasicAer simulator/ BasicSimulator simulator without noise. + +Currently noisy simulation of a pulse job is not supported yet in FakeBackendV2. + +**Parameters** + +* **run\_input** (*QuantumCircuit or Schedule or ScheduleBlock or list*) – An individual or a list of `QuantumCircuit`, `ScheduleBlock`, or `Schedule` objects to run on the backend. +* **options** – Any kwarg options to pass to the backend for running the config. If a key is also present in the options attribute/object then the expectation is that the value specified will be used instead of what’s set in the options object. + +**Returns** + +The job object for the run + +**Return type** + +Job + +**Raises** + +**QiskitError** – If a pulse job is supplied and qiskit-aer is not installed. + +### set\_options + + + +`set_options(**fields)` + +Set the options fields for the backend + +This method is used to update the options of a backend. If you need to change any of the options prior to running just pass in the kwarg with the new value for the options. + +**Parameters** + +**fields** – The fields to update the options + +**Raises** + +**AttributeError** – If the field passed in is not part of the options + diff --git a/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeSingapore.md b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeSingapore.md new file mode 100644 index 00000000000..0f791011c15 --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeSingapore.md @@ -0,0 +1,177 @@ +--- +title: FakeSingapore +description: API reference for qiskit_ibm_runtime.fake_provider.FakeSingapore +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.fake_provider.FakeSingapore +--- + +# FakeSingapore + + + +`FakeSingapore` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/backends/singapore/fake_singapore.py#L41-L58 "view source code") + +A fake Singapore backend. + +```python +00 ↔ 01 ↔ 02 ↔ 03 ↔ 04 + ↕ ↕ +05 ↔ 06 ↔ 07 ↔ 08 ↔ 09 + ↕ ↕ ↕ +10 ↔ 11 ↔ 12 ↔ 13 ↔ 14 + ↕ ↕ +15 ↔ 16 ↔ 17 ↔ 18 ↔ 19 +``` + +FakeBackend initializer. + +**Parameters** + +* **configuration** (*BackendConfiguration*) – backend configuration +* **time\_alive** (*int*) – time to wait before returning result + +## Attributes + + + +### backend\_name + +`= 'fake_singapore'` + + + +### conf\_filename + +`= 'conf_singapore.json'` + + + +### dirname + +`= '/home/runner/work/qiskit-ibm-runtime/qiskit-ibm-runtime/qiskit_ibm_runtime/fake_provider/backends/singapore'` + + + +### options + +Return the options for the backend + +The options of a backend are the dynamic parameters defining how the backend is used. These are used to control the [`run()`](#qiskit_ibm_runtime.fake_provider.FakeSingapore.run "qiskit_ibm_runtime.fake_provider.FakeSingapore.run") method. + + + +### props\_filename + +`= 'props_singapore.json'` + + + +### version + +`= 1` + +## Methods + +### configuration + + + +`configuration()` + +Return the backend configuration. + +**Returns** + +the configuration for the backend. + +**Return type** + +BackendConfiguration + +### name + + + +`name()` + +Return the backend name. + +**Returns** + +the name of the backend. + +**Return type** + +str + +### properties + + + +`properties()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_qasm_backend.py#L44-L48 "view source code") + +Returns a snapshot of device properties + +**Return type** + +`BackendProperties` + +### provider + + + +`provider()` + +Return the backend Provider. + +**Returns** + +the Provider responsible for the backend. + +**Return type** + +Provider + +### run + + + +`run(run_input, **kwargs)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L545-L574 "view source code") + +Main job in simulator + +### set\_options + + + +`set_options(**fields)` + +Set the options fields for the backend + +This method is used to update the options of a backend. If you need to change any of the options prior to running just pass in the kwarg with the new value for the options. + +**Parameters** + +**fields** – The fields to update the options + +**Raises** + +**AttributeError** – If the field passed in is not part of the options + +### status + + + +`status()` + +Return the backend status. + +**Returns** + +the status of the backend. + +**Return type** + +BackendStatus + diff --git a/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeSingaporeV2.md b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeSingaporeV2.md new file mode 100644 index 00000000000..74b8768bb1e --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeSingaporeV2.md @@ -0,0 +1,387 @@ +--- +title: FakeSingaporeV2 +description: API reference for qiskit_ibm_runtime.fake_provider.FakeSingaporeV2 +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.fake_provider.FakeSingaporeV2 +--- + +# FakeSingaporeV2 + + + +`FakeSingaporeV2` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/backends/singapore/fake_singapore.py#L21-L38 "view source code") + +A fake Singapore backend. + +```python +00 ↔ 01 ↔ 02 ↔ 03 ↔ 04 + ↕ ↕ +05 ↔ 06 ↔ 07 ↔ 08 ↔ 09 + ↕ ↕ ↕ +10 ↔ 11 ↔ 12 ↔ 13 ↔ 14 + ↕ ↕ +15 ↔ 16 ↔ 17 ↔ 18 ↔ 19 +``` + +FakeBackendV2 initializer. + +## Attributes + + + +### backend\_name + +`= 'fake_singapore'` + + + +### conf\_filename + +`= 'conf_singapore.json'` + + + +### coupling\_map + +Return the `CouplingMap` object + + + +### defs\_filename + +`= None` + + + +### dirname + +`= '/home/runner/work/qiskit-ibm-runtime/qiskit-ibm-runtime/qiskit_ibm_runtime/fake_provider/backends/singapore'` + + + +### dt + +Return the system time resolution of input signals + +This is required to be implemented if the backend supports Pulse scheduling. + +**Return type** + +`Optional`\[`float`] + +**Returns** + +The input signal timestep in seconds. If the backend doesn’t define `dt`, `None` will be returned. + + + +### dtm + +Return the system time resolution of output signals + +**Return type** + +`float` + +**Returns** + +The output signal timestep in seconds. + + + +### instruction\_durations + +Return the `InstructionDurations` object. + + + +### instruction\_schedule\_map + +Return the `InstructionScheduleMap` for the instructions defined in this backend’s target. + + + +### instructions + +A list of Instruction tuples on the backend of the form `(instruction, (qubits)` + +**Return type** + +`List`\[`Tuple`\[`Instruction`, `Tuple`\[`int`]]] + + + +### max\_circuits + +**Return type** + +`None` + + + +### meas\_map + +Return the grouping of measurements which are multiplexed This is required to be implemented if the backend supports Pulse scheduling. + +**Return type** + +`List`\[`List`\[`int`]] + +**Returns** + +The grouping of measurements which are multiplexed + + + +### num\_qubits + +Return the number of qubits the backend has. + +**Return type** + +`int` + + + +### operation\_names + +A list of instruction names that the backend supports. + +**Return type** + +`List`\[`str`] + + + +### operations + +A list of `Instruction` instances that the backend supports. + +**Return type** + +`List`\[`Instruction`] + + + +### options + +Return the options for the backend + +The options of a backend are the dynamic parameters defining how the backend is used. These are used to control the [`run()`](#qiskit_ibm_runtime.fake_provider.FakeSingaporeV2.run "qiskit_ibm_runtime.fake_provider.FakeSingaporeV2.run") method. + + + +### props\_filename + +`= 'props_singapore.json'` + + + +### provider + +Return the backend Provider. + +**Returns** + +the Provider responsible for the backend. + +**Return type** + +Provider + + + +### target + +A `qiskit.transpiler.Target` object for the backend. + +**Return type** + +Target + + + +### version + +`= 2` + + + +### name + +Name of the backend. + + + +### description + +Optional human-readable description. + + + +### online\_date + +Date that the backend came online. + + + +### backend\_version + +Version of the backend being provided. This is not the same as `BackendV2.version`, which is the version of the `Backend` abstract interface. + +## Methods + +### acquire\_channel + + + +`acquire_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L269-L282 "view source code") + +Return the acquisition channel for the given qubit. + +This is required to be implemented if the backend supports Pulse scheduling. + +**Returns** + +The Qubit measurement acquisition line. + +**Return type** + +AcquireChannel + +### control\_channel + + + +`control_channel(qubits)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L284-L304 "view source code") + +Return the secondary drive channel for the given qubit + +This is typically utilized for controlling multiqubit interactions. This channel is derived from other channels. + +This is required to be implemented if the backend supports Pulse scheduling. + +**Parameters** + +**qubits** (`Iterable`\[`int`]) – Tuple or list of qubits of the form `(control_qubit, target_qubit)`. + +**Returns** + +The multi qubit control line. + +**Return type** + +List\[ControlChannel] + +### drive\_channel + + + +`drive_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L239-L252 "view source code") + +Return the drive channel for the given qubit. + +This is required to be implemented if the backend supports Pulse scheduling. + +**Returns** + +The Qubit drive channel + +**Return type** + +DriveChannel + +### measure\_channel + + + +`measure_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L254-L267 "view source code") + +Return the measure stimulus channel for the given qubit. + +This is required to be implemented if the backend supports Pulse scheduling. + +**Returns** + +The Qubit measurement stimulus line + +**Return type** + +MeasureChannel + +### qubit\_properties + + + +`qubit_properties(qubit)` + +Return QubitProperties for a given qubit. + +If there are no defined or the backend doesn’t support querying these details this method does not need to be implemented. + +**Parameters** + +**qubit** (`Union`\[`int`, `List`\[`int`]]) – The qubit to get the `QubitProperties` object for. This can be a single integer for 1 qubit or a list of qubits and a list of `QubitProperties` objects will be returned in the same order + +**Return type** + +`Union`\[`QubitProperties`, `List`\[`QubitProperties`]] + +**Returns** + +The `QubitProperties` object for the specified qubit. If a list of qubits is provided a list will be returned. If properties are missing for a qubit this can be `None`. + +**Raises** + +**NotImplementedError** – if the backend doesn’t support querying the qubit properties + +### run + + + +`run(run_input, **options)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L306-L365 "view source code") + +Run on the fake backend using a simulator. + +This method runs circuit jobs (an individual or a list of QuantumCircuit ) and pulse jobs (an individual or a list of Schedule or ScheduleBlock) using BasicAer simulator/ BasicSimulator or Aer simulator and returns a `Job` object. + +If qiskit-aer is installed, jobs will be run using AerSimulator with noise model of the fake backend. Otherwise, jobs will be run using BasicAer simulator/ BasicSimulator simulator without noise. + +Currently noisy simulation of a pulse job is not supported yet in FakeBackendV2. + +**Parameters** + +* **run\_input** (*QuantumCircuit or Schedule or ScheduleBlock or list*) – An individual or a list of `QuantumCircuit`, `ScheduleBlock`, or `Schedule` objects to run on the backend. +* **options** – Any kwarg options to pass to the backend for running the config. If a key is also present in the options attribute/object then the expectation is that the value specified will be used instead of what’s set in the options object. + +**Returns** + +The job object for the run + +**Return type** + +Job + +**Raises** + +**QiskitError** – If a pulse job is supplied and qiskit-aer is not installed. + +### set\_options + + + +`set_options(**fields)` + +Set the options fields for the backend + +This method is used to update the options of a backend. If you need to change any of the options prior to running just pass in the kwarg with the new value for the options. + +**Parameters** + +**fields** – The fields to update the options + +**Raises** + +**AttributeError** – If the field passed in is not part of the options + diff --git a/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeSydney.md b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeSydney.md new file mode 100644 index 00000000000..4e05d4cfa3c --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeSydney.md @@ -0,0 +1,185 @@ +--- +title: FakeSydney +description: API reference for qiskit_ibm_runtime.fake_provider.FakeSydney +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.fake_provider.FakeSydney +--- + +# FakeSydney + + + +`FakeSydney` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/backends/sydney/fake_sydney.py#L31-L38 "view source code") + +A fake 27 qubit backend. + +FakeBackend initializer. + +**Parameters** + +* **configuration** (*BackendConfiguration*) – backend configuration +* **time\_alive** (*int*) – time to wait before returning result + +## Attributes + + + +### backend\_name + +`= 'fake_sydney'` + + + +### conf\_filename + +`= 'conf_sydney.json'` + + + +### defs\_filename + +`= 'defs_sydney.json'` + + + +### dirname + +`= '/home/runner/work/qiskit-ibm-runtime/qiskit-ibm-runtime/qiskit_ibm_runtime/fake_provider/backends/sydney'` + + + +### options + +Return the options for the backend + +The options of a backend are the dynamic parameters defining how the backend is used. These are used to control the [`run()`](#qiskit_ibm_runtime.fake_provider.FakeSydney.run "qiskit_ibm_runtime.fake_provider.FakeSydney.run") method. + + + +### props\_filename + +`= 'props_sydney.json'` + + + +### version + +`= 1` + +## Methods + +### configuration + + + +`configuration()` + +Return the backend configuration. + +**Returns** + +the configuration for the backend. + +**Return type** + +BackendConfiguration + +### defaults + + + +`defaults()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_pulse_backend.py#L29-L33 "view source code") + +Returns a snapshot of device defaults + +**Return type** + +`PulseDefaults` + +### name + + + +`name()` + +Return the backend name. + +**Returns** + +the name of the backend. + +**Return type** + +str + +### properties + + + +`properties()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_qasm_backend.py#L44-L48 "view source code") + +Returns a snapshot of device properties + +**Return type** + +`BackendProperties` + +### provider + + + +`provider()` + +Return the backend Provider. + +**Returns** + +the Provider responsible for the backend. + +**Return type** + +Provider + +### run + + + +`run(run_input, **kwargs)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L545-L574 "view source code") + +Main job in simulator + +### set\_options + + + +`set_options(**fields)` + +Set the options fields for the backend + +This method is used to update the options of a backend. If you need to change any of the options prior to running just pass in the kwarg with the new value for the options. + +**Parameters** + +**fields** – The fields to update the options + +**Raises** + +**AttributeError** – If the field passed in is not part of the options + +### status + + + +`status()` + +Return the backend status. + +**Returns** + +the status of the backend. + +**Return type** + +BackendStatus + diff --git a/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeSydneyV2.md b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeSydneyV2.md new file mode 100644 index 00000000000..615c773bbb6 --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeSydneyV2.md @@ -0,0 +1,377 @@ +--- +title: FakeSydneyV2 +description: API reference for qiskit_ibm_runtime.fake_provider.FakeSydneyV2 +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.fake_provider.FakeSydneyV2 +--- + +# FakeSydneyV2 + + + +`FakeSydneyV2` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/backends/sydney/fake_sydney.py#L21-L28 "view source code") + +A fake 27 qubit backend. + +FakeBackendV2 initializer. + +## Attributes + + + +### backend\_name + +`= 'fake_sydney'` + + + +### conf\_filename + +`= 'conf_sydney.json'` + + + +### coupling\_map + +Return the `CouplingMap` object + + + +### defs\_filename + +`= 'defs_sydney.json'` + + + +### dirname + +`= '/home/runner/work/qiskit-ibm-runtime/qiskit-ibm-runtime/qiskit_ibm_runtime/fake_provider/backends/sydney'` + + + +### dt + +Return the system time resolution of input signals + +This is required to be implemented if the backend supports Pulse scheduling. + +**Return type** + +`Optional`\[`float`] + +**Returns** + +The input signal timestep in seconds. If the backend doesn’t define `dt`, `None` will be returned. + + + +### dtm + +Return the system time resolution of output signals + +**Return type** + +`float` + +**Returns** + +The output signal timestep in seconds. + + + +### instruction\_durations + +Return the `InstructionDurations` object. + + + +### instruction\_schedule\_map + +Return the `InstructionScheduleMap` for the instructions defined in this backend’s target. + + + +### instructions + +A list of Instruction tuples on the backend of the form `(instruction, (qubits)` + +**Return type** + +`List`\[`Tuple`\[`Instruction`, `Tuple`\[`int`]]] + + + +### max\_circuits + +**Return type** + +`None` + + + +### meas\_map + +Return the grouping of measurements which are multiplexed This is required to be implemented if the backend supports Pulse scheduling. + +**Return type** + +`List`\[`List`\[`int`]] + +**Returns** + +The grouping of measurements which are multiplexed + + + +### num\_qubits + +Return the number of qubits the backend has. + +**Return type** + +`int` + + + +### operation\_names + +A list of instruction names that the backend supports. + +**Return type** + +`List`\[`str`] + + + +### operations + +A list of `Instruction` instances that the backend supports. + +**Return type** + +`List`\[`Instruction`] + + + +### options + +Return the options for the backend + +The options of a backend are the dynamic parameters defining how the backend is used. These are used to control the [`run()`](#qiskit_ibm_runtime.fake_provider.FakeSydneyV2.run "qiskit_ibm_runtime.fake_provider.FakeSydneyV2.run") method. + + + +### props\_filename + +`= 'props_sydney.json'` + + + +### provider + +Return the backend Provider. + +**Returns** + +the Provider responsible for the backend. + +**Return type** + +Provider + + + +### target + +A `qiskit.transpiler.Target` object for the backend. + +**Return type** + +Target + + + +### version + +`= 2` + + + +### name + +Name of the backend. + + + +### description + +Optional human-readable description. + + + +### online\_date + +Date that the backend came online. + + + +### backend\_version + +Version of the backend being provided. This is not the same as `BackendV2.version`, which is the version of the `Backend` abstract interface. + +## Methods + +### acquire\_channel + + + +`acquire_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L269-L282 "view source code") + +Return the acquisition channel for the given qubit. + +This is required to be implemented if the backend supports Pulse scheduling. + +**Returns** + +The Qubit measurement acquisition line. + +**Return type** + +AcquireChannel + +### control\_channel + + + +`control_channel(qubits)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L284-L304 "view source code") + +Return the secondary drive channel for the given qubit + +This is typically utilized for controlling multiqubit interactions. This channel is derived from other channels. + +This is required to be implemented if the backend supports Pulse scheduling. + +**Parameters** + +**qubits** (`Iterable`\[`int`]) – Tuple or list of qubits of the form `(control_qubit, target_qubit)`. + +**Returns** + +The multi qubit control line. + +**Return type** + +List\[ControlChannel] + +### drive\_channel + + + +`drive_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L239-L252 "view source code") + +Return the drive channel for the given qubit. + +This is required to be implemented if the backend supports Pulse scheduling. + +**Returns** + +The Qubit drive channel + +**Return type** + +DriveChannel + +### measure\_channel + + + +`measure_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L254-L267 "view source code") + +Return the measure stimulus channel for the given qubit. + +This is required to be implemented if the backend supports Pulse scheduling. + +**Returns** + +The Qubit measurement stimulus line + +**Return type** + +MeasureChannel + +### qubit\_properties + + + +`qubit_properties(qubit)` + +Return QubitProperties for a given qubit. + +If there are no defined or the backend doesn’t support querying these details this method does not need to be implemented. + +**Parameters** + +**qubit** (`Union`\[`int`, `List`\[`int`]]) – The qubit to get the `QubitProperties` object for. This can be a single integer for 1 qubit or a list of qubits and a list of `QubitProperties` objects will be returned in the same order + +**Return type** + +`Union`\[`QubitProperties`, `List`\[`QubitProperties`]] + +**Returns** + +The `QubitProperties` object for the specified qubit. If a list of qubits is provided a list will be returned. If properties are missing for a qubit this can be `None`. + +**Raises** + +**NotImplementedError** – if the backend doesn’t support querying the qubit properties + +### run + + + +`run(run_input, **options)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L306-L365 "view source code") + +Run on the fake backend using a simulator. + +This method runs circuit jobs (an individual or a list of QuantumCircuit ) and pulse jobs (an individual or a list of Schedule or ScheduleBlock) using BasicAer simulator/ BasicSimulator or Aer simulator and returns a `Job` object. + +If qiskit-aer is installed, jobs will be run using AerSimulator with noise model of the fake backend. Otherwise, jobs will be run using BasicAer simulator/ BasicSimulator simulator without noise. + +Currently noisy simulation of a pulse job is not supported yet in FakeBackendV2. + +**Parameters** + +* **run\_input** (*QuantumCircuit or Schedule or ScheduleBlock or list*) – An individual or a list of `QuantumCircuit`, `ScheduleBlock`, or `Schedule` objects to run on the backend. +* **options** – Any kwarg options to pass to the backend for running the config. If a key is also present in the options attribute/object then the expectation is that the value specified will be used instead of what’s set in the options object. + +**Returns** + +The job object for the run + +**Return type** + +Job + +**Raises** + +**QiskitError** – If a pulse job is supplied and qiskit-aer is not installed. + +### set\_options + + + +`set_options(**fields)` + +Set the options fields for the backend + +This method is used to update the options of a backend. If you need to change any of the options prior to running just pass in the kwarg with the new value for the options. + +**Parameters** + +**fields** – The fields to update the options + +**Raises** + +**AttributeError** – If the field passed in is not part of the options + diff --git a/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeTenerife.md b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeTenerife.md new file mode 100644 index 00000000000..40dbdc95275 --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeTenerife.md @@ -0,0 +1,144 @@ +--- +title: FakeTenerife +description: API reference for qiskit_ibm_runtime.fake_provider.FakeTenerife +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.fake_provider.FakeTenerife +--- + +# FakeTenerife + + + +`FakeTenerife` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/backends/tenerife/fake_tenerife.py#L28-L68 "view source code") + +A fake 5 qubit backend. + +```python + 1 + ↙ ↑ +0 ← 2 ← 3 + ↑ ↙ + 4 +``` + +## Attributes + + + +### options + +Return the options for the backend + +The options of a backend are the dynamic parameters defining how the backend is used. These are used to control the [`run()`](#qiskit_ibm_runtime.fake_provider.FakeTenerife.run "qiskit_ibm_runtime.fake_provider.FakeTenerife.run") method. + + + +### version + +`= 1` + +## Methods + +### configuration + + + +`configuration()` + +Return the backend configuration. + +**Returns** + +the configuration for the backend. + +**Return type** + +BackendConfiguration + +### name + + + +`name()` + +Return the backend name. + +**Returns** + +the name of the backend. + +**Return type** + +str + +### properties + + + +`properties()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/backends/tenerife/fake_tenerife.py#L62-L68 "view source code") + +Returns a snapshot of device properties as recorded on 8/30/19. + +**Return type** + +`BackendProperties` + +### provider + + + +`provider()` + +Return the backend Provider. + +**Returns** + +the Provider responsible for the backend. + +**Return type** + +Provider + +### run + + + +`run(run_input, **kwargs)` + +Main job in simulator + +### set\_options + + + +`set_options(**fields)` + +Set the options fields for the backend + +This method is used to update the options of a backend. If you need to change any of the options prior to running just pass in the kwarg with the new value for the options. + +**Parameters** + +**fields** – The fields to update the options + +**Raises** + +**AttributeError** – If the field passed in is not part of the options + +### status + + + +`status()` + +Return the backend status. + +**Returns** + +the status of the backend. + +**Return type** + +BackendStatus + diff --git a/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeTokyo.md b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeTokyo.md new file mode 100644 index 00000000000..f67985278d5 --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeTokyo.md @@ -0,0 +1,146 @@ +--- +title: FakeTokyo +description: API reference for qiskit_ibm_runtime.fake_provider.FakeTokyo +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.fake_provider.FakeTokyo +--- + +# FakeTokyo + + + +`FakeTokyo` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/backends/tokyo/fake_tokyo.py#L28-L141 "view source code") + +A fake 20 qubit backend. + +```python +00 ↔ 01 ↔ 02 ↔ 03 ↔ 04 + ↕ ↕ ↕ ↕ ⤫ ↕ +05 ↔ 06 ↔ 07 ↔ 08 ↔ 09 + ↕ ⤫ ↕ ↕ ⤫ ↕ +10 ↔ 11 ↔ 12 ↔ 13 ↔ 14 + ↕ ↕ ⤫ ↕ ⤫ ↕ +15 ↔ 16 ↔ 17 18 19 +``` + +## Attributes + + + +### options + +Return the options for the backend + +The options of a backend are the dynamic parameters defining how the backend is used. These are used to control the [`run()`](#qiskit_ibm_runtime.fake_provider.FakeTokyo.run "qiskit_ibm_runtime.fake_provider.FakeTokyo.run") method. + + + +### version + +`= 1` + +## Methods + +### configuration + + + +`configuration()` + +Return the backend configuration. + +**Returns** + +the configuration for the backend. + +**Return type** + +BackendConfiguration + +### name + + + +`name()` + +Return the backend name. + +**Returns** + +the name of the backend. + +**Return type** + +str + +### properties + + + +`properties()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/backends/tokyo/fake_tokyo.py#L135-L141 "view source code") + +Returns a snapshot of device properties as recorded on 8/30/19. + +**Return type** + +`BackendProperties` + +### provider + + + +`provider()` + +Return the backend Provider. + +**Returns** + +the Provider responsible for the backend. + +**Return type** + +Provider + +### run + + + +`run(run_input, **kwargs)` + +Main job in simulator + +### set\_options + + + +`set_options(**fields)` + +Set the options fields for the backend + +This method is used to update the options of a backend. If you need to change any of the options prior to running just pass in the kwarg with the new value for the options. + +**Parameters** + +**fields** – The fields to update the options + +**Raises** + +**AttributeError** – If the field passed in is not part of the options + +### status + + + +`status()` + +Return the backend status. + +**Returns** + +the status of the backend. + +**Return type** + +BackendStatus + diff --git a/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeToronto.md b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeToronto.md new file mode 100644 index 00000000000..072908e34b6 --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeToronto.md @@ -0,0 +1,185 @@ +--- +title: FakeToronto +description: API reference for qiskit_ibm_runtime.fake_provider.FakeToronto +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.fake_provider.FakeToronto +--- + +# FakeToronto + + + +`FakeToronto` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/backends/toronto/fake_toronto.py#L31-L38 "view source code") + +A fake 27 qubit backend. + +FakeBackend initializer. + +**Parameters** + +* **configuration** (*BackendConfiguration*) – backend configuration +* **time\_alive** (*int*) – time to wait before returning result + +## Attributes + + + +### backend\_name + +`= 'fake_toronto'` + + + +### conf\_filename + +`= 'conf_toronto.json'` + + + +### defs\_filename + +`= 'defs_toronto.json'` + + + +### dirname + +`= '/home/runner/work/qiskit-ibm-runtime/qiskit-ibm-runtime/qiskit_ibm_runtime/fake_provider/backends/toronto'` + + + +### options + +Return the options for the backend + +The options of a backend are the dynamic parameters defining how the backend is used. These are used to control the [`run()`](#qiskit_ibm_runtime.fake_provider.FakeToronto.run "qiskit_ibm_runtime.fake_provider.FakeToronto.run") method. + + + +### props\_filename + +`= 'props_toronto.json'` + + + +### version + +`= 1` + +## Methods + +### configuration + + + +`configuration()` + +Return the backend configuration. + +**Returns** + +the configuration for the backend. + +**Return type** + +BackendConfiguration + +### defaults + + + +`defaults()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_pulse_backend.py#L29-L33 "view source code") + +Returns a snapshot of device defaults + +**Return type** + +`PulseDefaults` + +### name + + + +`name()` + +Return the backend name. + +**Returns** + +the name of the backend. + +**Return type** + +str + +### properties + + + +`properties()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_qasm_backend.py#L44-L48 "view source code") + +Returns a snapshot of device properties + +**Return type** + +`BackendProperties` + +### provider + + + +`provider()` + +Return the backend Provider. + +**Returns** + +the Provider responsible for the backend. + +**Return type** + +Provider + +### run + + + +`run(run_input, **kwargs)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L545-L574 "view source code") + +Main job in simulator + +### set\_options + + + +`set_options(**fields)` + +Set the options fields for the backend + +This method is used to update the options of a backend. If you need to change any of the options prior to running just pass in the kwarg with the new value for the options. + +**Parameters** + +**fields** – The fields to update the options + +**Raises** + +**AttributeError** – If the field passed in is not part of the options + +### status + + + +`status()` + +Return the backend status. + +**Returns** + +the status of the backend. + +**Return type** + +BackendStatus + diff --git a/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeTorontoV2.md b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeTorontoV2.md new file mode 100644 index 00000000000..a5ea3d0dd79 --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeTorontoV2.md @@ -0,0 +1,377 @@ +--- +title: FakeTorontoV2 +description: API reference for qiskit_ibm_runtime.fake_provider.FakeTorontoV2 +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.fake_provider.FakeTorontoV2 +--- + +# FakeTorontoV2 + + + +`FakeTorontoV2` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/backends/toronto/fake_toronto.py#L21-L28 "view source code") + +A fake 27 qubit backend. + +FakeBackendV2 initializer. + +## Attributes + + + +### backend\_name + +`= 'fake_toronto'` + + + +### conf\_filename + +`= 'conf_toronto.json'` + + + +### coupling\_map + +Return the `CouplingMap` object + + + +### defs\_filename + +`= 'defs_toronto.json'` + + + +### dirname + +`= '/home/runner/work/qiskit-ibm-runtime/qiskit-ibm-runtime/qiskit_ibm_runtime/fake_provider/backends/toronto'` + + + +### dt + +Return the system time resolution of input signals + +This is required to be implemented if the backend supports Pulse scheduling. + +**Return type** + +`Optional`\[`float`] + +**Returns** + +The input signal timestep in seconds. If the backend doesn’t define `dt`, `None` will be returned. + + + +### dtm + +Return the system time resolution of output signals + +**Return type** + +`float` + +**Returns** + +The output signal timestep in seconds. + + + +### instruction\_durations + +Return the `InstructionDurations` object. + + + +### instruction\_schedule\_map + +Return the `InstructionScheduleMap` for the instructions defined in this backend’s target. + + + +### instructions + +A list of Instruction tuples on the backend of the form `(instruction, (qubits)` + +**Return type** + +`List`\[`Tuple`\[`Instruction`, `Tuple`\[`int`]]] + + + +### max\_circuits + +**Return type** + +`None` + + + +### meas\_map + +Return the grouping of measurements which are multiplexed This is required to be implemented if the backend supports Pulse scheduling. + +**Return type** + +`List`\[`List`\[`int`]] + +**Returns** + +The grouping of measurements which are multiplexed + + + +### num\_qubits + +Return the number of qubits the backend has. + +**Return type** + +`int` + + + +### operation\_names + +A list of instruction names that the backend supports. + +**Return type** + +`List`\[`str`] + + + +### operations + +A list of `Instruction` instances that the backend supports. + +**Return type** + +`List`\[`Instruction`] + + + +### options + +Return the options for the backend + +The options of a backend are the dynamic parameters defining how the backend is used. These are used to control the [`run()`](#qiskit_ibm_runtime.fake_provider.FakeTorontoV2.run "qiskit_ibm_runtime.fake_provider.FakeTorontoV2.run") method. + + + +### props\_filename + +`= 'props_toronto.json'` + + + +### provider + +Return the backend Provider. + +**Returns** + +the Provider responsible for the backend. + +**Return type** + +Provider + + + +### target + +A `qiskit.transpiler.Target` object for the backend. + +**Return type** + +Target + + + +### version + +`= 2` + + + +### name + +Name of the backend. + + + +### description + +Optional human-readable description. + + + +### online\_date + +Date that the backend came online. + + + +### backend\_version + +Version of the backend being provided. This is not the same as `BackendV2.version`, which is the version of the `Backend` abstract interface. + +## Methods + +### acquire\_channel + + + +`acquire_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L269-L282 "view source code") + +Return the acquisition channel for the given qubit. + +This is required to be implemented if the backend supports Pulse scheduling. + +**Returns** + +The Qubit measurement acquisition line. + +**Return type** + +AcquireChannel + +### control\_channel + + + +`control_channel(qubits)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L284-L304 "view source code") + +Return the secondary drive channel for the given qubit + +This is typically utilized for controlling multiqubit interactions. This channel is derived from other channels. + +This is required to be implemented if the backend supports Pulse scheduling. + +**Parameters** + +**qubits** (`Iterable`\[`int`]) – Tuple or list of qubits of the form `(control_qubit, target_qubit)`. + +**Returns** + +The multi qubit control line. + +**Return type** + +List\[ControlChannel] + +### drive\_channel + + + +`drive_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L239-L252 "view source code") + +Return the drive channel for the given qubit. + +This is required to be implemented if the backend supports Pulse scheduling. + +**Returns** + +The Qubit drive channel + +**Return type** + +DriveChannel + +### measure\_channel + + + +`measure_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L254-L267 "view source code") + +Return the measure stimulus channel for the given qubit. + +This is required to be implemented if the backend supports Pulse scheduling. + +**Returns** + +The Qubit measurement stimulus line + +**Return type** + +MeasureChannel + +### qubit\_properties + + + +`qubit_properties(qubit)` + +Return QubitProperties for a given qubit. + +If there are no defined or the backend doesn’t support querying these details this method does not need to be implemented. + +**Parameters** + +**qubit** (`Union`\[`int`, `List`\[`int`]]) – The qubit to get the `QubitProperties` object for. This can be a single integer for 1 qubit or a list of qubits and a list of `QubitProperties` objects will be returned in the same order + +**Return type** + +`Union`\[`QubitProperties`, `List`\[`QubitProperties`]] + +**Returns** + +The `QubitProperties` object for the specified qubit. If a list of qubits is provided a list will be returned. If properties are missing for a qubit this can be `None`. + +**Raises** + +**NotImplementedError** – if the backend doesn’t support querying the qubit properties + +### run + + + +`run(run_input, **options)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L306-L365 "view source code") + +Run on the fake backend using a simulator. + +This method runs circuit jobs (an individual or a list of QuantumCircuit ) and pulse jobs (an individual or a list of Schedule or ScheduleBlock) using BasicAer simulator/ BasicSimulator or Aer simulator and returns a `Job` object. + +If qiskit-aer is installed, jobs will be run using AerSimulator with noise model of the fake backend. Otherwise, jobs will be run using BasicAer simulator/ BasicSimulator simulator without noise. + +Currently noisy simulation of a pulse job is not supported yet in FakeBackendV2. + +**Parameters** + +* **run\_input** (*QuantumCircuit or Schedule or ScheduleBlock or list*) – An individual or a list of `QuantumCircuit`, `ScheduleBlock`, or `Schedule` objects to run on the backend. +* **options** – Any kwarg options to pass to the backend for running the config. If a key is also present in the options attribute/object then the expectation is that the value specified will be used instead of what’s set in the options object. + +**Returns** + +The job object for the run + +**Return type** + +Job + +**Raises** + +**QiskitError** – If a pulse job is supplied and qiskit-aer is not installed. + +### set\_options + + + +`set_options(**fields)` + +Set the options fields for the backend + +This method is used to update the options of a backend. If you need to change any of the options prior to running just pass in the kwarg with the new value for the options. + +**Parameters** + +**fields** – The fields to update the options + +**Raises** + +**AttributeError** – If the field passed in is not part of the options + diff --git a/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeValencia.md b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeValencia.md new file mode 100644 index 00000000000..98f2f35d029 --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeValencia.md @@ -0,0 +1,185 @@ +--- +title: FakeValencia +description: API reference for qiskit_ibm_runtime.fake_provider.FakeValencia +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.fake_provider.FakeValencia +--- + +# FakeValencia + + + +`FakeValencia` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/backends/valencia/fake_valencia.py#L31-L38 "view source code") + +A fake 5 qubit backend. + +FakeBackend initializer. + +**Parameters** + +* **configuration** (*BackendConfiguration*) – backend configuration +* **time\_alive** (*int*) – time to wait before returning result + +## Attributes + + + +### backend\_name + +`= 'fake_valencia'` + + + +### conf\_filename + +`= 'conf_valencia.json'` + + + +### defs\_filename + +`= 'defs_valencia.json'` + + + +### dirname + +`= '/home/runner/work/qiskit-ibm-runtime/qiskit-ibm-runtime/qiskit_ibm_runtime/fake_provider/backends/valencia'` + + + +### options + +Return the options for the backend + +The options of a backend are the dynamic parameters defining how the backend is used. These are used to control the [`run()`](#qiskit_ibm_runtime.fake_provider.FakeValencia.run "qiskit_ibm_runtime.fake_provider.FakeValencia.run") method. + + + +### props\_filename + +`= 'props_valencia.json'` + + + +### version + +`= 1` + +## Methods + +### configuration + + + +`configuration()` + +Return the backend configuration. + +**Returns** + +the configuration for the backend. + +**Return type** + +BackendConfiguration + +### defaults + + + +`defaults()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_pulse_backend.py#L29-L33 "view source code") + +Returns a snapshot of device defaults + +**Return type** + +`PulseDefaults` + +### name + + + +`name()` + +Return the backend name. + +**Returns** + +the name of the backend. + +**Return type** + +str + +### properties + + + +`properties()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_qasm_backend.py#L44-L48 "view source code") + +Returns a snapshot of device properties + +**Return type** + +`BackendProperties` + +### provider + + + +`provider()` + +Return the backend Provider. + +**Returns** + +the Provider responsible for the backend. + +**Return type** + +Provider + +### run + + + +`run(run_input, **kwargs)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L545-L574 "view source code") + +Main job in simulator + +### set\_options + + + +`set_options(**fields)` + +Set the options fields for the backend + +This method is used to update the options of a backend. If you need to change any of the options prior to running just pass in the kwarg with the new value for the options. + +**Parameters** + +**fields** – The fields to update the options + +**Raises** + +**AttributeError** – If the field passed in is not part of the options + +### status + + + +`status()` + +Return the backend status. + +**Returns** + +the status of the backend. + +**Return type** + +BackendStatus + diff --git a/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeValenciaV2.md b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeValenciaV2.md new file mode 100644 index 00000000000..54908a211b9 --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeValenciaV2.md @@ -0,0 +1,377 @@ +--- +title: FakeValenciaV2 +description: API reference for qiskit_ibm_runtime.fake_provider.FakeValenciaV2 +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.fake_provider.FakeValenciaV2 +--- + +# FakeValenciaV2 + + + +`FakeValenciaV2` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/backends/valencia/fake_valencia.py#L21-L28 "view source code") + +A fake 5 qubit backend. + +FakeBackendV2 initializer. + +## Attributes + + + +### backend\_name + +`= 'fake_valencia'` + + + +### conf\_filename + +`= 'conf_valencia.json'` + + + +### coupling\_map + +Return the `CouplingMap` object + + + +### defs\_filename + +`= 'defs_valencia.json'` + + + +### dirname + +`= '/home/runner/work/qiskit-ibm-runtime/qiskit-ibm-runtime/qiskit_ibm_runtime/fake_provider/backends/valencia'` + + + +### dt + +Return the system time resolution of input signals + +This is required to be implemented if the backend supports Pulse scheduling. + +**Return type** + +`Optional`\[`float`] + +**Returns** + +The input signal timestep in seconds. If the backend doesn’t define `dt`, `None` will be returned. + + + +### dtm + +Return the system time resolution of output signals + +**Return type** + +`float` + +**Returns** + +The output signal timestep in seconds. + + + +### instruction\_durations + +Return the `InstructionDurations` object. + + + +### instruction\_schedule\_map + +Return the `InstructionScheduleMap` for the instructions defined in this backend’s target. + + + +### instructions + +A list of Instruction tuples on the backend of the form `(instruction, (qubits)` + +**Return type** + +`List`\[`Tuple`\[`Instruction`, `Tuple`\[`int`]]] + + + +### max\_circuits + +**Return type** + +`None` + + + +### meas\_map + +Return the grouping of measurements which are multiplexed This is required to be implemented if the backend supports Pulse scheduling. + +**Return type** + +`List`\[`List`\[`int`]] + +**Returns** + +The grouping of measurements which are multiplexed + + + +### num\_qubits + +Return the number of qubits the backend has. + +**Return type** + +`int` + + + +### operation\_names + +A list of instruction names that the backend supports. + +**Return type** + +`List`\[`str`] + + + +### operations + +A list of `Instruction` instances that the backend supports. + +**Return type** + +`List`\[`Instruction`] + + + +### options + +Return the options for the backend + +The options of a backend are the dynamic parameters defining how the backend is used. These are used to control the [`run()`](#qiskit_ibm_runtime.fake_provider.FakeValenciaV2.run "qiskit_ibm_runtime.fake_provider.FakeValenciaV2.run") method. + + + +### props\_filename + +`= 'props_valencia.json'` + + + +### provider + +Return the backend Provider. + +**Returns** + +the Provider responsible for the backend. + +**Return type** + +Provider + + + +### target + +A `qiskit.transpiler.Target` object for the backend. + +**Return type** + +Target + + + +### version + +`= 2` + + + +### name + +Name of the backend. + + + +### description + +Optional human-readable description. + + + +### online\_date + +Date that the backend came online. + + + +### backend\_version + +Version of the backend being provided. This is not the same as `BackendV2.version`, which is the version of the `Backend` abstract interface. + +## Methods + +### acquire\_channel + + + +`acquire_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L269-L282 "view source code") + +Return the acquisition channel for the given qubit. + +This is required to be implemented if the backend supports Pulse scheduling. + +**Returns** + +The Qubit measurement acquisition line. + +**Return type** + +AcquireChannel + +### control\_channel + + + +`control_channel(qubits)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L284-L304 "view source code") + +Return the secondary drive channel for the given qubit + +This is typically utilized for controlling multiqubit interactions. This channel is derived from other channels. + +This is required to be implemented if the backend supports Pulse scheduling. + +**Parameters** + +**qubits** (`Iterable`\[`int`]) – Tuple or list of qubits of the form `(control_qubit, target_qubit)`. + +**Returns** + +The multi qubit control line. + +**Return type** + +List\[ControlChannel] + +### drive\_channel + + + +`drive_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L239-L252 "view source code") + +Return the drive channel for the given qubit. + +This is required to be implemented if the backend supports Pulse scheduling. + +**Returns** + +The Qubit drive channel + +**Return type** + +DriveChannel + +### measure\_channel + + + +`measure_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L254-L267 "view source code") + +Return the measure stimulus channel for the given qubit. + +This is required to be implemented if the backend supports Pulse scheduling. + +**Returns** + +The Qubit measurement stimulus line + +**Return type** + +MeasureChannel + +### qubit\_properties + + + +`qubit_properties(qubit)` + +Return QubitProperties for a given qubit. + +If there are no defined or the backend doesn’t support querying these details this method does not need to be implemented. + +**Parameters** + +**qubit** (`Union`\[`int`, `List`\[`int`]]) – The qubit to get the `QubitProperties` object for. This can be a single integer for 1 qubit or a list of qubits and a list of `QubitProperties` objects will be returned in the same order + +**Return type** + +`Union`\[`QubitProperties`, `List`\[`QubitProperties`]] + +**Returns** + +The `QubitProperties` object for the specified qubit. If a list of qubits is provided a list will be returned. If properties are missing for a qubit this can be `None`. + +**Raises** + +**NotImplementedError** – if the backend doesn’t support querying the qubit properties + +### run + + + +`run(run_input, **options)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L306-L365 "view source code") + +Run on the fake backend using a simulator. + +This method runs circuit jobs (an individual or a list of QuantumCircuit ) and pulse jobs (an individual or a list of Schedule or ScheduleBlock) using BasicAer simulator/ BasicSimulator or Aer simulator and returns a `Job` object. + +If qiskit-aer is installed, jobs will be run using AerSimulator with noise model of the fake backend. Otherwise, jobs will be run using BasicAer simulator/ BasicSimulator simulator without noise. + +Currently noisy simulation of a pulse job is not supported yet in FakeBackendV2. + +**Parameters** + +* **run\_input** (*QuantumCircuit or Schedule or ScheduleBlock or list*) – An individual or a list of `QuantumCircuit`, `ScheduleBlock`, or `Schedule` objects to run on the backend. +* **options** – Any kwarg options to pass to the backend for running the config. If a key is also present in the options attribute/object then the expectation is that the value specified will be used instead of what’s set in the options object. + +**Returns** + +The job object for the run + +**Return type** + +Job + +**Raises** + +**QiskitError** – If a pulse job is supplied and qiskit-aer is not installed. + +### set\_options + + + +`set_options(**fields)` + +Set the options fields for the backend + +This method is used to update the options of a backend. If you need to change any of the options prior to running just pass in the kwarg with the new value for the options. + +**Parameters** + +**fields** – The fields to update the options + +**Raises** + +**AttributeError** – If the field passed in is not part of the options + diff --git a/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeVigo.md b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeVigo.md new file mode 100644 index 00000000000..b7098a7cac0 --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeVigo.md @@ -0,0 +1,173 @@ +--- +title: FakeVigo +description: API reference for qiskit_ibm_runtime.fake_provider.FakeVigo +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.fake_provider.FakeVigo +--- + +# FakeVigo + + + +`FakeVigo` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/backends/vigo/fake_vigo.py#L37-L50 "view source code") + +A fake 5 qubit backend. + +```python +0 ↔ 1 ↔ 3 ↔ 4 + ↕ + 2 +``` + +FakeBackend initializer. + +**Parameters** + +* **configuration** (*BackendConfiguration*) – backend configuration +* **time\_alive** (*int*) – time to wait before returning result + +## Attributes + + + +### backend\_name + +`= 'fake_vigo'` + + + +### conf\_filename + +`= 'conf_vigo.json'` + + + +### dirname + +`= '/home/runner/work/qiskit-ibm-runtime/qiskit-ibm-runtime/qiskit_ibm_runtime/fake_provider/backends/vigo'` + + + +### options + +Return the options for the backend + +The options of a backend are the dynamic parameters defining how the backend is used. These are used to control the [`run()`](#qiskit_ibm_runtime.fake_provider.FakeVigo.run "qiskit_ibm_runtime.fake_provider.FakeVigo.run") method. + + + +### props\_filename + +`= 'props_vigo.json'` + + + +### version + +`= 1` + +## Methods + +### configuration + + + +`configuration()` + +Return the backend configuration. + +**Returns** + +the configuration for the backend. + +**Return type** + +BackendConfiguration + +### name + + + +`name()` + +Return the backend name. + +**Returns** + +the name of the backend. + +**Return type** + +str + +### properties + + + +`properties()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_qasm_backend.py#L44-L48 "view source code") + +Returns a snapshot of device properties + +**Return type** + +`BackendProperties` + +### provider + + + +`provider()` + +Return the backend Provider. + +**Returns** + +the Provider responsible for the backend. + +**Return type** + +Provider + +### run + + + +`run(run_input, **kwargs)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L545-L574 "view source code") + +Main job in simulator + +### set\_options + + + +`set_options(**fields)` + +Set the options fields for the backend + +This method is used to update the options of a backend. If you need to change any of the options prior to running just pass in the kwarg with the new value for the options. + +**Parameters** + +**fields** – The fields to update the options + +**Raises** + +**AttributeError** – If the field passed in is not part of the options + +### status + + + +`status()` + +Return the backend status. + +**Returns** + +the status of the backend. + +**Return type** + +BackendStatus + diff --git a/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeVigoV2.md b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeVigoV2.md new file mode 100644 index 00000000000..4da4f84551c --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeVigoV2.md @@ -0,0 +1,383 @@ +--- +title: FakeVigoV2 +description: API reference for qiskit_ibm_runtime.fake_provider.FakeVigoV2 +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.fake_provider.FakeVigoV2 +--- + +# FakeVigoV2 + + + +`FakeVigoV2` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/backends/vigo/fake_vigo.py#L21-L34 "view source code") + +A fake 5 qubit backend. + +```python +0 ↔ 1 ↔ 3 ↔ 4 + ↕ + 2 +``` + +FakeBackendV2 initializer. + +## Attributes + + + +### backend\_name + +`= 'fake_vigo'` + + + +### conf\_filename + +`= 'conf_vigo.json'` + + + +### coupling\_map + +Return the `CouplingMap` object + + + +### defs\_filename + +`= None` + + + +### dirname + +`= '/home/runner/work/qiskit-ibm-runtime/qiskit-ibm-runtime/qiskit_ibm_runtime/fake_provider/backends/vigo'` + + + +### dt + +Return the system time resolution of input signals + +This is required to be implemented if the backend supports Pulse scheduling. + +**Return type** + +`Optional`\[`float`] + +**Returns** + +The input signal timestep in seconds. If the backend doesn’t define `dt`, `None` will be returned. + + + +### dtm + +Return the system time resolution of output signals + +**Return type** + +`float` + +**Returns** + +The output signal timestep in seconds. + + + +### instruction\_durations + +Return the `InstructionDurations` object. + + + +### instruction\_schedule\_map + +Return the `InstructionScheduleMap` for the instructions defined in this backend’s target. + + + +### instructions + +A list of Instruction tuples on the backend of the form `(instruction, (qubits)` + +**Return type** + +`List`\[`Tuple`\[`Instruction`, `Tuple`\[`int`]]] + + + +### max\_circuits + +**Return type** + +`None` + + + +### meas\_map + +Return the grouping of measurements which are multiplexed This is required to be implemented if the backend supports Pulse scheduling. + +**Return type** + +`List`\[`List`\[`int`]] + +**Returns** + +The grouping of measurements which are multiplexed + + + +### num\_qubits + +Return the number of qubits the backend has. + +**Return type** + +`int` + + + +### operation\_names + +A list of instruction names that the backend supports. + +**Return type** + +`List`\[`str`] + + + +### operations + +A list of `Instruction` instances that the backend supports. + +**Return type** + +`List`\[`Instruction`] + + + +### options + +Return the options for the backend + +The options of a backend are the dynamic parameters defining how the backend is used. These are used to control the [`run()`](#qiskit_ibm_runtime.fake_provider.FakeVigoV2.run "qiskit_ibm_runtime.fake_provider.FakeVigoV2.run") method. + + + +### props\_filename + +`= 'props_vigo.json'` + + + +### provider + +Return the backend Provider. + +**Returns** + +the Provider responsible for the backend. + +**Return type** + +Provider + + + +### target + +A `qiskit.transpiler.Target` object for the backend. + +**Return type** + +Target + + + +### version + +`= 2` + + + +### name + +Name of the backend. + + + +### description + +Optional human-readable description. + + + +### online\_date + +Date that the backend came online. + + + +### backend\_version + +Version of the backend being provided. This is not the same as `BackendV2.version`, which is the version of the `Backend` abstract interface. + +## Methods + +### acquire\_channel + + + +`acquire_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L269-L282 "view source code") + +Return the acquisition channel for the given qubit. + +This is required to be implemented if the backend supports Pulse scheduling. + +**Returns** + +The Qubit measurement acquisition line. + +**Return type** + +AcquireChannel + +### control\_channel + + + +`control_channel(qubits)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L284-L304 "view source code") + +Return the secondary drive channel for the given qubit + +This is typically utilized for controlling multiqubit interactions. This channel is derived from other channels. + +This is required to be implemented if the backend supports Pulse scheduling. + +**Parameters** + +**qubits** (`Iterable`\[`int`]) – Tuple or list of qubits of the form `(control_qubit, target_qubit)`. + +**Returns** + +The multi qubit control line. + +**Return type** + +List\[ControlChannel] + +### drive\_channel + + + +`drive_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L239-L252 "view source code") + +Return the drive channel for the given qubit. + +This is required to be implemented if the backend supports Pulse scheduling. + +**Returns** + +The Qubit drive channel + +**Return type** + +DriveChannel + +### measure\_channel + + + +`measure_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L254-L267 "view source code") + +Return the measure stimulus channel for the given qubit. + +This is required to be implemented if the backend supports Pulse scheduling. + +**Returns** + +The Qubit measurement stimulus line + +**Return type** + +MeasureChannel + +### qubit\_properties + + + +`qubit_properties(qubit)` + +Return QubitProperties for a given qubit. + +If there are no defined or the backend doesn’t support querying these details this method does not need to be implemented. + +**Parameters** + +**qubit** (`Union`\[`int`, `List`\[`int`]]) – The qubit to get the `QubitProperties` object for. This can be a single integer for 1 qubit or a list of qubits and a list of `QubitProperties` objects will be returned in the same order + +**Return type** + +`Union`\[`QubitProperties`, `List`\[`QubitProperties`]] + +**Returns** + +The `QubitProperties` object for the specified qubit. If a list of qubits is provided a list will be returned. If properties are missing for a qubit this can be `None`. + +**Raises** + +**NotImplementedError** – if the backend doesn’t support querying the qubit properties + +### run + + + +`run(run_input, **options)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L306-L365 "view source code") + +Run on the fake backend using a simulator. + +This method runs circuit jobs (an individual or a list of QuantumCircuit ) and pulse jobs (an individual or a list of Schedule or ScheduleBlock) using BasicAer simulator/ BasicSimulator or Aer simulator and returns a `Job` object. + +If qiskit-aer is installed, jobs will be run using AerSimulator with noise model of the fake backend. Otherwise, jobs will be run using BasicAer simulator/ BasicSimulator simulator without noise. + +Currently noisy simulation of a pulse job is not supported yet in FakeBackendV2. + +**Parameters** + +* **run\_input** (*QuantumCircuit or Schedule or ScheduleBlock or list*) – An individual or a list of `QuantumCircuit`, `ScheduleBlock`, or `Schedule` objects to run on the backend. +* **options** – Any kwarg options to pass to the backend for running the config. If a key is also present in the options attribute/object then the expectation is that the value specified will be used instead of what’s set in the options object. + +**Returns** + +The job object for the run + +**Return type** + +Job + +**Raises** + +**QiskitError** – If a pulse job is supplied and qiskit-aer is not installed. + +### set\_options + + + +`set_options(**fields)` + +Set the options fields for the backend + +This method is used to update the options of a backend. If you need to change any of the options prior to running just pass in the kwarg with the new value for the options. + +**Parameters** + +**fields** – The fields to update the options + +**Raises** + +**AttributeError** – If the field passed in is not part of the options + diff --git a/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeWashington.md b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeWashington.md new file mode 100644 index 00000000000..3b6a69f2942 --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeWashington.md @@ -0,0 +1,185 @@ +--- +title: FakeWashington +description: API reference for qiskit_ibm_runtime.fake_provider.FakeWashington +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.fake_provider.FakeWashington +--- + +# FakeWashington + + + +`FakeWashington` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/backends/washington/fake_washington.py#L31-L38 "view source code") + +A fake 127 qubit backend. + +FakeBackend initializer. + +**Parameters** + +* **configuration** (*BackendConfiguration*) – backend configuration +* **time\_alive** (*int*) – time to wait before returning result + +## Attributes + + + +### backend\_name + +`= 'fake_washington'` + + + +### conf\_filename + +`= 'conf_washington.json'` + + + +### defs\_filename + +`= 'defs_washington.json'` + + + +### dirname + +`= '/home/runner/work/qiskit-ibm-runtime/qiskit-ibm-runtime/qiskit_ibm_runtime/fake_provider/backends/washington'` + + + +### options + +Return the options for the backend + +The options of a backend are the dynamic parameters defining how the backend is used. These are used to control the [`run()`](#qiskit_ibm_runtime.fake_provider.FakeWashington.run "qiskit_ibm_runtime.fake_provider.FakeWashington.run") method. + + + +### props\_filename + +`= 'props_washington.json'` + + + +### version + +`= 1` + +## Methods + +### configuration + + + +`configuration()` + +Return the backend configuration. + +**Returns** + +the configuration for the backend. + +**Return type** + +BackendConfiguration + +### defaults + + + +`defaults()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_pulse_backend.py#L29-L33 "view source code") + +Returns a snapshot of device defaults + +**Return type** + +`PulseDefaults` + +### name + + + +`name()` + +Return the backend name. + +**Returns** + +the name of the backend. + +**Return type** + +str + +### properties + + + +`properties()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_qasm_backend.py#L44-L48 "view source code") + +Returns a snapshot of device properties + +**Return type** + +`BackendProperties` + +### provider + + + +`provider()` + +Return the backend Provider. + +**Returns** + +the Provider responsible for the backend. + +**Return type** + +Provider + +### run + + + +`run(run_input, **kwargs)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L545-L574 "view source code") + +Main job in simulator + +### set\_options + + + +`set_options(**fields)` + +Set the options fields for the backend + +This method is used to update the options of a backend. If you need to change any of the options prior to running just pass in the kwarg with the new value for the options. + +**Parameters** + +**fields** – The fields to update the options + +**Raises** + +**AttributeError** – If the field passed in is not part of the options + +### status + + + +`status()` + +Return the backend status. + +**Returns** + +the status of the backend. + +**Return type** + +BackendStatus + diff --git a/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeWashingtonV2.md b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeWashingtonV2.md new file mode 100644 index 00000000000..f8411be62da --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeWashingtonV2.md @@ -0,0 +1,377 @@ +--- +title: FakeWashingtonV2 +description: API reference for qiskit_ibm_runtime.fake_provider.FakeWashingtonV2 +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.fake_provider.FakeWashingtonV2 +--- + +# FakeWashingtonV2 + + + +`FakeWashingtonV2` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/backends/washington/fake_washington.py#L21-L28 "view source code") + +A fake 127 qubit backend. + +FakeBackendV2 initializer. + +## Attributes + + + +### backend\_name + +`= 'fake_washington'` + + + +### conf\_filename + +`= 'conf_washington.json'` + + + +### coupling\_map + +Return the `CouplingMap` object + + + +### defs\_filename + +`= 'defs_washington.json'` + + + +### dirname + +`= '/home/runner/work/qiskit-ibm-runtime/qiskit-ibm-runtime/qiskit_ibm_runtime/fake_provider/backends/washington'` + + + +### dt + +Return the system time resolution of input signals + +This is required to be implemented if the backend supports Pulse scheduling. + +**Return type** + +`Optional`\[`float`] + +**Returns** + +The input signal timestep in seconds. If the backend doesn’t define `dt`, `None` will be returned. + + + +### dtm + +Return the system time resolution of output signals + +**Return type** + +`float` + +**Returns** + +The output signal timestep in seconds. + + + +### instruction\_durations + +Return the `InstructionDurations` object. + + + +### instruction\_schedule\_map + +Return the `InstructionScheduleMap` for the instructions defined in this backend’s target. + + + +### instructions + +A list of Instruction tuples on the backend of the form `(instruction, (qubits)` + +**Return type** + +`List`\[`Tuple`\[`Instruction`, `Tuple`\[`int`]]] + + + +### max\_circuits + +**Return type** + +`None` + + + +### meas\_map + +Return the grouping of measurements which are multiplexed This is required to be implemented if the backend supports Pulse scheduling. + +**Return type** + +`List`\[`List`\[`int`]] + +**Returns** + +The grouping of measurements which are multiplexed + + + +### num\_qubits + +Return the number of qubits the backend has. + +**Return type** + +`int` + + + +### operation\_names + +A list of instruction names that the backend supports. + +**Return type** + +`List`\[`str`] + + + +### operations + +A list of `Instruction` instances that the backend supports. + +**Return type** + +`List`\[`Instruction`] + + + +### options + +Return the options for the backend + +The options of a backend are the dynamic parameters defining how the backend is used. These are used to control the [`run()`](#qiskit_ibm_runtime.fake_provider.FakeWashingtonV2.run "qiskit_ibm_runtime.fake_provider.FakeWashingtonV2.run") method. + + + +### props\_filename + +`= 'props_washington.json'` + + + +### provider + +Return the backend Provider. + +**Returns** + +the Provider responsible for the backend. + +**Return type** + +Provider + + + +### target + +A `qiskit.transpiler.Target` object for the backend. + +**Return type** + +Target + + + +### version + +`= 2` + + + +### name + +Name of the backend. + + + +### description + +Optional human-readable description. + + + +### online\_date + +Date that the backend came online. + + + +### backend\_version + +Version of the backend being provided. This is not the same as `BackendV2.version`, which is the version of the `Backend` abstract interface. + +## Methods + +### acquire\_channel + + + +`acquire_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L269-L282 "view source code") + +Return the acquisition channel for the given qubit. + +This is required to be implemented if the backend supports Pulse scheduling. + +**Returns** + +The Qubit measurement acquisition line. + +**Return type** + +AcquireChannel + +### control\_channel + + + +`control_channel(qubits)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L284-L304 "view source code") + +Return the secondary drive channel for the given qubit + +This is typically utilized for controlling multiqubit interactions. This channel is derived from other channels. + +This is required to be implemented if the backend supports Pulse scheduling. + +**Parameters** + +**qubits** (`Iterable`\[`int`]) – Tuple or list of qubits of the form `(control_qubit, target_qubit)`. + +**Returns** + +The multi qubit control line. + +**Return type** + +List\[ControlChannel] + +### drive\_channel + + + +`drive_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L239-L252 "view source code") + +Return the drive channel for the given qubit. + +This is required to be implemented if the backend supports Pulse scheduling. + +**Returns** + +The Qubit drive channel + +**Return type** + +DriveChannel + +### measure\_channel + + + +`measure_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L254-L267 "view source code") + +Return the measure stimulus channel for the given qubit. + +This is required to be implemented if the backend supports Pulse scheduling. + +**Returns** + +The Qubit measurement stimulus line + +**Return type** + +MeasureChannel + +### qubit\_properties + + + +`qubit_properties(qubit)` + +Return QubitProperties for a given qubit. + +If there are no defined or the backend doesn’t support querying these details this method does not need to be implemented. + +**Parameters** + +**qubit** (`Union`\[`int`, `List`\[`int`]]) – The qubit to get the `QubitProperties` object for. This can be a single integer for 1 qubit or a list of qubits and a list of `QubitProperties` objects will be returned in the same order + +**Return type** + +`Union`\[`QubitProperties`, `List`\[`QubitProperties`]] + +**Returns** + +The `QubitProperties` object for the specified qubit. If a list of qubits is provided a list will be returned. If properties are missing for a qubit this can be `None`. + +**Raises** + +**NotImplementedError** – if the backend doesn’t support querying the qubit properties + +### run + + + +`run(run_input, **options)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L306-L365 "view source code") + +Run on the fake backend using a simulator. + +This method runs circuit jobs (an individual or a list of QuantumCircuit ) and pulse jobs (an individual or a list of Schedule or ScheduleBlock) using BasicAer simulator/ BasicSimulator or Aer simulator and returns a `Job` object. + +If qiskit-aer is installed, jobs will be run using AerSimulator with noise model of the fake backend. Otherwise, jobs will be run using BasicAer simulator/ BasicSimulator simulator without noise. + +Currently noisy simulation of a pulse job is not supported yet in FakeBackendV2. + +**Parameters** + +* **run\_input** (*QuantumCircuit or Schedule or ScheduleBlock or list*) – An individual or a list of `QuantumCircuit`, `ScheduleBlock`, or `Schedule` objects to run on the backend. +* **options** – Any kwarg options to pass to the backend for running the config. If a key is also present in the options attribute/object then the expectation is that the value specified will be used instead of what’s set in the options object. + +**Returns** + +The job object for the run + +**Return type** + +Job + +**Raises** + +**QiskitError** – If a pulse job is supplied and qiskit-aer is not installed. + +### set\_options + + + +`set_options(**fields)` + +Set the options fields for the backend + +This method is used to update the options of a backend. If you need to change any of the options prior to running just pass in the kwarg with the new value for the options. + +**Parameters** + +**fields** – The fields to update the options + +**Raises** + +**AttributeError** – If the field passed in is not part of the options + diff --git a/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeYorktown.md b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeYorktown.md new file mode 100644 index 00000000000..64de0b96149 --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeYorktown.md @@ -0,0 +1,175 @@ +--- +title: FakeYorktown +description: API reference for qiskit_ibm_runtime.fake_provider.FakeYorktown +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.fake_provider.FakeYorktown +--- + +# FakeYorktown + + + +`FakeYorktown` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/backends/yorktown/fake_yorktown.py#L39-L54 "view source code") + +A fake 5 qubit backend. + +```python + 1 + / | +0 - 2 - 3 + | / + 4 +``` + +FakeBackend initializer. + +**Parameters** + +* **configuration** (*BackendConfiguration*) – backend configuration +* **time\_alive** (*int*) – time to wait before returning result + +## Attributes + + + +### backend\_name + +`= 'fake_yorktown'` + + + +### conf\_filename + +`= 'conf_yorktown.json'` + + + +### dirname + +`= '/home/runner/work/qiskit-ibm-runtime/qiskit-ibm-runtime/qiskit_ibm_runtime/fake_provider/backends/yorktown'` + + + +### options + +Return the options for the backend + +The options of a backend are the dynamic parameters defining how the backend is used. These are used to control the [`run()`](#qiskit_ibm_runtime.fake_provider.FakeYorktown.run "qiskit_ibm_runtime.fake_provider.FakeYorktown.run") method. + + + +### props\_filename + +`= 'props_yorktown.json'` + + + +### version + +`= 1` + +## Methods + +### configuration + + + +`configuration()` + +Return the backend configuration. + +**Returns** + +the configuration for the backend. + +**Return type** + +BackendConfiguration + +### name + + + +`name()` + +Return the backend name. + +**Returns** + +the name of the backend. + +**Return type** + +str + +### properties + + + +`properties()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_qasm_backend.py#L44-L48 "view source code") + +Returns a snapshot of device properties + +**Return type** + +`BackendProperties` + +### provider + + + +`provider()` + +Return the backend Provider. + +**Returns** + +the Provider responsible for the backend. + +**Return type** + +Provider + +### run + + + +`run(run_input, **kwargs)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L545-L574 "view source code") + +Main job in simulator + +### set\_options + + + +`set_options(**fields)` + +Set the options fields for the backend + +This method is used to update the options of a backend. If you need to change any of the options prior to running just pass in the kwarg with the new value for the options. + +**Parameters** + +**fields** – The fields to update the options + +**Raises** + +**AttributeError** – If the field passed in is not part of the options + +### status + + + +`status()` + +Return the backend status. + +**Returns** + +the status of the backend. + +**Return type** + +BackendStatus + diff --git a/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeYorktownV2.md b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeYorktownV2.md new file mode 100644 index 00000000000..e43c336f65f --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.fake_provider.FakeYorktownV2.md @@ -0,0 +1,385 @@ +--- +title: FakeYorktownV2 +description: API reference for qiskit_ibm_runtime.fake_provider.FakeYorktownV2 +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.fake_provider.FakeYorktownV2 +--- + +# FakeYorktownV2 + + + +`FakeYorktownV2` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/backends/yorktown/fake_yorktown.py#L21-L36 "view source code") + +A fake 5 qubit backend. + +```python + 1 + / | +0 - 2 - 3 + | / + 4 +``` + +FakeBackendV2 initializer. + +## Attributes + + + +### backend\_name + +`= 'fake_yorktown'` + + + +### conf\_filename + +`= 'conf_yorktown.json'` + + + +### coupling\_map + +Return the `CouplingMap` object + + + +### defs\_filename + +`= None` + + + +### dirname + +`= '/home/runner/work/qiskit-ibm-runtime/qiskit-ibm-runtime/qiskit_ibm_runtime/fake_provider/backends/yorktown'` + + + +### dt + +Return the system time resolution of input signals + +This is required to be implemented if the backend supports Pulse scheduling. + +**Return type** + +`Optional`\[`float`] + +**Returns** + +The input signal timestep in seconds. If the backend doesn’t define `dt`, `None` will be returned. + + + +### dtm + +Return the system time resolution of output signals + +**Return type** + +`float` + +**Returns** + +The output signal timestep in seconds. + + + +### instruction\_durations + +Return the `InstructionDurations` object. + + + +### instruction\_schedule\_map + +Return the `InstructionScheduleMap` for the instructions defined in this backend’s target. + + + +### instructions + +A list of Instruction tuples on the backend of the form `(instruction, (qubits)` + +**Return type** + +`List`\[`Tuple`\[`Instruction`, `Tuple`\[`int`]]] + + + +### max\_circuits + +**Return type** + +`None` + + + +### meas\_map + +Return the grouping of measurements which are multiplexed This is required to be implemented if the backend supports Pulse scheduling. + +**Return type** + +`List`\[`List`\[`int`]] + +**Returns** + +The grouping of measurements which are multiplexed + + + +### num\_qubits + +Return the number of qubits the backend has. + +**Return type** + +`int` + + + +### operation\_names + +A list of instruction names that the backend supports. + +**Return type** + +`List`\[`str`] + + + +### operations + +A list of `Instruction` instances that the backend supports. + +**Return type** + +`List`\[`Instruction`] + + + +### options + +Return the options for the backend + +The options of a backend are the dynamic parameters defining how the backend is used. These are used to control the [`run()`](#qiskit_ibm_runtime.fake_provider.FakeYorktownV2.run "qiskit_ibm_runtime.fake_provider.FakeYorktownV2.run") method. + + + +### props\_filename + +`= 'props_yorktown.json'` + + + +### provider + +Return the backend Provider. + +**Returns** + +the Provider responsible for the backend. + +**Return type** + +Provider + + + +### target + +A `qiskit.transpiler.Target` object for the backend. + +**Return type** + +Target + + + +### version + +`= 2` + + + +### name + +Name of the backend. + + + +### description + +Optional human-readable description. + + + +### online\_date + +Date that the backend came online. + + + +### backend\_version + +Version of the backend being provided. This is not the same as `BackendV2.version`, which is the version of the `Backend` abstract interface. + +## Methods + +### acquire\_channel + + + +`acquire_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L269-L282 "view source code") + +Return the acquisition channel for the given qubit. + +This is required to be implemented if the backend supports Pulse scheduling. + +**Returns** + +The Qubit measurement acquisition line. + +**Return type** + +AcquireChannel + +### control\_channel + + + +`control_channel(qubits)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L284-L304 "view source code") + +Return the secondary drive channel for the given qubit + +This is typically utilized for controlling multiqubit interactions. This channel is derived from other channels. + +This is required to be implemented if the backend supports Pulse scheduling. + +**Parameters** + +**qubits** (`Iterable`\[`int`]) – Tuple or list of qubits of the form `(control_qubit, target_qubit)`. + +**Returns** + +The multi qubit control line. + +**Return type** + +List\[ControlChannel] + +### drive\_channel + + + +`drive_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L239-L252 "view source code") + +Return the drive channel for the given qubit. + +This is required to be implemented if the backend supports Pulse scheduling. + +**Returns** + +The Qubit drive channel + +**Return type** + +DriveChannel + +### measure\_channel + + + +`measure_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L254-L267 "view source code") + +Return the measure stimulus channel for the given qubit. + +This is required to be implemented if the backend supports Pulse scheduling. + +**Returns** + +The Qubit measurement stimulus line + +**Return type** + +MeasureChannel + +### qubit\_properties + + + +`qubit_properties(qubit)` + +Return QubitProperties for a given qubit. + +If there are no defined or the backend doesn’t support querying these details this method does not need to be implemented. + +**Parameters** + +**qubit** (`Union`\[`int`, `List`\[`int`]]) – The qubit to get the `QubitProperties` object for. This can be a single integer for 1 qubit or a list of qubits and a list of `QubitProperties` objects will be returned in the same order + +**Return type** + +`Union`\[`QubitProperties`, `List`\[`QubitProperties`]] + +**Returns** + +The `QubitProperties` object for the specified qubit. If a list of qubits is provided a list will be returned. If properties are missing for a qubit this can be `None`. + +**Raises** + +**NotImplementedError** – if the backend doesn’t support querying the qubit properties + +### run + + + +`run(run_input, **options)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L306-L365 "view source code") + +Run on the fake backend using a simulator. + +This method runs circuit jobs (an individual or a list of QuantumCircuit ) and pulse jobs (an individual or a list of Schedule or ScheduleBlock) using BasicAer simulator/ BasicSimulator or Aer simulator and returns a `Job` object. + +If qiskit-aer is installed, jobs will be run using AerSimulator with noise model of the fake backend. Otherwise, jobs will be run using BasicAer simulator/ BasicSimulator simulator without noise. + +Currently noisy simulation of a pulse job is not supported yet in FakeBackendV2. + +**Parameters** + +* **run\_input** (*QuantumCircuit or Schedule or ScheduleBlock or list*) – An individual or a list of `QuantumCircuit`, `ScheduleBlock`, or `Schedule` objects to run on the backend. +* **options** – Any kwarg options to pass to the backend for running the config. If a key is also present in the options attribute/object then the expectation is that the value specified will be used instead of what’s set in the options object. + +**Returns** + +The job object for the run + +**Return type** + +Job + +**Raises** + +**QiskitError** – If a pulse job is supplied and qiskit-aer is not installed. + +### set\_options + + + +`set_options(**fields)` + +Set the options fields for the backend + +This method is used to update the options of a backend. If you need to change any of the options prior to running just pass in the kwarg with the new value for the options. + +**Parameters** + +**fields** – The fields to update the options + +**Raises** + +**AttributeError** – If the field passed in is not part of the options + diff --git a/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.options.EnvironmentOptions.md b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.options.EnvironmentOptions.md new file mode 100644 index 00000000000..04659f16d89 --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.options.EnvironmentOptions.md @@ -0,0 +1,67 @@ +--- +title: EnvironmentOptions +description: API reference for qiskit_ibm_runtime.options.EnvironmentOptions +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.options.EnvironmentOptions +--- + +# EnvironmentOptions + + + +`EnvironmentOptions(log_level='WARNING', callback=None, job_tags=)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/options/environment_options.py#L27-L62 "view source code") + +Options related to the execution environment. + +**Parameters** + +* **log\_level** (`str`) – logging level to set in the execution environment. The valid log levels are: `DEBUG`, `INFO`, `WARNING`, `ERROR`, and `CRITICAL`. The default level is `WARNING`. + +* **callback** (`Optional`\[`Callable`]) – + + Callback function to be invoked for any interim results and final result. The callback function will receive 2 positional parameters: + + > 1. Job ID + > 2. Job result. + +* **job\_tags** (`Optional`\[`List`]) – Tags to be assigned to the job. The tags can subsequently be used as a filter in the `qiskit_ibm_runtime.qiskit_runtime_service.jobs()` function call. + +## Attributes + + + +### callback + +`Callable | None` + +`= None` + + + +### log\_level + +`str` + +`= 'WARNING'` + + + +### job\_tags + +`List | None` + +## Methods + +### validate\_environment\_options + + + +`static validate_environment_options(environment_options)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/options/environment_options.py#L51-L62 "view source code") + +Validate that environment options are legal. :raises ValueError: if log\_level is not in LogLevelType. + +**Return type** + +`None` + diff --git a/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.options.ExecutionOptions.md b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.options.ExecutionOptions.md new file mode 100644 index 00000000000..390cd6cbe76 --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.options.ExecutionOptions.md @@ -0,0 +1,53 @@ +--- +title: ExecutionOptions +description: API reference for qiskit_ibm_runtime.options.ExecutionOptions +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.options.ExecutionOptions +--- + +# ExecutionOptions + + + +`ExecutionOptions(shots=4000, init_qubits=True)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/options/execution_options.py#L25-L47 "view source code") + +Execution options. + +**Parameters** + +* **shots** (`int`) – Number of repetitions of each circuit, for sampling. Default: 4000. +* **init\_qubits** (`bool`) – Whether to reset the qubits to the ground state for each shot. Default: `True`. + +## Attributes + + + +### init\_qubits + +`bool` + +`= True` + + + +### shots + +`int` + +`= 4000` + +## Methods + +### validate\_execution\_options + + + +`static validate_execution_options(execution_options)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/options/execution_options.py#L39-L47 "view source code") + +Validate that execution options are legal. :raises ValueError: if any execution option is not supported + +**Return type** + +`None` + diff --git a/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.options.Options.md b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.options.Options.md new file mode 100644 index 00000000000..e4f8352ea2d --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.options.Options.md @@ -0,0 +1,124 @@ +--- +title: Options +description: API reference for qiskit_ibm_runtime.options.Options +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.options.Options +--- + +# Options + + + +`Options(optimization_level=None, resilience_level=None, max_execution_time=None, transpilation=, resilience=, execution=, environment=, simulator=)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/options/options.py#L32-L279 "view source code") + +Options for the primitives. + +**Parameters** + +* **optimization\_level** (`Optional`\[`int`]) – + + How much optimization to perform on the circuits. Higher levels generate more optimized circuits, at the expense of longer transpilation times. This is based on the `optimization_level` parameter in qiskit-terra but may include backend-specific optimization. Default: 3. + + * 0: no optimization + * 1: light optimization + * 2: heavy optimization + * 3: even heavier optimization + +* **resilience\_level** (`Optional`\[`int`]) – + + How much resilience to build against errors. Higher levels generate more accurate results, at the expense of longer processing times. Default: 1. + + * 0: No mitigation. + * 1: Minimal mitigation costs. Mitigate error associated with readout errors. + * 2: Medium mitigation costs. Typically reduces bias in estimators but is not guaranteed to be zero bias. Only applies to estimator. + * 3: Heavy mitigation with layer sampling. Theoretically expected to deliver zero bias estimators. Only applies to estimator. + + Refer to the [Qiskit Runtime documentation](/run/configure-error-mitigation). for more information about the error mitigation methods used at each level. + +* **max\_execution\_time** (`Optional`\[`int`]) – + + Maximum execution time in seconds, which is based on system execution time (not wall clock time). System execution time is the amount of time that the system is dedicated to processing your job. If a job exceeds this time limit, it is forcibly cancelled. Simulator jobs continue to use wall clock time. + + Refer to the [Max execution time documentation](/run/max-execution-time). for more information. + +* **transpilation** (`Union`\[[`TranspilationOptions`](qiskit_ibm_runtime.options.TranspilationOptions "qiskit_ibm_runtime.options.transpilation_options.TranspilationOptions"), `Dict`]) – Transpilation options. See [`TranspilationOptions`](qiskit_ibm_runtime.options.TranspilationOptions "qiskit_ibm_runtime.options.TranspilationOptions") for all available options. + +* **resilience** (`Union`\[[`ResilienceOptions`](qiskit_ibm_runtime.options.ResilienceOptions "qiskit_ibm_runtime.options.resilience_options.ResilienceOptions"), `Dict`]) – Advanced resilience options to fine tune the resilience strategy. See [`ResilienceOptions`](qiskit_ibm_runtime.options.ResilienceOptions "qiskit_ibm_runtime.options.ResilienceOptions") for all available options. + +* **execution** (`Union`\[[`ExecutionOptions`](qiskit_ibm_runtime.options.ExecutionOptions "qiskit_ibm_runtime.options.execution_options.ExecutionOptions"), `Dict`]) – Execution time options. See [`ExecutionOptions`](qiskit_ibm_runtime.options.ExecutionOptions "qiskit_ibm_runtime.options.ExecutionOptions") for all available options. + +* **environment** (`Union`\[[`EnvironmentOptions`](qiskit_ibm_runtime.options.EnvironmentOptions "qiskit_ibm_runtime.options.environment_options.EnvironmentOptions"), `Dict`]) – Options related to the execution environment. See [`EnvironmentOptions`](qiskit_ibm_runtime.options.EnvironmentOptions "qiskit_ibm_runtime.options.EnvironmentOptions") for all available options. + +* **simulator** (`Union`\[[`SimulatorOptions`](qiskit_ibm_runtime.options.SimulatorOptions "qiskit_ibm_runtime.options.simulator_options.SimulatorOptions"), `Dict`]) – Simulator options. See [`SimulatorOptions`](qiskit_ibm_runtime.options.SimulatorOptions "qiskit_ibm_runtime.options.SimulatorOptions") for all available options. + +## Attributes + + + +### max\_execution\_time + +`int | None` + +`= None` + + + +### optimization\_level + +`int | None` + +`= None` + + + +### resilience\_level + +`int | None` + +`= None` + + + +### transpilation + +`TranspilationOptions | Dict` + + + +### resilience + +`ResilienceOptions | Dict` + + + +### execution + +`ExecutionOptions | Dict` + + + +### environment + +`EnvironmentOptions | Dict` + + + +### simulator + +`SimulatorOptions | Dict` + +## Methods + +### validate\_options + + + +`static validate_options(options)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/options/options.py#L165-L190 "view source code") + +Validate that program inputs (options) are valid :raises ValueError: if optimization\_level is outside the allowed range. :raises ValueError: if max\_execution\_time is outside the allowed range. + +**Return type** + +`None` + diff --git a/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.options.ResilienceOptions.md b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.options.ResilienceOptions.md new file mode 100644 index 00000000000..6430212cf4a --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.options.ResilienceOptions.md @@ -0,0 +1,63 @@ +--- +title: ResilienceOptions +description: API reference for qiskit_ibm_runtime.options.ResilienceOptions +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.options.ResilienceOptions +--- + +# ResilienceOptions + + + +`ResilienceOptions(noise_amplifier=None, noise_factors=None, extrapolator=None)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/options/resilience_options.py#L34-L91 "view source code") + +Resilience options. + +**Parameters** + +* **noise\_factors** (`Optional`\[`Sequence`\[`float`]]) – An list of real valued noise factors that determine by what amount the circuits’ noise is amplified. Only applicable for `resilience_level=2`. Default: `None`, and (1, 3, 5) if resilience level is 2. +* **noise\_amplifier** (*DEPRECATED*) – A noise amplification strategy. Currently only +* **resilience\_level=2.** (*"LocalFoldingAmplifier" is supported Only applicable for*) – Default: “LocalFoldingAmplifier”. +* **extrapolator** (`Optional`\[`Literal`\[‘LinearExtrapolator’, ‘QuadraticExtrapolator’, ‘CubicExtrapolator’, ‘QuarticExtrapolator’]]) – An extrapolation strategy. One of `"LinearExtrapolator"`, `"QuadraticExtrapolator"`, `"CubicExtrapolator"`, `"QuarticExtrapolator"`. Note that `"CubicExtrapolator"` and `"QuarticExtrapolator"` require more noise factors than the default. Only applicable for `resilience_level=2`. Default: `None`, and `LinearExtrapolator` if resilience level is 2. + +## Attributes + + + +### extrapolator + +`Literal['LinearExtrapolator', 'QuadraticExtrapolator', 'CubicExtrapolator', 'QuarticExtrapolator']` + +`= None` + + + +### noise\_amplifier + +`Literal['LocalFoldingAmplifier']` + +`= None` + + + +### noise\_factors + +`Sequence[float]` + +`= None` + +## Methods + +### validate\_resilience\_options + + + +`static validate_resilience_options(resilience_options)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/options/resilience_options.py#L60-L91 "view source code") + +Validate that resilience options are legal. :raises ValueError: if any resilience option is not supported :raises ValueError: if noise\_amplifier is not in NoiseAmplifierType. :raises ValueError: if extrapolator is not in ExtrapolatorType. :raises ValueError: if extrapolator == “QuarticExtrapolator” and number of noise\_factors \< 5. :raises ValueError: if extrapolator == “CubicExtrapolator” and number of noise\_factors \< 4. + +**Return type** + +`None` + diff --git a/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.options.SimulatorOptions.md b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.options.SimulatorOptions.md new file mode 100644 index 00000000000..008e6406767 --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.options.SimulatorOptions.md @@ -0,0 +1,93 @@ +--- +title: SimulatorOptions +description: API reference for qiskit_ibm_runtime.options.SimulatorOptions +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.options.SimulatorOptions +--- + +# SimulatorOptions + + + +`SimulatorOptions(noise_model=None, seed_simulator=None, coupling_map=None, basis_gates=None)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/options/simulator_options.py#L35-L95 "view source code") + +Simulator options. + +For best practice in simulating a backend make sure to pass the basis gates and coupling map of that backend. + +**Parameters** + +* **noise\_model** (`Union`\[`dict`, `NoiseModel`, `None`]) – Noise model for the simulator. +* **seed\_simulator** (`Optional`\[`int`]) – Random seed to control sampling. +* **coupling\_map** (`Union`\[`List`\[`List`\[`int`]], `CouplingMap`, `None`]) – Directed coupling map to target in mapping. If the coupling map is symmetric, both directions need to be specified. Each entry in the list specifies a directed two-qubit interactions, e.g: `[[0, 1], [0, 3], [1, 2], [1, 5], [2, 5], [4, 1], [5, 3]]` +* **basis\_gates** (`Optional`\[`List`\[`str`]]) – List of basis gate names to unroll to. For example, `['u1', 'u2', 'u3', 'cx']`. If `None`, do not unroll. + +## Attributes + + + +### basis\_gates + +`List[str] | None` + +`= None` + + + +### coupling\_map + +`List[List[int]] | CouplingMap | None` + +`= None` + + + +### noise\_model + +`dict | NoiseModel | None` + +`= None` + + + +### seed\_simulator + +`int | None` + +`= None` + +## Methods + +### set\_backend + + + +`set_backend(backend)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/options/simulator_options.py#L71-L95 "view source code") + +Set backend for simulation. This method changes noise\_model, coupling\_map, basis\_gates according to given backend. + +**Parameters** + +**backend** (`Union`\[`BackendV1`, `BackendV2`]) – backend to be set. + +**Raises** + +**MissingOptionalLibraryError if qiskit-aer is not found.** – + +**Return type** + +`None` + +### validate\_simulator\_options + + + +`static validate_simulator_options(simulator_options)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/options/simulator_options.py#L61-L69 "view source code") + +Validate that simulator options are legal. :raises ValueError: if any simulator option is not supported + +**Return type** + +`None` + diff --git a/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.options.TranspilationOptions.md b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.options.TranspilationOptions.md new file mode 100644 index 00000000000..dd9a466845f --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.options.TranspilationOptions.md @@ -0,0 +1,80 @@ +--- +title: TranspilationOptions +description: API reference for qiskit_ibm_runtime.options.TranspilationOptions +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.options.TranspilationOptions +--- + +# TranspilationOptions + + + +`TranspilationOptions(skip_transpilation=False, initial_layout=None, layout_method=None, routing_method=None, approximation_degree=None)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/options/transpilation_options.py#L41-L97 "view source code") + +Transpilation options. + +**Parameters** + +* **skip\_transpilation** (`bool`) – Whether to skip transpilation. +* **initial\_layout** (`Union`\[`dict`, `List`, `None`]) – Initial position of virtual qubits on physical qubits. See `qiskit.compiler.transpile` for more information. +* **layout\_method** (`Optional`\[`str`]) – Name of layout selection pass. One of ‘trivial’, ‘dense’, ‘noise\_adaptive’, ‘sabre’. +* **routing\_method** (`Optional`\[`str`]) – Name of routing pass. One of ‘basic’, ‘lookahead’, ‘stochastic’, ‘sabre’, ‘none’. +* **approximation\_degree** (`Optional`\[`float`]) – heuristic dial used for circuit approximation (1.0=no approximation, 0.0=maximal approximation) + +## Attributes + + + +### approximation\_degree + +`float | None` + +`= None` + + + +### initial\_layout + +`dict | List | None` + +`= None` + + + +### layout\_method + +`str | None` + +`= None` + + + +### routing\_method + +`str | None` + +`= None` + + + +### skip\_transpilation + +`bool` + +`= False` + +## Methods + +### validate\_transpilation\_options + + + +`static validate_transpilation_options(transpilation_options)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/options/transpilation_options.py#L68-L97 "view source code") + +Validate that transpilation options are legal. :raises ValueError: if any transpilation option is not supported :raises ValueError: if layout\_method is not in LayoutMethodType or None. :raises ValueError: if routing\_method is not in RoutingMethodType or None. :raises ValueError: if approximation\_degree in not None or in the range 0.0 to 1.0. + +**Return type** + +`None` + diff --git a/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.transpiler.passes.basis.md b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.transpiler.passes.basis.md new file mode 100644 index 00000000000..eaa6e82ebe1 --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.transpiler.passes.basis.md @@ -0,0 +1,22 @@ +--- +title: basis +description: API reference for qiskit_ibm_runtime.transpiler.passes.basis +in_page_toc_min_heading_level: 2 +python_api_type: module +python_api_name: qiskit_ibm_runtime.transpiler.passes.basis +--- + + + +# basis + + + +## Basis + + + +`qiskit_ibm_runtime.transpiler.passes.basis` + +Passes to layout circuits to IBM backend’s instruction sets. + diff --git a/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.transpiler.passes.md b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.transpiler.passes.md new file mode 100644 index 00000000000..f8a5717abc4 --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.transpiler.passes.md @@ -0,0 +1,29 @@ +--- +title: passes +description: API reference for qiskit_ibm_runtime.transpiler.passes +in_page_toc_min_heading_level: 2 +python_api_type: module +python_api_name: qiskit_ibm_runtime.transpiler.passes +--- + + + + + +# qiskit\_ibm\_runtime.transpiler.passes + + + +## Transpiler Passes + + + +`qiskit_ibm_runtime.transpiler.passes` + +A collection of transpiler passes for IBM backends. + +| | | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -------------------------------------------------------------- | +| [`basis`](qiskit_ibm_runtime.transpiler.passes.basis#module-qiskit_ibm_runtime.transpiler.passes.basis "qiskit_ibm_runtime.transpiler.passes.basis") | Basis (qiskit\_ibm\_runtime.transpiler.passes.basis) | +| [`scheduling`](qiskit_ibm_runtime.transpiler.passes.scheduling#module-qiskit_ibm_runtime.transpiler.passes.scheduling "qiskit_ibm_runtime.transpiler.passes.scheduling") | Scheduling (qiskit\_ibm\_runtime.transpiler.passes.scheduling) | + diff --git a/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.transpiler.passes.scheduling.ALAPScheduleAnalysis.md b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.transpiler.passes.scheduling.ALAPScheduleAnalysis.md new file mode 100644 index 00000000000..e0a71a02227 --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.transpiler.passes.scheduling.ALAPScheduleAnalysis.md @@ -0,0 +1,153 @@ +--- +title: ALAPScheduleAnalysis +description: API reference for qiskit_ibm_runtime.transpiler.passes.scheduling.ALAPScheduleAnalysis +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.transpiler.passes.scheduling.ALAPScheduleAnalysis +--- + +# ALAPScheduleAnalysis + + + +`ALAPScheduleAnalysis(durations)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/transpiler/passes/scheduling/scheduler.py#L427-L644 "view source code") + +Dynamic circuits as-late-as-possible (ALAP) scheduling analysis pass. + +This is a scheduler designed to work for the unique scheduling constraints of the dynamic circuits backends due to the limitations imposed by hardware. This is expected to evolve over time as the dynamic circuit backends also change. + +In its current form this is similar to Qiskit’s ALAP scheduler in which instructions start as late as possible. + +The primary differences are that: + +* **Resets and control-flow currently trigger the end of a “quantum block”. The period between the end** + + of the block and the next is *nondeterministic* ie., we do not know when the next block will begin (as we could be evaluating a classical function of nondeterministic length) and therefore the next block starts at a *relative* t=0. + +* During a measurement it is possible to apply gates in parallel on disjoint qubits. + +* Measurements and resets on disjoint qubits happen simultaneously and are part of the same block. + +Scheduler for dynamic circuit backends. + +**Parameters** + +**durations** (`InstructionDurations`) – Durations of instructions to be used in scheduling. + +## Attributes + + + +### is\_analysis\_pass + +Check if the pass is an analysis pass. + +If the pass is an AnalysisPass, that means that the pass can analyze the DAG and write the results of that analysis in the property set. Modifications on the DAG are not allowed by this kind of pass. + + + +### is\_transformation\_pass + +Check if the pass is a transformation pass. + +If the pass is a TransformationPass, that means that the pass can manipulate the DAG, but cannot modify the property set (but it can be read). + +## Methods + +### \_\_call\_\_ + + + +`__call__(circuit, property_set=None)` + +Runs the pass on circuit. + +**Parameters** + +* **circuit** (*QuantumCircuit*) – The dag on which the pass is run. +* **property\_set** (*PropertySet | dict | None*) – Input/output property set. An analysis pass might change the property set in-place. + +**Return type** + +QuantumCircuit + +**Returns** + +If on transformation pass, the resulting QuantumCircuit. If analysis pass, the input circuit. + +### execute + + + +`execute(passmanager_ir, state, callback=None)` + +Execute optimization task for input Qiskit IR. + +**Parameters** + +* **passmanager\_ir** (`Any`) – Qiskit IR to optimize. +* **state** (`PassManagerState`) – State associated with workflow execution by the pass manager itself. +* **callback** (`Optional`\[`Callable`]) – A callback function which is caller per execution of optimization task. + +**Return type** + +`tuple`\[`Any`, `PassManagerState`] + +**Returns** + +Optimized Qiskit IR and state of the workflow. + +### name + + + +`name()` + +Name of the pass. + +**Return type** + +`str` + +### run + + + +`run(dag)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/transpiler/passes/scheduling/scheduler.py#L448-L467 "view source code") + +Run the ASAPSchedule pass on dag. :type dag: `DAGCircuit` :param dag: DAG to schedule. :type dag: DAGCircuit + +**Raises** + +* **TranspilerError** – if the circuit is not mapped on physical qubits. +* **TranspilerError** – if conditional bit is added to non-supported instruction. + +**Return type** + +`None` + +**Returns** + +The scheduled DAGCircuit. + +### update\_status + + + +`update_status(state, run_state)` + +Update workflow status. + +**Parameters** + +* **state** (`PassManagerState`) – Pass manager state to update. +* **run\_state** (`RunState`) – Completion status of current task. + +**Return type** + +`PassManagerState` + +**Returns** + +Updated pass manager state. + diff --git a/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.transpiler.passes.scheduling.ASAPScheduleAnalysis.md b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.transpiler.passes.scheduling.ASAPScheduleAnalysis.md new file mode 100644 index 00000000000..e09b7e69458 --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.transpiler.passes.scheduling.ASAPScheduleAnalysis.md @@ -0,0 +1,153 @@ +--- +title: ASAPScheduleAnalysis +description: API reference for qiskit_ibm_runtime.transpiler.passes.scheduling.ASAPScheduleAnalysis +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.transpiler.passes.scheduling.ASAPScheduleAnalysis +--- + +# ASAPScheduleAnalysis + + + +`ASAPScheduleAnalysis(durations)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/transpiler/passes/scheduling/scheduler.py#L299-L424 "view source code") + +Dynamic circuits as-soon-as-possible (ASAP) scheduling analysis pass. + +This is a scheduler designed to work for the unique scheduling constraints of the dynamic circuits backends due to the limitations imposed by hardware. This is expected to evolve over time as the dynamic circuit backends also change. + +In its current form this is similar to Qiskit’s ASAP scheduler in which instructions start as early as possible. + +The primary differences are that: + +* **Resets and control-flow currently trigger the end of a “quantum block”. The period between the end** + + of the block and the next is *nondeterministic* ie., we do not know when the next block will begin (as we could be evaluating a classical function of nondeterministic length) and therefore the next block starts at a *relative* t=0. + +* During a measurement it is possible to apply gates in parallel on disjoint qubits. + +* Measurements and resets on disjoint qubits happen simultaneously and are part of the same block. + +Scheduler for dynamic circuit backends. + +**Parameters** + +**durations** (`InstructionDurations`) – Durations of instructions to be used in scheduling. + +## Attributes + + + +### is\_analysis\_pass + +Check if the pass is an analysis pass. + +If the pass is an AnalysisPass, that means that the pass can analyze the DAG and write the results of that analysis in the property set. Modifications on the DAG are not allowed by this kind of pass. + + + +### is\_transformation\_pass + +Check if the pass is a transformation pass. + +If the pass is a TransformationPass, that means that the pass can manipulate the DAG, but cannot modify the property set (but it can be read). + +## Methods + +### \_\_call\_\_ + + + +`__call__(circuit, property_set=None)` + +Runs the pass on circuit. + +**Parameters** + +* **circuit** (*QuantumCircuit*) – The dag on which the pass is run. +* **property\_set** (*PropertySet | dict | None*) – Input/output property set. An analysis pass might change the property set in-place. + +**Return type** + +QuantumCircuit + +**Returns** + +If on transformation pass, the resulting QuantumCircuit. If analysis pass, the input circuit. + +### execute + + + +`execute(passmanager_ir, state, callback=None)` + +Execute optimization task for input Qiskit IR. + +**Parameters** + +* **passmanager\_ir** (`Any`) – Qiskit IR to optimize. +* **state** (`PassManagerState`) – State associated with workflow execution by the pass manager itself. +* **callback** (`Optional`\[`Callable`]) – A callback function which is caller per execution of optimization task. + +**Return type** + +`tuple`\[`Any`, `PassManagerState`] + +**Returns** + +Optimized Qiskit IR and state of the workflow. + +### name + + + +`name()` + +Name of the pass. + +**Return type** + +`str` + +### run + + + +`run(dag)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/transpiler/passes/scheduling/scheduler.py#L320-L339 "view source code") + +Run the ALAPSchedule pass on dag. :type dag: `DAGCircuit` :param dag: DAG to schedule. :type dag: DAGCircuit + +**Raises** + +* **TranspilerError** – if the circuit is not mapped on physical qubits. +* **TranspilerError** – if conditional bit is added to non-supported instruction. + +**Return type** + +`DAGCircuit` + +**Returns** + +The scheduled DAGCircuit. + +### update\_status + + + +`update_status(state, run_state)` + +Update workflow status. + +**Parameters** + +* **state** (`PassManagerState`) – Pass manager state to update. +* **run\_state** (`RunState`) – Completion status of current task. + +**Return type** + +`PassManagerState` + +**Returns** + +Updated pass manager state. + diff --git a/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.transpiler.passes.scheduling.BlockBasePadder.md b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.transpiler.passes.scheduling.BlockBasePadder.md new file mode 100644 index 00000000000..c5d6a3e4554 --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.transpiler.passes.scheduling.BlockBasePadder.md @@ -0,0 +1,147 @@ +--- +title: BlockBasePadder +description: API reference for qiskit_ibm_runtime.transpiler.passes.scheduling.BlockBasePadder +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.transpiler.passes.scheduling.BlockBasePadder +--- + +# BlockBasePadder + + + +`BlockBasePadder(schedule_idle_qubits=False)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/transpiler/passes/scheduling/block_base_padder.py#L38-L633 "view source code") + +The base class of padding pass. + +This pass requires one of scheduling passes to be executed before itself. Since there are multiple scheduling strategies, the selection of scheduling pass is left in the hands of the pass manager designer. Once a scheduling analysis pass is run, `node_start_time` is generated in the `property_set`. This information is represented by a python dictionary of the expected instruction execution times keyed on the node instances. The padding pass expects all `DAGOpNode` in the circuit to be scheduled. + +This base class doesn’t define any sequence to interleave, but it manages the location where the sequence is inserted, and provides a set of information necessary to construct the proper sequence. Thus, a subclass of this pass just needs to implement `_pad()` method, in which the subclass constructs a circuit block to insert. This mechanism removes lots of boilerplate logic to manage whole DAG circuits. + +Note that padding pass subclasses should define interleaving sequences satisfying: + +> * Interleaved sequence does not change start time of other nodes +> * Interleaved sequence should have total duration of the provided `time_interval`. + +Any manipulation violating these constraints may prevent this base pass from correctly tracking the start time of each instruction, which may result in violation of hardware alignment constraints. + +## Attributes + + + +### is\_analysis\_pass + +Check if the pass is an analysis pass. + +If the pass is an AnalysisPass, that means that the pass can analyze the DAG and write the results of that analysis in the property set. Modifications on the DAG are not allowed by this kind of pass. + + + +### is\_transformation\_pass + +Check if the pass is a transformation pass. + +If the pass is a TransformationPass, that means that the pass can manipulate the DAG, but cannot modify the property set (but it can be read). + +## Methods + +### \_\_call\_\_ + + + +`__call__(circuit, property_set=None)` + +Runs the pass on circuit. + +**Parameters** + +* **circuit** (*QuantumCircuit*) – The dag on which the pass is run. +* **property\_set** (*PropertySet | dict | None*) – Input/output property set. An analysis pass might change the property set in-place. + +**Return type** + +QuantumCircuit + +**Returns** + +If on transformation pass, the resulting QuantumCircuit. If analysis pass, the input circuit. + +### execute + + + +`execute(passmanager_ir, state, callback=None)` + +Execute optimization task for input Qiskit IR. + +**Parameters** + +* **passmanager\_ir** (`Any`) – Qiskit IR to optimize. +* **state** (`PassManagerState`) – State associated with workflow execution by the pass manager itself. +* **callback** (`Optional`\[`Callable`]) – A callback function which is caller per execution of optimization task. + +**Return type** + +`tuple`\[`Any`, `PassManagerState`] + +**Returns** + +Optimized Qiskit IR and state of the workflow. + +### name + + + +`name()` + +Name of the pass. + +**Return type** + +`str` + +### run + + + +`run(dag)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/transpiler/passes/scheduling/block_base_padder.py#L91-L115 "view source code") + +Run the padding pass on `dag`. + +**Parameters** + +**dag** (`DAGCircuit`) – DAG to be checked. + +**Returns** + +DAG with idle time filled with instructions. + +**Return type** + +DAGCircuit + +**Raises** + +**TranspilerError** – When a particular node is not scheduled, likely some transform pass is inserted before this node is called. + +### update\_status + + + +`update_status(state, run_state)` + +Update workflow status. + +**Parameters** + +* **state** (`PassManagerState`) – Pass manager state to update. +* **run\_state** (`RunState`) – Completion status of current task. + +**Return type** + +`PassManagerState` + +**Returns** + +Updated pass manager state. + diff --git a/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.transpiler.passes.scheduling.DynamicCircuitInstructionDurations.md b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.transpiler.passes.scheduling.DynamicCircuitInstructionDurations.md new file mode 100644 index 00000000000..2ff10a04170 --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.transpiler.passes.scheduling.DynamicCircuitInstructionDurations.md @@ -0,0 +1,136 @@ +--- +title: DynamicCircuitInstructionDurations +description: API reference for qiskit_ibm_runtime.transpiler.passes.scheduling.DynamicCircuitInstructionDurations +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.transpiler.passes.scheduling.DynamicCircuitInstructionDurations +--- + +# DynamicCircuitInstructionDurations + + + +`DynamicCircuitInstructionDurations(instruction_durations=None, dt=None, enable_patching=True)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/transpiler/passes/scheduling/utils.py#L133-L359 "view source code") + +For dynamic circuits the IBM Qiskit backend currently reports instruction durations that differ compared with those required for the legacy Qobj-based path. For now we use this class to report updated InstructionDurations. TODO: This would be mitigated by a specialized Backend/Target for dynamic circuit backends. + +Dynamic circuit instruction durations. + +## Attributes + + + +### MEASURE\_PATCH\_CYCLES + +`= 160` + + + +### MEASURE\_PATCH\_ODD\_OFFSET + +`= 64` + +## Methods + +### from\_backend + + + +`classmethod from_backend(backend)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/transpiler/passes/scheduling/utils.py#L155-L203 "view source code") + +Construct a `DynamicInstructionDurations` object from the backend. :type backend: `Backend` :param backend: backend from which durations (gate lengths) and dt are extracted. + +**Returns** + +The InstructionDurations constructed from backend. + +**Return type** + +DynamicInstructionDurations + +### from\_target + + + +`classmethod from_target(target)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/transpiler/passes/scheduling/utils.py#L205-L222 "view source code") + +Construct a `DynamicInstructionDurations` object from the target. :type target: `Target` :param target: target from which durations (gate lengths) and dt are extracted. + +**Returns** + +The InstructionDurations constructed from backend. + +**Return type** + +DynamicInstructionDurations + +### get + + + +`get(inst, qubits, unit='dt', parameters=None)` + +Get the duration of the instruction with the name, qubits, and parameters. + +Some instructions may have a parameter dependent duration. + +**Parameters** + +* **inst** (*str | qiskit.circuit.Instruction*) – An instruction or its name to be queried. +* **qubits** (*int | list\[int]*) – Qubit indices that the instruction acts on. +* **unit** (*str*) – The unit of duration to be returned. It must be ‘s’ or ‘dt’. +* **parameters** (*list\[float] | None*) – The value of the parameters of the desired instruction. + +**Returns** + +The duration of the instruction on the qubits. + +**Return type** + +float|int + +**Raises** + +**TranspilerError** – No duration is defined for the instruction. + +### units\_used + + + +`units_used()` + +Get the set of all units used in this instruction durations. + +**Return type** + +`set`\[`str`] + +**Returns** + +Set of units used in this instruction durations. + +### update + + + +`update(inst_durations, dt=None)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/transpiler/passes/scheduling/utils.py#L224-L270 "view source code") + +Update self with inst\_durations (inst\_durations overwrite self). Overrides the default durations for certain hardcoded instructions. + +**Parameters** + +* **inst\_durations** (`Union`\[`List`\[`Tuple`\[`str`, `Optional`\[`Iterable`\[`int`]], `float`, `Optional`\[`Iterable`\[`float`]], `str`]], `List`\[`Tuple`\[`str`, `Optional`\[`Iterable`\[`int`]], `float`, `Optional`\[`Iterable`\[`float`]]]], `List`\[`Tuple`\[`str`, `Optional`\[`Iterable`\[`int`]], `float`, `str`]], `List`\[`Tuple`\[`str`, `Optional`\[`Iterable`\[`int`]], `float`]], `InstructionDurations`, `None`]) – Instruction durations to be merged into self (overwriting self). +* **dt** (`Optional`\[`float`]) – Sampling duration in seconds of the target backend. + +**Returns** + +The updated InstructionDurations. + +**Return type** + +InstructionDurations + +**Raises** + +**TranspilerError** – If the format of instruction\_durations is invalid. + diff --git a/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.transpiler.passes.scheduling.PadDelay.md b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.transpiler.passes.scheduling.PadDelay.md new file mode 100644 index 00000000000..6b881b783f3 --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.transpiler.passes.scheduling.PadDelay.md @@ -0,0 +1,160 @@ +--- +title: PadDelay +description: API reference for qiskit_ibm_runtime.transpiler.passes.scheduling.PadDelay +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.transpiler.passes.scheduling.PadDelay +--- + +# PadDelay + + + +`PadDelay(durations, fill_very_end=True, schedule_idle_qubits=False)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/transpiler/passes/scheduling/pad_delay.py#L23-L87 "view source code") + +Padding idle time with Delay instructions. + +Consecutive delays will be merged in the output of this pass. + +The ASAP-scheduled circuit output may become + +```python + ┌────────────────┐ +q_0: ┤ Delay(160[dt]) ├──■── + └─────┬───┬──────┘┌─┴─┐ +q_1: ──────┤ X ├───────┤ X ├ + └───┘ └───┘ +``` + +Note that the additional idle time of 60dt on the `q_0` wire coming from the duration difference between `Delay` of 100dt (`q_0`) and `XGate` of 160 dt (`q_1`) is absorbed in the delay instruction on the `q_0` wire, i.e. in total 160 dt. + +See [`BlockBasePadder`](qiskit_ibm_runtime.transpiler.passes.scheduling.BlockBasePadder "qiskit_ibm_runtime.transpiler.passes.scheduling.BlockBasePadder") pass for details. + +Create new padding delay pass. + +**Parameters** + +* **durations** (`InstructionDurations`) – Durations of instructions to be used in scheduling. +* **fill\_very\_end** (`bool`) – Set `True` to fill the end of circuit with delay. +* **schedule\_idle\_qubits** (`bool`) – Set to true if you’d like a delay inserted on idle qubits. This is useful for timeline visualizations, but may cause issues for execution on large backends. + +## Attributes + + + +### is\_analysis\_pass + +Check if the pass is an analysis pass. + +If the pass is an AnalysisPass, that means that the pass can analyze the DAG and write the results of that analysis in the property set. Modifications on the DAG are not allowed by this kind of pass. + + + +### is\_transformation\_pass + +Check if the pass is a transformation pass. + +If the pass is a TransformationPass, that means that the pass can manipulate the DAG, but cannot modify the property set (but it can be read). + +## Methods + +### \_\_call\_\_ + + + +`__call__(circuit, property_set=None)` + +Runs the pass on circuit. + +**Parameters** + +* **circuit** (*QuantumCircuit*) – The dag on which the pass is run. +* **property\_set** (*PropertySet | dict | None*) – Input/output property set. An analysis pass might change the property set in-place. + +**Return type** + +QuantumCircuit + +**Returns** + +If on transformation pass, the resulting QuantumCircuit. If analysis pass, the input circuit. + +### execute + + + +`execute(passmanager_ir, state, callback=None)` + +Execute optimization task for input Qiskit IR. + +**Parameters** + +* **passmanager\_ir** (`Any`) – Qiskit IR to optimize. +* **state** (`PassManagerState`) – State associated with workflow execution by the pass manager itself. +* **callback** (`Optional`\[`Callable`]) – A callback function which is caller per execution of optimization task. + +**Return type** + +`tuple`\[`Any`, `PassManagerState`] + +**Returns** + +Optimized Qiskit IR and state of the workflow. + +### name + + + +`name()` + +Name of the pass. + +**Return type** + +`str` + +### run + + + +`run(dag)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/transpiler/passes/scheduling/block_base_padder.py#L91-L115 "view source code") + +Run the padding pass on `dag`. + +**Parameters** + +**dag** (`DAGCircuit`) – DAG to be checked. + +**Returns** + +DAG with idle time filled with instructions. + +**Return type** + +DAGCircuit + +**Raises** + +**TranspilerError** – When a particular node is not scheduled, likely some transform pass is inserted before this node is called. + +### update\_status + + + +`update_status(state, run_state)` + +Update workflow status. + +**Parameters** + +* **state** (`PassManagerState`) – Pass manager state to update. +* **run\_state** (`RunState`) – Completion status of current task. + +**Return type** + +`PassManagerState` + +**Returns** + +Updated pass manager state. + diff --git a/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.transpiler.passes.scheduling.PadDynamicalDecoupling.md b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.transpiler.passes.scheduling.PadDynamicalDecoupling.md new file mode 100644 index 00000000000..1abfaaccc54 --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.transpiler.passes.scheduling.PadDynamicalDecoupling.md @@ -0,0 +1,296 @@ +--- +title: PadDynamicalDecoupling +description: API reference for qiskit_ibm_runtime.transpiler.passes.scheduling.PadDynamicalDecoupling +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.transpiler.passes.scheduling.PadDynamicalDecoupling +--- + +# PadDynamicalDecoupling + + + +`PadDynamicalDecoupling(durations, dd_sequences, qubits=None, spacings=None, skip_reset_qubits=True, pulse_alignment=16, extra_slack_distribution='middle', sequence_min_length_ratios=None, insert_multiple_cycles=False, coupling_map=None, alt_spacings=None, schedule_idle_qubits=False, dd_barrier=None)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/transpiler/passes/scheduling/dynamical_decoupling.py#L39-L567 "view source code") + +Dynamical decoupling insertion pass for IBM dynamic circuit backends. + +This pass works on a scheduled, physical circuit. It scans the circuit for idle periods of time (i.e. those containing delay instructions) and inserts a DD sequence of gates in those spots. These gates amount to the identity, so do not alter the logical action of the circuit, but have the effect of mitigating decoherence in those idle periods. As a special case, the pass allows a length-1 sequence (e.g. \[XGate()]). In this case the DD insertion happens only when the gate inverse can be absorbed into a neighboring gate in the circuit (so we would still be replacing Delay with something that is equivalent to the identity). This can be used, for instance, as a Hahn echo. This pass ensures that the inserted sequence preserves the circuit exactly (including global phase). + +```python +import numpy as np +from qiskit.circuit import QuantumCircuit +from qiskit.circuit.library import XGate +from qiskit.transpiler import PassManager, InstructionDurations +from qiskit.visualization import timeline_drawer + +from qiskit_ibm_runtime.transpiler.passes.scheduling import ALAPScheduleAnalysis +from qiskit_ibm_runtime.transpiler.passes.scheduling import PadDynamicalDecoupling + +circ = QuantumCircuit(4) +circ.h(0) +circ.cx(0, 1) +circ.cx(1, 2) +circ.cx(2, 3) +circ.measure_all() +durations = InstructionDurations( + [("h", 0, 50), ("cx", [0, 1], 700), ("reset", None, 10), + ("cx", [1, 2], 200), ("cx", [2, 3], 300), + ("x", None, 50), ("measure", None, 1000)] +) +``` + +```python +# balanced X-X sequence on all qubits +dd_sequence = [XGate(), XGate()] +pm = PassManager([ALAPScheduleAnalysis(durations), + PadDynamicalDecoupling(durations, dd_sequence)]) +circ_dd = pm.run(circ) +circ_dd.draw() +``` + +```python + ┌───┐ ┌───────────────┐ ┌───┐ » + q_0: ──────┤ H ├─────────■──┤ Delay(96[dt]) ├──────┤ X ├──────» + ┌─────┴───┴─────┐ ┌─┴─┐└───────────────┘┌─────┴───┴─────┐» + q_1: ┤ Delay(50[dt]) ├─┤ X ├────────■────────┤ Delay(48[dt]) ├» + ├───────────────┴┐└───┘ ┌─┴─┐ └───────────────┘» + q_2: ┤ Delay(750[dt]) ├───────────┤ X ├──────────────■────────» + ├────────────────┤ └───┘ ┌─┴─┐ » + q_3: ┤ Delay(950[dt]) ├────────────────────────────┤ X ├──────» + └────────────────┘ └───┘ » +meas: 4/═════════════════════════════════════════════════════════» + » +« ┌────────────────┐ ┌───┐ ┌───────────────┐ » +« q_0: ┤ Delay(208[dt]) ├──────┤ X ├──────┤ Delay(96[dt]) ├─────────────────» +« └─────┬───┬──────┘┌─────┴───┴─────┐└─────┬───┬─────┘┌───────────────┐» +« q_1: ──────┤ X ├───────┤ Delay(96[dt]) ├──────┤ X ├──────┤ Delay(56[dt]) ├» +« └───┘ └───────────────┘ └───┘ └───────────────┘» +« q_2: ─────────────────────────────────────────────────────────────────────» +« » +« q_3: ─────────────────────────────────────────────────────────────────────» +« » +«meas: 4/═════════════════════════════════════════════════════════════════════» +« » +« ░ ┌─┐ +« q_0: ─░─┤M├───────── +« ░ └╥┘┌─┐ +« q_1: ─░──╫─┤M├────── +« ░ ║ └╥┘┌─┐ +« q_2: ─░──╫──╫─┤M├─── +« ░ ║ ║ └╥┘┌─┐ +« q_3: ─░──╫──╫──╫─┤M├ +« ░ ║ ║ ║ └╥┘ +«meas: 4/════╩══╩══╩══╩═ +« 0 1 2 3 +``` + +```python +# Uhrig sequence on qubit 0 +n = 8 +dd_sequence = [XGate()] * n +def uhrig_pulse_location(k): + return np.sin(np.pi * (k + 1) / (2 * n + 2)) ** 2 +spacings = [] +for k in range(n): + spacings.append(uhrig_pulse_location(k) - sum(spacings)) +spacings.append(1 - sum(spacings)) +pm = PassManager( + [ + ALAPScheduleAnalysis(durations), + PadDynamicalDecoupling(durations, dd_sequence, qubits=[0], spacings=spacings), + ] +) +circ_dd = pm.run(circ) +circ_dd.draw() +``` + +```python + ┌───┐ ┌────────────────┐ ░ ┌─┐ » + q_0: ──────┤ H ├─────────■──┤ Delay(500[dt]) ├───────────────────░─┤M├──────» + ┌─────┴───┴─────┐ ┌─┴─┐└────────────────┘┌────────────────┐ ░ └╥┘┌─┐ » + q_1: ┤ Delay(50[dt]) ├─┤ X ├────────■─────────┤ Delay(300[dt]) ├─░──╫─┤M├───» + ├───────────────┴┐└───┘ ┌─┴─┐ └────────────────┘ ░ ║ └╥┘┌─┐» + q_2: ┤ Delay(750[dt]) ├───────────┤ X ├───────────────■──────────░──╫──╫─┤M├» + ├────────────────┤ └───┘ ┌─┴─┐ ░ ║ ║ └╥┘» + q_3: ┤ Delay(950[dt]) ├─────────────────────────────┤ X ├────────░──╫──╫──╫─» + └────────────────┘ └───┘ ░ ║ ║ ║ » +meas: 4/═══════════════════════════════════════════════════════════════╩══╩══╩═» + 0 1 2 » +« +« q_0: ─── +« +« q_1: ─── +« +« q_2: ─── +« ┌─┐ +« q_3: ┤M├ +« └╥┘ +«meas: 4/═╩═ +« 3 +``` + + + You need to call [`ALAPScheduleAnalysis`](qiskit_ibm_runtime.transpiler.passes.scheduling.ALAPScheduleAnalysis "qiskit_ibm_runtime.transpiler.passes.scheduling.ALAPScheduleAnalysis") before running dynamical decoupling to guarantee your circuit satisfies acquisition alignment constraints for dynamic circuit backends. + + +Dynamical decoupling initializer. + +**Parameters** + +* **durations** (`InstructionDurations`) – Durations of instructions to be used in scheduling. + +* **dd\_sequences** (`Union`\[`List`\[`Gate`], `List`\[`List`\[`Gate`]]]) – Sequence of gates to apply in idle spots. Alternatively a list of gate sequences may be supplied that will preferentially be inserted if there is a delay of sufficient duration. This may be tuned by the optionally supplied `sequence_min_length_ratios`. + +* **qubits** (`Optional`\[`List`\[`int`]]) – Physical qubits on which to apply DD. If None, all qubits will undergo DD (when possible). + +* **spacings** (`Union`\[`List`\[`List`\[`float`]], `List`\[`float`], `None`]) – A list of lists of spacings between the DD gates. The available slack will be divided according to this. The list length must be one more than the length of dd\_sequence, and the elements must sum to 1. If None, a balanced spacing will be used \[d/2, d, d, …, d, d, d/2]. This spacing only applies to the first subcircuit, if a `coupling_map` is specified + +* **skip\_reset\_qubits** (`bool`) – If True, does not insert DD on idle periods that immediately follow initialized/reset qubits (as qubits in the ground state are less susceptible to decoherence). + +* **pulse\_alignment** (`int`) – The hardware constraints for gate timing allocation. This is usually provided from `backend.configuration().timing_constraints`. If provided, the delay length, i.e. `spacing`, is implicitly adjusted to satisfy this constraint. + +* **extra\_slack\_distribution** (`str`) – + + The option to control the behavior of DD sequence generation. The duration of the DD sequence should be identical to an idle time in the scheduled quantum circuit, however, the delay in between gates comprising the sequence should be integer number in units of dt, and it might be further truncated when `pulse_alignment` is specified. This sometimes results in the duration of the created sequence being shorter than the idle time that you want to fill with the sequence, i.e. extra slack. This option takes following values. + + > * ”middle”: Put the extra slack to the interval at the middle of the sequence. + > * ”edges”: Divide the extra slack as evenly as possible into intervals at beginning and end of the sequence. + +* **sequence\_min\_length\_ratios** (`Union`\[`int`, `List`\[`int`], `None`]) – List of minimum delay length to DD sequence ratio to satisfy in order to insert the DD sequence. For example if the X-X dynamical decoupling sequence is 320dt samples long and the available delay is 384dt it has a ratio of 384dt/320dt=1.2. From the perspective of dynamical decoupling this is likely to add more control noise than decoupling error rate reductions. The defaults value is 2.0. + +* **insert\_multiple\_cycles** (`bool`) – If the available duration exceeds 2\*sequence\_min\_length\_ratio\*duration(dd\_sequence) enable the insertion of multiple rounds of the dynamical decoupling sequence in that delay. + +* **coupling\_map** (`Optional`\[`CouplingMap`]) – directed graph representing the coupling map for the device. Specifying a coupling map partitions the device into subcircuits, in order to apply DD sequences with different pulse spacings within each. Currently support 2 subcircuits. + +* **alt\_spacings** (`Union`\[`List`\[`List`\[`float`]], `List`\[`float`], `None`]) – A list of lists of spacings between the DD gates, for the second subcircuit, as determined by the coupling map. If None, a balanced spacing that is staggered with respect to the first subcircuit will be used \[d, d, d, …, d, d, 0]. + +* **schedule\_idle\_qubits** (`bool`) – Set to true if you’d like a delay inserted on idle qubits. This is useful for timeline visualizations, but may cause issues for execution on large backends. + +* **dd\_barrier** (`Optional`\[`str`]) – only apply DD to delays terminating with a barrier whose label contains the specified string + +**Raises** + +* **TranspilerError** – When invalid DD sequence is specified. +* **TranspilerError** – When pulse gate with the duration which is non-multiple of the alignment constraint value is found. +* **TranspilerError** – When the coupling map is not supported (i.e., if degree > 3) + +## Attributes + + + +### is\_analysis\_pass + +Check if the pass is an analysis pass. + +If the pass is an AnalysisPass, that means that the pass can analyze the DAG and write the results of that analysis in the property set. Modifications on the DAG are not allowed by this kind of pass. + + + +### is\_transformation\_pass + +Check if the pass is a transformation pass. + +If the pass is a TransformationPass, that means that the pass can manipulate the DAG, but cannot modify the property set (but it can be read). + +## Methods + +### \_\_call\_\_ + + + +`__call__(circuit, property_set=None)` + +Runs the pass on circuit. + +**Parameters** + +* **circuit** (*QuantumCircuit*) – The dag on which the pass is run. +* **property\_set** (*PropertySet | dict | None*) – Input/output property set. An analysis pass might change the property set in-place. + +**Return type** + +QuantumCircuit + +**Returns** + +If on transformation pass, the resulting QuantumCircuit. If analysis pass, the input circuit. + +### execute + + + +`execute(passmanager_ir, state, callback=None)` + +Execute optimization task for input Qiskit IR. + +**Parameters** + +* **passmanager\_ir** (`Any`) – Qiskit IR to optimize. +* **state** (`PassManagerState`) – State associated with workflow execution by the pass manager itself. +* **callback** (`Optional`\[`Callable`]) – A callback function which is caller per execution of optimization task. + +**Return type** + +`tuple`\[`Any`, `PassManagerState`] + +**Returns** + +Optimized Qiskit IR and state of the workflow. + +### name + + + +`name()` + +Name of the pass. + +**Return type** + +`str` + +### run + + + +`run(dag)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/transpiler/passes/scheduling/block_base_padder.py#L91-L115 "view source code") + +Run the padding pass on `dag`. + +**Parameters** + +**dag** (`DAGCircuit`) – DAG to be checked. + +**Returns** + +DAG with idle time filled with instructions. + +**Return type** + +DAGCircuit + +**Raises** + +**TranspilerError** – When a particular node is not scheduled, likely some transform pass is inserted before this node is called. + +### update\_status + + + +`update_status(state, run_state)` + +Update workflow status. + +**Parameters** + +* **state** (`PassManagerState`) – Pass manager state to update. +* **run\_state** (`RunState`) – Completion status of current task. + +**Return type** + +`PassManagerState` + +**Returns** + +Updated pass manager state. + diff --git a/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.transpiler.passes.scheduling.md b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.transpiler.passes.scheduling.md new file mode 100644 index 00000000000..17b4713f948 --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.transpiler.passes.scheduling.md @@ -0,0 +1,380 @@ +--- +title: scheduling +description: API reference for qiskit_ibm_runtime.transpiler.passes.scheduling +in_page_toc_min_heading_level: 2 +python_api_type: module +python_api_name: qiskit_ibm_runtime.transpiler.passes.scheduling +--- + + + +# scheduling + + + +## Scheduling + + + +`qiskit_ibm_runtime.transpiler.passes.scheduling` + +A collection of scheduling passes for working with IBM Quantum’s next-generation backends that support advanced “dynamic circuit” capabilities. Ie., circuits with support for classical control-flow/feedback based off of measurement results. + + + You should not mix these scheduling passes with Qiskit’s builtin scheduling passes as they will negatively interact with the scheduling routines for dynamic circuits. This includes setting `scheduling_method` in `transpile()` or `generate_preset_pass_manager()`. + + +Below we demonstrate how to schedule and pad a teleportation circuit with delays for a dynamic circuit backend’s execution model: + +```python +from qiskit.circuit import ClassicalRegister, QuantumCircuit, QuantumRegister +from qiskit.transpiler.preset_passmanagers import generate_preset_pass_manager +from qiskit.transpiler.passmanager import PassManager + +from qiskit_ibm_runtime.transpiler.passes.scheduling import DynamicCircuitInstructionDurations +from qiskit_ibm_runtime.transpiler.passes.scheduling import ALAPScheduleAnalysis +from qiskit_ibm_runtime.transpiler.passes.scheduling import PadDelay +from qiskit_ibm_runtime.fake_provider import FakeJakarta + +backend = FakeJakarta() + +# Temporary workaround for mock backends. For real backends this is not required. +backend.configuration().basis_gates.append("if_else") + + +# Use this duration class to get appropriate durations for dynamic +# circuit backend scheduling +durations = DynamicCircuitInstructionDurations.from_backend(backend) +# Generate the main Qiskit transpile passes. +pm = generate_preset_pass_manager(optimization_level=1, backend=backend) +# Configure the as-late-as-possible scheduling pass +pm.scheduling = PassManager([ALAPScheduleAnalysis(durations), PadDelay(durations)]) + +qr = QuantumRegister(3) +crz = ClassicalRegister(1, name="crz") +crx = ClassicalRegister(1, name="crx") +result = ClassicalRegister(1, name="result") + +teleport = QuantumCircuit(qr, crz, crx, result, name="Teleport") + +teleport.h(qr[1]) +teleport.cx(qr[1], qr[2]) +teleport.cx(qr[0], qr[1]) +teleport.h(qr[0]) +teleport.measure(qr[0], crz) +teleport.measure(qr[1], crx) +with teleport.if_test((crz, 1)): + teleport.z(qr[2]) +with teleport.if_test((crx, 1)): + teleport.x(qr[2]) +teleport.measure(qr[2], result) + +# Transpile. +scheduled_teleport = pm.run(teleport) + +scheduled_teleport.draw(output="mpl", style="iqp") +``` + +![../\_images/qiskit\_ibm\_runtime.transpiler.passes.scheduling\_0\_0.png](/images/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.transpiler.passes.scheduling_0_0.png) + +Instead of padding with delays we may also insert a dynamical decoupling sequence using the [`PadDynamicalDecoupling`](qiskit_ibm_runtime.transpiler.passes.scheduling.PadDynamicalDecoupling "qiskit_ibm_runtime.transpiler.passes.scheduling.PadDynamicalDecoupling") pass as shown below: + +```python +from qiskit.circuit.library import XGate + +from qiskit_ibm_runtime.transpiler.passes.scheduling import PadDynamicalDecoupling + + +dd_sequence = [XGate(), XGate()] + +pm = generate_preset_pass_manager(optimization_level=1, backend=backend) +pm.scheduling = PassManager( + [ + ALAPScheduleAnalysis(durations), + PadDynamicalDecoupling(durations, dd_sequence), + ] +) + +dd_teleport = pm.run(teleport) + +dd_teleport.draw(output="mpl", style="iqp") +``` + +![../\_images/qiskit\_ibm\_runtime.transpiler.passes.scheduling\_1\_0.png](/images/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.transpiler.passes.scheduling_1_0.png) + +When compiling a circuit with Qiskit, it is more efficient and more robust to perform all the transformations in a single transpilation. This has been done above by extending Qiskit’s preset pass managers. For example, Qiskit’s `transpile()` function internally builds its pass set by using `generate_preset_pass_manager()`. This returns instances of `StagedPassManager`, which can be extended. + + + +### Scheduling old format `c_if` conditioned gates + +Scheduling with old format `c_if` conditioned gates is not supported. + +```python +qc_c_if = QuantumCircuit(1, 1) +qc_c_if.x(0).c_if(0, 1) +qc_c_if.draw(output="mpl", style="iqp") +``` + +![../\_images/qiskit\_ibm\_runtime.transpiler.passes.scheduling\_2\_0.png](/images/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.transpiler.passes.scheduling_2_0.png) + +The [`IBMBackend`](qiskit_ibm_runtime.IBMBackend "qiskit_ibm_runtime.IBMBackend") configures a translation plugin `IBMTranslationPlugin` to automatically apply transformations and optimizations for IBM hardware backends when invoking `transpile()`. This will automatically convert all old style `c_if` conditioned gates to new-style control-flow. We may then schedule the transpiled circuit without further modification. + +```python +# Temporary workaround for mock backends. For real backends this is not required. +backend.get_translation_stage_plugin = lambda: "ibm_dynamic_circuits" + +pm = generate_preset_pass_manager(optimization_level=1, backend=backend) +pm.scheduling = PassManager( + [ + ALAPScheduleAnalysis(durations), + PadDynamicalDecoupling(durations, dd_sequence), + ] +) + +qc_if_dd = pm.run(qc_c_if, backend) +qc_if_dd.draw(output="mpl", style="iqp") +``` + +![../\_images/qiskit\_ibm\_runtime.transpiler.passes.scheduling\_3\_0.png](/images/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.transpiler.passes.scheduling_3_0.png) + +If you are not using the transpiler plugin stages to work around this please manually run the pass `qiskit.transpiler.passes.ConvertConditionsToIfOps` prior to your scheduling pass. + +```python +from qiskit.transpiler.passes import ConvertConditionsToIfOps + +pm = generate_preset_pass_manager(optimization_level=1, backend=backend) +pm.scheduling = PassManager( + [ + ConvertConditionsToIfOps(), + ALAPScheduleAnalysis(durations), + PadDelay(durations), + ] +) + +qc_if_dd = pm.run(qc_c_if) +qc_if_dd.draw(output="mpl", style="iqp") +``` + +![../\_images/qiskit\_ibm\_runtime.transpiler.passes.scheduling\_4\_0.png](/images/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.transpiler.passes.scheduling_4_0.png) + + + +### Exploiting IBM backend’s local parallel “fast-path” + +IBM quantum hardware supports a localized “fast-path” which enables a block of gates applied to a *single qubit* that are conditional on an immediately predecessor measurement *of the same qubit* to be completed with lower latency. The hardware is also able to do this in *parallel* on disjoint qubits that satisfy this condition. + +For example, the conditional gates below are performed in parallel with lower latency as the measurements flow directly into the conditional blocks which in turn only apply gates to the same measurement qubit. + +```python +qc = QuantumCircuit(2, 2) +qc.measure(0, 0) +qc.measure(1, 1) +# Conditional blocks will be performed in parallel in the hardware +with qc.if_test((0, 1)): + qc.x(0) +with qc.if_test((1, 1)): + qc.x(1) + +qc.draw(output="mpl", style="iqp") +``` + +![../\_images/qiskit\_ibm\_runtime.transpiler.passes.scheduling\_5\_0.png](/images/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.transpiler.passes.scheduling_5_0.png) + +The circuit below will not use the fast-path as the conditional gate is on a different qubit than the measurement qubit. + +```python +qc = QuantumCircuit(2, 2) +qc.measure(0, 0) +with qc.if_test((0, 1)): + qc.x(1) + +qc.draw(output="mpl", style="iqp") +``` + +![../\_images/qiskit\_ibm\_runtime.transpiler.passes.scheduling\_6\_0.png](/images/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.transpiler.passes.scheduling_6_0.png) + +Similarly, the circuit below contains gates on multiple qubits and will not be performed using the fast-path. + +```python +qc = QuantumCircuit(2, 2) +qc.measure(0, 0) +with qc.if_test((0, 1)): + qc.x(0) + qc.x(1) + +qc.draw(output="mpl", style="iqp") +``` + +![../\_images/qiskit\_ibm\_runtime.transpiler.passes.scheduling\_7\_0.png](/images/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.transpiler.passes.scheduling_7_0.png) + +A fast-path block may contain multiple gates as long as they are on the fast-path qubit. If there are multiple fast-path blocks being performed in parallel each block will be padded out to the duration of the longest block. + +```python +qc = QuantumCircuit(2, 2) +qc.measure(0, 0) +qc.measure(1, 1) +# Conditional blocks will be performed in parallel in the hardware +with qc.if_test((0, 1)): + qc.x(0) + # Will be padded out to a duration of 1600 on the backend. +with qc.if_test((1, 1)): + qc.delay(1600, 1) + +qc.draw(output="mpl", style="iqp") +``` + +![../\_images/qiskit\_ibm\_runtime.transpiler.passes.scheduling\_8\_0.png](/images/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.transpiler.passes.scheduling_8_0.png) + +This behavior is also applied to the else condition of a fast-path eligible branch. + +```python +qc = QuantumCircuit(1, 1) +qc.measure(0, 0) +# Conditional blocks will be performed in parallel in the hardware +with qc.if_test((0, 1)) as else_: + qc.x(0) + # Will be padded out to a duration of 1600 on the backend. +with else_: + qc.delay(1600, 0) + +qc.draw(output="mpl", style="iqp") +``` + +![../\_images/qiskit\_ibm\_runtime.transpiler.passes.scheduling\_9\_0.png](/images/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.transpiler.passes.scheduling_9_0.png) + +If a single measurement result is used with several conditional blocks, if there is a fast-path eligible block it will be applied followed by the non-fast-path blocks which will execute with the standard higher latency conditional branch. + +```python +qc = QuantumCircuit(2, 2) +qc.measure(0, 0) +# Conditional blocks will be performed in parallel in the hardware +with qc.if_test((0, 1)): + # Uses fast-path + qc.x(0) +with qc.if_test((0, 1)): + # Does not use fast-path + qc.x(1) + +qc.draw(output="mpl", style="iqp") +``` + +![../\_images/qiskit\_ibm\_runtime.transpiler.passes.scheduling\_10\_0.png](/images/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.transpiler.passes.scheduling_10_0.png) + +If you wish to prevent the usage of the fast-path you may insert a barrier between the measurement and the conditional branch. + +```python +qc = QuantumCircuit(1, 2) +qc.measure(0, 0) +# Barrier prevents the fast-path. +qc.barrier() +with qc.if_test((0, 1)): + qc.x(0) + +qc.draw(output="mpl", style="iqp") +``` + +![../\_images/qiskit\_ibm\_runtime.transpiler.passes.scheduling\_11\_0.png](/images/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.transpiler.passes.scheduling_11_0.png) + +Conditional measurements are not eligible for the fast-path. + +```python +qc = QuantumCircuit(1, 2) +qc.measure(0, 0) +with qc.if_test((0, 1)): + # Does not use the fast-path + qc.measure(0, 1) + +qc.draw(output="mpl", style="iqp") +``` + +![../\_images/qiskit\_ibm\_runtime.transpiler.passes.scheduling\_12\_0.png](/images/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.transpiler.passes.scheduling_12_0.png) + +Similarly nested control-flow is not eligible. + +```python +qc = QuantumCircuit(1, 1) +qc.measure(0, 0) +with qc.if_test((0, 1)): + # Does not use the fast-path + qc.x(0) + with qc.if_test((0, 1)): + qc.x(0) + +qc.draw(output="mpl", style="iqp") +``` + +![../\_images/qiskit\_ibm\_runtime.transpiler.passes.scheduling\_13\_0.png](/images/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.transpiler.passes.scheduling_13_0.png) + +The scheduler is aware of the fast-path behavior and will not insert delays on idle qubits in blocks that satisfy the fast-path conditions so as to avoid preventing the backend compiler from performing the necessary optimizations to utilize the fast-path. If there are fast-path blocks that will be performed in parallel they currently *will not* be padded out by the scheduler to ensure they are of the same duration in Qiskit + +```python +dd_sequence = [XGate(), XGate()] + +pm = PassManager( + [ + ALAPScheduleAnalysis(durations), + PadDynamicalDecoupling(durations, dd_sequence), + ] +) + +qc = QuantumCircuit(2, 2) +qc.measure(0, 0) +qc.measure(1, 1) +with qc.if_test((0, 1)): + qc.x(0) + # Is currently not padded to ensure + # a duration of 1000. If you desire + # this you would need to manually add + # qc.delay(840, 0) +with qc.if_test((1, 1)): + qc.delay(1000, 0) + + +qc.draw(output="mpl", style="iqp") + +qc_dd = pm.run(qc) + +qc_dd.draw(output="mpl", style="iqp") +``` + +![../\_images/qiskit\_ibm\_runtime.transpiler.passes.scheduling\_14\_0.png](/images/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.transpiler.passes.scheduling_14_0.png) + + + If there are qubits that are *not* involved in a fast-path decision it is not currently possible to use them in a fast-path branch in parallel with the fast-path qubits resulting from a measurement. This will be revised in the future as we further improve these capabilities. + + For example: + + ```python + qc = QuantumCircuit(3, 2) + qc.x(1) + qc.measure(0, 0) + with qc.if_test((0, 1)): + qc.x(0) + # Qubit 1 sits idle throughout the fast-path decision + with qc.if_test((1, 0)): + # Qubit 2 is idle but there is no measurement + # to make it fast-path eligible. This will + # however avoid a communication event in the hardware + # since the condition is compile time evaluated. + qc.x(2) + + qc.draw(output="mpl", style="iqp") + ``` + + ![../\_images/qiskit\_ibm\_runtime.transpiler.passes.scheduling\_15\_0.png](/images/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.transpiler.passes.scheduling_15_0.png) + + + + +#### Scheduling & Dynamical Decoupling + +| | | +| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| [`BlockBasePadder`](qiskit_ibm_runtime.transpiler.passes.scheduling.BlockBasePadder "qiskit_ibm_runtime.transpiler.passes.scheduling.BlockBasePadder")(\[schedule\_idle\_qubits]) | The base class of padding pass. | +| [`ALAPScheduleAnalysis`](qiskit_ibm_runtime.transpiler.passes.scheduling.ALAPScheduleAnalysis "qiskit_ibm_runtime.transpiler.passes.scheduling.ALAPScheduleAnalysis")(durations) | Dynamic circuits as-late-as-possible (ALAP) scheduling analysis pass. | +| [`ASAPScheduleAnalysis`](qiskit_ibm_runtime.transpiler.passes.scheduling.ASAPScheduleAnalysis "qiskit_ibm_runtime.transpiler.passes.scheduling.ASAPScheduleAnalysis")(durations) | Dynamic circuits as-soon-as-possible (ASAP) scheduling analysis pass. | +| [`DynamicCircuitInstructionDurations`](qiskit_ibm_runtime.transpiler.passes.scheduling.DynamicCircuitInstructionDurations "qiskit_ibm_runtime.transpiler.passes.scheduling.DynamicCircuitInstructionDurations")(\[...]) | For dynamic circuits the IBM Qiskit backend currently reports instruction durations that differ compared with those required for the legacy Qobj-based path. | +| [`PadDelay`](qiskit_ibm_runtime.transpiler.passes.scheduling.PadDelay "qiskit_ibm_runtime.transpiler.passes.scheduling.PadDelay")(durations\[, fill\_very\_end, ...]) | Padding idle time with Delay instructions. | +| [`PadDynamicalDecoupling`](qiskit_ibm_runtime.transpiler.passes.scheduling.PadDynamicalDecoupling "qiskit_ibm_runtime.transpiler.passes.scheduling.PadDynamicalDecoupling")(durations, dd\_sequences) | Dynamical decoupling insertion pass for IBM dynamic circuit backends. | + diff --git a/docs/api/qiskit-ibm-runtime/0.20/runtime_service.md b/docs/api/qiskit-ibm-runtime/0.20/runtime_service.md new file mode 100644 index 00000000000..9c91dfe440a --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.20/runtime_service.md @@ -0,0 +1,146 @@ +--- +title: qiskit_ibm_runtime +description: API reference for qiskit_ibm_runtime +in_page_toc_min_heading_level: 2 +python_api_type: module +python_api_name: qiskit_ibm_runtime +--- + + + + + +# Qiskit Runtime + + + +`qiskit_ibm_runtime` + +Modules related to Qiskit Runtime IBM Client. + +Qiskit Runtime is a new architecture that streamlines computations requiring many iterations. These experiments will execute significantly faster within its improved hybrid quantum/classical process. + +## Primitives and sessions + +Qiskit Runtime has two predefined primitives: `Sampler` and `Estimator`. These primitives provide a simplified interface for performing foundational quantum computing tasks while also accounting for the latest developments in quantum hardware and software. + +Qiskit Runtime also has the concept of a session. Jobs submitted within a session are prioritized by the scheduler. A session allows you to make iterative calls to the quantum computer more efficiently. + +Below is an example of using primitives within a session: + +```python +from qiskit_ibm_runtime import QiskitRuntimeService, Session, Sampler, Estimator, Options +from qiskit.circuit.library import RealAmplitudes +from qiskit.circuit import QuantumCircuit, QuantumRegister, ClassicalRegister +from qiskit.quantum_info import SparsePauliOp + +# Initialize account. +service = QiskitRuntimeService() + +# Set options, which can be overwritten at job level. +options = Options(optimization_level=3) + +# Prepare inputs. +psi = RealAmplitudes(num_qubits=2, reps=2) +H1 = SparsePauliOp.from_list([("II", 1), ("IZ", 2), ("XI", 3)]) +theta = [0, 1, 1, 2, 3, 5] +# Bell Circuit +qr = QuantumRegister(2, name="qr") +cr = ClassicalRegister(2, name="qc") +qc = QuantumCircuit(qr, cr, name="bell") +qc.h(qr[0]) +qc.cx(qr[0], qr[1]) +qc.measure(qr, cr) + +with Session(service=service, backend="ibmq_qasm_simulator") as session: + # Submit a request to the Sampler primitive within the session. + sampler = Sampler(session=session, options=options) + job = sampler.run(circuits=qc) + print(f"Sampler results: {job.result()}") + + # Submit a request to the Estimator primitive within the session. + estimator = Estimator(session=session, options=options) + job = estimator.run( + circuits=[psi], observables=[H1], parameter_values=[theta] + ) + print(f"Estimator results: {job.result()}") +``` + +## Backend data + +[`QiskitRuntimeService`](qiskit_ibm_runtime.QiskitRuntimeService "qiskit_ibm_runtime.QiskitRuntimeService") also has methods, such as `backend()`, `backends()`, and `least_busy()`, that allow you to query for a target backend to use. These methods return one or more [`IBMBackend`](qiskit_ibm_runtime.IBMBackend "qiskit_ibm_runtime.IBMBackend") instances that contains methods and attributes describing the backend. + +## Supplementary Information + +### Account initialization + +You need to initialize your account before you can start using the Qiskit Runtime service. This is done by initializing a [`QiskitRuntimeService`](qiskit_ibm_runtime.QiskitRuntimeService "qiskit_ibm_runtime.QiskitRuntimeService") instance with your account credentials. If you don’t want to pass in the credentials each time, you can use the [`QiskitRuntimeService.save_account()`](qiskit_ibm_runtime.QiskitRuntimeService#save_account "qiskit_ibm_runtime.QiskitRuntimeService.save_account") method to save the credentials on disk. + +Qiskit Runtime is available on both IBM Cloud and IBM Quantum, and you can specify `channel="ibm_cloud"` for IBM Cloud and `channel="ibm_quantum"` for IBM Quantum. The default is IBM Cloud. + +### Runtime Jobs + +When you use the `run()` method of the [`Sampler`](qiskit_ibm_runtime.Sampler "qiskit_ibm_runtime.Sampler") or [`Estimator`](qiskit_ibm_runtime.Estimator "qiskit_ibm_runtime.Estimator") to invoke the primitive, a [`RuntimeJob`](qiskit_ibm_runtime.RuntimeJob "qiskit_ibm_runtime.RuntimeJob") instance is returned. This class has all the basic job methods, such as [`RuntimeJob.status()`](qiskit_ibm_runtime.RuntimeJob#status "qiskit_ibm_runtime.RuntimeJob.status"), [`RuntimeJob.result()`](qiskit_ibm_runtime.RuntimeJob#result "qiskit_ibm_runtime.RuntimeJob.result"), and [`RuntimeJob.cancel()`](qiskit_ibm_runtime.RuntimeJob#cancel "qiskit_ibm_runtime.RuntimeJob.cancel"). + +### Logging + +`qiskit-ibm-runtime` uses the `qiskit_ibm_runtime` logger. + +Two environment variables can be used to control the logging: + +> * **`QISKIT_IBM_RUNTIME_LOG_LEVEL`: Specifies the log level to use.** +> +> If an invalid level is set, the log level defaults to `WARNING`. The valid log levels are `DEBUG`, `INFO`, `WARNING`, `ERROR`, and `CRITICAL` (case-insensitive). If the environment variable is not set, then the parent logger’s level is used, which also defaults to `WARNING`. +> +> * **`QISKIT_IBM_RUNTIME_LOG_FILE`: Specifies the name of the log file to use. If specified,** +> +> messages will be logged to the file only. Otherwise messages will be logged to the standard error (usually the screen). + +For more advanced use, you can modify the logger itself. For example, to manually set the level to `WARNING`: + +```python +import logging +logging.getLogger('qiskit_ibm_runtime').setLevel(logging.WARNING) +``` + +### Interim and final results + +Some runtime primitives provide interim results that inform you about the progress of your job. You can choose to stream the interim results and final result when you run the program by passing in the `callback` parameter, or at a later time using the [`RuntimeJob.stream_results()`](qiskit_ibm_runtime.RuntimeJob#stream_results "qiskit_ibm_runtime.RuntimeJob.stream_results") method. For example: + +```python +from qiskit_ibm_runtime import QiskitRuntimeService, Sampler +from qiskit.circuit import QuantumCircuit, QuantumRegister, ClassicalRegister + +service = QiskitRuntimeService() +backend = service.backend("ibmq_qasm_simulator") + +# Bell Circuit +qr = QuantumRegister(2, name="qr") +cr = ClassicalRegister(2, name="qc") +qc = QuantumCircuit(qr, cr, name="bell") +qc.h(qr[0]) +qc.cx(qr[0], qr[1]) +qc.measure(qr, cr) + +def result_callback(job_id, result): + print(result) + +# Stream results as soon as the job starts running. +job = Sampler(backend).run(qc, callback=result_callback) +print(job.result()) +``` + +## Classes + +| | | +| ---------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------- | +| [`QiskitRuntimeService`](qiskit_ibm_runtime.QiskitRuntimeService "qiskit_ibm_runtime.QiskitRuntimeService")(\[channel, token, url, ...]) | Class for interacting with the Qiskit Runtime service. | +| [`Estimator`](qiskit_ibm_runtime.Estimator "qiskit_ibm_runtime.Estimator")(\[backend, session, options]) | Class for interacting with Qiskit Runtime Estimator primitive service. | +| [`Sampler`](qiskit_ibm_runtime.Sampler "qiskit_ibm_runtime.Sampler")(\[backend, session, options]) | Class for interacting with Qiskit Runtime Sampler primitive service. | +| [`Session`](qiskit_ibm_runtime.Session "qiskit_ibm_runtime.Session")(\[service, backend, max\_time]) | Class for creating a flexible Qiskit Runtime session. | +| [`IBMBackend`](qiskit_ibm_runtime.IBMBackend "qiskit_ibm_runtime.IBMBackend")(configuration, service, api\_client) | Backend class interfacing with an IBM Quantum backend. | +| [`RuntimeJob`](qiskit_ibm_runtime.RuntimeJob "qiskit_ibm_runtime.RuntimeJob")(backend, api\_client, ...\[, ...]) | Representation of a runtime program execution. | +| [`RuntimeOptions`](qiskit_ibm_runtime.RuntimeOptions "qiskit_ibm_runtime.RuntimeOptions")(\[backend, image, log\_level, ...]) | Class for representing generic runtime execution options. | +| [`RuntimeEncoder`](qiskit_ibm_runtime.RuntimeEncoder "qiskit_ibm_runtime.RuntimeEncoder")(\*\[, skipkeys, ensure\_ascii, ...]) | JSON Encoder used by runtime service. | +| [`RuntimeDecoder`](qiskit_ibm_runtime.RuntimeDecoder "qiskit_ibm_runtime.RuntimeDecoder")(\*args, \*\*kwargs) | JSON Decoder used by runtime service. | + diff --git a/docs/api/qiskit-ibm-runtime/0.20/transpiler.md b/docs/api/qiskit-ibm-runtime/0.20/transpiler.md new file mode 100644 index 00000000000..adebb057e81 --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/0.20/transpiler.md @@ -0,0 +1,26 @@ +--- +title: transpiler +description: API reference for qiskit_ibm_runtime.transpiler +in_page_toc_min_heading_level: 2 +python_api_type: module +python_api_name: qiskit_ibm_runtime.transpiler +--- + + + + + +# IBM Backend Transpiler Tools + + + +`qiskit_ibm_runtime.transpiler` + +A collection of transpiler tools for working with IBM Quantum’s next-generation backends that support advanced “dynamic circuit” capabilities. Ie., circuits with support for classical compute and control-flow/feedback based off of measurement results. + +## Transpiler Passes + +| | | +| ----------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------- | +| [`passes`](qiskit_ibm_runtime.transpiler.passes#module-qiskit_ibm_runtime.transpiler.passes "qiskit_ibm_runtime.transpiler.passes") | Transpiler Passes (qiskit\_ibm\_runtime.transpiler.passes) | + diff --git a/public/api/qiskit-ibm-runtime/0.20/objects.inv b/public/api/qiskit-ibm-runtime/0.20/objects.inv new file mode 100644 index 0000000000000000000000000000000000000000..9135aef616bebaa3651a342907a367cc504f81a2 GIT binary patch literal 53614 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 SCc8k_CsCv1twP<)k^ca+*WAAV literal 0 HcmV?d00001 diff --git a/public/images/api/qiskit-ibm-runtime/0.20/fake_provider-1_00.png b/public/images/api/qiskit-ibm-runtime/0.20/fake_provider-1_00.png new file mode 100644 index 0000000000000000000000000000000000000000..69d83403d080abef394f770fff26c806b4ade973 GIT binary patch literal 13102 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

fQ0^oKh5Z4rhxQ2_u3Q>g&PXEP2Mmp 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 literal 0 HcmV?d00001 diff --git a/public/images/api/qiskit-ibm-runtime/0.20/fake_provider-1_02.png b/public/images/api/qiskit-ibm-runtime/0.20/fake_provider-1_02.png new file mode 100644 index 0000000000000000000000000000000000000000..b266634ef2ca4eb7e795e84041fd41f9ebe4cba3 GIT binary patch literal 14701 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 RSuh1ZG#RCniN_6Z{x8{KKxF^` literal 0 HcmV?d00001 diff --git a/public/images/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.transpiler.passes.scheduling_0_0.png b/public/images/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.transpiler.passes.scheduling_0_0.png new file mode 100644 index 0000000000000000000000000000000000000000..a26eed7507a184403bbc2bc7389816fdbeffc36f GIT binary patch literal 57845 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 z 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

    av076fhZu;Ai`A;%=|?dSAsL&uFTE#UXH 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 literal 0 HcmV?d00001 diff --git a/public/images/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.transpiler.passes.scheduling_11_0.png b/public/images/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.transpiler.passes.scheduling_11_0.png new file mode 100644 index 0000000000000000000000000000000000000000..47ff556d048c28452bf24fd7ccf033674b0d717c GIT binary patch literal 7004 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 literal 0 HcmV?d00001 diff --git a/public/images/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.transpiler.passes.scheduling_13_0.png b/public/images/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.transpiler.passes.scheduling_13_0.png new file mode 100644 index 0000000000000000000000000000000000000000..118ec8d280dc50c4bd0ed02b057ed7b774ea10b9 GIT binary patch literal 7246 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

    a(nUB|;p~p`C0lbi$>EpFnMY$JN<gu& zw6C|#53W#`@mbF4RxA?QZE4FbYJPq`zr#9mQ*$$nnv2ZNTrH=|;d~fKIkF!8C;e3N zyKXP`CdPm#W1C-CxUf;2Gv@{N(YZTOX#aTcHec_E)cSbKn&$I(BNv_8tAUS-Ge$_! zzVmM7^Tr>AP{Bk$Mel}>`(=5EzyPxbu9fn>y=Dr3t^6%5B67P=-t&Pqn=*1lqc$sp z*rU58$X9dam;%rLL#MlhT7lBHw19q9b)4Gr%|g>Kp=b$Hvnb!>pV(E`0^b(cJBlC7 z>|8)uP=DHd86}NlpF%rAx5`X^D2yp%e<6jC0_!M@lmr+2o7}uffI2kGT(q@(Tp2i` zSm0C6wuY=I+GR79+7=clW@cvO<>kdwc&#DxPq22!%Mwu+b2ZixWo6H!Xtju%-7gAG z4RXJ0XlSU-y+?+C3@vD)P#q2e3kzFjK0=G^uXJ$BGxDK-Y41gPN=n3(o(G1BiAh;S zMaOKlRblhUWfb3{xSL!3q=}mAlhakV&eezAoh8T0=bX%gp*SQls1Dge?A+!l#UlH5 z_Iv!(b6U$$ii&H^7ewfjH6DjP)Dkk)eYyONhV`!67w0=2jY;I{7XeOR^{H>Cg$itHH535fSp=T==vG8+AdU9rWXu{-+Y96+lV70Z)7DVaJ z?fCho_{HwpHC(qB)%Y*wjkc)|<^1FIA>G1HN#@`3Sk5{I1~5Q+Ji;0*>lW0Kmxl}i zJ0r{aW^*7VE;SVccmd$$3byoHJW0MXyep{i78i$b=(iNP3X_nK$iI76e0GZ^I{hj| z?CDS@ z;|E}8)z3Oxsc3Wg3;};(zbw9S{08b}YBH{lkCzGD;p+IRc10#9Cy&q1U#h(9&haPT zLHuNUi0^}re%Y3ip4uKA@Q1(l2F3GEfvLlEpG*Gkkdl%|FWLRN`S<9k1qdwKD~n#5jJE@Q5$~Yy)~`c6T7S7Bh=;=2}|Xr|1t-3uX~ua zRxHc0Zw_t0t9SW`u&}VASkG@Qzacy}<284~r|( zRtHS5ITvEK#QGAAH<%9evj=o#?3sCMQZ4tNJ8crK#yqAEN>~i)c6pwo;ku4{QC7y|M+-HtRavVx&@wyUI}HDAHMC;6`j9yT7GrEl6gFAS-*yRw$0$(xB4P^^ zRHUt7yTHZ&z5)9{NlD4q-yimeup90Rvq5QPWgKt|)N%6I#Kd{!1KT4%?a#NBFJcoQ zcBkvF=;`SV`jfaY9&oEF%FF#KD_@Y4lRJ?TJ&xwQaVG!{WP3Z*bl`jY@82?3u4J^T z6C+bNM}voc+tY77t1@>(xfAgY4R#W@jx{)4`%_nK1ChgaiH1Ou{t_dqqVL_i$HzO{ z(5z69lc zO9y{P5W%P&*uX(BF)>3UBLf>7h0@%2nVYUxBetQj_F&dTMKNq5q_B{6(fiICokCD8 z*9g?tpu*PvTDWV;vhDXbME+p5x{yZ7@_9)~iM#FsDA;Lf$A14)hU*zyuBRY7{$mINxoojPesJPoOWjviR*L+2Cf1W$ z_tzu)SFWwZV*JM+H$#f@QNsErJ{0Lxm|G>*_U99v%lON1JuYdaoue3Y75EB|#W;5- zggTGzt`ARe*unQl)*7{+5cAaXm{@-Qky)a>QlVu?(?T=RMEI5yKO|XSw#i3-AdH!x zLmu;R#lwH=CZVYnJ-Xi*`gk?PBwyfpdfI%z;Z=`!BKGv�ON*w8tBE`>AE{E_&=M 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 literal 0 HcmV?d00001 diff --git a/public/images/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.transpiler.passes.scheduling_2_0.png b/public/images/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.transpiler.passes.scheduling_2_0.png new file mode 100644 index 0000000000000000000000000000000000000000..6669b990a37aee86d4bffb56f2857fedc1c7691a GIT binary patch literal 3565 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 literal 0 HcmV?d00001 diff --git a/public/images/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.transpiler.passes.scheduling_6_0.png b/public/images/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.transpiler.passes.scheduling_6_0.png new file mode 100644 index 0000000000000000000000000000000000000000..bc63d5d05e5ba09c871ecb9de74846714645c8df GIT binary patch literal 7598 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 literal 0 HcmV?d00001 diff --git a/public/images/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.transpiler.passes.scheduling_7_0.png b/public/images/api/qiskit-ibm-runtime/0.20/qiskit_ibm_runtime.transpiler.passes.scheduling_7_0.png new file mode 100644 index 0000000000000000000000000000000000000000..38e621e254a24439a89d18b8cc958e43bef81d30 GIT binary patch literal 8263 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

    m;C?$uB@-;FI|Gb z+@7muc3y0mZZN~441e*}2DBJr32|}6`anWV9$U0Zfi@?g{P1P4F$01%9_HoMz!se+ zZ1aQ0tvdwGFw5oUY-jEEuoD`c$CfSXsd9F5Lge7!prA$4cfL0p6Lhyu-v=sP%-gqb z*Ak>2irn_W4xa)mD{J`=rT#ERMJFZ+2@@J_^I!@hBBt=LuqZ$Qo!plt{4XLw3n0kx z-J}F*RSi>Cj?&xuIJ~h2d{rM{88I?4GB6dDXz(yT7yGZP0qM^(<{}5AQ(Cw$1gJig+bOP|-rihIHvSnj ybacyGuMXCah7l=AV8{Bu$zT2}o89w|=tGV4!#)o$6TqfEL|H*yzCzYK4U z^*-_8UF%)z`5+8yX1wn?XP>?I_1o7(Dl1B3p_8FQAP_8B8JH>rf^Y&JAE2RtpIs-R zA>bFktE86eI|mC_4`XL@$XjDq$M+7d@2yQ}+|8X`tR3vRSov7FSZJ(VT^(Hn*x2m; z#|u~;oGsbnpfXTw3YM!b4i(YzaXZNB<(_f62 zVP?d5%F1Gr?^GP0{_-^(`$=>+=iF*;GtInIo-|lmGf;ABp*biwc&lw?Q=q*WhDP`5 zAdHR)ErJQHdwA&Tu5xJU$+tEJ<)GcvBb21`Gy! z*7twKTe!Gf5nyV(Dg=S2yUM*U#9Dlwm?R(;6uoiPp1|egN7f}rTQb1yx)IwZ!-TT( zx~iK6A*&EbN)SU~+=avX0VmPr0VVGxlEtrAjBsWrWaHz=&9~(Sde{ddW8!xfo-if* zqN%BoG!cw(&7NAvD^WRYa}I_!(tE4H z)uW$EyE{!R4tMAn>tYX0a4#yN*<1=saYS63v?YsHn|FuuIFlel*_EBlOAYG_nV%pDtqMVw+AA#mFpUjo{^qA=Vm=#~ zZk_E&Av}sGMST@86_~7bQr4gqJGpJOfIliSG=QasSgrlGD4o$_>y4(h*&4})luV(T z$$Xt%7^?(xBBN3mX&f1Oc>~O)DKv}^^68UCXW1cxMDlN=sE}kMTT_DzbXGg6*~|uO zjPFFj`n#|`SngOV&-gMH44X^2YjEOH0eq55|m+zCM)I)m4;|j}fP#P{j$vR6ZxfCr_Tt zR2U;My!~pn?HnN!H&Y9q*w|3Z(E776;oQFvsX!Pv5UG$F7l%`3*p3Y$d1DptEpj-l zU`7U3o#CK*M5KGE6<+Cg=gp#1gBBPV7{(eIaT)B4Zj=g*Njwf8CCSPrLl{!C(~ zMMI>crzhQn!K6Z<_9o8G&K2+r`<}kO??r9}uPCH393|3gJpm3XuJKD)<(9sx1& z`k!ROFdDSW5&wJBZBFvHxvIt^>B12)F+J4&w^?{=o12^4GnMpRU0tK?{{E*2i{$C) z>16X;o0}&8Hh*a~IMT8jwqa&kL|lNUsx5xmwDE#Pi!&dS-uUt32MNFPb8zoQwzkok znKWkR=Ei3`lQM7L_AWMiAV9zm-uGFtYFb(m>ctv`NF)%J*RMH@Iv^m^boBS7b`Vz*@9ER0J7*+o&&}nh)B9!^TPt@m ze2?I_Zx>q5R=ynmGeDDqIpEyxR^wwjePl`8*U8|r#OCDU;((vOFVSmMrCfvHl9EQo z$K$H0t9SPIqhe!Yqm-z5ym;|KtIelTphvgfKGtK|mzc|9$n$-K=+D7HjKR;ZyH`4c zxi^~|8##Jp$6ghyrQ8qW&FFkH?H)texk3;rJ?i|{8t=$MOzrP696*jOSu|v|PH{Yc=e$a?I zu0SBaq6l93Wf8g+~Y;A=b z`ri@aGboG}rW>?+Pd3oX`?9dG>`**|1b_rh$Hs;O0b8JVNX-)WPB&ti8sGnHQuBC9 z*CDH=g(4h>x{qr_=-t)~Tucn|>eVaPvf!e-?rw4i@0xc?hjWb>E+U539Z{IlPh2|w zQnuE4DX9dWpub=l`ZI(74Z&CBshK6Ui(Zp;fKR>n*4CJ}547+D;K$4?@R}A5W1`Fgxz=Zd5ch!e(Z)FsVga zrs}Gys+0{3%HC0)iY4gVu4D}-jg6_6iU=}DRzOlu=Qrvfs2~_F{H%GK>uJ+X>-oOc z4WG4hlIyCgt00vJq81oKB>|}YXiRM7R*g5GPk%lSUI3o}R31LJ9Rjf0Z$6t_TAFqS zJ%I$+FE&|+82R~$P*76Z)@*HTgtXsZ7pt6Eb$4}rA2tVBulwrX*5tnX{+xRLS1RJQ z3oLRTOpvcoAw9jllcXCUT?)}n2ZxuJL5fEFt>)`W1B*CV2!|3%`_GqBi9(=R=~^`c zPX%!d`U^|(kAAhI(wJ;gwbmT2{?$IjyUJdE{rNM|YxiZPfijxHa5yADTS*RhUl@DR~pF4p|h!sBmKeA&APU3_V!-5bV{i)N?%3i%v}2@ zH*>ZK)=$7&(5QF8Kt{-eoZ8og=v7igu3>stRAcM$W(`frmC6NG{Y_a;PRCSV%kZC{ zt^Q(Xf2Mc-j*f~92p#EW8zv7tS8|VziGh9Nu>+YSaAn2Fb$^cV{{9{f3oA4uBjZ}< zuQZ#mEyy$I=;$^z9v27teEfeK z)YQ}p`$d7hrB?EnFJD4zP`r$cj7m*ciP;Qb;8FF&Js%FLwLas&Ny%hf|5G=wK4@hnVOg=gUt2)I~|3n zA4PfVIayS6bV7Q%!ESYJe++4Gwsc$(+gqf7_5L_|Zf-(Qm+cPfm6^%O$w3nC?(EDO zw%xFGxxe*F6Q_Xa)Y?3emX-#|ZECJm(X2$^rmhR_AQX7X)p%)U`b+*7YaWr&-{kxw zGd7$S{?`K#kk$>N$tPMIR}n$CCnhEqD_>{;-{&sTu0{b@><8&u862pA0hy4nFq7NM zW0WGTageP!Ts9R->s_3jpv4-c@yW^gXRYI?I8=J;Q>8FfNB(`P61YQ&M;Z=qYHv9C zFwZ+l*tKPq^oAS1N7;4y&p7vDq=4XHBy0*k2o4U8(9K@8=bt1^Tq>#$DJdjrim$jB z?CtG6FBUyG-p{Zv38qC1gw!-R{JRdKfC#v52c)E=Y_b&2HZ(T=b$z1*gZ0VJg?|z7 z)ccPNk&PClYxk#i2g2mt=-P)zwW9F!|C2NsNI?tQtWh;j5s-OMTS%UG1De9Vo<1Fy zrh)->xA=QPA{)i|xrsKagwHw)ty8&TtjVS)8$Y~l57*svRn+t_;kvpkm-AfQd1p}8 z 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 literal 0 HcmV?d00001 From 49253dbd3e5e83854342e3f5a2b60903d68ff793 Mon Sep 17 00:00:00 2001 From: Eric Arellano <14852634+Eric-Arellano@users.noreply.github.com> Date: Wed, 6 Mar 2024 10:28:34 -0500 Subject: [PATCH 2/9] Gen 0.21 --- docs/api/qiskit-ibm-runtime/_package.json | 2 +- docs/api/qiskit-ibm-runtime/_toc.json | 88 +++- docs/api/qiskit-ibm-runtime/fake_provider.md | 10 + docs/api/qiskit-ibm-runtime/options.md | 60 ++- .../qiskit_ibm_runtime.Estimator.md | 137 +----- .../qiskit_ibm_runtime.IBMBackend.md | 32 +- ...qiskit_ibm_runtime.QiskitRuntimeService.md | 83 +--- .../qiskit_ibm_runtime.RuntimeDecoder.md | 4 +- .../qiskit_ibm_runtime.RuntimeEncoder.md | 4 +- .../qiskit_ibm_runtime.RuntimeJob.md | 49 +- .../qiskit_ibm_runtime.RuntimeOptions.md | 4 +- .../qiskit_ibm_runtime.Sampler.md | 128 +---- .../qiskit_ibm_runtime.Session.md | 40 +- ...t_ibm_runtime.fake_provider.FakeAlgiers.md | 377 ++++++++++++++ ...t_ibm_runtime.fake_provider.FakeAlmaden.md | 6 +- ...ibm_runtime.fake_provider.FakeAlmadenV2.md | 12 +- ...it_ibm_runtime.fake_provider.FakeArmonk.md | 8 +- ..._ibm_runtime.fake_provider.FakeArmonkV2.md | 12 +- ...it_ibm_runtime.fake_provider.FakeAthens.md | 8 +- ..._ibm_runtime.fake_provider.FakeAthensV2.md | 12 +- ..._ibm_runtime.fake_provider.FakeAuckland.md | 12 +- ...kit_ibm_runtime.fake_provider.FakeBelem.md | 8 +- ...t_ibm_runtime.fake_provider.FakeBelemV2.md | 12 +- ...bm_runtime.fake_provider.FakeBoeblingen.md | 8 +- ..._runtime.fake_provider.FakeBoeblingenV2.md | 12 +- ...it_ibm_runtime.fake_provider.FakeBogota.md | 8 +- ..._ibm_runtime.fake_provider.FakeBogotaV2.md | 12 +- ..._ibm_runtime.fake_provider.FakeBrisbane.md | 377 ++++++++++++++ ..._ibm_runtime.fake_provider.FakeBrooklyn.md | 8 +- ...bm_runtime.fake_provider.FakeBrooklynV2.md | 12 +- ...bm_runtime.fake_provider.FakeBurlington.md | 6 +- ..._runtime.fake_provider.FakeBurlingtonV2.md | 12 +- ...kit_ibm_runtime.fake_provider.FakeCairo.md | 8 +- ...t_ibm_runtime.fake_provider.FakeCairoV2.md | 12 +- ...ibm_runtime.fake_provider.FakeCambridge.md | 6 +- ...m_runtime.fake_provider.FakeCambridgeV2.md | 12 +- ...bm_runtime.fake_provider.FakeCasablanca.md | 8 +- ..._runtime.fake_provider.FakeCasablancaV2.md | 12 +- ...kit_ibm_runtime.fake_provider.FakeCusco.md | 377 ++++++++++++++ ...kit_ibm_runtime.fake_provider.FakeEssex.md | 6 +- ...t_ibm_runtime.fake_provider.FakeEssexV2.md | 12 +- ...it_ibm_runtime.fake_provider.FakeGeneva.md | 12 +- ...ibm_runtime.fake_provider.FakeGuadalupe.md | 8 +- ...m_runtime.fake_provider.FakeGuadalupeV2.md | 12 +- ...kit_ibm_runtime.fake_provider.FakeHanoi.md | 8 +- ...t_ibm_runtime.fake_provider.FakeHanoiV2.md | 12 +- ...t_ibm_runtime.fake_provider.FakeJakarta.md | 8 +- ...ibm_runtime.fake_provider.FakeJakartaV2.md | 12 +- ..._runtime.fake_provider.FakeJohannesburg.md | 6 +- ...untime.fake_provider.FakeJohannesburgV2.md | 12 +- ..._ibm_runtime.fake_provider.FakeKawasaki.md | 377 ++++++++++++++ ...t_ibm_runtime.fake_provider.FakeKolkata.md | 8 +- ...ibm_runtime.fake_provider.FakeKolkataV2.md | 12 +- ...skit_ibm_runtime.fake_provider.FakeKyiv.md | 377 ++++++++++++++ ...kit_ibm_runtime.fake_provider.FakeKyoto.md | 377 ++++++++++++++ ...kit_ibm_runtime.fake_provider.FakeLagos.md | 8 +- ...t_ibm_runtime.fake_provider.FakeLagosV2.md | 12 +- ...skit_ibm_runtime.fake_provider.FakeLima.md | 8 +- ...it_ibm_runtime.fake_provider.FakeLimaV2.md | 12 +- ...it_ibm_runtime.fake_provider.FakeLondon.md | 6 +- ..._ibm_runtime.fake_provider.FakeLondonV2.md | 12 +- ...ibm_runtime.fake_provider.FakeManhattan.md | 8 +- ...m_runtime.fake_provider.FakeManhattanV2.md | 12 +- ...it_ibm_runtime.fake_provider.FakeManila.md | 8 +- ..._ibm_runtime.fake_provider.FakeManilaV2.md | 12 +- ...ibm_runtime.fake_provider.FakeMelbourne.md | 4 +- ...m_runtime.fake_provider.FakeMelbourneV2.md | 12 +- ..._ibm_runtime.fake_provider.FakeMontreal.md | 8 +- ...bm_runtime.fake_provider.FakeMontrealV2.md | 12 +- ...it_ibm_runtime.fake_provider.FakeMumbai.md | 8 +- ..._ibm_runtime.fake_provider.FakeMumbaiV2.md | 12 +- ...t_ibm_runtime.fake_provider.FakeNairobi.md | 8 +- ...ibm_runtime.fake_provider.FakeNairobiV2.md | 12 +- ...kit_ibm_runtime.fake_provider.FakeOsaka.md | 377 ++++++++++++++ ...skit_ibm_runtime.fake_provider.FakeOslo.md | 12 +- ...t_ibm_runtime.fake_provider.FakeOurense.md | 6 +- ...ibm_runtime.fake_provider.FakeOurenseV2.md | 12 +- ...kit_ibm_runtime.fake_provider.FakeParis.md | 8 +- ...t_ibm_runtime.fake_provider.FakeParisV2.md | 12 +- ...ibm_runtime.fake_provider.FakePeekskill.md | 377 ++++++++++++++ ...kit_ibm_runtime.fake_provider.FakePerth.md | 12 +- ..._runtime.fake_provider.FakePoughkeepsie.md | 4 +- ...untime.fake_provider.FakePoughkeepsieV2.md | 12 +- ...it_ibm_runtime.fake_provider.FakePrague.md | 12 +- ..._ibm_runtime.fake_provider.FakeProvider.md | 6 +- ....fake_provider.FakeProviderForBackendV2.md | 6 +- ...it_ibm_runtime.fake_provider.FakeQuebec.md | 377 ++++++++++++++ ...kit_ibm_runtime.fake_provider.FakeQuito.md | 8 +- ...t_ibm_runtime.fake_provider.FakeQuitoV2.md | 12 +- ...ibm_runtime.fake_provider.FakeRochester.md | 6 +- ...m_runtime.fake_provider.FakeRochesterV2.md | 12 +- ...skit_ibm_runtime.fake_provider.FakeRome.md | 8 +- ...it_ibm_runtime.fake_provider.FakeRomeV2.md | 12 +- ...m_runtime.fake_provider.FakeRueschlikon.md | 2 +- ..._ibm_runtime.fake_provider.FakeSantiago.md | 8 +- ...bm_runtime.fake_provider.FakeSantiagoV2.md | 12 +- ...bm_runtime.fake_provider.FakeSherbrooke.md | 12 +- ...ibm_runtime.fake_provider.FakeSingapore.md | 6 +- ...m_runtime.fake_provider.FakeSingaporeV2.md | 12 +- ...it_ibm_runtime.fake_provider.FakeSydney.md | 8 +- ..._ibm_runtime.fake_provider.FakeSydneyV2.md | 12 +- ..._ibm_runtime.fake_provider.FakeTenerife.md | 4 +- ...kit_ibm_runtime.fake_provider.FakeTokyo.md | 4 +- ...it_ibm_runtime.fake_provider.FakeTorino.md | 377 ++++++++++++++ ...t_ibm_runtime.fake_provider.FakeToronto.md | 8 +- ...ibm_runtime.fake_provider.FakeTorontoV2.md | 12 +- ..._ibm_runtime.fake_provider.FakeValencia.md | 8 +- ...bm_runtime.fake_provider.FakeValenciaV2.md | 12 +- ...skit_ibm_runtime.fake_provider.FakeVigo.md | 6 +- ...it_ibm_runtime.fake_provider.FakeVigoV2.md | 12 +- ...bm_runtime.fake_provider.FakeWashington.md | 8 +- ..._runtime.fake_provider.FakeWashingtonV2.md | 12 +- ..._ibm_runtime.fake_provider.FakeYorktown.md | 6 +- ...bm_runtime.fake_provider.FakeYorktownV2.md | 12 +- ...time.options.DynamicalDecouplingOptions.md | 73 +++ ..._ibm_runtime.options.EnvironmentOptions.md | 30 +- ...it_ibm_runtime.options.EstimatorOptions.md | 189 +++++++ ...it_ibm_runtime.options.ExecutionOptions.md | 20 +- ..._ibm_runtime.options.ExecutionOptionsV2.md | 41 ++ ...ntime.options.LayerNoiseLearningOptions.md | 63 +++ ...ime.options.MeasureNoiseLearningOptions.md | 45 ++ .../qiskit_ibm_runtime.options.Options.md | 6 +- .../qiskit_ibm_runtime.options.PecOptions.md | 50 ++ ...t_ibm_runtime.options.ResilienceOptions.md | 28 +- ...ibm_runtime.options.ResilienceOptionsV2.md | 86 ++++ ...skit_ibm_runtime.options.SamplerOptions.md | 95 ++++ ...it_ibm_runtime.options.SimulatorOptions.md | 42 +- ...bm_runtime.options.TranspilationOptions.md | 40 +- ...kit_ibm_runtime.options.TwirlingOptions.md | 81 +++ .../qiskit_ibm_runtime.options.ZneOptions.md | 51 ++ ....passes.scheduling.ALAPScheduleAnalysis.md | 4 +- ....passes.scheduling.ASAPScheduleAnalysis.md | 4 +- ...piler.passes.scheduling.BlockBasePadder.md | 4 +- ...ling.DynamicCircuitInstructionDurations.md | 8 +- ...e.transpiler.passes.scheduling.PadDelay.md | 4 +- ...asses.scheduling.PadDynamicalDecoupling.md | 4 +- docs/api/qiskit-ibm-runtime/release-notes.md | 462 +++++++----------- .../api/qiskit-ibm-runtime/runtime_service.md | 81 ++- public/api/qiskit-ibm-runtime/objects.inv | Bin 53614 -> 61533 bytes .../qiskit-ibm-runtime/fake_provider-1_02.png | Bin 14701 -> 14386 bytes scripts/api-html-artifacts.json | 1 + 141 files changed, 5486 insertions(+), 1301 deletions(-) create mode 100644 docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeAlgiers.md create mode 100644 docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeBrisbane.md create mode 100644 docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeCusco.md create mode 100644 docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeKawasaki.md create mode 100644 docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeKyiv.md create mode 100644 docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeKyoto.md create mode 100644 docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeOsaka.md create mode 100644 docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakePeekskill.md create mode 100644 docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeQuebec.md create mode 100644 docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeTorino.md create mode 100644 docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.options.DynamicalDecouplingOptions.md create mode 100644 docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.options.EstimatorOptions.md create mode 100644 docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.options.ExecutionOptionsV2.md create mode 100644 docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.options.LayerNoiseLearningOptions.md create mode 100644 docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.options.MeasureNoiseLearningOptions.md create mode 100644 docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.options.PecOptions.md create mode 100644 docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.options.ResilienceOptionsV2.md create mode 100644 docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.options.SamplerOptions.md create mode 100644 docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.options.TwirlingOptions.md create mode 100644 docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.options.ZneOptions.md diff --git a/docs/api/qiskit-ibm-runtime/_package.json b/docs/api/qiskit-ibm-runtime/_package.json index ca759f626c4..8b0bcb73ed7 100644 --- a/docs/api/qiskit-ibm-runtime/_package.json +++ b/docs/api/qiskit-ibm-runtime/_package.json @@ -1,4 +1,4 @@ { "name": "qiskit-ibm-runtime", - "version": "0.20.0" + "version": "0.21.0" } diff --git a/docs/api/qiskit-ibm-runtime/_toc.json b/docs/api/qiskit-ibm-runtime/_toc.json index 283a6633eae..c48bc1052f5 100644 --- a/docs/api/qiskit-ibm-runtime/_toc.json +++ b/docs/api/qiskit-ibm-runtime/_toc.json @@ -8,10 +8,6 @@ "title": "Overview", "url": "/api/qiskit-ibm-runtime/runtime_service" }, - { - "title": "Estimator", - "url": "/api/qiskit-ibm-runtime/qiskit_ibm_runtime.Estimator" - }, { "title": "IBMBackend", "url": "/api/qiskit-ibm-runtime/qiskit_ibm_runtime.IBMBackend" @@ -36,10 +32,6 @@ "title": "RuntimeOptions", "url": "/api/qiskit-ibm-runtime/qiskit_ibm_runtime.RuntimeOptions" }, - { - "title": "Sampler", - "url": "/api/qiskit-ibm-runtime/qiskit_ibm_runtime.Sampler" - }, { "title": "Session", "url": "/api/qiskit-ibm-runtime/qiskit_ibm_runtime.Session" @@ -53,6 +45,10 @@ "title": "Overview", "url": "/api/qiskit-ibm-runtime/fake_provider" }, + { + "title": "FakeAlgiers", + "url": "/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeAlgiers" + }, { "title": "FakeAlmaden", "url": "/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeAlmaden" @@ -105,6 +101,10 @@ "title": "FakeBogotaV2", "url": "/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeBogotaV2" }, + { + "title": "FakeBrisbane", + "url": "/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeBrisbane" + }, { "title": "FakeBrooklyn", "url": "/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeBrooklyn" @@ -145,6 +145,10 @@ "title": "FakeCasablancaV2", "url": "/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeCasablancaV2" }, + { + "title": "FakeCusco", + "url": "/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeCusco" + }, { "title": "FakeEssex", "url": "/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeEssex" @@ -189,6 +193,10 @@ "title": "FakeJohannesburgV2", "url": "/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeJohannesburgV2" }, + { + "title": "FakeKawasaki", + "url": "/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeKawasaki" + }, { "title": "FakeKolkata", "url": "/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeKolkata" @@ -197,6 +205,14 @@ "title": "FakeKolkataV2", "url": "/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeKolkataV2" }, + { + "title": "FakeKyiv", + "url": "/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeKyiv" + }, + { + "title": "FakeKyoto", + "url": "/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeKyoto" + }, { "title": "FakeLagos", "url": "/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeLagos" @@ -269,6 +285,10 @@ "title": "FakeNairobiV2", "url": "/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeNairobiV2" }, + { + "title": "FakeOsaka", + "url": "/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeOsaka" + }, { "title": "FakeOslo", "url": "/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeOslo" @@ -289,6 +309,10 @@ "title": "FakeParisV2", "url": "/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeParisV2" }, + { + "title": "FakePeekskill", + "url": "/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakePeekskill" + }, { "title": "FakePerth", "url": "/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakePerth" @@ -313,6 +337,10 @@ "title": "FakeProviderForBackendV2", "url": "/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeProviderForBackendV2" }, + { + "title": "FakeQuebec", + "url": "/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeQuebec" + }, { "title": "FakeQuito", "url": "/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeQuito" @@ -377,6 +405,10 @@ "title": "FakeTokyo", "url": "/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeTokyo" }, + { + "title": "FakeTorino", + "url": "/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeTorino" + }, { "title": "FakeToronto", "url": "/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeToronto" @@ -426,22 +458,54 @@ "title": "Overview", "url": "/api/qiskit-ibm-runtime/options" }, + { + "title": "DynamicalDecouplingOptions", + "url": "/api/qiskit-ibm-runtime/qiskit_ibm_runtime.options.DynamicalDecouplingOptions" + }, { "title": "EnvironmentOptions", "url": "/api/qiskit-ibm-runtime/qiskit_ibm_runtime.options.EnvironmentOptions" }, + { + "title": "EstimatorOptions", + "url": "/api/qiskit-ibm-runtime/qiskit_ibm_runtime.options.EstimatorOptions" + }, { "title": "ExecutionOptions", "url": "/api/qiskit-ibm-runtime/qiskit_ibm_runtime.options.ExecutionOptions" }, + { + "title": "ExecutionOptionsV2", + "url": "/api/qiskit-ibm-runtime/qiskit_ibm_runtime.options.ExecutionOptionsV2" + }, + { + "title": "LayerNoiseLearningOptions", + "url": "/api/qiskit-ibm-runtime/qiskit_ibm_runtime.options.LayerNoiseLearningOptions" + }, + { + "title": "MeasureNoiseLearningOptions", + "url": "/api/qiskit-ibm-runtime/qiskit_ibm_runtime.options.MeasureNoiseLearningOptions" + }, { "title": "Options", "url": "/api/qiskit-ibm-runtime/qiskit_ibm_runtime.options.Options" }, + { + "title": "PecOptions", + "url": "/api/qiskit-ibm-runtime/qiskit_ibm_runtime.options.PecOptions" + }, { "title": "ResilienceOptions", "url": "/api/qiskit-ibm-runtime/qiskit_ibm_runtime.options.ResilienceOptions" }, + { + "title": "ResilienceOptionsV2", + "url": "/api/qiskit-ibm-runtime/qiskit_ibm_runtime.options.ResilienceOptionsV2" + }, + { + "title": "SamplerOptions", + "url": "/api/qiskit-ibm-runtime/qiskit_ibm_runtime.options.SamplerOptions" + }, { "title": "SimulatorOptions", "url": "/api/qiskit-ibm-runtime/qiskit_ibm_runtime.options.SimulatorOptions" @@ -449,6 +513,14 @@ { "title": "TranspilationOptions", "url": "/api/qiskit-ibm-runtime/qiskit_ibm_runtime.options.TranspilationOptions" + }, + { + "title": "TwirlingOptions", + "url": "/api/qiskit-ibm-runtime/qiskit_ibm_runtime.options.TwirlingOptions" + }, + { + "title": "ZneOptions", + "url": "/api/qiskit-ibm-runtime/qiskit_ibm_runtime.options.ZneOptions" } ] }, diff --git a/docs/api/qiskit-ibm-runtime/fake_provider.md b/docs/api/qiskit-ibm-runtime/fake_provider.md index 65438b4c0fb..a445dd8f227 100644 --- a/docs/api/qiskit-ibm-runtime/fake_provider.md +++ b/docs/api/qiskit-ibm-runtime/fake_provider.md @@ -90,6 +90,7 @@ Fake V2 backends are fake backends with IBM Quantum systems snapshots implemente | | | | ----------------------------------------------------------------------------------------------------------------------------------- | ------------------------------- | +| [`FakeAlgiers`](qiskit_ibm_runtime.fake_provider.FakeAlgiers "qiskit_ibm_runtime.fake_provider.FakeAlgiers")() | A fake 27 qubit backend. | | [`FakeAlmadenV2`](qiskit_ibm_runtime.fake_provider.FakeAlmadenV2 "qiskit_ibm_runtime.fake_provider.FakeAlmadenV2")() | A fake Almaden V2 backend. | | [`FakeArmonkV2`](qiskit_ibm_runtime.fake_provider.FakeArmonkV2 "qiskit_ibm_runtime.fake_provider.FakeArmonkV2")() | A fake 1 qubit backend. | | [`FakeAthensV2`](qiskit_ibm_runtime.fake_provider.FakeAthensV2 "qiskit_ibm_runtime.fake_provider.FakeAthensV2")() | A fake 5 qubit backend. | @@ -97,18 +98,23 @@ Fake V2 backends are fake backends with IBM Quantum systems snapshots implemente | [`FakeBelemV2`](qiskit_ibm_runtime.fake_provider.FakeBelemV2 "qiskit_ibm_runtime.fake_provider.FakeBelemV2")() | A fake 5 qubit backend. | | [`FakeBoeblingenV2`](qiskit_ibm_runtime.fake_provider.FakeBoeblingenV2 "qiskit_ibm_runtime.fake_provider.FakeBoeblingenV2")() | A fake Boeblingen V2 backend. | | [`FakeBogotaV2`](qiskit_ibm_runtime.fake_provider.FakeBogotaV2 "qiskit_ibm_runtime.fake_provider.FakeBogotaV2")() | A fake 5 qubit backend. | +| [`FakeBrisbane`](qiskit_ibm_runtime.fake_provider.FakeBrisbane "qiskit_ibm_runtime.fake_provider.FakeBrisbane")() | A fake 127 qubit backend. | | [`FakeBrooklynV2`](qiskit_ibm_runtime.fake_provider.FakeBrooklynV2 "qiskit_ibm_runtime.fake_provider.FakeBrooklynV2")() | A fake Brooklyn V2 backend. | | [`FakeBurlingtonV2`](qiskit_ibm_runtime.fake_provider.FakeBurlingtonV2 "qiskit_ibm_runtime.fake_provider.FakeBurlingtonV2")() | A fake 5 qubit backend. | | [`FakeCairoV2`](qiskit_ibm_runtime.fake_provider.FakeCairoV2 "qiskit_ibm_runtime.fake_provider.FakeCairoV2")() | A fake 27 qubit backend. | | [`FakeCambridgeV2`](qiskit_ibm_runtime.fake_provider.FakeCambridgeV2 "qiskit_ibm_runtime.fake_provider.FakeCambridgeV2")() | A fake Cambridge backend. | | [`FakeCasablancaV2`](qiskit_ibm_runtime.fake_provider.FakeCasablancaV2 "qiskit_ibm_runtime.fake_provider.FakeCasablancaV2")() | A fake 7 qubit backend. | +| [`FakeCusco`](qiskit_ibm_runtime.fake_provider.FakeCusco "qiskit_ibm_runtime.fake_provider.FakeCusco")() | A fake 127 qubit backend. | | [`FakeEssexV2`](qiskit_ibm_runtime.fake_provider.FakeEssexV2 "qiskit_ibm_runtime.fake_provider.FakeEssexV2")() | A fake 5 qubit backend. | | [`FakeGeneva`](qiskit_ibm_runtime.fake_provider.FakeGeneva "qiskit_ibm_runtime.fake_provider.FakeGeneva")() | A fake 27 qubit backend. | | [`FakeGuadalupeV2`](qiskit_ibm_runtime.fake_provider.FakeGuadalupeV2 "qiskit_ibm_runtime.fake_provider.FakeGuadalupeV2")() | A fake 16 qubit backend. | | [`FakeHanoiV2`](qiskit_ibm_runtime.fake_provider.FakeHanoiV2 "qiskit_ibm_runtime.fake_provider.FakeHanoiV2")() | A fake 27 qubit backend. | | [`FakeJakartaV2`](qiskit_ibm_runtime.fake_provider.FakeJakartaV2 "qiskit_ibm_runtime.fake_provider.FakeJakartaV2")() | A fake 7 qubit V2 backend. | | [`FakeJohannesburgV2`](qiskit_ibm_runtime.fake_provider.FakeJohannesburgV2 "qiskit_ibm_runtime.fake_provider.FakeJohannesburgV2")() | A fake Johannesburg V2 backend. | +| [`FakeKawasaki`](qiskit_ibm_runtime.fake_provider.FakeKawasaki "qiskit_ibm_runtime.fake_provider.FakeKawasaki")() | A fake 127 qubit backend. | | [`FakeKolkataV2`](qiskit_ibm_runtime.fake_provider.FakeKolkataV2 "qiskit_ibm_runtime.fake_provider.FakeKolkataV2")() | A fake 27 qubit backend. | +| [`FakeKyiv`](qiskit_ibm_runtime.fake_provider.FakeKyiv "qiskit_ibm_runtime.fake_provider.FakeKyiv")() | A fake 127 qubit backend. | +| [`FakeKyoto`](qiskit_ibm_runtime.fake_provider.FakeKyoto "qiskit_ibm_runtime.fake_provider.FakeKyoto")() | A fake 127 qubit backend. | | [`FakeLagosV2`](qiskit_ibm_runtime.fake_provider.FakeLagosV2 "qiskit_ibm_runtime.fake_provider.FakeLagosV2")() | A fake 7 qubit backend. | | [`FakeLimaV2`](qiskit_ibm_runtime.fake_provider.FakeLimaV2 "qiskit_ibm_runtime.fake_provider.FakeLimaV2")() | A fake 5 qubit backend. | | [`FakeLondonV2`](qiskit_ibm_runtime.fake_provider.FakeLondonV2 "qiskit_ibm_runtime.fake_provider.FakeLondonV2")() | A fake 5 qubit backend. | @@ -118,12 +124,15 @@ Fake V2 backends are fake backends with IBM Quantum systems snapshots implemente | [`FakeMontrealV2`](qiskit_ibm_runtime.fake_provider.FakeMontrealV2 "qiskit_ibm_runtime.fake_provider.FakeMontrealV2")() | A fake 27 qubit backend. | | [`FakeMumbaiV2`](qiskit_ibm_runtime.fake_provider.FakeMumbaiV2 "qiskit_ibm_runtime.fake_provider.FakeMumbaiV2")() | A fake 27 qubit backend. | | [`FakeNairobiV2`](qiskit_ibm_runtime.fake_provider.FakeNairobiV2 "qiskit_ibm_runtime.fake_provider.FakeNairobiV2")() | A fake 7 qubit backend. | +| [`FakeOsaka`](qiskit_ibm_runtime.fake_provider.FakeOsaka "qiskit_ibm_runtime.fake_provider.FakeOsaka")() | A fake 127 qubit backend. | | [`FakeOslo`](qiskit_ibm_runtime.fake_provider.FakeOslo "qiskit_ibm_runtime.fake_provider.FakeOslo")() | A fake 7 qubit backend. | | [`FakeOurenseV2`](qiskit_ibm_runtime.fake_provider.FakeOurenseV2 "qiskit_ibm_runtime.fake_provider.FakeOurenseV2")() | A fake 5 qubit backend. | | [`FakeParisV2`](qiskit_ibm_runtime.fake_provider.FakeParisV2 "qiskit_ibm_runtime.fake_provider.FakeParisV2")() | A fake Paris backend. | +| [`FakePeekskill`](qiskit_ibm_runtime.fake_provider.FakePeekskill "qiskit_ibm_runtime.fake_provider.FakePeekskill")() | A fake 27 qubit backend. | | [`FakePerth`](qiskit_ibm_runtime.fake_provider.FakePerth "qiskit_ibm_runtime.fake_provider.FakePerth")() | A fake 7 qubit backend. | | [`FakePrague`](qiskit_ibm_runtime.fake_provider.FakePrague "qiskit_ibm_runtime.fake_provider.FakePrague")() | A fake 33 qubit backend. | | [`FakePoughkeepsieV2`](qiskit_ibm_runtime.fake_provider.FakePoughkeepsieV2 "qiskit_ibm_runtime.fake_provider.FakePoughkeepsieV2")() | A fake Poughkeepsie backend. | +| [`FakeQuebec`](qiskit_ibm_runtime.fake_provider.FakeQuebec "qiskit_ibm_runtime.fake_provider.FakeQuebec")() | A fake 127 qubit backend. | | [`FakeQuitoV2`](qiskit_ibm_runtime.fake_provider.FakeQuitoV2 "qiskit_ibm_runtime.fake_provider.FakeQuitoV2")() | A fake 5 qubit backend. | | [`FakeRochesterV2`](qiskit_ibm_runtime.fake_provider.FakeRochesterV2 "qiskit_ibm_runtime.fake_provider.FakeRochesterV2")() | A fake Rochester backend. | | [`FakeRomeV2`](qiskit_ibm_runtime.fake_provider.FakeRomeV2 "qiskit_ibm_runtime.fake_provider.FakeRomeV2")() | A fake 5 qubit backend. | @@ -131,6 +140,7 @@ Fake V2 backends are fake backends with IBM Quantum systems snapshots implemente | [`FakeSherbrooke`](qiskit_ibm_runtime.fake_provider.FakeSherbrooke "qiskit_ibm_runtime.fake_provider.FakeSherbrooke")() | A fake 127 qubit backend. | | [`FakeSingaporeV2`](qiskit_ibm_runtime.fake_provider.FakeSingaporeV2 "qiskit_ibm_runtime.fake_provider.FakeSingaporeV2")() | A fake Singapore backend. | | [`FakeSydneyV2`](qiskit_ibm_runtime.fake_provider.FakeSydneyV2 "qiskit_ibm_runtime.fake_provider.FakeSydneyV2")() | A fake 27 qubit backend. | +| [`FakeTorino`](qiskit_ibm_runtime.fake_provider.FakeTorino "qiskit_ibm_runtime.fake_provider.FakeTorino")() | A fake 133 qubit backend. | | [`FakeTorontoV2`](qiskit_ibm_runtime.fake_provider.FakeTorontoV2 "qiskit_ibm_runtime.fake_provider.FakeTorontoV2")() | A fake 27 qubit backend. | | [`FakeValenciaV2`](qiskit_ibm_runtime.fake_provider.FakeValenciaV2 "qiskit_ibm_runtime.fake_provider.FakeValenciaV2")() | A fake 5 qubit backend. | | [`FakeVigoV2`](qiskit_ibm_runtime.fake_provider.FakeVigoV2 "qiskit_ibm_runtime.fake_provider.FakeVigoV2")() | A fake 5 qubit backend. | diff --git a/docs/api/qiskit-ibm-runtime/options.md b/docs/api/qiskit-ibm-runtime/options.md index 5d3a56bc888..c3de6e01159 100644 --- a/docs/api/qiskit-ibm-runtime/options.md +++ b/docs/api/qiskit-ibm-runtime/options.md @@ -18,7 +18,39 @@ python_api_name: qiskit_ibm_runtime.options Options that can be passed to the primitives. -The [`Options`](qiskit_ibm_runtime.options.Options "qiskit_ibm_runtime.options.Options") class encapsulates all the options you can specify when invoking a primitive. It includes frequently used options, such as `optimization_level` and `resilience_level` as well as sub-categories, such as `transpilation` and `execution`. You can use auto-complete to easily find the options inside each sub-category, for example: +**V2 Primitives** + +`SamplerV2` and `EstimatorV2` each have their own options. You can use the `options` attribute to set the options. For example: + +```python +from qiskit_ibm_runtime import QiskitRuntimeService, EstimatorV2 + +service = QiskitRuntimeService() +backend = service.least_busy(operational=True, simulator=False) +estimator = EstimatorV2(backend=backend) +estimator.options.resilience_level = 1 +``` + +You can also use the `update()` method to do bulk update. For example: + +```python +from qiskit_ibm_runtime import QiskitRuntimeService, EstimatorV2 + +service = QiskitRuntimeService() +backend = service.least_busy(operational=True, simulator=False) +estimator = EstimatorV2(backend=backend) +estimator.options.update(resilience_level=1) +``` + +Refer to [`SamplerOptions`](qiskit_ibm_runtime.options.SamplerOptions "qiskit_ibm_runtime.options.SamplerOptions") and [`EstimatorOptions`](qiskit_ibm_runtime.options.EstimatorOptions "qiskit_ibm_runtime.options.EstimatorOptions") for V2 Sampler and V2 Estimator options, respectively. + + + If an option is not specified, the server default value is used. The default values are subject to change. See the [API Reference](/api/qiskit-ibm-runtime/options) for the most up-to-date default values. + + +**V1 Primitives** + +The [`Options`](qiskit_ibm_runtime.options.Options "qiskit_ibm_runtime.options.Options") class encapsulates all the options you can specify when invoking a V1 primitive. It includes frequently used options, such as `optimization_level` and `resilience_level` as well as sub-categories, such as `transpilation` and `execution`. You can use auto-complete to easily find the options inside each sub-category, for example: ```python from qiskit_ibm_runtime.options import Options @@ -37,12 +69,22 @@ options = Options(transpilation={"initial_layout": [0, 1, 2, 3]}) ## Classes -| | | -| -------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------- | -| [`Options`](qiskit_ibm_runtime.options.Options "qiskit_ibm_runtime.options.Options")(\[optimization\_level, ...]) | Options for the primitives. | -| [`TranspilationOptions`](qiskit_ibm_runtime.options.TranspilationOptions "qiskit_ibm_runtime.options.TranspilationOptions")(\[skip\_transpilation, ...]) | Transpilation options. | -| [`ResilienceOptions`](qiskit_ibm_runtime.options.ResilienceOptions "qiskit_ibm_runtime.options.ResilienceOptions")(\[noise\_amplifier, ...]) | Resilience options. | -| [`ExecutionOptions`](qiskit_ibm_runtime.options.ExecutionOptions "qiskit_ibm_runtime.options.ExecutionOptions")(\[shots, init\_qubits]) | Execution options. | -| [`EnvironmentOptions`](qiskit_ibm_runtime.options.EnvironmentOptions "qiskit_ibm_runtime.options.EnvironmentOptions")(\[log\_level, callback, ...]) | Options related to the execution environment. | -| [`SimulatorOptions`](qiskit_ibm_runtime.options.SimulatorOptions "qiskit_ibm_runtime.options.SimulatorOptions")(\[noise\_model, ...]) | Simulator options. | +| | | +| -------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------- | +| [`EstimatorOptions`](qiskit_ibm_runtime.options.EstimatorOptions "qiskit_ibm_runtime.options.EstimatorOptions")(\*args, \*\*kwargs) | Options for V2 Estimator. | +| [`SamplerOptions`](qiskit_ibm_runtime.options.SamplerOptions "qiskit_ibm_runtime.options.SamplerOptions")(\*args, \*\*kwargs) | Options for V2 Sampler. | +| [`DynamicalDecouplingOptions`](qiskit_ibm_runtime.options.DynamicalDecouplingOptions "qiskit_ibm_runtime.options.DynamicalDecouplingOptions")(\*args, \*\*kwargs) | Options for dynamical decoupling (DD). | +| [`ResilienceOptionsV2`](qiskit_ibm_runtime.options.ResilienceOptionsV2 "qiskit_ibm_runtime.options.ResilienceOptionsV2")(\*args, \*\*kwargs) | Resilience options for V2 Estimator. | +| [`LayerNoiseLearningOptions`](qiskit_ibm_runtime.options.LayerNoiseLearningOptions "qiskit_ibm_runtime.options.LayerNoiseLearningOptions")(\*args, \*\*kwargs) | Options for learning layer noise. | +| [`MeasureNoiseLearningOptions`](qiskit_ibm_runtime.options.MeasureNoiseLearningOptions "qiskit_ibm_runtime.options.MeasureNoiseLearningOptions")(\*args, \*\*kwargs) | Options for measurement noise learning. | +| [`PecOptions`](qiskit_ibm_runtime.options.PecOptions "qiskit_ibm_runtime.options.PecOptions")(\*args, \*\*kwargs) | Probabalistic error cancellation mitigation options. | +| [`ZneOptions`](qiskit_ibm_runtime.options.ZneOptions "qiskit_ibm_runtime.options.ZneOptions")(\*args, \*\*kwargs) | Zero noise extrapolation mitigation options. | +| [`TwirlingOptions`](qiskit_ibm_runtime.options.TwirlingOptions "qiskit_ibm_runtime.options.TwirlingOptions")(\*args, \*\*kwargs) | Twirling options. | +| [`ExecutionOptionsV2`](qiskit_ibm_runtime.options.ExecutionOptionsV2 "qiskit_ibm_runtime.options.ExecutionOptionsV2")(\*args, \*\*kwargs) | Execution options for V2 primitives. | +| [`Options`](qiskit_ibm_runtime.options.Options "qiskit_ibm_runtime.options.Options")(\[optimization\_level, ...]) | Options for the primitives, used by V1 primitives. | +| [`TranspilationOptions`](qiskit_ibm_runtime.options.TranspilationOptions "qiskit_ibm_runtime.options.TranspilationOptions")(\*args, \*\*kwargs) | Transpilation options. | +| [`ResilienceOptions`](qiskit_ibm_runtime.options.ResilienceOptions "qiskit_ibm_runtime.options.ResilienceOptions")(\*args, \*\*kwargs) | Resilience options for V1 primitives. | +| [`ExecutionOptions`](qiskit_ibm_runtime.options.ExecutionOptions "qiskit_ibm_runtime.options.ExecutionOptions")(\*args, \*\*kwargs) | Execution options for V1 primitives. | +| [`EnvironmentOptions`](qiskit_ibm_runtime.options.EnvironmentOptions "qiskit_ibm_runtime.options.EnvironmentOptions")(\*args, \*\*kwargs) | Options related to the execution environment. | +| [`SimulatorOptions`](qiskit_ibm_runtime.options.SimulatorOptions "qiskit_ibm_runtime.options.SimulatorOptions")(\*args, \*\*kwargs) | Simulator options. | diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.Estimator.md b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.Estimator.md index edae11af4a4..dbd84e07e14 100644 --- a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.Estimator.md +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.Estimator.md @@ -2,144 +2,11 @@ title: Estimator description: API reference for qiskit_ibm_runtime.Estimator in_page_toc_min_heading_level: 1 -python_api_type: class +python_api_type: attribute python_api_name: qiskit_ibm_runtime.Estimator --- # Estimator - - -`Estimator(backend=None, session=None, options=None)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/estimator.py#L36-L219 "view source code") - -Class for interacting with Qiskit Runtime Estimator primitive service. - -Qiskit Runtime Estimator primitive service estimates expectation values of quantum circuits and observables. - -The [`run()`](#qiskit_ibm_runtime.Estimator.run "qiskit_ibm_runtime.Estimator.run") can be used to submit circuits, observables, and parameters to the Estimator primitive. - -You are encouraged to use [`Session`](qiskit_ibm_runtime.Session "qiskit_ibm_runtime.Session") to open a session, during which you can invoke one or more primitives. Jobs submitted within a session are prioritized by the scheduler, and data is cached for efficiency. - -Example: - -```python -from qiskit.circuit.library import RealAmplitudes -from qiskit.quantum_info import SparsePauliOp - -from qiskit_ibm_runtime import QiskitRuntimeService, Estimator - -service = QiskitRuntimeService(channel="ibm_cloud") - -psi1 = RealAmplitudes(num_qubits=2, reps=2) - -H1 = SparsePauliOp.from_list([("II", 1), ("IZ", 2), ("XI", 3)]) -H2 = SparsePauliOp.from_list([("IZ", 1)]) -H3 = SparsePauliOp.from_list([("ZI", 1), ("ZZ", 1)]) - -with Session(service=service, backend="ibmq_qasm_simulator") as session: - estimator = Estimator(session=session) - - theta1 = [0, 1, 1, 2, 3, 5] - - # calculate [ ] - psi1_H1 = estimator.run(circuits=[psi1], observables=[H1], parameter_values=[theta1]) - print(psi1_H1.result()) - - # calculate [ , ] - psi1_H23 = estimator.run( - circuits=[psi1, psi1], - observables=[H2, H3], - parameter_values=[theta1]*2 - ) - print(psi1_H23.result()) -``` - -Initializes the Estimator primitive. - -**Parameters** - -* **backend** (`Union`\[`str`, [`IBMBackend`](qiskit_ibm_runtime.IBMBackend "qiskit_ibm_runtime.ibm_backend.IBMBackend"), `None`]) – Backend to run the primitive. This can be a backend name or an [`IBMBackend`](qiskit_ibm_runtime.IBMBackend "qiskit_ibm_runtime.IBMBackend") instance. If a name is specified, the default account (e.g. `QiskitRuntimeService()`) is used. - -* **session** (`Union`\[[`Session`](qiskit_ibm_runtime.Session "qiskit_ibm_runtime.session.Session"), `str`, [`IBMBackend`](qiskit_ibm_runtime.IBMBackend "qiskit_ibm_runtime.ibm_backend.IBMBackend"), `None`]) – - - Session in which to call the primitive. - - If both `session` and `backend` are specified, `session` takes precedence. If neither is specified, and the primitive is created inside a [`qiskit_ibm_runtime.Session`](qiskit_ibm_runtime.Session "qiskit_ibm_runtime.Session") context manager, then the session is used. Otherwise if IBM Cloud channel is used, a default backend is selected. - -* **options** (`Union`\[`Dict`, [`Options`](qiskit_ibm_runtime.options.Options "qiskit_ibm_runtime.options.options.Options"), `None`]) – Primitive options, see `Options` for detailed description. The `backend` keyword is still supported but is deprecated. - -## Attributes - - - -### options - -Return options values for the sampler. - -**Return type** - -`Options` - -**Returns** - -options - - - -### session - -Return session used by this primitive. - -**Return type** - -`Optional`\[[`Session`](qiskit_ibm_runtime.Session "qiskit_ibm_runtime.session.Session")] - -**Returns** - -Session used by this primitive, or `None` if session is not used. - -## Methods - -### run - - - -`run(circuits, observables, parameter_values=None, **kwargs)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/estimator.py#L114-L148 "view source code") - -Submit a request to the estimator primitive. - -**Parameters** - -* **circuits** (*QuantumCircuit | Sequence\[QuantumCircuit]*) – a (parameterized) `QuantumCircuit` or a list of (parameterized) `QuantumCircuit`. -* **observables** (*BaseOperator | Sequence\[BaseOperator]*) – Observable objects. -* **parameter\_values** (*Sequence\[float] | Sequence\[Sequence\[float]] | None*) – Concrete parameters to be bound. -* **\*\*kwargs** – Individual options to overwrite the default primitive options. These include the runtime options in [`qiskit_ibm_runtime.RuntimeOptions`](qiskit_ibm_runtime.RuntimeOptions "qiskit_ibm_runtime.RuntimeOptions"). - -**Return type** - -[RuntimeJob](qiskit_ibm_runtime.RuntimeJob "qiskit_ibm_runtime.RuntimeJob") - -**Returns** - -Submitted job. The result of the job is an instance of `qiskit.primitives.EstimatorResult`. - -**Raises** - -**ValueError** – Invalid arguments are given. - -### set\_options - - - -`set_options(**fields)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/base_primitive.py#L216-L222 "view source code") - -Set options values for the sampler. - -**Parameters** - -**\*\*fields** – The fields to update the options - -**Return type** - -`None` +alias of `EstimatorV1` diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.IBMBackend.md b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.IBMBackend.md index e00db922b50..6d1c306c332 100644 --- a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.IBMBackend.md +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.IBMBackend.md @@ -10,7 +10,7 @@ python_api_name: qiskit_ibm_runtime.IBMBackend -`IBMBackend(configuration, service, api_client, instance=None)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/ibm_backend.py#L75-L856 "view source code") +`IBMBackend(configuration, service, api_client, instance=None)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/ibm_backend.py#L75-L856 "view source code") Backend class interfacing with an IBM Quantum backend. @@ -352,7 +352,7 @@ Version of the backend being provided. This is not the same as `BackendV2.versio -`__call__()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/ibm_backend.py#L506-L508 "view source code") +`__call__()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/ibm_backend.py#L506-L508 "view source code") Call self as a function. @@ -364,7 +364,7 @@ Call self as a function. -`acquire_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/ibm_backend.py#L480-L486 "view source code") +`acquire_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/ibm_backend.py#L480-L486 "view source code") Return the acquisition channel for the given qubit. @@ -380,7 +380,7 @@ AcquireChannel -`cancel_session()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/ibm_backend.py#L839-L846 "view source code") +`cancel_session()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/ibm_backend.py#L839-L846 "view source code") Cancel session. All pending jobs will be cancelled. @@ -392,7 +392,7 @@ Cancel session. All pending jobs will be cancelled. -`check_faulty(circuit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/ibm_backend.py#L530-L562 "view source code") +`check_faulty(circuit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/ibm_backend.py#L530-L562 "view source code") Check if the input circuit uses faulty qubits or edges. @@ -412,7 +412,7 @@ Check if the input circuit uses faulty qubits or edges. -`close_session()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/ibm_backend.py#L848-L856 "view source code") +`close_session()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/ibm_backend.py#L848-L856 "view source code") Close the session so new jobs will no longer be accepted, but existing queued or running jobs will run to completion. The session will be terminated once there are no more pending jobs. @@ -424,7 +424,7 @@ Close the session so new jobs will no longer be accepted, but existing queued or -`configuration()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/ibm_backend.py#L447-L462 "view source code") +`configuration()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/ibm_backend.py#L447-L462 "view source code") Return the backend configuration. @@ -444,7 +444,7 @@ The configuration for the backend. -`control_channel(qubits)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/ibm_backend.py#L488-L501 "view source code") +`control_channel(qubits)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/ibm_backend.py#L488-L501 "view source code") Return the secondary drive channel for the given qubit @@ -466,7 +466,7 @@ List\[ControlChannel] -`defaults(refresh=False)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/ibm_backend.py#L424-L445 "view source code") +`defaults(refresh=False)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/ibm_backend.py#L424-L445 "view source code") Return the pulse defaults for the backend. @@ -488,7 +488,7 @@ The backend pulse defaults or `None` if the backend does not support pulse. -`drive_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/ibm_backend.py#L464-L470 "view source code") +`drive_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/ibm_backend.py#L464-L470 "view source code") Return the drive channel for the given qubit. @@ -504,7 +504,7 @@ DriveChannel -`measure_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/ibm_backend.py#L472-L478 "view source code") +`measure_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/ibm_backend.py#L472-L478 "view source code") Return the measure stimulus channel for the given qubit. @@ -520,7 +520,7 @@ MeasureChannel -`open_session(max_time=None)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/ibm_backend.py#L823-L832 "view source code") +`open_session(max_time=None)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/ibm_backend.py#L823-L832 "view source code") Open session @@ -532,7 +532,7 @@ Open session -`properties(refresh=False, datetime=None)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/ibm_backend.py#L348-L398 "view source code") +`properties(refresh=False, datetime=None)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/ibm_backend.py#L348-L398 "view source code") Return the backend properties, subject to optional filtering. @@ -588,7 +588,7 @@ The `QubitProperties` object for the specified qubit. If a list of qubits is pro -`run(circuits, dynamic=None, job_tags=None, init_circuit=None, init_num_resets=None, header=None, shots=None, memory=None, meas_level=None, meas_return=None, rep_delay=None, init_qubits=None, use_measure_esp=None, noise_model=None, seed_simulator=None, **run_config)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/ibm_backend.py#L582-L739 "view source code") +`run(circuits, dynamic=None, job_tags=None, init_circuit=None, init_num_resets=None, header=None, shots=None, memory=None, meas_level=None, meas_return=None, rep_delay=None, init_qubits=None, use_measure_esp=None, noise_model=None, seed_simulator=None, **run_config)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/ibm_backend.py#L582-L739 "view source code") Run on the backend. If a keyword specified here is also present in the `options` attribute/object, the value specified here will be used for this run. @@ -681,7 +681,7 @@ This method is used to update the options of a backend. If you need to change an -`status()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/ibm_backend.py#L400-L422 "view source code") +`status()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/ibm_backend.py#L400-L422 "view source code") Return the backend status. @@ -705,7 +705,7 @@ The status of the backend. -`target_history(datetime=None)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/ibm_backend.py#L338-L346 "view source code") +`target_history(datetime=None)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/ibm_backend.py#L338-L346 "view source code") A `qiskit.transpiler.Target` object for the backend. :rtype: `Target` :returns: Target with properties found on datetime diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.QiskitRuntimeService.md b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.QiskitRuntimeService.md index 0e636261475..0f226d08c3d 100644 --- a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.QiskitRuntimeService.md +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.QiskitRuntimeService.md @@ -10,59 +10,10 @@ python_api_name: qiskit_ibm_runtime.QiskitRuntimeService -`QiskitRuntimeService(channel=None, token=None, url=None, filename=None, name=None, instance=None, proxies=None, verify=None, channel_strategy=None)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/qiskit_runtime_service.py#L64-L1219 "view source code") +`QiskitRuntimeService(channel=None, token=None, url=None, filename=None, name=None, instance=None, proxies=None, verify=None, channel_strategy=None)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/qiskit_runtime_service.py#L65-L1177 "view source code") Class for interacting with the Qiskit Runtime service. -Qiskit Runtime is a new architecture offered by IBM Quantum that streamlines computations requiring many iterations. These experiments will execute significantly faster within its improved hybrid quantum/classical process. - -A sample workflow of using the runtime service: - -```python -from qiskit_ibm_runtime import QiskitRuntimeService, Session, Sampler, Estimator, Options -from qiskit.circuit.library import RealAmplitudes -from qiskit.circuit import QuantumCircuit, QuantumRegister, ClassicalRegister -from qiskit.quantum_info import SparsePauliOp - -# Initialize account. -service = QiskitRuntimeService() - -# Set options, which can be overwritten at job level. -options = Options(optimization_level=1) - -# Prepare inputs. -psi = RealAmplitudes(num_qubits=2, reps=2) -H1 = SparsePauliOp.from_list([("II", 1), ("IZ", 2), ("XI", 3)]) -theta = [0, 1, 1, 2, 3, 5] - -# Bell Circuit -qr = QuantumRegister(2, name="qr") -cr = ClassicalRegister(2, name="cr") -qc = QuantumCircuit(qr, cr, name="bell") -qc.h(qr[0]) -qc.cx(qr[0], qr[1]) -qc.measure(qr, cr) - -with Session(service=service, backend="ibmq_qasm_simulator") as session: - # Submit a request to the Sampler primitive within the session. - sampler = Sampler(session=session, options=options) - job = sampler.run(circuits=qc) - print(f"Sampler results: {job.result()}") - - # Submit a request to the Estimator primitive within the session. - estimator = Estimator(session=session, options=options) - job = estimator.run( - circuits=[psi], observables=[H1], parameter_values=[theta] - ) - print(f"Estimator results: {job.result()}") -``` - -The example above uses the dedicated [`Sampler`](qiskit_ibm_runtime.Sampler "qiskit_ibm_runtime.Sampler") and [`Estimator`](qiskit_ibm_runtime.Estimator "qiskit_ibm_runtime.Estimator") classes. You can also use the [`run()`](#qiskit_ibm_runtime.QiskitRuntimeService.run "qiskit_ibm_runtime.QiskitRuntimeService.run") method directly to invoke a Qiskit Runtime program. - -If the program has any interim results, you can use the `callback` parameter of the [`run()`](#qiskit_ibm_runtime.QiskitRuntimeService.run "qiskit_ibm_runtime.QiskitRuntimeService.run") method to stream the interim results. Alternatively, you can use the [`RuntimeJob.stream_results()`](qiskit_ibm_runtime.RuntimeJob#stream_results "qiskit_ibm_runtime.RuntimeJob.stream_results") method to stream the results at a later time, but before the job finishes. - -The [`run()`](#qiskit_ibm_runtime.QiskitRuntimeService.run "qiskit_ibm_runtime.QiskitRuntimeService.run") method returns a [`RuntimeJob`](qiskit_ibm_runtime.RuntimeJob "qiskit_ibm_runtime.RuntimeJob") object. You can use its methods to perform tasks like checking job status, getting job result, and canceling job. - QiskitRuntimeService constructor An account is selected in the following order: @@ -141,7 +92,7 @@ self -`active_account()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/qiskit_runtime_service.py#L708-L714 "view source code") +`active_account()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/qiskit_runtime_service.py#L649-L655 "view source code") Return the IBM Quantum account currently in use for the session. @@ -157,7 +108,7 @@ A dictionary with information about the account currently in the session. -`backend(name=None, instance=None)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/qiskit_runtime_service.py#L817-L847 "view source code") +`backend(name=None, instance=None)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/qiskit_runtime_service.py#L758-L788 "view source code") Return a single backend matching the specified filtering. @@ -182,7 +133,7 @@ Backend -`backends(name=None, min_num_qubits=None, instance=None, dynamic_circuits=None, filters=None, **kwargs)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/qiskit_runtime_service.py#L544-L652 "view source code") +`backends(name=None, min_num_qubits=None, instance=None, dynamic_circuits=None, filters=None, **kwargs)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/qiskit_runtime_service.py#L486-L593 "view source code") Return all backends accessible via this account, subject to optional filtering. @@ -241,7 +192,7 @@ The list of available backends that match the filter. -`static delete_account(filename=None, name=None, channel=None)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/qiskit_runtime_service.py#L716-L734 "view source code") +`static delete_account(filename=None, name=None, channel=None)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/qiskit_runtime_service.py#L657-L675 "view source code") Delete a saved account from disk. @@ -263,7 +214,7 @@ True if the account was deleted. False if no account was found. -`delete_job(job_id)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/qiskit_runtime_service.py#L1077-L1094 "view source code") +`delete_job(job_id)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/qiskit_runtime_service.py#L1035-L1052 "view source code") Delete a runtime job. @@ -286,7 +237,7 @@ Note that this operation cannot be reversed. -`get_backend(name=None, **kwargs)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/qiskit_runtime_service.py#L849-L850 "view source code") +`get_backend(name=None, **kwargs)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/qiskit_runtime_service.py#L790-L791 "view source code") Return a single backend matching the specified filtering. @@ -311,7 +262,7 @@ Backend -`instances()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/qiskit_runtime_service.py#L1184-L1192 "view source code") +`instances()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/qiskit_runtime_service.py#L1142-L1150 "view source code") Return the IBM Quantum instances list currently in use for the session. @@ -327,7 +278,7 @@ A list with instances currently in the session. -`job(job_id)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/qiskit_runtime_service.py#L960-L979 "view source code") +`job(job_id)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/qiskit_runtime_service.py#L918-L937 "view source code") Retrieve a runtime job. @@ -337,7 +288,7 @@ Retrieve a runtime job. **Return type** -[`RuntimeJob`](qiskit_ibm_runtime.RuntimeJob "qiskit_ibm_runtime.runtime_job.RuntimeJob") +`Union`\[[`RuntimeJob`](qiskit_ibm_runtime.RuntimeJob "qiskit_ibm_runtime.runtime_job.RuntimeJob"), `RuntimeJobV2`] **Returns** @@ -352,7 +303,7 @@ Runtime job retrieved. -`jobs(limit=10, skip=0, backend_name=None, pending=None, program_id=None, instance=None, job_tags=None, session_id=None, created_after=None, created_before=None, descending=True)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/qiskit_runtime_service.py#L981-L1075 "view source code") +`jobs(limit=10, skip=0, backend_name=None, pending=None, program_id=None, instance=None, job_tags=None, session_id=None, created_after=None, created_before=None, descending=True)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/qiskit_runtime_service.py#L939-L1033 "view source code") Retrieve all runtime jobs, subject to optional filtering. @@ -372,7 +323,7 @@ Retrieve all runtime jobs, subject to optional filtering. **Return type** -`List`\[[`RuntimeJob`](qiskit_ibm_runtime.RuntimeJob "qiskit_ibm_runtime.runtime_job.RuntimeJob")] +`List`\[`Union`\[[`RuntimeJob`](qiskit_ibm_runtime.RuntimeJob "qiskit_ibm_runtime.runtime_job.RuntimeJob"), `RuntimeJobV2`]] **Returns** @@ -386,7 +337,7 @@ A list of runtime jobs. -`least_busy(min_num_qubits=None, instance=None, filters=None, **kwargs)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/qiskit_runtime_service.py#L1147-L1182 "view source code") +`least_busy(min_num_qubits=None, instance=None, filters=None, **kwargs)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/qiskit_runtime_service.py#L1105-L1140 "view source code") Return the least busy available backend. @@ -420,7 +371,7 @@ The backend with the fewest number of pending jobs. -`run(program_id, inputs, options=None, callback=None, result_decoder=None, session_id=None, start_session=False)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/qiskit_runtime_service.py#L852-L958 "view source code") +`run(program_id, inputs, options=None, callback=None, result_decoder=None, session_id=None, start_session=False)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/qiskit_runtime_service.py#L793-L916 "view source code") Execute the runtime program. @@ -447,7 +398,7 @@ Execute the runtime program. **Return type** -[`RuntimeJob`](qiskit_ibm_runtime.RuntimeJob "qiskit_ibm_runtime.runtime_job.RuntimeJob") +`Union`\[[`RuntimeJob`](qiskit_ibm_runtime.RuntimeJob "qiskit_ibm_runtime.runtime_job.RuntimeJob"), `RuntimeJobV2`] **Returns** @@ -463,7 +414,7 @@ A `RuntimeJob` instance representing the execution. -`static save_account(token=None, url=None, instance=None, channel=None, filename=None, name=None, proxies=None, verify=None, overwrite=False, channel_strategy=None, set_as_default=None)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/qiskit_runtime_service.py#L736-L785 "view source code") +`static save_account(token=None, url=None, instance=None, channel=None, filename=None, name=None, proxies=None, verify=None, overwrite=False, channel_strategy=None, set_as_default=None)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/qiskit_runtime_service.py#L677-L726 "view source code") Save the account to disk for future use. @@ -489,7 +440,7 @@ Save the account to disk for future use. -`static saved_accounts(default=None, channel=None, filename=None, name=None)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/qiskit_runtime_service.py#L787-L815 "view source code") +`static saved_accounts(default=None, channel=None, filename=None, name=None)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/qiskit_runtime_service.py#L728-L756 "view source code") List the accounts saved on disk. diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.RuntimeDecoder.md b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.RuntimeDecoder.md index 2a367574489..3db3f583788 100644 --- a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.RuntimeDecoder.md +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.RuntimeDecoder.md @@ -10,7 +10,7 @@ python_api_name: qiskit_ibm_runtime.RuntimeDecoder -`RuntimeDecoder(*args, **kwargs)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/utils/json.py#L282-L343 "view source code") +`RuntimeDecoder(*args, **kwargs)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/utils/json.py#L332-L424 "view source code") JSON Decoder used by runtime service. @@ -40,7 +40,7 @@ Return the Python representation of `s` (a `str` instance containing a JSON docu -`object_hook(obj)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/utils/json.py#L297-L343 "view source code") +`object_hook(obj)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/utils/json.py#L347-L424 "view source code") Called to decode object. diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.RuntimeEncoder.md b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.RuntimeEncoder.md index fc1b85bba7e..4e3c707ed16 100644 --- a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.RuntimeEncoder.md +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.RuntimeEncoder.md @@ -10,7 +10,7 @@ python_api_name: qiskit_ibm_runtime.RuntimeEncoder -`RuntimeEncoder(*, skipkeys=False, ensure_ascii=True, check_circular=True, allow_nan=True, sort_keys=False, indent=None, separators=None, default=None)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/utils/json.py#L196-L279 "view source code") +`RuntimeEncoder(*, skipkeys=False, ensure_ascii=True, check_circular=True, allow_nan=True, sort_keys=False, indent=None, separators=None, default=None)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/utils/json.py#L207-L329 "view source code") JSON Encoder used by runtime service. @@ -52,7 +52,7 @@ If specified, default is a function that gets called for objects that can’t ot -`default(obj)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/utils/json.py#L199-L279 "view source code") +`default(obj)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/utils/json.py#L210-L329 "view source code") Implement this method in a subclass such that it returns a serializable object for `o`, or calls the base implementation (to raise a `TypeError`). diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.RuntimeJob.md b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.RuntimeJob.md index 861646b4459..d33aad38e3c 100644 --- a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.RuntimeJob.md +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.RuntimeJob.md @@ -10,7 +10,7 @@ python_api_name: qiskit_ibm_runtime.RuntimeJob -`RuntimeJob(backend, api_client, client_params, job_id, program_id, service, params=None, creation_date=None, user_callback=None, result_decoder=None, image='', session_id=None, tags=None)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/runtime_job.py#L55-L752 "view source code") +`RuntimeJob(backend, api_client, client_params, job_id, program_id, service, params=None, creation_date=None, user_callback=None, result_decoder=None, image='', session_id=None, tags=None, version=None)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/runtime_job.py#L45-L416 "view source code") Representation of a runtime program execution. @@ -49,6 +49,7 @@ RuntimeJob constructor. * **service** ([`QiskitRuntimeService`](qiskit_ibm_runtime.QiskitRuntimeService "qiskit_ibm_runtime.qiskit_runtime_service.QiskitRuntimeService")) – Runtime service. * **session\_id** (`Optional`\[`str`]) – Job ID of the first job in a runtime session. * **tags** (`Optional`\[`List`]) – Tags assigned to the job. +* **version** (`Optional`\[`int`]) – Primitive version. ## Attributes @@ -162,7 +163,7 @@ Return the usage estimation infromation for this job. -`backend(timeout=None)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/runtime_job.py#L251-L265 "view source code") +`backend(timeout=None)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/runtime_job.py#L352-L366 "view source code") Return the backend where this job was executed. Retrieve data again if backend is None. @@ -178,7 +179,7 @@ Return the backend where this job was executed. Retrieve data again if backend i -`cancel()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/runtime_job.py#L235-L249 "view source code") +`cancel()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/runtime_job.py#L172-L186 "view source code") Cancel the job. @@ -195,7 +196,7 @@ Cancel the job. -`cancel_result_streaming()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/runtime_job.py#L352-L356 "view source code") +`cancel_result_streaming()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/base_runtime_job.py#L149-L153 "view source code") Cancel result streaming. @@ -231,7 +232,7 @@ Return whether the job has successfully run. -`error_message()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/runtime_job.py#L276-L283 "view source code") +`error_message()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/base_runtime_job.py#L212-L219 "view source code") Returns the reason if the job failed. @@ -243,11 +244,23 @@ Returns the reason if the job failed. Error message string or `None`. +### errored + + + +`errored()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/runtime_job.py#L201-L203 "view source code") + +Return whether the job has failed. + +**Return type** + +`bool` + ### in\_final\_state -`in_final_state()` +`in_final_state()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/runtime_job.py#L197-L199 "view source code") Return whether the job is in a final job state such as `DONE` or `ERROR`. @@ -259,7 +272,7 @@ Return whether the job is in a final job state such as `DONE` or `ERROR`. -`interim_results(decoder=None)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/runtime_job.py#L178-L196 "view source code") +`interim_results(decoder=None)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/runtime_job.py#L398-L416 "view source code") Return the interim results of the job. @@ -295,7 +308,7 @@ Return a unique id identifying the job. -`logs()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/runtime_job.py#L358-L377 "view source code") +`logs()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/runtime_job.py#L294-L313 "view source code") Return job logs. @@ -319,7 +332,7 @@ Job logs, including standard output and error. -`metrics()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/runtime_job.py#L379-L391 "view source code") +`metrics()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/base_runtime_job.py#L155-L167 "view source code") Return job metrics. @@ -339,7 +352,7 @@ Job metrics, which includes timestamp information. -`properties(refresh=False)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/runtime_job.py#L436-L448 "view source code") +`properties(refresh=False)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/base_runtime_job.py#L198-L210 "view source code") Return the backend properties for this job. @@ -359,7 +372,7 @@ The backend properties used for this job, at the time the job was run, or `None` -`queue_info()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/runtime_job.py#L720-L752 "view source code") +`queue_info()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/runtime_job.py#L260-L292 "view source code") Return queue information for this job. @@ -381,7 +394,7 @@ A `QueueInfo` instance that contains queue information for this job, or `None` i -`queue_position(refresh=False)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/runtime_job.py#L693-L718 "view source code") +`queue_position(refresh=False)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/runtime_job.py#L233-L258 "view source code") Return the position of the job in the server queue. @@ -405,7 +418,7 @@ Position in the queue or `None` if position is unknown or not applicable. -`result(timeout=None, decoder=None)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/runtime_job.py#L198-L233 "view source code") +`result(timeout=None, decoder=None)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/runtime_job.py#L135-L170 "view source code") Return the results of the job. @@ -444,7 +457,7 @@ Return whether the job is actively running. -`status()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/runtime_job.py#L267-L274 "view source code") +`status()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/runtime_job.py#L188-L195 "view source code") Return the status of the job. @@ -460,7 +473,7 @@ Status of this job. -`stream_results(callback, decoder=None)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/runtime_job.py#L322-L350 "view source code") +`stream_results(callback, decoder=None)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/runtime_job.py#L368-L396 "view source code") Start streaming job results. @@ -487,7 +500,7 @@ Start streaming job results. -`submit()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/runtime_job.py#L393-L405 "view source code") +`submit()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/runtime_job.py#L219-L231 "view source code") Unsupported method. .. note: @@ -509,7 +522,7 @@ to submit a job. -`update_tags(new_tags)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/runtime_job.py#L407-L434 "view source code") +`update_tags(new_tags)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/base_runtime_job.py#L169-L196 "view source code") Update the tags associated with this job. @@ -533,7 +546,7 @@ The new tags associated with this job. -`wait_for_final_state(timeout=None)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/runtime_job.py#L285-L320 "view source code") +`wait_for_final_state(timeout=None)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/runtime_job.py#L315-L350 "view source code") Use the websocket server to wait for the final the state of a job. diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.RuntimeOptions.md b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.RuntimeOptions.md index 650a2a9aaec..135f1dffdc9 100644 --- a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.RuntimeOptions.md +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.RuntimeOptions.md @@ -10,7 +10,7 @@ python_api_name: qiskit_ibm_runtime.RuntimeOptions -`RuntimeOptions(backend=None, image=None, log_level=None, instance=None, job_tags=None, max_execution_time=None, session_time=None)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/runtime_options.py#L24-L106 "view source code") +`RuntimeOptions(backend=None, image=None, log_level=None, instance=None, job_tags=None, max_execution_time=None, session_time=None)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/runtime_options.py#L24-L106 "view source code") Class for representing generic runtime execution options. @@ -90,7 +90,7 @@ RuntimeOptions constructor. -`validate(channel)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/runtime_options.py#L76-L106 "view source code") +`validate(channel)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/runtime_options.py#L76-L106 "view source code") Validate options. diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.Sampler.md b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.Sampler.md index e0d643f5588..407298c158e 100644 --- a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.Sampler.md +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.Sampler.md @@ -2,135 +2,11 @@ title: Sampler description: API reference for qiskit_ibm_runtime.Sampler in_page_toc_min_heading_level: 1 -python_api_type: class +python_api_type: attribute python_api_name: qiskit_ibm_runtime.Sampler --- # Sampler - - -`Sampler(backend=None, session=None, options=None)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/sampler.py#L35-L184 "view source code") - -Class for interacting with Qiskit Runtime Sampler primitive service. - -Qiskit Runtime Sampler primitive service calculates quasi-probability distribution of bitstrings from quantum circuits. - -The [`run()`](#qiskit_ibm_runtime.Sampler.run "qiskit_ibm_runtime.Sampler.run") method can be used to submit circuits and parameters to the Sampler primitive. - -You are encouraged to use [`Session`](qiskit_ibm_runtime.Session "qiskit_ibm_runtime.Session") to open a session, during which you can invoke one or more primitives. Jobs submitted within a session are prioritized by the scheduler, and data is cached for efficiency. - -Example: - -```python -from qiskit.circuit import QuantumCircuit, QuantumRegister, ClassicalRegister -from qiskit_ibm_runtime import QiskitRuntimeService, Session, Sampler - -service = QiskitRuntimeService(channel="ibm_cloud") - -# Bell Circuit -qr = QuantumRegister(2, name="qr") -cr = ClassicalRegister(2, name="cr") -qc = QuantumCircuit(qr, cr, name="bell") -qc.h(qr[0]) -qc.cx(qr[0], qr[1]) -qc.measure(qr, cr) - -with Session(service, backend="ibmq_qasm_simulator") as session: - sampler = Sampler(session=session) - - job = sampler.run(qc, shots=1024) - print(f"Job ID: {job.job_id()}") - print(f"Job result: {job.result()}") - - # You can run more jobs inside the session -``` - -Initializes the Sampler primitive. - -**Parameters** - -* **backend** (`Union`\[`str`, [`IBMBackend`](qiskit_ibm_runtime.IBMBackend "qiskit_ibm_runtime.ibm_backend.IBMBackend"), `None`]) – Backend to run the primitive. This can be a backend name or an [`IBMBackend`](qiskit_ibm_runtime.IBMBackend "qiskit_ibm_runtime.IBMBackend") instance. If a name is specified, the default account (e.g. `QiskitRuntimeService()`) is used. - -* **session** (`Union`\[[`Session`](qiskit_ibm_runtime.Session "qiskit_ibm_runtime.session.Session"), `str`, [`IBMBackend`](qiskit_ibm_runtime.IBMBackend "qiskit_ibm_runtime.ibm_backend.IBMBackend"), `None`]) – - - Session in which to call the primitive. - - If both `session` and `backend` are specified, `session` takes precedence. If neither is specified, and the primitive is created inside a [`qiskit_ibm_runtime.Session`](qiskit_ibm_runtime.Session "qiskit_ibm_runtime.Session") context manager, then the session is used. Otherwise if IBM Cloud channel is used, a default backend is selected. - -* **options** (`Union`\[`Dict`, [`Options`](qiskit_ibm_runtime.options.Options "qiskit_ibm_runtime.options.options.Options"), `None`]) – Primitive options, see `Options` for detailed description. The `backend` keyword is still supported but is deprecated. - -## Attributes - - - -### options - -Return options values for the sampler. - -**Return type** - -`Options` - -**Returns** - -options - - - -### session - -Return session used by this primitive. - -**Return type** - -`Optional`\[[`Session`](qiskit_ibm_runtime.Session "qiskit_ibm_runtime.session.Session")] - -**Returns** - -Session used by this primitive, or `None` if session is not used. - -## Methods - -### run - - - -`run(circuits, parameter_values=None, **kwargs)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/sampler.py#L102-L130 "view source code") - -Submit a request to the sampler primitive. - -**Parameters** - -* **circuits** (*QuantumCircuit | Sequence\[QuantumCircuit]*) – A (parameterized) `QuantumCircuit` or a list of (parameterized) `QuantumCircuit`. -* **parameter\_values** (*Sequence\[float] | Sequence\[Sequence\[float]] | None*) – Concrete parameters to be bound. -* **\*\*kwargs** – Individual options to overwrite the default primitive options. These include the runtime options in [`qiskit_ibm_runtime.RuntimeOptions`](qiskit_ibm_runtime.RuntimeOptions "qiskit_ibm_runtime.RuntimeOptions"). - -**Return type** - -[RuntimeJob](qiskit_ibm_runtime.RuntimeJob "qiskit_ibm_runtime.RuntimeJob") - -**Returns** - -Submitted job. The result of the job is an instance of `qiskit.primitives.SamplerResult`. - -**Raises** - -**ValueError** – Invalid arguments are given. - -### set\_options - - - -`set_options(**fields)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/base_primitive.py#L216-L222 "view source code") - -Set options values for the sampler. - -**Parameters** - -**\*\*fields** – The fields to update the options - -**Return type** - -`None` +alias of `SamplerV1` diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.Session.md b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.Session.md index c3bb4cc48e4..7e9b6ebe972 100644 --- a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.Session.md +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.Session.md @@ -10,11 +10,11 @@ python_api_name: qiskit_ibm_runtime.Session -`Session(service=None, backend=None, max_time=None)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/session.py#L40-L336 "view source code") +`Session(service=None, backend=None, max_time=None)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/session.py#L41-L346 "view source code") -Class for creating a flexible Qiskit Runtime session. +Class for creating a Qiskit Runtime session. -A Qiskit Runtime `session` allows you to group a collection of iterative calls to the quantum computer. A session is started when the first job within the session is started. Subsequent jobs within the session are prioritized by the scheduler. Data used within a session, such as transpiled circuits, is also cached to avoid unnecessary overhead. +A Qiskit Runtime `session` allows you to group a collection of iterative calls to the quantum computer. A session is started when the first job within the session is started. Subsequent jobs within the session are prioritized by the scheduler. You can open a Qiskit Runtime session using this `Session` class and submit jobs to one or more primitives. @@ -22,7 +22,11 @@ For example: ```python from qiskit.circuit import QuantumCircuit, QuantumRegister, ClassicalRegister -from qiskit_ibm_runtime import Sampler, Session, Options +from qiskit.transpiler.preset_passmanagers import generate_preset_pass_manager +from qiskit_ibm_runtime import Session, SamplerV2 as Sampler + +service = QiskitRuntimeService() +backend = service.least_busy(operational=True, simulator=False) # Bell Circuit qr = QuantumRegister(2, name="qr") @@ -32,13 +36,15 @@ qc.h(qr[0]) qc.cx(qr[0], qr[1]) qc.measure(qr, cr) -options = Options(optimization_level=3) +pm = generate_preset_pass_manager(backend=backend, optimization_level=1) +isa_circuit = pm.run(qc) -with Session(backend="ibmq_qasm_simulator") as session: - sampler = Sampler(session=session, options=options) - job = sampler.run(qc) +with Session(backend=backend) as session: + sampler = Sampler(session=session) + job = sampler.run([isa_circuit]) + pub_result = job.result()[0] print(f"Sampler job ID: {job.job_id()}") - print(f"Sampler job result: {job.result()}") + print(f"Counts: {pub_result.data.cr.get_counts()}") ``` Session constructor. @@ -89,7 +95,7 @@ Session ID. None if the backend is a simulator. -`backend()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/session.py#L208-L214 "view source code") +`backend()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/session.py#L218-L224 "view source code") Return backend for this session. @@ -105,7 +111,7 @@ Backend for this session. None if unknown. -`cancel()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/session.py#L194-L198 "view source code") +`cancel()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/session.py#L204-L208 "view source code") Cancel all pending jobs in a session. @@ -117,7 +123,7 @@ Cancel all pending jobs in a session. -`close()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/session.py#L200-L206 "view source code") +`close()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/session.py#L210-L216 "view source code") Close the session so new jobs will no longer be accepted, but existing queued or running jobs will run to completion. The session will be terminated once there are no more pending jobs. @@ -129,7 +135,7 @@ Close the session so new jobs will no longer be accepted, but existing queued or -`details()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/session.py#L242-L278 "view source code") +`details()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/session.py#L252-L288 "view source code") Return session details. @@ -145,7 +151,7 @@ A dictionary with the sessions details, including -`classmethod from_id(session_id, service=None, backend=None)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/session.py#L298-L323 "view source code") +`classmethod from_id(session_id, service=None, backend=None)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/session.py#L308-L333 "view source code") Construct a Session object with a given session\_id @@ -167,7 +173,7 @@ A new Session with the given `session_id` -`run(program_id, inputs, options=None, callback=None, result_decoder=None)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/session.py#L149-L192 "view source code") +`run(program_id, inputs, options=None, callback=None, result_decoder=None)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/session.py#L159-L202 "view source code") Run a program in the session. @@ -180,7 +186,7 @@ Run a program in the session. **Return type** -[`RuntimeJob`](qiskit_ibm_runtime.RuntimeJob "qiskit_ibm_runtime.runtime_job.RuntimeJob") +`Union`\[[`RuntimeJob`](qiskit_ibm_runtime.RuntimeJob "qiskit_ibm_runtime.runtime_job.RuntimeJob"), `RuntimeJobV2`] **Returns** @@ -190,7 +196,7 @@ Submitted job. -`status()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/session.py#L216-L240 "view source code") +`status()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/session.py#L226-L250 "view source code") Return current session status. diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeAlgiers.md b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeAlgiers.md new file mode 100644 index 00000000000..f68a6cc07bd --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeAlgiers.md @@ -0,0 +1,377 @@ +--- +title: FakeAlgiers +description: API reference for qiskit_ibm_runtime.fake_provider.FakeAlgiers +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.fake_provider.FakeAlgiers +--- + +# FakeAlgiers + + + +`FakeAlgiers` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/backends/algiers/fake_algiers.py#L21-L28 "view source code") + +A fake 27 qubit backend. + +FakeBackendV2 initializer. + +## Attributes + + + +### backend\_name + +`= 'fake_algiers'` + + + +### conf\_filename + +`= 'conf_algiers.json'` + + + +### coupling\_map + +Return the `CouplingMap` object + + + +### defs\_filename + +`= 'defs_algiers.json'` + + + +### dirname + +`= '/home/runner/work/qiskit-ibm-runtime/qiskit-ibm-runtime/qiskit_ibm_runtime/fake_provider/backends/algiers'` + + + +### dt + +Return the system time resolution of input signals + +This is required to be implemented if the backend supports Pulse scheduling. + +**Return type** + +`Optional`\[`float`] + +**Returns** + +The input signal timestep in seconds. If the backend doesn’t define `dt`, `None` will be returned. + + + +### dtm + +Return the system time resolution of output signals + +**Return type** + +`float` + +**Returns** + +The output signal timestep in seconds. + + + +### instruction\_durations + +Return the `InstructionDurations` object. + + + +### instruction\_schedule\_map + +Return the `InstructionScheduleMap` for the instructions defined in this backend’s target. + + + +### instructions + +A list of Instruction tuples on the backend of the form `(instruction, (qubits)` + +**Return type** + +`List`\[`Tuple`\[`Instruction`, `Tuple`\[`int`]]] + + + +### max\_circuits + +**Return type** + +`None` + + + +### meas\_map + +Return the grouping of measurements which are multiplexed This is required to be implemented if the backend supports Pulse scheduling. + +**Return type** + +`List`\[`List`\[`int`]] + +**Returns** + +The grouping of measurements which are multiplexed + + + +### num\_qubits + +Return the number of qubits the backend has. + +**Return type** + +`int` + + + +### operation\_names + +A list of instruction names that the backend supports. + +**Return type** + +`List`\[`str`] + + + +### operations + +A list of `Instruction` instances that the backend supports. + +**Return type** + +`List`\[`Instruction`] + + + +### options + +Return the options for the backend + +The options of a backend are the dynamic parameters defining how the backend is used. These are used to control the [`run()`](#qiskit_ibm_runtime.fake_provider.FakeAlgiers.run "qiskit_ibm_runtime.fake_provider.FakeAlgiers.run") method. + + + +### props\_filename + +`= 'props_algiers.json'` + + + +### provider + +Return the backend Provider. + +**Returns** + +the Provider responsible for the backend. + +**Return type** + +Provider + + + +### target + +A `qiskit.transpiler.Target` object for the backend. + +**Return type** + +Target + + + +### version + +`= 2` + + + +### name + +Name of the backend. + + + +### description + +Optional human-readable description. + + + +### online\_date + +Date that the backend came online. + + + +### backend\_version + +Version of the backend being provided. This is not the same as `BackendV2.version`, which is the version of the `Backend` abstract interface. + +## Methods + +### acquire\_channel + + + +`acquire_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L269-L282 "view source code") + +Return the acquisition channel for the given qubit. + +This is required to be implemented if the backend supports Pulse scheduling. + +**Returns** + +The Qubit measurement acquisition line. + +**Return type** + +AcquireChannel + +### control\_channel + + + +`control_channel(qubits)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L284-L304 "view source code") + +Return the secondary drive channel for the given qubit + +This is typically utilized for controlling multiqubit interactions. This channel is derived from other channels. + +This is required to be implemented if the backend supports Pulse scheduling. + +**Parameters** + +**qubits** (`Iterable`\[`int`]) – Tuple or list of qubits of the form `(control_qubit, target_qubit)`. + +**Returns** + +The multi qubit control line. + +**Return type** + +List\[ControlChannel] + +### drive\_channel + + + +`drive_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L239-L252 "view source code") + +Return the drive channel for the given qubit. + +This is required to be implemented if the backend supports Pulse scheduling. + +**Returns** + +The Qubit drive channel + +**Return type** + +DriveChannel + +### measure\_channel + + + +`measure_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L254-L267 "view source code") + +Return the measure stimulus channel for the given qubit. + +This is required to be implemented if the backend supports Pulse scheduling. + +**Returns** + +The Qubit measurement stimulus line + +**Return type** + +MeasureChannel + +### qubit\_properties + + + +`qubit_properties(qubit)` + +Return QubitProperties for a given qubit. + +If there are no defined or the backend doesn’t support querying these details this method does not need to be implemented. + +**Parameters** + +**qubit** (`Union`\[`int`, `List`\[`int`]]) – The qubit to get the `QubitProperties` object for. This can be a single integer for 1 qubit or a list of qubits and a list of `QubitProperties` objects will be returned in the same order + +**Return type** + +`Union`\[`QubitProperties`, `List`\[`QubitProperties`]] + +**Returns** + +The `QubitProperties` object for the specified qubit. If a list of qubits is provided a list will be returned. If properties are missing for a qubit this can be `None`. + +**Raises** + +**NotImplementedError** – if the backend doesn’t support querying the qubit properties + +### run + + + +`run(run_input, **options)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L306-L365 "view source code") + +Run on the fake backend using a simulator. + +This method runs circuit jobs (an individual or a list of QuantumCircuit ) and pulse jobs (an individual or a list of Schedule or ScheduleBlock) using BasicAer simulator/ BasicSimulator or Aer simulator and returns a `Job` object. + +If qiskit-aer is installed, jobs will be run using AerSimulator with noise model of the fake backend. Otherwise, jobs will be run using BasicAer simulator/ BasicSimulator simulator without noise. + +Currently noisy simulation of a pulse job is not supported yet in FakeBackendV2. + +**Parameters** + +* **run\_input** (*QuantumCircuit or Schedule or ScheduleBlock or list*) – An individual or a list of `QuantumCircuit`, `ScheduleBlock`, or `Schedule` objects to run on the backend. +* **options** – Any kwarg options to pass to the backend for running the config. If a key is also present in the options attribute/object then the expectation is that the value specified will be used instead of what’s set in the options object. + +**Returns** + +The job object for the run + +**Return type** + +Job + +**Raises** + +**QiskitError** – If a pulse job is supplied and qiskit-aer is not installed. + +### set\_options + + + +`set_options(**fields)` + +Set the options fields for the backend + +This method is used to update the options of a backend. If you need to change any of the options prior to running just pass in the kwarg with the new value for the options. + +**Parameters** + +**fields** – The fields to update the options + +**Raises** + +**AttributeError** – If the field passed in is not part of the options + diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeAlmaden.md b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeAlmaden.md index 08c420e0312..03a34ebb1f4 100644 --- a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeAlmaden.md +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeAlmaden.md @@ -10,7 +10,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeAlmaden -`FakeAlmaden` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/backends/almaden/fake_almaden.py#L41-L58 "view source code") +`FakeAlmaden` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/backends/almaden/fake_almaden.py#L41-L58 "view source code") A fake Almaden backend. @@ -109,7 +109,7 @@ str -`properties()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_qasm_backend.py#L44-L48 "view source code") +`properties()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_qasm_backend.py#L44-L48 "view source code") Returns a snapshot of device properties @@ -137,7 +137,7 @@ Provider -`run(run_input, **kwargs)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L545-L574 "view source code") +`run(run_input, **kwargs)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L545-L574 "view source code") Main job in simulator diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeAlmadenV2.md b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeAlmadenV2.md index 2731171efc6..a5c2df868d0 100644 --- a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeAlmadenV2.md +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeAlmadenV2.md @@ -10,7 +10,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeAlmadenV2 -`FakeAlmadenV2` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/backends/almaden/fake_almaden.py#L21-L38 "view source code") +`FakeAlmadenV2` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/backends/almaden/fake_almaden.py#L21-L38 "view source code") A fake Almaden V2 backend. @@ -236,7 +236,7 @@ Version of the backend being provided. This is not the same as `BackendV2.versio -`acquire_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L269-L282 "view source code") +`acquire_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L269-L282 "view source code") Return the acquisition channel for the given qubit. @@ -254,7 +254,7 @@ AcquireChannel -`control_channel(qubits)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L284-L304 "view source code") +`control_channel(qubits)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L284-L304 "view source code") Return the secondary drive channel for the given qubit @@ -278,7 +278,7 @@ List\[ControlChannel] -`drive_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L239-L252 "view source code") +`drive_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L239-L252 "view source code") Return the drive channel for the given qubit. @@ -296,7 +296,7 @@ DriveChannel -`measure_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L254-L267 "view source code") +`measure_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L254-L267 "view source code") Return the measure stimulus channel for the given qubit. @@ -340,7 +340,7 @@ The `QubitProperties` object for the specified qubit. If a list of qubits is pro -`run(run_input, **options)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L306-L365 "view source code") +`run(run_input, **options)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L306-L365 "view source code") Run on the fake backend using a simulator. diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeArmonk.md b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeArmonk.md index 2735b267633..233f04c8670 100644 --- a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeArmonk.md +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeArmonk.md @@ -10,7 +10,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeArmonk -`FakeArmonk` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/backends/armonk/fake_armonk.py#L36-L48 "view source code") +`FakeArmonk` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/backends/armonk/fake_armonk.py#L36-L48 "view source code") A fake 1 qubit backend. @@ -93,7 +93,7 @@ BackendConfiguration -`defaults()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_pulse_backend.py#L29-L33 "view source code") +`defaults()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_pulse_backend.py#L29-L33 "view source code") Returns a snapshot of device defaults @@ -121,7 +121,7 @@ str -`properties()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_qasm_backend.py#L44-L48 "view source code") +`properties()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_qasm_backend.py#L44-L48 "view source code") Returns a snapshot of device properties @@ -149,7 +149,7 @@ Provider -`run(run_input, **kwargs)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L545-L574 "view source code") +`run(run_input, **kwargs)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L545-L574 "view source code") Main job in simulator diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeArmonkV2.md b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeArmonkV2.md index 97cea6b3f6e..4a6f4c60c67 100644 --- a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeArmonkV2.md +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeArmonkV2.md @@ -10,7 +10,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeArmonkV2 -`FakeArmonkV2` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/backends/armonk/fake_armonk.py#L21-L33 "view source code") +`FakeArmonkV2` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/backends/armonk/fake_armonk.py#L21-L33 "view source code") A fake 1 qubit backend. @@ -230,7 +230,7 @@ Version of the backend being provided. This is not the same as `BackendV2.versio -`acquire_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L269-L282 "view source code") +`acquire_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L269-L282 "view source code") Return the acquisition channel for the given qubit. @@ -248,7 +248,7 @@ AcquireChannel -`control_channel(qubits)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L284-L304 "view source code") +`control_channel(qubits)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L284-L304 "view source code") Return the secondary drive channel for the given qubit @@ -272,7 +272,7 @@ List\[ControlChannel] -`drive_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L239-L252 "view source code") +`drive_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L239-L252 "view source code") Return the drive channel for the given qubit. @@ -290,7 +290,7 @@ DriveChannel -`measure_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L254-L267 "view source code") +`measure_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L254-L267 "view source code") Return the measure stimulus channel for the given qubit. @@ -334,7 +334,7 @@ The `QubitProperties` object for the specified qubit. If a list of qubits is pro -`run(run_input, **options)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L306-L365 "view source code") +`run(run_input, **options)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L306-L365 "view source code") Run on the fake backend using a simulator. diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeAthens.md b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeAthens.md index f7bb0cd4d3f..c10bc2474ae 100644 --- a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeAthens.md +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeAthens.md @@ -10,7 +10,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeAthens -`FakeAthens` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/backends/athens/fake_athens.py#L31-L38 "view source code") +`FakeAthens` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/backends/athens/fake_athens.py#L31-L38 "view source code") A fake 5 qubit backend. @@ -89,7 +89,7 @@ BackendConfiguration -`defaults()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_pulse_backend.py#L29-L33 "view source code") +`defaults()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_pulse_backend.py#L29-L33 "view source code") Returns a snapshot of device defaults @@ -117,7 +117,7 @@ str -`properties()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_qasm_backend.py#L44-L48 "view source code") +`properties()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_qasm_backend.py#L44-L48 "view source code") Returns a snapshot of device properties @@ -145,7 +145,7 @@ Provider -`run(run_input, **kwargs)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L545-L574 "view source code") +`run(run_input, **kwargs)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L545-L574 "view source code") Main job in simulator diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeAthensV2.md b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeAthensV2.md index bec95b6467c..bbef727e308 100644 --- a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeAthensV2.md +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeAthensV2.md @@ -10,7 +10,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeAthensV2 -`FakeAthensV2` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/backends/athens/fake_athens.py#L21-L28 "view source code") +`FakeAthensV2` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/backends/athens/fake_athens.py#L21-L28 "view source code") A fake 5 qubit backend. @@ -226,7 +226,7 @@ Version of the backend being provided. This is not the same as `BackendV2.versio -`acquire_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L269-L282 "view source code") +`acquire_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L269-L282 "view source code") Return the acquisition channel for the given qubit. @@ -244,7 +244,7 @@ AcquireChannel -`control_channel(qubits)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L284-L304 "view source code") +`control_channel(qubits)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L284-L304 "view source code") Return the secondary drive channel for the given qubit @@ -268,7 +268,7 @@ List\[ControlChannel] -`drive_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L239-L252 "view source code") +`drive_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L239-L252 "view source code") Return the drive channel for the given qubit. @@ -286,7 +286,7 @@ DriveChannel -`measure_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L254-L267 "view source code") +`measure_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L254-L267 "view source code") Return the measure stimulus channel for the given qubit. @@ -330,7 +330,7 @@ The `QubitProperties` object for the specified qubit. If a list of qubits is pro -`run(run_input, **options)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L306-L365 "view source code") +`run(run_input, **options)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L306-L365 "view source code") Run on the fake backend using a simulator. diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeAuckland.md b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeAuckland.md index 982e308f839..5f79927c2aa 100644 --- a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeAuckland.md +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeAuckland.md @@ -10,7 +10,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeAuckland -`FakeAuckland` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/backends/auckland/fake_auckland.py#L22-L29 "view source code") +`FakeAuckland` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/backends/auckland/fake_auckland.py#L22-L29 "view source code") A fake 27 qubit backend. @@ -226,7 +226,7 @@ Version of the backend being provided. This is not the same as `BackendV2.versio -`acquire_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L269-L282 "view source code") +`acquire_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L269-L282 "view source code") Return the acquisition channel for the given qubit. @@ -244,7 +244,7 @@ AcquireChannel -`control_channel(qubits)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L284-L304 "view source code") +`control_channel(qubits)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L284-L304 "view source code") Return the secondary drive channel for the given qubit @@ -268,7 +268,7 @@ List\[ControlChannel] -`drive_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L239-L252 "view source code") +`drive_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L239-L252 "view source code") Return the drive channel for the given qubit. @@ -286,7 +286,7 @@ DriveChannel -`measure_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L254-L267 "view source code") +`measure_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L254-L267 "view source code") Return the measure stimulus channel for the given qubit. @@ -330,7 +330,7 @@ The `QubitProperties` object for the specified qubit. If a list of qubits is pro -`run(run_input, **options)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L306-L365 "view source code") +`run(run_input, **options)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L306-L365 "view source code") Run on the fake backend using a simulator. diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeBelem.md b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeBelem.md index 8cdf31e5d19..2c797a3b9e5 100644 --- a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeBelem.md +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeBelem.md @@ -10,7 +10,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeBelem -`FakeBelem` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/backends/belem/fake_belem.py#L31-L38 "view source code") +`FakeBelem` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/backends/belem/fake_belem.py#L31-L38 "view source code") A fake 5 qubit backend. @@ -89,7 +89,7 @@ BackendConfiguration -`defaults()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_pulse_backend.py#L29-L33 "view source code") +`defaults()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_pulse_backend.py#L29-L33 "view source code") Returns a snapshot of device defaults @@ -117,7 +117,7 @@ str -`properties()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_qasm_backend.py#L44-L48 "view source code") +`properties()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_qasm_backend.py#L44-L48 "view source code") Returns a snapshot of device properties @@ -145,7 +145,7 @@ Provider -`run(run_input, **kwargs)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L545-L574 "view source code") +`run(run_input, **kwargs)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L545-L574 "view source code") Main job in simulator diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeBelemV2.md b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeBelemV2.md index c3417125d30..b08b8cb7b37 100644 --- a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeBelemV2.md +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeBelemV2.md @@ -10,7 +10,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeBelemV2 -`FakeBelemV2` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/backends/belem/fake_belem.py#L21-L28 "view source code") +`FakeBelemV2` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/backends/belem/fake_belem.py#L21-L28 "view source code") A fake 5 qubit backend. @@ -226,7 +226,7 @@ Version of the backend being provided. This is not the same as `BackendV2.versio -`acquire_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L269-L282 "view source code") +`acquire_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L269-L282 "view source code") Return the acquisition channel for the given qubit. @@ -244,7 +244,7 @@ AcquireChannel -`control_channel(qubits)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L284-L304 "view source code") +`control_channel(qubits)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L284-L304 "view source code") Return the secondary drive channel for the given qubit @@ -268,7 +268,7 @@ List\[ControlChannel] -`drive_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L239-L252 "view source code") +`drive_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L239-L252 "view source code") Return the drive channel for the given qubit. @@ -286,7 +286,7 @@ DriveChannel -`measure_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L254-L267 "view source code") +`measure_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L254-L267 "view source code") Return the measure stimulus channel for the given qubit. @@ -330,7 +330,7 @@ The `QubitProperties` object for the specified qubit. If a list of qubits is pro -`run(run_input, **options)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L306-L365 "view source code") +`run(run_input, **options)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L306-L365 "view source code") Run on the fake backend using a simulator. diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeBoeblingen.md b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeBoeblingen.md index 8818d7785b1..92ab3d8ef3b 100644 --- a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeBoeblingen.md +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeBoeblingen.md @@ -10,7 +10,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeBoeblingen -`FakeBoeblingen` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/backends/boeblingen/fake_boeblingen.py#L42-L60 "view source code") +`FakeBoeblingen` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/backends/boeblingen/fake_boeblingen.py#L42-L60 "view source code") A fake Boeblingen backend. @@ -99,7 +99,7 @@ BackendConfiguration -`defaults()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_pulse_backend.py#L29-L33 "view source code") +`defaults()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_pulse_backend.py#L29-L33 "view source code") Returns a snapshot of device defaults @@ -127,7 +127,7 @@ str -`properties()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_qasm_backend.py#L44-L48 "view source code") +`properties()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_qasm_backend.py#L44-L48 "view source code") Returns a snapshot of device properties @@ -155,7 +155,7 @@ Provider -`run(run_input, **kwargs)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L545-L574 "view source code") +`run(run_input, **kwargs)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L545-L574 "view source code") Main job in simulator diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeBoeblingenV2.md b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeBoeblingenV2.md index 84da16aaada..c4641a4b243 100644 --- a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeBoeblingenV2.md +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeBoeblingenV2.md @@ -10,7 +10,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeBoeblingenV2 -`FakeBoeblingenV2` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/backends/boeblingen/fake_boeblingen.py#L21-L39 "view source code") +`FakeBoeblingenV2` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/backends/boeblingen/fake_boeblingen.py#L21-L39 "view source code") A fake Boeblingen V2 backend. @@ -236,7 +236,7 @@ Version of the backend being provided. This is not the same as `BackendV2.versio -`acquire_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L269-L282 "view source code") +`acquire_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L269-L282 "view source code") Return the acquisition channel for the given qubit. @@ -254,7 +254,7 @@ AcquireChannel -`control_channel(qubits)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L284-L304 "view source code") +`control_channel(qubits)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L284-L304 "view source code") Return the secondary drive channel for the given qubit @@ -278,7 +278,7 @@ List\[ControlChannel] -`drive_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L239-L252 "view source code") +`drive_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L239-L252 "view source code") Return the drive channel for the given qubit. @@ -296,7 +296,7 @@ DriveChannel -`measure_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L254-L267 "view source code") +`measure_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L254-L267 "view source code") Return the measure stimulus channel for the given qubit. @@ -340,7 +340,7 @@ The `QubitProperties` object for the specified qubit. If a list of qubits is pro -`run(run_input, **options)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L306-L365 "view source code") +`run(run_input, **options)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L306-L365 "view source code") Run on the fake backend using a simulator. diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeBogota.md b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeBogota.md index fcda71f37a1..755ebe31064 100644 --- a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeBogota.md +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeBogota.md @@ -10,7 +10,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeBogota -`FakeBogota` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/backends/bogota/fake_bogota.py#L31-L38 "view source code") +`FakeBogota` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/backends/bogota/fake_bogota.py#L31-L38 "view source code") A fake 5 qubit backend. @@ -89,7 +89,7 @@ BackendConfiguration -`defaults()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_pulse_backend.py#L29-L33 "view source code") +`defaults()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_pulse_backend.py#L29-L33 "view source code") Returns a snapshot of device defaults @@ -117,7 +117,7 @@ str -`properties()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_qasm_backend.py#L44-L48 "view source code") +`properties()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_qasm_backend.py#L44-L48 "view source code") Returns a snapshot of device properties @@ -145,7 +145,7 @@ Provider -`run(run_input, **kwargs)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L545-L574 "view source code") +`run(run_input, **kwargs)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L545-L574 "view source code") Main job in simulator diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeBogotaV2.md b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeBogotaV2.md index d7be2f10516..dea1ebd124b 100644 --- a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeBogotaV2.md +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeBogotaV2.md @@ -10,7 +10,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeBogotaV2 -`FakeBogotaV2` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/backends/bogota/fake_bogota.py#L21-L28 "view source code") +`FakeBogotaV2` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/backends/bogota/fake_bogota.py#L21-L28 "view source code") A fake 5 qubit backend. @@ -226,7 +226,7 @@ Version of the backend being provided. This is not the same as `BackendV2.versio -`acquire_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L269-L282 "view source code") +`acquire_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L269-L282 "view source code") Return the acquisition channel for the given qubit. @@ -244,7 +244,7 @@ AcquireChannel -`control_channel(qubits)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L284-L304 "view source code") +`control_channel(qubits)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L284-L304 "view source code") Return the secondary drive channel for the given qubit @@ -268,7 +268,7 @@ List\[ControlChannel] -`drive_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L239-L252 "view source code") +`drive_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L239-L252 "view source code") Return the drive channel for the given qubit. @@ -286,7 +286,7 @@ DriveChannel -`measure_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L254-L267 "view source code") +`measure_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L254-L267 "view source code") Return the measure stimulus channel for the given qubit. @@ -330,7 +330,7 @@ The `QubitProperties` object for the specified qubit. If a list of qubits is pro -`run(run_input, **options)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L306-L365 "view source code") +`run(run_input, **options)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L306-L365 "view source code") Run on the fake backend using a simulator. diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeBrisbane.md b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeBrisbane.md new file mode 100644 index 00000000000..0fb739af1a2 --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeBrisbane.md @@ -0,0 +1,377 @@ +--- +title: FakeBrisbane +description: API reference for qiskit_ibm_runtime.fake_provider.FakeBrisbane +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.fake_provider.FakeBrisbane +--- + +# FakeBrisbane + + + +`FakeBrisbane` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/backends/brisbane/fake_brisbane.py#L21-L28 "view source code") + +A fake 127 qubit backend. + +FakeBackendV2 initializer. + +## Attributes + + + +### backend\_name + +`= 'fake_brisbane'` + + + +### conf\_filename + +`= 'conf_brisbane.json'` + + + +### coupling\_map + +Return the `CouplingMap` object + + + +### defs\_filename + +`= 'defs_brisbane.json'` + + + +### dirname + +`= '/home/runner/work/qiskit-ibm-runtime/qiskit-ibm-runtime/qiskit_ibm_runtime/fake_provider/backends/brisbane'` + + + +### dt + +Return the system time resolution of input signals + +This is required to be implemented if the backend supports Pulse scheduling. + +**Return type** + +`Optional`\[`float`] + +**Returns** + +The input signal timestep in seconds. If the backend doesn’t define `dt`, `None` will be returned. + + + +### dtm + +Return the system time resolution of output signals + +**Return type** + +`float` + +**Returns** + +The output signal timestep in seconds. + + + +### instruction\_durations + +Return the `InstructionDurations` object. + + + +### instruction\_schedule\_map + +Return the `InstructionScheduleMap` for the instructions defined in this backend’s target. + + + +### instructions + +A list of Instruction tuples on the backend of the form `(instruction, (qubits)` + +**Return type** + +`List`\[`Tuple`\[`Instruction`, `Tuple`\[`int`]]] + + + +### max\_circuits + +**Return type** + +`None` + + + +### meas\_map + +Return the grouping of measurements which are multiplexed This is required to be implemented if the backend supports Pulse scheduling. + +**Return type** + +`List`\[`List`\[`int`]] + +**Returns** + +The grouping of measurements which are multiplexed + + + +### num\_qubits + +Return the number of qubits the backend has. + +**Return type** + +`int` + + + +### operation\_names + +A list of instruction names that the backend supports. + +**Return type** + +`List`\[`str`] + + + +### operations + +A list of `Instruction` instances that the backend supports. + +**Return type** + +`List`\[`Instruction`] + + + +### options + +Return the options for the backend + +The options of a backend are the dynamic parameters defining how the backend is used. These are used to control the [`run()`](#qiskit_ibm_runtime.fake_provider.FakeBrisbane.run "qiskit_ibm_runtime.fake_provider.FakeBrisbane.run") method. + + + +### props\_filename + +`= 'props_brisbane.json'` + + + +### provider + +Return the backend Provider. + +**Returns** + +the Provider responsible for the backend. + +**Return type** + +Provider + + + +### target + +A `qiskit.transpiler.Target` object for the backend. + +**Return type** + +Target + + + +### version + +`= 2` + + + +### name + +Name of the backend. + + + +### description + +Optional human-readable description. + + + +### online\_date + +Date that the backend came online. + + + +### backend\_version + +Version of the backend being provided. This is not the same as `BackendV2.version`, which is the version of the `Backend` abstract interface. + +## Methods + +### acquire\_channel + + + +`acquire_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L269-L282 "view source code") + +Return the acquisition channel for the given qubit. + +This is required to be implemented if the backend supports Pulse scheduling. + +**Returns** + +The Qubit measurement acquisition line. + +**Return type** + +AcquireChannel + +### control\_channel + + + +`control_channel(qubits)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L284-L304 "view source code") + +Return the secondary drive channel for the given qubit + +This is typically utilized for controlling multiqubit interactions. This channel is derived from other channels. + +This is required to be implemented if the backend supports Pulse scheduling. + +**Parameters** + +**qubits** (`Iterable`\[`int`]) – Tuple or list of qubits of the form `(control_qubit, target_qubit)`. + +**Returns** + +The multi qubit control line. + +**Return type** + +List\[ControlChannel] + +### drive\_channel + + + +`drive_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L239-L252 "view source code") + +Return the drive channel for the given qubit. + +This is required to be implemented if the backend supports Pulse scheduling. + +**Returns** + +The Qubit drive channel + +**Return type** + +DriveChannel + +### measure\_channel + + + +`measure_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L254-L267 "view source code") + +Return the measure stimulus channel for the given qubit. + +This is required to be implemented if the backend supports Pulse scheduling. + +**Returns** + +The Qubit measurement stimulus line + +**Return type** + +MeasureChannel + +### qubit\_properties + + + +`qubit_properties(qubit)` + +Return QubitProperties for a given qubit. + +If there are no defined or the backend doesn’t support querying these details this method does not need to be implemented. + +**Parameters** + +**qubit** (`Union`\[`int`, `List`\[`int`]]) – The qubit to get the `QubitProperties` object for. This can be a single integer for 1 qubit or a list of qubits and a list of `QubitProperties` objects will be returned in the same order + +**Return type** + +`Union`\[`QubitProperties`, `List`\[`QubitProperties`]] + +**Returns** + +The `QubitProperties` object for the specified qubit. If a list of qubits is provided a list will be returned. If properties are missing for a qubit this can be `None`. + +**Raises** + +**NotImplementedError** – if the backend doesn’t support querying the qubit properties + +### run + + + +`run(run_input, **options)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L306-L365 "view source code") + +Run on the fake backend using a simulator. + +This method runs circuit jobs (an individual or a list of QuantumCircuit ) and pulse jobs (an individual or a list of Schedule or ScheduleBlock) using BasicAer simulator/ BasicSimulator or Aer simulator and returns a `Job` object. + +If qiskit-aer is installed, jobs will be run using AerSimulator with noise model of the fake backend. Otherwise, jobs will be run using BasicAer simulator/ BasicSimulator simulator without noise. + +Currently noisy simulation of a pulse job is not supported yet in FakeBackendV2. + +**Parameters** + +* **run\_input** (*QuantumCircuit or Schedule or ScheduleBlock or list*) – An individual or a list of `QuantumCircuit`, `ScheduleBlock`, or `Schedule` objects to run on the backend. +* **options** – Any kwarg options to pass to the backend for running the config. If a key is also present in the options attribute/object then the expectation is that the value specified will be used instead of what’s set in the options object. + +**Returns** + +The job object for the run + +**Return type** + +Job + +**Raises** + +**QiskitError** – If a pulse job is supplied and qiskit-aer is not installed. + +### set\_options + + + +`set_options(**fields)` + +Set the options fields for the backend + +This method is used to update the options of a backend. If you need to change any of the options prior to running just pass in the kwarg with the new value for the options. + +**Parameters** + +**fields** – The fields to update the options + +**Raises** + +**AttributeError** – If the field passed in is not part of the options + diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeBrooklyn.md b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeBrooklyn.md index 34a9375f2e9..1215378dbd7 100644 --- a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeBrooklyn.md +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeBrooklyn.md @@ -10,7 +10,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeBrooklyn -`FakeBrooklyn` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/backends/brooklyn/fake_brooklyn.py#L31-L38 "view source code") +`FakeBrooklyn` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/backends/brooklyn/fake_brooklyn.py#L31-L38 "view source code") A fake Brooklyn backend. @@ -89,7 +89,7 @@ BackendConfiguration -`defaults()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_pulse_backend.py#L29-L33 "view source code") +`defaults()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_pulse_backend.py#L29-L33 "view source code") Returns a snapshot of device defaults @@ -117,7 +117,7 @@ str -`properties()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_qasm_backend.py#L44-L48 "view source code") +`properties()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_qasm_backend.py#L44-L48 "view source code") Returns a snapshot of device properties @@ -145,7 +145,7 @@ Provider -`run(run_input, **kwargs)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L545-L574 "view source code") +`run(run_input, **kwargs)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L545-L574 "view source code") Main job in simulator diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeBrooklynV2.md b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeBrooklynV2.md index 6c36246a4d3..ed8e528ccbf 100644 --- a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeBrooklynV2.md +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeBrooklynV2.md @@ -10,7 +10,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeBrooklynV2 -`FakeBrooklynV2` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/backends/brooklyn/fake_brooklyn.py#L21-L28 "view source code") +`FakeBrooklynV2` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/backends/brooklyn/fake_brooklyn.py#L21-L28 "view source code") A fake Brooklyn V2 backend. @@ -226,7 +226,7 @@ Version of the backend being provided. This is not the same as `BackendV2.versio -`acquire_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L269-L282 "view source code") +`acquire_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L269-L282 "view source code") Return the acquisition channel for the given qubit. @@ -244,7 +244,7 @@ AcquireChannel -`control_channel(qubits)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L284-L304 "view source code") +`control_channel(qubits)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L284-L304 "view source code") Return the secondary drive channel for the given qubit @@ -268,7 +268,7 @@ List\[ControlChannel] -`drive_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L239-L252 "view source code") +`drive_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L239-L252 "view source code") Return the drive channel for the given qubit. @@ -286,7 +286,7 @@ DriveChannel -`measure_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L254-L267 "view source code") +`measure_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L254-L267 "view source code") Return the measure stimulus channel for the given qubit. @@ -330,7 +330,7 @@ The `QubitProperties` object for the specified qubit. If a list of qubits is pro -`run(run_input, **options)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L306-L365 "view source code") +`run(run_input, **options)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L306-L365 "view source code") Run on the fake backend using a simulator. diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeBurlington.md b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeBurlington.md index 167af4fb88f..27f6fdb7375 100644 --- a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeBurlington.md +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeBurlington.md @@ -10,7 +10,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeBurlington -`FakeBurlington` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/backends/burlington/fake_burlington.py#L37-L50 "view source code") +`FakeBurlington` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/backends/burlington/fake_burlington.py#L37-L50 "view source code") A fake 5 qubit backend. @@ -105,7 +105,7 @@ str -`properties()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_qasm_backend.py#L44-L48 "view source code") +`properties()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_qasm_backend.py#L44-L48 "view source code") Returns a snapshot of device properties @@ -133,7 +133,7 @@ Provider -`run(run_input, **kwargs)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L545-L574 "view source code") +`run(run_input, **kwargs)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L545-L574 "view source code") Main job in simulator diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeBurlingtonV2.md b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeBurlingtonV2.md index 28e9536cf76..f41958456a8 100644 --- a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeBurlingtonV2.md +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeBurlingtonV2.md @@ -10,7 +10,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeBurlingtonV2 -`FakeBurlingtonV2` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/backends/burlington/fake_burlington.py#L21-L34 "view source code") +`FakeBurlingtonV2` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/backends/burlington/fake_burlington.py#L21-L34 "view source code") A fake 5 qubit backend. @@ -232,7 +232,7 @@ Version of the backend being provided. This is not the same as `BackendV2.versio -`acquire_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L269-L282 "view source code") +`acquire_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L269-L282 "view source code") Return the acquisition channel for the given qubit. @@ -250,7 +250,7 @@ AcquireChannel -`control_channel(qubits)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L284-L304 "view source code") +`control_channel(qubits)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L284-L304 "view source code") Return the secondary drive channel for the given qubit @@ -274,7 +274,7 @@ List\[ControlChannel] -`drive_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L239-L252 "view source code") +`drive_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L239-L252 "view source code") Return the drive channel for the given qubit. @@ -292,7 +292,7 @@ DriveChannel -`measure_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L254-L267 "view source code") +`measure_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L254-L267 "view source code") Return the measure stimulus channel for the given qubit. @@ -336,7 +336,7 @@ The `QubitProperties` object for the specified qubit. If a list of qubits is pro -`run(run_input, **options)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L306-L365 "view source code") +`run(run_input, **options)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L306-L365 "view source code") Run on the fake backend using a simulator. diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeCairo.md b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeCairo.md index e369a5a7b99..79376c058da 100644 --- a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeCairo.md +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeCairo.md @@ -10,7 +10,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeCairo -`FakeCairo` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/backends/cairo/fake_cairo.py#L31-L38 "view source code") +`FakeCairo` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/backends/cairo/fake_cairo.py#L31-L38 "view source code") A fake 27 qubit backend. @@ -89,7 +89,7 @@ BackendConfiguration -`defaults()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_pulse_backend.py#L29-L33 "view source code") +`defaults()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_pulse_backend.py#L29-L33 "view source code") Returns a snapshot of device defaults @@ -117,7 +117,7 @@ str -`properties()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_qasm_backend.py#L44-L48 "view source code") +`properties()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_qasm_backend.py#L44-L48 "view source code") Returns a snapshot of device properties @@ -145,7 +145,7 @@ Provider -`run(run_input, **kwargs)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L545-L574 "view source code") +`run(run_input, **kwargs)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L545-L574 "view source code") Main job in simulator diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeCairoV2.md b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeCairoV2.md index 998ef0f99c2..de0ce272343 100644 --- a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeCairoV2.md +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeCairoV2.md @@ -10,7 +10,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeCairoV2 -`FakeCairoV2` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/backends/cairo/fake_cairo.py#L21-L28 "view source code") +`FakeCairoV2` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/backends/cairo/fake_cairo.py#L21-L28 "view source code") A fake 27 qubit backend. @@ -226,7 +226,7 @@ Version of the backend being provided. This is not the same as `BackendV2.versio -`acquire_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L269-L282 "view source code") +`acquire_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L269-L282 "view source code") Return the acquisition channel for the given qubit. @@ -244,7 +244,7 @@ AcquireChannel -`control_channel(qubits)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L284-L304 "view source code") +`control_channel(qubits)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L284-L304 "view source code") Return the secondary drive channel for the given qubit @@ -268,7 +268,7 @@ List\[ControlChannel] -`drive_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L239-L252 "view source code") +`drive_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L239-L252 "view source code") Return the drive channel for the given qubit. @@ -286,7 +286,7 @@ DriveChannel -`measure_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L254-L267 "view source code") +`measure_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L254-L267 "view source code") Return the measure stimulus channel for the given qubit. @@ -330,7 +330,7 @@ The `QubitProperties` object for the specified qubit. If a list of qubits is pro -`run(run_input, **options)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L306-L365 "view source code") +`run(run_input, **options)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L306-L365 "view source code") Run on the fake backend using a simulator. diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeCambridge.md b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeCambridge.md index 83914bd354e..ff4e2760dd0 100644 --- a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeCambridge.md +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeCambridge.md @@ -10,7 +10,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeCambridge -`FakeCambridge` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/backends/cambridge/fake_cambridge.py#L43-L62 "view source code") +`FakeCambridge` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/backends/cambridge/fake_cambridge.py#L43-L62 "view source code") A fake Cambridge backend. @@ -111,7 +111,7 @@ str -`properties()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_qasm_backend.py#L44-L48 "view source code") +`properties()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_qasm_backend.py#L44-L48 "view source code") Returns a snapshot of device properties @@ -139,7 +139,7 @@ Provider -`run(run_input, **kwargs)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L545-L574 "view source code") +`run(run_input, **kwargs)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L545-L574 "view source code") Main job in simulator diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeCambridgeV2.md b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeCambridgeV2.md index 3223dbdb144..7fa1cd18aef 100644 --- a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeCambridgeV2.md +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeCambridgeV2.md @@ -10,7 +10,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeCambridgeV2 -`FakeCambridgeV2` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/backends/cambridge/fake_cambridge.py#L21-L40 "view source code") +`FakeCambridgeV2` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/backends/cambridge/fake_cambridge.py#L21-L40 "view source code") A fake Cambridge backend. @@ -238,7 +238,7 @@ Version of the backend being provided. This is not the same as `BackendV2.versio -`acquire_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L269-L282 "view source code") +`acquire_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L269-L282 "view source code") Return the acquisition channel for the given qubit. @@ -256,7 +256,7 @@ AcquireChannel -`control_channel(qubits)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L284-L304 "view source code") +`control_channel(qubits)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L284-L304 "view source code") Return the secondary drive channel for the given qubit @@ -280,7 +280,7 @@ List\[ControlChannel] -`drive_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L239-L252 "view source code") +`drive_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L239-L252 "view source code") Return the drive channel for the given qubit. @@ -298,7 +298,7 @@ DriveChannel -`measure_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L254-L267 "view source code") +`measure_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L254-L267 "view source code") Return the measure stimulus channel for the given qubit. @@ -342,7 +342,7 @@ The `QubitProperties` object for the specified qubit. If a list of qubits is pro -`run(run_input, **options)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L306-L365 "view source code") +`run(run_input, **options)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L306-L365 "view source code") Run on the fake backend using a simulator. diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeCasablanca.md b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeCasablanca.md index f07fdf7e90e..7e3aa329df5 100644 --- a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeCasablanca.md +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeCasablanca.md @@ -10,7 +10,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeCasablanca -`FakeCasablanca` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/backends/casablanca/fake_casablanca.py#L31-L38 "view source code") +`FakeCasablanca` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/backends/casablanca/fake_casablanca.py#L31-L38 "view source code") A fake 7 qubit backend. @@ -89,7 +89,7 @@ BackendConfiguration -`defaults()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_pulse_backend.py#L29-L33 "view source code") +`defaults()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_pulse_backend.py#L29-L33 "view source code") Returns a snapshot of device defaults @@ -117,7 +117,7 @@ str -`properties()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_qasm_backend.py#L44-L48 "view source code") +`properties()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_qasm_backend.py#L44-L48 "view source code") Returns a snapshot of device properties @@ -145,7 +145,7 @@ Provider -`run(run_input, **kwargs)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L545-L574 "view source code") +`run(run_input, **kwargs)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L545-L574 "view source code") Main job in simulator diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeCasablancaV2.md b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeCasablancaV2.md index 48aa653c74b..8a0c42b17f3 100644 --- a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeCasablancaV2.md +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeCasablancaV2.md @@ -10,7 +10,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeCasablancaV2 -`FakeCasablancaV2` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/backends/casablanca/fake_casablanca.py#L21-L28 "view source code") +`FakeCasablancaV2` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/backends/casablanca/fake_casablanca.py#L21-L28 "view source code") A fake 7 qubit backend. @@ -226,7 +226,7 @@ Version of the backend being provided. This is not the same as `BackendV2.versio -`acquire_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L269-L282 "view source code") +`acquire_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L269-L282 "view source code") Return the acquisition channel for the given qubit. @@ -244,7 +244,7 @@ AcquireChannel -`control_channel(qubits)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L284-L304 "view source code") +`control_channel(qubits)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L284-L304 "view source code") Return the secondary drive channel for the given qubit @@ -268,7 +268,7 @@ List\[ControlChannel] -`drive_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L239-L252 "view source code") +`drive_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L239-L252 "view source code") Return the drive channel for the given qubit. @@ -286,7 +286,7 @@ DriveChannel -`measure_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L254-L267 "view source code") +`measure_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L254-L267 "view source code") Return the measure stimulus channel for the given qubit. @@ -330,7 +330,7 @@ The `QubitProperties` object for the specified qubit. If a list of qubits is pro -`run(run_input, **options)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L306-L365 "view source code") +`run(run_input, **options)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L306-L365 "view source code") Run on the fake backend using a simulator. diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeCusco.md b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeCusco.md new file mode 100644 index 00000000000..11717f06bb4 --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeCusco.md @@ -0,0 +1,377 @@ +--- +title: FakeCusco +description: API reference for qiskit_ibm_runtime.fake_provider.FakeCusco +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.fake_provider.FakeCusco +--- + +# FakeCusco + + + +`FakeCusco` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/backends/cusco/fake_cusco.py#L21-L28 "view source code") + +A fake 127 qubit backend. + +FakeBackendV2 initializer. + +## Attributes + + + +### backend\_name + +`= 'fake_cusco'` + + + +### conf\_filename + +`= 'conf_cusco.json'` + + + +### coupling\_map + +Return the `CouplingMap` object + + + +### defs\_filename + +`= 'defs_cusco.json'` + + + +### dirname + +`= '/home/runner/work/qiskit-ibm-runtime/qiskit-ibm-runtime/qiskit_ibm_runtime/fake_provider/backends/cusco'` + + + +### dt + +Return the system time resolution of input signals + +This is required to be implemented if the backend supports Pulse scheduling. + +**Return type** + +`Optional`\[`float`] + +**Returns** + +The input signal timestep in seconds. If the backend doesn’t define `dt`, `None` will be returned. + + + +### dtm + +Return the system time resolution of output signals + +**Return type** + +`float` + +**Returns** + +The output signal timestep in seconds. + + + +### instruction\_durations + +Return the `InstructionDurations` object. + + + +### instruction\_schedule\_map + +Return the `InstructionScheduleMap` for the instructions defined in this backend’s target. + + + +### instructions + +A list of Instruction tuples on the backend of the form `(instruction, (qubits)` + +**Return type** + +`List`\[`Tuple`\[`Instruction`, `Tuple`\[`int`]]] + + + +### max\_circuits + +**Return type** + +`None` + + + +### meas\_map + +Return the grouping of measurements which are multiplexed This is required to be implemented if the backend supports Pulse scheduling. + +**Return type** + +`List`\[`List`\[`int`]] + +**Returns** + +The grouping of measurements which are multiplexed + + + +### num\_qubits + +Return the number of qubits the backend has. + +**Return type** + +`int` + + + +### operation\_names + +A list of instruction names that the backend supports. + +**Return type** + +`List`\[`str`] + + + +### operations + +A list of `Instruction` instances that the backend supports. + +**Return type** + +`List`\[`Instruction`] + + + +### options + +Return the options for the backend + +The options of a backend are the dynamic parameters defining how the backend is used. These are used to control the [`run()`](#qiskit_ibm_runtime.fake_provider.FakeCusco.run "qiskit_ibm_runtime.fake_provider.FakeCusco.run") method. + + + +### props\_filename + +`= 'props_cusco.json'` + + + +### provider + +Return the backend Provider. + +**Returns** + +the Provider responsible for the backend. + +**Return type** + +Provider + + + +### target + +A `qiskit.transpiler.Target` object for the backend. + +**Return type** + +Target + + + +### version + +`= 2` + + + +### name + +Name of the backend. + + + +### description + +Optional human-readable description. + + + +### online\_date + +Date that the backend came online. + + + +### backend\_version + +Version of the backend being provided. This is not the same as `BackendV2.version`, which is the version of the `Backend` abstract interface. + +## Methods + +### acquire\_channel + + + +`acquire_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L269-L282 "view source code") + +Return the acquisition channel for the given qubit. + +This is required to be implemented if the backend supports Pulse scheduling. + +**Returns** + +The Qubit measurement acquisition line. + +**Return type** + +AcquireChannel + +### control\_channel + + + +`control_channel(qubits)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L284-L304 "view source code") + +Return the secondary drive channel for the given qubit + +This is typically utilized for controlling multiqubit interactions. This channel is derived from other channels. + +This is required to be implemented if the backend supports Pulse scheduling. + +**Parameters** + +**qubits** (`Iterable`\[`int`]) – Tuple or list of qubits of the form `(control_qubit, target_qubit)`. + +**Returns** + +The multi qubit control line. + +**Return type** + +List\[ControlChannel] + +### drive\_channel + + + +`drive_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L239-L252 "view source code") + +Return the drive channel for the given qubit. + +This is required to be implemented if the backend supports Pulse scheduling. + +**Returns** + +The Qubit drive channel + +**Return type** + +DriveChannel + +### measure\_channel + + + +`measure_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L254-L267 "view source code") + +Return the measure stimulus channel for the given qubit. + +This is required to be implemented if the backend supports Pulse scheduling. + +**Returns** + +The Qubit measurement stimulus line + +**Return type** + +MeasureChannel + +### qubit\_properties + + + +`qubit_properties(qubit)` + +Return QubitProperties for a given qubit. + +If there are no defined or the backend doesn’t support querying these details this method does not need to be implemented. + +**Parameters** + +**qubit** (`Union`\[`int`, `List`\[`int`]]) – The qubit to get the `QubitProperties` object for. This can be a single integer for 1 qubit or a list of qubits and a list of `QubitProperties` objects will be returned in the same order + +**Return type** + +`Union`\[`QubitProperties`, `List`\[`QubitProperties`]] + +**Returns** + +The `QubitProperties` object for the specified qubit. If a list of qubits is provided a list will be returned. If properties are missing for a qubit this can be `None`. + +**Raises** + +**NotImplementedError** – if the backend doesn’t support querying the qubit properties + +### run + + + +`run(run_input, **options)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L306-L365 "view source code") + +Run on the fake backend using a simulator. + +This method runs circuit jobs (an individual or a list of QuantumCircuit ) and pulse jobs (an individual or a list of Schedule or ScheduleBlock) using BasicAer simulator/ BasicSimulator or Aer simulator and returns a `Job` object. + +If qiskit-aer is installed, jobs will be run using AerSimulator with noise model of the fake backend. Otherwise, jobs will be run using BasicAer simulator/ BasicSimulator simulator without noise. + +Currently noisy simulation of a pulse job is not supported yet in FakeBackendV2. + +**Parameters** + +* **run\_input** (*QuantumCircuit or Schedule or ScheduleBlock or list*) – An individual or a list of `QuantumCircuit`, `ScheduleBlock`, or `Schedule` objects to run on the backend. +* **options** – Any kwarg options to pass to the backend for running the config. If a key is also present in the options attribute/object then the expectation is that the value specified will be used instead of what’s set in the options object. + +**Returns** + +The job object for the run + +**Return type** + +Job + +**Raises** + +**QiskitError** – If a pulse job is supplied and qiskit-aer is not installed. + +### set\_options + + + +`set_options(**fields)` + +Set the options fields for the backend + +This method is used to update the options of a backend. If you need to change any of the options prior to running just pass in the kwarg with the new value for the options. + +**Parameters** + +**fields** – The fields to update the options + +**Raises** + +**AttributeError** – If the field passed in is not part of the options + diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeEssex.md b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeEssex.md index 30b0a3f07d3..27d474074ec 100644 --- a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeEssex.md +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeEssex.md @@ -10,7 +10,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeEssex -`FakeEssex` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/backends/essex/fake_essex.py#L39-L54 "view source code") +`FakeEssex` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/backends/essex/fake_essex.py#L39-L54 "view source code") A fake 5 qubit backend. @@ -107,7 +107,7 @@ str -`properties()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_qasm_backend.py#L44-L48 "view source code") +`properties()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_qasm_backend.py#L44-L48 "view source code") Returns a snapshot of device properties @@ -135,7 +135,7 @@ Provider -`run(run_input, **kwargs)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L545-L574 "view source code") +`run(run_input, **kwargs)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L545-L574 "view source code") Main job in simulator diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeEssexV2.md b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeEssexV2.md index f52d617ba21..cf3d05f88c9 100644 --- a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeEssexV2.md +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeEssexV2.md @@ -10,7 +10,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeEssexV2 -`FakeEssexV2` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/backends/essex/fake_essex.py#L21-L36 "view source code") +`FakeEssexV2` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/backends/essex/fake_essex.py#L21-L36 "view source code") A fake 5 qubit backend. @@ -234,7 +234,7 @@ Version of the backend being provided. This is not the same as `BackendV2.versio -`acquire_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L269-L282 "view source code") +`acquire_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L269-L282 "view source code") Return the acquisition channel for the given qubit. @@ -252,7 +252,7 @@ AcquireChannel -`control_channel(qubits)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L284-L304 "view source code") +`control_channel(qubits)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L284-L304 "view source code") Return the secondary drive channel for the given qubit @@ -276,7 +276,7 @@ List\[ControlChannel] -`drive_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L239-L252 "view source code") +`drive_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L239-L252 "view source code") Return the drive channel for the given qubit. @@ -294,7 +294,7 @@ DriveChannel -`measure_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L254-L267 "view source code") +`measure_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L254-L267 "view source code") Return the measure stimulus channel for the given qubit. @@ -338,7 +338,7 @@ The `QubitProperties` object for the specified qubit. If a list of qubits is pro -`run(run_input, **options)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L306-L365 "view source code") +`run(run_input, **options)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L306-L365 "view source code") Run on the fake backend using a simulator. diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeGeneva.md b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeGeneva.md index 31d42cf6a34..00632a72829 100644 --- a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeGeneva.md +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeGeneva.md @@ -10,7 +10,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeGeneva -`FakeGeneva` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/backends/geneva/fake_geneva.py#L22-L29 "view source code") +`FakeGeneva` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/backends/geneva/fake_geneva.py#L22-L29 "view source code") A fake 27 qubit backend. @@ -226,7 +226,7 @@ Version of the backend being provided. This is not the same as `BackendV2.versio -`acquire_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L269-L282 "view source code") +`acquire_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L269-L282 "view source code") Return the acquisition channel for the given qubit. @@ -244,7 +244,7 @@ AcquireChannel -`control_channel(qubits)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L284-L304 "view source code") +`control_channel(qubits)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L284-L304 "view source code") Return the secondary drive channel for the given qubit @@ -268,7 +268,7 @@ List\[ControlChannel] -`drive_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L239-L252 "view source code") +`drive_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L239-L252 "view source code") Return the drive channel for the given qubit. @@ -286,7 +286,7 @@ DriveChannel -`measure_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L254-L267 "view source code") +`measure_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L254-L267 "view source code") Return the measure stimulus channel for the given qubit. @@ -330,7 +330,7 @@ The `QubitProperties` object for the specified qubit. If a list of qubits is pro -`run(run_input, **options)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L306-L365 "view source code") +`run(run_input, **options)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L306-L365 "view source code") Run on the fake backend using a simulator. diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeGuadalupe.md b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeGuadalupe.md index 6f3f9192fec..e6d7cb79d3a 100644 --- a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeGuadalupe.md +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeGuadalupe.md @@ -10,7 +10,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeGuadalupe -`FakeGuadalupe` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/backends/guadalupe/fake_guadalupe.py#L32-L39 "view source code") +`FakeGuadalupe` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/backends/guadalupe/fake_guadalupe.py#L32-L39 "view source code") A fake 16 qubit backend. @@ -89,7 +89,7 @@ BackendConfiguration -`defaults()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_pulse_backend.py#L29-L33 "view source code") +`defaults()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_pulse_backend.py#L29-L33 "view source code") Returns a snapshot of device defaults @@ -117,7 +117,7 @@ str -`properties()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_qasm_backend.py#L44-L48 "view source code") +`properties()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_qasm_backend.py#L44-L48 "view source code") Returns a snapshot of device properties @@ -145,7 +145,7 @@ Provider -`run(run_input, **kwargs)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L545-L574 "view source code") +`run(run_input, **kwargs)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L545-L574 "view source code") Main job in simulator diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeGuadalupeV2.md b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeGuadalupeV2.md index 72644571f69..99a13689d68 100644 --- a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeGuadalupeV2.md +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeGuadalupeV2.md @@ -10,7 +10,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeGuadalupeV2 -`FakeGuadalupeV2` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/backends/guadalupe/fake_guadalupe.py#L22-L29 "view source code") +`FakeGuadalupeV2` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/backends/guadalupe/fake_guadalupe.py#L22-L29 "view source code") A fake 16 qubit backend. @@ -226,7 +226,7 @@ Version of the backend being provided. This is not the same as `BackendV2.versio -`acquire_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L269-L282 "view source code") +`acquire_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L269-L282 "view source code") Return the acquisition channel for the given qubit. @@ -244,7 +244,7 @@ AcquireChannel -`control_channel(qubits)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L284-L304 "view source code") +`control_channel(qubits)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L284-L304 "view source code") Return the secondary drive channel for the given qubit @@ -268,7 +268,7 @@ List\[ControlChannel] -`drive_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L239-L252 "view source code") +`drive_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L239-L252 "view source code") Return the drive channel for the given qubit. @@ -286,7 +286,7 @@ DriveChannel -`measure_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L254-L267 "view source code") +`measure_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L254-L267 "view source code") Return the measure stimulus channel for the given qubit. @@ -330,7 +330,7 @@ The `QubitProperties` object for the specified qubit. If a list of qubits is pro -`run(run_input, **options)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L306-L365 "view source code") +`run(run_input, **options)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L306-L365 "view source code") Run on the fake backend using a simulator. diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeHanoi.md b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeHanoi.md index 39ddd171695..7ec9d2ebe60 100644 --- a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeHanoi.md +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeHanoi.md @@ -10,7 +10,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeHanoi -`FakeHanoi` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/backends/hanoi/fake_hanoi.py#L31-L38 "view source code") +`FakeHanoi` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/backends/hanoi/fake_hanoi.py#L31-L38 "view source code") A fake 27 qubit backend. @@ -89,7 +89,7 @@ BackendConfiguration -`defaults()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_pulse_backend.py#L29-L33 "view source code") +`defaults()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_pulse_backend.py#L29-L33 "view source code") Returns a snapshot of device defaults @@ -117,7 +117,7 @@ str -`properties()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_qasm_backend.py#L44-L48 "view source code") +`properties()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_qasm_backend.py#L44-L48 "view source code") Returns a snapshot of device properties @@ -145,7 +145,7 @@ Provider -`run(run_input, **kwargs)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L545-L574 "view source code") +`run(run_input, **kwargs)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L545-L574 "view source code") Main job in simulator diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeHanoiV2.md b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeHanoiV2.md index fa54d705a5f..9555bf96f5a 100644 --- a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeHanoiV2.md +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeHanoiV2.md @@ -10,7 +10,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeHanoiV2 -`FakeHanoiV2` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/backends/hanoi/fake_hanoi.py#L21-L28 "view source code") +`FakeHanoiV2` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/backends/hanoi/fake_hanoi.py#L21-L28 "view source code") A fake 27 qubit backend. @@ -226,7 +226,7 @@ Version of the backend being provided. This is not the same as `BackendV2.versio -`acquire_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L269-L282 "view source code") +`acquire_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L269-L282 "view source code") Return the acquisition channel for the given qubit. @@ -244,7 +244,7 @@ AcquireChannel -`control_channel(qubits)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L284-L304 "view source code") +`control_channel(qubits)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L284-L304 "view source code") Return the secondary drive channel for the given qubit @@ -268,7 +268,7 @@ List\[ControlChannel] -`drive_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L239-L252 "view source code") +`drive_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L239-L252 "view source code") Return the drive channel for the given qubit. @@ -286,7 +286,7 @@ DriveChannel -`measure_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L254-L267 "view source code") +`measure_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L254-L267 "view source code") Return the measure stimulus channel for the given qubit. @@ -330,7 +330,7 @@ The `QubitProperties` object for the specified qubit. If a list of qubits is pro -`run(run_input, **options)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L306-L365 "view source code") +`run(run_input, **options)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L306-L365 "view source code") Run on the fake backend using a simulator. diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeJakarta.md b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeJakarta.md index f4938e2b9aa..4c24a215b76 100644 --- a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeJakarta.md +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeJakarta.md @@ -10,7 +10,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeJakarta -`FakeJakarta` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/backends/jakarta/fake_jakarta.py#L31-L38 "view source code") +`FakeJakarta` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/backends/jakarta/fake_jakarta.py#L31-L38 "view source code") A fake 7 qubit backend. @@ -89,7 +89,7 @@ BackendConfiguration -`defaults()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_pulse_backend.py#L29-L33 "view source code") +`defaults()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_pulse_backend.py#L29-L33 "view source code") Returns a snapshot of device defaults @@ -117,7 +117,7 @@ str -`properties()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_qasm_backend.py#L44-L48 "view source code") +`properties()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_qasm_backend.py#L44-L48 "view source code") Returns a snapshot of device properties @@ -145,7 +145,7 @@ Provider -`run(run_input, **kwargs)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L545-L574 "view source code") +`run(run_input, **kwargs)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L545-L574 "view source code") Main job in simulator diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeJakartaV2.md b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeJakartaV2.md index 1d3cbbab0a7..ac279c7be30 100644 --- a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeJakartaV2.md +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeJakartaV2.md @@ -10,7 +10,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeJakartaV2 -`FakeJakartaV2` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/backends/jakarta/fake_jakarta.py#L21-L28 "view source code") +`FakeJakartaV2` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/backends/jakarta/fake_jakarta.py#L21-L28 "view source code") A fake 7 qubit V2 backend. @@ -226,7 +226,7 @@ Version of the backend being provided. This is not the same as `BackendV2.versio -`acquire_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L269-L282 "view source code") +`acquire_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L269-L282 "view source code") Return the acquisition channel for the given qubit. @@ -244,7 +244,7 @@ AcquireChannel -`control_channel(qubits)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L284-L304 "view source code") +`control_channel(qubits)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L284-L304 "view source code") Return the secondary drive channel for the given qubit @@ -268,7 +268,7 @@ List\[ControlChannel] -`drive_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L239-L252 "view source code") +`drive_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L239-L252 "view source code") Return the drive channel for the given qubit. @@ -286,7 +286,7 @@ DriveChannel -`measure_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L254-L267 "view source code") +`measure_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L254-L267 "view source code") Return the measure stimulus channel for the given qubit. @@ -330,7 +330,7 @@ The `QubitProperties` object for the specified qubit. If a list of qubits is pro -`run(run_input, **options)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L306-L365 "view source code") +`run(run_input, **options)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L306-L365 "view source code") Run on the fake backend using a simulator. diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeJohannesburg.md b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeJohannesburg.md index 8c18616c24d..5c396df9d86 100644 --- a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeJohannesburg.md +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeJohannesburg.md @@ -10,7 +10,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeJohannesburg -`FakeJohannesburg` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/backends/johannesburg/fake_johannesburg.py#L41-L58 "view source code") +`FakeJohannesburg` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/backends/johannesburg/fake_johannesburg.py#L41-L58 "view source code") A fake Johannesburg backend. @@ -109,7 +109,7 @@ str -`properties()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_qasm_backend.py#L44-L48 "view source code") +`properties()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_qasm_backend.py#L44-L48 "view source code") Returns a snapshot of device properties @@ -137,7 +137,7 @@ Provider -`run(run_input, **kwargs)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L545-L574 "view source code") +`run(run_input, **kwargs)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L545-L574 "view source code") Main job in simulator diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeJohannesburgV2.md b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeJohannesburgV2.md index 1dca3811fe0..b5b1dadd057 100644 --- a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeJohannesburgV2.md +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeJohannesburgV2.md @@ -10,7 +10,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeJohannesburgV2 -`FakeJohannesburgV2` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/backends/johannesburg/fake_johannesburg.py#L21-L38 "view source code") +`FakeJohannesburgV2` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/backends/johannesburg/fake_johannesburg.py#L21-L38 "view source code") A fake Johannesburg V2 backend. @@ -236,7 +236,7 @@ Version of the backend being provided. This is not the same as `BackendV2.versio -`acquire_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L269-L282 "view source code") +`acquire_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L269-L282 "view source code") Return the acquisition channel for the given qubit. @@ -254,7 +254,7 @@ AcquireChannel -`control_channel(qubits)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L284-L304 "view source code") +`control_channel(qubits)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L284-L304 "view source code") Return the secondary drive channel for the given qubit @@ -278,7 +278,7 @@ List\[ControlChannel] -`drive_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L239-L252 "view source code") +`drive_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L239-L252 "view source code") Return the drive channel for the given qubit. @@ -296,7 +296,7 @@ DriveChannel -`measure_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L254-L267 "view source code") +`measure_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L254-L267 "view source code") Return the measure stimulus channel for the given qubit. @@ -340,7 +340,7 @@ The `QubitProperties` object for the specified qubit. If a list of qubits is pro -`run(run_input, **options)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L306-L365 "view source code") +`run(run_input, **options)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L306-L365 "view source code") Run on the fake backend using a simulator. diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeKawasaki.md b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeKawasaki.md new file mode 100644 index 00000000000..57f5817b607 --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeKawasaki.md @@ -0,0 +1,377 @@ +--- +title: FakeKawasaki +description: API reference for qiskit_ibm_runtime.fake_provider.FakeKawasaki +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.fake_provider.FakeKawasaki +--- + +# FakeKawasaki + + + +`FakeKawasaki` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/backends/kawasaki/fake_kawasaki.py#L21-L28 "view source code") + +A fake 127 qubit backend. + +FakeBackendV2 initializer. + +## Attributes + + + +### backend\_name + +`= 'fake_kawasaki'` + + + +### conf\_filename + +`= 'conf_kawasaki.json'` + + + +### coupling\_map + +Return the `CouplingMap` object + + + +### defs\_filename + +`= 'defs_kawasaki.json'` + + + +### dirname + +`= '/home/runner/work/qiskit-ibm-runtime/qiskit-ibm-runtime/qiskit_ibm_runtime/fake_provider/backends/kawasaki'` + + + +### dt + +Return the system time resolution of input signals + +This is required to be implemented if the backend supports Pulse scheduling. + +**Return type** + +`Optional`\[`float`] + +**Returns** + +The input signal timestep in seconds. If the backend doesn’t define `dt`, `None` will be returned. + + + +### dtm + +Return the system time resolution of output signals + +**Return type** + +`float` + +**Returns** + +The output signal timestep in seconds. + + + +### instruction\_durations + +Return the `InstructionDurations` object. + + + +### instruction\_schedule\_map + +Return the `InstructionScheduleMap` for the instructions defined in this backend’s target. + + + +### instructions + +A list of Instruction tuples on the backend of the form `(instruction, (qubits)` + +**Return type** + +`List`\[`Tuple`\[`Instruction`, `Tuple`\[`int`]]] + + + +### max\_circuits + +**Return type** + +`None` + + + +### meas\_map + +Return the grouping of measurements which are multiplexed This is required to be implemented if the backend supports Pulse scheduling. + +**Return type** + +`List`\[`List`\[`int`]] + +**Returns** + +The grouping of measurements which are multiplexed + + + +### num\_qubits + +Return the number of qubits the backend has. + +**Return type** + +`int` + + + +### operation\_names + +A list of instruction names that the backend supports. + +**Return type** + +`List`\[`str`] + + + +### operations + +A list of `Instruction` instances that the backend supports. + +**Return type** + +`List`\[`Instruction`] + + + +### options + +Return the options for the backend + +The options of a backend are the dynamic parameters defining how the backend is used. These are used to control the [`run()`](#qiskit_ibm_runtime.fake_provider.FakeKawasaki.run "qiskit_ibm_runtime.fake_provider.FakeKawasaki.run") method. + + + +### props\_filename + +`= 'props_kawasaki.json'` + + + +### provider + +Return the backend Provider. + +**Returns** + +the Provider responsible for the backend. + +**Return type** + +Provider + + + +### target + +A `qiskit.transpiler.Target` object for the backend. + +**Return type** + +Target + + + +### version + +`= 2` + + + +### name + +Name of the backend. + + + +### description + +Optional human-readable description. + + + +### online\_date + +Date that the backend came online. + + + +### backend\_version + +Version of the backend being provided. This is not the same as `BackendV2.version`, which is the version of the `Backend` abstract interface. + +## Methods + +### acquire\_channel + + + +`acquire_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L269-L282 "view source code") + +Return the acquisition channel for the given qubit. + +This is required to be implemented if the backend supports Pulse scheduling. + +**Returns** + +The Qubit measurement acquisition line. + +**Return type** + +AcquireChannel + +### control\_channel + + + +`control_channel(qubits)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L284-L304 "view source code") + +Return the secondary drive channel for the given qubit + +This is typically utilized for controlling multiqubit interactions. This channel is derived from other channels. + +This is required to be implemented if the backend supports Pulse scheduling. + +**Parameters** + +**qubits** (`Iterable`\[`int`]) – Tuple or list of qubits of the form `(control_qubit, target_qubit)`. + +**Returns** + +The multi qubit control line. + +**Return type** + +List\[ControlChannel] + +### drive\_channel + + + +`drive_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L239-L252 "view source code") + +Return the drive channel for the given qubit. + +This is required to be implemented if the backend supports Pulse scheduling. + +**Returns** + +The Qubit drive channel + +**Return type** + +DriveChannel + +### measure\_channel + + + +`measure_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L254-L267 "view source code") + +Return the measure stimulus channel for the given qubit. + +This is required to be implemented if the backend supports Pulse scheduling. + +**Returns** + +The Qubit measurement stimulus line + +**Return type** + +MeasureChannel + +### qubit\_properties + + + +`qubit_properties(qubit)` + +Return QubitProperties for a given qubit. + +If there are no defined or the backend doesn’t support querying these details this method does not need to be implemented. + +**Parameters** + +**qubit** (`Union`\[`int`, `List`\[`int`]]) – The qubit to get the `QubitProperties` object for. This can be a single integer for 1 qubit or a list of qubits and a list of `QubitProperties` objects will be returned in the same order + +**Return type** + +`Union`\[`QubitProperties`, `List`\[`QubitProperties`]] + +**Returns** + +The `QubitProperties` object for the specified qubit. If a list of qubits is provided a list will be returned. If properties are missing for a qubit this can be `None`. + +**Raises** + +**NotImplementedError** – if the backend doesn’t support querying the qubit properties + +### run + + + +`run(run_input, **options)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L306-L365 "view source code") + +Run on the fake backend using a simulator. + +This method runs circuit jobs (an individual or a list of QuantumCircuit ) and pulse jobs (an individual or a list of Schedule or ScheduleBlock) using BasicAer simulator/ BasicSimulator or Aer simulator and returns a `Job` object. + +If qiskit-aer is installed, jobs will be run using AerSimulator with noise model of the fake backend. Otherwise, jobs will be run using BasicAer simulator/ BasicSimulator simulator without noise. + +Currently noisy simulation of a pulse job is not supported yet in FakeBackendV2. + +**Parameters** + +* **run\_input** (*QuantumCircuit or Schedule or ScheduleBlock or list*) – An individual or a list of `QuantumCircuit`, `ScheduleBlock`, or `Schedule` objects to run on the backend. +* **options** – Any kwarg options to pass to the backend for running the config. If a key is also present in the options attribute/object then the expectation is that the value specified will be used instead of what’s set in the options object. + +**Returns** + +The job object for the run + +**Return type** + +Job + +**Raises** + +**QiskitError** – If a pulse job is supplied and qiskit-aer is not installed. + +### set\_options + + + +`set_options(**fields)` + +Set the options fields for the backend + +This method is used to update the options of a backend. If you need to change any of the options prior to running just pass in the kwarg with the new value for the options. + +**Parameters** + +**fields** – The fields to update the options + +**Raises** + +**AttributeError** – If the field passed in is not part of the options + diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeKolkata.md b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeKolkata.md index 73b259a39dc..c417c1f5565 100644 --- a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeKolkata.md +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeKolkata.md @@ -10,7 +10,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeKolkata -`FakeKolkata` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/backends/kolkata/fake_kolkata.py#L31-L38 "view source code") +`FakeKolkata` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/backends/kolkata/fake_kolkata.py#L31-L38 "view source code") A fake 27 qubit backend. @@ -89,7 +89,7 @@ BackendConfiguration -`defaults()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_pulse_backend.py#L29-L33 "view source code") +`defaults()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_pulse_backend.py#L29-L33 "view source code") Returns a snapshot of device defaults @@ -117,7 +117,7 @@ str -`properties()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_qasm_backend.py#L44-L48 "view source code") +`properties()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_qasm_backend.py#L44-L48 "view source code") Returns a snapshot of device properties @@ -145,7 +145,7 @@ Provider -`run(run_input, **kwargs)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L545-L574 "view source code") +`run(run_input, **kwargs)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L545-L574 "view source code") Main job in simulator diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeKolkataV2.md b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeKolkataV2.md index ee3920cf960..9209204188e 100644 --- a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeKolkataV2.md +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeKolkataV2.md @@ -10,7 +10,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeKolkataV2 -`FakeKolkataV2` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/backends/kolkata/fake_kolkata.py#L21-L28 "view source code") +`FakeKolkataV2` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/backends/kolkata/fake_kolkata.py#L21-L28 "view source code") A fake 27 qubit backend. @@ -226,7 +226,7 @@ Version of the backend being provided. This is not the same as `BackendV2.versio -`acquire_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L269-L282 "view source code") +`acquire_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L269-L282 "view source code") Return the acquisition channel for the given qubit. @@ -244,7 +244,7 @@ AcquireChannel -`control_channel(qubits)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L284-L304 "view source code") +`control_channel(qubits)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L284-L304 "view source code") Return the secondary drive channel for the given qubit @@ -268,7 +268,7 @@ List\[ControlChannel] -`drive_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L239-L252 "view source code") +`drive_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L239-L252 "view source code") Return the drive channel for the given qubit. @@ -286,7 +286,7 @@ DriveChannel -`measure_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L254-L267 "view source code") +`measure_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L254-L267 "view source code") Return the measure stimulus channel for the given qubit. @@ -330,7 +330,7 @@ The `QubitProperties` object for the specified qubit. If a list of qubits is pro -`run(run_input, **options)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L306-L365 "view source code") +`run(run_input, **options)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L306-L365 "view source code") Run on the fake backend using a simulator. diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeKyiv.md b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeKyiv.md new file mode 100644 index 00000000000..5aa84559225 --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeKyiv.md @@ -0,0 +1,377 @@ +--- +title: FakeKyiv +description: API reference for qiskit_ibm_runtime.fake_provider.FakeKyiv +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.fake_provider.FakeKyiv +--- + +# FakeKyiv + + + +`FakeKyiv` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/backends/kyiv/fake_kyiv.py#L21-L28 "view source code") + +A fake 127 qubit backend. + +FakeBackendV2 initializer. + +## Attributes + + + +### backend\_name + +`= 'fake_kyiv'` + + + +### conf\_filename + +`= 'conf_kyiv.json'` + + + +### coupling\_map + +Return the `CouplingMap` object + + + +### defs\_filename + +`= 'defs_kyiv.json'` + + + +### dirname + +`= '/home/runner/work/qiskit-ibm-runtime/qiskit-ibm-runtime/qiskit_ibm_runtime/fake_provider/backends/kyiv'` + + + +### dt + +Return the system time resolution of input signals + +This is required to be implemented if the backend supports Pulse scheduling. + +**Return type** + +`Optional`\[`float`] + +**Returns** + +The input signal timestep in seconds. If the backend doesn’t define `dt`, `None` will be returned. + + + +### dtm + +Return the system time resolution of output signals + +**Return type** + +`float` + +**Returns** + +The output signal timestep in seconds. + + + +### instruction\_durations + +Return the `InstructionDurations` object. + + + +### instruction\_schedule\_map + +Return the `InstructionScheduleMap` for the instructions defined in this backend’s target. + + + +### instructions + +A list of Instruction tuples on the backend of the form `(instruction, (qubits)` + +**Return type** + +`List`\[`Tuple`\[`Instruction`, `Tuple`\[`int`]]] + + + +### max\_circuits + +**Return type** + +`None` + + + +### meas\_map + +Return the grouping of measurements which are multiplexed This is required to be implemented if the backend supports Pulse scheduling. + +**Return type** + +`List`\[`List`\[`int`]] + +**Returns** + +The grouping of measurements which are multiplexed + + + +### num\_qubits + +Return the number of qubits the backend has. + +**Return type** + +`int` + + + +### operation\_names + +A list of instruction names that the backend supports. + +**Return type** + +`List`\[`str`] + + + +### operations + +A list of `Instruction` instances that the backend supports. + +**Return type** + +`List`\[`Instruction`] + + + +### options + +Return the options for the backend + +The options of a backend are the dynamic parameters defining how the backend is used. These are used to control the [`run()`](#qiskit_ibm_runtime.fake_provider.FakeKyiv.run "qiskit_ibm_runtime.fake_provider.FakeKyiv.run") method. + + + +### props\_filename + +`= 'props_kyiv.json'` + + + +### provider + +Return the backend Provider. + +**Returns** + +the Provider responsible for the backend. + +**Return type** + +Provider + + + +### target + +A `qiskit.transpiler.Target` object for the backend. + +**Return type** + +Target + + + +### version + +`= 2` + + + +### name + +Name of the backend. + + + +### description + +Optional human-readable description. + + + +### online\_date + +Date that the backend came online. + + + +### backend\_version + +Version of the backend being provided. This is not the same as `BackendV2.version`, which is the version of the `Backend` abstract interface. + +## Methods + +### acquire\_channel + + + +`acquire_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L269-L282 "view source code") + +Return the acquisition channel for the given qubit. + +This is required to be implemented if the backend supports Pulse scheduling. + +**Returns** + +The Qubit measurement acquisition line. + +**Return type** + +AcquireChannel + +### control\_channel + + + +`control_channel(qubits)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L284-L304 "view source code") + +Return the secondary drive channel for the given qubit + +This is typically utilized for controlling multiqubit interactions. This channel is derived from other channels. + +This is required to be implemented if the backend supports Pulse scheduling. + +**Parameters** + +**qubits** (`Iterable`\[`int`]) – Tuple or list of qubits of the form `(control_qubit, target_qubit)`. + +**Returns** + +The multi qubit control line. + +**Return type** + +List\[ControlChannel] + +### drive\_channel + + + +`drive_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L239-L252 "view source code") + +Return the drive channel for the given qubit. + +This is required to be implemented if the backend supports Pulse scheduling. + +**Returns** + +The Qubit drive channel + +**Return type** + +DriveChannel + +### measure\_channel + + + +`measure_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L254-L267 "view source code") + +Return the measure stimulus channel for the given qubit. + +This is required to be implemented if the backend supports Pulse scheduling. + +**Returns** + +The Qubit measurement stimulus line + +**Return type** + +MeasureChannel + +### qubit\_properties + + + +`qubit_properties(qubit)` + +Return QubitProperties for a given qubit. + +If there are no defined or the backend doesn’t support querying these details this method does not need to be implemented. + +**Parameters** + +**qubit** (`Union`\[`int`, `List`\[`int`]]) – The qubit to get the `QubitProperties` object for. This can be a single integer for 1 qubit or a list of qubits and a list of `QubitProperties` objects will be returned in the same order + +**Return type** + +`Union`\[`QubitProperties`, `List`\[`QubitProperties`]] + +**Returns** + +The `QubitProperties` object for the specified qubit. If a list of qubits is provided a list will be returned. If properties are missing for a qubit this can be `None`. + +**Raises** + +**NotImplementedError** – if the backend doesn’t support querying the qubit properties + +### run + + + +`run(run_input, **options)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L306-L365 "view source code") + +Run on the fake backend using a simulator. + +This method runs circuit jobs (an individual or a list of QuantumCircuit ) and pulse jobs (an individual or a list of Schedule or ScheduleBlock) using BasicAer simulator/ BasicSimulator or Aer simulator and returns a `Job` object. + +If qiskit-aer is installed, jobs will be run using AerSimulator with noise model of the fake backend. Otherwise, jobs will be run using BasicAer simulator/ BasicSimulator simulator without noise. + +Currently noisy simulation of a pulse job is not supported yet in FakeBackendV2. + +**Parameters** + +* **run\_input** (*QuantumCircuit or Schedule or ScheduleBlock or list*) – An individual or a list of `QuantumCircuit`, `ScheduleBlock`, or `Schedule` objects to run on the backend. +* **options** – Any kwarg options to pass to the backend for running the config. If a key is also present in the options attribute/object then the expectation is that the value specified will be used instead of what’s set in the options object. + +**Returns** + +The job object for the run + +**Return type** + +Job + +**Raises** + +**QiskitError** – If a pulse job is supplied and qiskit-aer is not installed. + +### set\_options + + + +`set_options(**fields)` + +Set the options fields for the backend + +This method is used to update the options of a backend. If you need to change any of the options prior to running just pass in the kwarg with the new value for the options. + +**Parameters** + +**fields** – The fields to update the options + +**Raises** + +**AttributeError** – If the field passed in is not part of the options + diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeKyoto.md b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeKyoto.md new file mode 100644 index 00000000000..2e502fa880c --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeKyoto.md @@ -0,0 +1,377 @@ +--- +title: FakeKyoto +description: API reference for qiskit_ibm_runtime.fake_provider.FakeKyoto +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.fake_provider.FakeKyoto +--- + +# FakeKyoto + + + +`FakeKyoto` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/backends/kyoto/fake_kyoto.py#L21-L28 "view source code") + +A fake 127 qubit backend. + +FakeBackendV2 initializer. + +## Attributes + + + +### backend\_name + +`= 'fake_kyoto'` + + + +### conf\_filename + +`= 'conf_kyoto.json'` + + + +### coupling\_map + +Return the `CouplingMap` object + + + +### defs\_filename + +`= 'defs_kyoto.json'` + + + +### dirname + +`= '/home/runner/work/qiskit-ibm-runtime/qiskit-ibm-runtime/qiskit_ibm_runtime/fake_provider/backends/kyoto'` + + + +### dt + +Return the system time resolution of input signals + +This is required to be implemented if the backend supports Pulse scheduling. + +**Return type** + +`Optional`\[`float`] + +**Returns** + +The input signal timestep in seconds. If the backend doesn’t define `dt`, `None` will be returned. + + + +### dtm + +Return the system time resolution of output signals + +**Return type** + +`float` + +**Returns** + +The output signal timestep in seconds. + + + +### instruction\_durations + +Return the `InstructionDurations` object. + + + +### instruction\_schedule\_map + +Return the `InstructionScheduleMap` for the instructions defined in this backend’s target. + + + +### instructions + +A list of Instruction tuples on the backend of the form `(instruction, (qubits)` + +**Return type** + +`List`\[`Tuple`\[`Instruction`, `Tuple`\[`int`]]] + + + +### max\_circuits + +**Return type** + +`None` + + + +### meas\_map + +Return the grouping of measurements which are multiplexed This is required to be implemented if the backend supports Pulse scheduling. + +**Return type** + +`List`\[`List`\[`int`]] + +**Returns** + +The grouping of measurements which are multiplexed + + + +### num\_qubits + +Return the number of qubits the backend has. + +**Return type** + +`int` + + + +### operation\_names + +A list of instruction names that the backend supports. + +**Return type** + +`List`\[`str`] + + + +### operations + +A list of `Instruction` instances that the backend supports. + +**Return type** + +`List`\[`Instruction`] + + + +### options + +Return the options for the backend + +The options of a backend are the dynamic parameters defining how the backend is used. These are used to control the [`run()`](#qiskit_ibm_runtime.fake_provider.FakeKyoto.run "qiskit_ibm_runtime.fake_provider.FakeKyoto.run") method. + + + +### props\_filename + +`= 'props_kyoto.json'` + + + +### provider + +Return the backend Provider. + +**Returns** + +the Provider responsible for the backend. + +**Return type** + +Provider + + + +### target + +A `qiskit.transpiler.Target` object for the backend. + +**Return type** + +Target + + + +### version + +`= 2` + + + +### name + +Name of the backend. + + + +### description + +Optional human-readable description. + + + +### online\_date + +Date that the backend came online. + + + +### backend\_version + +Version of the backend being provided. This is not the same as `BackendV2.version`, which is the version of the `Backend` abstract interface. + +## Methods + +### acquire\_channel + + + +`acquire_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L269-L282 "view source code") + +Return the acquisition channel for the given qubit. + +This is required to be implemented if the backend supports Pulse scheduling. + +**Returns** + +The Qubit measurement acquisition line. + +**Return type** + +AcquireChannel + +### control\_channel + + + +`control_channel(qubits)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L284-L304 "view source code") + +Return the secondary drive channel for the given qubit + +This is typically utilized for controlling multiqubit interactions. This channel is derived from other channels. + +This is required to be implemented if the backend supports Pulse scheduling. + +**Parameters** + +**qubits** (`Iterable`\[`int`]) – Tuple or list of qubits of the form `(control_qubit, target_qubit)`. + +**Returns** + +The multi qubit control line. + +**Return type** + +List\[ControlChannel] + +### drive\_channel + + + +`drive_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L239-L252 "view source code") + +Return the drive channel for the given qubit. + +This is required to be implemented if the backend supports Pulse scheduling. + +**Returns** + +The Qubit drive channel + +**Return type** + +DriveChannel + +### measure\_channel + + + +`measure_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L254-L267 "view source code") + +Return the measure stimulus channel for the given qubit. + +This is required to be implemented if the backend supports Pulse scheduling. + +**Returns** + +The Qubit measurement stimulus line + +**Return type** + +MeasureChannel + +### qubit\_properties + + + +`qubit_properties(qubit)` + +Return QubitProperties for a given qubit. + +If there are no defined or the backend doesn’t support querying these details this method does not need to be implemented. + +**Parameters** + +**qubit** (`Union`\[`int`, `List`\[`int`]]) – The qubit to get the `QubitProperties` object for. This can be a single integer for 1 qubit or a list of qubits and a list of `QubitProperties` objects will be returned in the same order + +**Return type** + +`Union`\[`QubitProperties`, `List`\[`QubitProperties`]] + +**Returns** + +The `QubitProperties` object for the specified qubit. If a list of qubits is provided a list will be returned. If properties are missing for a qubit this can be `None`. + +**Raises** + +**NotImplementedError** – if the backend doesn’t support querying the qubit properties + +### run + + + +`run(run_input, **options)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L306-L365 "view source code") + +Run on the fake backend using a simulator. + +This method runs circuit jobs (an individual or a list of QuantumCircuit ) and pulse jobs (an individual or a list of Schedule or ScheduleBlock) using BasicAer simulator/ BasicSimulator or Aer simulator and returns a `Job` object. + +If qiskit-aer is installed, jobs will be run using AerSimulator with noise model of the fake backend. Otherwise, jobs will be run using BasicAer simulator/ BasicSimulator simulator without noise. + +Currently noisy simulation of a pulse job is not supported yet in FakeBackendV2. + +**Parameters** + +* **run\_input** (*QuantumCircuit or Schedule or ScheduleBlock or list*) – An individual or a list of `QuantumCircuit`, `ScheduleBlock`, or `Schedule` objects to run on the backend. +* **options** – Any kwarg options to pass to the backend for running the config. If a key is also present in the options attribute/object then the expectation is that the value specified will be used instead of what’s set in the options object. + +**Returns** + +The job object for the run + +**Return type** + +Job + +**Raises** + +**QiskitError** – If a pulse job is supplied and qiskit-aer is not installed. + +### set\_options + + + +`set_options(**fields)` + +Set the options fields for the backend + +This method is used to update the options of a backend. If you need to change any of the options prior to running just pass in the kwarg with the new value for the options. + +**Parameters** + +**fields** – The fields to update the options + +**Raises** + +**AttributeError** – If the field passed in is not part of the options + diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeLagos.md b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeLagos.md index 18966c99e3e..a22813730c1 100644 --- a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeLagos.md +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeLagos.md @@ -10,7 +10,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeLagos -`FakeLagos` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/backends/lagos/fake_lagos.py#L31-L38 "view source code") +`FakeLagos` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/backends/lagos/fake_lagos.py#L31-L38 "view source code") A fake 7 qubit backend. @@ -89,7 +89,7 @@ BackendConfiguration -`defaults()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_pulse_backend.py#L29-L33 "view source code") +`defaults()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_pulse_backend.py#L29-L33 "view source code") Returns a snapshot of device defaults @@ -117,7 +117,7 @@ str -`properties()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_qasm_backend.py#L44-L48 "view source code") +`properties()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_qasm_backend.py#L44-L48 "view source code") Returns a snapshot of device properties @@ -145,7 +145,7 @@ Provider -`run(run_input, **kwargs)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L545-L574 "view source code") +`run(run_input, **kwargs)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L545-L574 "view source code") Main job in simulator diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeLagosV2.md b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeLagosV2.md index c921bb30bd5..917a12c4e19 100644 --- a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeLagosV2.md +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeLagosV2.md @@ -10,7 +10,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeLagosV2 -`FakeLagosV2` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/backends/lagos/fake_lagos.py#L21-L28 "view source code") +`FakeLagosV2` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/backends/lagos/fake_lagos.py#L21-L28 "view source code") A fake 7 qubit backend. @@ -226,7 +226,7 @@ Version of the backend being provided. This is not the same as `BackendV2.versio -`acquire_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L269-L282 "view source code") +`acquire_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L269-L282 "view source code") Return the acquisition channel for the given qubit. @@ -244,7 +244,7 @@ AcquireChannel -`control_channel(qubits)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L284-L304 "view source code") +`control_channel(qubits)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L284-L304 "view source code") Return the secondary drive channel for the given qubit @@ -268,7 +268,7 @@ List\[ControlChannel] -`drive_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L239-L252 "view source code") +`drive_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L239-L252 "view source code") Return the drive channel for the given qubit. @@ -286,7 +286,7 @@ DriveChannel -`measure_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L254-L267 "view source code") +`measure_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L254-L267 "view source code") Return the measure stimulus channel for the given qubit. @@ -330,7 +330,7 @@ The `QubitProperties` object for the specified qubit. If a list of qubits is pro -`run(run_input, **options)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L306-L365 "view source code") +`run(run_input, **options)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L306-L365 "view source code") Run on the fake backend using a simulator. diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeLima.md b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeLima.md index 7c0cf92b666..2834461ccc4 100644 --- a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeLima.md +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeLima.md @@ -10,7 +10,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeLima -`FakeLima` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/backends/lima/fake_lima.py#L31-L38 "view source code") +`FakeLima` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/backends/lima/fake_lima.py#L31-L38 "view source code") A fake 5 qubit backend. @@ -89,7 +89,7 @@ BackendConfiguration -`defaults()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_pulse_backend.py#L29-L33 "view source code") +`defaults()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_pulse_backend.py#L29-L33 "view source code") Returns a snapshot of device defaults @@ -117,7 +117,7 @@ str -`properties()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_qasm_backend.py#L44-L48 "view source code") +`properties()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_qasm_backend.py#L44-L48 "view source code") Returns a snapshot of device properties @@ -145,7 +145,7 @@ Provider -`run(run_input, **kwargs)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L545-L574 "view source code") +`run(run_input, **kwargs)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L545-L574 "view source code") Main job in simulator diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeLimaV2.md b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeLimaV2.md index 5a20d6a5ee2..52f7ac1f34f 100644 --- a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeLimaV2.md +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeLimaV2.md @@ -10,7 +10,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeLimaV2 -`FakeLimaV2` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/backends/lima/fake_lima.py#L21-L28 "view source code") +`FakeLimaV2` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/backends/lima/fake_lima.py#L21-L28 "view source code") A fake 5 qubit backend. @@ -226,7 +226,7 @@ Version of the backend being provided. This is not the same as `BackendV2.versio -`acquire_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L269-L282 "view source code") +`acquire_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L269-L282 "view source code") Return the acquisition channel for the given qubit. @@ -244,7 +244,7 @@ AcquireChannel -`control_channel(qubits)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L284-L304 "view source code") +`control_channel(qubits)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L284-L304 "view source code") Return the secondary drive channel for the given qubit @@ -268,7 +268,7 @@ List\[ControlChannel] -`drive_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L239-L252 "view source code") +`drive_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L239-L252 "view source code") Return the drive channel for the given qubit. @@ -286,7 +286,7 @@ DriveChannel -`measure_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L254-L267 "view source code") +`measure_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L254-L267 "view source code") Return the measure stimulus channel for the given qubit. @@ -330,7 +330,7 @@ The `QubitProperties` object for the specified qubit. If a list of qubits is pro -`run(run_input, **options)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L306-L365 "view source code") +`run(run_input, **options)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L306-L365 "view source code") Run on the fake backend using a simulator. diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeLondon.md b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeLondon.md index edf701d6351..d4f8a2cfd44 100644 --- a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeLondon.md +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeLondon.md @@ -10,7 +10,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeLondon -`FakeLondon` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/backends/london/fake_london.py#L39-L54 "view source code") +`FakeLondon` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/backends/london/fake_london.py#L39-L54 "view source code") A fake 5 qubit backend. @@ -107,7 +107,7 @@ str -`properties()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_qasm_backend.py#L44-L48 "view source code") +`properties()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_qasm_backend.py#L44-L48 "view source code") Returns a snapshot of device properties @@ -135,7 +135,7 @@ Provider -`run(run_input, **kwargs)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L545-L574 "view source code") +`run(run_input, **kwargs)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L545-L574 "view source code") Main job in simulator diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeLondonV2.md b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeLondonV2.md index 2a77cc4075c..b80e5a3c6b0 100644 --- a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeLondonV2.md +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeLondonV2.md @@ -10,7 +10,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeLondonV2 -`FakeLondonV2` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/backends/london/fake_london.py#L21-L36 "view source code") +`FakeLondonV2` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/backends/london/fake_london.py#L21-L36 "view source code") A fake 5 qubit backend. @@ -234,7 +234,7 @@ Version of the backend being provided. This is not the same as `BackendV2.versio -`acquire_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L269-L282 "view source code") +`acquire_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L269-L282 "view source code") Return the acquisition channel for the given qubit. @@ -252,7 +252,7 @@ AcquireChannel -`control_channel(qubits)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L284-L304 "view source code") +`control_channel(qubits)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L284-L304 "view source code") Return the secondary drive channel for the given qubit @@ -276,7 +276,7 @@ List\[ControlChannel] -`drive_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L239-L252 "view source code") +`drive_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L239-L252 "view source code") Return the drive channel for the given qubit. @@ -294,7 +294,7 @@ DriveChannel -`measure_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L254-L267 "view source code") +`measure_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L254-L267 "view source code") Return the measure stimulus channel for the given qubit. @@ -338,7 +338,7 @@ The `QubitProperties` object for the specified qubit. If a list of qubits is pro -`run(run_input, **options)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L306-L365 "view source code") +`run(run_input, **options)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L306-L365 "view source code") Run on the fake backend using a simulator. diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeManhattan.md b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeManhattan.md index 98b213f38ac..5519a8ef0e8 100644 --- a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeManhattan.md +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeManhattan.md @@ -10,7 +10,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeManhattan -`FakeManhattan` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/backends/manhattan/fake_manhattan.py#L31-L38 "view source code") +`FakeManhattan` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/backends/manhattan/fake_manhattan.py#L31-L38 "view source code") A fake Manhattan backend. @@ -89,7 +89,7 @@ BackendConfiguration -`defaults()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_pulse_backend.py#L29-L33 "view source code") +`defaults()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_pulse_backend.py#L29-L33 "view source code") Returns a snapshot of device defaults @@ -117,7 +117,7 @@ str -`properties()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_qasm_backend.py#L44-L48 "view source code") +`properties()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_qasm_backend.py#L44-L48 "view source code") Returns a snapshot of device properties @@ -145,7 +145,7 @@ Provider -`run(run_input, **kwargs)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L545-L574 "view source code") +`run(run_input, **kwargs)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L545-L574 "view source code") Main job in simulator diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeManhattanV2.md b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeManhattanV2.md index 66e3d53d1af..1e0595bfad0 100644 --- a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeManhattanV2.md +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeManhattanV2.md @@ -10,7 +10,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeManhattanV2 -`FakeManhattanV2` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/backends/manhattan/fake_manhattan.py#L21-L28 "view source code") +`FakeManhattanV2` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/backends/manhattan/fake_manhattan.py#L21-L28 "view source code") A fake Manhattan backend. @@ -226,7 +226,7 @@ Version of the backend being provided. This is not the same as `BackendV2.versio -`acquire_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L269-L282 "view source code") +`acquire_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L269-L282 "view source code") Return the acquisition channel for the given qubit. @@ -244,7 +244,7 @@ AcquireChannel -`control_channel(qubits)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L284-L304 "view source code") +`control_channel(qubits)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L284-L304 "view source code") Return the secondary drive channel for the given qubit @@ -268,7 +268,7 @@ List\[ControlChannel] -`drive_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L239-L252 "view source code") +`drive_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L239-L252 "view source code") Return the drive channel for the given qubit. @@ -286,7 +286,7 @@ DriveChannel -`measure_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L254-L267 "view source code") +`measure_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L254-L267 "view source code") Return the measure stimulus channel for the given qubit. @@ -330,7 +330,7 @@ The `QubitProperties` object for the specified qubit. If a list of qubits is pro -`run(run_input, **options)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L306-L365 "view source code") +`run(run_input, **options)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L306-L365 "view source code") Run on the fake backend using a simulator. diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeManila.md b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeManila.md index 74f7f71a6af..c9f5b24402a 100644 --- a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeManila.md +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeManila.md @@ -10,7 +10,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeManila -`FakeManila` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/backends/manila/fake_manila.py#L31-L38 "view source code") +`FakeManila` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/backends/manila/fake_manila.py#L31-L38 "view source code") A fake 5 qubit backend. @@ -89,7 +89,7 @@ BackendConfiguration -`defaults()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_pulse_backend.py#L29-L33 "view source code") +`defaults()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_pulse_backend.py#L29-L33 "view source code") Returns a snapshot of device defaults @@ -117,7 +117,7 @@ str -`properties()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_qasm_backend.py#L44-L48 "view source code") +`properties()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_qasm_backend.py#L44-L48 "view source code") Returns a snapshot of device properties @@ -145,7 +145,7 @@ Provider -`run(run_input, **kwargs)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L545-L574 "view source code") +`run(run_input, **kwargs)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L545-L574 "view source code") Main job in simulator diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeManilaV2.md b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeManilaV2.md index 3c13a17354d..9d331bf0287 100644 --- a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeManilaV2.md +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeManilaV2.md @@ -10,7 +10,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeManilaV2 -`FakeManilaV2` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/backends/manila/fake_manila.py#L21-L28 "view source code") +`FakeManilaV2` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/backends/manila/fake_manila.py#L21-L28 "view source code") A fake 5 qubit backend. @@ -226,7 +226,7 @@ Version of the backend being provided. This is not the same as `BackendV2.versio -`acquire_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L269-L282 "view source code") +`acquire_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L269-L282 "view source code") Return the acquisition channel for the given qubit. @@ -244,7 +244,7 @@ AcquireChannel -`control_channel(qubits)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L284-L304 "view source code") +`control_channel(qubits)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L284-L304 "view source code") Return the secondary drive channel for the given qubit @@ -268,7 +268,7 @@ List\[ControlChannel] -`drive_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L239-L252 "view source code") +`drive_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L239-L252 "view source code") Return the drive channel for the given qubit. @@ -286,7 +286,7 @@ DriveChannel -`measure_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L254-L267 "view source code") +`measure_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L254-L267 "view source code") Return the measure stimulus channel for the given qubit. @@ -330,7 +330,7 @@ The `QubitProperties` object for the specified qubit. If a list of qubits is pro -`run(run_input, **options)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L306-L365 "view source code") +`run(run_input, **options)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L306-L365 "view source code") Run on the fake backend using a simulator. diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeMelbourne.md b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeMelbourne.md index 1cc5349e4b4..7c20a63700d 100644 --- a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeMelbourne.md +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeMelbourne.md @@ -10,7 +10,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeMelbourne -`FakeMelbourne` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/backends/melbourne/fake_melbourne.py#L38-L95 "view source code") +`FakeMelbourne` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/backends/melbourne/fake_melbourne.py#L38-L95 "view source code") A fake 14 qubit backend. @@ -74,7 +74,7 @@ str -`properties()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/backends/melbourne/fake_melbourne.py#L89-L95 "view source code") +`properties()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/backends/melbourne/fake_melbourne.py#L89-L95 "view source code") Returns a snapshot of device properties diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeMelbourneV2.md b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeMelbourneV2.md index 5752179d450..11a8271f832 100644 --- a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeMelbourneV2.md +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeMelbourneV2.md @@ -10,7 +10,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeMelbourneV2 -`FakeMelbourneV2` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/backends/melbourne/fake_melbourne.py#L29-L35 "view source code") +`FakeMelbourneV2` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/backends/melbourne/fake_melbourne.py#L29-L35 "view source code") A fake 14 qubit backend. @@ -226,7 +226,7 @@ Version of the backend being provided. This is not the same as `BackendV2.versio -`acquire_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L269-L282 "view source code") +`acquire_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L269-L282 "view source code") Return the acquisition channel for the given qubit. @@ -244,7 +244,7 @@ AcquireChannel -`control_channel(qubits)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L284-L304 "view source code") +`control_channel(qubits)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L284-L304 "view source code") Return the secondary drive channel for the given qubit @@ -268,7 +268,7 @@ List\[ControlChannel] -`drive_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L239-L252 "view source code") +`drive_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L239-L252 "view source code") Return the drive channel for the given qubit. @@ -286,7 +286,7 @@ DriveChannel -`measure_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L254-L267 "view source code") +`measure_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L254-L267 "view source code") Return the measure stimulus channel for the given qubit. @@ -330,7 +330,7 @@ The `QubitProperties` object for the specified qubit. If a list of qubits is pro -`run(run_input, **options)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L306-L365 "view source code") +`run(run_input, **options)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L306-L365 "view source code") Run on the fake backend using a simulator. diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeMontreal.md b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeMontreal.md index 758340de903..4c4154493c3 100644 --- a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeMontreal.md +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeMontreal.md @@ -10,7 +10,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeMontreal -`FakeMontreal` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/backends/montreal/fake_montreal.py#L31-L38 "view source code") +`FakeMontreal` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/backends/montreal/fake_montreal.py#L31-L38 "view source code") A fake 27 qubit backend. @@ -89,7 +89,7 @@ BackendConfiguration -`defaults()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_pulse_backend.py#L29-L33 "view source code") +`defaults()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_pulse_backend.py#L29-L33 "view source code") Returns a snapshot of device defaults @@ -117,7 +117,7 @@ str -`properties()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_qasm_backend.py#L44-L48 "view source code") +`properties()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_qasm_backend.py#L44-L48 "view source code") Returns a snapshot of device properties @@ -145,7 +145,7 @@ Provider -`run(run_input, **kwargs)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L545-L574 "view source code") +`run(run_input, **kwargs)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L545-L574 "view source code") Main job in simulator diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeMontrealV2.md b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeMontrealV2.md index e24c1e08383..baa8d59e700 100644 --- a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeMontrealV2.md +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeMontrealV2.md @@ -10,7 +10,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeMontrealV2 -`FakeMontrealV2` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/backends/montreal/fake_montreal.py#L21-L28 "view source code") +`FakeMontrealV2` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/backends/montreal/fake_montreal.py#L21-L28 "view source code") A fake 27 qubit backend. @@ -226,7 +226,7 @@ Version of the backend being provided. This is not the same as `BackendV2.versio -`acquire_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L269-L282 "view source code") +`acquire_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L269-L282 "view source code") Return the acquisition channel for the given qubit. @@ -244,7 +244,7 @@ AcquireChannel -`control_channel(qubits)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L284-L304 "view source code") +`control_channel(qubits)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L284-L304 "view source code") Return the secondary drive channel for the given qubit @@ -268,7 +268,7 @@ List\[ControlChannel] -`drive_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L239-L252 "view source code") +`drive_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L239-L252 "view source code") Return the drive channel for the given qubit. @@ -286,7 +286,7 @@ DriveChannel -`measure_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L254-L267 "view source code") +`measure_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L254-L267 "view source code") Return the measure stimulus channel for the given qubit. @@ -330,7 +330,7 @@ The `QubitProperties` object for the specified qubit. If a list of qubits is pro -`run(run_input, **options)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L306-L365 "view source code") +`run(run_input, **options)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L306-L365 "view source code") Run on the fake backend using a simulator. diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeMumbai.md b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeMumbai.md index fefd67dd44f..dccb5b55335 100644 --- a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeMumbai.md +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeMumbai.md @@ -10,7 +10,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeMumbai -`FakeMumbai` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/backends/mumbai/fake_mumbai.py#L31-L38 "view source code") +`FakeMumbai` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/backends/mumbai/fake_mumbai.py#L31-L38 "view source code") A fake 27 qubit backend. @@ -89,7 +89,7 @@ BackendConfiguration -`defaults()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_pulse_backend.py#L29-L33 "view source code") +`defaults()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_pulse_backend.py#L29-L33 "view source code") Returns a snapshot of device defaults @@ -117,7 +117,7 @@ str -`properties()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_qasm_backend.py#L44-L48 "view source code") +`properties()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_qasm_backend.py#L44-L48 "view source code") Returns a snapshot of device properties @@ -145,7 +145,7 @@ Provider -`run(run_input, **kwargs)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L545-L574 "view source code") +`run(run_input, **kwargs)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L545-L574 "view source code") Main job in simulator diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeMumbaiV2.md b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeMumbaiV2.md index 4628e7b631f..689cd825c93 100644 --- a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeMumbaiV2.md +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeMumbaiV2.md @@ -10,7 +10,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeMumbaiV2 -`FakeMumbaiV2` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/backends/mumbai/fake_mumbai.py#L21-L28 "view source code") +`FakeMumbaiV2` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/backends/mumbai/fake_mumbai.py#L21-L28 "view source code") A fake 27 qubit backend. @@ -226,7 +226,7 @@ Version of the backend being provided. This is not the same as `BackendV2.versio -`acquire_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L269-L282 "view source code") +`acquire_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L269-L282 "view source code") Return the acquisition channel for the given qubit. @@ -244,7 +244,7 @@ AcquireChannel -`control_channel(qubits)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L284-L304 "view source code") +`control_channel(qubits)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L284-L304 "view source code") Return the secondary drive channel for the given qubit @@ -268,7 +268,7 @@ List\[ControlChannel] -`drive_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L239-L252 "view source code") +`drive_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L239-L252 "view source code") Return the drive channel for the given qubit. @@ -286,7 +286,7 @@ DriveChannel -`measure_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L254-L267 "view source code") +`measure_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L254-L267 "view source code") Return the measure stimulus channel for the given qubit. @@ -330,7 +330,7 @@ The `QubitProperties` object for the specified qubit. If a list of qubits is pro -`run(run_input, **options)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L306-L365 "view source code") +`run(run_input, **options)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L306-L365 "view source code") Run on the fake backend using a simulator. diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeNairobi.md b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeNairobi.md index 7ed004a8e44..8c567df31d4 100644 --- a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeNairobi.md +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeNairobi.md @@ -10,7 +10,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeNairobi -`FakeNairobi` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/backends/nairobi/fake_nairobi.py#L31-L38 "view source code") +`FakeNairobi` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/backends/nairobi/fake_nairobi.py#L31-L38 "view source code") A fake 7 qubit backend. @@ -89,7 +89,7 @@ BackendConfiguration -`defaults()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_pulse_backend.py#L29-L33 "view source code") +`defaults()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_pulse_backend.py#L29-L33 "view source code") Returns a snapshot of device defaults @@ -117,7 +117,7 @@ str -`properties()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_qasm_backend.py#L44-L48 "view source code") +`properties()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_qasm_backend.py#L44-L48 "view source code") Returns a snapshot of device properties @@ -145,7 +145,7 @@ Provider -`run(run_input, **kwargs)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L545-L574 "view source code") +`run(run_input, **kwargs)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L545-L574 "view source code") Main job in simulator diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeNairobiV2.md b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeNairobiV2.md index 461ca09c1b8..c9657904c76 100644 --- a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeNairobiV2.md +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeNairobiV2.md @@ -10,7 +10,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeNairobiV2 -`FakeNairobiV2` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/backends/nairobi/fake_nairobi.py#L21-L28 "view source code") +`FakeNairobiV2` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/backends/nairobi/fake_nairobi.py#L21-L28 "view source code") A fake 7 qubit backend. @@ -226,7 +226,7 @@ Version of the backend being provided. This is not the same as `BackendV2.versio -`acquire_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L269-L282 "view source code") +`acquire_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L269-L282 "view source code") Return the acquisition channel for the given qubit. @@ -244,7 +244,7 @@ AcquireChannel -`control_channel(qubits)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L284-L304 "view source code") +`control_channel(qubits)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L284-L304 "view source code") Return the secondary drive channel for the given qubit @@ -268,7 +268,7 @@ List\[ControlChannel] -`drive_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L239-L252 "view source code") +`drive_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L239-L252 "view source code") Return the drive channel for the given qubit. @@ -286,7 +286,7 @@ DriveChannel -`measure_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L254-L267 "view source code") +`measure_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L254-L267 "view source code") Return the measure stimulus channel for the given qubit. @@ -330,7 +330,7 @@ The `QubitProperties` object for the specified qubit. If a list of qubits is pro -`run(run_input, **options)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L306-L365 "view source code") +`run(run_input, **options)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L306-L365 "view source code") Run on the fake backend using a simulator. diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeOsaka.md b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeOsaka.md new file mode 100644 index 00000000000..0325e34e52c --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeOsaka.md @@ -0,0 +1,377 @@ +--- +title: FakeOsaka +description: API reference for qiskit_ibm_runtime.fake_provider.FakeOsaka +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.fake_provider.FakeOsaka +--- + +# FakeOsaka + + + +`FakeOsaka` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/backends/osaka/fake_osaka.py#L21-L28 "view source code") + +A fake 127 qubit backend. + +FakeBackendV2 initializer. + +## Attributes + + + +### backend\_name + +`= 'fake_osaka'` + + + +### conf\_filename + +`= 'conf_osaka.json'` + + + +### coupling\_map + +Return the `CouplingMap` object + + + +### defs\_filename + +`= 'defs_osaka.json'` + + + +### dirname + +`= '/home/runner/work/qiskit-ibm-runtime/qiskit-ibm-runtime/qiskit_ibm_runtime/fake_provider/backends/osaka'` + + + +### dt + +Return the system time resolution of input signals + +This is required to be implemented if the backend supports Pulse scheduling. + +**Return type** + +`Optional`\[`float`] + +**Returns** + +The input signal timestep in seconds. If the backend doesn’t define `dt`, `None` will be returned. + + + +### dtm + +Return the system time resolution of output signals + +**Return type** + +`float` + +**Returns** + +The output signal timestep in seconds. + + + +### instruction\_durations + +Return the `InstructionDurations` object. + + + +### instruction\_schedule\_map + +Return the `InstructionScheduleMap` for the instructions defined in this backend’s target. + + + +### instructions + +A list of Instruction tuples on the backend of the form `(instruction, (qubits)` + +**Return type** + +`List`\[`Tuple`\[`Instruction`, `Tuple`\[`int`]]] + + + +### max\_circuits + +**Return type** + +`None` + + + +### meas\_map + +Return the grouping of measurements which are multiplexed This is required to be implemented if the backend supports Pulse scheduling. + +**Return type** + +`List`\[`List`\[`int`]] + +**Returns** + +The grouping of measurements which are multiplexed + + + +### num\_qubits + +Return the number of qubits the backend has. + +**Return type** + +`int` + + + +### operation\_names + +A list of instruction names that the backend supports. + +**Return type** + +`List`\[`str`] + + + +### operations + +A list of `Instruction` instances that the backend supports. + +**Return type** + +`List`\[`Instruction`] + + + +### options + +Return the options for the backend + +The options of a backend are the dynamic parameters defining how the backend is used. These are used to control the [`run()`](#qiskit_ibm_runtime.fake_provider.FakeOsaka.run "qiskit_ibm_runtime.fake_provider.FakeOsaka.run") method. + + + +### props\_filename + +`= 'props_osaka.json'` + + + +### provider + +Return the backend Provider. + +**Returns** + +the Provider responsible for the backend. + +**Return type** + +Provider + + + +### target + +A `qiskit.transpiler.Target` object for the backend. + +**Return type** + +Target + + + +### version + +`= 2` + + + +### name + +Name of the backend. + + + +### description + +Optional human-readable description. + + + +### online\_date + +Date that the backend came online. + + + +### backend\_version + +Version of the backend being provided. This is not the same as `BackendV2.version`, which is the version of the `Backend` abstract interface. + +## Methods + +### acquire\_channel + + + +`acquire_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L269-L282 "view source code") + +Return the acquisition channel for the given qubit. + +This is required to be implemented if the backend supports Pulse scheduling. + +**Returns** + +The Qubit measurement acquisition line. + +**Return type** + +AcquireChannel + +### control\_channel + + + +`control_channel(qubits)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L284-L304 "view source code") + +Return the secondary drive channel for the given qubit + +This is typically utilized for controlling multiqubit interactions. This channel is derived from other channels. + +This is required to be implemented if the backend supports Pulse scheduling. + +**Parameters** + +**qubits** (`Iterable`\[`int`]) – Tuple or list of qubits of the form `(control_qubit, target_qubit)`. + +**Returns** + +The multi qubit control line. + +**Return type** + +List\[ControlChannel] + +### drive\_channel + + + +`drive_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L239-L252 "view source code") + +Return the drive channel for the given qubit. + +This is required to be implemented if the backend supports Pulse scheduling. + +**Returns** + +The Qubit drive channel + +**Return type** + +DriveChannel + +### measure\_channel + + + +`measure_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L254-L267 "view source code") + +Return the measure stimulus channel for the given qubit. + +This is required to be implemented if the backend supports Pulse scheduling. + +**Returns** + +The Qubit measurement stimulus line + +**Return type** + +MeasureChannel + +### qubit\_properties + + + +`qubit_properties(qubit)` + +Return QubitProperties for a given qubit. + +If there are no defined or the backend doesn’t support querying these details this method does not need to be implemented. + +**Parameters** + +**qubit** (`Union`\[`int`, `List`\[`int`]]) – The qubit to get the `QubitProperties` object for. This can be a single integer for 1 qubit or a list of qubits and a list of `QubitProperties` objects will be returned in the same order + +**Return type** + +`Union`\[`QubitProperties`, `List`\[`QubitProperties`]] + +**Returns** + +The `QubitProperties` object for the specified qubit. If a list of qubits is provided a list will be returned. If properties are missing for a qubit this can be `None`. + +**Raises** + +**NotImplementedError** – if the backend doesn’t support querying the qubit properties + +### run + + + +`run(run_input, **options)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L306-L365 "view source code") + +Run on the fake backend using a simulator. + +This method runs circuit jobs (an individual or a list of QuantumCircuit ) and pulse jobs (an individual or a list of Schedule or ScheduleBlock) using BasicAer simulator/ BasicSimulator or Aer simulator and returns a `Job` object. + +If qiskit-aer is installed, jobs will be run using AerSimulator with noise model of the fake backend. Otherwise, jobs will be run using BasicAer simulator/ BasicSimulator simulator without noise. + +Currently noisy simulation of a pulse job is not supported yet in FakeBackendV2. + +**Parameters** + +* **run\_input** (*QuantumCircuit or Schedule or ScheduleBlock or list*) – An individual or a list of `QuantumCircuit`, `ScheduleBlock`, or `Schedule` objects to run on the backend. +* **options** – Any kwarg options to pass to the backend for running the config. If a key is also present in the options attribute/object then the expectation is that the value specified will be used instead of what’s set in the options object. + +**Returns** + +The job object for the run + +**Return type** + +Job + +**Raises** + +**QiskitError** – If a pulse job is supplied and qiskit-aer is not installed. + +### set\_options + + + +`set_options(**fields)` + +Set the options fields for the backend + +This method is used to update the options of a backend. If you need to change any of the options prior to running just pass in the kwarg with the new value for the options. + +**Parameters** + +**fields** – The fields to update the options + +**Raises** + +**AttributeError** – If the field passed in is not part of the options + diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeOslo.md b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeOslo.md index fbbec79d7b4..94f26aee188 100644 --- a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeOslo.md +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeOslo.md @@ -10,7 +10,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeOslo -`FakeOslo` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/backends/oslo/fake_oslo.py#L22-L29 "view source code") +`FakeOslo` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/backends/oslo/fake_oslo.py#L22-L29 "view source code") A fake 7 qubit backend. @@ -226,7 +226,7 @@ Version of the backend being provided. This is not the same as `BackendV2.versio -`acquire_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L269-L282 "view source code") +`acquire_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L269-L282 "view source code") Return the acquisition channel for the given qubit. @@ -244,7 +244,7 @@ AcquireChannel -`control_channel(qubits)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L284-L304 "view source code") +`control_channel(qubits)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L284-L304 "view source code") Return the secondary drive channel for the given qubit @@ -268,7 +268,7 @@ List\[ControlChannel] -`drive_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L239-L252 "view source code") +`drive_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L239-L252 "view source code") Return the drive channel for the given qubit. @@ -286,7 +286,7 @@ DriveChannel -`measure_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L254-L267 "view source code") +`measure_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L254-L267 "view source code") Return the measure stimulus channel for the given qubit. @@ -330,7 +330,7 @@ The `QubitProperties` object for the specified qubit. If a list of qubits is pro -`run(run_input, **options)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L306-L365 "view source code") +`run(run_input, **options)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L306-L365 "view source code") Run on the fake backend using a simulator. diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeOurense.md b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeOurense.md index a663c05a4c7..3a6292d7ddb 100644 --- a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeOurense.md +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeOurense.md @@ -10,7 +10,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeOurense -`FakeOurense` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/backends/ourense/fake_ourense.py#L37-L50 "view source code") +`FakeOurense` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/backends/ourense/fake_ourense.py#L37-L50 "view source code") A fake 5 qubit backend. @@ -105,7 +105,7 @@ str -`properties()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_qasm_backend.py#L44-L48 "view source code") +`properties()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_qasm_backend.py#L44-L48 "view source code") Returns a snapshot of device properties @@ -133,7 +133,7 @@ Provider -`run(run_input, **kwargs)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L545-L574 "view source code") +`run(run_input, **kwargs)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L545-L574 "view source code") Main job in simulator diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeOurenseV2.md b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeOurenseV2.md index 4a65c7f2ec6..0fe87f330f8 100644 --- a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeOurenseV2.md +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeOurenseV2.md @@ -10,7 +10,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeOurenseV2 -`FakeOurenseV2` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/backends/ourense/fake_ourense.py#L21-L34 "view source code") +`FakeOurenseV2` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/backends/ourense/fake_ourense.py#L21-L34 "view source code") A fake 5 qubit backend. @@ -232,7 +232,7 @@ Version of the backend being provided. This is not the same as `BackendV2.versio -`acquire_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L269-L282 "view source code") +`acquire_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L269-L282 "view source code") Return the acquisition channel for the given qubit. @@ -250,7 +250,7 @@ AcquireChannel -`control_channel(qubits)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L284-L304 "view source code") +`control_channel(qubits)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L284-L304 "view source code") Return the secondary drive channel for the given qubit @@ -274,7 +274,7 @@ List\[ControlChannel] -`drive_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L239-L252 "view source code") +`drive_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L239-L252 "view source code") Return the drive channel for the given qubit. @@ -292,7 +292,7 @@ DriveChannel -`measure_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L254-L267 "view source code") +`measure_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L254-L267 "view source code") Return the measure stimulus channel for the given qubit. @@ -336,7 +336,7 @@ The `QubitProperties` object for the specified qubit. If a list of qubits is pro -`run(run_input, **options)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L306-L365 "view source code") +`run(run_input, **options)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L306-L365 "view source code") Run on the fake backend using a simulator. diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeParis.md b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeParis.md index f4363561eae..e264746e62f 100644 --- a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeParis.md +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeParis.md @@ -10,7 +10,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeParis -`FakeParis` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/backends/paris/fake_paris.py#L44-L64 "view source code") +`FakeParis` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/backends/paris/fake_paris.py#L44-L64 "view source code") A fake Paris backend. @@ -101,7 +101,7 @@ BackendConfiguration -`defaults()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_pulse_backend.py#L29-L33 "view source code") +`defaults()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_pulse_backend.py#L29-L33 "view source code") Returns a snapshot of device defaults @@ -129,7 +129,7 @@ str -`properties()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_qasm_backend.py#L44-L48 "view source code") +`properties()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_qasm_backend.py#L44-L48 "view source code") Returns a snapshot of device properties @@ -157,7 +157,7 @@ Provider -`run(run_input, **kwargs)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L545-L574 "view source code") +`run(run_input, **kwargs)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L545-L574 "view source code") Main job in simulator diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeParisV2.md b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeParisV2.md index 20bddd80ad9..32e1ca649d3 100644 --- a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeParisV2.md +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeParisV2.md @@ -10,7 +10,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeParisV2 -`FakeParisV2` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/backends/paris/fake_paris.py#L21-L41 "view source code") +`FakeParisV2` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/backends/paris/fake_paris.py#L21-L41 "view source code") A fake Paris backend. @@ -238,7 +238,7 @@ Version of the backend being provided. This is not the same as `BackendV2.versio -`acquire_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L269-L282 "view source code") +`acquire_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L269-L282 "view source code") Return the acquisition channel for the given qubit. @@ -256,7 +256,7 @@ AcquireChannel -`control_channel(qubits)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L284-L304 "view source code") +`control_channel(qubits)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L284-L304 "view source code") Return the secondary drive channel for the given qubit @@ -280,7 +280,7 @@ List\[ControlChannel] -`drive_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L239-L252 "view source code") +`drive_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L239-L252 "view source code") Return the drive channel for the given qubit. @@ -298,7 +298,7 @@ DriveChannel -`measure_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L254-L267 "view source code") +`measure_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L254-L267 "view source code") Return the measure stimulus channel for the given qubit. @@ -342,7 +342,7 @@ The `QubitProperties` object for the specified qubit. If a list of qubits is pro -`run(run_input, **options)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L306-L365 "view source code") +`run(run_input, **options)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L306-L365 "view source code") Run on the fake backend using a simulator. diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakePeekskill.md b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakePeekskill.md new file mode 100644 index 00000000000..8de4f0e4569 --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakePeekskill.md @@ -0,0 +1,377 @@ +--- +title: FakePeekskill +description: API reference for qiskit_ibm_runtime.fake_provider.FakePeekskill +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.fake_provider.FakePeekskill +--- + +# FakePeekskill + + + +`FakePeekskill` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/backends/peekskill/fake_peekskill.py#L21-L28 "view source code") + +A fake 27 qubit backend. + +FakeBackendV2 initializer. + +## Attributes + + + +### backend\_name + +`= 'fake_peekskill'` + + + +### conf\_filename + +`= 'conf_peekskill.json'` + + + +### coupling\_map + +Return the `CouplingMap` object + + + +### defs\_filename + +`= 'defs_peekskill.json'` + + + +### dirname + +`= '/home/runner/work/qiskit-ibm-runtime/qiskit-ibm-runtime/qiskit_ibm_runtime/fake_provider/backends/peekskill'` + + + +### dt + +Return the system time resolution of input signals + +This is required to be implemented if the backend supports Pulse scheduling. + +**Return type** + +`Optional`\[`float`] + +**Returns** + +The input signal timestep in seconds. If the backend doesn’t define `dt`, `None` will be returned. + + + +### dtm + +Return the system time resolution of output signals + +**Return type** + +`float` + +**Returns** + +The output signal timestep in seconds. + + + +### instruction\_durations + +Return the `InstructionDurations` object. + + + +### instruction\_schedule\_map + +Return the `InstructionScheduleMap` for the instructions defined in this backend’s target. + + + +### instructions + +A list of Instruction tuples on the backend of the form `(instruction, (qubits)` + +**Return type** + +`List`\[`Tuple`\[`Instruction`, `Tuple`\[`int`]]] + + + +### max\_circuits + +**Return type** + +`None` + + + +### meas\_map + +Return the grouping of measurements which are multiplexed This is required to be implemented if the backend supports Pulse scheduling. + +**Return type** + +`List`\[`List`\[`int`]] + +**Returns** + +The grouping of measurements which are multiplexed + + + +### num\_qubits + +Return the number of qubits the backend has. + +**Return type** + +`int` + + + +### operation\_names + +A list of instruction names that the backend supports. + +**Return type** + +`List`\[`str`] + + + +### operations + +A list of `Instruction` instances that the backend supports. + +**Return type** + +`List`\[`Instruction`] + + + +### options + +Return the options for the backend + +The options of a backend are the dynamic parameters defining how the backend is used. These are used to control the [`run()`](#qiskit_ibm_runtime.fake_provider.FakePeekskill.run "qiskit_ibm_runtime.fake_provider.FakePeekskill.run") method. + + + +### props\_filename + +`= 'props_peekskill.json'` + + + +### provider + +Return the backend Provider. + +**Returns** + +the Provider responsible for the backend. + +**Return type** + +Provider + + + +### target + +A `qiskit.transpiler.Target` object for the backend. + +**Return type** + +Target + + + +### version + +`= 2` + + + +### name + +Name of the backend. + + + +### description + +Optional human-readable description. + + + +### online\_date + +Date that the backend came online. + + + +### backend\_version + +Version of the backend being provided. This is not the same as `BackendV2.version`, which is the version of the `Backend` abstract interface. + +## Methods + +### acquire\_channel + + + +`acquire_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L269-L282 "view source code") + +Return the acquisition channel for the given qubit. + +This is required to be implemented if the backend supports Pulse scheduling. + +**Returns** + +The Qubit measurement acquisition line. + +**Return type** + +AcquireChannel + +### control\_channel + + + +`control_channel(qubits)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L284-L304 "view source code") + +Return the secondary drive channel for the given qubit + +This is typically utilized for controlling multiqubit interactions. This channel is derived from other channels. + +This is required to be implemented if the backend supports Pulse scheduling. + +**Parameters** + +**qubits** (`Iterable`\[`int`]) – Tuple or list of qubits of the form `(control_qubit, target_qubit)`. + +**Returns** + +The multi qubit control line. + +**Return type** + +List\[ControlChannel] + +### drive\_channel + + + +`drive_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L239-L252 "view source code") + +Return the drive channel for the given qubit. + +This is required to be implemented if the backend supports Pulse scheduling. + +**Returns** + +The Qubit drive channel + +**Return type** + +DriveChannel + +### measure\_channel + + + +`measure_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L254-L267 "view source code") + +Return the measure stimulus channel for the given qubit. + +This is required to be implemented if the backend supports Pulse scheduling. + +**Returns** + +The Qubit measurement stimulus line + +**Return type** + +MeasureChannel + +### qubit\_properties + + + +`qubit_properties(qubit)` + +Return QubitProperties for a given qubit. + +If there are no defined or the backend doesn’t support querying these details this method does not need to be implemented. + +**Parameters** + +**qubit** (`Union`\[`int`, `List`\[`int`]]) – The qubit to get the `QubitProperties` object for. This can be a single integer for 1 qubit or a list of qubits and a list of `QubitProperties` objects will be returned in the same order + +**Return type** + +`Union`\[`QubitProperties`, `List`\[`QubitProperties`]] + +**Returns** + +The `QubitProperties` object for the specified qubit. If a list of qubits is provided a list will be returned. If properties are missing for a qubit this can be `None`. + +**Raises** + +**NotImplementedError** – if the backend doesn’t support querying the qubit properties + +### run + + + +`run(run_input, **options)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L306-L365 "view source code") + +Run on the fake backend using a simulator. + +This method runs circuit jobs (an individual or a list of QuantumCircuit ) and pulse jobs (an individual or a list of Schedule or ScheduleBlock) using BasicAer simulator/ BasicSimulator or Aer simulator and returns a `Job` object. + +If qiskit-aer is installed, jobs will be run using AerSimulator with noise model of the fake backend. Otherwise, jobs will be run using BasicAer simulator/ BasicSimulator simulator without noise. + +Currently noisy simulation of a pulse job is not supported yet in FakeBackendV2. + +**Parameters** + +* **run\_input** (*QuantumCircuit or Schedule or ScheduleBlock or list*) – An individual or a list of `QuantumCircuit`, `ScheduleBlock`, or `Schedule` objects to run on the backend. +* **options** – Any kwarg options to pass to the backend for running the config. If a key is also present in the options attribute/object then the expectation is that the value specified will be used instead of what’s set in the options object. + +**Returns** + +The job object for the run + +**Return type** + +Job + +**Raises** + +**QiskitError** – If a pulse job is supplied and qiskit-aer is not installed. + +### set\_options + + + +`set_options(**fields)` + +Set the options fields for the backend + +This method is used to update the options of a backend. If you need to change any of the options prior to running just pass in the kwarg with the new value for the options. + +**Parameters** + +**fields** – The fields to update the options + +**Raises** + +**AttributeError** – If the field passed in is not part of the options + diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakePerth.md b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakePerth.md index 5c4ac453e52..6232a37cf18 100644 --- a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakePerth.md +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakePerth.md @@ -10,7 +10,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakePerth -`FakePerth` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/backends/perth/fake_perth.py#L22-L29 "view source code") +`FakePerth` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/backends/perth/fake_perth.py#L22-L29 "view source code") A fake 7 qubit backend. @@ -226,7 +226,7 @@ Version of the backend being provided. This is not the same as `BackendV2.versio -`acquire_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L269-L282 "view source code") +`acquire_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L269-L282 "view source code") Return the acquisition channel for the given qubit. @@ -244,7 +244,7 @@ AcquireChannel -`control_channel(qubits)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L284-L304 "view source code") +`control_channel(qubits)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L284-L304 "view source code") Return the secondary drive channel for the given qubit @@ -268,7 +268,7 @@ List\[ControlChannel] -`drive_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L239-L252 "view source code") +`drive_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L239-L252 "view source code") Return the drive channel for the given qubit. @@ -286,7 +286,7 @@ DriveChannel -`measure_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L254-L267 "view source code") +`measure_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L254-L267 "view source code") Return the measure stimulus channel for the given qubit. @@ -330,7 +330,7 @@ The `QubitProperties` object for the specified qubit. If a list of qubits is pro -`run(run_input, **options)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L306-L365 "view source code") +`run(run_input, **options)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L306-L365 "view source code") Run on the fake backend using a simulator. diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakePoughkeepsie.md b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakePoughkeepsie.md index 9c96dcf3b52..c6b80cfeb87 100644 --- a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakePoughkeepsie.md +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakePoughkeepsie.md @@ -10,7 +10,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakePoughkeepsie -`FakePoughkeepsie` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/backends/poughkeepsie/fake_poughkeepsie.py#L39-L128 "view source code") +`FakePoughkeepsie` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/backends/poughkeepsie/fake_poughkeepsie.py#L39-L128 "view source code") A fake Poughkeepsie backend. @@ -78,7 +78,7 @@ str -`properties()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/backends/poughkeepsie/fake_poughkeepsie.py#L122-L128 "view source code") +`properties()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/backends/poughkeepsie/fake_poughkeepsie.py#L122-L128 "view source code") Returns a snapshot of device properties diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakePoughkeepsieV2.md b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakePoughkeepsieV2.md index cab29be2a95..c9473e019de 100644 --- a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakePoughkeepsieV2.md +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakePoughkeepsieV2.md @@ -10,7 +10,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakePoughkeepsieV2 -`FakePoughkeepsieV2` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/backends/poughkeepsie/fake_poughkeepsie.py#L29-L36 "view source code") +`FakePoughkeepsieV2` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/backends/poughkeepsie/fake_poughkeepsie.py#L29-L36 "view source code") A fake Poughkeepsie backend. @@ -226,7 +226,7 @@ Version of the backend being provided. This is not the same as `BackendV2.versio -`acquire_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L269-L282 "view source code") +`acquire_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L269-L282 "view source code") Return the acquisition channel for the given qubit. @@ -244,7 +244,7 @@ AcquireChannel -`control_channel(qubits)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L284-L304 "view source code") +`control_channel(qubits)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L284-L304 "view source code") Return the secondary drive channel for the given qubit @@ -268,7 +268,7 @@ List\[ControlChannel] -`drive_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L239-L252 "view source code") +`drive_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L239-L252 "view source code") Return the drive channel for the given qubit. @@ -286,7 +286,7 @@ DriveChannel -`measure_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L254-L267 "view source code") +`measure_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L254-L267 "view source code") Return the measure stimulus channel for the given qubit. @@ -330,7 +330,7 @@ The `QubitProperties` object for the specified qubit. If a list of qubits is pro -`run(run_input, **options)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L306-L365 "view source code") +`run(run_input, **options)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L306-L365 "view source code") Run on the fake backend using a simulator. diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakePrague.md b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakePrague.md index 99413c085f4..6d3110191a7 100644 --- a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakePrague.md +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakePrague.md @@ -10,7 +10,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakePrague -`FakePrague` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/backends/prague/fake_prague.py#L22-L28 "view source code") +`FakePrague` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/backends/prague/fake_prague.py#L22-L28 "view source code") A fake 33 qubit backend. @@ -226,7 +226,7 @@ Version of the backend being provided. This is not the same as `BackendV2.versio -`acquire_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L269-L282 "view source code") +`acquire_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L269-L282 "view source code") Return the acquisition channel for the given qubit. @@ -244,7 +244,7 @@ AcquireChannel -`control_channel(qubits)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L284-L304 "view source code") +`control_channel(qubits)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L284-L304 "view source code") Return the secondary drive channel for the given qubit @@ -268,7 +268,7 @@ List\[ControlChannel] -`drive_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L239-L252 "view source code") +`drive_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L239-L252 "view source code") Return the drive channel for the given qubit. @@ -286,7 +286,7 @@ DriveChannel -`measure_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L254-L267 "view source code") +`measure_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L254-L267 "view source code") Return the measure stimulus channel for the given qubit. @@ -330,7 +330,7 @@ The `QubitProperties` object for the specified qubit. If a list of qubits is pro -`run(run_input, **options)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L306-L365 "view source code") +`run(run_input, **options)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L306-L365 "view source code") Run on the fake backend using a simulator. diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeProvider.md b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeProvider.md index 0deceb327aa..4439386a372 100644 --- a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeProvider.md +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeProvider.md @@ -10,7 +10,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeProvider -`FakeProvider` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_provider.py#L142-L211 "view source code") +`FakeProvider` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_provider.py#L152-L221 "view source code") Fake provider containing fake V1 backends. @@ -30,7 +30,7 @@ Only filtering backends by name is implemented. This class contains all fake V1 -`backends(name=None, **kwargs)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_provider.py#L160-L161 "view source code") +`backends(name=None, **kwargs)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_provider.py#L170-L171 "view source code") Return a list of backends matching the specified filtering. @@ -53,7 +53,7 @@ list\[Backend] -`get_backend(name=None, **kwargs)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_provider.py#L149-L158 "view source code") +`get_backend(name=None, **kwargs)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_provider.py#L159-L168 "view source code") Return a single backend matching the specified filtering. diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeProviderForBackendV2.md b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeProviderForBackendV2.md index bd71cb19f20..b9b0dacd734 100644 --- a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeProviderForBackendV2.md +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeProviderForBackendV2.md @@ -10,7 +10,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeProviderForBackendV2 -`FakeProviderForBackendV2` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_provider.py#L65-L139 "view source code") +`FakeProviderForBackendV2` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_provider.py#L65-L149 "view source code") Fake provider containing fake V2 backends. @@ -30,7 +30,7 @@ Only filtering backends by name is implemented. This class contains all fake V2 -`backend(name=None, **kwargs)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_provider.py#L72-L84 "view source code") +`backend(name=None, **kwargs)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_provider.py#L72-L84 "view source code") Filter backends in provider by name. @@ -38,7 +38,7 @@ Filter backends in provider by name. -`backends(name=None, **kwargs)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_provider.py#L86-L87 "view source code") +`backends(name=None, **kwargs)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_provider.py#L86-L87 "view source code") Return a list of backends matching the specified filtering. diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeQuebec.md b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeQuebec.md new file mode 100644 index 00000000000..9c2d1a10429 --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeQuebec.md @@ -0,0 +1,377 @@ +--- +title: FakeQuebec +description: API reference for qiskit_ibm_runtime.fake_provider.FakeQuebec +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.fake_provider.FakeQuebec +--- + +# FakeQuebec + + + +`FakeQuebec` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/backends/quebec/fake_quebec.py#L21-L28 "view source code") + +A fake 127 qubit backend. + +FakeBackendV2 initializer. + +## Attributes + + + +### backend\_name + +`= 'fake_quebec'` + + + +### conf\_filename + +`= 'conf_quebec.json'` + + + +### coupling\_map + +Return the `CouplingMap` object + + + +### defs\_filename + +`= 'defs_quebec.json'` + + + +### dirname + +`= '/home/runner/work/qiskit-ibm-runtime/qiskit-ibm-runtime/qiskit_ibm_runtime/fake_provider/backends/quebec'` + + + +### dt + +Return the system time resolution of input signals + +This is required to be implemented if the backend supports Pulse scheduling. + +**Return type** + +`Optional`\[`float`] + +**Returns** + +The input signal timestep in seconds. If the backend doesn’t define `dt`, `None` will be returned. + + + +### dtm + +Return the system time resolution of output signals + +**Return type** + +`float` + +**Returns** + +The output signal timestep in seconds. + + + +### instruction\_durations + +Return the `InstructionDurations` object. + + + +### instruction\_schedule\_map + +Return the `InstructionScheduleMap` for the instructions defined in this backend’s target. + + + +### instructions + +A list of Instruction tuples on the backend of the form `(instruction, (qubits)` + +**Return type** + +`List`\[`Tuple`\[`Instruction`, `Tuple`\[`int`]]] + + + +### max\_circuits + +**Return type** + +`None` + + + +### meas\_map + +Return the grouping of measurements which are multiplexed This is required to be implemented if the backend supports Pulse scheduling. + +**Return type** + +`List`\[`List`\[`int`]] + +**Returns** + +The grouping of measurements which are multiplexed + + + +### num\_qubits + +Return the number of qubits the backend has. + +**Return type** + +`int` + + + +### operation\_names + +A list of instruction names that the backend supports. + +**Return type** + +`List`\[`str`] + + + +### operations + +A list of `Instruction` instances that the backend supports. + +**Return type** + +`List`\[`Instruction`] + + + +### options + +Return the options for the backend + +The options of a backend are the dynamic parameters defining how the backend is used. These are used to control the [`run()`](#qiskit_ibm_runtime.fake_provider.FakeQuebec.run "qiskit_ibm_runtime.fake_provider.FakeQuebec.run") method. + + + +### props\_filename + +`= 'props_quebec.json'` + + + +### provider + +Return the backend Provider. + +**Returns** + +the Provider responsible for the backend. + +**Return type** + +Provider + + + +### target + +A `qiskit.transpiler.Target` object for the backend. + +**Return type** + +Target + + + +### version + +`= 2` + + + +### name + +Name of the backend. + + + +### description + +Optional human-readable description. + + + +### online\_date + +Date that the backend came online. + + + +### backend\_version + +Version of the backend being provided. This is not the same as `BackendV2.version`, which is the version of the `Backend` abstract interface. + +## Methods + +### acquire\_channel + + + +`acquire_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L269-L282 "view source code") + +Return the acquisition channel for the given qubit. + +This is required to be implemented if the backend supports Pulse scheduling. + +**Returns** + +The Qubit measurement acquisition line. + +**Return type** + +AcquireChannel + +### control\_channel + + + +`control_channel(qubits)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L284-L304 "view source code") + +Return the secondary drive channel for the given qubit + +This is typically utilized for controlling multiqubit interactions. This channel is derived from other channels. + +This is required to be implemented if the backend supports Pulse scheduling. + +**Parameters** + +**qubits** (`Iterable`\[`int`]) – Tuple or list of qubits of the form `(control_qubit, target_qubit)`. + +**Returns** + +The multi qubit control line. + +**Return type** + +List\[ControlChannel] + +### drive\_channel + + + +`drive_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L239-L252 "view source code") + +Return the drive channel for the given qubit. + +This is required to be implemented if the backend supports Pulse scheduling. + +**Returns** + +The Qubit drive channel + +**Return type** + +DriveChannel + +### measure\_channel + + + +`measure_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L254-L267 "view source code") + +Return the measure stimulus channel for the given qubit. + +This is required to be implemented if the backend supports Pulse scheduling. + +**Returns** + +The Qubit measurement stimulus line + +**Return type** + +MeasureChannel + +### qubit\_properties + + + +`qubit_properties(qubit)` + +Return QubitProperties for a given qubit. + +If there are no defined or the backend doesn’t support querying these details this method does not need to be implemented. + +**Parameters** + +**qubit** (`Union`\[`int`, `List`\[`int`]]) – The qubit to get the `QubitProperties` object for. This can be a single integer for 1 qubit or a list of qubits and a list of `QubitProperties` objects will be returned in the same order + +**Return type** + +`Union`\[`QubitProperties`, `List`\[`QubitProperties`]] + +**Returns** + +The `QubitProperties` object for the specified qubit. If a list of qubits is provided a list will be returned. If properties are missing for a qubit this can be `None`. + +**Raises** + +**NotImplementedError** – if the backend doesn’t support querying the qubit properties + +### run + + + +`run(run_input, **options)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L306-L365 "view source code") + +Run on the fake backend using a simulator. + +This method runs circuit jobs (an individual or a list of QuantumCircuit ) and pulse jobs (an individual or a list of Schedule or ScheduleBlock) using BasicAer simulator/ BasicSimulator or Aer simulator and returns a `Job` object. + +If qiskit-aer is installed, jobs will be run using AerSimulator with noise model of the fake backend. Otherwise, jobs will be run using BasicAer simulator/ BasicSimulator simulator without noise. + +Currently noisy simulation of a pulse job is not supported yet in FakeBackendV2. + +**Parameters** + +* **run\_input** (*QuantumCircuit or Schedule or ScheduleBlock or list*) – An individual or a list of `QuantumCircuit`, `ScheduleBlock`, or `Schedule` objects to run on the backend. +* **options** – Any kwarg options to pass to the backend for running the config. If a key is also present in the options attribute/object then the expectation is that the value specified will be used instead of what’s set in the options object. + +**Returns** + +The job object for the run + +**Return type** + +Job + +**Raises** + +**QiskitError** – If a pulse job is supplied and qiskit-aer is not installed. + +### set\_options + + + +`set_options(**fields)` + +Set the options fields for the backend + +This method is used to update the options of a backend. If you need to change any of the options prior to running just pass in the kwarg with the new value for the options. + +**Parameters** + +**fields** – The fields to update the options + +**Raises** + +**AttributeError** – If the field passed in is not part of the options + diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeQuito.md b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeQuito.md index af26d993790..9456542a500 100644 --- a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeQuito.md +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeQuito.md @@ -10,7 +10,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeQuito -`FakeQuito` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/backends/quito/fake_quito.py#L31-L38 "view source code") +`FakeQuito` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/backends/quito/fake_quito.py#L31-L38 "view source code") A fake 5 qubit backend. @@ -89,7 +89,7 @@ BackendConfiguration -`defaults()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_pulse_backend.py#L29-L33 "view source code") +`defaults()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_pulse_backend.py#L29-L33 "view source code") Returns a snapshot of device defaults @@ -117,7 +117,7 @@ str -`properties()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_qasm_backend.py#L44-L48 "view source code") +`properties()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_qasm_backend.py#L44-L48 "view source code") Returns a snapshot of device properties @@ -145,7 +145,7 @@ Provider -`run(run_input, **kwargs)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L545-L574 "view source code") +`run(run_input, **kwargs)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L545-L574 "view source code") Main job in simulator diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeQuitoV2.md b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeQuitoV2.md index 194156b6493..34064cbb89f 100644 --- a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeQuitoV2.md +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeQuitoV2.md @@ -10,7 +10,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeQuitoV2 -`FakeQuitoV2` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/backends/quito/fake_quito.py#L21-L28 "view source code") +`FakeQuitoV2` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/backends/quito/fake_quito.py#L21-L28 "view source code") A fake 5 qubit backend. @@ -226,7 +226,7 @@ Version of the backend being provided. This is not the same as `BackendV2.versio -`acquire_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L269-L282 "view source code") +`acquire_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L269-L282 "view source code") Return the acquisition channel for the given qubit. @@ -244,7 +244,7 @@ AcquireChannel -`control_channel(qubits)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L284-L304 "view source code") +`control_channel(qubits)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L284-L304 "view source code") Return the secondary drive channel for the given qubit @@ -268,7 +268,7 @@ List\[ControlChannel] -`drive_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L239-L252 "view source code") +`drive_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L239-L252 "view source code") Return the drive channel for the given qubit. @@ -286,7 +286,7 @@ DriveChannel -`measure_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L254-L267 "view source code") +`measure_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L254-L267 "view source code") Return the measure stimulus channel for the given qubit. @@ -330,7 +330,7 @@ The `QubitProperties` object for the specified qubit. If a list of qubits is pro -`run(run_input, **options)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L306-L365 "view source code") +`run(run_input, **options)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L306-L365 "view source code") Run on the fake backend using a simulator. diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeRochester.md b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeRochester.md index 81179f2ba44..e80c124b0ae 100644 --- a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeRochester.md +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeRochester.md @@ -10,7 +10,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeRochester -`FakeRochester` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/backends/rochester/fake_rochester.py#L30-L36 "view source code") +`FakeRochester` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/backends/rochester/fake_rochester.py#L30-L36 "view source code") A fake Rochester backend. @@ -99,7 +99,7 @@ str -`properties()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_qasm_backend.py#L44-L48 "view source code") +`properties()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_qasm_backend.py#L44-L48 "view source code") Returns a snapshot of device properties @@ -127,7 +127,7 @@ Provider -`run(run_input, **kwargs)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L545-L574 "view source code") +`run(run_input, **kwargs)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L545-L574 "view source code") Main job in simulator diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeRochesterV2.md b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeRochesterV2.md index b25d523c06c..2dd9b222ed6 100644 --- a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeRochesterV2.md +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeRochesterV2.md @@ -10,7 +10,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeRochesterV2 -`FakeRochesterV2` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/backends/rochester/fake_rochester.py#L21-L27 "view source code") +`FakeRochesterV2` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/backends/rochester/fake_rochester.py#L21-L27 "view source code") A fake Rochester backend. @@ -226,7 +226,7 @@ Version of the backend being provided. This is not the same as `BackendV2.versio -`acquire_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L269-L282 "view source code") +`acquire_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L269-L282 "view source code") Return the acquisition channel for the given qubit. @@ -244,7 +244,7 @@ AcquireChannel -`control_channel(qubits)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L284-L304 "view source code") +`control_channel(qubits)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L284-L304 "view source code") Return the secondary drive channel for the given qubit @@ -268,7 +268,7 @@ List\[ControlChannel] -`drive_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L239-L252 "view source code") +`drive_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L239-L252 "view source code") Return the drive channel for the given qubit. @@ -286,7 +286,7 @@ DriveChannel -`measure_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L254-L267 "view source code") +`measure_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L254-L267 "view source code") Return the measure stimulus channel for the given qubit. @@ -330,7 +330,7 @@ The `QubitProperties` object for the specified qubit. If a list of qubits is pro -`run(run_input, **options)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L306-L365 "view source code") +`run(run_input, **options)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L306-L365 "view source code") Run on the fake backend using a simulator. diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeRome.md b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeRome.md index 2d2dc476151..68e1bf0366d 100644 --- a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeRome.md +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeRome.md @@ -10,7 +10,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeRome -`FakeRome` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/backends/rome/fake_rome.py#L31-L38 "view source code") +`FakeRome` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/backends/rome/fake_rome.py#L31-L38 "view source code") A fake 5 qubit backend. @@ -89,7 +89,7 @@ BackendConfiguration -`defaults()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_pulse_backend.py#L29-L33 "view source code") +`defaults()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_pulse_backend.py#L29-L33 "view source code") Returns a snapshot of device defaults @@ -117,7 +117,7 @@ str -`properties()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_qasm_backend.py#L44-L48 "view source code") +`properties()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_qasm_backend.py#L44-L48 "view source code") Returns a snapshot of device properties @@ -145,7 +145,7 @@ Provider -`run(run_input, **kwargs)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L545-L574 "view source code") +`run(run_input, **kwargs)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L545-L574 "view source code") Main job in simulator diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeRomeV2.md b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeRomeV2.md index 622d93c116d..6b2cab59ca1 100644 --- a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeRomeV2.md +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeRomeV2.md @@ -10,7 +10,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeRomeV2 -`FakeRomeV2` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/backends/rome/fake_rome.py#L21-L28 "view source code") +`FakeRomeV2` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/backends/rome/fake_rome.py#L21-L28 "view source code") A fake 5 qubit backend. @@ -226,7 +226,7 @@ Version of the backend being provided. This is not the same as `BackendV2.versio -`acquire_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L269-L282 "view source code") +`acquire_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L269-L282 "view source code") Return the acquisition channel for the given qubit. @@ -244,7 +244,7 @@ AcquireChannel -`control_channel(qubits)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L284-L304 "view source code") +`control_channel(qubits)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L284-L304 "view source code") Return the secondary drive channel for the given qubit @@ -268,7 +268,7 @@ List\[ControlChannel] -`drive_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L239-L252 "view source code") +`drive_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L239-L252 "view source code") Return the drive channel for the given qubit. @@ -286,7 +286,7 @@ DriveChannel -`measure_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L254-L267 "view source code") +`measure_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L254-L267 "view source code") Return the measure stimulus channel for the given qubit. @@ -330,7 +330,7 @@ The `QubitProperties` object for the specified qubit. If a list of qubits is pro -`run(run_input, **options)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L306-L365 "view source code") +`run(run_input, **options)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L306-L365 "view source code") Run on the fake backend using a simulator. diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeRueschlikon.md b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeRueschlikon.md index d10a03f3b23..29bf8d544b9 100644 --- a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeRueschlikon.md +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeRueschlikon.md @@ -10,7 +10,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeRueschlikon -`FakeRueschlikon` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/backends/rueschlikon/fake_rueschlikon.py#L21-L74 "view source code") +`FakeRueschlikon` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/backends/rueschlikon/fake_rueschlikon.py#L21-L74 "view source code") A fake 16 qubit backend. diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeSantiago.md b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeSantiago.md index ec524ccddcd..76e7a1aa370 100644 --- a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeSantiago.md +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeSantiago.md @@ -10,7 +10,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeSantiago -`FakeSantiago` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/backends/santiago/fake_santiago.py#L31-L38 "view source code") +`FakeSantiago` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/backends/santiago/fake_santiago.py#L31-L38 "view source code") A fake Santiago backend. @@ -89,7 +89,7 @@ BackendConfiguration -`defaults()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_pulse_backend.py#L29-L33 "view source code") +`defaults()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_pulse_backend.py#L29-L33 "view source code") Returns a snapshot of device defaults @@ -117,7 +117,7 @@ str -`properties()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_qasm_backend.py#L44-L48 "view source code") +`properties()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_qasm_backend.py#L44-L48 "view source code") Returns a snapshot of device properties @@ -145,7 +145,7 @@ Provider -`run(run_input, **kwargs)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L545-L574 "view source code") +`run(run_input, **kwargs)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L545-L574 "view source code") Main job in simulator diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeSantiagoV2.md b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeSantiagoV2.md index 47d2e67ac99..f3c8826b77e 100644 --- a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeSantiagoV2.md +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeSantiagoV2.md @@ -10,7 +10,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeSantiagoV2 -`FakeSantiagoV2` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/backends/santiago/fake_santiago.py#L21-L28 "view source code") +`FakeSantiagoV2` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/backends/santiago/fake_santiago.py#L21-L28 "view source code") A fake Santiago backend. @@ -226,7 +226,7 @@ Version of the backend being provided. This is not the same as `BackendV2.versio -`acquire_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L269-L282 "view source code") +`acquire_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L269-L282 "view source code") Return the acquisition channel for the given qubit. @@ -244,7 +244,7 @@ AcquireChannel -`control_channel(qubits)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L284-L304 "view source code") +`control_channel(qubits)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L284-L304 "view source code") Return the secondary drive channel for the given qubit @@ -268,7 +268,7 @@ List\[ControlChannel] -`drive_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L239-L252 "view source code") +`drive_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L239-L252 "view source code") Return the drive channel for the given qubit. @@ -286,7 +286,7 @@ DriveChannel -`measure_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L254-L267 "view source code") +`measure_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L254-L267 "view source code") Return the measure stimulus channel for the given qubit. @@ -330,7 +330,7 @@ The `QubitProperties` object for the specified qubit. If a list of qubits is pro -`run(run_input, **options)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L306-L365 "view source code") +`run(run_input, **options)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L306-L365 "view source code") Run on the fake backend using a simulator. diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeSherbrooke.md b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeSherbrooke.md index 67abf2d9a06..ba73b44b212 100644 --- a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeSherbrooke.md +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeSherbrooke.md @@ -10,7 +10,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeSherbrooke -`FakeSherbrooke` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/backends/sherbrooke/fake_sherbrooke.py#L21-L28 "view source code") +`FakeSherbrooke` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/backends/sherbrooke/fake_sherbrooke.py#L21-L28 "view source code") A fake 127 qubit backend. @@ -226,7 +226,7 @@ Version of the backend being provided. This is not the same as `BackendV2.versio -`acquire_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L269-L282 "view source code") +`acquire_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L269-L282 "view source code") Return the acquisition channel for the given qubit. @@ -244,7 +244,7 @@ AcquireChannel -`control_channel(qubits)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L284-L304 "view source code") +`control_channel(qubits)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L284-L304 "view source code") Return the secondary drive channel for the given qubit @@ -268,7 +268,7 @@ List\[ControlChannel] -`drive_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L239-L252 "view source code") +`drive_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L239-L252 "view source code") Return the drive channel for the given qubit. @@ -286,7 +286,7 @@ DriveChannel -`measure_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L254-L267 "view source code") +`measure_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L254-L267 "view source code") Return the measure stimulus channel for the given qubit. @@ -330,7 +330,7 @@ The `QubitProperties` object for the specified qubit. If a list of qubits is pro -`run(run_input, **options)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L306-L365 "view source code") +`run(run_input, **options)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L306-L365 "view source code") Run on the fake backend using a simulator. diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeSingapore.md b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeSingapore.md index 0f791011c15..8f70ac97610 100644 --- a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeSingapore.md +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeSingapore.md @@ -10,7 +10,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeSingapore -`FakeSingapore` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/backends/singapore/fake_singapore.py#L41-L58 "view source code") +`FakeSingapore` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/backends/singapore/fake_singapore.py#L41-L58 "view source code") A fake Singapore backend. @@ -109,7 +109,7 @@ str -`properties()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_qasm_backend.py#L44-L48 "view source code") +`properties()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_qasm_backend.py#L44-L48 "view source code") Returns a snapshot of device properties @@ -137,7 +137,7 @@ Provider -`run(run_input, **kwargs)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L545-L574 "view source code") +`run(run_input, **kwargs)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L545-L574 "view source code") Main job in simulator diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeSingaporeV2.md b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeSingaporeV2.md index 74b8768bb1e..e2a820f9080 100644 --- a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeSingaporeV2.md +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeSingaporeV2.md @@ -10,7 +10,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeSingaporeV2 -`FakeSingaporeV2` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/backends/singapore/fake_singapore.py#L21-L38 "view source code") +`FakeSingaporeV2` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/backends/singapore/fake_singapore.py#L21-L38 "view source code") A fake Singapore backend. @@ -236,7 +236,7 @@ Version of the backend being provided. This is not the same as `BackendV2.versio -`acquire_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L269-L282 "view source code") +`acquire_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L269-L282 "view source code") Return the acquisition channel for the given qubit. @@ -254,7 +254,7 @@ AcquireChannel -`control_channel(qubits)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L284-L304 "view source code") +`control_channel(qubits)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L284-L304 "view source code") Return the secondary drive channel for the given qubit @@ -278,7 +278,7 @@ List\[ControlChannel] -`drive_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L239-L252 "view source code") +`drive_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L239-L252 "view source code") Return the drive channel for the given qubit. @@ -296,7 +296,7 @@ DriveChannel -`measure_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L254-L267 "view source code") +`measure_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L254-L267 "view source code") Return the measure stimulus channel for the given qubit. @@ -340,7 +340,7 @@ The `QubitProperties` object for the specified qubit. If a list of qubits is pro -`run(run_input, **options)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L306-L365 "view source code") +`run(run_input, **options)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L306-L365 "view source code") Run on the fake backend using a simulator. diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeSydney.md b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeSydney.md index 4e05d4cfa3c..a5c8a529003 100644 --- a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeSydney.md +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeSydney.md @@ -10,7 +10,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeSydney -`FakeSydney` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/backends/sydney/fake_sydney.py#L31-L38 "view source code") +`FakeSydney` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/backends/sydney/fake_sydney.py#L31-L38 "view source code") A fake 27 qubit backend. @@ -89,7 +89,7 @@ BackendConfiguration -`defaults()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_pulse_backend.py#L29-L33 "view source code") +`defaults()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_pulse_backend.py#L29-L33 "view source code") Returns a snapshot of device defaults @@ -117,7 +117,7 @@ str -`properties()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_qasm_backend.py#L44-L48 "view source code") +`properties()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_qasm_backend.py#L44-L48 "view source code") Returns a snapshot of device properties @@ -145,7 +145,7 @@ Provider -`run(run_input, **kwargs)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L545-L574 "view source code") +`run(run_input, **kwargs)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L545-L574 "view source code") Main job in simulator diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeSydneyV2.md b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeSydneyV2.md index 615c773bbb6..a0e8236d1cb 100644 --- a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeSydneyV2.md +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeSydneyV2.md @@ -10,7 +10,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeSydneyV2 -`FakeSydneyV2` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/backends/sydney/fake_sydney.py#L21-L28 "view source code") +`FakeSydneyV2` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/backends/sydney/fake_sydney.py#L21-L28 "view source code") A fake 27 qubit backend. @@ -226,7 +226,7 @@ Version of the backend being provided. This is not the same as `BackendV2.versio -`acquire_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L269-L282 "view source code") +`acquire_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L269-L282 "view source code") Return the acquisition channel for the given qubit. @@ -244,7 +244,7 @@ AcquireChannel -`control_channel(qubits)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L284-L304 "view source code") +`control_channel(qubits)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L284-L304 "view source code") Return the secondary drive channel for the given qubit @@ -268,7 +268,7 @@ List\[ControlChannel] -`drive_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L239-L252 "view source code") +`drive_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L239-L252 "view source code") Return the drive channel for the given qubit. @@ -286,7 +286,7 @@ DriveChannel -`measure_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L254-L267 "view source code") +`measure_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L254-L267 "view source code") Return the measure stimulus channel for the given qubit. @@ -330,7 +330,7 @@ The `QubitProperties` object for the specified qubit. If a list of qubits is pro -`run(run_input, **options)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L306-L365 "view source code") +`run(run_input, **options)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L306-L365 "view source code") Run on the fake backend using a simulator. diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeTenerife.md b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeTenerife.md index 40dbdc95275..7b9aaf1541e 100644 --- a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeTenerife.md +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeTenerife.md @@ -10,7 +10,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeTenerife -`FakeTenerife` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/backends/tenerife/fake_tenerife.py#L28-L68 "view source code") +`FakeTenerife` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/backends/tenerife/fake_tenerife.py#L28-L68 "view source code") A fake 5 qubit backend. @@ -76,7 +76,7 @@ str -`properties()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/backends/tenerife/fake_tenerife.py#L62-L68 "view source code") +`properties()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/backends/tenerife/fake_tenerife.py#L62-L68 "view source code") Returns a snapshot of device properties as recorded on 8/30/19. diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeTokyo.md b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeTokyo.md index f67985278d5..4edc22ead5c 100644 --- a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeTokyo.md +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeTokyo.md @@ -10,7 +10,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeTokyo -`FakeTokyo` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/backends/tokyo/fake_tokyo.py#L28-L141 "view source code") +`FakeTokyo` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/backends/tokyo/fake_tokyo.py#L28-L141 "view source code") A fake 20 qubit backend. @@ -78,7 +78,7 @@ str -`properties()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/backends/tokyo/fake_tokyo.py#L135-L141 "view source code") +`properties()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/backends/tokyo/fake_tokyo.py#L135-L141 "view source code") Returns a snapshot of device properties as recorded on 8/30/19. diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeTorino.md b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeTorino.md new file mode 100644 index 00000000000..23b55c9178d --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeTorino.md @@ -0,0 +1,377 @@ +--- +title: FakeTorino +description: API reference for qiskit_ibm_runtime.fake_provider.FakeTorino +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.fake_provider.FakeTorino +--- + +# FakeTorino + + + +`FakeTorino` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/backends/torino/fake_torino.py#L21-L28 "view source code") + +A fake 133 qubit backend. + +FakeBackendV2 initializer. + +## Attributes + + + +### backend\_name + +`= 'fake_torino'` + + + +### conf\_filename + +`= 'conf_torino.json'` + + + +### coupling\_map + +Return the `CouplingMap` object + + + +### defs\_filename + +`= 'defs_torino.json'` + + + +### dirname + +`= '/home/runner/work/qiskit-ibm-runtime/qiskit-ibm-runtime/qiskit_ibm_runtime/fake_provider/backends/torino'` + + + +### dt + +Return the system time resolution of input signals + +This is required to be implemented if the backend supports Pulse scheduling. + +**Return type** + +`Optional`\[`float`] + +**Returns** + +The input signal timestep in seconds. If the backend doesn’t define `dt`, `None` will be returned. + + + +### dtm + +Return the system time resolution of output signals + +**Return type** + +`float` + +**Returns** + +The output signal timestep in seconds. + + + +### instruction\_durations + +Return the `InstructionDurations` object. + + + +### instruction\_schedule\_map + +Return the `InstructionScheduleMap` for the instructions defined in this backend’s target. + + + +### instructions + +A list of Instruction tuples on the backend of the form `(instruction, (qubits)` + +**Return type** + +`List`\[`Tuple`\[`Instruction`, `Tuple`\[`int`]]] + + + +### max\_circuits + +**Return type** + +`None` + + + +### meas\_map + +Return the grouping of measurements which are multiplexed This is required to be implemented if the backend supports Pulse scheduling. + +**Return type** + +`List`\[`List`\[`int`]] + +**Returns** + +The grouping of measurements which are multiplexed + + + +### num\_qubits + +Return the number of qubits the backend has. + +**Return type** + +`int` + + + +### operation\_names + +A list of instruction names that the backend supports. + +**Return type** + +`List`\[`str`] + + + +### operations + +A list of `Instruction` instances that the backend supports. + +**Return type** + +`List`\[`Instruction`] + + + +### options + +Return the options for the backend + +The options of a backend are the dynamic parameters defining how the backend is used. These are used to control the [`run()`](#qiskit_ibm_runtime.fake_provider.FakeTorino.run "qiskit_ibm_runtime.fake_provider.FakeTorino.run") method. + + + +### props\_filename + +`= 'props_torino.json'` + + + +### provider + +Return the backend Provider. + +**Returns** + +the Provider responsible for the backend. + +**Return type** + +Provider + + + +### target + +A `qiskit.transpiler.Target` object for the backend. + +**Return type** + +Target + + + +### version + +`= 2` + + + +### name + +Name of the backend. + + + +### description + +Optional human-readable description. + + + +### online\_date + +Date that the backend came online. + + + +### backend\_version + +Version of the backend being provided. This is not the same as `BackendV2.version`, which is the version of the `Backend` abstract interface. + +## Methods + +### acquire\_channel + + + +`acquire_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L269-L282 "view source code") + +Return the acquisition channel for the given qubit. + +This is required to be implemented if the backend supports Pulse scheduling. + +**Returns** + +The Qubit measurement acquisition line. + +**Return type** + +AcquireChannel + +### control\_channel + + + +`control_channel(qubits)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L284-L304 "view source code") + +Return the secondary drive channel for the given qubit + +This is typically utilized for controlling multiqubit interactions. This channel is derived from other channels. + +This is required to be implemented if the backend supports Pulse scheduling. + +**Parameters** + +**qubits** (`Iterable`\[`int`]) – Tuple or list of qubits of the form `(control_qubit, target_qubit)`. + +**Returns** + +The multi qubit control line. + +**Return type** + +List\[ControlChannel] + +### drive\_channel + + + +`drive_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L239-L252 "view source code") + +Return the drive channel for the given qubit. + +This is required to be implemented if the backend supports Pulse scheduling. + +**Returns** + +The Qubit drive channel + +**Return type** + +DriveChannel + +### measure\_channel + + + +`measure_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L254-L267 "view source code") + +Return the measure stimulus channel for the given qubit. + +This is required to be implemented if the backend supports Pulse scheduling. + +**Returns** + +The Qubit measurement stimulus line + +**Return type** + +MeasureChannel + +### qubit\_properties + + + +`qubit_properties(qubit)` + +Return QubitProperties for a given qubit. + +If there are no defined or the backend doesn’t support querying these details this method does not need to be implemented. + +**Parameters** + +**qubit** (`Union`\[`int`, `List`\[`int`]]) – The qubit to get the `QubitProperties` object for. This can be a single integer for 1 qubit or a list of qubits and a list of `QubitProperties` objects will be returned in the same order + +**Return type** + +`Union`\[`QubitProperties`, `List`\[`QubitProperties`]] + +**Returns** + +The `QubitProperties` object for the specified qubit. If a list of qubits is provided a list will be returned. If properties are missing for a qubit this can be `None`. + +**Raises** + +**NotImplementedError** – if the backend doesn’t support querying the qubit properties + +### run + + + +`run(run_input, **options)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L306-L365 "view source code") + +Run on the fake backend using a simulator. + +This method runs circuit jobs (an individual or a list of QuantumCircuit ) and pulse jobs (an individual or a list of Schedule or ScheduleBlock) using BasicAer simulator/ BasicSimulator or Aer simulator and returns a `Job` object. + +If qiskit-aer is installed, jobs will be run using AerSimulator with noise model of the fake backend. Otherwise, jobs will be run using BasicAer simulator/ BasicSimulator simulator without noise. + +Currently noisy simulation of a pulse job is not supported yet in FakeBackendV2. + +**Parameters** + +* **run\_input** (*QuantumCircuit or Schedule or ScheduleBlock or list*) – An individual or a list of `QuantumCircuit`, `ScheduleBlock`, or `Schedule` objects to run on the backend. +* **options** – Any kwarg options to pass to the backend for running the config. If a key is also present in the options attribute/object then the expectation is that the value specified will be used instead of what’s set in the options object. + +**Returns** + +The job object for the run + +**Return type** + +Job + +**Raises** + +**QiskitError** – If a pulse job is supplied and qiskit-aer is not installed. + +### set\_options + + + +`set_options(**fields)` + +Set the options fields for the backend + +This method is used to update the options of a backend. If you need to change any of the options prior to running just pass in the kwarg with the new value for the options. + +**Parameters** + +**fields** – The fields to update the options + +**Raises** + +**AttributeError** – If the field passed in is not part of the options + diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeToronto.md b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeToronto.md index 072908e34b6..58557dc9eac 100644 --- a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeToronto.md +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeToronto.md @@ -10,7 +10,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeToronto -`FakeToronto` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/backends/toronto/fake_toronto.py#L31-L38 "view source code") +`FakeToronto` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/backends/toronto/fake_toronto.py#L31-L38 "view source code") A fake 27 qubit backend. @@ -89,7 +89,7 @@ BackendConfiguration -`defaults()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_pulse_backend.py#L29-L33 "view source code") +`defaults()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_pulse_backend.py#L29-L33 "view source code") Returns a snapshot of device defaults @@ -117,7 +117,7 @@ str -`properties()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_qasm_backend.py#L44-L48 "view source code") +`properties()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_qasm_backend.py#L44-L48 "view source code") Returns a snapshot of device properties @@ -145,7 +145,7 @@ Provider -`run(run_input, **kwargs)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L545-L574 "view source code") +`run(run_input, **kwargs)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L545-L574 "view source code") Main job in simulator diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeTorontoV2.md b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeTorontoV2.md index a5ea3d0dd79..6c12223e178 100644 --- a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeTorontoV2.md +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeTorontoV2.md @@ -10,7 +10,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeTorontoV2 -`FakeTorontoV2` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/backends/toronto/fake_toronto.py#L21-L28 "view source code") +`FakeTorontoV2` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/backends/toronto/fake_toronto.py#L21-L28 "view source code") A fake 27 qubit backend. @@ -226,7 +226,7 @@ Version of the backend being provided. This is not the same as `BackendV2.versio -`acquire_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L269-L282 "view source code") +`acquire_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L269-L282 "view source code") Return the acquisition channel for the given qubit. @@ -244,7 +244,7 @@ AcquireChannel -`control_channel(qubits)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L284-L304 "view source code") +`control_channel(qubits)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L284-L304 "view source code") Return the secondary drive channel for the given qubit @@ -268,7 +268,7 @@ List\[ControlChannel] -`drive_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L239-L252 "view source code") +`drive_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L239-L252 "view source code") Return the drive channel for the given qubit. @@ -286,7 +286,7 @@ DriveChannel -`measure_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L254-L267 "view source code") +`measure_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L254-L267 "view source code") Return the measure stimulus channel for the given qubit. @@ -330,7 +330,7 @@ The `QubitProperties` object for the specified qubit. If a list of qubits is pro -`run(run_input, **options)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L306-L365 "view source code") +`run(run_input, **options)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L306-L365 "view source code") Run on the fake backend using a simulator. diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeValencia.md b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeValencia.md index 98f2f35d029..452e4cf79cd 100644 --- a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeValencia.md +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeValencia.md @@ -10,7 +10,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeValencia -`FakeValencia` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/backends/valencia/fake_valencia.py#L31-L38 "view source code") +`FakeValencia` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/backends/valencia/fake_valencia.py#L31-L38 "view source code") A fake 5 qubit backend. @@ -89,7 +89,7 @@ BackendConfiguration -`defaults()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_pulse_backend.py#L29-L33 "view source code") +`defaults()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_pulse_backend.py#L29-L33 "view source code") Returns a snapshot of device defaults @@ -117,7 +117,7 @@ str -`properties()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_qasm_backend.py#L44-L48 "view source code") +`properties()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_qasm_backend.py#L44-L48 "view source code") Returns a snapshot of device properties @@ -145,7 +145,7 @@ Provider -`run(run_input, **kwargs)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L545-L574 "view source code") +`run(run_input, **kwargs)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L545-L574 "view source code") Main job in simulator diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeValenciaV2.md b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeValenciaV2.md index 54908a211b9..71902091552 100644 --- a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeValenciaV2.md +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeValenciaV2.md @@ -10,7 +10,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeValenciaV2 -`FakeValenciaV2` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/backends/valencia/fake_valencia.py#L21-L28 "view source code") +`FakeValenciaV2` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/backends/valencia/fake_valencia.py#L21-L28 "view source code") A fake 5 qubit backend. @@ -226,7 +226,7 @@ Version of the backend being provided. This is not the same as `BackendV2.versio -`acquire_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L269-L282 "view source code") +`acquire_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L269-L282 "view source code") Return the acquisition channel for the given qubit. @@ -244,7 +244,7 @@ AcquireChannel -`control_channel(qubits)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L284-L304 "view source code") +`control_channel(qubits)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L284-L304 "view source code") Return the secondary drive channel for the given qubit @@ -268,7 +268,7 @@ List\[ControlChannel] -`drive_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L239-L252 "view source code") +`drive_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L239-L252 "view source code") Return the drive channel for the given qubit. @@ -286,7 +286,7 @@ DriveChannel -`measure_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L254-L267 "view source code") +`measure_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L254-L267 "view source code") Return the measure stimulus channel for the given qubit. @@ -330,7 +330,7 @@ The `QubitProperties` object for the specified qubit. If a list of qubits is pro -`run(run_input, **options)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L306-L365 "view source code") +`run(run_input, **options)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L306-L365 "view source code") Run on the fake backend using a simulator. diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeVigo.md b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeVigo.md index b7098a7cac0..d04962cfe8a 100644 --- a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeVigo.md +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeVigo.md @@ -10,7 +10,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeVigo -`FakeVigo` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/backends/vigo/fake_vigo.py#L37-L50 "view source code") +`FakeVigo` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/backends/vigo/fake_vigo.py#L37-L50 "view source code") A fake 5 qubit backend. @@ -105,7 +105,7 @@ str -`properties()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_qasm_backend.py#L44-L48 "view source code") +`properties()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_qasm_backend.py#L44-L48 "view source code") Returns a snapshot of device properties @@ -133,7 +133,7 @@ Provider -`run(run_input, **kwargs)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L545-L574 "view source code") +`run(run_input, **kwargs)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L545-L574 "view source code") Main job in simulator diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeVigoV2.md b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeVigoV2.md index 4da4f84551c..4fed4f09d6e 100644 --- a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeVigoV2.md +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeVigoV2.md @@ -10,7 +10,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeVigoV2 -`FakeVigoV2` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/backends/vigo/fake_vigo.py#L21-L34 "view source code") +`FakeVigoV2` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/backends/vigo/fake_vigo.py#L21-L34 "view source code") A fake 5 qubit backend. @@ -232,7 +232,7 @@ Version of the backend being provided. This is not the same as `BackendV2.versio -`acquire_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L269-L282 "view source code") +`acquire_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L269-L282 "view source code") Return the acquisition channel for the given qubit. @@ -250,7 +250,7 @@ AcquireChannel -`control_channel(qubits)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L284-L304 "view source code") +`control_channel(qubits)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L284-L304 "view source code") Return the secondary drive channel for the given qubit @@ -274,7 +274,7 @@ List\[ControlChannel] -`drive_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L239-L252 "view source code") +`drive_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L239-L252 "view source code") Return the drive channel for the given qubit. @@ -292,7 +292,7 @@ DriveChannel -`measure_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L254-L267 "view source code") +`measure_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L254-L267 "view source code") Return the measure stimulus channel for the given qubit. @@ -336,7 +336,7 @@ The `QubitProperties` object for the specified qubit. If a list of qubits is pro -`run(run_input, **options)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L306-L365 "view source code") +`run(run_input, **options)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L306-L365 "view source code") Run on the fake backend using a simulator. diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeWashington.md b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeWashington.md index 3b6a69f2942..1cadc7f2143 100644 --- a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeWashington.md +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeWashington.md @@ -10,7 +10,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeWashington -`FakeWashington` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/backends/washington/fake_washington.py#L31-L38 "view source code") +`FakeWashington` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/backends/washington/fake_washington.py#L31-L38 "view source code") A fake 127 qubit backend. @@ -89,7 +89,7 @@ BackendConfiguration -`defaults()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_pulse_backend.py#L29-L33 "view source code") +`defaults()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_pulse_backend.py#L29-L33 "view source code") Returns a snapshot of device defaults @@ -117,7 +117,7 @@ str -`properties()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_qasm_backend.py#L44-L48 "view source code") +`properties()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_qasm_backend.py#L44-L48 "view source code") Returns a snapshot of device properties @@ -145,7 +145,7 @@ Provider -`run(run_input, **kwargs)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L545-L574 "view source code") +`run(run_input, **kwargs)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L545-L574 "view source code") Main job in simulator diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeWashingtonV2.md b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeWashingtonV2.md index f8411be62da..cd2cab0aa69 100644 --- a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeWashingtonV2.md +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeWashingtonV2.md @@ -10,7 +10,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeWashingtonV2 -`FakeWashingtonV2` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/backends/washington/fake_washington.py#L21-L28 "view source code") +`FakeWashingtonV2` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/backends/washington/fake_washington.py#L21-L28 "view source code") A fake 127 qubit backend. @@ -226,7 +226,7 @@ Version of the backend being provided. This is not the same as `BackendV2.versio -`acquire_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L269-L282 "view source code") +`acquire_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L269-L282 "view source code") Return the acquisition channel for the given qubit. @@ -244,7 +244,7 @@ AcquireChannel -`control_channel(qubits)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L284-L304 "view source code") +`control_channel(qubits)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L284-L304 "view source code") Return the secondary drive channel for the given qubit @@ -268,7 +268,7 @@ List\[ControlChannel] -`drive_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L239-L252 "view source code") +`drive_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L239-L252 "view source code") Return the drive channel for the given qubit. @@ -286,7 +286,7 @@ DriveChannel -`measure_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L254-L267 "view source code") +`measure_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L254-L267 "view source code") Return the measure stimulus channel for the given qubit. @@ -330,7 +330,7 @@ The `QubitProperties` object for the specified qubit. If a list of qubits is pro -`run(run_input, **options)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L306-L365 "view source code") +`run(run_input, **options)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L306-L365 "view source code") Run on the fake backend using a simulator. diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeYorktown.md b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeYorktown.md index 64de0b96149..84867e154d2 100644 --- a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeYorktown.md +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeYorktown.md @@ -10,7 +10,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeYorktown -`FakeYorktown` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/backends/yorktown/fake_yorktown.py#L39-L54 "view source code") +`FakeYorktown` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/backends/yorktown/fake_yorktown.py#L39-L54 "view source code") A fake 5 qubit backend. @@ -107,7 +107,7 @@ str -`properties()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_qasm_backend.py#L44-L48 "view source code") +`properties()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_qasm_backend.py#L44-L48 "view source code") Returns a snapshot of device properties @@ -135,7 +135,7 @@ Provider -`run(run_input, **kwargs)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L545-L574 "view source code") +`run(run_input, **kwargs)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L545-L574 "view source code") Main job in simulator diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeYorktownV2.md b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeYorktownV2.md index e43c336f65f..c6926f78e93 100644 --- a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeYorktownV2.md +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.fake_provider.FakeYorktownV2.md @@ -10,7 +10,7 @@ python_api_name: qiskit_ibm_runtime.fake_provider.FakeYorktownV2 -`FakeYorktownV2` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/backends/yorktown/fake_yorktown.py#L21-L36 "view source code") +`FakeYorktownV2` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/backends/yorktown/fake_yorktown.py#L21-L36 "view source code") A fake 5 qubit backend. @@ -234,7 +234,7 @@ Version of the backend being provided. This is not the same as `BackendV2.versio -`acquire_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L269-L282 "view source code") +`acquire_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L269-L282 "view source code") Return the acquisition channel for the given qubit. @@ -252,7 +252,7 @@ AcquireChannel -`control_channel(qubits)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L284-L304 "view source code") +`control_channel(qubits)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L284-L304 "view source code") Return the secondary drive channel for the given qubit @@ -276,7 +276,7 @@ List\[ControlChannel] -`drive_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L239-L252 "view source code") +`drive_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L239-L252 "view source code") Return the drive channel for the given qubit. @@ -294,7 +294,7 @@ DriveChannel -`measure_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L254-L267 "view source code") +`measure_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L254-L267 "view source code") Return the measure stimulus channel for the given qubit. @@ -338,7 +338,7 @@ The `QubitProperties` object for the specified qubit. If a list of qubits is pro -`run(run_input, **options)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/fake_provider/fake_backend.py#L306-L365 "view source code") +`run(run_input, **options)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/fake_provider/fake_backend.py#L306-L365 "view source code") Run on the fake backend using a simulator. diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.options.DynamicalDecouplingOptions.md b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.options.DynamicalDecouplingOptions.md new file mode 100644 index 00000000000..ab02d0340c1 --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.options.DynamicalDecouplingOptions.md @@ -0,0 +1,73 @@ +--- +title: DynamicalDecouplingOptions +description: API reference for qiskit_ibm_runtime.options.DynamicalDecouplingOptions +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.options.DynamicalDecouplingOptions +--- + +# DynamicalDecouplingOptions + + + +`DynamicalDecouplingOptions(*args, **kwargs)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/options/dynamical_decoupling_options.py#L20-L50 "view source code") + +Options for dynamical decoupling (DD). + +**Parameters** + +* **enable** – Whether to enable DD as specified by the other options in this class. Default: False. + +* **sequence\_type** – + + Which dynamical decoupling sequence to use. Default: “XX”. + + * `"XX"`: use the sequence `tau/2 - (+X) - tau - (+X) - tau/2` + * `"XpXm"`: use the sequence `tau/2 - (+X) - tau - (-X) - tau/2` + * `"XY4"`: : use the sequence `tau/2 - (+X) - tau - (+Y) - tau (-X) - tau - (-Y) - tau/2` + +* **extra\_slack\_distribution** – + + Where to put extra timing delays due to rounding issues. Rounding issues arise because the discrete time step `dt` of the system cannot be divided. This option takes following values. Default: “middle”. + + * `"middle"`: Put the extra slack to the interval at the middle of the sequence. + * `"edges"`: Divide the extra slack as evenly as possible into intervals at beginning and end of the sequence. + +* **scheduling\_method** – Whether to schedule gates as soon as (“asap”) or as late as (“alap”) possible. Default: “alap”. + +## Attributes + + + +### enable + +`UnsetType | bool` + +`= Unset` + + + +### extra\_slack\_distribution + +`UnsetType | Literal['middle', 'edges']` + +`= Unset` + + + +### scheduling\_method + +`UnsetType | Literal['alap', 'asap']` + +`= Unset` + + + +### sequence\_type + +`UnsetType | Literal['XX', 'XpXm', 'XY4']` + +`= Unset` + +## Methods + diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.options.EnvironmentOptions.md b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.options.EnvironmentOptions.md index 04659f16d89..7e72615891c 100644 --- a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.options.EnvironmentOptions.md +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.options.EnvironmentOptions.md @@ -10,22 +10,22 @@ python_api_name: qiskit_ibm_runtime.options.EnvironmentOptions -`EnvironmentOptions(log_level='WARNING', callback=None, job_tags=)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/options/environment_options.py#L27-L62 "view source code") +`EnvironmentOptions(*args, **kwargs)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/options/environment_options.py#L28-L50 "view source code") Options related to the execution environment. **Parameters** -* **log\_level** (`str`) – logging level to set in the execution environment. The valid log levels are: `DEBUG`, `INFO`, `WARNING`, `ERROR`, and `CRITICAL`. The default level is `WARNING`. +* **log\_level** – logging level to set in the execution environment. The valid log levels are: `DEBUG`, `INFO`, `WARNING`, `ERROR`, and `CRITICAL`. Default: `WARNING`. -* **callback** (`Optional`\[`Callable`]) – +* **callback** – Callback function to be invoked for any interim results and final result. The callback function will receive 2 positional parameters: > 1. Job ID > 2. Job result. -* **job\_tags** (`Optional`\[`List`]) – Tags to be assigned to the job. The tags can subsequently be used as a filter in the `qiskit_ibm_runtime.qiskit_runtime_service.jobs()` function call. +* **job\_tags** – Tags to be assigned to the job. The tags can subsequently be used as a filter in the `qiskit_ibm_runtime.qiskit_runtime_service.jobs()` function call. ## Attributes @@ -37,31 +37,21 @@ Options related to the execution environment. `= None` - - -### log\_level - -`str` - -`= 'WARNING'` - ### job\_tags `List | None` -## Methods - -### validate\_environment\_options +`= None` - + -`static validate_environment_options(environment_options)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/options/environment_options.py#L51-L62 "view source code") +### log\_level -Validate that environment options are legal. :raises ValueError: if log\_level is not in LogLevelType. +`Literal['DEBUG', 'INFO', 'WARNING', 'ERROR', 'CRITICAL']` -**Return type** +`= 'WARNING'` -`None` +## Methods diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.options.EstimatorOptions.md b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.options.EstimatorOptions.md new file mode 100644 index 00000000000..9e64e3be5ba --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.options.EstimatorOptions.md @@ -0,0 +1,189 @@ +--- +title: EstimatorOptions +description: API reference for qiskit_ibm_runtime.options.EstimatorOptions +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.options.EstimatorOptions +--- + +# EstimatorOptions + + + +`EstimatorOptions(*args, **kwargs)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/options/estimator_options.py#L35-L125 "view source code") + +Options for V2 Estimator. + +**Parameters** + +* **default\_precision** – The default precision to use for any PUB or `run()` call that does not specify one. Each estimator pub can specify its own precision. If the `run()` method is given a precision, then that value is used for all PUBs in the `run()` call that do not specify their own. Default: 0.015625 (1 / sqrt(4096). + +* **default\_shots** – + + The total number of shots to use per circuit per configuration. + + + If set, this value overrides [`default_precision`](#qiskit_ibm_runtime.options.EstimatorOptions.default_precision "qiskit_ibm_runtime.options.EstimatorOptions.default_precision"). + + + A configuration is a combination of a specific parameter value binding set and a physical measurement basis. A physical measurement basis groups together some collection of qubit-wise commuting observables for some specific circuit/parameter value set to create a single measurement with basis rotations that is inserted into hardware executions. + + If twirling is enabled, the value of this option will be divided over circuit, randomizations, with a smaller number of shots per randomization. See the [`twirling`](#qiskit_ibm_runtime.options.EstimatorOptions.twirling "qiskit_ibm_runtime.options.EstimatorOptions.twirling") options. + + Default: `None`. + +* **optimization\_level** – + + How much optimization to perform on the circuits. Higher levels generate more optimized circuits, at the expense of longer processing times. + + * 0: no optimization + * 1: light optimization + + Refer to the [Configure runtime compilation for Qiskit Runtime](/run/configure-runtime-compilation). for more information about the optimization levels. + + Default: 1. + +* **resilience\_level** – + + How much resilience to build against errors. Higher levels generate more accurate results, at the expense of longer processing times. + + * 0: No mitigation. + * 1: Minimal mitigation costs. Mitigate error associated with readout errors. + * 2: Medium mitigation costs. Typically reduces bias in estimators but is not guaranteed to be zero bias. + + Refer to the [Configure error mitigation for Qiskit Runtime](/run/configure-error-mitigation). for more information about the error mitigation methods used at each level. + + Default: 1. + +* **seed\_estimator** – Seed used to control sampling. + +* **dynamical\_decoupling** – Suboptions for dynamical decoupling. See [`DynamicalDecouplingOptions`](qiskit_ibm_runtime.options.DynamicalDecouplingOptions "qiskit_ibm_runtime.options.DynamicalDecouplingOptions") for all available options. + +* **resilience** – Advanced resilience options to fine tune the resilience strategy. See [`ResilienceOptionsV2`](qiskit_ibm_runtime.options.ResilienceOptionsV2 "qiskit_ibm_runtime.options.ResilienceOptionsV2") for all available options. + +* **execution** – Execution time options. See [`ExecutionOptionsV2`](qiskit_ibm_runtime.options.ExecutionOptionsV2 "qiskit_ibm_runtime.options.ExecutionOptionsV2") for all available options. + +* **twirling** – Pauli twirling options. See [`TwirlingOptions`](qiskit_ibm_runtime.options.TwirlingOptions "qiskit_ibm_runtime.options.TwirlingOptions") for all available options. + +* **experimental** – Experimental options. + +## Attributes + + + +### default\_precision + +`UnsetType | float` + +`= Unset` + + + +### default\_shots + +`UnsetType | int | None` + +`= Unset` + + + +### dynamical\_decoupling + +`DynamicalDecouplingOptions | Dict` + +`= FieldInfo(annotation=Union[DynamicalDecouplingOptions, Dict], required=False, default_factory=DynamicalDecouplingOptions)` + + + +### environment + +`EnvironmentOptions | Dict` + +`= FieldInfo(annotation=Union[EnvironmentOptions, Dict], required=False, default_factory=EnvironmentOptions)` + + + +### execution + +`ExecutionOptionsV2 | Dict` + +`= FieldInfo(annotation=Union[ExecutionOptionsV2, Dict], required=False, default_factory=ExecutionOptionsV2)` + + + +### experimental + +`UnsetType | dict` + +`= Unset` + + + +### max\_execution\_time + +`UnsetType | int` + +`= Unset` + + + +### optimization\_level + +`UnsetType | int` + +`= Unset` + + + +### resilience + +`ResilienceOptionsV2 | Dict` + +`= FieldInfo(annotation=Union[ResilienceOptionsV2, Dict], required=False, default_factory=ResilienceOptionsV2)` + + + +### resilience\_level + +`UnsetType | int` + +`= Unset` + + + +### seed\_estimator + +`UnsetType | int` + +`= Unset` + + + +### simulator + +`SimulatorOptions | Dict` + +`= FieldInfo(annotation=Union[SimulatorOptions, Dict], required=False, default_factory=SimulatorOptions)` + + + +### twirling + +`TwirlingOptions | Dict` + +`= FieldInfo(annotation=Union[TwirlingOptions, Dict], required=False, default_factory=TwirlingOptions)` + +## Methods + +### update + + + +`update(**kwargs)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/options/options.py#L106-L111 "view source code") + +Update the options. + +**Return type** + +`None` + diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.options.ExecutionOptions.md b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.options.ExecutionOptions.md index 390cd6cbe76..8d969721702 100644 --- a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.options.ExecutionOptions.md +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.options.ExecutionOptions.md @@ -10,14 +10,14 @@ python_api_name: qiskit_ibm_runtime.options.ExecutionOptions -`ExecutionOptions(shots=4000, init_qubits=True)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/options/execution_options.py#L25-L47 "view source code") +`ExecutionOptions(*args, **kwargs)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/options/execution_options.py#L40-L52 "view source code") -Execution options. +Execution options for V1 primitives. **Parameters** -* **shots** (`int`) – Number of repetitions of each circuit, for sampling. Default: 4000. -* **init\_qubits** (`bool`) – Whether to reset the qubits to the ground state for each shot. Default: `True`. +* **shots** – Number of repetitions of each circuit, for sampling. Default: 4000. +* **init\_qubits** – Whether to reset the qubits to the ground state for each shot. Default: `True`. ## Attributes @@ -39,15 +39,3 @@ Execution options. ## Methods -### validate\_execution\_options - - - -`static validate_execution_options(execution_options)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/options/execution_options.py#L39-L47 "view source code") - -Validate that execution options are legal. :raises ValueError: if any execution option is not supported - -**Return type** - -`None` - diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.options.ExecutionOptionsV2.md b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.options.ExecutionOptionsV2.md new file mode 100644 index 00000000000..b87eba05b89 --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.options.ExecutionOptionsV2.md @@ -0,0 +1,41 @@ +--- +title: ExecutionOptionsV2 +description: API reference for qiskit_ibm_runtime.options.ExecutionOptionsV2 +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.options.ExecutionOptionsV2 +--- + +# ExecutionOptionsV2 + + + +`ExecutionOptionsV2(*args, **kwargs)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/options/execution_options.py#L20-L37 "view source code") + +Execution options for V2 primitives. + +**Parameters** + +* **init\_qubits** – Whether to reset the qubits to the ground state for each shot. Default: `True`. +* **rep\_delay** – The repetition delay. This is the delay between a measurement and the subsequent quantum circuit. This is only supported on backends that have `backend.dynamic_reprate_enabled=True`. It must be from the range supplied by `backend.rep_delay_range`. Default is given by `backend.default_rep_delay`. + +## Attributes + + + +### init\_qubits + +`UnsetType | bool` + +`= Unset` + + + +### rep\_delay + +`UnsetType | float` + +`= Unset` + +## Methods + diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.options.LayerNoiseLearningOptions.md b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.options.LayerNoiseLearningOptions.md new file mode 100644 index 00000000000..62ec825f85a --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.options.LayerNoiseLearningOptions.md @@ -0,0 +1,63 @@ +--- +title: LayerNoiseLearningOptions +description: API reference for qiskit_ibm_runtime.options.LayerNoiseLearningOptions +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.options.LayerNoiseLearningOptions +--- + +# LayerNoiseLearningOptions + + + +`LayerNoiseLearningOptions(*args, **kwargs)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/options/layer_noise_learning_options.py#L28-L75 "view source code") + +Options for learning layer noise. + + + These options are only used when the resilience level or options specify a technique that requires layer noise learning. + + +**Parameters** + +* **max\_layers\_to\_learn** – The max number of unique layers to learn. A `None` value indicates that there is no limit. If there are more unique layers present, then some layers will not be learned or mitigated. The learned layers are prioritized based on the number of times they occur in a set of run estimator PUBs, and for equally occurring layers are further sorted by the number of two-qubit gates in the layer. +* **shots\_per\_randomization** – The total number of shots to use per random learning circuit. A learning circuit is a random circuit at a specific learning depth with a specific measurement basis that is executed on hardware. Default: 128. +* **num\_randomizations** – The number of random circuits to use per learning circuit configuration. A configuration is a measurement basis and depth setting. For example, if your experiment has six depths, and nine required measurement bases, then setting this value to 32 will result in a total of `32 * 9 * 6` circuits that need to be executed (at [`shots_per_randomization`](#qiskit_ibm_runtime.options.LayerNoiseLearningOptions.shots_per_randomization "qiskit_ibm_runtime.options.LayerNoiseLearningOptions.shots_per_randomization") each). Default: 32. +* **layer\_pair\_depths** – The circuit depths (measured in number of pairs) to use in learning experiments. Pairs are used as the unit because we exploit the order-2 nature of our entangling gates in the noise learning implementation. A value of `3` would correspond to 6 layers of the layer of interest, for example. Default: (0, 1, 2, 4, 16, 32). + +## Attributes + + + +### layer\_pair\_depths + +`UnsetType | List[int]` + +`= Unset` + + + +### max\_layers\_to\_learn + +`UnsetType | int | None` + +`= Unset` + + + +### num\_randomizations + +`UnsetType | int` + +`= Unset` + + + +### shots\_per\_randomization + +`UnsetType | int` + +`= Unset` + +## Methods + diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.options.MeasureNoiseLearningOptions.md b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.options.MeasureNoiseLearningOptions.md new file mode 100644 index 00000000000..42724d15dd1 --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.options.MeasureNoiseLearningOptions.md @@ -0,0 +1,45 @@ +--- +title: MeasureNoiseLearningOptions +description: API reference for qiskit_ibm_runtime.options.MeasureNoiseLearningOptions +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.options.MeasureNoiseLearningOptions +--- + +# MeasureNoiseLearningOptions + + + +`MeasureNoiseLearningOptions(*args, **kwargs)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/options/measure_noise_learning_options.py#L20-L40 "view source code") + +Options for measurement noise learning. + + + These options are only used when the resilience level or options specify a technique that requires measurement noise learning. + + +**Parameters** + +* **num\_randomizations** – The number of random circuits to draw for the measurement learning experiment. Default: 32. +* **shots\_per\_randomization** – The number of shots to use for the learning experiment per random circuit. If “auto”, the value will be chosen automatically based on the input PUBs. Default: “auto”. + +## Attributes + + + +### num\_randomizations + +`UnsetType | int` + +`= Unset` + + + +### shots\_per\_randomization + +`UnsetType | int | Literal['auto']` + +`= Unset` + +## Methods + diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.options.Options.md b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.options.Options.md index e4f8352ea2d..f86ad5de041 100644 --- a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.options.Options.md +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.options.Options.md @@ -10,9 +10,9 @@ python_api_name: qiskit_ibm_runtime.options.Options -`Options(optimization_level=None, resilience_level=None, max_execution_time=None, transpilation=, resilience=, execution=, environment=, simulator=)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/options/options.py#L32-L279 "view source code") +`Options(optimization_level=None, resilience_level=None, max_execution_time=None, transpilation=, resilience=, execution=, environment=, simulator=)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/options/options.py#L172-L404 "view source code") -Options for the primitives. +Options for the primitives, used by V1 primitives. **Parameters** @@ -114,7 +114,7 @@ Options for the primitives. -`static validate_options(options)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/options/options.py#L165-L190 "view source code") +`static validate_options(options)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/options/options.py#L306-L334 "view source code") Validate that program inputs (options) are valid :raises ValueError: if optimization\_level is outside the allowed range. :raises ValueError: if max\_execution\_time is outside the allowed range. diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.options.PecOptions.md b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.options.PecOptions.md new file mode 100644 index 00000000000..1fba85712ae --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.options.PecOptions.md @@ -0,0 +1,50 @@ +--- +title: PecOptions +description: API reference for qiskit_ibm_runtime.options.PecOptions +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.options.PecOptions +--- + +# PecOptions + + + +`PecOptions(*args, **kwargs)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/options/pec_options.py#L20-L41 "view source code") + +Probabalistic error cancellation mitigation options. + +**Parameters** + +* **max\_overhead** – The maximum circuit sampling overhead allowed, or `None` for no maximum. + +* **noise\_gain** – + + The amount by which to scale the noise, where: + + * A value of one corresponds to attempting to remove all of the noise. + * A value greater than one corresponds to injecting noise. + * A value between 0 and 1 corresponds to partially removing the noise. + + If “auto”, the value will be chosen automatically based on the input PUBs. Default: “auto”. + +## Attributes + + + +### max\_overhead + +`UnsetType | float | None` + +`= Unset` + + + +### noise\_gain + +`UnsetType | float | Literal['auto']` + +`= Unset` + +## Methods + diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.options.ResilienceOptions.md b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.options.ResilienceOptions.md index 6430212cf4a..cb07fb971c4 100644 --- a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.options.ResilienceOptions.md +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.options.ResilienceOptions.md @@ -10,16 +10,16 @@ python_api_name: qiskit_ibm_runtime.options.ResilienceOptions -`ResilienceOptions(noise_amplifier=None, noise_factors=None, extrapolator=None)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/options/resilience_options.py#L34-L91 "view source code") +`ResilienceOptions(*args, **kwargs)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/options/resilience_options.py#L104-L141 "view source code") -Resilience options. +Resilience options for V1 primitives. **Parameters** -* **noise\_factors** (`Optional`\[`Sequence`\[`float`]]) – An list of real valued noise factors that determine by what amount the circuits’ noise is amplified. Only applicable for `resilience_level=2`. Default: `None`, and (1, 3, 5) if resilience level is 2. -* **noise\_amplifier** (*DEPRECATED*) – A noise amplification strategy. Currently only +* **noise\_factors** – An list of real valued noise factors that determine by what amount the circuits’ noise is amplified. Only applicable for `resilience_level=2`. Default: `None`, and (1, 3, 5) if resilience level is 2. +* **noise\_amplifier** – A noise amplification strategy. Currently only * **resilience\_level=2.** (*"LocalFoldingAmplifier" is supported Only applicable for*) – Default: “LocalFoldingAmplifier”. -* **extrapolator** (`Optional`\[`Literal`\[‘LinearExtrapolator’, ‘QuadraticExtrapolator’, ‘CubicExtrapolator’, ‘QuarticExtrapolator’]]) – An extrapolation strategy. One of `"LinearExtrapolator"`, `"QuadraticExtrapolator"`, `"CubicExtrapolator"`, `"QuarticExtrapolator"`. Note that `"CubicExtrapolator"` and `"QuarticExtrapolator"` require more noise factors than the default. Only applicable for `resilience_level=2`. Default: `None`, and `LinearExtrapolator` if resilience level is 2. +* **extrapolator** – An extrapolation strategy. One of `"LinearExtrapolator"`, `"QuadraticExtrapolator"`, `"CubicExtrapolator"`, `"QuarticExtrapolator"`. Note that `"CubicExtrapolator"` and `"QuarticExtrapolator"` require more noise factors than the default. Only applicable for `resilience_level=2`. Default: `None`, and `LinearExtrapolator` if resilience level is 2. ## Attributes @@ -27,7 +27,7 @@ Resilience options. ### extrapolator -`Literal['LinearExtrapolator', 'QuadraticExtrapolator', 'CubicExtrapolator', 'QuarticExtrapolator']` +`Literal['LinearExtrapolator', 'QuadraticExtrapolator', 'CubicExtrapolator', 'QuarticExtrapolator'] | None` `= None` @@ -35,7 +35,7 @@ Resilience options. ### noise\_amplifier -`Literal['LocalFoldingAmplifier']` +`Literal['LocalFoldingAmplifier'] | None` `= None` @@ -43,21 +43,9 @@ Resilience options. ### noise\_factors -`Sequence[float]` +`Sequence[float] | None` `= None` ## Methods -### validate\_resilience\_options - - - -`static validate_resilience_options(resilience_options)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/options/resilience_options.py#L60-L91 "view source code") - -Validate that resilience options are legal. :raises ValueError: if any resilience option is not supported :raises ValueError: if noise\_amplifier is not in NoiseAmplifierType. :raises ValueError: if extrapolator is not in ExtrapolatorType. :raises ValueError: if extrapolator == “QuarticExtrapolator” and number of noise\_factors \< 5. :raises ValueError: if extrapolator == “CubicExtrapolator” and number of noise\_factors \< 4. - -**Return type** - -`None` - diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.options.ResilienceOptionsV2.md b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.options.ResilienceOptionsV2.md new file mode 100644 index 00000000000..68c40e0a34a --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.options.ResilienceOptionsV2.md @@ -0,0 +1,86 @@ +--- +title: ResilienceOptionsV2 +description: API reference for qiskit_ibm_runtime.options.ResilienceOptionsV2 +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.options.ResilienceOptionsV2 +--- + +# ResilienceOptionsV2 + + + +`ResilienceOptionsV2(*args, **kwargs)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/options/resilience_options.py#L38-L101 "view source code") + +Resilience options for V2 Estimator. + +**Parameters** + +* **measure\_mitigation** – Whether to enable measurement error mitigation method. Further suboptions are available in [`measure_noise_learning`](#qiskit_ibm_runtime.options.ResilienceOptionsV2.measure_noise_learning "qiskit_ibm_runtime.options.ResilienceOptionsV2.measure_noise_learning"). Default: True. +* **measure\_noise\_learning** – Additional measurement noise learning options. See [`MeasureNoiseLearningOptions`](qiskit_ibm_runtime.options.MeasureNoiseLearningOptions "qiskit_ibm_runtime.options.MeasureNoiseLearningOptions") for all options. +* **zne\_mitigation** – Whether to turn on Zero Noise Extrapolation error mitigation method. Further suboptions are available in [`zne`](#qiskit_ibm_runtime.options.ResilienceOptionsV2.zne "qiskit_ibm_runtime.options.ResilienceOptionsV2.zne"). Default: False. +* **zne** – Additional zero noise extrapolation mitigation options. See [`ZneOptions`](qiskit_ibm_runtime.options.ZneOptions "qiskit_ibm_runtime.options.ZneOptions") for all options. +* **pec\_mitigation** – Whether to turn on Probabilistic Error Cancellation error mitigation method. Further suboptions are available in [`pec`](#qiskit_ibm_runtime.options.ResilienceOptionsV2.pec "qiskit_ibm_runtime.options.ResilienceOptionsV2.pec"). Default: False. +* **pec** – Additional probabalistic error cancellation mitigation options. See [`PecOptions`](qiskit_ibm_runtime.options.PecOptions "qiskit_ibm_runtime.options.PecOptions") for all options. +* **layer\_noise\_learning** – Layer noise learning options. See [`LayerNoiseLearningOptions`](qiskit_ibm_runtime.options.LayerNoiseLearningOptions "qiskit_ibm_runtime.options.LayerNoiseLearningOptions") for all options. + +## Attributes + + + +### layer\_noise\_learning + +`LayerNoiseLearningOptions | Dict` + +`= FieldInfo(annotation=Union[LayerNoiseLearningOptions, Dict], required=False, default_factory=LayerNoiseLearningOptions)` + + + +### measure\_mitigation + +`UnsetType | bool` + +`= Unset` + + + +### measure\_noise\_learning + +`MeasureNoiseLearningOptions | Dict` + +`= FieldInfo(annotation=Union[MeasureNoiseLearningOptions, Dict], required=False, default_factory=MeasureNoiseLearningOptions)` + + + +### pec + +`PecOptions | Dict` + +`= FieldInfo(annotation=Union[PecOptions, Dict], required=False, default_factory=PecOptions)` + + + +### pec\_mitigation + +`UnsetType | bool` + +`= Unset` + + + +### zne + +`ZneOptions | Dict` + +`= FieldInfo(annotation=Union[ZneOptions, Dict], required=False, default_factory=ZneOptions)` + + + +### zne\_mitigation + +`UnsetType | bool` + +`= Unset` + +## Methods + diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.options.SamplerOptions.md b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.options.SamplerOptions.md new file mode 100644 index 00000000000..c545d58ab0b --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.options.SamplerOptions.md @@ -0,0 +1,95 @@ +--- +title: SamplerOptions +description: API reference for qiskit_ibm_runtime.options.SamplerOptions +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.options.SamplerOptions +--- + +# SamplerOptions + + + +`SamplerOptions(*args, **kwargs)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/options/sampler_options.py#L26-L48 "view source code") + +Options for V2 Sampler. + +**Parameters** + +* **default\_shots** – The default number of shots to use if none are specified in the PUBs or in the run method. Default: 4096. +* **dynamical\_decoupling** – Suboptions for dynamical decoupling. See [`DynamicalDecouplingOptions`](qiskit_ibm_runtime.options.DynamicalDecouplingOptions "qiskit_ibm_runtime.options.DynamicalDecouplingOptions") for all available options. +* **execution** – Execution time options. See [`ExecutionOptionsV2`](qiskit_ibm_runtime.options.ExecutionOptionsV2 "qiskit_ibm_runtime.options.ExecutionOptionsV2") for all available options. +* **experimental** – Experimental options. + +## Attributes + + + +### default\_shots + +`UnsetType | int` + +`= Unset` + + + +### dynamical\_decoupling + +`DynamicalDecouplingOptions | Dict` + +`= FieldInfo(annotation=Union[DynamicalDecouplingOptions, Dict], required=False, default_factory=DynamicalDecouplingOptions)` + + + +### environment + +`EnvironmentOptions | Dict` + +`= FieldInfo(annotation=Union[EnvironmentOptions, Dict], required=False, default_factory=EnvironmentOptions)` + + + +### execution + +`ExecutionOptionsV2 | Dict` + +`= FieldInfo(annotation=Union[ExecutionOptionsV2, Dict], required=False, default_factory=ExecutionOptionsV2)` + + + +### experimental + +`UnsetType | dict` + +`= Unset` + + + +### max\_execution\_time + +`UnsetType | int` + +`= Unset` + + + +### simulator + +`SimulatorOptions | Dict` + +`= FieldInfo(annotation=Union[SimulatorOptions, Dict], required=False, default_factory=SimulatorOptions)` + +## Methods + +### update + + + +`update(**kwargs)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/options/options.py#L106-L111 "view source code") + +Update the options. + +**Return type** + +`None` + diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.options.SimulatorOptions.md b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.options.SimulatorOptions.md index 008e6406767..e0a0587e47d 100644 --- a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.options.SimulatorOptions.md +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.options.SimulatorOptions.md @@ -10,7 +10,7 @@ python_api_name: qiskit_ibm_runtime.options.SimulatorOptions -`SimulatorOptions(noise_model=None, seed_simulator=None, coupling_map=None, basis_gates=None)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/options/simulator_options.py#L35-L95 "view source code") +`SimulatorOptions(*args, **kwargs)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/options/simulator_options.py#L33-L105 "view source code") Simulator options. @@ -18,10 +18,10 @@ For best practice in simulating a backend make sure to pass the basis gates and **Parameters** -* **noise\_model** (`Union`\[`dict`, `NoiseModel`, `None`]) – Noise model for the simulator. -* **seed\_simulator** (`Optional`\[`int`]) – Random seed to control sampling. -* **coupling\_map** (`Union`\[`List`\[`List`\[`int`]], `CouplingMap`, `None`]) – Directed coupling map to target in mapping. If the coupling map is symmetric, both directions need to be specified. Each entry in the list specifies a directed two-qubit interactions, e.g: `[[0, 1], [0, 3], [1, 2], [1, 5], [2, 5], [4, 1], [5, 3]]` -* **basis\_gates** (`Optional`\[`List`\[`str`]]) – List of basis gate names to unroll to. For example, `['u1', 'u2', 'u3', 'cx']`. If `None`, do not unroll. +* **noise\_model** – Noise model for the simulator. +* **seed\_simulator** – Random seed to control sampling. +* **coupling\_map** – Directed coupling map to target in mapping. If the coupling map is symmetric, both directions need to be specified. Each entry in the list specifies a directed two-qubit interactions, e.g: `[[0, 1], [0, 3], [1, 2], [1, 5], [2, 5], [4, 1], [5, 3]]` +* **basis\_gates** – List of basis gate names to unroll to. For example, `['u1', 'u2', 'u3', 'cx']`. Unrolling is not done if not set. ## Attributes @@ -29,33 +29,33 @@ For best practice in simulating a backend make sure to pass the basis gates and ### basis\_gates -`List[str] | None` +`UnsetType | List[str]` -`= None` +`= Unset` ### coupling\_map -`List[List[int]] | CouplingMap | None` +`UnsetType | List[List[int]] | CouplingMap` -`= None` +`= Unset` ### noise\_model -`dict | NoiseModel | None` +`UnsetType | dict | NoiseModel | None` -`= None` +`= Unset` ### seed\_simulator -`int | None` +`UnsetType | int` -`= None` +`= Unset` ## Methods @@ -63,7 +63,7 @@ For best practice in simulating a backend make sure to pass the basis gates and -`set_backend(backend)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/options/simulator_options.py#L71-L95 "view source code") +`set_backend(backend)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/options/simulator_options.py#L79-L105 "view source code") Set backend for simulation. This method changes noise\_model, coupling\_map, basis\_gates according to given backend. @@ -73,19 +73,7 @@ Set backend for simulation. This method changes noise\_model, coupling\_map, bas **Raises** -**MissingOptionalLibraryError if qiskit-aer is not found.** – - -**Return type** - -`None` - -### validate\_simulator\_options - - - -`static validate_simulator_options(simulator_options)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/options/simulator_options.py#L61-L69 "view source code") - -Validate that simulator options are legal. :raises ValueError: if any simulator option is not supported +**MissingOptionalLibraryError** – if qiskit-aer is not found. **Return type** diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.options.TranspilationOptions.md b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.options.TranspilationOptions.md index dd9a466845f..6b8121d28d1 100644 --- a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.options.TranspilationOptions.md +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.options.TranspilationOptions.md @@ -10,17 +10,17 @@ python_api_name: qiskit_ibm_runtime.options.TranspilationOptions -`TranspilationOptions(skip_transpilation=False, initial_layout=None, layout_method=None, routing_method=None, approximation_degree=None)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/options/transpilation_options.py#L41-L97 "view source code") +`TranspilationOptions(*args, **kwargs)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/options/transpilation_options.py#L38-L75 "view source code") Transpilation options. **Parameters** -* **skip\_transpilation** (`bool`) – Whether to skip transpilation. -* **initial\_layout** (`Union`\[`dict`, `List`, `None`]) – Initial position of virtual qubits on physical qubits. See `qiskit.compiler.transpile` for more information. -* **layout\_method** (`Optional`\[`str`]) – Name of layout selection pass. One of ‘trivial’, ‘dense’, ‘noise\_adaptive’, ‘sabre’. -* **routing\_method** (`Optional`\[`str`]) – Name of routing pass. One of ‘basic’, ‘lookahead’, ‘stochastic’, ‘sabre’, ‘none’. -* **approximation\_degree** (`Optional`\[`float`]) – heuristic dial used for circuit approximation (1.0=no approximation, 0.0=maximal approximation) +* **skip\_transpilation** – Whether to skip transpilation. Default is False. +* **initial\_layout** – Initial position of virtual qubits on physical qubits. See `qiskit.compiler.transpile` for more information. +* **layout\_method** – Name of layout selection pass. One of ‘trivial’, ‘dense’, ‘noise\_adaptive’, ‘sabre’. +* **routing\_method** – Name of routing pass. One of ‘basic’, ‘lookahead’, ‘stochastic’, ‘sabre’, ‘none’. +* **approximation\_degree** – heuristic dial used for circuit approximation (1.0=no approximation, 0.0=maximal approximation) ## Attributes @@ -28,33 +28,33 @@ Transpilation options. ### approximation\_degree -`float | None` +`UnsetType | float` -`= None` +`= Unset` ### initial\_layout -`dict | List | None` +`UnsetType | dict | List` -`= None` +`= Unset` ### layout\_method -`str | None` +`UnsetType | Literal['trivial', 'dense', 'noise_adaptive', 'sabre']` -`= None` +`= Unset` ### routing\_method -`str | None` +`UnsetType | Literal['basic', 'lookahead', 'stochastic', 'sabre', 'none']` -`= None` +`= Unset` @@ -66,15 +66,3 @@ Transpilation options. ## Methods -### validate\_transpilation\_options - - - -`static validate_transpilation_options(transpilation_options)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/options/transpilation_options.py#L68-L97 "view source code") - -Validate that transpilation options are legal. :raises ValueError: if any transpilation option is not supported :raises ValueError: if layout\_method is not in LayoutMethodType or None. :raises ValueError: if routing\_method is not in RoutingMethodType or None. :raises ValueError: if approximation\_degree in not None or in the range 0.0 to 1.0. - -**Return type** - -`None` - diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.options.TwirlingOptions.md b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.options.TwirlingOptions.md new file mode 100644 index 00000000000..9a9824f23e0 --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.options.TwirlingOptions.md @@ -0,0 +1,81 @@ +--- +title: TwirlingOptions +description: API reference for qiskit_ibm_runtime.options.TwirlingOptions +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.options.TwirlingOptions +--- + +# TwirlingOptions + + + +`TwirlingOptions(*args, **kwargs)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/options/twirling_options.py#L28-L67 "view source code") + +Twirling options. + +**Parameters** + +* **enable\_gates** – Whether to apply 2-qubit gate twirling. Default: False. + +* **enable\_measure** – Whether to enable twirling of expectation value measurements in Estimator. Default: True. + +* **num\_randomizations** – The number of random samples to use when twirling or peforming sampled mitigation. If “auto”, the value will be chosen automatically based on the input PUBs. Default: “auto”. + +* **shots\_per\_randomization** – The number of shots to run for each random sample. If “auto”, the value will be chosen automatically based on the input PUBs. Default: “auto”. + +* **strategy** – + + Specify the strategy of twirling qubits in identified layers of 2-qubit twirled gates. Allowed values are + + * If `"active"` only the instruction qubits in each individual twirled layer will be twirled. + * If `"active-circuit"` the union of all instruction qubits in the circuit will be twirled in each twirled layer. + * If `"active-accum"` the union of instructions qubits in the circuit up to the current twirled layer will be twirled in each individual twirled layer. + * If `"all"` all qubits in the input circuit will be twirled in each twirled layer. + + Default: “active-accum”. + +## Attributes + + + +### enable\_gates + +`UnsetType | bool` + +`= Unset` + + + +### enable\_measure + +`UnsetType | bool` + +`= Unset` + + + +### num\_randomizations + +`UnsetType | int | Literal['auto']` + +`= Unset` + + + +### shots\_per\_randomization + +`UnsetType | int | Literal['auto']` + +`= Unset` + + + +### strategy + +`UnsetType | Literal['active', 'active-accum', 'active-circuit', 'all']` + +`= Unset` + +## Methods + diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.options.ZneOptions.md b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.options.ZneOptions.md new file mode 100644 index 00000000000..be4f426ea26 --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.options.ZneOptions.md @@ -0,0 +1,51 @@ +--- +title: ZneOptions +description: API reference for qiskit_ibm_runtime.options.ZneOptions +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.options.ZneOptions +--- + +# ZneOptions + + + +`ZneOptions(*args, **kwargs)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/options/zne_options.py#L35-L88 "view source code") + +Zero noise extrapolation mitigation options. + +**Parameters** + +* **noise\_factors** – Noise factors to use for noise amplification. Default: (1, 3, 5). + +* **extrapolator** – + + Extrapolator(s) to try (in order) for extrapolating to zero noise. One or more of: + + * ”linear” + * ”exponential” + * ”double\_exponential” + * ”polynomial\_degree\_(1 \<= k \<= 7)” + + Default: (“exponential”, “linear”). + +## Attributes + + + +### extrapolator + +`UnsetType | Literal['linear', 'exponential', 'double_exponential', 'polynomial_degree_1', 'polynomial_degree_2', 'polynomial_degree_3', 'polynomial_degree_4', 'polynomial_degree_5', 'polynomial_degree_6', 'polynomial_degree_7'] | Sequence[Literal['linear', 'exponential', 'double_exponential', 'polynomial_degree_1', 'polynomial_degree_2', 'polynomial_degree_3', 'polynomial_degree_4', 'polynomial_degree_5', 'polynomial_degree_6', 'polynomial_degree_7']]` + +`= Unset` + + + +### noise\_factors + +`UnsetType | Sequence[float]` + +`= Unset` + +## Methods + diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.transpiler.passes.scheduling.ALAPScheduleAnalysis.md b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.transpiler.passes.scheduling.ALAPScheduleAnalysis.md index e0a71a02227..379a5ceea42 100644 --- a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.transpiler.passes.scheduling.ALAPScheduleAnalysis.md +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.transpiler.passes.scheduling.ALAPScheduleAnalysis.md @@ -10,7 +10,7 @@ python_api_name: qiskit_ibm_runtime.transpiler.passes.scheduling.ALAPScheduleAna -`ALAPScheduleAnalysis(durations)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/transpiler/passes/scheduling/scheduler.py#L427-L644 "view source code") +`ALAPScheduleAnalysis(durations)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/transpiler/passes/scheduling/scheduler.py#L427-L644 "view source code") Dynamic circuits as-late-as-possible (ALAP) scheduling analysis pass. @@ -113,7 +113,7 @@ Name of the pass. -`run(dag)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/transpiler/passes/scheduling/scheduler.py#L448-L467 "view source code") +`run(dag)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/transpiler/passes/scheduling/scheduler.py#L448-L467 "view source code") Run the ASAPSchedule pass on dag. :type dag: `DAGCircuit` :param dag: DAG to schedule. :type dag: DAGCircuit diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.transpiler.passes.scheduling.ASAPScheduleAnalysis.md b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.transpiler.passes.scheduling.ASAPScheduleAnalysis.md index e09b7e69458..f9d168c2662 100644 --- a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.transpiler.passes.scheduling.ASAPScheduleAnalysis.md +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.transpiler.passes.scheduling.ASAPScheduleAnalysis.md @@ -10,7 +10,7 @@ python_api_name: qiskit_ibm_runtime.transpiler.passes.scheduling.ASAPScheduleAna -`ASAPScheduleAnalysis(durations)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/transpiler/passes/scheduling/scheduler.py#L299-L424 "view source code") +`ASAPScheduleAnalysis(durations)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/transpiler/passes/scheduling/scheduler.py#L299-L424 "view source code") Dynamic circuits as-soon-as-possible (ASAP) scheduling analysis pass. @@ -113,7 +113,7 @@ Name of the pass. -`run(dag)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/transpiler/passes/scheduling/scheduler.py#L320-L339 "view source code") +`run(dag)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/transpiler/passes/scheduling/scheduler.py#L320-L339 "view source code") Run the ALAPSchedule pass on dag. :type dag: `DAGCircuit` :param dag: DAG to schedule. :type dag: DAGCircuit diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.transpiler.passes.scheduling.BlockBasePadder.md b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.transpiler.passes.scheduling.BlockBasePadder.md index c5d6a3e4554..f0e284663e3 100644 --- a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.transpiler.passes.scheduling.BlockBasePadder.md +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.transpiler.passes.scheduling.BlockBasePadder.md @@ -10,7 +10,7 @@ python_api_name: qiskit_ibm_runtime.transpiler.passes.scheduling.BlockBasePadder -`BlockBasePadder(schedule_idle_qubits=False)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/transpiler/passes/scheduling/block_base_padder.py#L38-L633 "view source code") +`BlockBasePadder(schedule_idle_qubits=False)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/transpiler/passes/scheduling/block_base_padder.py#L38-L633 "view source code") The base class of padding pass. @@ -104,7 +104,7 @@ Name of the pass. -`run(dag)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/transpiler/passes/scheduling/block_base_padder.py#L91-L115 "view source code") +`run(dag)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/transpiler/passes/scheduling/block_base_padder.py#L91-L115 "view source code") Run the padding pass on `dag`. diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.transpiler.passes.scheduling.DynamicCircuitInstructionDurations.md b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.transpiler.passes.scheduling.DynamicCircuitInstructionDurations.md index 2ff10a04170..14017e5b544 100644 --- a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.transpiler.passes.scheduling.DynamicCircuitInstructionDurations.md +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.transpiler.passes.scheduling.DynamicCircuitInstructionDurations.md @@ -10,7 +10,7 @@ python_api_name: qiskit_ibm_runtime.transpiler.passes.scheduling.DynamicCircuitI -`DynamicCircuitInstructionDurations(instruction_durations=None, dt=None, enable_patching=True)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/transpiler/passes/scheduling/utils.py#L133-L359 "view source code") +`DynamicCircuitInstructionDurations(instruction_durations=None, dt=None, enable_patching=True)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/transpiler/passes/scheduling/utils.py#L133-L323 "view source code") For dynamic circuits the IBM Qiskit backend currently reports instruction durations that differ compared with those required for the legacy Qobj-based path. For now we use this class to report updated InstructionDurations. TODO: This would be mitigated by a specialized Backend/Target for dynamic circuit backends. @@ -36,7 +36,7 @@ Dynamic circuit instruction durations. -`classmethod from_backend(backend)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/transpiler/passes/scheduling/utils.py#L155-L203 "view source code") +`classmethod from_backend(backend)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/transpiler/passes/scheduling/utils.py#L155-L167 "view source code") Construct a `DynamicInstructionDurations` object from the backend. :type backend: `Backend` :param backend: backend from which durations (gate lengths) and dt are extracted. @@ -52,7 +52,7 @@ DynamicInstructionDurations -`classmethod from_target(target)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/transpiler/passes/scheduling/utils.py#L205-L222 "view source code") +`classmethod from_target(target)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/transpiler/passes/scheduling/utils.py#L169-L186 "view source code") Construct a `DynamicInstructionDurations` object from the target. :type target: `Target` :param target: target from which durations (gate lengths) and dt are extracted. @@ -113,7 +113,7 @@ Set of units used in this instruction durations. -`update(inst_durations, dt=None)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/transpiler/passes/scheduling/utils.py#L224-L270 "view source code") +`update(inst_durations, dt=None)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/transpiler/passes/scheduling/utils.py#L188-L234 "view source code") Update self with inst\_durations (inst\_durations overwrite self). Overrides the default durations for certain hardcoded instructions. diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.transpiler.passes.scheduling.PadDelay.md b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.transpiler.passes.scheduling.PadDelay.md index 6b881b783f3..fb7d5bc2a8a 100644 --- a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.transpiler.passes.scheduling.PadDelay.md +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.transpiler.passes.scheduling.PadDelay.md @@ -10,7 +10,7 @@ python_api_name: qiskit_ibm_runtime.transpiler.passes.scheduling.PadDelay -`PadDelay(durations, fill_very_end=True, schedule_idle_qubits=False)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/transpiler/passes/scheduling/pad_delay.py#L23-L87 "view source code") +`PadDelay(durations, fill_very_end=True, schedule_idle_qubits=False)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/transpiler/passes/scheduling/pad_delay.py#L23-L87 "view source code") Padding idle time with Delay instructions. @@ -117,7 +117,7 @@ Name of the pass. -`run(dag)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/transpiler/passes/scheduling/block_base_padder.py#L91-L115 "view source code") +`run(dag)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/transpiler/passes/scheduling/block_base_padder.py#L91-L115 "view source code") Run the padding pass on `dag`. diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.transpiler.passes.scheduling.PadDynamicalDecoupling.md b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.transpiler.passes.scheduling.PadDynamicalDecoupling.md index 1abfaaccc54..d790e13084c 100644 --- a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.transpiler.passes.scheduling.PadDynamicalDecoupling.md +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.transpiler.passes.scheduling.PadDynamicalDecoupling.md @@ -10,7 +10,7 @@ python_api_name: qiskit_ibm_runtime.transpiler.passes.scheduling.PadDynamicalDec -`PadDynamicalDecoupling(durations, dd_sequences, qubits=None, spacings=None, skip_reset_qubits=True, pulse_alignment=16, extra_slack_distribution='middle', sequence_min_length_ratios=None, insert_multiple_cycles=False, coupling_map=None, alt_spacings=None, schedule_idle_qubits=False, dd_barrier=None)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/transpiler/passes/scheduling/dynamical_decoupling.py#L39-L567 "view source code") +`PadDynamicalDecoupling(durations, dd_sequences, qubits=None, spacings=None, skip_reset_qubits=True, pulse_alignment=16, extra_slack_distribution='middle', sequence_min_length_ratios=None, insert_multiple_cycles=False, coupling_map=None, alt_spacings=None, schedule_idle_qubits=False, dd_barrier=None)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/transpiler/passes/scheduling/dynamical_decoupling.py#L39-L567 "view source code") Dynamical decoupling insertion pass for IBM dynamic circuit backends. @@ -253,7 +253,7 @@ Name of the pass. -`run(dag)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.20/qiskit_ibm_runtime/transpiler/passes/scheduling/block_base_padder.py#L91-L115 "view source code") +`run(dag)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/transpiler/passes/scheduling/block_base_padder.py#L91-L115 "view source code") Run the padding pass on `dag`. diff --git a/docs/api/qiskit-ibm-runtime/release-notes.md b/docs/api/qiskit-ibm-runtime/release-notes.md index cbf1a33db7d..fb1c8661c3c 100644 --- a/docs/api/qiskit-ibm-runtime/release-notes.md +++ b/docs/api/qiskit-ibm-runtime/release-notes.md @@ -6,143 +6,128 @@ in_page_toc_max_heading_level: 2 -# Qiskit Runtime IBM Client 0.20 release notes +# Qiskit Runtime IBM Client 0.21 release notes - + -## 0.20.0 - - - -### New Features - -* Add `dd_barrier` optional input to [`PadDynamicalDecoupling`](qiskit_ibm_runtime.transpiler.passes.scheduling.PadDynamicalDecoupling "qiskit_ibm_runtime.transpiler.passes.scheduling.PadDynamicalDecoupling") constructor to identify portions of the circuit to apply dynamical decoupling (dd) on selectively. If this string is contained in the label of a barrier in the circuit, dd is applied on the delays ending with it (on the same qubits); otherwise, it is not applied. - -* Python 3.12 is now supported. +## 0.15.0 -* Sessions will now be started with a new `/sessions` endpoint that allows for different execution modes. Batch mode is now supported through `Batch`, and [`Session`](qiskit_ibm_runtime.Session "qiskit_ibm_runtime.Session") will work the same as way as before. Please see [run/sessions](/run/sessions) for more information. + - Note that `Session` and `Batch` created from `qiskit-ibm-runtime` prior to this release will no longer be supported after March 31, 2024. Please update your `qiskit-ibm-runtime` version as soon as possible before this date. +### Prelude - Also note that using simulators with sessions is no longer supported. Users can still start sessions with simulators without any issues but a session will not actually be created. There will be no session ID. +Sessions are now thread-safe and allow for multiple concurrent interactive experiments. -* Sessions started with [`qiskit_ibm_runtime.IBMBackend.open_session()`](qiskit_ibm_runtime.IBMBackend#open_session "qiskit_ibm_runtime.IBMBackend.open_session") will use the new `/sessions` endpoint. + - The sessions functionality will not change but note that `backend.run()` sessions prior to this release will no longer be supported after March 31, 2024. Please update your `qiskit-ibm-runtime` version as soon as possible before this date. +### New Features - +* A new module [`qiskit_ibm_runtime.fake_provider`](fake_provider#module-qiskit_ibm_runtime.fake_provider "qiskit_ibm_runtime.fake_provider"), has been added to provide access to a series of fake backends derived from snapshots of IBM Quantum devices. This functionality was originally provided by the `qiskit.providers.fake_provider` module, but will soon be deprecated in favor of [`qiskit_ibm_runtime.fake_provider`](fake_provider#module-qiskit_ibm_runtime.fake_provider "qiskit_ibm_runtime.fake_provider"). -### Deprecation Notes + The snapshots provided by the fake backends are useful for local testing of the transpiler and performing local noisy simulations of the system before running on real devices. Here is an example of using a fake backend for transpilation and simulation: -* Circuits that do not match the target hardware definition will no longer be supported after March 1, 2024. See the transpilation documentation ([transpile](/transpile)) for instructions to transform circuits and the primitive examples ([run/primitives-examples](/run/primitives-examples)) to see this coupled with operator transformations. + ```python + from qiskit import QuantumCircuit + from qiskit import transpile + from qiskit_ibm_runtime.fake_provider import FakeManilaV2 - + # Get a fake backend from the fake provider + backend = FakeManilaV2() -### Bug Fixes + # Create a simple circuit + circuit = QuantumCircuit(3) + circuit.h(0) + circuit.cx(0,1) + circuit.cx(0,2) + circuit.measure_all() -* Fix assignment of instruction durations when scheduling circuits with control flow. Prior to this fix, the indices for instructions on inner blocks were not mapped to the physical indices in the outer dag. + # Transpile the ideal circuit to a circuit that can be directly executed by the backend + transpiled_circuit = transpile(circuit, backend) - + # Run the transpiled circuit using the simulated fake backend + job = backend.run(transpiled_circuit) + counts = job.result().get_counts() + ``` -### Other Notes +* Added support for `backend.run()`. The functionality is similar to that in `qiskit-ibm-provider`. -* The `InstructionDurations` durations input is now also required for the constructor of `PadDelay`. +* An error will be raised during initialization if `q-ctrl` is passed in as the `channel_strategy` and the account instance does not have `q-ctrl` enabled. - +* Removed storing result in `RuntimeJob._results`. Instead retrieve results every time the `results()` method is called. - +* Sessions are now thread-safe. -## 0.19.1 +* Added a new method [`properties()`](qiskit_ibm_runtime.RuntimeJob#properties "qiskit_ibm_runtime.RuntimeJob.properties") which returns the backend properties of the job at the time the job was run. - +* [`details()`](qiskit_ibm_runtime.Session#details "qiskit_ibm_runtime.Session.details") has a new field, activated\_at, which is the timestamp of when the session was changed to active. -### Upgrade Notes +* Added a new parameter, dynamic\_circuits to [`backends()`](qiskit_ibm_runtime.QiskitRuntimeService#backends "qiskit_ibm_runtime.QiskitRuntimeService.backends") to allow filtering of backends that support dynamic circuits. -* Extend `DynamicCircuitInstructions.from_backend()` to extract and patch durations from both `BackendV1` and `BackendV2` objects. Also add `DynamicCircuitInstructions.from_target()` to use a `Target` object instead. +* Added `max_time` parameter to `IBMBackend.open_session()`. - +* Added a method `RuntimeJob.queue_info()` to get the queue information from the backend. This feature was transferred from `qiskit_ibm_provider`. - +* Add `dd_barrier` optional input to [`PadDynamicalDecoupling`](qiskit_ibm_runtime.transpiler.passes.scheduling.PadDynamicalDecoupling "qiskit_ibm_runtime.transpiler.passes.scheduling.PadDynamicalDecoupling") constructor to identify portions of the circuit to apply dynamical decoupling (dd) on selectively. If this string is contained in the label of a barrier in the circuit, dd is applied on the delays ending with it (on the same qubits); otherwise, it is not applied. -### Bug Fixes +* Python 3.12 is now supported. -* Fix the patching of `DynamicCircuitInstructions` for instructions with durations that are not in units of `dt`. +* Sessions will now be started with a new `/sessions` endpoint that allows for different execution modes. Batch mode is now supported through `Batch`, and [`Session`](qiskit_ibm_runtime.Session "qiskit_ibm_runtime.Session") will work the same as way as before. Please see [run/sessions](/run/sessions) for more information. -* Fixed an issue with the `qpy.dump()` function, when the `use_symengine` flag was set to a truthy object that evaluated to `True` but was not actually the boolean `True` the generated QPY payload would be corrupt. + Note that `Session` and `Batch` created from `qiskit-ibm-runtime` prior to this release will no longer be supported after March 31, 2024. Please update your `qiskit-ibm-runtime` version as soon as possible before this date. - + Also note that using simulators with sessions is no longer supported. Users can still start sessions with simulators without any issues but a session will not actually be created. There will be no session ID. - +* Sessions started with [`qiskit_ibm_runtime.IBMBackend.open_session()`](qiskit_ibm_runtime.IBMBackend#open_session "qiskit_ibm_runtime.IBMBackend.open_session") will use the new `/sessions` endpoint. -## 0.19.0 + The sessions functionality will not change but note that `backend.run()` sessions prior to this release will no longer be supported after March 31, 2024. Please update your `qiskit-ibm-runtime` version as soon as possible before this date. - +* This release add a version 2 of the primitives - `SamplerV2` and `EstimatorV2`. The emphasis of this new version is on performing vectorized calls to the primitive `run()` methods, so that sweeps over parameter value sets and observables can be efficiently specified. The sampler has also been changed to return the outputs (e.g. bitstrings) from every shot, rather than providing a counts-like return. See the [Migration Guide](/api/migration-guides/v2-primitives) for more details on the changes and migration steps. - + ### Upgrade Notes -* qiskit-ibm-provider is pending deprecation, and therefore will no longer be a dependency for qiskit-ibm-runtime. - -* qiskit-ibm-runtime is now compatible with Qiskit versions >= 0.45, including 1.0.0. - - - - - -## 0.18.0 - - - - - -### New Features +* Methods related to using custom programs are removed. -* Added a new parameter, dynamic\_circuits to [`backends()`](qiskit_ibm_runtime.QiskitRuntimeService#backends "qiskit_ibm_runtime.QiskitRuntimeService.backends") to allow filtering of backends that support dynamic circuits. +* qiskit-ibm-provider is pending deprecation, and therefore will no longer be a dependency for qiskit-ibm-runtime. -* Added `max_time` parameter to `IBMBackend.open_session()`. +* Extend `DynamicCircuitInstructions.from_backend()` to extract and patch durations from both `BackendV1` and `BackendV2` objects. Also add `DynamicCircuitInstructions.from_target()` to use a `Target` object instead. -* Added a method `RuntimeJob.queue_info()` to get the queue information from the backend. This feature was transferred from `qiskit_ibm_provider`. +* qiskit-ibm-runtime is now compatible with Qiskit versions >= 0.45, including 1.0.0. - +* Circuits that do not match the target hardware definition are no longer supported by Qiskit Runtime primitives, unless `channel_strategy="q-ctrl"` is used. See the transpilation documentation ([transpile](/transpile)) for instructions to transform circuits and the primitive examples ([run/primitives-examples](/run/primitives-examples)) to see this coupled with operator transformations. - + ### Deprecation Notes -* [`runtime()`](qiskit_ibm_runtime.QiskitRuntimeService#runtime "qiskit_ibm_runtime.QiskitRuntimeService.runtime") has been deprecated. - - - - - -### Bug Fixes +* Usage of the `~/.qiskit/qiskitrc.json` file for account information has been deprecated. Use `~/.qiskit/qiskit-ibm.json` instead. -* Many methods in [`RuntimeJob`](qiskit_ibm_runtime.RuntimeJob "qiskit_ibm_runtime.RuntimeJob") require retrieving the job data from the API with `job_get()`. This API call will now exclude the `params` field by default because they are only necessary in [`qiskit_ibm_runtime.RuntimeJob.inputs()`](qiskit_ibm_runtime.RuntimeJob#inputs "qiskit_ibm_runtime.RuntimeJob.inputs"). +* [`runtime()`](qiskit_ibm_runtime.QiskitRuntimeService#runtime "qiskit_ibm_runtime.QiskitRuntimeService.runtime") has been deprecated. - +* Circuits that do not match the target hardware definition will no longer be supported after March 1, 2024. See the transpilation documentation ([transpile](/transpile)) for instructions to transform circuits and the primitive examples ([run/primitives-examples](/run/primitives-examples)) to see this coupled with operator transformations. - +* In a future release, `backend` will be a required parameter for [`qiskit_ibm_runtime.Sampler`](qiskit_ibm_runtime.Sampler "qiskit_ibm_runtime.Sampler"), and [`qiskit_ibm_runtime.Estimator`](qiskit_ibm_runtime.Estimator "qiskit_ibm_runtime.Estimator") if `session` is not specified, even when using the `ibm_cloud` channel. -## 0.17.0 + It will also be a required parameter for [`qiskit_ibm_runtime.Session`](qiskit_ibm_runtime.Session "qiskit_ibm_runtime.Session") and `qiskit_ibm_runtime.Batch`. - + - +### Bug Fixes -### New Features +* Fixed an issue where canceled and failed jobs would return an invalid result that resulted in a type error, preventing the actual error from being returned to the user. -* Added a new method [`properties()`](qiskit_ibm_runtime.RuntimeJob#properties "qiskit_ibm_runtime.RuntimeJob.properties") which returns the backend properties of the job at the time the job was run. +* A warning will be raised at initialization if the DE environment is being used since not all features are supported there. -* [`details()`](qiskit_ibm_runtime.Session#details "qiskit_ibm_runtime.Session.details") has a new field, activated\_at, which is the timestamp of when the session was changed to active. +* The `backend` parameter in [`from_id()`](qiskit_ibm_runtime.Session#from_id "qiskit_ibm_runtime.Session.from_id") is being deprecated because sessions do not support multiple backends. Additionally, the `service` parameter is no longer optional. - +* The `circuit_indices` and `observable_indices` run inputs for [`Estimator`](qiskit_ibm_runtime.Estimator "qiskit_ibm_runtime.Estimator") and [`Sampler`](qiskit_ibm_runtime.Sampler "qiskit_ibm_runtime.Sampler") have been completely removed. - +* Reverting 0.15.0 changes to [`from_id()`](qiskit_ibm_runtime.Session#from_id "qiskit_ibm_runtime.Session.from_id") because it was a breaking change without proper deprecation. -### Bug Fixes +* If a cloud instance that is `q-ctrl` enabled is used while `q-ctrl` is not passed in as the `channel_strategy`, an error will be raised. * When a single backend is retrieved with the `instance` parameter, @@ -158,140 +143,35 @@ in_page_toc_max_heading_level: 2 * Fixed an issue where retrieving the coupling\_map of some backends would result in a NameError. - - - - -## 0.16.0 - - - -### Prelude - -Sessions are now thread-safe and allow for multiple concurrent interactive experiments. - - - - - -### New Features - -* Sessions are now thread-safe. - - - - - -### Upgrade Notes - -* Methods related to using custom programs are removed. - - - - - -### Bug Fixes - -* If a cloud instance that is `q-ctrl` enabled is used while `q-ctrl` is not passed in as the `channel_strategy`, an error will be raised. - - - - - -## 0.15.1 - - - - - -### Bug Fixes - -* Reverting 0.15.0 changes to [`from_id()`](qiskit_ibm_runtime.Session#from_id "qiskit_ibm_runtime.Session.from_id") because it was a breaking change without proper deprecation. - - - - - -## 0.15.0 - - - - - -### New Features - -* A new module [`qiskit_ibm_runtime.fake_provider`](fake_provider#module-qiskit_ibm_runtime.fake_provider "qiskit_ibm_runtime.fake_provider"), has been added to provide access to a series of fake backends derived from snapshots of IBM Quantum devices. This functionality was originally provided by the `qiskit.providers.fake_provider` module, but will soon be deprecated in favor of [`qiskit_ibm_runtime.fake_provider`](fake_provider#module-qiskit_ibm_runtime.fake_provider "qiskit_ibm_runtime.fake_provider"). - - The snapshots provided by the fake backends are useful for local testing of the transpiler and performing local noisy simulations of the system before running on real devices. Here is an example of using a fake backend for transpilation and simulation: - - ```python - from qiskit import QuantumCircuit - from qiskit import transpile - from qiskit_ibm_runtime.fake_provider import FakeManilaV2 - - # Get a fake backend from the fake provider - backend = FakeManilaV2() - - # Create a simple circuit - circuit = QuantumCircuit(3) - circuit.h(0) - circuit.cx(0,1) - circuit.cx(0,2) - circuit.measure_all() - - # Transpile the ideal circuit to a circuit that can be directly executed by the backend - transpiled_circuit = transpile(circuit, backend) - - # Run the transpiled circuit using the simulated fake backend - job = backend.run(transpiled_circuit) - counts = job.result().get_counts() - ``` - -* Added support for `backend.run()`. The functionality is similar to that in `qiskit-ibm-provider`. - -* An error will be raised during initialization if `q-ctrl` is passed in as the `channel_strategy` and the account instance does not have `q-ctrl` enabled. - -* Removed storing result in `RuntimeJob._results`. Instead retrieve results every time the `results()` method is called. - - - - - -### Deprecation Notes - -* Usage of the `~/.qiskit/qiskitrc.json` file for account information has been deprecated. Use `~/.qiskit/qiskit-ibm.json` instead. - - - - +* Many methods in [`RuntimeJob`](qiskit_ibm_runtime.RuntimeJob "qiskit_ibm_runtime.RuntimeJob") require retrieving the job data from the API with `job_get()`. This API call will now exclude the `params` field by default because they are only necessary in [`qiskit_ibm_runtime.RuntimeJob.inputs()`](qiskit_ibm_runtime.RuntimeJob#inputs "qiskit_ibm_runtime.RuntimeJob.inputs"). -### Bug Fixes +* Fix the patching of `DynamicCircuitInstructions` for instructions with durations that are not in units of `dt`. -* Fixed an issue where canceled and failed jobs would return an invalid result that resulted in a type error, preventing the actual error from being returned to the user. +* Fix assignment of instruction durations when scheduling circuits with control flow. Prior to this fix, the indices for instructions on inner blocks were not mapped to the physical indices in the outer dag. -* A warning will be raised at initialization if the DE environment is being used since not all features are supported there. +* Fixed an issue with the [`IBMBackend.target`](qiskit_ibm_runtime.IBMBackend#target "qiskit_ibm_runtime.IBMBackend.target") where it would incorrectly exclude supported control flow operations (`IfElseOp`, `WhileLoop`, etc.) if a given backend supported them. -* The `backend` parameter in [`from_id()`](qiskit_ibm_runtime.Session#from_id "qiskit_ibm_runtime.Session.from_id") is being deprecated because sessions do not support multiple backends. Additionally, the `service` parameter is no longer optional. +* Fixed a bug where retrieving a fake backend through `FakeProviderForBackendV2.backend()` would result in a type error. -* The `circuit_indices` and `observable_indices` run inputs for [`Estimator`](qiskit_ibm_runtime.Estimator "qiskit_ibm_runtime.Estimator") and [`Sampler`](qiskit_ibm_runtime.Sampler "qiskit_ibm_runtime.Sampler") have been completely removed. +* Fixes the check for ISA circuits to allow pulse gates and circuits that don’t have layout. - - ### Other Notes * Added migration code for running `backend.run` in qiskit\_ibm\_runtime instead of in qiskit\_ibm\_provider. +* The `InstructionDurations` durations input is now also required for the constructor of `PadDelay`. + - + ## 0.14.0 - + ### New Features @@ -301,7 +181,7 @@ Sessions are now thread-safe and allow for multiple concurrent interactive exper - + ### Deprecation Notes @@ -309,13 +189,13 @@ Sessions are now thread-safe and allow for multiple concurrent interactive exper - + ## 0.13.0 - + ### New Features @@ -327,7 +207,7 @@ Sessions are now thread-safe and allow for multiple concurrent interactive exper - + ### Upgrade Notes @@ -337,7 +217,7 @@ Sessions are now thread-safe and allow for multiple concurrent interactive exper - + ### Bug Fixes @@ -347,13 +227,13 @@ Sessions are now thread-safe and allow for multiple concurrent interactive exper - + ## 0.12.2 - + ### New Features @@ -367,7 +247,7 @@ Sessions are now thread-safe and allow for multiple concurrent interactive exper - + ### Upgrade Notes @@ -375,13 +255,13 @@ Sessions are now thread-safe and allow for multiple concurrent interactive exper - + ## 0.12.1 - + ### New Features @@ -393,7 +273,7 @@ Sessions are now thread-safe and allow for multiple concurrent interactive exper - + ### Bug Fixes @@ -407,13 +287,13 @@ Sessions are now thread-safe and allow for multiple concurrent interactive exper - + ## 0.12.0 - + ### New Features @@ -434,7 +314,7 @@ Sessions are now thread-safe and allow for multiple concurrent interactive exper - + ### Upgrade Notes @@ -442,7 +322,7 @@ Sessions are now thread-safe and allow for multiple concurrent interactive exper - + ### Deprecation Notes @@ -450,7 +330,7 @@ Sessions are now thread-safe and allow for multiple concurrent interactive exper - + ### Bug Fixes @@ -462,13 +342,13 @@ Sessions are now thread-safe and allow for multiple concurrent interactive exper - + ## 0.11.3 - + ### New Features @@ -484,13 +364,13 @@ Sessions are now thread-safe and allow for multiple concurrent interactive exper - + ## 0.11.2 - + ### New Features @@ -513,7 +393,7 @@ Sessions are now thread-safe and allow for multiple concurrent interactive exper - + ### Bug Fixes @@ -523,13 +403,13 @@ Sessions are now thread-safe and allow for multiple concurrent interactive exper - + ## 0.11.1 - + ### Deprecation Notes @@ -537,13 +417,13 @@ Sessions are now thread-safe and allow for multiple concurrent interactive exper - + ## 0.11.0 - + ### New Features @@ -565,7 +445,7 @@ Sessions are now thread-safe and allow for multiple concurrent interactive exper - + ### Upgrade Notes @@ -575,7 +455,7 @@ Sessions are now thread-safe and allow for multiple concurrent interactive exper - + ### Deprecation Notes @@ -583,13 +463,13 @@ Sessions are now thread-safe and allow for multiple concurrent interactive exper - + ## 0.10.0 - + ### New Features @@ -597,7 +477,7 @@ Sessions are now thread-safe and allow for multiple concurrent interactive exper - + ### Upgrade Notes @@ -605,7 +485,7 @@ Sessions are now thread-safe and allow for multiple concurrent interactive exper - + ### Bug Fixes @@ -615,13 +495,13 @@ Sessions are now thread-safe and allow for multiple concurrent interactive exper - + ## 0.9.4 - + ### New Features @@ -629,7 +509,7 @@ Sessions are now thread-safe and allow for multiple concurrent interactive exper - + ### Upgrade Notes @@ -637,7 +517,7 @@ Sessions are now thread-safe and allow for multiple concurrent interactive exper - + ### Deprecation Notes @@ -651,7 +531,7 @@ Sessions are now thread-safe and allow for multiple concurrent interactive exper - + ### Bug Fixes @@ -659,13 +539,13 @@ Sessions are now thread-safe and allow for multiple concurrent interactive exper - + ## 0.9.3 - + ### Upgrade Notes @@ -675,7 +555,7 @@ Sessions are now thread-safe and allow for multiple concurrent interactive exper - + ### Bug Fixes @@ -683,13 +563,13 @@ Sessions are now thread-safe and allow for multiple concurrent interactive exper - + ## 0.9.2 - + ### New Features @@ -699,7 +579,7 @@ Sessions are now thread-safe and allow for multiple concurrent interactive exper - + ### Upgrade Notes @@ -711,7 +591,7 @@ Sessions are now thread-safe and allow for multiple concurrent interactive exper - + ### Bug Fixes @@ -725,13 +605,13 @@ Sessions are now thread-safe and allow for multiple concurrent interactive exper - + ## 0.9.1 - + ### Upgrade Notes @@ -751,7 +631,7 @@ Sessions are now thread-safe and allow for multiple concurrent interactive exper - + ### Deprecation Notes @@ -759,7 +639,7 @@ Sessions are now thread-safe and allow for multiple concurrent interactive exper - + ### Bug Fixes @@ -767,7 +647,7 @@ Sessions are now thread-safe and allow for multiple concurrent interactive exper - + ### Other Notes @@ -775,13 +655,13 @@ Sessions are now thread-safe and allow for multiple concurrent interactive exper - + ## 0.9.0 - + ### Upgrade Notes @@ -791,7 +671,7 @@ Sessions are now thread-safe and allow for multiple concurrent interactive exper - + ### Bug Fixes @@ -801,13 +681,13 @@ Sessions are now thread-safe and allow for multiple concurrent interactive exper - + ## 0.8.0 - + ### New Features @@ -819,7 +699,7 @@ Sessions are now thread-safe and allow for multiple concurrent interactive exper - + ### Upgrade Notes @@ -827,7 +707,7 @@ Sessions are now thread-safe and allow for multiple concurrent interactive exper - + ### Deprecation Notes @@ -835,7 +715,7 @@ Sessions are now thread-safe and allow for multiple concurrent interactive exper - + ### Bug Fixes @@ -843,13 +723,13 @@ Sessions are now thread-safe and allow for multiple concurrent interactive exper - + ## 0.7.0 - + ### New Features @@ -861,7 +741,7 @@ Sessions are now thread-safe and allow for multiple concurrent interactive exper - + ### Upgrade Notes @@ -869,7 +749,7 @@ Sessions are now thread-safe and allow for multiple concurrent interactive exper - + ### Deprecation Notes @@ -881,7 +761,7 @@ Sessions are now thread-safe and allow for multiple concurrent interactive exper - + ### Bug Fixes @@ -895,11 +775,11 @@ Sessions are now thread-safe and allow for multiple concurrent interactive exper - + ### Upgrade Notes -* Added a validation check to [`run()`](qiskit_ibm_runtime.Sampler#run "qiskit_ibm_runtime.Sampler.run"). It raises an error if there is no classical bit. +* Added a validation check to `run()`. It raises an error if there is no classical bit. * [`Sampler`](qiskit_ibm_runtime.Sampler "qiskit_ibm_runtime.Sampler") is updated to return `SamplerResult` with `SamplerResult.quasi_dists` as a list of `QuasiDistrbution`. It used to set a list of `dict` as `SamplerResult.quasi_dists`, but it did not follow the design of `SamplerResult`. @@ -907,7 +787,7 @@ Sessions are now thread-safe and allow for multiple concurrent interactive exper - + ### Deprecation Notes @@ -923,7 +803,7 @@ Sessions are now thread-safe and allow for multiple concurrent interactive exper - + ### Prelude @@ -931,7 +811,7 @@ There are significant changes to how primitives are invoked within a session, an - + ### New Features @@ -992,7 +872,7 @@ There are significant changes to how primitives are invoked within a session, an - + ### Upgrade Notes @@ -1017,7 +897,7 @@ There are significant changes to how primitives are invoked within a session, an - + ### Deprecation Notes @@ -1037,7 +917,7 @@ There are significant changes to how primitives are invoked within a session, an - + ### Bug Fixes @@ -1045,13 +925,13 @@ There are significant changes to how primitives are invoked within a session, an - + ## 0.6.0 - + ### Upgrade Notes @@ -1070,13 +950,13 @@ There are significant changes to how primitives are invoked within a session, an - + ## 0.5.0 - + ### Prelude @@ -1084,7 +964,7 @@ This release leverages the API and Queue enhancements to become more runtime ses - + ### New Features @@ -1099,7 +979,7 @@ This release leverages the API and Queue enhancements to become more runtime ses - + ### Upgrade Notes @@ -1158,13 +1038,13 @@ This release leverages the API and Queue enhancements to become more runtime ses - + ## 0.4.0 - + ### Upgrade Notes @@ -1251,7 +1131,7 @@ This release leverages the API and Queue enhancements to become more runtime ses - + ### Deprecation Notes @@ -1259,13 +1139,13 @@ This release leverages the API and Queue enhancements to become more runtime ses - + ## 0.3.0 - + ### Upgrade Notes @@ -1273,7 +1153,7 @@ This release leverages the API and Queue enhancements to become more runtime ses - + ### Deprecation Notes @@ -1281,7 +1161,7 @@ This release leverages the API and Queue enhancements to become more runtime ses - + ### Bug Fixes @@ -1289,13 +1169,13 @@ This release leverages the API and Queue enhancements to become more runtime ses - + ## 0.2.0 - + ### New Features @@ -1303,7 +1183,7 @@ This release leverages the API and Queue enhancements to become more runtime ses - + ### Bug Fixes @@ -1311,13 +1191,13 @@ This release leverages the API and Queue enhancements to become more runtime ses - + ## 0.1.0 - + ### Prelude @@ -1329,7 +1209,7 @@ qiskit-ibm-runtime is not included as part of Qiskit meta package and thereby yo - + ### New Features @@ -1337,7 +1217,7 @@ qiskit-ibm-runtime is not included as part of Qiskit meta package and thereby yo - + ### Upgrade Notes @@ -1400,13 +1280,13 @@ qiskit-ibm-runtime is not included as part of Qiskit meta package and thereby yo - + ## 0.1.0rc2 - + ### New Features @@ -1414,7 +1294,7 @@ qiskit-ibm-runtime is not included as part of Qiskit meta package and thereby yo - + ### Bug Fixes @@ -1424,13 +1304,13 @@ qiskit-ibm-runtime is not included as part of Qiskit meta package and thereby yo - + ## 0.1.0rc1 - + ### New Features @@ -1440,7 +1320,7 @@ qiskit-ibm-runtime is not included as part of Qiskit meta package and thereby yo - + ### Upgrade Notes @@ -1452,7 +1332,7 @@ qiskit-ibm-runtime is not included as part of Qiskit meta package and thereby yo - + ### Bug Fixes diff --git a/docs/api/qiskit-ibm-runtime/runtime_service.md b/docs/api/qiskit-ibm-runtime/runtime_service.md index 9c91dfe440a..1e9f64301d4 100644 --- a/docs/api/qiskit-ibm-runtime/runtime_service.md +++ b/docs/api/qiskit-ibm-runtime/runtime_service.md @@ -29,41 +29,49 @@ Qiskit Runtime also has the concept of a session. Jobs submitted within a sessio Below is an example of using primitives within a session: ```python -from qiskit_ibm_runtime import QiskitRuntimeService, Session, Sampler, Estimator, Options +from qiskit_ibm_runtime import QiskitRuntimeService, Session +from qiskit_ibm_runtime import SamplerV2 as Sampler +from qiskit_ibm_runtime import EstimatorV2 as Estimator from qiskit.circuit.library import RealAmplitudes from qiskit.circuit import QuantumCircuit, QuantumRegister, ClassicalRegister from qiskit.quantum_info import SparsePauliOp +from qiskit.transpiler.preset_passmanagers import generate_preset_pass_manager # Initialize account. service = QiskitRuntimeService() -# Set options, which can be overwritten at job level. -options = Options(optimization_level=3) - # Prepare inputs. psi = RealAmplitudes(num_qubits=2, reps=2) H1 = SparsePauliOp.from_list([("II", 1), ("IZ", 2), ("XI", 3)]) theta = [0, 1, 1, 2, 3, 5] # Bell Circuit qr = QuantumRegister(2, name="qr") -cr = ClassicalRegister(2, name="qc") +cr = ClassicalRegister(2, name="cr") qc = QuantumCircuit(qr, cr, name="bell") qc.h(qr[0]) qc.cx(qr[0], qr[1]) qc.measure(qr, cr) -with Session(service=service, backend="ibmq_qasm_simulator") as session: +backend = service.least_busy(operational=True, simulator=False) +bell_isa_circuit = pm.run(qc) +psi_isa_circuit = pm.run(psi) +isa_observables = H1.apply_layout(psi_isa_circuit.layout) + +with Session(service=service, backend=backend) as session: # Submit a request to the Sampler primitive within the session. - sampler = Sampler(session=session, options=options) - job = sampler.run(circuits=qc) - print(f"Sampler results: {job.result()}") + sampler = Sampler(session=session) + job = sampler.run([bell_isa_circuit]) + pub_result = job.result()[0] + print(f"Counts: {pub_result.data.cr.get_counts()}") # Submit a request to the Estimator primitive within the session. - estimator = Estimator(session=session, options=options) + estimator = Estimator(session=session) + estimator.options.resilience_level = 1 # Set options. job = estimator.run( - circuits=[psi], observables=[H1], parameter_values=[theta] + [(psi_isa_circuit, isa_observables, theta)] ) - print(f"Estimator results: {job.result()}") + pub_result = job.result()[0] + print(f"Expectation values: {pub_result.data.evs}") ``` ## Backend data @@ -103,44 +111,17 @@ import logging logging.getLogger('qiskit_ibm_runtime').setLevel(logging.WARNING) ``` -### Interim and final results - -Some runtime primitives provide interim results that inform you about the progress of your job. You can choose to stream the interim results and final result when you run the program by passing in the `callback` parameter, or at a later time using the [`RuntimeJob.stream_results()`](qiskit_ibm_runtime.RuntimeJob#stream_results "qiskit_ibm_runtime.RuntimeJob.stream_results") method. For example: - -```python -from qiskit_ibm_runtime import QiskitRuntimeService, Sampler -from qiskit.circuit import QuantumCircuit, QuantumRegister, ClassicalRegister - -service = QiskitRuntimeService() -backend = service.backend("ibmq_qasm_simulator") - -# Bell Circuit -qr = QuantumRegister(2, name="qr") -cr = ClassicalRegister(2, name="qc") -qc = QuantumCircuit(qr, cr, name="bell") -qc.h(qr[0]) -qc.cx(qr[0], qr[1]) -qc.measure(qr, cr) - -def result_callback(job_id, result): - print(result) - -# Stream results as soon as the job starts running. -job = Sampler(backend).run(qc, callback=result_callback) -print(job.result()) -``` - ## Classes -| | | -| ---------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------- | -| [`QiskitRuntimeService`](qiskit_ibm_runtime.QiskitRuntimeService "qiskit_ibm_runtime.QiskitRuntimeService")(\[channel, token, url, ...]) | Class for interacting with the Qiskit Runtime service. | -| [`Estimator`](qiskit_ibm_runtime.Estimator "qiskit_ibm_runtime.Estimator")(\[backend, session, options]) | Class for interacting with Qiskit Runtime Estimator primitive service. | -| [`Sampler`](qiskit_ibm_runtime.Sampler "qiskit_ibm_runtime.Sampler")(\[backend, session, options]) | Class for interacting with Qiskit Runtime Sampler primitive service. | -| [`Session`](qiskit_ibm_runtime.Session "qiskit_ibm_runtime.Session")(\[service, backend, max\_time]) | Class for creating a flexible Qiskit Runtime session. | -| [`IBMBackend`](qiskit_ibm_runtime.IBMBackend "qiskit_ibm_runtime.IBMBackend")(configuration, service, api\_client) | Backend class interfacing with an IBM Quantum backend. | -| [`RuntimeJob`](qiskit_ibm_runtime.RuntimeJob "qiskit_ibm_runtime.RuntimeJob")(backend, api\_client, ...\[, ...]) | Representation of a runtime program execution. | -| [`RuntimeOptions`](qiskit_ibm_runtime.RuntimeOptions "qiskit_ibm_runtime.RuntimeOptions")(\[backend, image, log\_level, ...]) | Class for representing generic runtime execution options. | -| [`RuntimeEncoder`](qiskit_ibm_runtime.RuntimeEncoder "qiskit_ibm_runtime.RuntimeEncoder")(\*\[, skipkeys, ensure\_ascii, ...]) | JSON Encoder used by runtime service. | -| [`RuntimeDecoder`](qiskit_ibm_runtime.RuntimeDecoder "qiskit_ibm_runtime.RuntimeDecoder")(\*args, \*\*kwargs) | JSON Decoder used by runtime service. | +| | | +| ---------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------- | +| [`QiskitRuntimeService`](qiskit_ibm_runtime.QiskitRuntimeService "qiskit_ibm_runtime.QiskitRuntimeService")(\[channel, token, url, ...]) | Class for interacting with the Qiskit Runtime service. | +| [`Estimator`](qiskit_ibm_runtime.Estimator "qiskit_ibm_runtime.Estimator") | alias of `EstimatorV1` | +| [`Sampler`](qiskit_ibm_runtime.Sampler "qiskit_ibm_runtime.Sampler") | alias of `SamplerV1` | +| [`Session`](qiskit_ibm_runtime.Session "qiskit_ibm_runtime.Session")(\[service, backend, max\_time]) | Class for creating a Qiskit Runtime session. | +| [`IBMBackend`](qiskit_ibm_runtime.IBMBackend "qiskit_ibm_runtime.IBMBackend")(configuration, service, api\_client) | Backend class interfacing with an IBM Quantum backend. | +| [`RuntimeJob`](qiskit_ibm_runtime.RuntimeJob "qiskit_ibm_runtime.RuntimeJob")(backend, api\_client, ...\[, ...]) | Representation of a runtime program execution. | +| [`RuntimeOptions`](qiskit_ibm_runtime.RuntimeOptions "qiskit_ibm_runtime.RuntimeOptions")(\[backend, image, log\_level, ...]) | Class for representing generic runtime execution options. | +| [`RuntimeEncoder`](qiskit_ibm_runtime.RuntimeEncoder "qiskit_ibm_runtime.RuntimeEncoder")(\*\[, skipkeys, ensure\_ascii, ...]) | JSON Encoder used by runtime service. | +| [`RuntimeDecoder`](qiskit_ibm_runtime.RuntimeDecoder "qiskit_ibm_runtime.RuntimeDecoder")(\*args, \*\*kwargs) | JSON Decoder used by runtime service. | diff --git a/public/api/qiskit-ibm-runtime/objects.inv b/public/api/qiskit-ibm-runtime/objects.inv index 9135aef616bebaa3651a342907a367cc504f81a2..7955550577cc18f376005307a05eac03ee8a24ad 100644 GIT binary patch literal 61533 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�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 Lk|_VVM%?~if$q37 literal 53614 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 SCc8k_CsCv1twP<)k^ca+*WAAV diff --git a/public/images/api/qiskit-ibm-runtime/fake_provider-1_02.png b/public/images/api/qiskit-ibm-runtime/fake_provider-1_02.png index b266634ef2ca4eb7e795e84041fd41f9ebe4cba3..56dbf9d0b3d3c03ec8063148550f2744ecb6dcf4 100644 GIT binary patch literal 14386 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 a3sSqo)C_GmP4(a>B(n5{b7^M`ZvQvfEwXI@ literal 14701 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 RSuh1ZG#RCniN_6Z{x8{KKxF^` diff --git a/scripts/api-html-artifacts.json b/scripts/api-html-artifacts.json index d7c8344c03b..da429c0841a 100644 --- a/scripts/api-html-artifacts.json +++ b/scripts/api-html-artifacts.json @@ -34,6 +34,7 @@ }, "qiskit-ibm-runtime": { "dev": "https://ibm.box.com/shared/static/j4o6bvkmfndk9ib9h5wp2u3sprj9n6tv.zip", + "0.21": "https://ibm.box.com/shared/static/p5nc95ypavdaq3sk8g1ebm3h4bc1a846.zip", "0.20": "https://ibm.box.com/shared/static/0bcr09epud50i3czdx791iagumrf5bjz.zip", "0.19": "https://ibm.box.com/shared/static/ojpnzc71aex4d8itnktwbp9m7l15nazs.zip", "0.18": "https://ibm.box.com/shared/static/rbjdfogq8t1a4tquw1bh6gy4qdcv521v.zip", From 7a2ff9e886d1d4bada1492ca90b1b0e8814a9b21 Mon Sep 17 00:00:00 2001 From: Eric Arellano <14852634+Eric-Arellano@users.noreply.github.com> Date: Wed, 6 Mar 2024 10:30:54 -0500 Subject: [PATCH 3/9] REgen dev --- docs/api/qiskit-ibm-runtime/dev/_package.json | 2 +- docs/api/qiskit-ibm-runtime/dev/_toc.json | 48 ++++- docs/api/qiskit-ibm-runtime/dev/options.md | 60 +++++- .../dev/qiskit_ibm_runtime.Estimator.md | 137 +------------ .../dev/qiskit_ibm_runtime.IBMBackend.md | 2 +- ...qiskit_ibm_runtime.QiskitRuntimeService.md | 83 ++------ .../dev/qiskit_ibm_runtime.RuntimeDecoder.md | 4 +- .../dev/qiskit_ibm_runtime.RuntimeEncoder.md | 4 +- .../dev/qiskit_ibm_runtime.RuntimeJob.md | 49 +++-- .../dev/qiskit_ibm_runtime.RuntimeOptions.md | 2 +- .../dev/qiskit_ibm_runtime.Sampler.md | 128 +----------- .../dev/qiskit_ibm_runtime.Session.md | 40 ++-- ...t_ibm_runtime.fake_provider.FakeAlgiers.md | 2 +- ...t_ibm_runtime.fake_provider.FakeAlmaden.md | 2 +- ...ibm_runtime.fake_provider.FakeAlmadenV2.md | 2 +- ...it_ibm_runtime.fake_provider.FakeArmonk.md | 2 +- ..._ibm_runtime.fake_provider.FakeArmonkV2.md | 2 +- ...it_ibm_runtime.fake_provider.FakeAthens.md | 2 +- ..._ibm_runtime.fake_provider.FakeAthensV2.md | 2 +- ..._ibm_runtime.fake_provider.FakeAuckland.md | 2 +- ...kit_ibm_runtime.fake_provider.FakeBelem.md | 2 +- ...t_ibm_runtime.fake_provider.FakeBelemV2.md | 2 +- ...bm_runtime.fake_provider.FakeBoeblingen.md | 2 +- ..._runtime.fake_provider.FakeBoeblingenV2.md | 2 +- ...it_ibm_runtime.fake_provider.FakeBogota.md | 2 +- ..._ibm_runtime.fake_provider.FakeBogotaV2.md | 2 +- ..._ibm_runtime.fake_provider.FakeBrisbane.md | 2 +- ..._ibm_runtime.fake_provider.FakeBrooklyn.md | 2 +- ...bm_runtime.fake_provider.FakeBrooklynV2.md | 2 +- ...bm_runtime.fake_provider.FakeBurlington.md | 2 +- ..._runtime.fake_provider.FakeBurlingtonV2.md | 2 +- ...kit_ibm_runtime.fake_provider.FakeCairo.md | 2 +- ...t_ibm_runtime.fake_provider.FakeCairoV2.md | 2 +- ...ibm_runtime.fake_provider.FakeCambridge.md | 2 +- ...m_runtime.fake_provider.FakeCambridgeV2.md | 2 +- ...bm_runtime.fake_provider.FakeCasablanca.md | 2 +- ..._runtime.fake_provider.FakeCasablancaV2.md | 2 +- ...kit_ibm_runtime.fake_provider.FakeCusco.md | 2 +- ...kit_ibm_runtime.fake_provider.FakeEssex.md | 2 +- ...t_ibm_runtime.fake_provider.FakeEssexV2.md | 2 +- ...it_ibm_runtime.fake_provider.FakeGeneva.md | 2 +- ...ibm_runtime.fake_provider.FakeGuadalupe.md | 2 +- ...m_runtime.fake_provider.FakeGuadalupeV2.md | 2 +- ...kit_ibm_runtime.fake_provider.FakeHanoi.md | 2 +- ...t_ibm_runtime.fake_provider.FakeHanoiV2.md | 2 +- ...t_ibm_runtime.fake_provider.FakeJakarta.md | 2 +- ...ibm_runtime.fake_provider.FakeJakartaV2.md | 2 +- ..._runtime.fake_provider.FakeJohannesburg.md | 2 +- ...untime.fake_provider.FakeJohannesburgV2.md | 2 +- ..._ibm_runtime.fake_provider.FakeKawasaki.md | 2 +- ...t_ibm_runtime.fake_provider.FakeKolkata.md | 2 +- ...ibm_runtime.fake_provider.FakeKolkataV2.md | 2 +- ...skit_ibm_runtime.fake_provider.FakeKyiv.md | 2 +- ...kit_ibm_runtime.fake_provider.FakeKyoto.md | 2 +- ...kit_ibm_runtime.fake_provider.FakeLagos.md | 2 +- ...t_ibm_runtime.fake_provider.FakeLagosV2.md | 2 +- ...skit_ibm_runtime.fake_provider.FakeLima.md | 2 +- ...it_ibm_runtime.fake_provider.FakeLimaV2.md | 2 +- ...it_ibm_runtime.fake_provider.FakeLondon.md | 2 +- ..._ibm_runtime.fake_provider.FakeLondonV2.md | 2 +- ...ibm_runtime.fake_provider.FakeManhattan.md | 2 +- ...m_runtime.fake_provider.FakeManhattanV2.md | 2 +- ...it_ibm_runtime.fake_provider.FakeManila.md | 2 +- ..._ibm_runtime.fake_provider.FakeManilaV2.md | 2 +- ...ibm_runtime.fake_provider.FakeMelbourne.md | 2 +- ...m_runtime.fake_provider.FakeMelbourneV2.md | 2 +- ..._ibm_runtime.fake_provider.FakeMontreal.md | 2 +- ...bm_runtime.fake_provider.FakeMontrealV2.md | 2 +- ...it_ibm_runtime.fake_provider.FakeMumbai.md | 2 +- ..._ibm_runtime.fake_provider.FakeMumbaiV2.md | 2 +- ...t_ibm_runtime.fake_provider.FakeNairobi.md | 2 +- ...ibm_runtime.fake_provider.FakeNairobiV2.md | 2 +- ...kit_ibm_runtime.fake_provider.FakeOsaka.md | 2 +- ...skit_ibm_runtime.fake_provider.FakeOslo.md | 2 +- ...t_ibm_runtime.fake_provider.FakeOurense.md | 2 +- ...ibm_runtime.fake_provider.FakeOurenseV2.md | 2 +- ...kit_ibm_runtime.fake_provider.FakeParis.md | 2 +- ...t_ibm_runtime.fake_provider.FakeParisV2.md | 2 +- ...ibm_runtime.fake_provider.FakePeekskill.md | 2 +- ...kit_ibm_runtime.fake_provider.FakePerth.md | 2 +- ..._runtime.fake_provider.FakePoughkeepsie.md | 2 +- ...untime.fake_provider.FakePoughkeepsieV2.md | 2 +- ...it_ibm_runtime.fake_provider.FakePrague.md | 2 +- ..._ibm_runtime.fake_provider.FakeProvider.md | 2 +- ....fake_provider.FakeProviderForBackendV2.md | 2 +- ...it_ibm_runtime.fake_provider.FakeQuebec.md | 2 +- ...kit_ibm_runtime.fake_provider.FakeQuito.md | 2 +- ...t_ibm_runtime.fake_provider.FakeQuitoV2.md | 2 +- ...ibm_runtime.fake_provider.FakeRochester.md | 2 +- ...m_runtime.fake_provider.FakeRochesterV2.md | 2 +- ...skit_ibm_runtime.fake_provider.FakeRome.md | 2 +- ...it_ibm_runtime.fake_provider.FakeRomeV2.md | 2 +- ..._ibm_runtime.fake_provider.FakeSantiago.md | 2 +- ...bm_runtime.fake_provider.FakeSantiagoV2.md | 2 +- ...bm_runtime.fake_provider.FakeSherbrooke.md | 2 +- ...ibm_runtime.fake_provider.FakeSingapore.md | 2 +- ...m_runtime.fake_provider.FakeSingaporeV2.md | 2 +- ...it_ibm_runtime.fake_provider.FakeSydney.md | 2 +- ..._ibm_runtime.fake_provider.FakeSydneyV2.md | 2 +- ..._ibm_runtime.fake_provider.FakeTenerife.md | 2 +- ...kit_ibm_runtime.fake_provider.FakeTokyo.md | 2 +- ...it_ibm_runtime.fake_provider.FakeTorino.md | 2 +- ...t_ibm_runtime.fake_provider.FakeToronto.md | 2 +- ...ibm_runtime.fake_provider.FakeTorontoV2.md | 2 +- ..._ibm_runtime.fake_provider.FakeValencia.md | 2 +- ...bm_runtime.fake_provider.FakeValenciaV2.md | 2 +- ...skit_ibm_runtime.fake_provider.FakeVigo.md | 2 +- ...it_ibm_runtime.fake_provider.FakeVigoV2.md | 2 +- ...bm_runtime.fake_provider.FakeWashington.md | 2 +- ..._runtime.fake_provider.FakeWashingtonV2.md | 2 +- ..._ibm_runtime.fake_provider.FakeYorktown.md | 2 +- ...bm_runtime.fake_provider.FakeYorktownV2.md | 2 +- ...time.options.DynamicalDecouplingOptions.md | 73 +++++++ ..._ibm_runtime.options.EnvironmentOptions.md | 30 +-- ...it_ibm_runtime.options.EstimatorOptions.md | 189 ++++++++++++++++++ ...it_ibm_runtime.options.ExecutionOptions.md | 20 +- ..._ibm_runtime.options.ExecutionOptionsV2.md | 41 ++++ ...ntime.options.LayerNoiseLearningOptions.md | 63 ++++++ ...ime.options.MeasureNoiseLearningOptions.md | 45 +++++ .../dev/qiskit_ibm_runtime.options.Options.md | 6 +- .../qiskit_ibm_runtime.options.PecOptions.md | 50 +++++ ...t_ibm_runtime.options.ResilienceOptions.md | 28 +-- ...ibm_runtime.options.ResilienceOptionsV2.md | 86 ++++++++ ...skit_ibm_runtime.options.SamplerOptions.md | 95 +++++++++ ...it_ibm_runtime.options.SimulatorOptions.md | 42 ++-- ...bm_runtime.options.TranspilationOptions.md | 40 ++-- ...kit_ibm_runtime.options.TwirlingOptions.md | 81 ++++++++ .../qiskit_ibm_runtime.options.ZneOptions.md | 51 +++++ ....passes.scheduling.ALAPScheduleAnalysis.md | 2 +- ....passes.scheduling.ASAPScheduleAnalysis.md | 2 +- ...piler.passes.scheduling.BlockBasePadder.md | 2 +- ...ling.DynamicCircuitInstructionDurations.md | 8 +- ...e.transpiler.passes.scheduling.PadDelay.md | 2 +- ...asses.scheduling.PadDynamicalDecoupling.md | 2 +- .../qiskit-ibm-runtime/dev/runtime_service.md | 81 +++----- public/api/qiskit-ibm-runtime/dev/objects.inv | Bin 59935 -> 61533 bytes .../dev/fake_provider-1_02.png | Bin 14727 -> 14931 bytes scripts/api-html-artifacts.json | 2 +- 138 files changed, 1142 insertions(+), 658 deletions(-) create mode 100644 docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.options.DynamicalDecouplingOptions.md create mode 100644 docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.options.EstimatorOptions.md create mode 100644 docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.options.ExecutionOptionsV2.md create mode 100644 docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.options.LayerNoiseLearningOptions.md create mode 100644 docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.options.MeasureNoiseLearningOptions.md create mode 100644 docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.options.PecOptions.md create mode 100644 docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.options.ResilienceOptionsV2.md create mode 100644 docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.options.SamplerOptions.md create mode 100644 docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.options.TwirlingOptions.md create mode 100644 docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.options.ZneOptions.md diff --git a/docs/api/qiskit-ibm-runtime/dev/_package.json b/docs/api/qiskit-ibm-runtime/dev/_package.json index c41c1253637..54f6a50e7e5 100644 --- a/docs/api/qiskit-ibm-runtime/dev/_package.json +++ b/docs/api/qiskit-ibm-runtime/dev/_package.json @@ -1,4 +1,4 @@ { "name": "qiskit-ibm-runtime", - "version": "0.20.1-dev" + "version": "0.21.1-dev" } diff --git a/docs/api/qiskit-ibm-runtime/dev/_toc.json b/docs/api/qiskit-ibm-runtime/dev/_toc.json index 801b22be5c9..47409f78110 100644 --- a/docs/api/qiskit-ibm-runtime/dev/_toc.json +++ b/docs/api/qiskit-ibm-runtime/dev/_toc.json @@ -8,10 +8,6 @@ "title": "Overview", "url": "/api/qiskit-ibm-runtime/dev/runtime_service" }, - { - "title": "Estimator", - "url": "/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.Estimator" - }, { "title": "IBMBackend", "url": "/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.IBMBackend" @@ -36,10 +32,6 @@ "title": "RuntimeOptions", "url": "/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.RuntimeOptions" }, - { - "title": "Sampler", - "url": "/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.Sampler" - }, { "title": "Session", "url": "/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.Session" @@ -466,22 +458,54 @@ "title": "Overview", "url": "/api/qiskit-ibm-runtime/dev/options" }, + { + "title": "DynamicalDecouplingOptions", + "url": "/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.options.DynamicalDecouplingOptions" + }, { "title": "EnvironmentOptions", "url": "/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.options.EnvironmentOptions" }, + { + "title": "EstimatorOptions", + "url": "/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.options.EstimatorOptions" + }, { "title": "ExecutionOptions", "url": "/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.options.ExecutionOptions" }, + { + "title": "ExecutionOptionsV2", + "url": "/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.options.ExecutionOptionsV2" + }, + { + "title": "LayerNoiseLearningOptions", + "url": "/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.options.LayerNoiseLearningOptions" + }, + { + "title": "MeasureNoiseLearningOptions", + "url": "/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.options.MeasureNoiseLearningOptions" + }, { "title": "Options", "url": "/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.options.Options" }, + { + "title": "PecOptions", + "url": "/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.options.PecOptions" + }, { "title": "ResilienceOptions", "url": "/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.options.ResilienceOptions" }, + { + "title": "ResilienceOptionsV2", + "url": "/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.options.ResilienceOptionsV2" + }, + { + "title": "SamplerOptions", + "url": "/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.options.SamplerOptions" + }, { "title": "SimulatorOptions", "url": "/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.options.SimulatorOptions" @@ -489,6 +513,14 @@ { "title": "TranspilationOptions", "url": "/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.options.TranspilationOptions" + }, + { + "title": "TwirlingOptions", + "url": "/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.options.TwirlingOptions" + }, + { + "title": "ZneOptions", + "url": "/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.options.ZneOptions" } ] }, diff --git a/docs/api/qiskit-ibm-runtime/dev/options.md b/docs/api/qiskit-ibm-runtime/dev/options.md index 5d3a56bc888..c3de6e01159 100644 --- a/docs/api/qiskit-ibm-runtime/dev/options.md +++ b/docs/api/qiskit-ibm-runtime/dev/options.md @@ -18,7 +18,39 @@ python_api_name: qiskit_ibm_runtime.options Options that can be passed to the primitives. -The [`Options`](qiskit_ibm_runtime.options.Options "qiskit_ibm_runtime.options.Options") class encapsulates all the options you can specify when invoking a primitive. It includes frequently used options, such as `optimization_level` and `resilience_level` as well as sub-categories, such as `transpilation` and `execution`. You can use auto-complete to easily find the options inside each sub-category, for example: +**V2 Primitives** + +`SamplerV2` and `EstimatorV2` each have their own options. You can use the `options` attribute to set the options. For example: + +```python +from qiskit_ibm_runtime import QiskitRuntimeService, EstimatorV2 + +service = QiskitRuntimeService() +backend = service.least_busy(operational=True, simulator=False) +estimator = EstimatorV2(backend=backend) +estimator.options.resilience_level = 1 +``` + +You can also use the `update()` method to do bulk update. For example: + +```python +from qiskit_ibm_runtime import QiskitRuntimeService, EstimatorV2 + +service = QiskitRuntimeService() +backend = service.least_busy(operational=True, simulator=False) +estimator = EstimatorV2(backend=backend) +estimator.options.update(resilience_level=1) +``` + +Refer to [`SamplerOptions`](qiskit_ibm_runtime.options.SamplerOptions "qiskit_ibm_runtime.options.SamplerOptions") and [`EstimatorOptions`](qiskit_ibm_runtime.options.EstimatorOptions "qiskit_ibm_runtime.options.EstimatorOptions") for V2 Sampler and V2 Estimator options, respectively. + + + If an option is not specified, the server default value is used. The default values are subject to change. See the [API Reference](/api/qiskit-ibm-runtime/options) for the most up-to-date default values. + + +**V1 Primitives** + +The [`Options`](qiskit_ibm_runtime.options.Options "qiskit_ibm_runtime.options.Options") class encapsulates all the options you can specify when invoking a V1 primitive. It includes frequently used options, such as `optimization_level` and `resilience_level` as well as sub-categories, such as `transpilation` and `execution`. You can use auto-complete to easily find the options inside each sub-category, for example: ```python from qiskit_ibm_runtime.options import Options @@ -37,12 +69,22 @@ options = Options(transpilation={"initial_layout": [0, 1, 2, 3]}) ## Classes -| | | -| -------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------- | -| [`Options`](qiskit_ibm_runtime.options.Options "qiskit_ibm_runtime.options.Options")(\[optimization\_level, ...]) | Options for the primitives. | -| [`TranspilationOptions`](qiskit_ibm_runtime.options.TranspilationOptions "qiskit_ibm_runtime.options.TranspilationOptions")(\[skip\_transpilation, ...]) | Transpilation options. | -| [`ResilienceOptions`](qiskit_ibm_runtime.options.ResilienceOptions "qiskit_ibm_runtime.options.ResilienceOptions")(\[noise\_amplifier, ...]) | Resilience options. | -| [`ExecutionOptions`](qiskit_ibm_runtime.options.ExecutionOptions "qiskit_ibm_runtime.options.ExecutionOptions")(\[shots, init\_qubits]) | Execution options. | -| [`EnvironmentOptions`](qiskit_ibm_runtime.options.EnvironmentOptions "qiskit_ibm_runtime.options.EnvironmentOptions")(\[log\_level, callback, ...]) | Options related to the execution environment. | -| [`SimulatorOptions`](qiskit_ibm_runtime.options.SimulatorOptions "qiskit_ibm_runtime.options.SimulatorOptions")(\[noise\_model, ...]) | Simulator options. | +| | | +| -------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------- | +| [`EstimatorOptions`](qiskit_ibm_runtime.options.EstimatorOptions "qiskit_ibm_runtime.options.EstimatorOptions")(\*args, \*\*kwargs) | Options for V2 Estimator. | +| [`SamplerOptions`](qiskit_ibm_runtime.options.SamplerOptions "qiskit_ibm_runtime.options.SamplerOptions")(\*args, \*\*kwargs) | Options for V2 Sampler. | +| [`DynamicalDecouplingOptions`](qiskit_ibm_runtime.options.DynamicalDecouplingOptions "qiskit_ibm_runtime.options.DynamicalDecouplingOptions")(\*args, \*\*kwargs) | Options for dynamical decoupling (DD). | +| [`ResilienceOptionsV2`](qiskit_ibm_runtime.options.ResilienceOptionsV2 "qiskit_ibm_runtime.options.ResilienceOptionsV2")(\*args, \*\*kwargs) | Resilience options for V2 Estimator. | +| [`LayerNoiseLearningOptions`](qiskit_ibm_runtime.options.LayerNoiseLearningOptions "qiskit_ibm_runtime.options.LayerNoiseLearningOptions")(\*args, \*\*kwargs) | Options for learning layer noise. | +| [`MeasureNoiseLearningOptions`](qiskit_ibm_runtime.options.MeasureNoiseLearningOptions "qiskit_ibm_runtime.options.MeasureNoiseLearningOptions")(\*args, \*\*kwargs) | Options for measurement noise learning. | +| [`PecOptions`](qiskit_ibm_runtime.options.PecOptions "qiskit_ibm_runtime.options.PecOptions")(\*args, \*\*kwargs) | Probabalistic error cancellation mitigation options. | +| [`ZneOptions`](qiskit_ibm_runtime.options.ZneOptions "qiskit_ibm_runtime.options.ZneOptions")(\*args, \*\*kwargs) | Zero noise extrapolation mitigation options. | +| [`TwirlingOptions`](qiskit_ibm_runtime.options.TwirlingOptions "qiskit_ibm_runtime.options.TwirlingOptions")(\*args, \*\*kwargs) | Twirling options. | +| [`ExecutionOptionsV2`](qiskit_ibm_runtime.options.ExecutionOptionsV2 "qiskit_ibm_runtime.options.ExecutionOptionsV2")(\*args, \*\*kwargs) | Execution options for V2 primitives. | +| [`Options`](qiskit_ibm_runtime.options.Options "qiskit_ibm_runtime.options.Options")(\[optimization\_level, ...]) | Options for the primitives, used by V1 primitives. | +| [`TranspilationOptions`](qiskit_ibm_runtime.options.TranspilationOptions "qiskit_ibm_runtime.options.TranspilationOptions")(\*args, \*\*kwargs) | Transpilation options. | +| [`ResilienceOptions`](qiskit_ibm_runtime.options.ResilienceOptions "qiskit_ibm_runtime.options.ResilienceOptions")(\*args, \*\*kwargs) | Resilience options for V1 primitives. | +| [`ExecutionOptions`](qiskit_ibm_runtime.options.ExecutionOptions "qiskit_ibm_runtime.options.ExecutionOptions")(\*args, \*\*kwargs) | Execution options for V1 primitives. | +| [`EnvironmentOptions`](qiskit_ibm_runtime.options.EnvironmentOptions "qiskit_ibm_runtime.options.EnvironmentOptions")(\*args, \*\*kwargs) | Options related to the execution environment. | +| [`SimulatorOptions`](qiskit_ibm_runtime.options.SimulatorOptions "qiskit_ibm_runtime.options.SimulatorOptions")(\*args, \*\*kwargs) | Simulator options. | diff --git a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.Estimator.md b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.Estimator.md index 23b9c932ad7..dbd84e07e14 100644 --- a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.Estimator.md +++ b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.Estimator.md @@ -2,144 +2,11 @@ title: Estimator description: API reference for qiskit_ibm_runtime.Estimator in_page_toc_min_heading_level: 1 -python_api_type: class +python_api_type: attribute python_api_name: qiskit_ibm_runtime.Estimator --- # Estimator - - -`Estimator(backend=None, session=None, options=None)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/estimator.py#L36-L219 "view source code") - -Class for interacting with Qiskit Runtime Estimator primitive service. - -Qiskit Runtime Estimator primitive service estimates expectation values of quantum circuits and observables. - -The [`run()`](#qiskit_ibm_runtime.Estimator.run "qiskit_ibm_runtime.Estimator.run") can be used to submit circuits, observables, and parameters to the Estimator primitive. - -You are encouraged to use [`Session`](qiskit_ibm_runtime.Session "qiskit_ibm_runtime.Session") to open a session, during which you can invoke one or more primitives. Jobs submitted within a session are prioritized by the scheduler, and data is cached for efficiency. - -Example: - -```python -from qiskit.circuit.library import RealAmplitudes -from qiskit.quantum_info import SparsePauliOp - -from qiskit_ibm_runtime import QiskitRuntimeService, Estimator - -service = QiskitRuntimeService(channel="ibm_cloud") - -psi1 = RealAmplitudes(num_qubits=2, reps=2) - -H1 = SparsePauliOp.from_list([("II", 1), ("IZ", 2), ("XI", 3)]) -H2 = SparsePauliOp.from_list([("IZ", 1)]) -H3 = SparsePauliOp.from_list([("ZI", 1), ("ZZ", 1)]) - -with Session(service=service, backend="ibmq_qasm_simulator") as session: - estimator = Estimator(session=session) - - theta1 = [0, 1, 1, 2, 3, 5] - - # calculate [ ] - psi1_H1 = estimator.run(circuits=[psi1], observables=[H1], parameter_values=[theta1]) - print(psi1_H1.result()) - - # calculate [ , ] - psi1_H23 = estimator.run( - circuits=[psi1, psi1], - observables=[H2, H3], - parameter_values=[theta1]*2 - ) - print(psi1_H23.result()) -``` - -Initializes the Estimator primitive. - -**Parameters** - -* **backend** (`Union`\[`str`, [`IBMBackend`](qiskit_ibm_runtime.IBMBackend "qiskit_ibm_runtime.ibm_backend.IBMBackend"), `None`]) – Backend to run the primitive. This can be a backend name or an [`IBMBackend`](qiskit_ibm_runtime.IBMBackend "qiskit_ibm_runtime.IBMBackend") instance. If a name is specified, the default account (e.g. `QiskitRuntimeService()`) is used. - -* **session** (`Union`\[[`Session`](qiskit_ibm_runtime.Session "qiskit_ibm_runtime.session.Session"), `str`, [`IBMBackend`](qiskit_ibm_runtime.IBMBackend "qiskit_ibm_runtime.ibm_backend.IBMBackend"), `None`]) – - - Session in which to call the primitive. - - If both `session` and `backend` are specified, `session` takes precedence. If neither is specified, and the primitive is created inside a [`qiskit_ibm_runtime.Session`](qiskit_ibm_runtime.Session "qiskit_ibm_runtime.Session") context manager, then the session is used. Otherwise if IBM Cloud channel is used, a default backend is selected. - -* **options** (`Union`\[`Dict`, [`Options`](qiskit_ibm_runtime.options.Options "qiskit_ibm_runtime.options.options.Options"), `None`]) – Primitive options, see `Options` for detailed description. The `backend` keyword is still supported but is deprecated. - -## Attributes - - - -### options - -Return options values for the sampler. - -**Return type** - -`Options` - -**Returns** - -options - - - -### session - -Return session used by this primitive. - -**Return type** - -`Optional`\[[`Session`](qiskit_ibm_runtime.Session "qiskit_ibm_runtime.session.Session")] - -**Returns** - -Session used by this primitive, or `None` if session is not used. - -## Methods - -### run - - - -`run(circuits, observables, parameter_values=None, **kwargs)` - -Submit a request to the estimator primitive. - -**Parameters** - -* **circuits** (*QuantumCircuit | Sequence\[QuantumCircuit]*) – a (parameterized) `QuantumCircuit` or a list of (parameterized) `QuantumCircuit`. -* **observables** (*BaseOperator | Sequence\[BaseOperator]*) – Observable objects. -* **parameter\_values** (*Sequence\[float] | Sequence\[Sequence\[float]] | None*) – Concrete parameters to be bound. -* **\*\*kwargs** – Individual options to overwrite the default primitive options. These include the runtime options in [`qiskit_ibm_runtime.RuntimeOptions`](qiskit_ibm_runtime.RuntimeOptions "qiskit_ibm_runtime.RuntimeOptions"). - -**Return type** - -[RuntimeJob](qiskit_ibm_runtime.RuntimeJob "qiskit_ibm_runtime.RuntimeJob") - -**Returns** - -Submitted job. The result of the job is an instance of `qiskit.primitives.EstimatorResult`. - -**Raises** - -**ValueError** – Invalid arguments are given. - -### set\_options - - - -`set_options(**fields)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/base_primitive.py#L225-L231 "view source code") - -Set options values for the sampler. - -**Parameters** - -**\*\*fields** – The fields to update the options - -**Return type** - -`None` +alias of `EstimatorV1` diff --git a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.IBMBackend.md b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.IBMBackend.md index e25f58729f7..0c7f6384210 100644 --- a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.IBMBackend.md +++ b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.IBMBackend.md @@ -352,7 +352,7 @@ Version of the backend being provided. This is not the same as `BackendV2.versio -`__call__()` +`__call__()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/ibm_backend.py#L506-L508 "view source code") Call self as a function. diff --git a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.QiskitRuntimeService.md b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.QiskitRuntimeService.md index 49b7bd2c1c6..c31c45fbedf 100644 --- a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.QiskitRuntimeService.md +++ b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.QiskitRuntimeService.md @@ -10,59 +10,10 @@ python_api_name: qiskit_ibm_runtime.QiskitRuntimeService -`QiskitRuntimeService(channel=None, token=None, url=None, filename=None, name=None, instance=None, proxies=None, verify=None, channel_strategy=None)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/qiskit_runtime_service.py#L64-L1219 "view source code") +`QiskitRuntimeService(channel=None, token=None, url=None, filename=None, name=None, instance=None, proxies=None, verify=None, channel_strategy=None)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/qiskit_runtime_service.py#L65-L1177 "view source code") Class for interacting with the Qiskit Runtime service. -Qiskit Runtime is a new architecture offered by IBM Quantum that streamlines computations requiring many iterations. These experiments will execute significantly faster within its improved hybrid quantum/classical process. - -A sample workflow of using the runtime service: - -```python -from qiskit_ibm_runtime import QiskitRuntimeService, Session, Sampler, Estimator, Options -from qiskit.circuit.library import RealAmplitudes -from qiskit.circuit import QuantumCircuit, QuantumRegister, ClassicalRegister -from qiskit.quantum_info import SparsePauliOp - -# Initialize account. -service = QiskitRuntimeService() - -# Set options, which can be overwritten at job level. -options = Options(optimization_level=1) - -# Prepare inputs. -psi = RealAmplitudes(num_qubits=2, reps=2) -H1 = SparsePauliOp.from_list([("II", 1), ("IZ", 2), ("XI", 3)]) -theta = [0, 1, 1, 2, 3, 5] - -# Bell Circuit -qr = QuantumRegister(2, name="qr") -cr = ClassicalRegister(2, name="cr") -qc = QuantumCircuit(qr, cr, name="bell") -qc.h(qr[0]) -qc.cx(qr[0], qr[1]) -qc.measure(qr, cr) - -with Session(service=service, backend="ibmq_qasm_simulator") as session: - # Submit a request to the Sampler primitive within the session. - sampler = Sampler(session=session, options=options) - job = sampler.run(circuits=qc) - print(f"Sampler results: {job.result()}") - - # Submit a request to the Estimator primitive within the session. - estimator = Estimator(session=session, options=options) - job = estimator.run( - circuits=[psi], observables=[H1], parameter_values=[theta] - ) - print(f"Estimator results: {job.result()}") -``` - -The example above uses the dedicated [`Sampler`](qiskit_ibm_runtime.Sampler "qiskit_ibm_runtime.Sampler") and [`Estimator`](qiskit_ibm_runtime.Estimator "qiskit_ibm_runtime.Estimator") classes. You can also use the [`run()`](#qiskit_ibm_runtime.QiskitRuntimeService.run "qiskit_ibm_runtime.QiskitRuntimeService.run") method directly to invoke a Qiskit Runtime program. - -If the program has any interim results, you can use the `callback` parameter of the [`run()`](#qiskit_ibm_runtime.QiskitRuntimeService.run "qiskit_ibm_runtime.QiskitRuntimeService.run") method to stream the interim results. Alternatively, you can use the [`RuntimeJob.stream_results()`](qiskit_ibm_runtime.RuntimeJob#stream_results "qiskit_ibm_runtime.RuntimeJob.stream_results") method to stream the results at a later time, but before the job finishes. - -The [`run()`](#qiskit_ibm_runtime.QiskitRuntimeService.run "qiskit_ibm_runtime.QiskitRuntimeService.run") method returns a [`RuntimeJob`](qiskit_ibm_runtime.RuntimeJob "qiskit_ibm_runtime.RuntimeJob") object. You can use its methods to perform tasks like checking job status, getting job result, and canceling job. - QiskitRuntimeService constructor An account is selected in the following order: @@ -141,7 +92,7 @@ self -`active_account()` +`active_account()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/qiskit_runtime_service.py#L649-L655 "view source code") Return the IBM Quantum account currently in use for the session. @@ -157,7 +108,7 @@ A dictionary with information about the account currently in the session. -`backend(name=None, instance=None)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/qiskit_runtime_service.py#L817-L847 "view source code") +`backend(name=None, instance=None)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/qiskit_runtime_service.py#L758-L788 "view source code") Return a single backend matching the specified filtering. @@ -182,7 +133,7 @@ Backend -`backends(name=None, min_num_qubits=None, instance=None, dynamic_circuits=None, filters=None, **kwargs)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/qiskit_runtime_service.py#L544-L652 "view source code") +`backends(name=None, min_num_qubits=None, instance=None, dynamic_circuits=None, filters=None, **kwargs)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/qiskit_runtime_service.py#L486-L593 "view source code") Return all backends accessible via this account, subject to optional filtering. @@ -241,7 +192,7 @@ The list of available backends that match the filter. -`static delete_account(filename=None, name=None, channel=None)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/qiskit_runtime_service.py#L716-L734 "view source code") +`static delete_account(filename=None, name=None, channel=None)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/qiskit_runtime_service.py#L657-L675 "view source code") Delete a saved account from disk. @@ -263,7 +214,7 @@ True if the account was deleted. False if no account was found. -`delete_job(job_id)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/qiskit_runtime_service.py#L1077-L1094 "view source code") +`delete_job(job_id)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/qiskit_runtime_service.py#L1035-L1052 "view source code") Delete a runtime job. @@ -286,7 +237,7 @@ Note that this operation cannot be reversed. -`get_backend(name=None, **kwargs)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/qiskit_runtime_service.py#L849-L850 "view source code") +`get_backend(name=None, **kwargs)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/qiskit_runtime_service.py#L790-L791 "view source code") Return a single backend matching the specified filtering. @@ -311,7 +262,7 @@ Backend -`instances()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/qiskit_runtime_service.py#L1184-L1192 "view source code") +`instances()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/qiskit_runtime_service.py#L1142-L1150 "view source code") Return the IBM Quantum instances list currently in use for the session. @@ -327,7 +278,7 @@ A list with instances currently in the session. -`job(job_id)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/qiskit_runtime_service.py#L960-L979 "view source code") +`job(job_id)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/qiskit_runtime_service.py#L918-L937 "view source code") Retrieve a runtime job. @@ -337,7 +288,7 @@ Retrieve a runtime job. **Return type** -[`RuntimeJob`](qiskit_ibm_runtime.RuntimeJob "qiskit_ibm_runtime.runtime_job.RuntimeJob") +`Union`\[[`RuntimeJob`](qiskit_ibm_runtime.RuntimeJob "qiskit_ibm_runtime.runtime_job.RuntimeJob"), `RuntimeJobV2`] **Returns** @@ -352,7 +303,7 @@ Runtime job retrieved. -`jobs(limit=10, skip=0, backend_name=None, pending=None, program_id=None, instance=None, job_tags=None, session_id=None, created_after=None, created_before=None, descending=True)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/qiskit_runtime_service.py#L981-L1075 "view source code") +`jobs(limit=10, skip=0, backend_name=None, pending=None, program_id=None, instance=None, job_tags=None, session_id=None, created_after=None, created_before=None, descending=True)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/qiskit_runtime_service.py#L939-L1033 "view source code") Retrieve all runtime jobs, subject to optional filtering. @@ -372,7 +323,7 @@ Retrieve all runtime jobs, subject to optional filtering. **Return type** -`List`\[[`RuntimeJob`](qiskit_ibm_runtime.RuntimeJob "qiskit_ibm_runtime.runtime_job.RuntimeJob")] +`List`\[`Union`\[[`RuntimeJob`](qiskit_ibm_runtime.RuntimeJob "qiskit_ibm_runtime.runtime_job.RuntimeJob"), `RuntimeJobV2`]] **Returns** @@ -386,7 +337,7 @@ A list of runtime jobs. -`least_busy(min_num_qubits=None, instance=None, filters=None, **kwargs)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/qiskit_runtime_service.py#L1147-L1182 "view source code") +`least_busy(min_num_qubits=None, instance=None, filters=None, **kwargs)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/qiskit_runtime_service.py#L1105-L1140 "view source code") Return the least busy available backend. @@ -420,7 +371,7 @@ The backend with the fewest number of pending jobs. -`run(program_id, inputs, options=None, callback=None, result_decoder=None, session_id=None, start_session=False)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/qiskit_runtime_service.py#L852-L958 "view source code") +`run(program_id, inputs, options=None, callback=None, result_decoder=None, session_id=None, start_session=False)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/qiskit_runtime_service.py#L793-L916 "view source code") Execute the runtime program. @@ -447,7 +398,7 @@ Execute the runtime program. **Return type** -[`RuntimeJob`](qiskit_ibm_runtime.RuntimeJob "qiskit_ibm_runtime.runtime_job.RuntimeJob") +`Union`\[[`RuntimeJob`](qiskit_ibm_runtime.RuntimeJob "qiskit_ibm_runtime.runtime_job.RuntimeJob"), `RuntimeJobV2`] **Returns** @@ -463,7 +414,7 @@ A `RuntimeJob` instance representing the execution. -`static save_account(token=None, url=None, instance=None, channel=None, filename=None, name=None, proxies=None, verify=None, overwrite=False, channel_strategy=None, set_as_default=None)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/qiskit_runtime_service.py#L736-L785 "view source code") +`static save_account(token=None, url=None, instance=None, channel=None, filename=None, name=None, proxies=None, verify=None, overwrite=False, channel_strategy=None, set_as_default=None)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/qiskit_runtime_service.py#L677-L726 "view source code") Save the account to disk for future use. @@ -489,7 +440,7 @@ Save the account to disk for future use. -`static saved_accounts(default=None, channel=None, filename=None, name=None)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/qiskit_runtime_service.py#L787-L815 "view source code") +`static saved_accounts(default=None, channel=None, filename=None, name=None)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/qiskit_runtime_service.py#L728-L756 "view source code") List the accounts saved on disk. diff --git a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.RuntimeDecoder.md b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.RuntimeDecoder.md index 308b592348f..26cddb8092e 100644 --- a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.RuntimeDecoder.md +++ b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.RuntimeDecoder.md @@ -10,7 +10,7 @@ python_api_name: qiskit_ibm_runtime.RuntimeDecoder -`RuntimeDecoder(*args, **kwargs)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/utils/json.py#L282-L343 "view source code") +`RuntimeDecoder(*args, **kwargs)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/utils/json.py#L332-L424 "view source code") JSON Decoder used by runtime service. @@ -40,7 +40,7 @@ Return the Python representation of `s` (a `str` instance containing a JSON docu -`object_hook(obj)` +`object_hook(obj)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/utils/json.py#L347-L424 "view source code") Called to decode object. diff --git a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.RuntimeEncoder.md b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.RuntimeEncoder.md index dd309dd953e..533144160ec 100644 --- a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.RuntimeEncoder.md +++ b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.RuntimeEncoder.md @@ -10,7 +10,7 @@ python_api_name: qiskit_ibm_runtime.RuntimeEncoder -`RuntimeEncoder(*, skipkeys=False, ensure_ascii=True, check_circular=True, allow_nan=True, sort_keys=False, indent=None, separators=None, default=None)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/utils/json.py#L196-L279 "view source code") +`RuntimeEncoder(*, skipkeys=False, ensure_ascii=True, check_circular=True, allow_nan=True, sort_keys=False, indent=None, separators=None, default=None)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/utils/json.py#L207-L329 "view source code") JSON Encoder used by runtime service. @@ -52,7 +52,7 @@ If specified, default is a function that gets called for objects that can’t ot -`default(obj)` +`default(obj)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/utils/json.py#L210-L329 "view source code") Implement this method in a subclass such that it returns a serializable object for `o`, or calls the base implementation (to raise a `TypeError`). diff --git a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.RuntimeJob.md b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.RuntimeJob.md index 890572b3515..82b51e7a101 100644 --- a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.RuntimeJob.md +++ b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.RuntimeJob.md @@ -10,7 +10,7 @@ python_api_name: qiskit_ibm_runtime.RuntimeJob -`RuntimeJob(backend, api_client, client_params, job_id, program_id, service, params=None, creation_date=None, user_callback=None, result_decoder=None, image='', session_id=None, tags=None)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/runtime_job.py#L55-L752 "view source code") +`RuntimeJob(backend, api_client, client_params, job_id, program_id, service, params=None, creation_date=None, user_callback=None, result_decoder=None, image='', session_id=None, tags=None, version=None)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/runtime_job.py#L45-L416 "view source code") Representation of a runtime program execution. @@ -49,6 +49,7 @@ RuntimeJob constructor. * **service** ([`QiskitRuntimeService`](qiskit_ibm_runtime.QiskitRuntimeService "qiskit_ibm_runtime.qiskit_runtime_service.QiskitRuntimeService")) – Runtime service. * **session\_id** (`Optional`\[`str`]) – Job ID of the first job in a runtime session. * **tags** (`Optional`\[`List`]) – Tags assigned to the job. +* **version** (`Optional`\[`int`]) – Primitive version. ## Attributes @@ -162,7 +163,7 @@ Return the usage estimation infromation for this job. -`backend(timeout=None)` +`backend(timeout=None)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/runtime_job.py#L352-L366 "view source code") Return the backend where this job was executed. Retrieve data again if backend is None. @@ -178,7 +179,7 @@ Return the backend where this job was executed. Retrieve data again if backend i -`cancel()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/runtime_job.py#L235-L249 "view source code") +`cancel()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/runtime_job.py#L172-L186 "view source code") Cancel the job. @@ -195,7 +196,7 @@ Cancel the job. -`cancel_result_streaming()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/runtime_job.py#L352-L356 "view source code") +`cancel_result_streaming()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/base_runtime_job.py#L149-L153 "view source code") Cancel result streaming. @@ -231,7 +232,7 @@ Return whether the job has successfully run. -`error_message()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/runtime_job.py#L276-L283 "view source code") +`error_message()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/base_runtime_job.py#L212-L219 "view source code") Returns the reason if the job failed. @@ -243,11 +244,23 @@ Returns the reason if the job failed. Error message string or `None`. +### errored + + + +`errored()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/runtime_job.py#L201-L203 "view source code") + +Return whether the job has failed. + +**Return type** + +`bool` + ### in\_final\_state -`in_final_state()` +`in_final_state()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/runtime_job.py#L197-L199 "view source code") Return whether the job is in a final job state such as `DONE` or `ERROR`. @@ -259,7 +272,7 @@ Return whether the job is in a final job state such as `DONE` or `ERROR`. -`interim_results(decoder=None)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/runtime_job.py#L178-L196 "view source code") +`interim_results(decoder=None)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/runtime_job.py#L398-L416 "view source code") Return the interim results of the job. @@ -295,7 +308,7 @@ Return a unique id identifying the job. -`logs()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/runtime_job.py#L358-L377 "view source code") +`logs()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/runtime_job.py#L294-L313 "view source code") Return job logs. @@ -319,7 +332,7 @@ Job logs, including standard output and error. -`metrics()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/runtime_job.py#L379-L391 "view source code") +`metrics()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/base_runtime_job.py#L155-L167 "view source code") Return job metrics. @@ -339,7 +352,7 @@ Job metrics, which includes timestamp information. -`properties(refresh=False)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/runtime_job.py#L436-L448 "view source code") +`properties(refresh=False)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/base_runtime_job.py#L198-L210 "view source code") Return the backend properties for this job. @@ -359,7 +372,7 @@ The backend properties used for this job, at the time the job was run, or `None` -`queue_info()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/runtime_job.py#L720-L752 "view source code") +`queue_info()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/runtime_job.py#L260-L292 "view source code") Return queue information for this job. @@ -381,7 +394,7 @@ A `QueueInfo` instance that contains queue information for this job, or `None` i -`queue_position(refresh=False)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/runtime_job.py#L693-L718 "view source code") +`queue_position(refresh=False)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/runtime_job.py#L233-L258 "view source code") Return the position of the job in the server queue. @@ -405,7 +418,7 @@ Position in the queue or `None` if position is unknown or not applicable. -`result(timeout=None, decoder=None)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/runtime_job.py#L198-L233 "view source code") +`result(timeout=None, decoder=None)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/runtime_job.py#L135-L170 "view source code") Return the results of the job. @@ -444,7 +457,7 @@ Return whether the job is actively running. -`status()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/runtime_job.py#L267-L274 "view source code") +`status()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/runtime_job.py#L188-L195 "view source code") Return the status of the job. @@ -460,7 +473,7 @@ Status of this job. -`stream_results(callback, decoder=None)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/runtime_job.py#L322-L350 "view source code") +`stream_results(callback, decoder=None)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/runtime_job.py#L368-L396 "view source code") Start streaming job results. @@ -487,7 +500,7 @@ Start streaming job results. -`submit()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/runtime_job.py#L393-L405 "view source code") +`submit()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/runtime_job.py#L219-L231 "view source code") Unsupported method. .. note: @@ -509,7 +522,7 @@ to submit a job. -`update_tags(new_tags)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/runtime_job.py#L407-L434 "view source code") +`update_tags(new_tags)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/base_runtime_job.py#L169-L196 "view source code") Update the tags associated with this job. @@ -533,7 +546,7 @@ The new tags associated with this job. -`wait_for_final_state(timeout=None)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/runtime_job.py#L285-L320 "view source code") +`wait_for_final_state(timeout=None)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/runtime_job.py#L315-L350 "view source code") Use the websocket server to wait for the final the state of a job. diff --git a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.RuntimeOptions.md b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.RuntimeOptions.md index ee8f9506592..bd8fb305b31 100644 --- a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.RuntimeOptions.md +++ b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.RuntimeOptions.md @@ -90,7 +90,7 @@ RuntimeOptions constructor. -`validate(channel)` +`validate(channel)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/runtime_options.py#L76-L106 "view source code") Validate options. diff --git a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.Sampler.md b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.Sampler.md index c5f06308337..407298c158e 100644 --- a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.Sampler.md +++ b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.Sampler.md @@ -2,135 +2,11 @@ title: Sampler description: API reference for qiskit_ibm_runtime.Sampler in_page_toc_min_heading_level: 1 -python_api_type: class +python_api_type: attribute python_api_name: qiskit_ibm_runtime.Sampler --- # Sampler - - -`Sampler(backend=None, session=None, options=None)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/sampler.py#L35-L184 "view source code") - -Class for interacting with Qiskit Runtime Sampler primitive service. - -Qiskit Runtime Sampler primitive service calculates quasi-probability distribution of bitstrings from quantum circuits. - -The [`run()`](#qiskit_ibm_runtime.Sampler.run "qiskit_ibm_runtime.Sampler.run") method can be used to submit circuits and parameters to the Sampler primitive. - -You are encouraged to use [`Session`](qiskit_ibm_runtime.Session "qiskit_ibm_runtime.Session") to open a session, during which you can invoke one or more primitives. Jobs submitted within a session are prioritized by the scheduler, and data is cached for efficiency. - -Example: - -```python -from qiskit.circuit import QuantumCircuit, QuantumRegister, ClassicalRegister -from qiskit_ibm_runtime import QiskitRuntimeService, Session, Sampler - -service = QiskitRuntimeService(channel="ibm_cloud") - -# Bell Circuit -qr = QuantumRegister(2, name="qr") -cr = ClassicalRegister(2, name="cr") -qc = QuantumCircuit(qr, cr, name="bell") -qc.h(qr[0]) -qc.cx(qr[0], qr[1]) -qc.measure(qr, cr) - -with Session(service, backend="ibmq_qasm_simulator") as session: - sampler = Sampler(session=session) - - job = sampler.run(qc, shots=1024) - print(f"Job ID: {job.job_id()}") - print(f"Job result: {job.result()}") - - # You can run more jobs inside the session -``` - -Initializes the Sampler primitive. - -**Parameters** - -* **backend** (`Union`\[`str`, [`IBMBackend`](qiskit_ibm_runtime.IBMBackend "qiskit_ibm_runtime.ibm_backend.IBMBackend"), `None`]) – Backend to run the primitive. This can be a backend name or an [`IBMBackend`](qiskit_ibm_runtime.IBMBackend "qiskit_ibm_runtime.IBMBackend") instance. If a name is specified, the default account (e.g. `QiskitRuntimeService()`) is used. - -* **session** (`Union`\[[`Session`](qiskit_ibm_runtime.Session "qiskit_ibm_runtime.session.Session"), `str`, [`IBMBackend`](qiskit_ibm_runtime.IBMBackend "qiskit_ibm_runtime.ibm_backend.IBMBackend"), `None`]) – - - Session in which to call the primitive. - - If both `session` and `backend` are specified, `session` takes precedence. If neither is specified, and the primitive is created inside a [`qiskit_ibm_runtime.Session`](qiskit_ibm_runtime.Session "qiskit_ibm_runtime.Session") context manager, then the session is used. Otherwise if IBM Cloud channel is used, a default backend is selected. - -* **options** (`Union`\[`Dict`, [`Options`](qiskit_ibm_runtime.options.Options "qiskit_ibm_runtime.options.options.Options"), `None`]) – Primitive options, see `Options` for detailed description. The `backend` keyword is still supported but is deprecated. - -## Attributes - - - -### options - -Return options values for the sampler. - -**Return type** - -`Options` - -**Returns** - -options - - - -### session - -Return session used by this primitive. - -**Return type** - -`Optional`\[[`Session`](qiskit_ibm_runtime.Session "qiskit_ibm_runtime.session.Session")] - -**Returns** - -Session used by this primitive, or `None` if session is not used. - -## Methods - -### run - - - -`run(circuits, parameter_values=None, **kwargs)` - -Submit a request to the sampler primitive. - -**Parameters** - -* **circuits** (*QuantumCircuit | Sequence\[QuantumCircuit]*) – A (parameterized) `QuantumCircuit` or a list of (parameterized) `QuantumCircuit`. -* **parameter\_values** (*Sequence\[float] | Sequence\[Sequence\[float]] | None*) – Concrete parameters to be bound. -* **\*\*kwargs** – Individual options to overwrite the default primitive options. These include the runtime options in [`qiskit_ibm_runtime.RuntimeOptions`](qiskit_ibm_runtime.RuntimeOptions "qiskit_ibm_runtime.RuntimeOptions"). - -**Return type** - -[RuntimeJob](qiskit_ibm_runtime.RuntimeJob "qiskit_ibm_runtime.RuntimeJob") - -**Returns** - -Submitted job. The result of the job is an instance of `qiskit.primitives.SamplerResult`. - -**Raises** - -**ValueError** – Invalid arguments are given. - -### set\_options - - - -`set_options(**fields)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/base_primitive.py#L225-L231 "view source code") - -Set options values for the sampler. - -**Parameters** - -**\*\*fields** – The fields to update the options - -**Return type** - -`None` +alias of `SamplerV1` diff --git a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.Session.md b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.Session.md index 01818f5fba1..9869b47b8a3 100644 --- a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.Session.md +++ b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.Session.md @@ -10,11 +10,11 @@ python_api_name: qiskit_ibm_runtime.Session -`Session(service=None, backend=None, max_time=None)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/session.py#L40-L342 "view source code") +`Session(service=None, backend=None, max_time=None)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/session.py#L41-L346 "view source code") -Class for creating a flexible Qiskit Runtime session. +Class for creating a Qiskit Runtime session. -A Qiskit Runtime `session` allows you to group a collection of iterative calls to the quantum computer. A session is started when the first job within the session is started. Subsequent jobs within the session are prioritized by the scheduler. Data used within a session, such as transpiled circuits, is also cached to avoid unnecessary overhead. +A Qiskit Runtime `session` allows you to group a collection of iterative calls to the quantum computer. A session is started when the first job within the session is started. Subsequent jobs within the session are prioritized by the scheduler. You can open a Qiskit Runtime session using this `Session` class and submit jobs to one or more primitives. @@ -22,7 +22,11 @@ For example: ```python from qiskit.circuit import QuantumCircuit, QuantumRegister, ClassicalRegister -from qiskit_ibm_runtime import Sampler, Session, Options +from qiskit.transpiler.preset_passmanagers import generate_preset_pass_manager +from qiskit_ibm_runtime import Session, SamplerV2 as Sampler + +service = QiskitRuntimeService() +backend = service.least_busy(operational=True, simulator=False) # Bell Circuit qr = QuantumRegister(2, name="qr") @@ -32,13 +36,15 @@ qc.h(qr[0]) qc.cx(qr[0], qr[1]) qc.measure(qr, cr) -options = Options(optimization_level=3) +pm = generate_preset_pass_manager(backend=backend, optimization_level=1) +isa_circuit = pm.run(qc) -with Session(backend="ibmq_qasm_simulator") as session: - sampler = Sampler(session=session, options=options) - job = sampler.run(qc) +with Session(backend=backend) as session: + sampler = Sampler(session=session) + job = sampler.run([isa_circuit]) + pub_result = job.result()[0] print(f"Sampler job ID: {job.job_id()}") - print(f"Sampler job result: {job.result()}") + print(f"Counts: {pub_result.data.cr.get_counts()}") ``` Session constructor. @@ -89,7 +95,7 @@ Session ID. None if the backend is a simulator. -`backend()` +`backend()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/session.py#L218-L224 "view source code") Return backend for this session. @@ -105,7 +111,7 @@ Backend for this session. None if unknown. -`cancel()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/session.py#L200-L204 "view source code") +`cancel()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/session.py#L204-L208 "view source code") Cancel all pending jobs in a session. @@ -117,7 +123,7 @@ Cancel all pending jobs in a session. -`close()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/session.py#L206-L212 "view source code") +`close()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/session.py#L210-L216 "view source code") Close the session so new jobs will no longer be accepted, but existing queued or running jobs will run to completion. The session will be terminated once there are no more pending jobs. @@ -129,7 +135,7 @@ Close the session so new jobs will no longer be accepted, but existing queued or -`details()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/session.py#L248-L284 "view source code") +`details()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/session.py#L252-L288 "view source code") Return session details. @@ -145,7 +151,7 @@ A dictionary with the sessions details, including -`classmethod from_id(session_id, service=None, backend=None)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/session.py#L304-L329 "view source code") +`classmethod from_id(session_id, service=None, backend=None)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/session.py#L308-L333 "view source code") Construct a Session object with a given session\_id @@ -167,7 +173,7 @@ A new Session with the given `session_id` -`run(program_id, inputs, options=None, callback=None, result_decoder=None)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/session.py#L155-L198 "view source code") +`run(program_id, inputs, options=None, callback=None, result_decoder=None)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/session.py#L159-L202 "view source code") Run a program in the session. @@ -180,7 +186,7 @@ Run a program in the session. **Return type** -[`RuntimeJob`](qiskit_ibm_runtime.RuntimeJob "qiskit_ibm_runtime.runtime_job.RuntimeJob") +`Union`\[[`RuntimeJob`](qiskit_ibm_runtime.RuntimeJob "qiskit_ibm_runtime.runtime_job.RuntimeJob"), `RuntimeJobV2`] **Returns** @@ -190,7 +196,7 @@ Submitted job. -`status()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/session.py#L222-L246 "view source code") +`status()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/session.py#L226-L250 "view source code") Return current session status. diff --git a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeAlgiers.md b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeAlgiers.md index bfa2d708963..cd6cd98f5de 100644 --- a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeAlgiers.md +++ b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeAlgiers.md @@ -226,7 +226,7 @@ Version of the backend being provided. This is not the same as `BackendV2.versio -`acquire_channel(qubit)` +`acquire_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/fake_provider/fake_backend.py#L269-L282 "view source code") Return the acquisition channel for the given qubit. diff --git a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeAlmaden.md b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeAlmaden.md index a0685783ca7..c80e07c787e 100644 --- a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeAlmaden.md +++ b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeAlmaden.md @@ -109,7 +109,7 @@ str -`properties()` +`properties()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/fake_provider/fake_qasm_backend.py#L44-L48 "view source code") Returns a snapshot of device properties diff --git a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeAlmadenV2.md b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeAlmadenV2.md index e0d0ec0558b..544466b92f0 100644 --- a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeAlmadenV2.md +++ b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeAlmadenV2.md @@ -236,7 +236,7 @@ Version of the backend being provided. This is not the same as `BackendV2.versio -`acquire_channel(qubit)` +`acquire_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/fake_provider/fake_backend.py#L269-L282 "view source code") Return the acquisition channel for the given qubit. diff --git a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeArmonk.md b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeArmonk.md index f8b91f68f4f..d8458dbb285 100644 --- a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeArmonk.md +++ b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeArmonk.md @@ -93,7 +93,7 @@ BackendConfiguration -`defaults()` +`defaults()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/fake_provider/fake_pulse_backend.py#L29-L33 "view source code") Returns a snapshot of device defaults diff --git a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeArmonkV2.md b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeArmonkV2.md index 0a9428312a4..b19c2d0edd8 100644 --- a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeArmonkV2.md +++ b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeArmonkV2.md @@ -230,7 +230,7 @@ Version of the backend being provided. This is not the same as `BackendV2.versio -`acquire_channel(qubit)` +`acquire_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/fake_provider/fake_backend.py#L269-L282 "view source code") Return the acquisition channel for the given qubit. diff --git a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeAthens.md b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeAthens.md index 3d4e0931bed..099a9cfa39b 100644 --- a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeAthens.md +++ b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeAthens.md @@ -89,7 +89,7 @@ BackendConfiguration -`defaults()` +`defaults()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/fake_provider/fake_pulse_backend.py#L29-L33 "view source code") Returns a snapshot of device defaults diff --git a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeAthensV2.md b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeAthensV2.md index e7fd666bd83..8baa8bf8dbb 100644 --- a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeAthensV2.md +++ b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeAthensV2.md @@ -226,7 +226,7 @@ Version of the backend being provided. This is not the same as `BackendV2.versio -`acquire_channel(qubit)` +`acquire_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/fake_provider/fake_backend.py#L269-L282 "view source code") Return the acquisition channel for the given qubit. diff --git a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeAuckland.md b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeAuckland.md index 22bb3ab1767..f89884f4e4f 100644 --- a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeAuckland.md +++ b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeAuckland.md @@ -226,7 +226,7 @@ Version of the backend being provided. This is not the same as `BackendV2.versio -`acquire_channel(qubit)` +`acquire_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/fake_provider/fake_backend.py#L269-L282 "view source code") Return the acquisition channel for the given qubit. diff --git a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeBelem.md b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeBelem.md index 5eda0df6fe9..6a1d8ee3cdd 100644 --- a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeBelem.md +++ b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeBelem.md @@ -89,7 +89,7 @@ BackendConfiguration -`defaults()` +`defaults()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/fake_provider/fake_pulse_backend.py#L29-L33 "view source code") Returns a snapshot of device defaults diff --git a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeBelemV2.md b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeBelemV2.md index a6c8760ffc6..76104b84986 100644 --- a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeBelemV2.md +++ b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeBelemV2.md @@ -226,7 +226,7 @@ Version of the backend being provided. This is not the same as `BackendV2.versio -`acquire_channel(qubit)` +`acquire_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/fake_provider/fake_backend.py#L269-L282 "view source code") Return the acquisition channel for the given qubit. diff --git a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeBoeblingen.md b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeBoeblingen.md index dcd46d03569..fa3e8ca67b3 100644 --- a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeBoeblingen.md +++ b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeBoeblingen.md @@ -99,7 +99,7 @@ BackendConfiguration -`defaults()` +`defaults()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/fake_provider/fake_pulse_backend.py#L29-L33 "view source code") Returns a snapshot of device defaults diff --git a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeBoeblingenV2.md b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeBoeblingenV2.md index 7e3eb77b89e..f28134c210c 100644 --- a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeBoeblingenV2.md +++ b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeBoeblingenV2.md @@ -236,7 +236,7 @@ Version of the backend being provided. This is not the same as `BackendV2.versio -`acquire_channel(qubit)` +`acquire_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/fake_provider/fake_backend.py#L269-L282 "view source code") Return the acquisition channel for the given qubit. diff --git a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeBogota.md b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeBogota.md index 42d5a0e919e..dcaefb9a067 100644 --- a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeBogota.md +++ b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeBogota.md @@ -89,7 +89,7 @@ BackendConfiguration -`defaults()` +`defaults()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/fake_provider/fake_pulse_backend.py#L29-L33 "view source code") Returns a snapshot of device defaults diff --git a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeBogotaV2.md b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeBogotaV2.md index 191a5ca7606..06a44861268 100644 --- a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeBogotaV2.md +++ b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeBogotaV2.md @@ -226,7 +226,7 @@ Version of the backend being provided. This is not the same as `BackendV2.versio -`acquire_channel(qubit)` +`acquire_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/fake_provider/fake_backend.py#L269-L282 "view source code") Return the acquisition channel for the given qubit. diff --git a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeBrisbane.md b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeBrisbane.md index 8ad272fb329..1ef44666c48 100644 --- a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeBrisbane.md +++ b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeBrisbane.md @@ -226,7 +226,7 @@ Version of the backend being provided. This is not the same as `BackendV2.versio -`acquire_channel(qubit)` +`acquire_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/fake_provider/fake_backend.py#L269-L282 "view source code") Return the acquisition channel for the given qubit. diff --git a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeBrooklyn.md b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeBrooklyn.md index 1f98a5667d5..320470abb54 100644 --- a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeBrooklyn.md +++ b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeBrooklyn.md @@ -89,7 +89,7 @@ BackendConfiguration -`defaults()` +`defaults()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/fake_provider/fake_pulse_backend.py#L29-L33 "view source code") Returns a snapshot of device defaults diff --git a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeBrooklynV2.md b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeBrooklynV2.md index 6a58baabce6..026da8a7f99 100644 --- a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeBrooklynV2.md +++ b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeBrooklynV2.md @@ -226,7 +226,7 @@ Version of the backend being provided. This is not the same as `BackendV2.versio -`acquire_channel(qubit)` +`acquire_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/fake_provider/fake_backend.py#L269-L282 "view source code") Return the acquisition channel for the given qubit. diff --git a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeBurlington.md b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeBurlington.md index 213b643af64..1ed44afff19 100644 --- a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeBurlington.md +++ b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeBurlington.md @@ -105,7 +105,7 @@ str -`properties()` +`properties()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/fake_provider/fake_qasm_backend.py#L44-L48 "view source code") Returns a snapshot of device properties diff --git a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeBurlingtonV2.md b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeBurlingtonV2.md index 950b1418713..e4615022907 100644 --- a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeBurlingtonV2.md +++ b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeBurlingtonV2.md @@ -232,7 +232,7 @@ Version of the backend being provided. This is not the same as `BackendV2.versio -`acquire_channel(qubit)` +`acquire_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/fake_provider/fake_backend.py#L269-L282 "view source code") Return the acquisition channel for the given qubit. diff --git a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeCairo.md b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeCairo.md index a5758166e6f..0586932004a 100644 --- a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeCairo.md +++ b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeCairo.md @@ -89,7 +89,7 @@ BackendConfiguration -`defaults()` +`defaults()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/fake_provider/fake_pulse_backend.py#L29-L33 "view source code") Returns a snapshot of device defaults diff --git a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeCairoV2.md b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeCairoV2.md index 00daf3a4d2c..436230ed2c4 100644 --- a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeCairoV2.md +++ b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeCairoV2.md @@ -226,7 +226,7 @@ Version of the backend being provided. This is not the same as `BackendV2.versio -`acquire_channel(qubit)` +`acquire_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/fake_provider/fake_backend.py#L269-L282 "view source code") Return the acquisition channel for the given qubit. diff --git a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeCambridge.md b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeCambridge.md index aa5a12948dc..8ed2bebd194 100644 --- a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeCambridge.md +++ b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeCambridge.md @@ -111,7 +111,7 @@ str -`properties()` +`properties()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/fake_provider/fake_qasm_backend.py#L44-L48 "view source code") Returns a snapshot of device properties diff --git a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeCambridgeV2.md b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeCambridgeV2.md index 713c2eebbf3..c907bb7ad6d 100644 --- a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeCambridgeV2.md +++ b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeCambridgeV2.md @@ -238,7 +238,7 @@ Version of the backend being provided. This is not the same as `BackendV2.versio -`acquire_channel(qubit)` +`acquire_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/fake_provider/fake_backend.py#L269-L282 "view source code") Return the acquisition channel for the given qubit. diff --git a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeCasablanca.md b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeCasablanca.md index 9c206e536a5..bd2ad8861ea 100644 --- a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeCasablanca.md +++ b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeCasablanca.md @@ -89,7 +89,7 @@ BackendConfiguration -`defaults()` +`defaults()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/fake_provider/fake_pulse_backend.py#L29-L33 "view source code") Returns a snapshot of device defaults diff --git a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeCasablancaV2.md b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeCasablancaV2.md index 6c78b098274..5d97b169baf 100644 --- a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeCasablancaV2.md +++ b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeCasablancaV2.md @@ -226,7 +226,7 @@ Version of the backend being provided. This is not the same as `BackendV2.versio -`acquire_channel(qubit)` +`acquire_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/fake_provider/fake_backend.py#L269-L282 "view source code") Return the acquisition channel for the given qubit. diff --git a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeCusco.md b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeCusco.md index 2cee5ec5634..aac98f1d693 100644 --- a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeCusco.md +++ b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeCusco.md @@ -226,7 +226,7 @@ Version of the backend being provided. This is not the same as `BackendV2.versio -`acquire_channel(qubit)` +`acquire_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/fake_provider/fake_backend.py#L269-L282 "view source code") Return the acquisition channel for the given qubit. diff --git a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeEssex.md b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeEssex.md index ffddfa3f73d..422d65f6e9f 100644 --- a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeEssex.md +++ b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeEssex.md @@ -107,7 +107,7 @@ str -`properties()` +`properties()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/fake_provider/fake_qasm_backend.py#L44-L48 "view source code") Returns a snapshot of device properties diff --git a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeEssexV2.md b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeEssexV2.md index f0f0e49f16c..6f7c29a9274 100644 --- a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeEssexV2.md +++ b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeEssexV2.md @@ -234,7 +234,7 @@ Version of the backend being provided. This is not the same as `BackendV2.versio -`acquire_channel(qubit)` +`acquire_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/fake_provider/fake_backend.py#L269-L282 "view source code") Return the acquisition channel for the given qubit. diff --git a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeGeneva.md b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeGeneva.md index 7b6d24d4403..9fdda0f817f 100644 --- a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeGeneva.md +++ b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeGeneva.md @@ -226,7 +226,7 @@ Version of the backend being provided. This is not the same as `BackendV2.versio -`acquire_channel(qubit)` +`acquire_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/fake_provider/fake_backend.py#L269-L282 "view source code") Return the acquisition channel for the given qubit. diff --git a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeGuadalupe.md b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeGuadalupe.md index 06286362691..48658ab888c 100644 --- a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeGuadalupe.md +++ b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeGuadalupe.md @@ -89,7 +89,7 @@ BackendConfiguration -`defaults()` +`defaults()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/fake_provider/fake_pulse_backend.py#L29-L33 "view source code") Returns a snapshot of device defaults diff --git a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeGuadalupeV2.md b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeGuadalupeV2.md index 1e05ccab32a..5589436feed 100644 --- a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeGuadalupeV2.md +++ b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeGuadalupeV2.md @@ -226,7 +226,7 @@ Version of the backend being provided. This is not the same as `BackendV2.versio -`acquire_channel(qubit)` +`acquire_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/fake_provider/fake_backend.py#L269-L282 "view source code") Return the acquisition channel for the given qubit. diff --git a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeHanoi.md b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeHanoi.md index 99c8e4fb295..299c31d16c9 100644 --- a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeHanoi.md +++ b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeHanoi.md @@ -89,7 +89,7 @@ BackendConfiguration -`defaults()` +`defaults()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/fake_provider/fake_pulse_backend.py#L29-L33 "view source code") Returns a snapshot of device defaults diff --git a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeHanoiV2.md b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeHanoiV2.md index 20b1fe1cb64..48a1ce1a579 100644 --- a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeHanoiV2.md +++ b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeHanoiV2.md @@ -226,7 +226,7 @@ Version of the backend being provided. This is not the same as `BackendV2.versio -`acquire_channel(qubit)` +`acquire_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/fake_provider/fake_backend.py#L269-L282 "view source code") Return the acquisition channel for the given qubit. diff --git a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeJakarta.md b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeJakarta.md index 6f8bbb46b97..2adbe9c7b2e 100644 --- a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeJakarta.md +++ b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeJakarta.md @@ -89,7 +89,7 @@ BackendConfiguration -`defaults()` +`defaults()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/fake_provider/fake_pulse_backend.py#L29-L33 "view source code") Returns a snapshot of device defaults diff --git a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeJakartaV2.md b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeJakartaV2.md index a07ea9a9268..e6ff3f5146b 100644 --- a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeJakartaV2.md +++ b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeJakartaV2.md @@ -226,7 +226,7 @@ Version of the backend being provided. This is not the same as `BackendV2.versio -`acquire_channel(qubit)` +`acquire_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/fake_provider/fake_backend.py#L269-L282 "view source code") Return the acquisition channel for the given qubit. diff --git a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeJohannesburg.md b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeJohannesburg.md index 275953a1da9..f2692c0e5a9 100644 --- a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeJohannesburg.md +++ b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeJohannesburg.md @@ -109,7 +109,7 @@ str -`properties()` +`properties()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/fake_provider/fake_qasm_backend.py#L44-L48 "view source code") Returns a snapshot of device properties diff --git a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeJohannesburgV2.md b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeJohannesburgV2.md index 2f885ce0cf6..943b90476c5 100644 --- a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeJohannesburgV2.md +++ b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeJohannesburgV2.md @@ -236,7 +236,7 @@ Version of the backend being provided. This is not the same as `BackendV2.versio -`acquire_channel(qubit)` +`acquire_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/fake_provider/fake_backend.py#L269-L282 "view source code") Return the acquisition channel for the given qubit. diff --git a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeKawasaki.md b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeKawasaki.md index 538a350d6a8..1b84889b91d 100644 --- a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeKawasaki.md +++ b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeKawasaki.md @@ -226,7 +226,7 @@ Version of the backend being provided. This is not the same as `BackendV2.versio -`acquire_channel(qubit)` +`acquire_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/fake_provider/fake_backend.py#L269-L282 "view source code") Return the acquisition channel for the given qubit. diff --git a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeKolkata.md b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeKolkata.md index 951c6eb6e13..be266bcc11d 100644 --- a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeKolkata.md +++ b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeKolkata.md @@ -89,7 +89,7 @@ BackendConfiguration -`defaults()` +`defaults()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/fake_provider/fake_pulse_backend.py#L29-L33 "view source code") Returns a snapshot of device defaults diff --git a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeKolkataV2.md b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeKolkataV2.md index 16cc98a3e3d..1a8803622f0 100644 --- a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeKolkataV2.md +++ b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeKolkataV2.md @@ -226,7 +226,7 @@ Version of the backend being provided. This is not the same as `BackendV2.versio -`acquire_channel(qubit)` +`acquire_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/fake_provider/fake_backend.py#L269-L282 "view source code") Return the acquisition channel for the given qubit. diff --git a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeKyiv.md b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeKyiv.md index f91c719e1dd..264e19678a7 100644 --- a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeKyiv.md +++ b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeKyiv.md @@ -226,7 +226,7 @@ Version of the backend being provided. This is not the same as `BackendV2.versio -`acquire_channel(qubit)` +`acquire_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/fake_provider/fake_backend.py#L269-L282 "view source code") Return the acquisition channel for the given qubit. diff --git a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeKyoto.md b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeKyoto.md index 2894a375d6e..4e6410584c2 100644 --- a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeKyoto.md +++ b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeKyoto.md @@ -226,7 +226,7 @@ Version of the backend being provided. This is not the same as `BackendV2.versio -`acquire_channel(qubit)` +`acquire_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/fake_provider/fake_backend.py#L269-L282 "view source code") Return the acquisition channel for the given qubit. diff --git a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeLagos.md b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeLagos.md index 209cd975309..9299a661c73 100644 --- a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeLagos.md +++ b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeLagos.md @@ -89,7 +89,7 @@ BackendConfiguration -`defaults()` +`defaults()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/fake_provider/fake_pulse_backend.py#L29-L33 "view source code") Returns a snapshot of device defaults diff --git a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeLagosV2.md b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeLagosV2.md index caa8526daf4..13df59bb4c3 100644 --- a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeLagosV2.md +++ b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeLagosV2.md @@ -226,7 +226,7 @@ Version of the backend being provided. This is not the same as `BackendV2.versio -`acquire_channel(qubit)` +`acquire_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/fake_provider/fake_backend.py#L269-L282 "view source code") Return the acquisition channel for the given qubit. diff --git a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeLima.md b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeLima.md index 39acf283667..e9f666a3806 100644 --- a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeLima.md +++ b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeLima.md @@ -89,7 +89,7 @@ BackendConfiguration -`defaults()` +`defaults()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/fake_provider/fake_pulse_backend.py#L29-L33 "view source code") Returns a snapshot of device defaults diff --git a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeLimaV2.md b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeLimaV2.md index 5f6078685a9..edb84a52f54 100644 --- a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeLimaV2.md +++ b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeLimaV2.md @@ -226,7 +226,7 @@ Version of the backend being provided. This is not the same as `BackendV2.versio -`acquire_channel(qubit)` +`acquire_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/fake_provider/fake_backend.py#L269-L282 "view source code") Return the acquisition channel for the given qubit. diff --git a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeLondon.md b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeLondon.md index ca7ce2c1b2e..e25745374b7 100644 --- a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeLondon.md +++ b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeLondon.md @@ -107,7 +107,7 @@ str -`properties()` +`properties()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/fake_provider/fake_qasm_backend.py#L44-L48 "view source code") Returns a snapshot of device properties diff --git a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeLondonV2.md b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeLondonV2.md index 0731b7d3c50..ff0a801ca8d 100644 --- a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeLondonV2.md +++ b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeLondonV2.md @@ -234,7 +234,7 @@ Version of the backend being provided. This is not the same as `BackendV2.versio -`acquire_channel(qubit)` +`acquire_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/fake_provider/fake_backend.py#L269-L282 "view source code") Return the acquisition channel for the given qubit. diff --git a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeManhattan.md b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeManhattan.md index 658e20c09a7..9b3794c2344 100644 --- a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeManhattan.md +++ b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeManhattan.md @@ -89,7 +89,7 @@ BackendConfiguration -`defaults()` +`defaults()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/fake_provider/fake_pulse_backend.py#L29-L33 "view source code") Returns a snapshot of device defaults diff --git a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeManhattanV2.md b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeManhattanV2.md index b37c97e532b..37aeca278ab 100644 --- a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeManhattanV2.md +++ b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeManhattanV2.md @@ -226,7 +226,7 @@ Version of the backend being provided. This is not the same as `BackendV2.versio -`acquire_channel(qubit)` +`acquire_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/fake_provider/fake_backend.py#L269-L282 "view source code") Return the acquisition channel for the given qubit. diff --git a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeManila.md b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeManila.md index 31a0d9a30a9..f169439fb6a 100644 --- a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeManila.md +++ b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeManila.md @@ -89,7 +89,7 @@ BackendConfiguration -`defaults()` +`defaults()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/fake_provider/fake_pulse_backend.py#L29-L33 "view source code") Returns a snapshot of device defaults diff --git a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeManilaV2.md b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeManilaV2.md index 0296db2e4d7..6d866c584d6 100644 --- a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeManilaV2.md +++ b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeManilaV2.md @@ -226,7 +226,7 @@ Version of the backend being provided. This is not the same as `BackendV2.versio -`acquire_channel(qubit)` +`acquire_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/fake_provider/fake_backend.py#L269-L282 "view source code") Return the acquisition channel for the given qubit. diff --git a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeMelbourne.md b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeMelbourne.md index 85f4bb73eb0..d29c1b96375 100644 --- a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeMelbourne.md +++ b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeMelbourne.md @@ -74,7 +74,7 @@ str -`properties()` +`properties()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/fake_provider/backends/melbourne/fake_melbourne.py#L89-L95 "view source code") Returns a snapshot of device properties diff --git a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeMelbourneV2.md b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeMelbourneV2.md index 4d7fbf91a4e..7dee049e45e 100644 --- a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeMelbourneV2.md +++ b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeMelbourneV2.md @@ -226,7 +226,7 @@ Version of the backend being provided. This is not the same as `BackendV2.versio -`acquire_channel(qubit)` +`acquire_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/fake_provider/fake_backend.py#L269-L282 "view source code") Return the acquisition channel for the given qubit. diff --git a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeMontreal.md b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeMontreal.md index e7227c67f34..4e62d35a4f1 100644 --- a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeMontreal.md +++ b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeMontreal.md @@ -89,7 +89,7 @@ BackendConfiguration -`defaults()` +`defaults()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/fake_provider/fake_pulse_backend.py#L29-L33 "view source code") Returns a snapshot of device defaults diff --git a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeMontrealV2.md b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeMontrealV2.md index bc1d9fa2ee9..e6d6e9b96b5 100644 --- a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeMontrealV2.md +++ b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeMontrealV2.md @@ -226,7 +226,7 @@ Version of the backend being provided. This is not the same as `BackendV2.versio -`acquire_channel(qubit)` +`acquire_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/fake_provider/fake_backend.py#L269-L282 "view source code") Return the acquisition channel for the given qubit. diff --git a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeMumbai.md b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeMumbai.md index fa88d150662..409e33d6368 100644 --- a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeMumbai.md +++ b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeMumbai.md @@ -89,7 +89,7 @@ BackendConfiguration -`defaults()` +`defaults()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/fake_provider/fake_pulse_backend.py#L29-L33 "view source code") Returns a snapshot of device defaults diff --git a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeMumbaiV2.md b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeMumbaiV2.md index ee0a020b49f..3376b26a211 100644 --- a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeMumbaiV2.md +++ b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeMumbaiV2.md @@ -226,7 +226,7 @@ Version of the backend being provided. This is not the same as `BackendV2.versio -`acquire_channel(qubit)` +`acquire_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/fake_provider/fake_backend.py#L269-L282 "view source code") Return the acquisition channel for the given qubit. diff --git a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeNairobi.md b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeNairobi.md index 66ef2b6ad17..f6e491fac4f 100644 --- a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeNairobi.md +++ b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeNairobi.md @@ -89,7 +89,7 @@ BackendConfiguration -`defaults()` +`defaults()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/fake_provider/fake_pulse_backend.py#L29-L33 "view source code") Returns a snapshot of device defaults diff --git a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeNairobiV2.md b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeNairobiV2.md index 2d131eb9814..fd44ea0c287 100644 --- a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeNairobiV2.md +++ b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeNairobiV2.md @@ -226,7 +226,7 @@ Version of the backend being provided. This is not the same as `BackendV2.versio -`acquire_channel(qubit)` +`acquire_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/fake_provider/fake_backend.py#L269-L282 "view source code") Return the acquisition channel for the given qubit. diff --git a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeOsaka.md b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeOsaka.md index 306a587e5a9..a861fd44050 100644 --- a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeOsaka.md +++ b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeOsaka.md @@ -226,7 +226,7 @@ Version of the backend being provided. This is not the same as `BackendV2.versio -`acquire_channel(qubit)` +`acquire_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/fake_provider/fake_backend.py#L269-L282 "view source code") Return the acquisition channel for the given qubit. diff --git a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeOslo.md b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeOslo.md index fc4e03776d3..e9bef8f9b38 100644 --- a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeOslo.md +++ b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeOslo.md @@ -226,7 +226,7 @@ Version of the backend being provided. This is not the same as `BackendV2.versio -`acquire_channel(qubit)` +`acquire_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/fake_provider/fake_backend.py#L269-L282 "view source code") Return the acquisition channel for the given qubit. diff --git a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeOurense.md b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeOurense.md index ad068d8f345..921cdf09399 100644 --- a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeOurense.md +++ b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeOurense.md @@ -105,7 +105,7 @@ str -`properties()` +`properties()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/fake_provider/fake_qasm_backend.py#L44-L48 "view source code") Returns a snapshot of device properties diff --git a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeOurenseV2.md b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeOurenseV2.md index 9dfaf13b0f1..7b3e714cdd6 100644 --- a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeOurenseV2.md +++ b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeOurenseV2.md @@ -232,7 +232,7 @@ Version of the backend being provided. This is not the same as `BackendV2.versio -`acquire_channel(qubit)` +`acquire_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/fake_provider/fake_backend.py#L269-L282 "view source code") Return the acquisition channel for the given qubit. diff --git a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeParis.md b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeParis.md index b67c2aee306..c038abf46ff 100644 --- a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeParis.md +++ b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeParis.md @@ -101,7 +101,7 @@ BackendConfiguration -`defaults()` +`defaults()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/fake_provider/fake_pulse_backend.py#L29-L33 "view source code") Returns a snapshot of device defaults diff --git a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeParisV2.md b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeParisV2.md index 32e22654b2b..717860eb0a2 100644 --- a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeParisV2.md +++ b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeParisV2.md @@ -238,7 +238,7 @@ Version of the backend being provided. This is not the same as `BackendV2.versio -`acquire_channel(qubit)` +`acquire_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/fake_provider/fake_backend.py#L269-L282 "view source code") Return the acquisition channel for the given qubit. diff --git a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakePeekskill.md b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakePeekskill.md index bc83c8c4ed7..b32c8846b1c 100644 --- a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakePeekskill.md +++ b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakePeekskill.md @@ -226,7 +226,7 @@ Version of the backend being provided. This is not the same as `BackendV2.versio -`acquire_channel(qubit)` +`acquire_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/fake_provider/fake_backend.py#L269-L282 "view source code") Return the acquisition channel for the given qubit. diff --git a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakePerth.md b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakePerth.md index 964954f3996..541967dca8b 100644 --- a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakePerth.md +++ b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakePerth.md @@ -226,7 +226,7 @@ Version of the backend being provided. This is not the same as `BackendV2.versio -`acquire_channel(qubit)` +`acquire_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/fake_provider/fake_backend.py#L269-L282 "view source code") Return the acquisition channel for the given qubit. diff --git a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakePoughkeepsie.md b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakePoughkeepsie.md index 646fb0128e7..089802c6bd9 100644 --- a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakePoughkeepsie.md +++ b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakePoughkeepsie.md @@ -78,7 +78,7 @@ str -`properties()` +`properties()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/fake_provider/backends/poughkeepsie/fake_poughkeepsie.py#L122-L128 "view source code") Returns a snapshot of device properties diff --git a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakePoughkeepsieV2.md b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakePoughkeepsieV2.md index d780262c13e..1b990d9a332 100644 --- a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakePoughkeepsieV2.md +++ b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakePoughkeepsieV2.md @@ -226,7 +226,7 @@ Version of the backend being provided. This is not the same as `BackendV2.versio -`acquire_channel(qubit)` +`acquire_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/fake_provider/fake_backend.py#L269-L282 "view source code") Return the acquisition channel for the given qubit. diff --git a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakePrague.md b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakePrague.md index 768d78435f3..55574dc3b77 100644 --- a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakePrague.md +++ b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakePrague.md @@ -226,7 +226,7 @@ Version of the backend being provided. This is not the same as `BackendV2.versio -`acquire_channel(qubit)` +`acquire_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/fake_provider/fake_backend.py#L269-L282 "view source code") Return the acquisition channel for the given qubit. diff --git a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeProvider.md b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeProvider.md index 1a4a44a8951..7310ada5da0 100644 --- a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeProvider.md +++ b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeProvider.md @@ -30,7 +30,7 @@ Only filtering backends by name is implemented. This class contains all fake V1 -`backends(name=None, **kwargs)` +`backends(name=None, **kwargs)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/fake_provider/fake_provider.py#L170-L171 "view source code") Return a list of backends matching the specified filtering. diff --git a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeProviderForBackendV2.md b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeProviderForBackendV2.md index 1d9d50a4d85..571c927b077 100644 --- a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeProviderForBackendV2.md +++ b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeProviderForBackendV2.md @@ -30,7 +30,7 @@ Only filtering backends by name is implemented. This class contains all fake V2 -`backend(name=None, **kwargs)` +`backend(name=None, **kwargs)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/fake_provider/fake_provider.py#L72-L84 "view source code") Filter backends in provider by name. diff --git a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeQuebec.md b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeQuebec.md index 1f0de76fb31..61fa06cb6ec 100644 --- a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeQuebec.md +++ b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeQuebec.md @@ -226,7 +226,7 @@ Version of the backend being provided. This is not the same as `BackendV2.versio -`acquire_channel(qubit)` +`acquire_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/fake_provider/fake_backend.py#L269-L282 "view source code") Return the acquisition channel for the given qubit. diff --git a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeQuito.md b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeQuito.md index fa13828efe4..0776b6d7be0 100644 --- a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeQuito.md +++ b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeQuito.md @@ -89,7 +89,7 @@ BackendConfiguration -`defaults()` +`defaults()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/fake_provider/fake_pulse_backend.py#L29-L33 "view source code") Returns a snapshot of device defaults diff --git a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeQuitoV2.md b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeQuitoV2.md index 630c86bf5ac..784cbbddbb4 100644 --- a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeQuitoV2.md +++ b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeQuitoV2.md @@ -226,7 +226,7 @@ Version of the backend being provided. This is not the same as `BackendV2.versio -`acquire_channel(qubit)` +`acquire_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/fake_provider/fake_backend.py#L269-L282 "view source code") Return the acquisition channel for the given qubit. diff --git a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeRochester.md b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeRochester.md index e8a20b93bfb..5399534962a 100644 --- a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeRochester.md +++ b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeRochester.md @@ -99,7 +99,7 @@ str -`properties()` +`properties()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/fake_provider/fake_qasm_backend.py#L44-L48 "view source code") Returns a snapshot of device properties diff --git a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeRochesterV2.md b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeRochesterV2.md index da5e9234f7a..92008c0a06d 100644 --- a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeRochesterV2.md +++ b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeRochesterV2.md @@ -226,7 +226,7 @@ Version of the backend being provided. This is not the same as `BackendV2.versio -`acquire_channel(qubit)` +`acquire_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/fake_provider/fake_backend.py#L269-L282 "view source code") Return the acquisition channel for the given qubit. diff --git a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeRome.md b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeRome.md index 13368774235..6d879734c33 100644 --- a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeRome.md +++ b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeRome.md @@ -89,7 +89,7 @@ BackendConfiguration -`defaults()` +`defaults()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/fake_provider/fake_pulse_backend.py#L29-L33 "view source code") Returns a snapshot of device defaults diff --git a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeRomeV2.md b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeRomeV2.md index d140a3da438..5d26a83dec8 100644 --- a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeRomeV2.md +++ b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeRomeV2.md @@ -226,7 +226,7 @@ Version of the backend being provided. This is not the same as `BackendV2.versio -`acquire_channel(qubit)` +`acquire_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/fake_provider/fake_backend.py#L269-L282 "view source code") Return the acquisition channel for the given qubit. diff --git a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeSantiago.md b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeSantiago.md index 179c54b8d1a..db284299687 100644 --- a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeSantiago.md +++ b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeSantiago.md @@ -89,7 +89,7 @@ BackendConfiguration -`defaults()` +`defaults()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/fake_provider/fake_pulse_backend.py#L29-L33 "view source code") Returns a snapshot of device defaults diff --git a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeSantiagoV2.md b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeSantiagoV2.md index 7186ac0038b..bfe928273b3 100644 --- a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeSantiagoV2.md +++ b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeSantiagoV2.md @@ -226,7 +226,7 @@ Version of the backend being provided. This is not the same as `BackendV2.versio -`acquire_channel(qubit)` +`acquire_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/fake_provider/fake_backend.py#L269-L282 "view source code") Return the acquisition channel for the given qubit. diff --git a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeSherbrooke.md b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeSherbrooke.md index 3f2e1c14f34..e3339541365 100644 --- a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeSherbrooke.md +++ b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeSherbrooke.md @@ -226,7 +226,7 @@ Version of the backend being provided. This is not the same as `BackendV2.versio -`acquire_channel(qubit)` +`acquire_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/fake_provider/fake_backend.py#L269-L282 "view source code") Return the acquisition channel for the given qubit. diff --git a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeSingapore.md b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeSingapore.md index deb882c58d2..5518e07a61e 100644 --- a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeSingapore.md +++ b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeSingapore.md @@ -109,7 +109,7 @@ str -`properties()` +`properties()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/fake_provider/fake_qasm_backend.py#L44-L48 "view source code") Returns a snapshot of device properties diff --git a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeSingaporeV2.md b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeSingaporeV2.md index 8b4e3b503d0..6397bdd938a 100644 --- a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeSingaporeV2.md +++ b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeSingaporeV2.md @@ -236,7 +236,7 @@ Version of the backend being provided. This is not the same as `BackendV2.versio -`acquire_channel(qubit)` +`acquire_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/fake_provider/fake_backend.py#L269-L282 "view source code") Return the acquisition channel for the given qubit. diff --git a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeSydney.md b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeSydney.md index 215bfb12e81..cf55cf8ac88 100644 --- a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeSydney.md +++ b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeSydney.md @@ -89,7 +89,7 @@ BackendConfiguration -`defaults()` +`defaults()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/fake_provider/fake_pulse_backend.py#L29-L33 "view source code") Returns a snapshot of device defaults diff --git a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeSydneyV2.md b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeSydneyV2.md index e8f45070dc8..b4ecf8d5f44 100644 --- a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeSydneyV2.md +++ b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeSydneyV2.md @@ -226,7 +226,7 @@ Version of the backend being provided. This is not the same as `BackendV2.versio -`acquire_channel(qubit)` +`acquire_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/fake_provider/fake_backend.py#L269-L282 "view source code") Return the acquisition channel for the given qubit. diff --git a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeTenerife.md b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeTenerife.md index 8982664b06b..7b1f10f963a 100644 --- a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeTenerife.md +++ b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeTenerife.md @@ -76,7 +76,7 @@ str -`properties()` +`properties()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/fake_provider/backends/tenerife/fake_tenerife.py#L62-L68 "view source code") Returns a snapshot of device properties as recorded on 8/30/19. diff --git a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeTokyo.md b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeTokyo.md index 18f3f7c1965..ae7882293ba 100644 --- a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeTokyo.md +++ b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeTokyo.md @@ -78,7 +78,7 @@ str -`properties()` +`properties()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/fake_provider/backends/tokyo/fake_tokyo.py#L135-L141 "view source code") Returns a snapshot of device properties as recorded on 8/30/19. diff --git a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeTorino.md b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeTorino.md index 8630e72ed50..3a076ab705b 100644 --- a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeTorino.md +++ b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeTorino.md @@ -226,7 +226,7 @@ Version of the backend being provided. This is not the same as `BackendV2.versio -`acquire_channel(qubit)` +`acquire_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/fake_provider/fake_backend.py#L269-L282 "view source code") Return the acquisition channel for the given qubit. diff --git a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeToronto.md b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeToronto.md index 16b07d519c6..7b7a2a03bc0 100644 --- a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeToronto.md +++ b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeToronto.md @@ -89,7 +89,7 @@ BackendConfiguration -`defaults()` +`defaults()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/fake_provider/fake_pulse_backend.py#L29-L33 "view source code") Returns a snapshot of device defaults diff --git a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeTorontoV2.md b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeTorontoV2.md index 2b07bba0b3a..a8290393772 100644 --- a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeTorontoV2.md +++ b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeTorontoV2.md @@ -226,7 +226,7 @@ Version of the backend being provided. This is not the same as `BackendV2.versio -`acquire_channel(qubit)` +`acquire_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/fake_provider/fake_backend.py#L269-L282 "view source code") Return the acquisition channel for the given qubit. diff --git a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeValencia.md b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeValencia.md index b5f191bb690..564d9c09f18 100644 --- a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeValencia.md +++ b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeValencia.md @@ -89,7 +89,7 @@ BackendConfiguration -`defaults()` +`defaults()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/fake_provider/fake_pulse_backend.py#L29-L33 "view source code") Returns a snapshot of device defaults diff --git a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeValenciaV2.md b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeValenciaV2.md index c37b3d86a11..e481091a627 100644 --- a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeValenciaV2.md +++ b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeValenciaV2.md @@ -226,7 +226,7 @@ Version of the backend being provided. This is not the same as `BackendV2.versio -`acquire_channel(qubit)` +`acquire_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/fake_provider/fake_backend.py#L269-L282 "view source code") Return the acquisition channel for the given qubit. diff --git a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeVigo.md b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeVigo.md index 7d7d4e1a8a9..da46dea258f 100644 --- a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeVigo.md +++ b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeVigo.md @@ -105,7 +105,7 @@ str -`properties()` +`properties()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/fake_provider/fake_qasm_backend.py#L44-L48 "view source code") Returns a snapshot of device properties diff --git a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeVigoV2.md b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeVigoV2.md index f8e58f37bd7..a98d2664569 100644 --- a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeVigoV2.md +++ b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeVigoV2.md @@ -232,7 +232,7 @@ Version of the backend being provided. This is not the same as `BackendV2.versio -`acquire_channel(qubit)` +`acquire_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/fake_provider/fake_backend.py#L269-L282 "view source code") Return the acquisition channel for the given qubit. diff --git a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeWashington.md b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeWashington.md index 56ecb286736..a832fcee2c1 100644 --- a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeWashington.md +++ b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeWashington.md @@ -89,7 +89,7 @@ BackendConfiguration -`defaults()` +`defaults()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/fake_provider/fake_pulse_backend.py#L29-L33 "view source code") Returns a snapshot of device defaults diff --git a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeWashingtonV2.md b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeWashingtonV2.md index 5aeb1bf4f65..92ae7d1fc34 100644 --- a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeWashingtonV2.md +++ b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeWashingtonV2.md @@ -226,7 +226,7 @@ Version of the backend being provided. This is not the same as `BackendV2.versio -`acquire_channel(qubit)` +`acquire_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/fake_provider/fake_backend.py#L269-L282 "view source code") Return the acquisition channel for the given qubit. diff --git a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeYorktown.md b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeYorktown.md index 8b7a2530fd2..5184f6102d9 100644 --- a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeYorktown.md +++ b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeYorktown.md @@ -107,7 +107,7 @@ str -`properties()` +`properties()` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/fake_provider/fake_qasm_backend.py#L44-L48 "view source code") Returns a snapshot of device properties diff --git a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeYorktownV2.md b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeYorktownV2.md index c55e27bfa00..6ed95715984 100644 --- a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeYorktownV2.md +++ b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.fake_provider.FakeYorktownV2.md @@ -234,7 +234,7 @@ Version of the backend being provided. This is not the same as `BackendV2.versio -`acquire_channel(qubit)` +`acquire_channel(qubit)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/fake_provider/fake_backend.py#L269-L282 "view source code") Return the acquisition channel for the given qubit. diff --git a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.options.DynamicalDecouplingOptions.md b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.options.DynamicalDecouplingOptions.md new file mode 100644 index 00000000000..a3db492b69a --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.options.DynamicalDecouplingOptions.md @@ -0,0 +1,73 @@ +--- +title: DynamicalDecouplingOptions +description: API reference for qiskit_ibm_runtime.options.DynamicalDecouplingOptions +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.options.DynamicalDecouplingOptions +--- + +# DynamicalDecouplingOptions + + + +`DynamicalDecouplingOptions(*args, **kwargs)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/options/dynamical_decoupling_options.py#L20-L50 "view source code") + +Options for dynamical decoupling (DD). + +**Parameters** + +* **enable** – Whether to enable DD as specified by the other options in this class. Default: False. + +* **sequence\_type** – + + Which dynamical decoupling sequence to use. Default: “XX”. + + * `"XX"`: use the sequence `tau/2 - (+X) - tau - (+X) - tau/2` + * `"XpXm"`: use the sequence `tau/2 - (+X) - tau - (-X) - tau/2` + * `"XY4"`: : use the sequence `tau/2 - (+X) - tau - (+Y) - tau (-X) - tau - (-Y) - tau/2` + +* **extra\_slack\_distribution** – + + Where to put extra timing delays due to rounding issues. Rounding issues arise because the discrete time step `dt` of the system cannot be divided. This option takes following values. Default: “middle”. + + * `"middle"`: Put the extra slack to the interval at the middle of the sequence. + * `"edges"`: Divide the extra slack as evenly as possible into intervals at beginning and end of the sequence. + +* **scheduling\_method** – Whether to schedule gates as soon as (“asap”) or as late as (“alap”) possible. Default: “alap”. + +## Attributes + + + +### enable + +`UnsetType | bool` + +`= Unset` + + + +### extra\_slack\_distribution + +`UnsetType | Literal['middle', 'edges']` + +`= Unset` + + + +### scheduling\_method + +`UnsetType | Literal['alap', 'asap']` + +`= Unset` + + + +### sequence\_type + +`UnsetType | Literal['XX', 'XpXm', 'XY4']` + +`= Unset` + +## Methods + diff --git a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.options.EnvironmentOptions.md b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.options.EnvironmentOptions.md index c7274297554..8906d62006c 100644 --- a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.options.EnvironmentOptions.md +++ b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.options.EnvironmentOptions.md @@ -10,22 +10,22 @@ python_api_name: qiskit_ibm_runtime.options.EnvironmentOptions -`EnvironmentOptions(log_level='WARNING', callback=None, job_tags=)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/options/environment_options.py#L27-L62 "view source code") +`EnvironmentOptions(*args, **kwargs)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/options/environment_options.py#L28-L50 "view source code") Options related to the execution environment. **Parameters** -* **log\_level** (`str`) – logging level to set in the execution environment. The valid log levels are: `DEBUG`, `INFO`, `WARNING`, `ERROR`, and `CRITICAL`. The default level is `WARNING`. +* **log\_level** – logging level to set in the execution environment. The valid log levels are: `DEBUG`, `INFO`, `WARNING`, `ERROR`, and `CRITICAL`. Default: `WARNING`. -* **callback** (`Optional`\[`Callable`]) – +* **callback** – Callback function to be invoked for any interim results and final result. The callback function will receive 2 positional parameters: > 1. Job ID > 2. Job result. -* **job\_tags** (`Optional`\[`List`]) – Tags to be assigned to the job. The tags can subsequently be used as a filter in the `qiskit_ibm_runtime.qiskit_runtime_service.jobs()` function call. +* **job\_tags** – Tags to be assigned to the job. The tags can subsequently be used as a filter in the `qiskit_ibm_runtime.qiskit_runtime_service.jobs()` function call. ## Attributes @@ -37,31 +37,21 @@ Options related to the execution environment. `= None` - - -### log\_level - -`str` - -`= 'WARNING'` - ### job\_tags `List | None` -## Methods - -### validate\_environment\_options +`= None` - + -`static validate_environment_options(environment_options)` +### log\_level -Validate that environment options are legal. :raises ValueError: if log\_level is not in LogLevelType. +`Literal['DEBUG', 'INFO', 'WARNING', 'ERROR', 'CRITICAL']` -**Return type** +`= 'WARNING'` -`None` +## Methods diff --git a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.options.EstimatorOptions.md b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.options.EstimatorOptions.md new file mode 100644 index 00000000000..f3ce5c7f4ab --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.options.EstimatorOptions.md @@ -0,0 +1,189 @@ +--- +title: EstimatorOptions +description: API reference for qiskit_ibm_runtime.options.EstimatorOptions +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.options.EstimatorOptions +--- + +# EstimatorOptions + + + +`EstimatorOptions(*args, **kwargs)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/options/estimator_options.py#L35-L125 "view source code") + +Options for V2 Estimator. + +**Parameters** + +* **default\_precision** – The default precision to use for any PUB or `run()` call that does not specify one. Each estimator pub can specify its own precision. If the `run()` method is given a precision, then that value is used for all PUBs in the `run()` call that do not specify their own. Default: 0.015625 (1 / sqrt(4096). + +* **default\_shots** – + + The total number of shots to use per circuit per configuration. + + + If set, this value overrides [`default_precision`](#qiskit_ibm_runtime.options.EstimatorOptions.default_precision "qiskit_ibm_runtime.options.EstimatorOptions.default_precision"). + + + A configuration is a combination of a specific parameter value binding set and a physical measurement basis. A physical measurement basis groups together some collection of qubit-wise commuting observables for some specific circuit/parameter value set to create a single measurement with basis rotations that is inserted into hardware executions. + + If twirling is enabled, the value of this option will be divided over circuit, randomizations, with a smaller number of shots per randomization. See the [`twirling`](#qiskit_ibm_runtime.options.EstimatorOptions.twirling "qiskit_ibm_runtime.options.EstimatorOptions.twirling") options. + + Default: `None`. + +* **optimization\_level** – + + How much optimization to perform on the circuits. Higher levels generate more optimized circuits, at the expense of longer processing times. + + * 0: no optimization + * 1: light optimization + + Refer to the [Configure runtime compilation for Qiskit Runtime](/run/configure-runtime-compilation). for more information about the optimization levels. + + Default: 1. + +* **resilience\_level** – + + How much resilience to build against errors. Higher levels generate more accurate results, at the expense of longer processing times. + + * 0: No mitigation. + * 1: Minimal mitigation costs. Mitigate error associated with readout errors. + * 2: Medium mitigation costs. Typically reduces bias in estimators but is not guaranteed to be zero bias. + + Refer to the [Configure error mitigation for Qiskit Runtime](/run/configure-error-mitigation). for more information about the error mitigation methods used at each level. + + Default: 1. + +* **seed\_estimator** – Seed used to control sampling. + +* **dynamical\_decoupling** – Suboptions for dynamical decoupling. See [`DynamicalDecouplingOptions`](qiskit_ibm_runtime.options.DynamicalDecouplingOptions "qiskit_ibm_runtime.options.DynamicalDecouplingOptions") for all available options. + +* **resilience** – Advanced resilience options to fine tune the resilience strategy. See [`ResilienceOptionsV2`](qiskit_ibm_runtime.options.ResilienceOptionsV2 "qiskit_ibm_runtime.options.ResilienceOptionsV2") for all available options. + +* **execution** – Execution time options. See [`ExecutionOptionsV2`](qiskit_ibm_runtime.options.ExecutionOptionsV2 "qiskit_ibm_runtime.options.ExecutionOptionsV2") for all available options. + +* **twirling** – Pauli twirling options. See [`TwirlingOptions`](qiskit_ibm_runtime.options.TwirlingOptions "qiskit_ibm_runtime.options.TwirlingOptions") for all available options. + +* **experimental** – Experimental options. + +## Attributes + + + +### default\_precision + +`UnsetType | float` + +`= Unset` + + + +### default\_shots + +`UnsetType | int | None` + +`= Unset` + + + +### dynamical\_decoupling + +`DynamicalDecouplingOptions | Dict` + +`= FieldInfo(annotation=Union[DynamicalDecouplingOptions, Dict], required=False, default_factory=DynamicalDecouplingOptions)` + + + +### environment + +`EnvironmentOptions | Dict` + +`= FieldInfo(annotation=Union[EnvironmentOptions, Dict], required=False, default_factory=EnvironmentOptions)` + + + +### execution + +`ExecutionOptionsV2 | Dict` + +`= FieldInfo(annotation=Union[ExecutionOptionsV2, Dict], required=False, default_factory=ExecutionOptionsV2)` + + + +### experimental + +`UnsetType | dict` + +`= Unset` + + + +### max\_execution\_time + +`UnsetType | int` + +`= Unset` + + + +### optimization\_level + +`UnsetType | int` + +`= Unset` + + + +### resilience + +`ResilienceOptionsV2 | Dict` + +`= FieldInfo(annotation=Union[ResilienceOptionsV2, Dict], required=False, default_factory=ResilienceOptionsV2)` + + + +### resilience\_level + +`UnsetType | int` + +`= Unset` + + + +### seed\_estimator + +`UnsetType | int` + +`= Unset` + + + +### simulator + +`SimulatorOptions | Dict` + +`= FieldInfo(annotation=Union[SimulatorOptions, Dict], required=False, default_factory=SimulatorOptions)` + + + +### twirling + +`TwirlingOptions | Dict` + +`= FieldInfo(annotation=Union[TwirlingOptions, Dict], required=False, default_factory=TwirlingOptions)` + +## Methods + +### update + + + +`update(**kwargs)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/options/options.py#L106-L111 "view source code") + +Update the options. + +**Return type** + +`None` + diff --git a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.options.ExecutionOptions.md b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.options.ExecutionOptions.md index 6445cb0e842..185280e59e6 100644 --- a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.options.ExecutionOptions.md +++ b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.options.ExecutionOptions.md @@ -10,14 +10,14 @@ python_api_name: qiskit_ibm_runtime.options.ExecutionOptions -`ExecutionOptions(shots=4000, init_qubits=True)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/options/execution_options.py#L25-L47 "view source code") +`ExecutionOptions(*args, **kwargs)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/options/execution_options.py#L40-L52 "view source code") -Execution options. +Execution options for V1 primitives. **Parameters** -* **shots** (`int`) – Number of repetitions of each circuit, for sampling. Default: 4000. -* **init\_qubits** (`bool`) – Whether to reset the qubits to the ground state for each shot. Default: `True`. +* **shots** – Number of repetitions of each circuit, for sampling. Default: 4000. +* **init\_qubits** – Whether to reset the qubits to the ground state for each shot. Default: `True`. ## Attributes @@ -39,15 +39,3 @@ Execution options. ## Methods -### validate\_execution\_options - - - -`static validate_execution_options(execution_options)` - -Validate that execution options are legal. :raises ValueError: if any execution option is not supported - -**Return type** - -`None` - diff --git a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.options.ExecutionOptionsV2.md b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.options.ExecutionOptionsV2.md new file mode 100644 index 00000000000..59ae5a3a542 --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.options.ExecutionOptionsV2.md @@ -0,0 +1,41 @@ +--- +title: ExecutionOptionsV2 +description: API reference for qiskit_ibm_runtime.options.ExecutionOptionsV2 +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.options.ExecutionOptionsV2 +--- + +# ExecutionOptionsV2 + + + +`ExecutionOptionsV2(*args, **kwargs)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/options/execution_options.py#L20-L37 "view source code") + +Execution options for V2 primitives. + +**Parameters** + +* **init\_qubits** – Whether to reset the qubits to the ground state for each shot. Default: `True`. +* **rep\_delay** – The repetition delay. This is the delay between a measurement and the subsequent quantum circuit. This is only supported on backends that have `backend.dynamic_reprate_enabled=True`. It must be from the range supplied by `backend.rep_delay_range`. Default is given by `backend.default_rep_delay`. + +## Attributes + + + +### init\_qubits + +`UnsetType | bool` + +`= Unset` + + + +### rep\_delay + +`UnsetType | float` + +`= Unset` + +## Methods + diff --git a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.options.LayerNoiseLearningOptions.md b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.options.LayerNoiseLearningOptions.md new file mode 100644 index 00000000000..bf346f668e9 --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.options.LayerNoiseLearningOptions.md @@ -0,0 +1,63 @@ +--- +title: LayerNoiseLearningOptions +description: API reference for qiskit_ibm_runtime.options.LayerNoiseLearningOptions +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.options.LayerNoiseLearningOptions +--- + +# LayerNoiseLearningOptions + + + +`LayerNoiseLearningOptions(*args, **kwargs)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/options/layer_noise_learning_options.py#L28-L75 "view source code") + +Options for learning layer noise. + + + These options are only used when the resilience level or options specify a technique that requires layer noise learning. + + +**Parameters** + +* **max\_layers\_to\_learn** – The max number of unique layers to learn. A `None` value indicates that there is no limit. If there are more unique layers present, then some layers will not be learned or mitigated. The learned layers are prioritized based on the number of times they occur in a set of run estimator PUBs, and for equally occurring layers are further sorted by the number of two-qubit gates in the layer. +* **shots\_per\_randomization** – The total number of shots to use per random learning circuit. A learning circuit is a random circuit at a specific learning depth with a specific measurement basis that is executed on hardware. Default: 128. +* **num\_randomizations** – The number of random circuits to use per learning circuit configuration. A configuration is a measurement basis and depth setting. For example, if your experiment has six depths, and nine required measurement bases, then setting this value to 32 will result in a total of `32 * 9 * 6` circuits that need to be executed (at [`shots_per_randomization`](#qiskit_ibm_runtime.options.LayerNoiseLearningOptions.shots_per_randomization "qiskit_ibm_runtime.options.LayerNoiseLearningOptions.shots_per_randomization") each). Default: 32. +* **layer\_pair\_depths** – The circuit depths (measured in number of pairs) to use in learning experiments. Pairs are used as the unit because we exploit the order-2 nature of our entangling gates in the noise learning implementation. A value of `3` would correspond to 6 layers of the layer of interest, for example. Default: (0, 1, 2, 4, 16, 32). + +## Attributes + + + +### layer\_pair\_depths + +`UnsetType | List[int]` + +`= Unset` + + + +### max\_layers\_to\_learn + +`UnsetType | int | None` + +`= Unset` + + + +### num\_randomizations + +`UnsetType | int` + +`= Unset` + + + +### shots\_per\_randomization + +`UnsetType | int` + +`= Unset` + +## Methods + diff --git a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.options.MeasureNoiseLearningOptions.md b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.options.MeasureNoiseLearningOptions.md new file mode 100644 index 00000000000..d636f027b15 --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.options.MeasureNoiseLearningOptions.md @@ -0,0 +1,45 @@ +--- +title: MeasureNoiseLearningOptions +description: API reference for qiskit_ibm_runtime.options.MeasureNoiseLearningOptions +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.options.MeasureNoiseLearningOptions +--- + +# MeasureNoiseLearningOptions + + + +`MeasureNoiseLearningOptions(*args, **kwargs)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/options/measure_noise_learning_options.py#L20-L40 "view source code") + +Options for measurement noise learning. + + + These options are only used when the resilience level or options specify a technique that requires measurement noise learning. + + +**Parameters** + +* **num\_randomizations** – The number of random circuits to draw for the measurement learning experiment. Default: 32. +* **shots\_per\_randomization** – The number of shots to use for the learning experiment per random circuit. If “auto”, the value will be chosen automatically based on the input PUBs. Default: “auto”. + +## Attributes + + + +### num\_randomizations + +`UnsetType | int` + +`= Unset` + + + +### shots\_per\_randomization + +`UnsetType | int | Literal['auto']` + +`= Unset` + +## Methods + diff --git a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.options.Options.md b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.options.Options.md index 00096b950bc..5d252f85249 100644 --- a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.options.Options.md +++ b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.options.Options.md @@ -10,9 +10,9 @@ python_api_name: qiskit_ibm_runtime.options.Options -`Options(optimization_level=None, resilience_level=None, max_execution_time=None, transpilation=, resilience=, execution=, environment=, simulator=)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/options/options.py#L32-L279 "view source code") +`Options(optimization_level=None, resilience_level=None, max_execution_time=None, transpilation=, resilience=, execution=, environment=, simulator=)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/options/options.py#L172-L404 "view source code") -Options for the primitives. +Options for the primitives, used by V1 primitives. **Parameters** @@ -114,7 +114,7 @@ Options for the primitives. -`static validate_options(options)` +`static validate_options(options)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/options/options.py#L306-L334 "view source code") Validate that program inputs (options) are valid :raises ValueError: if optimization\_level is outside the allowed range. :raises ValueError: if max\_execution\_time is outside the allowed range. diff --git a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.options.PecOptions.md b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.options.PecOptions.md new file mode 100644 index 00000000000..90743719a6d --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.options.PecOptions.md @@ -0,0 +1,50 @@ +--- +title: PecOptions +description: API reference for qiskit_ibm_runtime.options.PecOptions +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.options.PecOptions +--- + +# PecOptions + + + +`PecOptions(*args, **kwargs)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/options/pec_options.py#L20-L41 "view source code") + +Probabalistic error cancellation mitigation options. + +**Parameters** + +* **max\_overhead** – The maximum circuit sampling overhead allowed, or `None` for no maximum. + +* **noise\_gain** – + + The amount by which to scale the noise, where: + + * A value of one corresponds to attempting to remove all of the noise. + * A value greater than one corresponds to injecting noise. + * A value between 0 and 1 corresponds to partially removing the noise. + + If “auto”, the value will be chosen automatically based on the input PUBs. Default: “auto”. + +## Attributes + + + +### max\_overhead + +`UnsetType | float | None` + +`= Unset` + + + +### noise\_gain + +`UnsetType | float | Literal['auto']` + +`= Unset` + +## Methods + diff --git a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.options.ResilienceOptions.md b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.options.ResilienceOptions.md index 631274aceb3..ec173c2daf4 100644 --- a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.options.ResilienceOptions.md +++ b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.options.ResilienceOptions.md @@ -10,16 +10,16 @@ python_api_name: qiskit_ibm_runtime.options.ResilienceOptions -`ResilienceOptions(noise_amplifier=None, noise_factors=None, extrapolator=None)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/options/resilience_options.py#L34-L91 "view source code") +`ResilienceOptions(*args, **kwargs)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/options/resilience_options.py#L104-L141 "view source code") -Resilience options. +Resilience options for V1 primitives. **Parameters** -* **noise\_factors** (`Optional`\[`Sequence`\[`float`]]) – An list of real valued noise factors that determine by what amount the circuits’ noise is amplified. Only applicable for `resilience_level=2`. Default: `None`, and (1, 3, 5) if resilience level is 2. -* **noise\_amplifier** (*DEPRECATED*) – A noise amplification strategy. Currently only +* **noise\_factors** – An list of real valued noise factors that determine by what amount the circuits’ noise is amplified. Only applicable for `resilience_level=2`. Default: `None`, and (1, 3, 5) if resilience level is 2. +* **noise\_amplifier** – A noise amplification strategy. Currently only * **resilience\_level=2.** (*"LocalFoldingAmplifier" is supported Only applicable for*) – Default: “LocalFoldingAmplifier”. -* **extrapolator** (`Optional`\[`Literal`\[‘LinearExtrapolator’, ‘QuadraticExtrapolator’, ‘CubicExtrapolator’, ‘QuarticExtrapolator’]]) – An extrapolation strategy. One of `"LinearExtrapolator"`, `"QuadraticExtrapolator"`, `"CubicExtrapolator"`, `"QuarticExtrapolator"`. Note that `"CubicExtrapolator"` and `"QuarticExtrapolator"` require more noise factors than the default. Only applicable for `resilience_level=2`. Default: `None`, and `LinearExtrapolator` if resilience level is 2. +* **extrapolator** – An extrapolation strategy. One of `"LinearExtrapolator"`, `"QuadraticExtrapolator"`, `"CubicExtrapolator"`, `"QuarticExtrapolator"`. Note that `"CubicExtrapolator"` and `"QuarticExtrapolator"` require more noise factors than the default. Only applicable for `resilience_level=2`. Default: `None`, and `LinearExtrapolator` if resilience level is 2. ## Attributes @@ -27,7 +27,7 @@ Resilience options. ### extrapolator -`Literal['LinearExtrapolator', 'QuadraticExtrapolator', 'CubicExtrapolator', 'QuarticExtrapolator']` +`Literal['LinearExtrapolator', 'QuadraticExtrapolator', 'CubicExtrapolator', 'QuarticExtrapolator'] | None` `= None` @@ -35,7 +35,7 @@ Resilience options. ### noise\_amplifier -`Literal['LocalFoldingAmplifier']` +`Literal['LocalFoldingAmplifier'] | None` `= None` @@ -43,21 +43,9 @@ Resilience options. ### noise\_factors -`Sequence[float]` +`Sequence[float] | None` `= None` ## Methods -### validate\_resilience\_options - - - -`static validate_resilience_options(resilience_options)` - -Validate that resilience options are legal. :raises ValueError: if any resilience option is not supported :raises ValueError: if noise\_amplifier is not in NoiseAmplifierType. :raises ValueError: if extrapolator is not in ExtrapolatorType. :raises ValueError: if extrapolator == “QuarticExtrapolator” and number of noise\_factors \< 5. :raises ValueError: if extrapolator == “CubicExtrapolator” and number of noise\_factors \< 4. - -**Return type** - -`None` - diff --git a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.options.ResilienceOptionsV2.md b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.options.ResilienceOptionsV2.md new file mode 100644 index 00000000000..4f1535dc82b --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.options.ResilienceOptionsV2.md @@ -0,0 +1,86 @@ +--- +title: ResilienceOptionsV2 +description: API reference for qiskit_ibm_runtime.options.ResilienceOptionsV2 +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.options.ResilienceOptionsV2 +--- + +# ResilienceOptionsV2 + + + +`ResilienceOptionsV2(*args, **kwargs)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/options/resilience_options.py#L38-L101 "view source code") + +Resilience options for V2 Estimator. + +**Parameters** + +* **measure\_mitigation** – Whether to enable measurement error mitigation method. Further suboptions are available in [`measure_noise_learning`](#qiskit_ibm_runtime.options.ResilienceOptionsV2.measure_noise_learning "qiskit_ibm_runtime.options.ResilienceOptionsV2.measure_noise_learning"). Default: True. +* **measure\_noise\_learning** – Additional measurement noise learning options. See [`MeasureNoiseLearningOptions`](qiskit_ibm_runtime.options.MeasureNoiseLearningOptions "qiskit_ibm_runtime.options.MeasureNoiseLearningOptions") for all options. +* **zne\_mitigation** – Whether to turn on Zero Noise Extrapolation error mitigation method. Further suboptions are available in [`zne`](#qiskit_ibm_runtime.options.ResilienceOptionsV2.zne "qiskit_ibm_runtime.options.ResilienceOptionsV2.zne"). Default: False. +* **zne** – Additional zero noise extrapolation mitigation options. See [`ZneOptions`](qiskit_ibm_runtime.options.ZneOptions "qiskit_ibm_runtime.options.ZneOptions") for all options. +* **pec\_mitigation** – Whether to turn on Probabilistic Error Cancellation error mitigation method. Further suboptions are available in [`pec`](#qiskit_ibm_runtime.options.ResilienceOptionsV2.pec "qiskit_ibm_runtime.options.ResilienceOptionsV2.pec"). Default: False. +* **pec** – Additional probabalistic error cancellation mitigation options. See [`PecOptions`](qiskit_ibm_runtime.options.PecOptions "qiskit_ibm_runtime.options.PecOptions") for all options. +* **layer\_noise\_learning** – Layer noise learning options. See [`LayerNoiseLearningOptions`](qiskit_ibm_runtime.options.LayerNoiseLearningOptions "qiskit_ibm_runtime.options.LayerNoiseLearningOptions") for all options. + +## Attributes + + + +### layer\_noise\_learning + +`LayerNoiseLearningOptions | Dict` + +`= FieldInfo(annotation=Union[LayerNoiseLearningOptions, Dict], required=False, default_factory=LayerNoiseLearningOptions)` + + + +### measure\_mitigation + +`UnsetType | bool` + +`= Unset` + + + +### measure\_noise\_learning + +`MeasureNoiseLearningOptions | Dict` + +`= FieldInfo(annotation=Union[MeasureNoiseLearningOptions, Dict], required=False, default_factory=MeasureNoiseLearningOptions)` + + + +### pec + +`PecOptions | Dict` + +`= FieldInfo(annotation=Union[PecOptions, Dict], required=False, default_factory=PecOptions)` + + + +### pec\_mitigation + +`UnsetType | bool` + +`= Unset` + + + +### zne + +`ZneOptions | Dict` + +`= FieldInfo(annotation=Union[ZneOptions, Dict], required=False, default_factory=ZneOptions)` + + + +### zne\_mitigation + +`UnsetType | bool` + +`= Unset` + +## Methods + diff --git a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.options.SamplerOptions.md b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.options.SamplerOptions.md new file mode 100644 index 00000000000..6b01374b19e --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.options.SamplerOptions.md @@ -0,0 +1,95 @@ +--- +title: SamplerOptions +description: API reference for qiskit_ibm_runtime.options.SamplerOptions +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.options.SamplerOptions +--- + +# SamplerOptions + + + +`SamplerOptions(*args, **kwargs)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/options/sampler_options.py#L26-L48 "view source code") + +Options for V2 Sampler. + +**Parameters** + +* **default\_shots** – The default number of shots to use if none are specified in the PUBs or in the run method. Default: 4096. +* **dynamical\_decoupling** – Suboptions for dynamical decoupling. See [`DynamicalDecouplingOptions`](qiskit_ibm_runtime.options.DynamicalDecouplingOptions "qiskit_ibm_runtime.options.DynamicalDecouplingOptions") for all available options. +* **execution** – Execution time options. See [`ExecutionOptionsV2`](qiskit_ibm_runtime.options.ExecutionOptionsV2 "qiskit_ibm_runtime.options.ExecutionOptionsV2") for all available options. +* **experimental** – Experimental options. + +## Attributes + + + +### default\_shots + +`UnsetType | int` + +`= Unset` + + + +### dynamical\_decoupling + +`DynamicalDecouplingOptions | Dict` + +`= FieldInfo(annotation=Union[DynamicalDecouplingOptions, Dict], required=False, default_factory=DynamicalDecouplingOptions)` + + + +### environment + +`EnvironmentOptions | Dict` + +`= FieldInfo(annotation=Union[EnvironmentOptions, Dict], required=False, default_factory=EnvironmentOptions)` + + + +### execution + +`ExecutionOptionsV2 | Dict` + +`= FieldInfo(annotation=Union[ExecutionOptionsV2, Dict], required=False, default_factory=ExecutionOptionsV2)` + + + +### experimental + +`UnsetType | dict` + +`= Unset` + + + +### max\_execution\_time + +`UnsetType | int` + +`= Unset` + + + +### simulator + +`SimulatorOptions | Dict` + +`= FieldInfo(annotation=Union[SimulatorOptions, Dict], required=False, default_factory=SimulatorOptions)` + +## Methods + +### update + + + +`update(**kwargs)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/options/options.py#L106-L111 "view source code") + +Update the options. + +**Return type** + +`None` + diff --git a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.options.SimulatorOptions.md b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.options.SimulatorOptions.md index 55e74d69da1..aa31d086398 100644 --- a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.options.SimulatorOptions.md +++ b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.options.SimulatorOptions.md @@ -10,7 +10,7 @@ python_api_name: qiskit_ibm_runtime.options.SimulatorOptions -`SimulatorOptions(noise_model=None, seed_simulator=None, coupling_map=None, basis_gates=None)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/options/simulator_options.py#L35-L95 "view source code") +`SimulatorOptions(*args, **kwargs)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/options/simulator_options.py#L33-L105 "view source code") Simulator options. @@ -18,10 +18,10 @@ For best practice in simulating a backend make sure to pass the basis gates and **Parameters** -* **noise\_model** (`Union`\[`dict`, `NoiseModel`, `None`]) – Noise model for the simulator. -* **seed\_simulator** (`Optional`\[`int`]) – Random seed to control sampling. -* **coupling\_map** (`Union`\[`List`\[`List`\[`int`]], `CouplingMap`, `None`]) – Directed coupling map to target in mapping. If the coupling map is symmetric, both directions need to be specified. Each entry in the list specifies a directed two-qubit interactions, e.g: `[[0, 1], [0, 3], [1, 2], [1, 5], [2, 5], [4, 1], [5, 3]]` -* **basis\_gates** (`Optional`\[`List`\[`str`]]) – List of basis gate names to unroll to. For example, `['u1', 'u2', 'u3', 'cx']`. If `None`, do not unroll. +* **noise\_model** – Noise model for the simulator. +* **seed\_simulator** – Random seed to control sampling. +* **coupling\_map** – Directed coupling map to target in mapping. If the coupling map is symmetric, both directions need to be specified. Each entry in the list specifies a directed two-qubit interactions, e.g: `[[0, 1], [0, 3], [1, 2], [1, 5], [2, 5], [4, 1], [5, 3]]` +* **basis\_gates** – List of basis gate names to unroll to. For example, `['u1', 'u2', 'u3', 'cx']`. Unrolling is not done if not set. ## Attributes @@ -29,33 +29,33 @@ For best practice in simulating a backend make sure to pass the basis gates and ### basis\_gates -`List[str] | None` +`UnsetType | List[str]` -`= None` +`= Unset` ### coupling\_map -`List[List[int]] | CouplingMap | None` +`UnsetType | List[List[int]] | CouplingMap` -`= None` +`= Unset` ### noise\_model -`dict | NoiseModel | None` +`UnsetType | dict | NoiseModel | None` -`= None` +`= Unset` ### seed\_simulator -`int | None` +`UnsetType | int` -`= None` +`= Unset` ## Methods @@ -63,7 +63,7 @@ For best practice in simulating a backend make sure to pass the basis gates and -`set_backend(backend)` +`set_backend(backend)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/options/simulator_options.py#L79-L105 "view source code") Set backend for simulation. This method changes noise\_model, coupling\_map, basis\_gates according to given backend. @@ -73,19 +73,7 @@ Set backend for simulation. This method changes noise\_model, coupling\_map, bas **Raises** -**MissingOptionalLibraryError if qiskit-aer is not found.** – - -**Return type** - -`None` - -### validate\_simulator\_options - - - -`static validate_simulator_options(simulator_options)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/options/simulator_options.py#L61-L69 "view source code") - -Validate that simulator options are legal. :raises ValueError: if any simulator option is not supported +**MissingOptionalLibraryError** – if qiskit-aer is not found. **Return type** diff --git a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.options.TranspilationOptions.md b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.options.TranspilationOptions.md index 6d5b35be942..8b3ea8b2fb7 100644 --- a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.options.TranspilationOptions.md +++ b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.options.TranspilationOptions.md @@ -10,17 +10,17 @@ python_api_name: qiskit_ibm_runtime.options.TranspilationOptions -`TranspilationOptions(skip_transpilation=False, initial_layout=None, layout_method=None, routing_method=None, approximation_degree=None)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/options/transpilation_options.py#L41-L97 "view source code") +`TranspilationOptions(*args, **kwargs)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/options/transpilation_options.py#L38-L75 "view source code") Transpilation options. **Parameters** -* **skip\_transpilation** (`bool`) – Whether to skip transpilation. -* **initial\_layout** (`Union`\[`dict`, `List`, `None`]) – Initial position of virtual qubits on physical qubits. See `qiskit.compiler.transpile` for more information. -* **layout\_method** (`Optional`\[`str`]) – Name of layout selection pass. One of ‘trivial’, ‘dense’, ‘noise\_adaptive’, ‘sabre’. -* **routing\_method** (`Optional`\[`str`]) – Name of routing pass. One of ‘basic’, ‘lookahead’, ‘stochastic’, ‘sabre’, ‘none’. -* **approximation\_degree** (`Optional`\[`float`]) – heuristic dial used for circuit approximation (1.0=no approximation, 0.0=maximal approximation) +* **skip\_transpilation** – Whether to skip transpilation. Default is False. +* **initial\_layout** – Initial position of virtual qubits on physical qubits. See `qiskit.compiler.transpile` for more information. +* **layout\_method** – Name of layout selection pass. One of ‘trivial’, ‘dense’, ‘noise\_adaptive’, ‘sabre’. +* **routing\_method** – Name of routing pass. One of ‘basic’, ‘lookahead’, ‘stochastic’, ‘sabre’, ‘none’. +* **approximation\_degree** – heuristic dial used for circuit approximation (1.0=no approximation, 0.0=maximal approximation) ## Attributes @@ -28,33 +28,33 @@ Transpilation options. ### approximation\_degree -`float | None` +`UnsetType | float` -`= None` +`= Unset` ### initial\_layout -`dict | List | None` +`UnsetType | dict | List` -`= None` +`= Unset` ### layout\_method -`str | None` +`UnsetType | Literal['trivial', 'dense', 'noise_adaptive', 'sabre']` -`= None` +`= Unset` ### routing\_method -`str | None` +`UnsetType | Literal['basic', 'lookahead', 'stochastic', 'sabre', 'none']` -`= None` +`= Unset` @@ -66,15 +66,3 @@ Transpilation options. ## Methods -### validate\_transpilation\_options - - - -`static validate_transpilation_options(transpilation_options)` - -Validate that transpilation options are legal. :raises ValueError: if any transpilation option is not supported :raises ValueError: if layout\_method is not in LayoutMethodType or None. :raises ValueError: if routing\_method is not in RoutingMethodType or None. :raises ValueError: if approximation\_degree in not None or in the range 0.0 to 1.0. - -**Return type** - -`None` - diff --git a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.options.TwirlingOptions.md b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.options.TwirlingOptions.md new file mode 100644 index 00000000000..5374dcca83b --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.options.TwirlingOptions.md @@ -0,0 +1,81 @@ +--- +title: TwirlingOptions +description: API reference for qiskit_ibm_runtime.options.TwirlingOptions +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.options.TwirlingOptions +--- + +# TwirlingOptions + + + +`TwirlingOptions(*args, **kwargs)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/options/twirling_options.py#L28-L67 "view source code") + +Twirling options. + +**Parameters** + +* **enable\_gates** – Whether to apply 2-qubit gate twirling. Default: False. + +* **enable\_measure** – Whether to enable twirling of expectation value measurements in Estimator. Default: True. + +* **num\_randomizations** – The number of random samples to use when twirling or peforming sampled mitigation. If “auto”, the value will be chosen automatically based on the input PUBs. Default: “auto”. + +* **shots\_per\_randomization** – The number of shots to run for each random sample. If “auto”, the value will be chosen automatically based on the input PUBs. Default: “auto”. + +* **strategy** – + + Specify the strategy of twirling qubits in identified layers of 2-qubit twirled gates. Allowed values are + + * If `"active"` only the instruction qubits in each individual twirled layer will be twirled. + * If `"active-circuit"` the union of all instruction qubits in the circuit will be twirled in each twirled layer. + * If `"active-accum"` the union of instructions qubits in the circuit up to the current twirled layer will be twirled in each individual twirled layer. + * If `"all"` all qubits in the input circuit will be twirled in each twirled layer. + + Default: “active-accum”. + +## Attributes + + + +### enable\_gates + +`UnsetType | bool` + +`= Unset` + + + +### enable\_measure + +`UnsetType | bool` + +`= Unset` + + + +### num\_randomizations + +`UnsetType | int | Literal['auto']` + +`= Unset` + + + +### shots\_per\_randomization + +`UnsetType | int | Literal['auto']` + +`= Unset` + + + +### strategy + +`UnsetType | Literal['active', 'active-accum', 'active-circuit', 'all']` + +`= Unset` + +## Methods + diff --git a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.options.ZneOptions.md b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.options.ZneOptions.md new file mode 100644 index 00000000000..e31b3ebd892 --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.options.ZneOptions.md @@ -0,0 +1,51 @@ +--- +title: ZneOptions +description: API reference for qiskit_ibm_runtime.options.ZneOptions +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.options.ZneOptions +--- + +# ZneOptions + + + +`ZneOptions(*args, **kwargs)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/options/zne_options.py#L35-L88 "view source code") + +Zero noise extrapolation mitigation options. + +**Parameters** + +* **noise\_factors** – Noise factors to use for noise amplification. Default: (1, 3, 5). + +* **extrapolator** – + + Extrapolator(s) to try (in order) for extrapolating to zero noise. One or more of: + + * ”linear” + * ”exponential” + * ”double\_exponential” + * ”polynomial\_degree\_(1 \<= k \<= 7)” + + Default: (“exponential”, “linear”). + +## Attributes + + + +### extrapolator + +`UnsetType | Literal['linear', 'exponential', 'double_exponential', 'polynomial_degree_1', 'polynomial_degree_2', 'polynomial_degree_3', 'polynomial_degree_4', 'polynomial_degree_5', 'polynomial_degree_6', 'polynomial_degree_7'] | Sequence[Literal['linear', 'exponential', 'double_exponential', 'polynomial_degree_1', 'polynomial_degree_2', 'polynomial_degree_3', 'polynomial_degree_4', 'polynomial_degree_5', 'polynomial_degree_6', 'polynomial_degree_7']]` + +`= Unset` + + + +### noise\_factors + +`UnsetType | Sequence[float]` + +`= Unset` + +## Methods + diff --git a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.transpiler.passes.scheduling.ALAPScheduleAnalysis.md b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.transpiler.passes.scheduling.ALAPScheduleAnalysis.md index 22faa7b1e3c..430b9c00bbb 100644 --- a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.transpiler.passes.scheduling.ALAPScheduleAnalysis.md +++ b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.transpiler.passes.scheduling.ALAPScheduleAnalysis.md @@ -113,7 +113,7 @@ Name of the pass. -`run(dag)` +`run(dag)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/transpiler/passes/scheduling/scheduler.py#L448-L467 "view source code") Run the ASAPSchedule pass on dag. :type dag: `DAGCircuit` :param dag: DAG to schedule. :type dag: DAGCircuit diff --git a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.transpiler.passes.scheduling.ASAPScheduleAnalysis.md b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.transpiler.passes.scheduling.ASAPScheduleAnalysis.md index 24b45e7bc3e..88b2321b0f6 100644 --- a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.transpiler.passes.scheduling.ASAPScheduleAnalysis.md +++ b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.transpiler.passes.scheduling.ASAPScheduleAnalysis.md @@ -113,7 +113,7 @@ Name of the pass. -`run(dag)` +`run(dag)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/transpiler/passes/scheduling/scheduler.py#L320-L339 "view source code") Run the ALAPSchedule pass on dag. :type dag: `DAGCircuit` :param dag: DAG to schedule. :type dag: DAGCircuit diff --git a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.transpiler.passes.scheduling.BlockBasePadder.md b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.transpiler.passes.scheduling.BlockBasePadder.md index c5ddc723d56..4c97d2ec75c 100644 --- a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.transpiler.passes.scheduling.BlockBasePadder.md +++ b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.transpiler.passes.scheduling.BlockBasePadder.md @@ -104,7 +104,7 @@ Name of the pass. -`run(dag)` +`run(dag)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/transpiler/passes/scheduling/block_base_padder.py#L91-L115 "view source code") Run the padding pass on `dag`. diff --git a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.transpiler.passes.scheduling.DynamicCircuitInstructionDurations.md b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.transpiler.passes.scheduling.DynamicCircuitInstructionDurations.md index caf5531747a..1e6f4167806 100644 --- a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.transpiler.passes.scheduling.DynamicCircuitInstructionDurations.md +++ b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.transpiler.passes.scheduling.DynamicCircuitInstructionDurations.md @@ -10,7 +10,7 @@ python_api_name: qiskit_ibm_runtime.transpiler.passes.scheduling.DynamicCircuitI -`DynamicCircuitInstructionDurations(instruction_durations=None, dt=None, enable_patching=True)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/transpiler/passes/scheduling/utils.py#L133-L359 "view source code") +`DynamicCircuitInstructionDurations(instruction_durations=None, dt=None, enable_patching=True)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/transpiler/passes/scheduling/utils.py#L133-L323 "view source code") For dynamic circuits the IBM Qiskit backend currently reports instruction durations that differ compared with those required for the legacy Qobj-based path. For now we use this class to report updated InstructionDurations. TODO: This would be mitigated by a specialized Backend/Target for dynamic circuit backends. @@ -36,7 +36,7 @@ Dynamic circuit instruction durations. -`classmethod from_backend(backend)` +`classmethod from_backend(backend)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/transpiler/passes/scheduling/utils.py#L155-L167 "view source code") Construct a `DynamicInstructionDurations` object from the backend. :type backend: `Backend` :param backend: backend from which durations (gate lengths) and dt are extracted. @@ -52,7 +52,7 @@ DynamicInstructionDurations -`classmethod from_target(target)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/transpiler/passes/scheduling/utils.py#L205-L222 "view source code") +`classmethod from_target(target)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/transpiler/passes/scheduling/utils.py#L169-L186 "view source code") Construct a `DynamicInstructionDurations` object from the target. :type target: `Target` :param target: target from which durations (gate lengths) and dt are extracted. @@ -113,7 +113,7 @@ Set of units used in this instruction durations. -`update(inst_durations, dt=None)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/transpiler/passes/scheduling/utils.py#L224-L270 "view source code") +`update(inst_durations, dt=None)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/transpiler/passes/scheduling/utils.py#L188-L234 "view source code") Update self with inst\_durations (inst\_durations overwrite self). Overrides the default durations for certain hardcoded instructions. diff --git a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.transpiler.passes.scheduling.PadDelay.md b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.transpiler.passes.scheduling.PadDelay.md index dfc0ca55b2e..42130f06012 100644 --- a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.transpiler.passes.scheduling.PadDelay.md +++ b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.transpiler.passes.scheduling.PadDelay.md @@ -117,7 +117,7 @@ Name of the pass. -`run(dag)` +`run(dag)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/transpiler/passes/scheduling/block_base_padder.py#L91-L115 "view source code") Run the padding pass on `dag`. diff --git a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.transpiler.passes.scheduling.PadDynamicalDecoupling.md b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.transpiler.passes.scheduling.PadDynamicalDecoupling.md index 2607ee0b6fe..da11c856cff 100644 --- a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.transpiler.passes.scheduling.PadDynamicalDecoupling.md +++ b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.transpiler.passes.scheduling.PadDynamicalDecoupling.md @@ -253,7 +253,7 @@ Name of the pass. -`run(dag)` +`run(dag)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/transpiler/passes/scheduling/block_base_padder.py#L91-L115 "view source code") Run the padding pass on `dag`. diff --git a/docs/api/qiskit-ibm-runtime/dev/runtime_service.md b/docs/api/qiskit-ibm-runtime/dev/runtime_service.md index 9c91dfe440a..1e9f64301d4 100644 --- a/docs/api/qiskit-ibm-runtime/dev/runtime_service.md +++ b/docs/api/qiskit-ibm-runtime/dev/runtime_service.md @@ -29,41 +29,49 @@ Qiskit Runtime also has the concept of a session. Jobs submitted within a sessio Below is an example of using primitives within a session: ```python -from qiskit_ibm_runtime import QiskitRuntimeService, Session, Sampler, Estimator, Options +from qiskit_ibm_runtime import QiskitRuntimeService, Session +from qiskit_ibm_runtime import SamplerV2 as Sampler +from qiskit_ibm_runtime import EstimatorV2 as Estimator from qiskit.circuit.library import RealAmplitudes from qiskit.circuit import QuantumCircuit, QuantumRegister, ClassicalRegister from qiskit.quantum_info import SparsePauliOp +from qiskit.transpiler.preset_passmanagers import generate_preset_pass_manager # Initialize account. service = QiskitRuntimeService() -# Set options, which can be overwritten at job level. -options = Options(optimization_level=3) - # Prepare inputs. psi = RealAmplitudes(num_qubits=2, reps=2) H1 = SparsePauliOp.from_list([("II", 1), ("IZ", 2), ("XI", 3)]) theta = [0, 1, 1, 2, 3, 5] # Bell Circuit qr = QuantumRegister(2, name="qr") -cr = ClassicalRegister(2, name="qc") +cr = ClassicalRegister(2, name="cr") qc = QuantumCircuit(qr, cr, name="bell") qc.h(qr[0]) qc.cx(qr[0], qr[1]) qc.measure(qr, cr) -with Session(service=service, backend="ibmq_qasm_simulator") as session: +backend = service.least_busy(operational=True, simulator=False) +bell_isa_circuit = pm.run(qc) +psi_isa_circuit = pm.run(psi) +isa_observables = H1.apply_layout(psi_isa_circuit.layout) + +with Session(service=service, backend=backend) as session: # Submit a request to the Sampler primitive within the session. - sampler = Sampler(session=session, options=options) - job = sampler.run(circuits=qc) - print(f"Sampler results: {job.result()}") + sampler = Sampler(session=session) + job = sampler.run([bell_isa_circuit]) + pub_result = job.result()[0] + print(f"Counts: {pub_result.data.cr.get_counts()}") # Submit a request to the Estimator primitive within the session. - estimator = Estimator(session=session, options=options) + estimator = Estimator(session=session) + estimator.options.resilience_level = 1 # Set options. job = estimator.run( - circuits=[psi], observables=[H1], parameter_values=[theta] + [(psi_isa_circuit, isa_observables, theta)] ) - print(f"Estimator results: {job.result()}") + pub_result = job.result()[0] + print(f"Expectation values: {pub_result.data.evs}") ``` ## Backend data @@ -103,44 +111,17 @@ import logging logging.getLogger('qiskit_ibm_runtime').setLevel(logging.WARNING) ``` -### Interim and final results - -Some runtime primitives provide interim results that inform you about the progress of your job. You can choose to stream the interim results and final result when you run the program by passing in the `callback` parameter, or at a later time using the [`RuntimeJob.stream_results()`](qiskit_ibm_runtime.RuntimeJob#stream_results "qiskit_ibm_runtime.RuntimeJob.stream_results") method. For example: - -```python -from qiskit_ibm_runtime import QiskitRuntimeService, Sampler -from qiskit.circuit import QuantumCircuit, QuantumRegister, ClassicalRegister - -service = QiskitRuntimeService() -backend = service.backend("ibmq_qasm_simulator") - -# Bell Circuit -qr = QuantumRegister(2, name="qr") -cr = ClassicalRegister(2, name="qc") -qc = QuantumCircuit(qr, cr, name="bell") -qc.h(qr[0]) -qc.cx(qr[0], qr[1]) -qc.measure(qr, cr) - -def result_callback(job_id, result): - print(result) - -# Stream results as soon as the job starts running. -job = Sampler(backend).run(qc, callback=result_callback) -print(job.result()) -``` - ## Classes -| | | -| ---------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------- | -| [`QiskitRuntimeService`](qiskit_ibm_runtime.QiskitRuntimeService "qiskit_ibm_runtime.QiskitRuntimeService")(\[channel, token, url, ...]) | Class for interacting with the Qiskit Runtime service. | -| [`Estimator`](qiskit_ibm_runtime.Estimator "qiskit_ibm_runtime.Estimator")(\[backend, session, options]) | Class for interacting with Qiskit Runtime Estimator primitive service. | -| [`Sampler`](qiskit_ibm_runtime.Sampler "qiskit_ibm_runtime.Sampler")(\[backend, session, options]) | Class for interacting with Qiskit Runtime Sampler primitive service. | -| [`Session`](qiskit_ibm_runtime.Session "qiskit_ibm_runtime.Session")(\[service, backend, max\_time]) | Class for creating a flexible Qiskit Runtime session. | -| [`IBMBackend`](qiskit_ibm_runtime.IBMBackend "qiskit_ibm_runtime.IBMBackend")(configuration, service, api\_client) | Backend class interfacing with an IBM Quantum backend. | -| [`RuntimeJob`](qiskit_ibm_runtime.RuntimeJob "qiskit_ibm_runtime.RuntimeJob")(backend, api\_client, ...\[, ...]) | Representation of a runtime program execution. | -| [`RuntimeOptions`](qiskit_ibm_runtime.RuntimeOptions "qiskit_ibm_runtime.RuntimeOptions")(\[backend, image, log\_level, ...]) | Class for representing generic runtime execution options. | -| [`RuntimeEncoder`](qiskit_ibm_runtime.RuntimeEncoder "qiskit_ibm_runtime.RuntimeEncoder")(\*\[, skipkeys, ensure\_ascii, ...]) | JSON Encoder used by runtime service. | -| [`RuntimeDecoder`](qiskit_ibm_runtime.RuntimeDecoder "qiskit_ibm_runtime.RuntimeDecoder")(\*args, \*\*kwargs) | JSON Decoder used by runtime service. | +| | | +| ---------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------- | +| [`QiskitRuntimeService`](qiskit_ibm_runtime.QiskitRuntimeService "qiskit_ibm_runtime.QiskitRuntimeService")(\[channel, token, url, ...]) | Class for interacting with the Qiskit Runtime service. | +| [`Estimator`](qiskit_ibm_runtime.Estimator "qiskit_ibm_runtime.Estimator") | alias of `EstimatorV1` | +| [`Sampler`](qiskit_ibm_runtime.Sampler "qiskit_ibm_runtime.Sampler") | alias of `SamplerV1` | +| [`Session`](qiskit_ibm_runtime.Session "qiskit_ibm_runtime.Session")(\[service, backend, max\_time]) | Class for creating a Qiskit Runtime session. | +| [`IBMBackend`](qiskit_ibm_runtime.IBMBackend "qiskit_ibm_runtime.IBMBackend")(configuration, service, api\_client) | Backend class interfacing with an IBM Quantum backend. | +| [`RuntimeJob`](qiskit_ibm_runtime.RuntimeJob "qiskit_ibm_runtime.RuntimeJob")(backend, api\_client, ...\[, ...]) | Representation of a runtime program execution. | +| [`RuntimeOptions`](qiskit_ibm_runtime.RuntimeOptions "qiskit_ibm_runtime.RuntimeOptions")(\[backend, image, log\_level, ...]) | Class for representing generic runtime execution options. | +| [`RuntimeEncoder`](qiskit_ibm_runtime.RuntimeEncoder "qiskit_ibm_runtime.RuntimeEncoder")(\*\[, skipkeys, ensure\_ascii, ...]) | JSON Encoder used by runtime service. | +| [`RuntimeDecoder`](qiskit_ibm_runtime.RuntimeDecoder "qiskit_ibm_runtime.RuntimeDecoder")(\*args, \*\*kwargs) | JSON Decoder used by runtime service. | diff --git a/public/api/qiskit-ibm-runtime/dev/objects.inv b/public/api/qiskit-ibm-runtime/dev/objects.inv index fc888617054f47f6d90c0b2aa1a4313497d1c099..7955550577cc18f376005307a05eac03ee8a24ad 100644 GIT binary patch literal 61533 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�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 Lk|_VVM%?~if$q37 literal 59935 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 C{+1sA diff --git a/public/images/api/qiskit-ibm-runtime/dev/fake_provider-1_02.png b/public/images/api/qiskit-ibm-runtime/dev/fake_provider-1_02.png index 82713ca19db30e68c0175106a52ee5875ca1b3cb..b459e020d71dded7e335109fc9c8c82865b7baf3 100644 GIT binary patch literal 14931 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 literal 14727 zcmeHuXH-<%x@BSFhzdsqMMY5oB`AnU5`kktEVASb5(OkD$#}fV5fP*S$w5hyRX}nu zkr9z3StUu9oT2CThIe~(zaRbM_2|*#-7zj6v8wjoYkg~eGkoUz3Jd!V}G89$MRn<;I_6i<*6K0SHg#Ex4EWaPa^Gis zuUu5V9W~zVq8{S7zA@Ey!};B={q)xrb}Q_@{@&x_+iEt8ni})wnz|GGb7{r`iE^?U zCqn9*WdscQh5dzI=NsQ&@g2PHD;<%L6z1!D|7h*dg3tb;lLb$Y4s}%y^%WM6bPbhG z&Uoqx`pkSU6<-+o;>UXxceC&N;EzrC(`p|T9#oz7zkmMQ3i$iP@32wr>FG(m9)CZ+ zmPGpcBudEklCZF_KX>2jW98bHA06a(=&#x>8A?SeKfV38-)tPV=P`snCXu`ce%Jr| zPo`THeg|H)-&!6?%VH%*3Ro)o&>n7nCb2`}>Q(dhSH=>p8(;6z(eK-rG*};*Ch>4z z&Bu>Uf3%<|_8ICkv7bII+mtM?*7@3!jatXA}P!ZZSFg|b?erH7jD1k@!IfkadVTV z$VHz|#EaPR5fu78d!BKsr2dGsE)8Ur4L>Wf_k@hXKurjn&cT~w6B83*s12K=oBZyw zva&wE>_cnbk{aR>9vd6Gy0#V)7REmOc_5+0ZGjUvO9_sMNS!R(&^>(KL1DBtgWs~_ zoMbR9$@`t{_G&7piLR6a`ysqvMeV`@Zh7?He%()ptc#x}$wsCcR{Br>%y$Tzo}PC2 z`SoIkX0BASe5`6Hw+=lMQ+iK{Td3m>tP4F=1(j-+ZbnYdIex1ybxLqdOy;r6_kVnO zY3Mo_Zkls@%3!7N#*G{19XTni9B0lbtgS4B78Mn(uC6v`o61{$d2xrdnUvpWgByx* z89Z=U#7V}?%uGsJS_#WM*C@%{9=bn5%%hM~`FY%zFY4saECCk`=mht3Yk%@(;3D?U zXBL~wvRgl@PLkOp;ql|&i5r<2YG@19^W=!EKS4ey>YC%vES~xEr%kR^wN5;M6@y^YXXd_Fr}Wh$_xkx-e(eUi@)3(0JxNmT-^h zKdSTJEA{{Uzw@{9nbbY5H)&GS^I#*pu1-}l?B4yfs_L4Aq@>00=fru(N4yb2w$CnI zy3}0kV(&QGT7OZch_p1q`Eqp!{VOWdR}X}1_lQ7d-uk-XPb(|*|oi8V- zLnq~9(yN0`a&d5w8^kw?TQhaiiizj@;uQHF4M~4JQP?FbeY+kUYcx|j}7TOa4u6F)^J5NdX@ zFF^05XO?bBj{ciJkJpxNth)g%r6L8bRYN#cX5a6XzxndXw*bKUiwV3J!hTkmn39De^`Z=1X4x3~9FRWl;iY;U|hO_a|>cTpNZ zBSO$RW`43ai`TH?2Ub4fyyJ*v+947tcvtd{Gm`#HjS1wS*|xHEmCe+&#UtmhU%%c~ z;4UL0>R#6rHhilgsa4w^oc6~oAY?m-mFm%LmqHF2N z!pobD$GhDoOQxr$Uh=s02TBGR}Zu_Z_CWU8k;Rlbmt{H0jr&&2KOjB zIlV?rByHb&qN=x757?xZ-Zwd!g}<|(IB`{1S68#ty&y?0Iu&QfteV0`NkET~<~*Nh z|1?!4jgy6?&*?Q4iB#j=v?Z)f&r1jIILK@8p1*ClG2X{@_Qwsct`axrmMlHJ%lCIS z5}1~2(Wd3O_P4)nVPj?e!fa|{(!nFBlBunM3$)-?#(J$AaZPLPLPfeIt~7LXZ4@?XBfmh_+*|F6R#sLW#V*+%dQ($V9oeP< zw1>~LlBZ{8l+si)a$M)ku>oYtrOTHGhK7>)En2_ijedCA3ZWjf(k19|%N>HJSFG8&R1KTgPmHF`?R+V)1Mllza8;`AUo)7YyCnO}Wt~fO| zHUjNhUR!pulF@H{fdP1Gf?ALjaaH;Q2T}k8>?co3Qkrwjl$Ms4&DWOa<~F+m+7Ph}ip{J)$h>JUVTI+RPsSb!oaCCG=a4gv)aE8@vjO5I)9PM+*sXvxqLL?^#SP0RFH`TS(^Tb{RR zO3B2D%S@CG<>cX!r_k@-eT^8J%^+5y zMLLc&H`au3jdx;${TG66i!;3HSgCGlm-!}Nw0Ui|N#6W(!UL0!Q7Jgt(iCi5!oJg* zKVmmllPAhHJW-HKshuV!CaHDdFPzQ)Yq0rvr^SxJ|l?Du0sOpRfR2SYHdpL zqKSa!-WN&U-lP>eXS3TQ-HM$pj40hJNxl0`q6ckT=m&H3fv_l^ zvR#MKa$oh+Qzc1-aH{#~aTLoj9XXPT>LV9Ati9ICvoh}~E+{T8&bifowq#|ZXavnD zurssL|8QD3pJ}RIndd>k69Ihyd5s3Km2?oY+SJovYmq_{-W&w|@R+VXxeV|L0aBqF zN*2FA1juOz&i#4!Zb)!&LSwvSn)75&s$!z=eLCh$a?lCk=XL<1h$w^Kv-k{t=OLBX zFun)x`f7B_ar<`MaK!VNvN@eDwh+4NEC=>oi{0^*#=r)3F z*mWCCd^(qEx`K(xph|3QU0pLek8f_QpWjZ$@eY-Z)gke@@w{I1=I7U!$Fdt{%Qw?~ zX(P+YwTdou#sBr!Zyq!Cg09QM$^1CNB^&E267wOCAII(2y?qh-qD8RRJ>H}~B1Jw{ z3{XCkAqZU_bzjnK?7d00j^oluOPUJUhQYWYn2y8|XIxNBOzhxUqrV8qC@=p*HsTz4 z_wL;hyoUF02}Bk;jwZ!R2AG3y96ayv96g6P@!+f~?|kUmz-Nw&%Y8jgR zWVD@3J3G4^hhat0*-w`xHZ{cuh^1mV2mqwyc&@n;po}iJu_0SnK#;NJiK0md&;_kb zYFx}m>-^@XmxhuhKi}>+Tk)g8Yd!mj+ZZoeCcQ>wZLKr}%}7&ngY3A7xVT zeewy}hyWz2zrDSDWK0Msduy3EL(Hf3D`7pMh z)+{ubuI}!Tz`z@N4c*;3Xi2AD=>jp?s!NZ+CCS_qa3}oCjZ0?DH}b&e&}Yp6Rj%W? zZOzH@%pMEf&WXzh)q=3kAQ~%u;MyK5<9U<>bOb^L5YkmtoB!4q1z;_~a6BT>KitMC z{lmj4Xe^e!r84g>NEOn5>g($ZfucsCN>gx{o`P#USw$f4`M z`#yNkh(qo$(Ire)?5lXBk}P)^tMs`PwK0BM{J}y{^JU}2bG`DJA5CbyI;4+6vDpvS zHGX^NGcN8uzyC!$j_qfy4r@FWRwqr^evtjb1#LV|3s`7Nk+b#6d4j`aWo3!2{=B^F z@Ofos_n&uSJmxi`p$4lo!j@)+Mq}J28gb|zI&SAUdbE7~ozB4+*SuyYN1Z0gC-tMG z^60mzWo6PU_I2&SivlCC1k^xKHS=wr0yg@`$94K+Lqpq6Pl|AIN(n^Dt}INdy}Q2) zYSMUvE8&xMWikEwg88V6iwlR4(BhL(@cWNX--kYiags#1A9v}*9!F{o%Z=fYH4hlV zF*#*zZT+F5f|Hl`x?zRi%iag)ELu;gWN4~jD}o$`9W3DR@Vm|5f>@WP`0+-Fy1kw# z9L?Obl@raLNs39|b7^3|=;GJAY_vS0uCofzC@mnLaE~lt>_nV3_C0?5xWi=0f)qv9 zWq^UGL3y#Igl#(+;|Sep?X?mK6=Xnn0_uFZDRwT){Qc&KqBZuSqBNC}xIQaJOldTzA zb6*St%zk`&3JR9jo9SNg{bR+b3_)=or?0GZwop$!S==duQ^-ngK(pd6Q;hrBdI?PJ zv%+`M3_g4`;tg*2s}sAe_knXa6*z*i6$pc|9H8Pkfn;c{us` zRkBK#Q`e;T;l`w-A8eL^t(C?2UTblD3!$Q5St)-G#Rb@(y{9sPo>MzDGc|R+#C1+N zSuUC~0Vw}UgF8ld;CKYLh~%5`o+{}RR7|c({lRE44^4t7Ut!wg>t=gG2ZwIYZ`_6ZUuoNt^N|FLuBs)UUXr!?tQQW%4go+%l7wkPX3|E%) zC1i1D9Z(eb@-R(oKg1G@&EQ!q4apaqw4Ii=75vzxWvFy{gbV%UMFJ18Wmg{X93w0V zdGWOzxhSEh)XeS*&?T*?ESQ?lVZw|sZ!Ajw^KM8pXptNuB3i`a4t|WbDBF>8_0d59 zWdv*}?SqckoG&3Y7tRo*BD+B>4RZ3!(4FnOc7;TCTCQbY18MRpO#ItRtM2nIw{PEk z^XJwLFG(vas8=;~4tg+u>(ZsG&;}hiWho4x+()|&yj?cd7Fy6g=O(&WB1UINTBOlO zW8sOEXmQhGr_8N5%F}gAG$8?h?rIxt%ZgRa)OO(_p3p`%k6xd6GGJqmO$h+?2iBn= zgxLH1B=r9fF11#yy;Xh>ek#L7)^fqhds`GHlJ>&-g2uqxU~Osh^77_Q6SdmrAWdbm z`12cKx#+r2NdTU7rrdRPV*ty^TX*cc`TnonY}|O|SG&A(bTVKNCuG9nAS%q@f&*NN z=ouN=$pqGyu1ttT!%fdBp7teRNAWaR<<}=CUqzm|@h93+a$c{emi^F26__Ec)s>Z! z(dQjMhw&Qz#)Fr=W^a@!26_?_98Lmw3mZ9Ax1}jN$~T z6aS1;kKWzmG8BE5NP&X4(n;=DxY?GeqxnMr4yusF&<|wDqh*fJpwQgMYvEVv^xL9M z5}ugobQKHCwp2<`5JBUKqDE=tWq{5q2t=JIho+E3N)f_J+zybbbi@^n4NR|OqLiSn zkOB2!yqEF2?n1{Vs1SbJ?^lS|#>B)V>WTxPMC9zZSJ!7aNL7Qrg0;*|TRX0EQT$grq1$ECZry zj;?;*Z9bhf1+<-J=gwxRi}B9)@87d?aY>6fjXh>{adqVs5Kx6=3vK@X#G>c`=xz-Z z7AzrFGMec~M{XKED5jTk_+9GAQ3R3SyMD~ z&55>)bLF_c>Oxk$cI_|1dIXTS=UM!n^ID2`4nX9A>)oto;M;sgLwh_noZbzi}i_5yoTqyl&Z z4@v@z%v7jH6mF2{H9@cjyiHM2k>XMGOi8xP0 z;rZvl_02(&1iP%Esn&do&LKfc86PQ33OE(nM&&JXPsPhCbbcr-`(+nnm<0#Zi%uBC zV5d5~t!!W*lz&=e(^Muf!T>(z-G#Xc(#f|C4GoF*S}V^@U^77_z*w17Kswpk-u7sSb-nKxQtR|B*Tp3(P)c^eWNn+4Ksu{=8rO@A{m+)eL4 z=b*=t9ZBW@mZSpVi0gSSNx(hjdX@fj%I^T*xtpJk65b>cHMzPL`tcGTWRJ&!j_Ar* zw!~|T|CDdOGRG%&U6tFbfAHMRxI>RlLW(=RTyREz9)+~$Hq!t%+pgicb0^yE%s=yB zVAa2};s5^c|7iuvAAG2+#0BZLdg~-yzyNlF-pK8Db{@XwGEBDa^^KRNn5_*Z4`^(10 zSbH`qlIVY6;l|nRtYma06(FS{%@(Hj?;64HGp))vWQEgxZA-P_7i~-cnJOn5(| zj|6*c6db(`f7kaG`7&2=y%-)Fp~ne0zaD>8_=ObxK_Q#CCp>zYO389$N{{D?rN`8V z{mX-q*2?edZ$<<-@7ZIEgImW(I>T$7N z>lzyiUK{9T`iO01DG;a`2o|W-b_O5DLaqq;!vB||tglUarJ+l}u_E-I>%v4vbF(tF zn#)j%URf!jNm_>dc#XApebvtY+m^0xnF9XL@Nx=kWPK9a-*6?fS580?iDdeRH`Ro` z+9An6g#LvCQd`QdzK3cX`+Z#SW>2vTJj&P{$5Bc@oY~ z{XEm@qD-Rih1yC*-m?;I1C^zSmVa1_KI#b7HscDF$usOxl589t4<_Sn&w^%4$;*dE zMn>Z7BtUpgz4@U}Xr_JK+RtZa9p-*CUPhw(83~*Nv3^S8hfr7#KWT%XeQI2nA|BhUYr*<=KSI#$u&-W}!QL1!L{)>HZgs+4)pU z-+jf}tD^nDp?Y>i)b%+|$h?a(e5ZJ1GsK~TE&&vT7F3uQ$EA3_>sc-7O zcr<06;-8z24GM6jiS)8gcosG7*0<@@7@*y3CG2F0O=$k~^fKH#j?%X6HdNdq+e`pS z$Yzo`RnytU#l_dA0=$~BydyteOBu2wh5q)smskm5{W9w3~wqQ2Ink z7216Jv#YC1IsWRd)9Nq0?-YAKw5cY|1bD4phH?1`E_D|CM=1(QA$eu8OpgfRVQ?^M zAM@_a@LXH&$hVEhe3MONzLB>E779VZIEE<*j*qjvx`E9XW0bR@5q6;}RHe?uvUXP5WKcV|iA^R06?eDzdVg(xcD=soK*!>oTrg zyQTnMyk?6=3*yS89_Ro%ifc?Iz21I%MSwwx#wwAydd}5u(37=ow7O+E@JGsHzJ>ms zYwDI2Gm!%nsw98{2v{9MEy95e&}}`(NboF+*&mI01+OBNgd9uKY;rwWU0-cd8G81P`URg`s$eTw6jewmw!|Z>S+w4RZ@j z>afY#cX1!kkMUeK15c5Kmid)T5a9+9BrMO5r@>DWDJ(Xye=V)aHekMXZPsXOW^2F| zdDXAxYeFoMwvAa$-Ed{E`Y}F*eOwD23+mC-X_70n z%{X2z6qp?2Dg{?b86yz@k!KjI-~f$7tb*bUz3R_omf~`Y)eIO$^V@F<&};D3hkw{f z`57ARB1SC4H!1F=33Z8G!4TcaD8$0RE`7pq+f3>oT(QtmO-4II06a!x}+S*YrKc4!?0OR~n zu2TyOf@l%v5SlwWgbNP9IvgyTEagK^!8OmD-@)s!k11X{YKc*UimHMv6L#i}!`PQb z?R=YWzC+lMI)H=G3Hg{?$XV;9c}n`dX{>t|r}`e@qk)W%re(bqnLk zsdm%Ya6n2p46TEPe%1B$B_oFxa@%zI&%N_y%n?d~H1N?*?M}o=MuAKpm zAyyx$`3y#M!eGaJ9_z@h^*bWkfrPKNkxg%ZWz|wZAaBK$t5+l7(X6C4Kw3p$u;AAl zu@5hQzO`;o^U{RVj#%%qfHh$H3HLmoY*xkjIl|zyBCd5lH0A(Sz{DbA!hQdX+hsS@u zu^;|)Ozjce7}h2BO?NJ+0p`N_EuKJ@M-a8i zB2~=s_f`GF+x8NYBNK>t6G;5QJJd(c96NTbqO!8`iiAWs`e+N&d55Y-wkK5sHwM4H zxl7bu@j{OqZD#6i8u8|aXc1GmU;5zjqB9t|jerG}-^^PW)#88sDX8rX+@1(f97e1H zLhw3F2i5@|5CU1sz%E%@ooP6%WAc*0Kd-Qrc{3(l&JjlmcS4&osR~p1&FVKguQS+Q z`v-;&r&YzSe)MzEXF3Hr3klf*cGN#Qng%*eXiXv%oSP%8O=N>aLW%h;G-OSG?xp+O zlPR#;h+GYwq6MOQX=P=<#sbW=WrV`<1Wsd~i#9d?HjOFG+ITTN*g^=#TTw%&?EPpM zOh1cqF|pV`s(y$3F~_n~AVVYjDtzHKFiT`K!nrUp?o!jWPI@kgBuAU}Yl`YvL=)CK z81-iu?aEIt-FwA8mBi5M=F$ytQbdWu-$=j`B_<@O4>FPk1#P1l`~yRN$9yul3H+=k zKo?=k5aW}W7D6zrjAbxHVpz@?4|BPF z!-lWoxpsk_KPMh|D1eIVFpD(%N{|@)>~t+pB*Ln2^wtOrqekEY_VA+k97mM*9ywx# zV>FDAwH;nly!7eU-)E7=oOF}_C|3CnsfY~R$2$84QB&mS^-zKjFX$;K=uf_(2`WBd z-xuSzv{9mN{44{&8-@X=FjQTb(|AYwWDLrIk4|hcZVA)kGODUi;%kdJ+D1}vBZDwx z1oYge?s?SRV@OC!>KO7U=(3*tgL5@J`)xx{uIsCs$xUf2?&8_c(k2+|82mK?f_SG88UCM_M~V+* zeo?~Us0(Od9k6T6Id`lxufdO5yr(%st1Z8%C=xi?N$soo?cLN>QMkWhl1E(L_cRSS zPYT5YkHV4O^I3HXtuPCP7Oip%rET#(H0R*LtU6pR_1hU*5Eskkg-L77MXMRPfR+_t za69l~CKC3+r#?r{;;hT9J#1@nC2TqZ$BDiTxC;tL@;HofWIR)TO8rIo9fsa8u6ZN= zEsWH}oVcyM{V!gE;jl&iwiQg88iQ_|AcIuB-_m_hZNvQtRftXRpfvtU2On(fm6d}reDH)=t$+*De=Py#>TvAqA&33yP59E(vYZ^+ z+Xj3^HFi-|+(9l^_u|Go8Bo4@46B$EAwCAE-99jFB4`#C$w5Ey!;q9H%z-znh-$NY z_e2K;DfKVmjAmoE`1H$3eF&%t1^m}pYhSK;%)?q7asPP{=EdO|xDC3_+Ev8#{5D!9 zb*B&A$JIv7kPi~bJl0cER5gu34L;a4d-v=yK&zBROWwX?2OpXYZEDV<_REuL$I6AO z2HIR<0+vN$5cMG3+on_%t{LKZ62CM7*)zeA(Fq};FU9zd1#RYHh4#zjOQF;+K>v;# zx}D|YleMw234AH8`c+CaF)=Y5CoLSX@T&>G2d6vayKEh&VmCQ%5)D&}MehF%^Ih4COEUnAL?c3X}P+)%$ z!v!#u$7UY%4-JjVdo2fT+jX$Nd1hO_ro7r{vP}VRh3ASXYJMM&Zn~Jq@{jU6n}PV8 zqlypf8Qcmnj6O8ms%1S44%v#KSIoC)!LugjbC&U?2@I1TAMYwq0;sD&9mm(6-lsM; zYzK;Tw&F`N3pfQax0I+ZG9qysd`v(V|J{Y;f-2NqSe*aw|LEN<8Ty*Vq zY;R0-zBUp}0C56<_&M5wvBsdR?T46jUy@SAd8e`G(9NR=^VQHsav^r{v}Ty0AZClv zbkAXI9&-ZrPnOD^b7QQU1K_z3<_=-!&G}Rgpc(-s!{0wVB)%Zgf(+q!D9a8S8Vvd9 zPqOjwH0<%f>a>j}|2)++5XzmkZ&TDGfQyDP|CenQOd?Ko%Fh+PMdT%Bs=s`D0c4n< zpp{45>WoZG&W|&3+|$lDsWw{4*fvJgE5Wn#taOyJO=OkIJU#f}ZG)#$xLQRq%e=JG zyJ4l8uKvwi>S05RYhk!2_vhD681Vf1BoxJiESG!zK zKim44bU#ubiI6^^c6`v*NgCNE1bUeu9XElN8yt%D5`fnufTMSMT9p0c$A7%FB*s%j zZpd8kNoZIYp=;XlbsCKjmE-@hd@5*0Nce+Yz^i0YowBfB2-;0R6`a5`m|M|1tkZMa zHaA8)gV|6!JGqv@v)l+|97bmti+&6 d!;c%ATi?|08I>Qpffta-5^`5EFX{jJKLDxO1n>X= diff --git a/scripts/api-html-artifacts.json b/scripts/api-html-artifacts.json index da429c0841a..d231a37f538 100644 --- a/scripts/api-html-artifacts.json +++ b/scripts/api-html-artifacts.json @@ -33,7 +33,7 @@ "0.7": "https://ibm.box.com/shared/static/t2vuik7bqboata3i34r4a83baabo95xn.zip" }, "qiskit-ibm-runtime": { - "dev": "https://ibm.box.com/shared/static/j4o6bvkmfndk9ib9h5wp2u3sprj9n6tv.zip", + "dev": "https://ibm.box.com/shared/static/o5uk88cicxk1rettbb5n0lcpva3q2otq.zip", "0.21": "https://ibm.box.com/shared/static/p5nc95ypavdaq3sk8g1ebm3h4bc1a846.zip", "0.20": "https://ibm.box.com/shared/static/0bcr09epud50i3czdx791iagumrf5bjz.zip", "0.19": "https://ibm.box.com/shared/static/ojpnzc71aex4d8itnktwbp9m7l15nazs.zip", From dba96c6c2820a25a1c2114efc8f7ee90c6a4e128 Mon Sep 17 00:00:00 2001 From: Eric Arellano <14852634+Eric-Arellano@users.noreply.github.com> Date: Wed, 6 Mar 2024 14:38:12 -0500 Subject: [PATCH 4/9] Regen dev docs --- docs/api/qiskit-ibm-runtime/dev/_package.json | 2 +- docs/api/qiskit-ibm-runtime/dev/_toc.json | 16 ++ .../dev/qiskit_ibm_runtime.Estimator.md | 2 +- .../dev/qiskit_ibm_runtime.EstimatorV1.md | 143 ++++++++++++++++++ .../dev/qiskit_ibm_runtime.EstimatorV2.md | 127 ++++++++++++++++ .../dev/qiskit_ibm_runtime.Sampler.md | 2 +- .../dev/qiskit_ibm_runtime.SamplerV1.md | 134 ++++++++++++++++ .../dev/qiskit_ibm_runtime.SamplerV2.md | 101 +++++++++++++ .../qiskit-ibm-runtime/dev/runtime_service.md | 26 ++-- public/api/qiskit-ibm-runtime/dev/objects.inv | Bin 61533 -> 62148 bytes .../dev/fake_provider-1_02.png | Bin 14931 -> 14759 bytes scripts/api-html-artifacts.json | 2 +- 12 files changed, 540 insertions(+), 15 deletions(-) create mode 100644 docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.EstimatorV1.md create mode 100644 docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.EstimatorV2.md create mode 100644 docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.SamplerV1.md create mode 100644 docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.SamplerV2.md diff --git a/docs/api/qiskit-ibm-runtime/dev/_package.json b/docs/api/qiskit-ibm-runtime/dev/_package.json index 54f6a50e7e5..4b4544d8fd3 100644 --- a/docs/api/qiskit-ibm-runtime/dev/_package.json +++ b/docs/api/qiskit-ibm-runtime/dev/_package.json @@ -1,4 +1,4 @@ { "name": "qiskit-ibm-runtime", - "version": "0.21.1-dev" + "version": "0.22.0-dev" } diff --git a/docs/api/qiskit-ibm-runtime/dev/_toc.json b/docs/api/qiskit-ibm-runtime/dev/_toc.json index 47409f78110..6510deff55b 100644 --- a/docs/api/qiskit-ibm-runtime/dev/_toc.json +++ b/docs/api/qiskit-ibm-runtime/dev/_toc.json @@ -8,6 +8,14 @@ "title": "Overview", "url": "/api/qiskit-ibm-runtime/dev/runtime_service" }, + { + "title": "EstimatorV1", + "url": "/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.EstimatorV1" + }, + { + "title": "EstimatorV2", + "url": "/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.EstimatorV2" + }, { "title": "IBMBackend", "url": "/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.IBMBackend" @@ -32,6 +40,14 @@ "title": "RuntimeOptions", "url": "/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.RuntimeOptions" }, + { + "title": "SamplerV1", + "url": "/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.SamplerV1" + }, + { + "title": "SamplerV2", + "url": "/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.SamplerV2" + }, { "title": "Session", "url": "/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.Session" diff --git a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.Estimator.md b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.Estimator.md index dbd84e07e14..a3c48ac6919 100644 --- a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.Estimator.md +++ b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.Estimator.md @@ -8,5 +8,5 @@ python_api_name: qiskit_ibm_runtime.Estimator # Estimator -alias of `EstimatorV1` +alias of [`EstimatorV1`](qiskit_ibm_runtime.EstimatorV1 "qiskit_ibm_runtime.estimator.EstimatorV1") diff --git a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.EstimatorV1.md b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.EstimatorV1.md new file mode 100644 index 00000000000..56bbdf370df --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.EstimatorV1.md @@ -0,0 +1,143 @@ +--- +title: EstimatorV1 +description: API reference for qiskit_ibm_runtime.EstimatorV1 +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.EstimatorV1 +--- + +# EstimatorV1 + + + +`EstimatorV1(backend=None, session=None, options=None)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/estimator.py#L180-L362 "view source code") + +Class for interacting with Qiskit Runtime Estimator primitive service. + +Qiskit Runtime Estimator primitive service estimates expectation values of quantum circuits and observables. + +The [`run()`](#qiskit_ibm_runtime.EstimatorV1.run "qiskit_ibm_runtime.EstimatorV1.run") can be used to submit circuits, observables, and parameters to the Estimator primitive. + +You are encouraged to use [`Session`](qiskit_ibm_runtime.Session "qiskit_ibm_runtime.Session") to open a session, during which you can invoke one or more primitives. Jobs submitted within a session are prioritized by the scheduler. + +Example: + +```python +from qiskit.circuit.library import RealAmplitudes +from qiskit.quantum_info import SparsePauliOp + +from qiskit_ibm_runtime import QiskitRuntimeService, Estimator + +service = QiskitRuntimeService(channel="ibm_cloud") + +psi1 = RealAmplitudes(num_qubits=2, reps=2) + +H1 = SparsePauliOp.from_list([("II", 1), ("IZ", 2), ("XI", 3)]) +H2 = SparsePauliOp.from_list([("IZ", 1)]) +H3 = SparsePauliOp.from_list([("ZI", 1), ("ZZ", 1)]) + +with Session(service=service, backend="ibmq_qasm_simulator") as session: + estimator = Estimator(session=session) + + theta1 = [0, 1, 1, 2, 3, 5] + + # calculate [ ] + psi1_H1 = estimator.run(circuits=[psi1], observables=[H1], parameter_values=[theta1]) + print(psi1_H1.result()) + + # calculate [ , ] + psi1_H23 = estimator.run( + circuits=[psi1, psi1], + observables=[H2, H3], + parameter_values=[theta1]*2 + ) + print(psi1_H23.result()) +``` + +Initializes the Estimator primitive. + +**Parameters** + +* **backend** (`Union`\[`str`, [`IBMBackend`](qiskit_ibm_runtime.IBMBackend "qiskit_ibm_runtime.ibm_backend.IBMBackend"), `None`]) – Backend to run the primitive. This can be a backend name or an [`IBMBackend`](qiskit_ibm_runtime.IBMBackend "qiskit_ibm_runtime.IBMBackend") instance. If a name is specified, the default account (e.g. `QiskitRuntimeService()`) is used. + +* **session** (`Union`\[[`Session`](qiskit_ibm_runtime.Session "qiskit_ibm_runtime.session.Session"), `str`, [`IBMBackend`](qiskit_ibm_runtime.IBMBackend "qiskit_ibm_runtime.ibm_backend.IBMBackend"), `None`]) – + + Session in which to call the primitive. + + If both `session` and `backend` are specified, `session` takes precedence. If neither is specified, and the primitive is created inside a [`qiskit_ibm_runtime.Session`](qiskit_ibm_runtime.Session "qiskit_ibm_runtime.Session") context manager, then the session is used. Otherwise if IBM Cloud channel is used, a default backend is selected. + +* **options** (`Union`\[`Dict`, [`Options`](qiskit_ibm_runtime.options.Options "qiskit_ibm_runtime.options.options.Options"), `None`]) – Primitive options, see `Options` for detailed description. The `backend` keyword is still supported but is deprecated. + +## Attributes + + + +### options + +Return options values for the sampler. :rtype: `Options` :returns: options + + + +### session + +Return session used by this primitive. + +**Return type** + +`Optional`\[[`Session`](qiskit_ibm_runtime.Session "qiskit_ibm_runtime.session.Session")] + +**Returns** + +Session used by this primitive, or `None` if session is not used. + + + +### version + +`= 1` + +## Methods + +### run + + + +`run(circuits, observables, parameter_values=None, **kwargs)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/estimator.py#L257-L291 "view source code") + +Submit a request to the estimator primitive. + +**Parameters** + +* **circuits** (*QuantumCircuit | Sequence\[QuantumCircuit]*) – a (parameterized) `QuantumCircuit` or a list of (parameterized) `QuantumCircuit`. +* **observables** (*Sequence\[BaseOperator | str] | BaseOperator | str*) – Observable objects. +* **parameter\_values** (*Sequence\[float] | Sequence\[Sequence\[float]] | None*) – Concrete parameters to be bound. +* **\*\*kwargs** – Individual options to overwrite the default primitive options. These include the runtime options in [`qiskit_ibm_runtime.RuntimeOptions`](qiskit_ibm_runtime.RuntimeOptions "qiskit_ibm_runtime.RuntimeOptions"). + +**Return type** + +[RuntimeJob](qiskit_ibm_runtime.RuntimeJob "qiskit_ibm_runtime.RuntimeJob") + +**Returns** + +Submitted job. The result of the job is an instance of `qiskit.primitives.EstimatorResult`. + +**Raises** + +**ValueError** – Invalid arguments are given. + +### set\_options + + + +`set_options(**fields)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/base_primitive.py#L402-L410 "view source code") + +Set options values for the sampler. + +**Parameters** + +**\*\*fields** – The fields to update the options + +**Return type** + +`None` + diff --git a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.EstimatorV2.md b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.EstimatorV2.md new file mode 100644 index 00000000000..b26b4982649 --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.EstimatorV2.md @@ -0,0 +1,127 @@ +--- +title: EstimatorV2 +description: API reference for qiskit_ibm_runtime.EstimatorV2 +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.EstimatorV2 +--- + +# EstimatorV2 + + + +`EstimatorV2(backend=None, session=None, options=None)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/estimator.py#L48-L177 "view source code") + +Class for interacting with Qiskit Runtime Estimator primitive service. + +Qiskit Runtime Estimator primitive service estimates expectation values of quantum circuits and observables. + +The [`run()`](#qiskit_ibm_runtime.EstimatorV2.run "qiskit_ibm_runtime.EstimatorV2.run") can be used to submit circuits, observables, and parameters to the Estimator primitive. + +Following construction, an estimator is used by calling its [`run()`](#qiskit_ibm_runtime.EstimatorV2.run "qiskit_ibm_runtime.EstimatorV2.run") method with a list of PUBs (Primitive Unified Blocs). Each PUB contains four values that, together, define a computation unit of work for the estimator to complete: + +* a single `QuantumCircuit`, possibly parametrized, whose final state we define as $\psi(\theta)$, +* one or more observables (specified as any `ObservablesArrayLike`, including `Pauli`, `SparsePauliOp`, `str`) that specify which expectation values to estimate, denoted $H_j$, and +* a collection parameter value sets to bind the circuit against, $\theta_k$. +* an optional target precision for expectation value estimates. + +Here is an example of how the estimator is used. + +```python +from qiskit.circuit.library import RealAmplitudes +from qiskit.quantum_info import SparsePauliOp +from qiskit.transpiler.preset_passmanagers import generate_preset_pass_manager +from qiskit_ibm_runtime import QiskitRuntimeService, EstimatorV2 as Estimator + +service = QiskitRuntimeService() +backend = service.least_busy(operational=True, simulator=False) + +psi = RealAmplitudes(num_qubits=2, reps=2) +hamiltonian = SparsePauliOp.from_list([("II", 1), ("IZ", 2), ("XI", 3)]) +theta = [0, 1, 1, 2, 3, 5] + +pm = generate_preset_pass_manager(backend=backend, optimization_level=1) +isa_psi = pm.run(psi) +isa_observables = hamiltonian.apply_layout(isa_psi.layout) + +estimator = Estimator(backend=backend) + +# calculate [ ] +job = estimator.run([(isa_psi, isa_observables, [theta])]) +pub_result = job.result()[0] +print(f"Expectation values: {pub_result.data.evs}") +``` + +Initializes the Estimator primitive. + +**Parameters** + +* **backend** (`Union`\[`str`, [`IBMBackend`](qiskit_ibm_runtime.IBMBackend "qiskit_ibm_runtime.ibm_backend.IBMBackend"), `None`]) – Backend to run the primitive. This can be a backend name or an [`IBMBackend`](qiskit_ibm_runtime.IBMBackend "qiskit_ibm_runtime.IBMBackend") instance. If a name is specified, the default account (e.g. `QiskitRuntimeService()`) is used. + +* **session** (`Union`\[[`Session`](qiskit_ibm_runtime.Session "qiskit_ibm_runtime.session.Session"), `str`, [`IBMBackend`](qiskit_ibm_runtime.IBMBackend "qiskit_ibm_runtime.ibm_backend.IBMBackend"), `None`]) – + + Session in which to call the primitive. + + If both `session` and `backend` are specified, `session` takes precedence. If neither is specified, and the primitive is created inside a [`qiskit_ibm_runtime.Session`](qiskit_ibm_runtime.Session "qiskit_ibm_runtime.Session") context manager, then the session is used. Otherwise if IBM Cloud channel is used, a default backend is selected. + +* **options** (`Union`\[`Dict`, [`EstimatorOptions`](qiskit_ibm_runtime.options.EstimatorOptions "qiskit_ibm_runtime.options.estimator_options.EstimatorOptions"), `None`]) – Primitive options, see `Options` for detailed description. The `backend` keyword is still supported but is deprecated. + +**Raises** + +**NotImplementedError** – If “q-ctrl” channel strategy is used. + +## Attributes + + + +### options + +Return options + +**Return type** + +`TypeVar`(`OptionsT`, bound= `BaseOptions`) + + + +### session + +Return session used by this primitive. + +**Return type** + +`Optional`\[[`Session`](qiskit_ibm_runtime.Session "qiskit_ibm_runtime.session.Session")] + +**Returns** + +Session used by this primitive, or `None` if session is not used. + + + +### version + +`= 2` + +## Methods + +### run + + + +`run(pubs, *, precision=None)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/estimator.py#L137-L154 "view source code") + +Submit a request to the estimator primitive. + +**Parameters** + +* **pubs** (*Iterable\[EstimatorPubLike]*) – An iterable of pub-like (primitive unified bloc) objects, such as tuples `(circuit, observables)` or `(circuit, observables, parameter_values)`. +* **precision** (*float | None*) – The target precision for expectation value estimates of each run Estimator Pub that does not specify its own precision. If None the estimator’s default precision value will be used. + +**Return type** + +RuntimeJobV2 + +**Returns** + +Submitted job. + diff --git a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.Sampler.md b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.Sampler.md index 407298c158e..b3d8fab78d7 100644 --- a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.Sampler.md +++ b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.Sampler.md @@ -8,5 +8,5 @@ python_api_name: qiskit_ibm_runtime.Sampler # Sampler -alias of `SamplerV1` +alias of [`SamplerV1`](qiskit_ibm_runtime.SamplerV1 "qiskit_ibm_runtime.sampler.SamplerV1") diff --git a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.SamplerV1.md b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.SamplerV1.md new file mode 100644 index 00000000000..bdcabb0e41b --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.SamplerV1.md @@ -0,0 +1,134 @@ +--- +title: SamplerV1 +description: API reference for qiskit_ibm_runtime.SamplerV1 +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.SamplerV1 +--- + +# SamplerV1 + + + +`SamplerV1(backend=None, session=None, options=None)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/sampler.py#L140-L290 "view source code") + +Class for interacting with Qiskit Runtime Sampler primitive service. + +Qiskit Runtime Sampler primitive service calculates quasi-probability distribution of bitstrings from quantum circuits. + +The [`run()`](#qiskit_ibm_runtime.SamplerV1.run "qiskit_ibm_runtime.SamplerV1.run") method can be used to submit circuits and parameters to the Sampler primitive. + +You are encouraged to use [`Session`](qiskit_ibm_runtime.Session "qiskit_ibm_runtime.Session") to open a session, during which you can invoke one or more primitives. Jobs submitted within a session are prioritized by the scheduler. + +Example: + +```python +from qiskit.circuit import QuantumCircuit, QuantumRegister, ClassicalRegister +from qiskit_ibm_runtime import QiskitRuntimeService, Session, Sampler + +service = QiskitRuntimeService(channel="ibm_cloud") + +# Bell Circuit +qr = QuantumRegister(2, name="qr") +cr = ClassicalRegister(2, name="cr") +qc = QuantumCircuit(qr, cr, name="bell") +qc.h(qr[0]) +qc.cx(qr[0], qr[1]) +qc.measure(qr, cr) + +with Session(service, backend="ibmq_qasm_simulator") as session: + sampler = Sampler(session=session) + + job = sampler.run(qc, shots=1024) + print(f"Job ID: {job.job_id()}") + print(f"Job result: {job.result()}") + + # You can run more jobs inside the session +``` + +Initializes the Sampler primitive. + +**Parameters** + +* **backend** (`Union`\[`str`, [`IBMBackend`](qiskit_ibm_runtime.IBMBackend "qiskit_ibm_runtime.ibm_backend.IBMBackend"), `None`]) – Backend to run the primitive. This can be a backend name or an [`IBMBackend`](qiskit_ibm_runtime.IBMBackend "qiskit_ibm_runtime.IBMBackend") instance. If a name is specified, the default account (e.g. `QiskitRuntimeService()`) is used. + +* **session** (`Union`\[[`Session`](qiskit_ibm_runtime.Session "qiskit_ibm_runtime.session.Session"), `str`, [`IBMBackend`](qiskit_ibm_runtime.IBMBackend "qiskit_ibm_runtime.ibm_backend.IBMBackend"), `None`]) – + + Session in which to call the primitive. + + If both `session` and `backend` are specified, `session` takes precedence. If neither is specified, and the primitive is created inside a [`qiskit_ibm_runtime.Session`](qiskit_ibm_runtime.Session "qiskit_ibm_runtime.Session") context manager, then the session is used. Otherwise if IBM Cloud channel is used, a default backend is selected. + +* **options** (`Union`\[`Dict`, [`Options`](qiskit_ibm_runtime.options.Options "qiskit_ibm_runtime.options.options.Options"), `None`]) – Primitive options, see `Options` for detailed description. The `backend` keyword is still supported but is deprecated. + +## Attributes + + + +### options + +Return options values for the sampler. :rtype: `Options` :returns: options + + + +### session + +Return session used by this primitive. + +**Return type** + +`Optional`\[[`Session`](qiskit_ibm_runtime.Session "qiskit_ibm_runtime.session.Session")] + +**Returns** + +Session used by this primitive, or `None` if session is not used. + + + +### version + +`= 1` + +## Methods + +### run + + + +`run(circuits, parameter_values=None, **kwargs)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/sampler.py#L210-L238 "view source code") + +Submit a request to the sampler primitive. + +**Parameters** + +* **circuits** (*QuantumCircuit | Sequence\[QuantumCircuit]*) – A (parameterized) `QuantumCircuit` or a list of (parameterized) `QuantumCircuit`. +* **parameter\_values** (*Sequence\[float] | Sequence\[Sequence\[float]] | None*) – Concrete parameters to be bound. +* **\*\*kwargs** – Individual options to overwrite the default primitive options. These include the runtime options in [`qiskit_ibm_runtime.RuntimeOptions`](qiskit_ibm_runtime.RuntimeOptions "qiskit_ibm_runtime.RuntimeOptions"). + +**Return type** + +[RuntimeJob](qiskit_ibm_runtime.RuntimeJob "qiskit_ibm_runtime.RuntimeJob") + +**Returns** + +Submitted job. The result of the job is an instance of `qiskit.primitives.SamplerResult`. + +**Raises** + +**ValueError** – Invalid arguments are given. + +### set\_options + + + +`set_options(**fields)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/base_primitive.py#L402-L410 "view source code") + +Set options values for the sampler. + +**Parameters** + +**\*\*fields** – The fields to update the options + +**Return type** + +`None` + diff --git a/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.SamplerV2.md b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.SamplerV2.md new file mode 100644 index 00000000000..a4702d1f149 --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.SamplerV2.md @@ -0,0 +1,101 @@ +--- +title: SamplerV2 +description: API reference for qiskit_ibm_runtime.SamplerV2 +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.SamplerV2 +--- + +# SamplerV2 + + + +`SamplerV2(backend=None, session=None, options=None)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/sampler.py#L46-L137 "view source code") + +Class for interacting with Qiskit Runtime Sampler primitive service. + +This class supports version 2 of the Sampler interface, which uses different input and output formats than version 1. + +Qiskit Runtime Sampler primitive returns the sampled result according to the specified output type. For example, it returns a bitstring for each shot if measurement level 2 (bits) is requested. + +The [`run()`](#qiskit_ibm_runtime.SamplerV2.run "qiskit_ibm_runtime.SamplerV2.run") method can be used to submit circuits and parameters to the Sampler primitive. + +Initializes the Sampler primitive. + +**Parameters** + +* **backend** (`Union`\[`str`, [`IBMBackend`](qiskit_ibm_runtime.IBMBackend "qiskit_ibm_runtime.ibm_backend.IBMBackend"), `None`]) – Backend to run the primitive. This can be a backend name or an [`IBMBackend`](qiskit_ibm_runtime.IBMBackend "qiskit_ibm_runtime.IBMBackend") instance. If a name is specified, the default account (e.g. `QiskitRuntimeService()`) is used. + +* **session** (`Union`\[[`Session`](qiskit_ibm_runtime.Session "qiskit_ibm_runtime.session.Session"), `str`, [`IBMBackend`](qiskit_ibm_runtime.IBMBackend "qiskit_ibm_runtime.ibm_backend.IBMBackend"), `None`]) – + + Session in which to call the primitive. + + If both `session` and `backend` are specified, `session` takes precedence. If neither is specified, and the primitive is created inside a [`qiskit_ibm_runtime.Session`](qiskit_ibm_runtime.Session "qiskit_ibm_runtime.Session") context manager, then the session is used. Otherwise if IBM Cloud channel is used, a default backend is selected. + +* **options** (`Union`\[`Dict`, [`SamplerOptions`](qiskit_ibm_runtime.options.SamplerOptions "qiskit_ibm_runtime.options.sampler_options.SamplerOptions"), `None`]) – Primitive options, see `Options` for detailed description. The `backend` keyword is still supported but is deprecated. + +**Raises** + +**NotImplementedError** – If “q-ctrl” channel strategy is used. + +## Attributes + + + +### options + +`SamplerOptions` + +Return options + +**Return type** + +`TypeVar`(`OptionsT`, bound= `BaseOptions`) + + + +### session + +Return session used by this primitive. + +**Return type** + +`Optional`\[[`Session`](qiskit_ibm_runtime.Session "qiskit_ibm_runtime.session.Session")] + +**Returns** + +Session used by this primitive, or `None` if session is not used. + + + +### version + +`= 2` + +## Methods + +### run + + + +`run(pubs, *, shots=None)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/sampler.py#L97-L124 "view source code") + +Submit a request to the estimator primitive. + +**Parameters** + +* **pubs** (*Iterable\[SamplerPubLike]*) – An iterable of pub-like objects. For example, a list of circuits or tuples `(circuit, parameter_values)`. +* **shots** (*int | None*) – The total number of shots to sample for each sampler pub that does not specify its own shots. If `None`, the primitive’s default shots value will be used, which can vary by implementation. + +**Return type** + +RuntimeJobV2 + +**Returns** + +Submitted job. The result of the job is an instance of `qiskit.primitives.containers.PrimitiveResult`. + +**Raises** + +**ValueError** – Invalid arguments are given. + diff --git a/docs/api/qiskit-ibm-runtime/dev/runtime_service.md b/docs/api/qiskit-ibm-runtime/dev/runtime_service.md index 1e9f64301d4..664a47067eb 100644 --- a/docs/api/qiskit-ibm-runtime/dev/runtime_service.md +++ b/docs/api/qiskit-ibm-runtime/dev/runtime_service.md @@ -113,15 +113,19 @@ logging.getLogger('qiskit_ibm_runtime').setLevel(logging.WARNING) ## Classes -| | | -| ---------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------- | -| [`QiskitRuntimeService`](qiskit_ibm_runtime.QiskitRuntimeService "qiskit_ibm_runtime.QiskitRuntimeService")(\[channel, token, url, ...]) | Class for interacting with the Qiskit Runtime service. | -| [`Estimator`](qiskit_ibm_runtime.Estimator "qiskit_ibm_runtime.Estimator") | alias of `EstimatorV1` | -| [`Sampler`](qiskit_ibm_runtime.Sampler "qiskit_ibm_runtime.Sampler") | alias of `SamplerV1` | -| [`Session`](qiskit_ibm_runtime.Session "qiskit_ibm_runtime.Session")(\[service, backend, max\_time]) | Class for creating a Qiskit Runtime session. | -| [`IBMBackend`](qiskit_ibm_runtime.IBMBackend "qiskit_ibm_runtime.IBMBackend")(configuration, service, api\_client) | Backend class interfacing with an IBM Quantum backend. | -| [`RuntimeJob`](qiskit_ibm_runtime.RuntimeJob "qiskit_ibm_runtime.RuntimeJob")(backend, api\_client, ...\[, ...]) | Representation of a runtime program execution. | -| [`RuntimeOptions`](qiskit_ibm_runtime.RuntimeOptions "qiskit_ibm_runtime.RuntimeOptions")(\[backend, image, log\_level, ...]) | Class for representing generic runtime execution options. | -| [`RuntimeEncoder`](qiskit_ibm_runtime.RuntimeEncoder "qiskit_ibm_runtime.RuntimeEncoder")(\*\[, skipkeys, ensure\_ascii, ...]) | JSON Encoder used by runtime service. | -| [`RuntimeDecoder`](qiskit_ibm_runtime.RuntimeDecoder "qiskit_ibm_runtime.RuntimeDecoder")(\*args, \*\*kwargs) | JSON Decoder used by runtime service. | +| | | +| ---------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------- | +| [`QiskitRuntimeService`](qiskit_ibm_runtime.QiskitRuntimeService "qiskit_ibm_runtime.QiskitRuntimeService")(\[channel, token, url, ...]) | Class for interacting with the Qiskit Runtime service. | +| [`Estimator`](qiskit_ibm_runtime.Estimator "qiskit_ibm_runtime.Estimator") | alias of [`EstimatorV1`](qiskit_ibm_runtime.EstimatorV1 "qiskit_ibm_runtime.estimator.EstimatorV1") | +| [`EstimatorV1`](qiskit_ibm_runtime.EstimatorV1 "qiskit_ibm_runtime.EstimatorV1")(\[backend, session, options]) | Class for interacting with Qiskit Runtime Estimator primitive service. | +| [`EstimatorV2`](qiskit_ibm_runtime.EstimatorV2 "qiskit_ibm_runtime.EstimatorV2")(\[backend, session, options]) | Class for interacting with Qiskit Runtime Estimator primitive service. | +| [`Sampler`](qiskit_ibm_runtime.Sampler "qiskit_ibm_runtime.Sampler") | alias of [`SamplerV1`](qiskit_ibm_runtime.SamplerV1 "qiskit_ibm_runtime.sampler.SamplerV1") | +| [`SamplerV1`](qiskit_ibm_runtime.SamplerV1 "qiskit_ibm_runtime.SamplerV1")(\[backend, session, options]) | Class for interacting with Qiskit Runtime Sampler primitive service. | +| [`SamplerV2`](qiskit_ibm_runtime.SamplerV2 "qiskit_ibm_runtime.SamplerV2")(\[backend, session, options]) | Class for interacting with Qiskit Runtime Sampler primitive service. | +| [`Session`](qiskit_ibm_runtime.Session "qiskit_ibm_runtime.Session")(\[service, backend, max\_time]) | Class for creating a Qiskit Runtime session. | +| [`IBMBackend`](qiskit_ibm_runtime.IBMBackend "qiskit_ibm_runtime.IBMBackend")(configuration, service, api\_client) | Backend class interfacing with an IBM Quantum backend. | +| [`RuntimeJob`](qiskit_ibm_runtime.RuntimeJob "qiskit_ibm_runtime.RuntimeJob")(backend, api\_client, ...\[, ...]) | Representation of a runtime program execution. | +| [`RuntimeOptions`](qiskit_ibm_runtime.RuntimeOptions "qiskit_ibm_runtime.RuntimeOptions")(\[backend, image, log\_level, ...]) | Class for representing generic runtime execution options. | +| [`RuntimeEncoder`](qiskit_ibm_runtime.RuntimeEncoder "qiskit_ibm_runtime.RuntimeEncoder")(\*\[, skipkeys, ensure\_ascii, ...]) | JSON Encoder used by runtime service. | +| [`RuntimeDecoder`](qiskit_ibm_runtime.RuntimeDecoder "qiskit_ibm_runtime.RuntimeDecoder")(\*args, \*\*kwargs) | JSON Decoder used by runtime service. | diff --git a/public/api/qiskit-ibm-runtime/dev/objects.inv b/public/api/qiskit-ibm-runtime/dev/objects.inv index 7955550577cc18f376005307a05eac03ee8a24ad..0e15902a7537d25c434ee6b341d98decc855dce3 100644 GIT binary patch literal 62148 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⪻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�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 Lk|_VVM%?~if$q37 diff --git a/public/images/api/qiskit-ibm-runtime/dev/fake_provider-1_02.png b/public/images/api/qiskit-ibm-runtime/dev/fake_provider-1_02.png index b459e020d71dded7e335109fc9c8c82865b7baf3..ba2b63ef0c0dd05f8cea9e32e5026ec6d13f92e2 100644 GIT binary patch literal 14759 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 literal 14931 zcmeHuXH->Lx8+sK!ZMZ$WkM+BA_7VfC5jl)OU@vY6amQ@Bpb@IKm@%?j!Mo-kQ_=8 zBukPEDmkkp$vwB<``-8ZNB8UQF?x*dFW*B?@INABD2!(T1P#ofqphnems1-31LhWlKXl$E!956xpkGR%VuVX2#ckcQCNA zHMX=6;1T8#IP&`qJ3A{|QC?p2f4_jo(#D9ld_Y4PH~Gct(q&r;WwRXlv&O^Gn+-QE zp`AaYax-+i%Spq}er5G*%j0Htrnl?QGpbxyJY%)SQSl{zKydooy|z*{^L~=C2Co7e z4b{BcWMnVvpEw~Gc+?{3lb7^R{Edm+UxTkr+}M!r>h5vVx`-aU;ho6b*ZCZtw1LjS zqRA=ux|&Y~-#a4~PYLRKZ>Lah-BYo)TZ2`#cv03-C`a!9*Vq5B1La-y>xH>_d3l?Y z)a&XEC=`W57kyb&b#%g`s&Xtg@Tn`L>4@(?dGq~0ezs=K8Xuldd7l|~AYz!;ZvOGr z`)*CBh_YaatghRPAJuqyVP>Q=H{&218xs>#OpJ6ud&~0Ia@OVyBl!y#E^r<{uHq}P zlH=v&#jGMiq4=D;WgY45y}2fk|J=)$FX>c$Z;SkKLD}$=mqUas)og6i|J<@K)^@O# zMlbVaP3y48mmMA+mXeom`TX`l){Xju7hmCw&;6>$933Bj>COFZEmtfH+3`ZOhOfQl z_R~X(GZS4`=!`pdJa5l39SyN8dQ5FI6AU}$rb)M(=oIN69IUFVtK;87p?p03({2Wu zl$6q7Z5Y$eo%*^1qodps5)$kj9MXAKqQ)($+LiC#J)+8n2+C#{)%h0}7cVU@pRgNJ z$TIKvu)TjB<)Z@b(3)qTG*BHBWfbl-Kp!kxSukB5)m>HUcx65_5Mr4q9l&GbSZtNG z*kM_m;xdtY@&4BR4e}Dp(fFg%<2I*l5U`DM>y0(*ZiY*;vZ|7je`;plI6$kctZaDq zn9ctCm#fSDydIqVY3xUi$ZX%fogVG6)XUml=#ouMa9>^+X-SLl=haO;<+h;WzLP=` z{*{ey>z9Dyr3?4Bv8v&2$BrFi+_x`juG^)qsG!w*kAO;{v;Euha%uXVyLZPw4YcTb zG^ZO>H6^NY-=D_TvTfH3t#+9#jC=IxSM2xMsezit09|*^keWlZg`p_l>Ax9R4<9?G zG~S-2oTgJ~H`nDTmUE3l;fko)tBiEq4Ayut*6z6&AfA%zmp9PF+pVk;Qs_VL`UYl=-k?tQDh&67EZ3|fb-s?Nk z80Skuc>DHeb*C1SZ64U4`Dr(WlB$R;G^`GM*4o;-qe?#FRLU@72LYCcT z+fK}kG%H`fPL1O0KYwct<>Ou|J9`46-^)=^bv< z^%tF&zLt~pJR}<&ub!r3<2cBcbMm_fB2P)`Ur{%F)@qN4O*AfwMrLtyaY@nb##;Gn z!o<{p63x=Qh0(FHAttqUG?T&X!x zHSLNy)3V5b+3wre3{fCLc&tp&K_MZb`Nc)kPp|K_oG9qru={rIT1h<$MQvb&jZft$Q?O)VqWsTTTXLS8K+1QbW zmOg*VtvJh`qLGg5v}J4H zNmDd!=R;-@rK$j4b;M8Q(gKYJjFw85sI9Gi6=9L6n&f{?Uw>wKu4i<5xRD-hSQE_2 z$EQ%`e>B6g@umL7{=UAU`>gJds7^O;9zJzS2QlQ&czK{b^@4-LtMrTvV7DNR9uN@V zJU#SmdfINkh|T$idzObE{`HrFl$6)TO`F)YcQ=3g^5y-)%;@;yNLPOL>{y%rwkP%@ zO^S=N<5|u#CSl?(YClR0&dsF1(rh6)tb)TDytU!tEqcdmbQ zG)Xl{tu1>L5#_UAEH+HcQHqYYk4@FiH+l2t7Ey<>Kq`6jXV0F^e&MF^^Ye3YaWx=6 zsWjB)Uw-+ey~r(pE3@$Lv_$o^@aIucS=Zif1m;Q6an60cy-_DjKeWy@r(6*-FfcHl zo9LoP?>%7>5Ae|}b}tmaBxK&MQWGMij!kjPpB?W&Y1Bn2rc)6DV773eUGQ+)sI+i6asc#g!(TP#ZYp zw(Ci8<8B0i-B;#~z{|J~AHF0nKJ)aDOrXNG!jB*IVxpsOjJ3WT=_xKYX-Q21?3#Y- ztJs>p4KR_=b^UrT&u;jjuCA_=lM|<~u!erQPcv$#baFOI z+J%c3t2#QaoH=u5p`&NTp>3I+ot+aA)ZN_;@>CDRO-tbiDa^#(2|*qk8>>1M5Eho= z$F1&fBEcaSs(|`J*z6FPd9%K+cr0K_!?Dx)zFQcuWec;gf_Zypy-<&9)O{A`OTFd3 zL~5vB(?vmY{#L@0Ib_2;m>y`Wgf1O%9N? zpFTY+C^%X8<@Kh$;?9}juHR@hCE#?H)0Cn3>e5uOkfqLi@Olbmt9tDAzyKX*8VHm! z(C2zaTN7Y?vG=nF3k%C$A&XFp;^o<6yVOBfXiDzxMZlEI>lHh?>|32t(DKHdaoB|6q6VgAL7;v-U&*MK=Qx=<(UlKbws52L zukGLF=F%SB8TpWs)EFl(O-Cht8X9_pHd|4E<@3B;krnD9RVqx_`gKuwNJxlDQ@r9e zaaLAVT6!7-g_4}qX{!g4tFqm`6%<)ZL_}oa(|y+I&kuM_N^Y%Ln8=^xnm)n9!O4lE zrp=bOwY4qGc3860u(wKPX30gXD=scMCLfZ6)~;Jec+aBXelds479JY5o79+rnh^F2 zI&&;uqaZCGUYU1LX*xPOBlS`D8yXw!``&G*DV;uj>)^qIPwDjMuV0^~DXFMDJ$dqE zru(upYTDdH3PAHP8{4^td&Zv>QRnG+YQn#0hk^HFDkzVdYN84!f1Bum182k>CsYg#W2qG_E$Sc* zg#OFP`A~^aFDfe1%rfzF%jeO~8)|*2Kg-?sKVTf}sR|D~Jrxxd9}AkdQ-{xln7SdQirB^)ier==fJ#?hU0EI<4HdDKB>N#YSr7$^ zFg%{!^8uANnTX%r_ktj(e%{I)k8piD!bpN}`F{RE??APy`3u?tJGck!DIX=THuv=W z5Mh;WduB3?8=pRU6uExWZ-+te5XI~(sQCU)J@xhV>1}518AiUK42R_91E>iRHxRKT6;?=m9`sM9!Xj)pKL=(MJt}h$9AGQSXdG4b8 zetB*#J4ycY(YXyWGBV!O;rffLg`d?oGU{q>fTOn^6>nuG%|n|%2Lw)QTmM!*=!K+P z$M7$yv}LB@}?ls{&patqQO0L)IxHL)Z@;8u3%t$<-m>wNPlW-!YkM zJ7~A`{p;vF{KJnwt4t_gLZ;+jZ$mL5a8F9xEbnCq`1r$ECH%kuna@X89PY@4i4LPI zaZgI)!A}(?C>dsL>C*m06$9FkHN2A(cnFW;1f{XiWzH)ePH$urmhVNX4XAhnDr-M9 z4#X1I!Gq7AJD_susZUUBSC*W*9DCe|RpQN$0G?fiBG&+5yo843ey)b+(U`3E%;3mU zu=o0Wdyy`j`E1N(CG^G)IVGN~PbW2jO_nfh?W z(io)^RDG4HCAZ)Iid~0!_AtznBevFfWPoxkvT8cqy ztFfA9FrK8;!O6)qUHAEzBP52bE*Na&BWemuPs{5j$AF_vFF?GMF!^zoz?)Kxa9eFSTNL&5B7ev`Bw&~ii+Cc)kQ~0B@cs@~Rq4u>PkVBRlZQtxt#~Dm zSiexNG8ky&npyw9w>8R**H(v%yBr6JCQSa#n{z%>ec(gK`U95T*FdTU-M=bBwHCPahh|uO|=NR_rgAG+w zr49nJz&oC5e0Xv7%?{tjh6cE&r?>1mcHXk!>z@tyCuBJZ-|359FHQOFx|VG>GzNsLCqu zMse`v*1;5IO~QfkNMd$?_n1~b<>WeYBvYc;aZ)Et!b9ik)vN5UHf`G$Kn25#QW^!# zXR0%nJK!g2t!LcvDh2(N*Yzw1*n`bvO;>WK-FW@SFB`XR<(VpaLZ?4{`t-U-DCCi4@v<6S1x5F5 zS=q?qWO2)IV;nmTaG;E=@IQLRuqPHej2M&KB$j@s!6;L3buEAieuOi}O9BtCKJZ^eU*d|81X5 z5kTrkC64B&PoFdkZoc&9r$>WyCrbHowZFJ}*G-q0VY#+(5MAsva9rp^MH7=m6f!Ce z?%B7Q83?DOu@3v;h709B`x}9Y>_4;=IzUcEy{=!}qS@82uHNo_6CM%BdufEyj6 z?HbTxr&4c#vWi-LyhTlbbLHjZ^8u{xX-Eh+4SwPiUtf7o<)>YF_R8?(9VWYv(ugMn zZ#WsL-*MLt=0$UXlP&Cy)@)PI95}3g;o&?qK!q}xCUGp$l2f2JMV?uQZ8M(#)?Zmw z^@Mui{P}p0CCz+?6gSk1;_KCrego+IlwU?qZGBOgg?WlHMQxWmw zu&|_~S6*GB!{|XDkazjZn{6=Q9z}0@GRVfpmSs1r1Up8Wu9(#Nv_D+()AXiT*?lO{rg+m?H;8ysFw%BdSkaq2J`$`p z{g7NABw$3P9o5WyR9x)g`QWF|pFiJ}@SJ<0`1|Kg+~ zi7Eh%GoglCWgwe=OevO<|WhKy@}9wuu0QnVc5!7Uyq@z7M&+?adB+zU^7hb0FWRA&+*~`8fr^7QD>n1 z0%21=Lq>9Qb4!=)hW1oK@HB$pYhBCF$q^mb?F2bD)olM!FV;9hH@oU}+OUws2 zcO0IsdWifI{5U^n50CF}Sf}qxEIlhQK=t9cJ}&~Z>|@zEG@>Z}|Mm4h-vJIkWD+rj z4jee(zsE&o!0AWFzt^gr`x(xa{_EuS^`wx~-ZtdI$_s3zpJq9sh`abf^ z-cznQZu0=@EPzRhPN62@6t66MCO(?nt|Tkq=!dum39m5BpwS`v{2o6(Kto|c$Kfe; z7~NYxgbXa3-bkt2l^5{~4{pMgI&tIu@3e;MAc2{&j5;oK39v%v`ThVx9U0U&sIWL* zL>bM=gLb;?GCNjJXP2hZlw)P;xzh@sA2|2tjh-SmqNX9Mj#d~8CmANCkkSw(lCQlT)eBu zwf^}9n7Lt4$x*n}yt|;y`odY*EW~&&TAUC=$LI>3v?t(sn8IhGN2A;Tf@D#(Z1iGI z_hT5r>TX`IkJxnSPWgDW*JlmTYHA`b7OXw6{j&)P33;fxS@xr93~J83qBp-pvUn_6 zuV-LLGO7#zQI??QIYmS+!_-qpOOOCAoN6QxgZgF_mbII$?!u|)V6U2;=t{y_lAF?- zvP{*9_J{IAcBhW*u)K-!h+}11v$;eNLSp%8Db9miN)p~lI{aWXq~%F($~0DntCavO zrANnwJ4=za@jC8%8NHaR$p7uA=Fs=Ay_y+@52?lzow>vuSZ>gcESSjY-HMl%k_|qd z+m}mp?>{CXI0`-{qCcvqPL%P={GjtlLYy7kAqZwp(DaFkrNq;3b2{I#D*U#jwpQws z)SGUJmG4pLHoB8aMhG=pD>o#Tuc^Xj%B;(NS5>8q<>wxs6Wz<7Vxwb3dJ%F?oA-;V zl5{6(p!UbUzbpN?vkaCI@d?XrEz-C=_5I^I26eA} zX9#g8tOB41U(4R=f|Wz)*|n8JCAZh%j5F%Cy=*hvxOp@2zt|;@5aCqC6Tz=9$*z89 zUl%fuI6jMR7C`$Lm#}AeeWJ4oqx-Ey@ZlK@)-rxQ3cZ#DwX6>G2tH=uWmp?J z{837=8ooQ!U&j4@WU$3MhMZsJ4m@jMjA&dT^C5Vw2|D##Q{$&okB@bsWtO6y|B9Y; z=5oROK*-+XHy%Y*SvmRHw=3DyDhI@$^v3hMJXV)AUzr8@uu4n}DOugU38=~fk`{ie zN@Z_gvzkebZ@m!IKB6-Xdrc(BG)u^UStgO7~{ndnvUqN5sJ)BQs($)kC zl-KunS;=AQ166pmGuM_(EC83{Anx-^&+7Jv88BCyX3k$cdbjiVD zlaiLUwKAY^-I4w|@ZP3fT>Tv*=KbKbG7kym6o|LjKko3(61h5zgC;!310fm)I0s zg54j1#7(81hpBF*pqhG*8-q?hee^X0eHBjv#Cyg8tRM&~?q?`mKkZCe!)RMUQT`3^ z`;QiTWo2Gp$9?XOwhSZHD9MMW?T0?jjH<}2KP)XlAD!u|UcQvt@+4`7tzMbmXrf}z zf{632eS&fv&t-SG(ij~2oZjKRUrY_)U0Ca<9r9VMIB%o+=*8z8 z+*VocROj@y>Z9d*a{C^Rp&QK;G^&JV0Vpi@kt5Y-RM${$d3~m@iA8G?QE}PxQ-;&j z!0=dGMjo66W(~M0@f&#d=&?8t9U!9$kWme!O|!Z*D1jFCQ&=#h#ERqSy#& zKjvwDBeQQ-=42R1PvocF9BL{meM38}n3&lpR-4y)?@Us9dt$3Ew|vIu-Iv#$X`HwA zwn_;s9X${7o~8HqS`->%R15+-KoLl_w33q37)^-Ba1bP>U`S1UfA=F{$qyJw;DBDb z7@&C7o1bUS_AUR}%NWIa_t$o|Oxy?d$T?)8sO$F^U#B zFn6VZGeg(t(~wQ&L;dSp7`CxA!Rm|z>feBlAZ2%9dN_*o@}b1=bchKafjfp5nAx6& z+*WRdR)T!Vqshq$mhFBL7G@66tA;qOK{}a$rJAEhwMW!0zM`_y#wsf&1Bl++-)~@1 zG;b(iKcbT1Fs^Bf0X$_D6}yT&=+D>}FW#?F^=B!6H}CtHzig~Cx3To?+dXLLHRd~7 z+O}vr2BB%b$I;QTcW}^X$IhKK5HQTz11Cg4D&_%x)v$b|-8S<$ZVp>tKD5^8l%(3} zTh=>}Jjb;2?D#Ram*1EB{Q1EtxOGA3sP6{notkcx7mIvtDrEineDB1B1%!k6GX(fr3Be*|J6kwI-~QCPCp!`qvG;5GvbAA~gg^)ddk z-L@l5oVLJ&3?!_;)z?4m{PkBo1k8_J*|>2dvzGZV+@^Ne$3YlZtSNv)XNV&o03Zcu z&q-B<{qkc2n10m@Ek!vn0|e@+rRkV^^By1&CvK zj1m$(uub2d{8F+m7UNfj-33m5TH0-yW^E0B{P|}vQiR--EN5jpP9lg*L>WTz4j|EH z?E!>0(0CayF-h~$?^`N=w{ZiX+-EqDheSo&I}v*Wc$Z9GUM{X<^Yinw2P#kkgP<~} zB375m6=VD>fgv>zCT5U$JWdwyeFrch$A>|MGQ*4@a7uDGhvY(sZb?b|k_Vtw)Pg$H zlxf-1eahMH>&sjXG-#_)x@9daEDQpiWXT*32}2BqT6**USSqBH08Ul_c|^_;4s6EF zuh&Q$PtO&%k)GTv}TC5fEg34ilYD6?xq1smCD+ z%yzv@}o%(_r*La{7O6W3>RuG=&D2 z#qiR@8bjNK2yvgsQ><*4Ob&uEjuB{hhJ8cb#yvE2N)W+w}ag+<|v z+Qk4T)#Byfk6`xaW%Bp56i|sN=*nOuma2(czcu=CWEUFa71^X&qmo{Z@WUNG0b!Y* zpqZ73_QK3G z6&(7gu#E-w)ff^rnkT$k5P@sn?r$13_yp259i?x*xQ>I2Quq zHigMp(VWBv&J_g-(B1i!#mO3s>KacJOvyEZF$9Q8?#gKA=koXWH=HP((^1ZMFekfU zXO|hoclAyXxCm*yz}MlAaQ)^PRdpom^Sqk+g1#Oshq9KI7P689Gk$O9dOR$D1UKYT zPAPxh4sKR9qcS%=<|CMSOHxn!Kqj*?3}uNnKtFCHd~k#lk#&&mfaxKWO_TSLx1*$s z5+At0CGv-vOlH*J=HZ~-**}OoeTznSX!S>58XZf8w=v4DaqoM&13rV2p$ZU5Z{VZ& zvZ2$iZe#g7txp42(QqbXa=2Y4B9*i(h?Rkk?s3=eR$UmZlyixA%spclV^7A3(U6n@ zl&gT~a7UGzs%cHWwP%%Z*FuceW8}uq-#->^j>f=lT8l%kC^s`3_kj}O_vkxKlZibf z4Lm4i48OttLQ&rWe~m`M7&|5H`nyh5$lL9yP0D!dW;A2F96HPw-mtDjNd{H-#~n7bl>Lj&1tw2p{Y^0aTg+pu_-LHGC+3 zBu(Mqg&;A-@CMwn@__QJxxTTvn}O&;8h01uI$~@NqA4y6h&QDZT!6Ee#(jFT?r4l65 zDsHv+n9O>Ly4-sL9xTspjQ$)U!o4)6oxqW_#PdRQt@pYMl9IvbCDg8b&t@GUh=Z02 zkM-nsqd^mK=>Ia66wT(Je*QVQ?BTu;_=rKUaoUf-a11@^lwO(#2Z;}*&*oBC%WEbV zhzmjAQw#BJFgBMH{ZTtYaOA-_w>=nrfIymSFO-AN85n@i`SuHXFJlZmlld|YZ*Q8{3o9MXBsAhos zJ_!mk#u%b30&lc^5Tezv+iK7Z*st-mIro~p8u^^T9s$EZ zF4e?9fL1VOj1tl;kma{DVzkMuq34D|C$^+R$(;1Y@C+ zV(mvi3;?VI@%&-=xm*)@81shkG}!%jF){{D4c2wA@@l*&A;lkl_=|Mu0z+&IL4P!P z&A`VWK2TL|-&C*v5pD3EoqyOSX&b_3#+jNuP@k9gJh>Z=XOxiv@G` zIXo4db4?x~JpilpIOZbhTST=?SWNzGuZ$or=_CwPcLNXF8 zC%X>T7=qEBos5iqky6riOfKnr*LvU8a!s8>!H+Y>FpRaWtpEl}21tGq@l#_I;bzF< zGRBYIrkT#oPwN@fUF}m_m0vzsr-5Dc%oWFA%^_jooYGEKZmXDZxc@R}nkQgFa*vop zavSKV2qqjn!`WLn0z=(~~_tt!9E# zFsMYISDSwJ62H79KvC>gZneQHutm}=B101x`ss9+cnpXapQ;uhwyJWEP)W0Mo|eSh zs)ziuRT7AK@?jGUGM$Fwjqb04L4c-7YHQTfDN6 z1V1<)lOJUK6@1*vE;j~i&`t)~FWbF1zClSziA+P@dQp0R2aYLVlm!L_ zsYGP#03ONgpyNbm0;F0zqBZeyM(jH7qvGnL2{{pnjOOIa%Ghaic6B`Mz4_Z=ldC0b zJmc3d6OKnvWQBY4!*@JlEgz1_k;Cll7f4GL{d`r3EMjM2OpZ)sf$Qzpnwk7@J;ufZ z?%yw;>}Kl+{UaY2@Pkf9Z(Z%$y_Q;>_QAC>?9$TGjffobaR+XI`^3Zq7X2hGEe#xR zx?EyK5lX|ZT`XM32WXP(jtP1)#*Cqt5lmS`p#)RG^%n)-7FUP*anGu_>gQd<1TaK( zCA&~>2R=uGL9J)EZr$3kEW)NfI-I?{5^eH2;Q8DH86or?VUgG%JivN6xV^%m6AO^qx+`2!poW-R&LEf(!5uX)fAINL#@cbmaPkpQ+ zoy#k0TtWr3U2$3rDNR_J0kYT;LO!k;pP#rh-VHRbWb{Hbk?IMIjjMVv5MP=k+Y!m zN5DRPJIqtyKjJh69=L!)yC8Qy^{n2V{|3%+sOta# diff --git a/scripts/api-html-artifacts.json b/scripts/api-html-artifacts.json index d231a37f538..bccd0c08753 100644 --- a/scripts/api-html-artifacts.json +++ b/scripts/api-html-artifacts.json @@ -33,7 +33,7 @@ "0.7": "https://ibm.box.com/shared/static/t2vuik7bqboata3i34r4a83baabo95xn.zip" }, "qiskit-ibm-runtime": { - "dev": "https://ibm.box.com/shared/static/o5uk88cicxk1rettbb5n0lcpva3q2otq.zip", + "dev": "https://ibm.box.com/shared/static/pbq3c1ba7uyj6wl4e9kil3bsa2dnd2x8.zip", "0.21": "https://ibm.box.com/shared/static/p5nc95ypavdaq3sk8g1ebm3h4bc1a846.zip", "0.20": "https://ibm.box.com/shared/static/0bcr09epud50i3czdx791iagumrf5bjz.zip", "0.19": "https://ibm.box.com/shared/static/ojpnzc71aex4d8itnktwbp9m7l15nazs.zip", From 8ba20e127c3c75fe8336a8136cef9f8688597695 Mon Sep 17 00:00:00 2001 From: Eric Arellano <14852634+Eric-Arellano@users.noreply.github.com> Date: Wed, 6 Mar 2024 14:43:13 -0500 Subject: [PATCH 5/9] Fix release note span IDs --- scripts/lib/api/conversionPipeline.ts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/scripts/lib/api/conversionPipeline.ts b/scripts/lib/api/conversionPipeline.ts index da735333f5a..1552a490d49 100644 --- a/scripts/lib/api/conversionPipeline.ts +++ b/scripts/lib/api/conversionPipeline.ts @@ -193,7 +193,9 @@ async function handleReleaseNotesFile( if (!pkg.hasSeparateReleaseNotes) { // Deal with Reno issue: https://github.com/Qiskit/documentation/issues/978 if (pkg.name === "qiskit-ibm-runtime") { - result.markdown = result.markdown.replace("# HACK FOR RENO ISSUE", ""); + result.markdown = result.markdown + .replace("# HACK FOR RENO ISSUE", "") + .replaceAll('id="hack-for-reno-issue-', 'id="release-notes-'); } return pkg.isLatest(); } From 2b8a6749ef259af911d890fc7fcb7265101e5913 Mon Sep 17 00:00:00 2001 From: Eric Arellano <14852634+Eric-Arellano@users.noreply.github.com> Date: Wed, 6 Mar 2024 14:43:45 -0500 Subject: [PATCH 6/9] Regen 0.20.1 --- docs/api/qiskit-ibm-runtime/_package.json | 2 +- docs/api/qiskit-ibm-runtime/_toc.json | 16 + .../qiskit_ibm_runtime.Estimator.md | 2 +- .../qiskit_ibm_runtime.EstimatorV1.md | 143 ++++++ .../qiskit_ibm_runtime.EstimatorV2.md | 127 +++++ .../qiskit_ibm_runtime.Sampler.md | 2 +- .../qiskit_ibm_runtime.SamplerV1.md | 134 +++++ .../qiskit_ibm_runtime.SamplerV2.md | 101 ++++ docs/api/qiskit-ibm-runtime/release-notes.md | 462 ++++++++++++++---- .../api/qiskit-ibm-runtime/runtime_service.md | 26 +- public/api/qiskit-ibm-runtime/objects.inv | Bin 61533 -> 62148 bytes .../qiskit-ibm-runtime/fake_provider-1_02.png | Bin 14386 -> 14418 bytes 12 files changed, 902 insertions(+), 113 deletions(-) create mode 100644 docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.EstimatorV1.md create mode 100644 docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.EstimatorV2.md create mode 100644 docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.SamplerV1.md create mode 100644 docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.SamplerV2.md diff --git a/docs/api/qiskit-ibm-runtime/_package.json b/docs/api/qiskit-ibm-runtime/_package.json index 8b0bcb73ed7..b51f8723928 100644 --- a/docs/api/qiskit-ibm-runtime/_package.json +++ b/docs/api/qiskit-ibm-runtime/_package.json @@ -1,4 +1,4 @@ { "name": "qiskit-ibm-runtime", - "version": "0.21.0" + "version": "0.21.1" } diff --git a/docs/api/qiskit-ibm-runtime/_toc.json b/docs/api/qiskit-ibm-runtime/_toc.json index c48bc1052f5..0e936f3d357 100644 --- a/docs/api/qiskit-ibm-runtime/_toc.json +++ b/docs/api/qiskit-ibm-runtime/_toc.json @@ -8,6 +8,14 @@ "title": "Overview", "url": "/api/qiskit-ibm-runtime/runtime_service" }, + { + "title": "EstimatorV1", + "url": "/api/qiskit-ibm-runtime/qiskit_ibm_runtime.EstimatorV1" + }, + { + "title": "EstimatorV2", + "url": "/api/qiskit-ibm-runtime/qiskit_ibm_runtime.EstimatorV2" + }, { "title": "IBMBackend", "url": "/api/qiskit-ibm-runtime/qiskit_ibm_runtime.IBMBackend" @@ -32,6 +40,14 @@ "title": "RuntimeOptions", "url": "/api/qiskit-ibm-runtime/qiskit_ibm_runtime.RuntimeOptions" }, + { + "title": "SamplerV1", + "url": "/api/qiskit-ibm-runtime/qiskit_ibm_runtime.SamplerV1" + }, + { + "title": "SamplerV2", + "url": "/api/qiskit-ibm-runtime/qiskit_ibm_runtime.SamplerV2" + }, { "title": "Session", "url": "/api/qiskit-ibm-runtime/qiskit_ibm_runtime.Session" diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.Estimator.md b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.Estimator.md index dbd84e07e14..a3c48ac6919 100644 --- a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.Estimator.md +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.Estimator.md @@ -8,5 +8,5 @@ python_api_name: qiskit_ibm_runtime.Estimator # Estimator -alias of `EstimatorV1` +alias of [`EstimatorV1`](qiskit_ibm_runtime.EstimatorV1 "qiskit_ibm_runtime.estimator.EstimatorV1") diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.EstimatorV1.md b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.EstimatorV1.md new file mode 100644 index 00000000000..1b9e1dd18fa --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.EstimatorV1.md @@ -0,0 +1,143 @@ +--- +title: EstimatorV1 +description: API reference for qiskit_ibm_runtime.EstimatorV1 +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.EstimatorV1 +--- + +# EstimatorV1 + + + +`EstimatorV1(backend=None, session=None, options=None)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/estimator.py#L180-L362 "view source code") + +Class for interacting with Qiskit Runtime Estimator primitive service. + +Qiskit Runtime Estimator primitive service estimates expectation values of quantum circuits and observables. + +The [`run()`](#qiskit_ibm_runtime.EstimatorV1.run "qiskit_ibm_runtime.EstimatorV1.run") can be used to submit circuits, observables, and parameters to the Estimator primitive. + +You are encouraged to use [`Session`](qiskit_ibm_runtime.Session "qiskit_ibm_runtime.Session") to open a session, during which you can invoke one or more primitives. Jobs submitted within a session are prioritized by the scheduler. + +Example: + +```python +from qiskit.circuit.library import RealAmplitudes +from qiskit.quantum_info import SparsePauliOp + +from qiskit_ibm_runtime import QiskitRuntimeService, Estimator + +service = QiskitRuntimeService(channel="ibm_cloud") + +psi1 = RealAmplitudes(num_qubits=2, reps=2) + +H1 = SparsePauliOp.from_list([("II", 1), ("IZ", 2), ("XI", 3)]) +H2 = SparsePauliOp.from_list([("IZ", 1)]) +H3 = SparsePauliOp.from_list([("ZI", 1), ("ZZ", 1)]) + +with Session(service=service, backend="ibmq_qasm_simulator") as session: + estimator = Estimator(session=session) + + theta1 = [0, 1, 1, 2, 3, 5] + + # calculate [ ] + psi1_H1 = estimator.run(circuits=[psi1], observables=[H1], parameter_values=[theta1]) + print(psi1_H1.result()) + + # calculate [ , ] + psi1_H23 = estimator.run( + circuits=[psi1, psi1], + observables=[H2, H3], + parameter_values=[theta1]*2 + ) + print(psi1_H23.result()) +``` + +Initializes the Estimator primitive. + +**Parameters** + +* **backend** (`Union`\[`str`, [`IBMBackend`](qiskit_ibm_runtime.IBMBackend "qiskit_ibm_runtime.ibm_backend.IBMBackend"), `None`]) – Backend to run the primitive. This can be a backend name or an [`IBMBackend`](qiskit_ibm_runtime.IBMBackend "qiskit_ibm_runtime.IBMBackend") instance. If a name is specified, the default account (e.g. `QiskitRuntimeService()`) is used. + +* **session** (`Union`\[[`Session`](qiskit_ibm_runtime.Session "qiskit_ibm_runtime.session.Session"), `str`, [`IBMBackend`](qiskit_ibm_runtime.IBMBackend "qiskit_ibm_runtime.ibm_backend.IBMBackend"), `None`]) – + + Session in which to call the primitive. + + If both `session` and `backend` are specified, `session` takes precedence. If neither is specified, and the primitive is created inside a [`qiskit_ibm_runtime.Session`](qiskit_ibm_runtime.Session "qiskit_ibm_runtime.Session") context manager, then the session is used. Otherwise if IBM Cloud channel is used, a default backend is selected. + +* **options** (`Union`\[`Dict`, [`Options`](qiskit_ibm_runtime.options.Options "qiskit_ibm_runtime.options.options.Options"), `None`]) – Primitive options, see `Options` for detailed description. The `backend` keyword is still supported but is deprecated. + +## Attributes + + + +### options + +Return options values for the sampler. :rtype: `Options` :returns: options + + + +### session + +Return session used by this primitive. + +**Return type** + +`Optional`\[[`Session`](qiskit_ibm_runtime.Session "qiskit_ibm_runtime.session.Session")] + +**Returns** + +Session used by this primitive, or `None` if session is not used. + + + +### version + +`= 1` + +## Methods + +### run + + + +`run(circuits, observables, parameter_values=None, **kwargs)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/estimator.py#L257-L291 "view source code") + +Submit a request to the estimator primitive. + +**Parameters** + +* **circuits** (*QuantumCircuit | Sequence\[QuantumCircuit]*) – a (parameterized) `QuantumCircuit` or a list of (parameterized) `QuantumCircuit`. +* **observables** (*Sequence\[BaseOperator | str] | BaseOperator | str*) – Observable objects. +* **parameter\_values** (*Sequence\[float] | Sequence\[Sequence\[float]] | None*) – Concrete parameters to be bound. +* **\*\*kwargs** – Individual options to overwrite the default primitive options. These include the runtime options in [`qiskit_ibm_runtime.RuntimeOptions`](qiskit_ibm_runtime.RuntimeOptions "qiskit_ibm_runtime.RuntimeOptions"). + +**Return type** + +[RuntimeJob](qiskit_ibm_runtime.RuntimeJob "qiskit_ibm_runtime.RuntimeJob") + +**Returns** + +Submitted job. The result of the job is an instance of `qiskit.primitives.EstimatorResult`. + +**Raises** + +**ValueError** – Invalid arguments are given. + +### set\_options + + + +`set_options(**fields)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/base_primitive.py#L402-L410 "view source code") + +Set options values for the sampler. + +**Parameters** + +**\*\*fields** – The fields to update the options + +**Return type** + +`None` + diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.EstimatorV2.md b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.EstimatorV2.md new file mode 100644 index 00000000000..7e56473f2f6 --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.EstimatorV2.md @@ -0,0 +1,127 @@ +--- +title: EstimatorV2 +description: API reference for qiskit_ibm_runtime.EstimatorV2 +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.EstimatorV2 +--- + +# EstimatorV2 + + + +`EstimatorV2(backend=None, session=None, options=None)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/estimator.py#L48-L177 "view source code") + +Class for interacting with Qiskit Runtime Estimator primitive service. + +Qiskit Runtime Estimator primitive service estimates expectation values of quantum circuits and observables. + +The [`run()`](#qiskit_ibm_runtime.EstimatorV2.run "qiskit_ibm_runtime.EstimatorV2.run") can be used to submit circuits, observables, and parameters to the Estimator primitive. + +Following construction, an estimator is used by calling its [`run()`](#qiskit_ibm_runtime.EstimatorV2.run "qiskit_ibm_runtime.EstimatorV2.run") method with a list of PUBs (Primitive Unified Blocs). Each PUB contains four values that, together, define a computation unit of work for the estimator to complete: + +* a single `QuantumCircuit`, possibly parametrized, whose final state we define as $\psi(\theta)$, +* one or more observables (specified as any `ObservablesArrayLike`, including `Pauli`, `SparsePauliOp`, `str`) that specify which expectation values to estimate, denoted $H_j$, and +* a collection parameter value sets to bind the circuit against, $\theta_k$. +* an optional target precision for expectation value estimates. + +Here is an example of how the estimator is used. + +```python +from qiskit.circuit.library import RealAmplitudes +from qiskit.quantum_info import SparsePauliOp +from qiskit.transpiler.preset_passmanagers import generate_preset_pass_manager +from qiskit_ibm_runtime import QiskitRuntimeService, EstimatorV2 as Estimator + +service = QiskitRuntimeService() +backend = service.least_busy(operational=True, simulator=False) + +psi = RealAmplitudes(num_qubits=2, reps=2) +hamiltonian = SparsePauliOp.from_list([("II", 1), ("IZ", 2), ("XI", 3)]) +theta = [0, 1, 1, 2, 3, 5] + +pm = generate_preset_pass_manager(backend=backend, optimization_level=1) +isa_psi = pm.run(psi) +isa_observables = hamiltonian.apply_layout(isa_psi.layout) + +estimator = Estimator(backend=backend) + +# calculate [ ] +job = estimator.run([(isa_psi, isa_observables, [theta])]) +pub_result = job.result()[0] +print(f"Expectation values: {pub_result.data.evs}") +``` + +Initializes the Estimator primitive. + +**Parameters** + +* **backend** (`Union`\[`str`, [`IBMBackend`](qiskit_ibm_runtime.IBMBackend "qiskit_ibm_runtime.ibm_backend.IBMBackend"), `None`]) – Backend to run the primitive. This can be a backend name or an [`IBMBackend`](qiskit_ibm_runtime.IBMBackend "qiskit_ibm_runtime.IBMBackend") instance. If a name is specified, the default account (e.g. `QiskitRuntimeService()`) is used. + +* **session** (`Union`\[[`Session`](qiskit_ibm_runtime.Session "qiskit_ibm_runtime.session.Session"), `str`, [`IBMBackend`](qiskit_ibm_runtime.IBMBackend "qiskit_ibm_runtime.ibm_backend.IBMBackend"), `None`]) – + + Session in which to call the primitive. + + If both `session` and `backend` are specified, `session` takes precedence. If neither is specified, and the primitive is created inside a [`qiskit_ibm_runtime.Session`](qiskit_ibm_runtime.Session "qiskit_ibm_runtime.Session") context manager, then the session is used. Otherwise if IBM Cloud channel is used, a default backend is selected. + +* **options** (`Union`\[`Dict`, [`EstimatorOptions`](qiskit_ibm_runtime.options.EstimatorOptions "qiskit_ibm_runtime.options.estimator_options.EstimatorOptions"), `None`]) – Primitive options, see `Options` for detailed description. The `backend` keyword is still supported but is deprecated. + +**Raises** + +**NotImplementedError** – If “q-ctrl” channel strategy is used. + +## Attributes + + + +### options + +Return options + +**Return type** + +`TypeVar`(`OptionsT`, bound= `BaseOptions`) + + + +### session + +Return session used by this primitive. + +**Return type** + +`Optional`\[[`Session`](qiskit_ibm_runtime.Session "qiskit_ibm_runtime.session.Session")] + +**Returns** + +Session used by this primitive, or `None` if session is not used. + + + +### version + +`= 2` + +## Methods + +### run + + + +`run(pubs, *, precision=None)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/estimator.py#L137-L154 "view source code") + +Submit a request to the estimator primitive. + +**Parameters** + +* **pubs** (*Iterable\[EstimatorPubLike]*) – An iterable of pub-like (primitive unified bloc) objects, such as tuples `(circuit, observables)` or `(circuit, observables, parameter_values)`. +* **precision** (*float | None*) – The target precision for expectation value estimates of each run Estimator Pub that does not specify its own precision. If None the estimator’s default precision value will be used. + +**Return type** + +RuntimeJobV2 + +**Returns** + +Submitted job. + diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.Sampler.md b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.Sampler.md index 407298c158e..b3d8fab78d7 100644 --- a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.Sampler.md +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.Sampler.md @@ -8,5 +8,5 @@ python_api_name: qiskit_ibm_runtime.Sampler # Sampler -alias of `SamplerV1` +alias of [`SamplerV1`](qiskit_ibm_runtime.SamplerV1 "qiskit_ibm_runtime.sampler.SamplerV1") diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.SamplerV1.md b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.SamplerV1.md new file mode 100644 index 00000000000..72375847baf --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.SamplerV1.md @@ -0,0 +1,134 @@ +--- +title: SamplerV1 +description: API reference for qiskit_ibm_runtime.SamplerV1 +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.SamplerV1 +--- + +# SamplerV1 + + + +`SamplerV1(backend=None, session=None, options=None)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/sampler.py#L140-L290 "view source code") + +Class for interacting with Qiskit Runtime Sampler primitive service. + +Qiskit Runtime Sampler primitive service calculates quasi-probability distribution of bitstrings from quantum circuits. + +The [`run()`](#qiskit_ibm_runtime.SamplerV1.run "qiskit_ibm_runtime.SamplerV1.run") method can be used to submit circuits and parameters to the Sampler primitive. + +You are encouraged to use [`Session`](qiskit_ibm_runtime.Session "qiskit_ibm_runtime.Session") to open a session, during which you can invoke one or more primitives. Jobs submitted within a session are prioritized by the scheduler. + +Example: + +```python +from qiskit.circuit import QuantumCircuit, QuantumRegister, ClassicalRegister +from qiskit_ibm_runtime import QiskitRuntimeService, Session, Sampler + +service = QiskitRuntimeService(channel="ibm_cloud") + +# Bell Circuit +qr = QuantumRegister(2, name="qr") +cr = ClassicalRegister(2, name="cr") +qc = QuantumCircuit(qr, cr, name="bell") +qc.h(qr[0]) +qc.cx(qr[0], qr[1]) +qc.measure(qr, cr) + +with Session(service, backend="ibmq_qasm_simulator") as session: + sampler = Sampler(session=session) + + job = sampler.run(qc, shots=1024) + print(f"Job ID: {job.job_id()}") + print(f"Job result: {job.result()}") + + # You can run more jobs inside the session +``` + +Initializes the Sampler primitive. + +**Parameters** + +* **backend** (`Union`\[`str`, [`IBMBackend`](qiskit_ibm_runtime.IBMBackend "qiskit_ibm_runtime.ibm_backend.IBMBackend"), `None`]) – Backend to run the primitive. This can be a backend name or an [`IBMBackend`](qiskit_ibm_runtime.IBMBackend "qiskit_ibm_runtime.IBMBackend") instance. If a name is specified, the default account (e.g. `QiskitRuntimeService()`) is used. + +* **session** (`Union`\[[`Session`](qiskit_ibm_runtime.Session "qiskit_ibm_runtime.session.Session"), `str`, [`IBMBackend`](qiskit_ibm_runtime.IBMBackend "qiskit_ibm_runtime.ibm_backend.IBMBackend"), `None`]) – + + Session in which to call the primitive. + + If both `session` and `backend` are specified, `session` takes precedence. If neither is specified, and the primitive is created inside a [`qiskit_ibm_runtime.Session`](qiskit_ibm_runtime.Session "qiskit_ibm_runtime.Session") context manager, then the session is used. Otherwise if IBM Cloud channel is used, a default backend is selected. + +* **options** (`Union`\[`Dict`, [`Options`](qiskit_ibm_runtime.options.Options "qiskit_ibm_runtime.options.options.Options"), `None`]) – Primitive options, see `Options` for detailed description. The `backend` keyword is still supported but is deprecated. + +## Attributes + + + +### options + +Return options values for the sampler. :rtype: `Options` :returns: options + + + +### session + +Return session used by this primitive. + +**Return type** + +`Optional`\[[`Session`](qiskit_ibm_runtime.Session "qiskit_ibm_runtime.session.Session")] + +**Returns** + +Session used by this primitive, or `None` if session is not used. + + + +### version + +`= 1` + +## Methods + +### run + + + +`run(circuits, parameter_values=None, **kwargs)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/sampler.py#L210-L238 "view source code") + +Submit a request to the sampler primitive. + +**Parameters** + +* **circuits** (*QuantumCircuit | Sequence\[QuantumCircuit]*) – A (parameterized) `QuantumCircuit` or a list of (parameterized) `QuantumCircuit`. +* **parameter\_values** (*Sequence\[float] | Sequence\[Sequence\[float]] | None*) – Concrete parameters to be bound. +* **\*\*kwargs** – Individual options to overwrite the default primitive options. These include the runtime options in [`qiskit_ibm_runtime.RuntimeOptions`](qiskit_ibm_runtime.RuntimeOptions "qiskit_ibm_runtime.RuntimeOptions"). + +**Return type** + +[RuntimeJob](qiskit_ibm_runtime.RuntimeJob "qiskit_ibm_runtime.RuntimeJob") + +**Returns** + +Submitted job. The result of the job is an instance of `qiskit.primitives.SamplerResult`. + +**Raises** + +**ValueError** – Invalid arguments are given. + +### set\_options + + + +`set_options(**fields)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/base_primitive.py#L402-L410 "view source code") + +Set options values for the sampler. + +**Parameters** + +**\*\*fields** – The fields to update the options + +**Return type** + +`None` + diff --git a/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.SamplerV2.md b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.SamplerV2.md new file mode 100644 index 00000000000..dbf5e02f780 --- /dev/null +++ b/docs/api/qiskit-ibm-runtime/qiskit_ibm_runtime.SamplerV2.md @@ -0,0 +1,101 @@ +--- +title: SamplerV2 +description: API reference for qiskit_ibm_runtime.SamplerV2 +in_page_toc_min_heading_level: 1 +python_api_type: class +python_api_name: qiskit_ibm_runtime.SamplerV2 +--- + +# SamplerV2 + + + +`SamplerV2(backend=None, session=None, options=None)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/sampler.py#L46-L137 "view source code") + +Class for interacting with Qiskit Runtime Sampler primitive service. + +This class supports version 2 of the Sampler interface, which uses different input and output formats than version 1. + +Qiskit Runtime Sampler primitive returns the sampled result according to the specified output type. For example, it returns a bitstring for each shot if measurement level 2 (bits) is requested. + +The [`run()`](#qiskit_ibm_runtime.SamplerV2.run "qiskit_ibm_runtime.SamplerV2.run") method can be used to submit circuits and parameters to the Sampler primitive. + +Initializes the Sampler primitive. + +**Parameters** + +* **backend** (`Union`\[`str`, [`IBMBackend`](qiskit_ibm_runtime.IBMBackend "qiskit_ibm_runtime.ibm_backend.IBMBackend"), `None`]) – Backend to run the primitive. This can be a backend name or an [`IBMBackend`](qiskit_ibm_runtime.IBMBackend "qiskit_ibm_runtime.IBMBackend") instance. If a name is specified, the default account (e.g. `QiskitRuntimeService()`) is used. + +* **session** (`Union`\[[`Session`](qiskit_ibm_runtime.Session "qiskit_ibm_runtime.session.Session"), `str`, [`IBMBackend`](qiskit_ibm_runtime.IBMBackend "qiskit_ibm_runtime.ibm_backend.IBMBackend"), `None`]) – + + Session in which to call the primitive. + + If both `session` and `backend` are specified, `session` takes precedence. If neither is specified, and the primitive is created inside a [`qiskit_ibm_runtime.Session`](qiskit_ibm_runtime.Session "qiskit_ibm_runtime.Session") context manager, then the session is used. Otherwise if IBM Cloud channel is used, a default backend is selected. + +* **options** (`Union`\[`Dict`, [`SamplerOptions`](qiskit_ibm_runtime.options.SamplerOptions "qiskit_ibm_runtime.options.sampler_options.SamplerOptions"), `None`]) – Primitive options, see `Options` for detailed description. The `backend` keyword is still supported but is deprecated. + +**Raises** + +**NotImplementedError** – If “q-ctrl” channel strategy is used. + +## Attributes + + + +### options + +`SamplerOptions` + +Return options + +**Return type** + +`TypeVar`(`OptionsT`, bound= `BaseOptions`) + + + +### session + +Return session used by this primitive. + +**Return type** + +`Optional`\[[`Session`](qiskit_ibm_runtime.Session "qiskit_ibm_runtime.session.Session")] + +**Returns** + +Session used by this primitive, or `None` if session is not used. + + + +### version + +`= 2` + +## Methods + +### run + + + +`run(pubs, *, shots=None)` [GitHub](https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.21/qiskit_ibm_runtime/sampler.py#L97-L124 "view source code") + +Submit a request to the estimator primitive. + +**Parameters** + +* **pubs** (*Iterable\[SamplerPubLike]*) – An iterable of pub-like objects. For example, a list of circuits or tuples `(circuit, parameter_values)`. +* **shots** (*int | None*) – The total number of shots to sample for each sampler pub that does not specify its own shots. If `None`, the primitive’s default shots value will be used, which can vary by implementation. + +**Return type** + +RuntimeJobV2 + +**Returns** + +Submitted job. The result of the job is an instance of `qiskit.primitives.containers.PrimitiveResult`. + +**Raises** + +**ValueError** – Invalid arguments are given. + diff --git a/docs/api/qiskit-ibm-runtime/release-notes.md b/docs/api/qiskit-ibm-runtime/release-notes.md index fb1c8661c3c..c329fee08b4 100644 --- a/docs/api/qiskit-ibm-runtime/release-notes.md +++ b/docs/api/qiskit-ibm-runtime/release-notes.md @@ -8,20 +8,276 @@ in_page_toc_max_heading_level: 2 # Qiskit Runtime IBM Client 0.21 release notes - + +## 0.21.1 + + + +### Bug Fixes + +* Fixed a bug where `SamplerV1` and `EstimatorV1` could not be imported because of an issue with how the aliases were defined. + + + + + +## 0.21.0 + + + +### Upgrade Notes + +* Circuits that do not match the target hardware definition are no longer supported by Qiskit Runtime primitives, unless `channel_strategy="q-ctrl"` is used. See the transpilation documentation ([transpile](/transpile)) for instructions to transform circuits and the primitive examples ([run/primitives-examples](/run/primitives-examples)) to see this coupled with operator transformations. + + + +### Deprecation Notes + +* In a future release, `backend` will be a required parameter for [`qiskit_ibm_runtime.Sampler`](qiskit_ibm_runtime.Sampler "qiskit_ibm_runtime.Sampler"), and [`qiskit_ibm_runtime.Estimator`](qiskit_ibm_runtime.Estimator "qiskit_ibm_runtime.Estimator") if `session` is not specified, even when using the `ibm_cloud` channel. + + It will also be a required parameter for [`qiskit_ibm_runtime.Session`](qiskit_ibm_runtime.Session "qiskit_ibm_runtime.Session") and `qiskit_ibm_runtime.Batch`. + + + + + +### Bug Fixes + +* Fixed an issue with the [`IBMBackend.target`](qiskit_ibm_runtime.IBMBackend#target "qiskit_ibm_runtime.IBMBackend.target") where it would incorrectly exclude supported control flow operations (`IfElseOp`, `WhileLoop`, etc.) if a given backend supported them. + +* Fixed a bug where retrieving a fake backend through `FakeProviderForBackendV2.backend()` would result in a type error. + +* Fixes the check for ISA circuits to allow pulse gates and circuits that don’t have layout. + + + + + +## 0.20.0 + + + +### New Features + +* Add `dd_barrier` optional input to [`PadDynamicalDecoupling`](qiskit_ibm_runtime.transpiler.passes.scheduling.PadDynamicalDecoupling "qiskit_ibm_runtime.transpiler.passes.scheduling.PadDynamicalDecoupling") constructor to identify portions of the circuit to apply dynamical decoupling (dd) on selectively. If this string is contained in the label of a barrier in the circuit, dd is applied on the delays ending with it (on the same qubits); otherwise, it is not applied. + +* Python 3.12 is now supported. + +* Sessions will now be started with a new `/sessions` endpoint that allows for different execution modes. Batch mode is now supported through `Batch`, and [`Session`](qiskit_ibm_runtime.Session "qiskit_ibm_runtime.Session") will work the same as way as before. Please see [run/sessions](/run/sessions) for more information. + + Note that `Session` and `Batch` created from `qiskit-ibm-runtime` prior to this release will no longer be supported after March 31, 2024. Please update your `qiskit-ibm-runtime` version as soon as possible before this date. + + Also note that using simulators with sessions is no longer supported. Users can still start sessions with simulators without any issues but a session will not actually be created. There will be no session ID. + +* Sessions started with [`qiskit_ibm_runtime.IBMBackend.open_session()`](qiskit_ibm_runtime.IBMBackend#open_session "qiskit_ibm_runtime.IBMBackend.open_session") will use the new `/sessions` endpoint. + + The sessions functionality will not change but note that `backend.run()` sessions prior to this release will no longer be supported after March 31, 2024. Please update your `qiskit-ibm-runtime` version as soon as possible before this date. + + + + + +### Deprecation Notes + +* Circuits that do not match the target hardware definition will no longer be supported after March 1, 2024. See the transpilation documentation ([transpile](/transpile)) for instructions to transform circuits and the primitive examples ([run/primitives-examples](/run/primitives-examples)) to see this coupled with operator transformations. + + + + + +### Bug Fixes + +* Fix assignment of instruction durations when scheduling circuits with control flow. Prior to this fix, the indices for instructions on inner blocks were not mapped to the physical indices in the outer dag. + + + +### Other Notes + +* The `InstructionDurations` durations input is now also required for the constructor of `PadDelay`. + + + + + +## 0.19.1 + + + + + +### Upgrade Notes + +* Extend `DynamicCircuitInstructions.from_backend()` to extract and patch durations from both `BackendV1` and `BackendV2` objects. Also add `DynamicCircuitInstructions.from_target()` to use a `Target` object instead. + + + + + +### Bug Fixes + +* Fix the patching of `DynamicCircuitInstructions` for instructions with durations that are not in units of `dt`. + + + + + +## 0.19.0 + + + + + +### Upgrade Notes + +* qiskit-ibm-provider is pending deprecation, and therefore will no longer be a dependency for qiskit-ibm-runtime. + +* qiskit-ibm-runtime is now compatible with Qiskit versions >= 0.45, including 1.0.0. + + + + + +## 0.18.0 + + + + + +### New Features + +* Added a new parameter, dynamic\_circuits to [`backends()`](qiskit_ibm_runtime.QiskitRuntimeService#backends "qiskit_ibm_runtime.QiskitRuntimeService.backends") to allow filtering of backends that support dynamic circuits. + +* Added `max_time` parameter to `IBMBackend.open_session()`. + +* Added a method `RuntimeJob.queue_info()` to get the queue information from the backend. This feature was transferred from `qiskit_ibm_provider`. + + + + + +### Deprecation Notes + +* [`runtime()`](qiskit_ibm_runtime.QiskitRuntimeService#runtime "qiskit_ibm_runtime.QiskitRuntimeService.runtime") has been deprecated. + + + + + +### Bug Fixes + +* Many methods in [`RuntimeJob`](qiskit_ibm_runtime.RuntimeJob "qiskit_ibm_runtime.RuntimeJob") require retrieving the job data from the API with `job_get()`. This API call will now exclude the `params` field by default because they are only necessary in [`qiskit_ibm_runtime.RuntimeJob.inputs()`](qiskit_ibm_runtime.RuntimeJob#inputs "qiskit_ibm_runtime.RuntimeJob.inputs"). + + + + + +## 0.17.0 + + + + + +### New Features + +* Added a new method [`properties()`](qiskit_ibm_runtime.RuntimeJob#properties "qiskit_ibm_runtime.RuntimeJob.properties") which returns the backend properties of the job at the time the job was run. + +* [`details()`](qiskit_ibm_runtime.Session#details "qiskit_ibm_runtime.Session.details") has a new field, activated\_at, which is the timestamp of when the session was changed to active. + + + + + +### Bug Fixes + +* When a single backend is retrieved with the `instance` parameter, + + ```python + service.backend('ibm_torino', instance='ibm-q/open/main') + # raises error if torino is not in ibm-q/open/main but in a different instance + # the user has access to + service = QiskitRuntimeService(channel="ibm_quantum", instance="ibm-q/open/main") + service.backend('ibm_torino') # raises the same error + ``` + + if the backend is not in the instance but in a different one the user has access to, an error will be raised. The same error will now be raised if an instance is passed in at initialization and then a backend not in that instance is retrieved. + +* Fixed an issue where retrieving the coupling\_map of some backends would result in a NameError. + + + + + +## 0.16.0 + + + +### Prelude + +Sessions are now thread-safe and allow for multiple concurrent interactive experiments. + + + + + +### New Features + +* Sessions are now thread-safe. + + + + + +### Upgrade Notes + +* Methods related to using custom programs are removed. + + + + + +### Bug Fixes + +* If a cloud instance that is `q-ctrl` enabled is used while `q-ctrl` is not passed in as the `channel_strategy`, an error will be raised. + + + +# Qiskit Runtime IBM Client 0.21 release notes + + + + + +## 0.21.1 + + + + + +### Bug Fixes + +* Fixed a bug where `SamplerV1` and `EstimatorV1` could not be imported because of an issue with how the aliases were defined. + + + + + ## 0.15.0 + + ### Prelude Sessions are now thread-safe and allow for multiple concurrent interactive experiments. + + ### New Features * A new module [`qiskit_ibm_runtime.fake_provider`](fake_provider#module-qiskit_ibm_runtime.fake_provider "qiskit_ibm_runtime.fake_provider"), has been added to provide access to a series of fake backends derived from snapshots of IBM Quantum devices. This functionality was originally provided by the `qiskit.providers.fake_provider` module, but will soon be deprecated in favor of [`qiskit_ibm_runtime.fake_provider`](fake_provider#module-qiskit_ibm_runtime.fake_provider "qiskit_ibm_runtime.fake_provider"). @@ -83,10 +339,12 @@ Sessions are now thread-safe and allow for multiple concurrent interactive exper The sessions functionality will not change but note that `backend.run()` sessions prior to this release will no longer be supported after March 31, 2024. Please update your `qiskit-ibm-runtime` version as soon as possible before this date. -* This release add a version 2 of the primitives - `SamplerV2` and `EstimatorV2`. The emphasis of this new version is on performing vectorized calls to the primitive `run()` methods, so that sweeps over parameter value sets and observables can be efficiently specified. The sampler has also been changed to return the outputs (e.g. bitstrings) from every shot, rather than providing a counts-like return. See the [Migration Guide](/api/migration-guides/v2-primitives) for more details on the changes and migration steps. +* This release add a version 2 of the primitives - [`SamplerV2`](qiskit_ibm_runtime.SamplerV2 "qiskit_ibm_runtime.SamplerV2") and [`EstimatorV2`](qiskit_ibm_runtime.EstimatorV2 "qiskit_ibm_runtime.EstimatorV2"). The emphasis of this new version is on performing vectorized calls to the primitive `run()` methods, so that sweeps over parameter value sets and observables can be efficiently specified. The sampler has also been changed to return the outputs (e.g. bitstrings) from every shot, rather than providing a counts-like return. See the [Migration Guide](/api/migration-guides/v2-primitives) for more details on the changes and migration steps. + + ### Upgrade Notes * Methods related to using custom programs are removed. @@ -101,6 +359,8 @@ Sessions are now thread-safe and allow for multiple concurrent interactive exper + + ### Deprecation Notes * Usage of the `~/.qiskit/qiskitrc.json` file for account information has been deprecated. Use `~/.qiskit/qiskit-ibm.json` instead. @@ -115,6 +375,8 @@ Sessions are now thread-safe and allow for multiple concurrent interactive exper + + ### Bug Fixes * Fixed an issue where canceled and failed jobs would return an invalid result that resulted in a type error, preventing the actual error from being returned to the user. @@ -157,6 +419,8 @@ Sessions are now thread-safe and allow for multiple concurrent interactive exper + + ### Other Notes * Added migration code for running `backend.run` in qiskit\_ibm\_runtime instead of in qiskit\_ibm\_provider. @@ -165,13 +429,13 @@ Sessions are now thread-safe and allow for multiple concurrent interactive exper - + ## 0.14.0 - + ### New Features @@ -181,7 +445,7 @@ Sessions are now thread-safe and allow for multiple concurrent interactive exper - + ### Deprecation Notes @@ -189,13 +453,13 @@ Sessions are now thread-safe and allow for multiple concurrent interactive exper - + ## 0.13.0 - + ### New Features @@ -207,7 +471,7 @@ Sessions are now thread-safe and allow for multiple concurrent interactive exper - + ### Upgrade Notes @@ -217,7 +481,7 @@ Sessions are now thread-safe and allow for multiple concurrent interactive exper - + ### Bug Fixes @@ -227,13 +491,13 @@ Sessions are now thread-safe and allow for multiple concurrent interactive exper - + ## 0.12.2 - + ### New Features @@ -247,7 +511,7 @@ Sessions are now thread-safe and allow for multiple concurrent interactive exper - + ### Upgrade Notes @@ -255,13 +519,13 @@ Sessions are now thread-safe and allow for multiple concurrent interactive exper - + ## 0.12.1 - + ### New Features @@ -273,7 +537,7 @@ Sessions are now thread-safe and allow for multiple concurrent interactive exper - + ### Bug Fixes @@ -287,13 +551,13 @@ Sessions are now thread-safe and allow for multiple concurrent interactive exper - + ## 0.12.0 - + ### New Features @@ -314,7 +578,7 @@ Sessions are now thread-safe and allow for multiple concurrent interactive exper - + ### Upgrade Notes @@ -322,7 +586,7 @@ Sessions are now thread-safe and allow for multiple concurrent interactive exper - + ### Deprecation Notes @@ -330,7 +594,7 @@ Sessions are now thread-safe and allow for multiple concurrent interactive exper - + ### Bug Fixes @@ -342,13 +606,13 @@ Sessions are now thread-safe and allow for multiple concurrent interactive exper - + ## 0.11.3 - + ### New Features @@ -364,13 +628,13 @@ Sessions are now thread-safe and allow for multiple concurrent interactive exper - + ## 0.11.2 - + ### New Features @@ -393,7 +657,7 @@ Sessions are now thread-safe and allow for multiple concurrent interactive exper - + ### Bug Fixes @@ -403,13 +667,13 @@ Sessions are now thread-safe and allow for multiple concurrent interactive exper - + ## 0.11.1 - + ### Deprecation Notes @@ -417,13 +681,13 @@ Sessions are now thread-safe and allow for multiple concurrent interactive exper - + ## 0.11.0 - + ### New Features @@ -445,7 +709,7 @@ Sessions are now thread-safe and allow for multiple concurrent interactive exper - + ### Upgrade Notes @@ -455,7 +719,7 @@ Sessions are now thread-safe and allow for multiple concurrent interactive exper - + ### Deprecation Notes @@ -463,13 +727,13 @@ Sessions are now thread-safe and allow for multiple concurrent interactive exper - + ## 0.10.0 - + ### New Features @@ -477,7 +741,7 @@ Sessions are now thread-safe and allow for multiple concurrent interactive exper - + ### Upgrade Notes @@ -485,7 +749,7 @@ Sessions are now thread-safe and allow for multiple concurrent interactive exper - + ### Bug Fixes @@ -495,13 +759,13 @@ Sessions are now thread-safe and allow for multiple concurrent interactive exper - + ## 0.9.4 - + ### New Features @@ -509,7 +773,7 @@ Sessions are now thread-safe and allow for multiple concurrent interactive exper - + ### Upgrade Notes @@ -517,7 +781,7 @@ Sessions are now thread-safe and allow for multiple concurrent interactive exper - + ### Deprecation Notes @@ -531,7 +795,7 @@ Sessions are now thread-safe and allow for multiple concurrent interactive exper - + ### Bug Fixes @@ -539,13 +803,13 @@ Sessions are now thread-safe and allow for multiple concurrent interactive exper - + ## 0.9.3 - + ### Upgrade Notes @@ -555,7 +819,7 @@ Sessions are now thread-safe and allow for multiple concurrent interactive exper - + ### Bug Fixes @@ -563,13 +827,13 @@ Sessions are now thread-safe and allow for multiple concurrent interactive exper - + ## 0.9.2 - + ### New Features @@ -579,7 +843,7 @@ Sessions are now thread-safe and allow for multiple concurrent interactive exper - + ### Upgrade Notes @@ -591,7 +855,7 @@ Sessions are now thread-safe and allow for multiple concurrent interactive exper - + ### Bug Fixes @@ -605,13 +869,13 @@ Sessions are now thread-safe and allow for multiple concurrent interactive exper - + ## 0.9.1 - + ### Upgrade Notes @@ -631,7 +895,7 @@ Sessions are now thread-safe and allow for multiple concurrent interactive exper - + ### Deprecation Notes @@ -639,7 +903,7 @@ Sessions are now thread-safe and allow for multiple concurrent interactive exper - + ### Bug Fixes @@ -647,7 +911,7 @@ Sessions are now thread-safe and allow for multiple concurrent interactive exper - + ### Other Notes @@ -655,13 +919,13 @@ Sessions are now thread-safe and allow for multiple concurrent interactive exper - + ## 0.9.0 - + ### Upgrade Notes @@ -671,7 +935,7 @@ Sessions are now thread-safe and allow for multiple concurrent interactive exper - + ### Bug Fixes @@ -681,13 +945,13 @@ Sessions are now thread-safe and allow for multiple concurrent interactive exper - + ## 0.8.0 - + ### New Features @@ -699,7 +963,7 @@ Sessions are now thread-safe and allow for multiple concurrent interactive exper - + ### Upgrade Notes @@ -707,7 +971,7 @@ Sessions are now thread-safe and allow for multiple concurrent interactive exper - + ### Deprecation Notes @@ -715,7 +979,7 @@ Sessions are now thread-safe and allow for multiple concurrent interactive exper - + ### Bug Fixes @@ -723,13 +987,13 @@ Sessions are now thread-safe and allow for multiple concurrent interactive exper - + ## 0.7.0 - + ### New Features @@ -741,7 +1005,7 @@ Sessions are now thread-safe and allow for multiple concurrent interactive exper - + ### Upgrade Notes @@ -749,7 +1013,7 @@ Sessions are now thread-safe and allow for multiple concurrent interactive exper - + ### Deprecation Notes @@ -761,7 +1025,7 @@ Sessions are now thread-safe and allow for multiple concurrent interactive exper - + ### Bug Fixes @@ -775,7 +1039,7 @@ Sessions are now thread-safe and allow for multiple concurrent interactive exper - + ### Upgrade Notes @@ -787,7 +1051,7 @@ Sessions are now thread-safe and allow for multiple concurrent interactive exper - + ### Deprecation Notes @@ -803,7 +1067,7 @@ Sessions are now thread-safe and allow for multiple concurrent interactive exper - + ### Prelude @@ -811,7 +1075,7 @@ There are significant changes to how primitives are invoked within a session, an - + ### New Features @@ -872,7 +1136,7 @@ There are significant changes to how primitives are invoked within a session, an - + ### Upgrade Notes @@ -897,7 +1161,7 @@ There are significant changes to how primitives are invoked within a session, an - + ### Deprecation Notes @@ -917,7 +1181,7 @@ There are significant changes to how primitives are invoked within a session, an - + ### Bug Fixes @@ -925,13 +1189,13 @@ There are significant changes to how primitives are invoked within a session, an - + ## 0.6.0 - + ### Upgrade Notes @@ -950,13 +1214,13 @@ There are significant changes to how primitives are invoked within a session, an - + ## 0.5.0 - + ### Prelude @@ -964,7 +1228,7 @@ This release leverages the API and Queue enhancements to become more runtime ses - + ### New Features @@ -979,7 +1243,7 @@ This release leverages the API and Queue enhancements to become more runtime ses - + ### Upgrade Notes @@ -1038,13 +1302,13 @@ This release leverages the API and Queue enhancements to become more runtime ses - + ## 0.4.0 - + ### Upgrade Notes @@ -1131,7 +1395,7 @@ This release leverages the API and Queue enhancements to become more runtime ses - + ### Deprecation Notes @@ -1139,13 +1403,13 @@ This release leverages the API and Queue enhancements to become more runtime ses - + ## 0.3.0 - + ### Upgrade Notes @@ -1153,7 +1417,7 @@ This release leverages the API and Queue enhancements to become more runtime ses - + ### Deprecation Notes @@ -1161,7 +1425,7 @@ This release leverages the API and Queue enhancements to become more runtime ses - + ### Bug Fixes @@ -1169,13 +1433,13 @@ This release leverages the API and Queue enhancements to become more runtime ses - + ## 0.2.0 - + ### New Features @@ -1183,7 +1447,7 @@ This release leverages the API and Queue enhancements to become more runtime ses - + ### Bug Fixes @@ -1191,13 +1455,13 @@ This release leverages the API and Queue enhancements to become more runtime ses - + ## 0.1.0 - + ### Prelude @@ -1209,7 +1473,7 @@ qiskit-ibm-runtime is not included as part of Qiskit meta package and thereby yo - + ### New Features @@ -1217,7 +1481,7 @@ qiskit-ibm-runtime is not included as part of Qiskit meta package and thereby yo - + ### Upgrade Notes @@ -1280,13 +1544,13 @@ qiskit-ibm-runtime is not included as part of Qiskit meta package and thereby yo - + ## 0.1.0rc2 - + ### New Features @@ -1294,7 +1558,7 @@ qiskit-ibm-runtime is not included as part of Qiskit meta package and thereby yo - + ### Bug Fixes @@ -1304,13 +1568,13 @@ qiskit-ibm-runtime is not included as part of Qiskit meta package and thereby yo - + ## 0.1.0rc1 - + ### New Features @@ -1320,7 +1584,7 @@ qiskit-ibm-runtime is not included as part of Qiskit meta package and thereby yo - + ### Upgrade Notes @@ -1332,7 +1596,7 @@ qiskit-ibm-runtime is not included as part of Qiskit meta package and thereby yo - + ### Bug Fixes diff --git a/docs/api/qiskit-ibm-runtime/runtime_service.md b/docs/api/qiskit-ibm-runtime/runtime_service.md index 1e9f64301d4..664a47067eb 100644 --- a/docs/api/qiskit-ibm-runtime/runtime_service.md +++ b/docs/api/qiskit-ibm-runtime/runtime_service.md @@ -113,15 +113,19 @@ logging.getLogger('qiskit_ibm_runtime').setLevel(logging.WARNING) ## Classes -| | | -| ---------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------- | -| [`QiskitRuntimeService`](qiskit_ibm_runtime.QiskitRuntimeService "qiskit_ibm_runtime.QiskitRuntimeService")(\[channel, token, url, ...]) | Class for interacting with the Qiskit Runtime service. | -| [`Estimator`](qiskit_ibm_runtime.Estimator "qiskit_ibm_runtime.Estimator") | alias of `EstimatorV1` | -| [`Sampler`](qiskit_ibm_runtime.Sampler "qiskit_ibm_runtime.Sampler") | alias of `SamplerV1` | -| [`Session`](qiskit_ibm_runtime.Session "qiskit_ibm_runtime.Session")(\[service, backend, max\_time]) | Class for creating a Qiskit Runtime session. | -| [`IBMBackend`](qiskit_ibm_runtime.IBMBackend "qiskit_ibm_runtime.IBMBackend")(configuration, service, api\_client) | Backend class interfacing with an IBM Quantum backend. | -| [`RuntimeJob`](qiskit_ibm_runtime.RuntimeJob "qiskit_ibm_runtime.RuntimeJob")(backend, api\_client, ...\[, ...]) | Representation of a runtime program execution. | -| [`RuntimeOptions`](qiskit_ibm_runtime.RuntimeOptions "qiskit_ibm_runtime.RuntimeOptions")(\[backend, image, log\_level, ...]) | Class for representing generic runtime execution options. | -| [`RuntimeEncoder`](qiskit_ibm_runtime.RuntimeEncoder "qiskit_ibm_runtime.RuntimeEncoder")(\*\[, skipkeys, ensure\_ascii, ...]) | JSON Encoder used by runtime service. | -| [`RuntimeDecoder`](qiskit_ibm_runtime.RuntimeDecoder "qiskit_ibm_runtime.RuntimeDecoder")(\*args, \*\*kwargs) | JSON Decoder used by runtime service. | +| | | +| ---------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------- | +| [`QiskitRuntimeService`](qiskit_ibm_runtime.QiskitRuntimeService "qiskit_ibm_runtime.QiskitRuntimeService")(\[channel, token, url, ...]) | Class for interacting with the Qiskit Runtime service. | +| [`Estimator`](qiskit_ibm_runtime.Estimator "qiskit_ibm_runtime.Estimator") | alias of [`EstimatorV1`](qiskit_ibm_runtime.EstimatorV1 "qiskit_ibm_runtime.estimator.EstimatorV1") | +| [`EstimatorV1`](qiskit_ibm_runtime.EstimatorV1 "qiskit_ibm_runtime.EstimatorV1")(\[backend, session, options]) | Class for interacting with Qiskit Runtime Estimator primitive service. | +| [`EstimatorV2`](qiskit_ibm_runtime.EstimatorV2 "qiskit_ibm_runtime.EstimatorV2")(\[backend, session, options]) | Class for interacting with Qiskit Runtime Estimator primitive service. | +| [`Sampler`](qiskit_ibm_runtime.Sampler "qiskit_ibm_runtime.Sampler") | alias of [`SamplerV1`](qiskit_ibm_runtime.SamplerV1 "qiskit_ibm_runtime.sampler.SamplerV1") | +| [`SamplerV1`](qiskit_ibm_runtime.SamplerV1 "qiskit_ibm_runtime.SamplerV1")(\[backend, session, options]) | Class for interacting with Qiskit Runtime Sampler primitive service. | +| [`SamplerV2`](qiskit_ibm_runtime.SamplerV2 "qiskit_ibm_runtime.SamplerV2")(\[backend, session, options]) | Class for interacting with Qiskit Runtime Sampler primitive service. | +| [`Session`](qiskit_ibm_runtime.Session "qiskit_ibm_runtime.Session")(\[service, backend, max\_time]) | Class for creating a Qiskit Runtime session. | +| [`IBMBackend`](qiskit_ibm_runtime.IBMBackend "qiskit_ibm_runtime.IBMBackend")(configuration, service, api\_client) | Backend class interfacing with an IBM Quantum backend. | +| [`RuntimeJob`](qiskit_ibm_runtime.RuntimeJob "qiskit_ibm_runtime.RuntimeJob")(backend, api\_client, ...\[, ...]) | Representation of a runtime program execution. | +| [`RuntimeOptions`](qiskit_ibm_runtime.RuntimeOptions "qiskit_ibm_runtime.RuntimeOptions")(\[backend, image, log\_level, ...]) | Class for representing generic runtime execution options. | +| [`RuntimeEncoder`](qiskit_ibm_runtime.RuntimeEncoder "qiskit_ibm_runtime.RuntimeEncoder")(\*\[, skipkeys, ensure\_ascii, ...]) | JSON Encoder used by runtime service. | +| [`RuntimeDecoder`](qiskit_ibm_runtime.RuntimeDecoder "qiskit_ibm_runtime.RuntimeDecoder")(\*args, \*\*kwargs) | JSON Decoder used by runtime service. | diff --git a/public/api/qiskit-ibm-runtime/objects.inv b/public/api/qiskit-ibm-runtime/objects.inv index 7955550577cc18f376005307a05eac03ee8a24ad..0e15902a7537d25c434ee6b341d98decc855dce3 100644 GIT binary patch literal 62148 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⪻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�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 Lk|_VVM%?~if$q37 diff --git a/public/images/api/qiskit-ibm-runtime/fake_provider-1_02.png b/public/images/api/qiskit-ibm-runtime/fake_provider-1_02.png index 56dbf9d0b3d3c03ec8063148550f2744ecb6dcf4..a740f2eb6b2934a9034f98652488d0826a4af1eb 100644 GIT binary patch literal 14418 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 a3sSqo)C_GmP4(a>B(n5{b7^M`ZvQvfEwXI@ From 7671d6cfa59db27a3447e42cc24b27e8b9e6e526 Mon Sep 17 00:00:00 2001 From: Eric Arellano <14852634+Eric-Arellano@users.noreply.github.com> Date: Wed, 6 Mar 2024 16:30:17 -0500 Subject: [PATCH 7/9] Fix release notes --- docs/api/qiskit-ibm-runtime/release-notes.md | 1351 +---------------- .../qiskit-ibm-runtime/fake_provider-1_02.png | Bin 14418 -> 14698 bytes 2 files changed, 40 insertions(+), 1311 deletions(-) diff --git a/docs/api/qiskit-ibm-runtime/release-notes.md b/docs/api/qiskit-ibm-runtime/release-notes.md index c329fee08b4..58e74931d0f 100644 --- a/docs/api/qiskit-ibm-runtime/release-notes.md +++ b/docs/api/qiskit-ibm-runtime/release-notes.md @@ -8,31 +8,31 @@ in_page_toc_max_heading_level: 2 # Qiskit Runtime IBM Client 0.21 release notes - + ## 0.21.1 - + ### Bug Fixes * Fixed a bug where `SamplerV1` and `EstimatorV1` could not be imported because of an issue with how the aliases were defined. - + ## 0.21.0 - + ### Upgrade Notes * Circuits that do not match the target hardware definition are no longer supported by Qiskit Runtime primitives, unless `channel_strategy="q-ctrl"` is used. See the transpilation documentation ([transpile](/transpile)) for instructions to transform circuits and the primitive examples ([run/primitives-examples](/run/primitives-examples)) to see this coupled with operator transformations. - + ### Deprecation Notes @@ -40,7 +40,7 @@ in_page_toc_max_heading_level: 2 It will also be a required parameter for [`qiskit_ibm_runtime.Session`](qiskit_ibm_runtime.Session "qiskit_ibm_runtime.Session") and `qiskit_ibm_runtime.Batch`. - + @@ -52,13 +52,13 @@ in_page_toc_max_heading_level: 2 * Fixes the check for ISA circuits to allow pulse gates and circuits that don’t have layout. - + ## 0.20.0 - + ### New Features @@ -76,7 +76,7 @@ in_page_toc_max_heading_level: 2 The sessions functionality will not change but note that `backend.run()` sessions prior to this release will no longer be supported after March 31, 2024. Please update your `qiskit-ibm-runtime` version as soon as possible before this date. - + @@ -84,7 +84,7 @@ in_page_toc_max_heading_level: 2 * Circuits that do not match the target hardware definition will no longer be supported after March 1, 2024. See the transpilation documentation ([transpile](/transpile)) for instructions to transform circuits and the primitive examples ([run/primitives-examples](/run/primitives-examples)) to see this coupled with operator transformations. - + @@ -92,19 +92,19 @@ in_page_toc_max_heading_level: 2 * Fix assignment of instruction durations when scheduling circuits with control flow. Prior to this fix, the indices for instructions on inner blocks were not mapped to the physical indices in the outer dag. - + ### Other Notes * The `InstructionDurations` durations input is now also required for the constructor of `PadDelay`. - + ## 0.19.1 - + @@ -112,7 +112,7 @@ in_page_toc_max_heading_level: 2 * Extend `DynamicCircuitInstructions.from_backend()` to extract and patch durations from both `BackendV1` and `BackendV2` objects. Also add `DynamicCircuitInstructions.from_target()` to use a `Target` object instead. - + @@ -120,13 +120,13 @@ in_page_toc_max_heading_level: 2 * Fix the patching of `DynamicCircuitInstructions` for instructions with durations that are not in units of `dt`. - + ## 0.19.0 - + @@ -136,13 +136,13 @@ in_page_toc_max_heading_level: 2 * qiskit-ibm-runtime is now compatible with Qiskit versions >= 0.45, including 1.0.0. - + ## 0.18.0 - + @@ -154,7 +154,7 @@ in_page_toc_max_heading_level: 2 * Added a method `RuntimeJob.queue_info()` to get the queue information from the backend. This feature was transferred from `qiskit_ibm_provider`. - + @@ -162,7 +162,7 @@ in_page_toc_max_heading_level: 2 * [`runtime()`](qiskit_ibm_runtime.QiskitRuntimeService#runtime "qiskit_ibm_runtime.QiskitRuntimeService.runtime") has been deprecated. - + @@ -170,13 +170,13 @@ in_page_toc_max_heading_level: 2 * Many methods in [`RuntimeJob`](qiskit_ibm_runtime.RuntimeJob "qiskit_ibm_runtime.RuntimeJob") require retrieving the job data from the API with `job_get()`. This API call will now exclude the `params` field by default because they are only necessary in [`qiskit_ibm_runtime.RuntimeJob.inputs()`](qiskit_ibm_runtime.RuntimeJob#inputs "qiskit_ibm_runtime.RuntimeJob.inputs"). - + ## 0.17.0 - + @@ -186,7 +186,7 @@ in_page_toc_max_heading_level: 2 * [`details()`](qiskit_ibm_runtime.Session#details "qiskit_ibm_runtime.Session.details") has a new field, activated\_at, which is the timestamp of when the session was changed to active. - + @@ -206,19 +206,19 @@ in_page_toc_max_heading_level: 2 * Fixed an issue where retrieving the coupling\_map of some backends would result in a NameError. - + ## 0.16.0 - + ### Prelude Sessions are now thread-safe and allow for multiple concurrent interactive experiments. - + @@ -226,7 +226,7 @@ Sessions are now thread-safe and allow for multiple concurrent interactive exper * Sessions are now thread-safe. - + @@ -234,7 +234,7 @@ Sessions are now thread-safe and allow for multiple concurrent interactive exper * Methods related to using custom programs are removed. - + @@ -242,42 +242,30 @@ Sessions are now thread-safe and allow for multiple concurrent interactive exper * If a cloud instance that is `q-ctrl` enabled is used while `q-ctrl` is not passed in as the `channel_strategy`, an error will be raised. - - -# Qiskit Runtime IBM Client 0.21 release notes - - + -## 0.21.1 +## 0.15.0-1 - + ### Bug Fixes -* Fixed a bug where `SamplerV1` and `EstimatorV1` could not be imported because of an issue with how the aliases were defined. +* Reverting 0.15.0 changes to [`from_id()`](qiskit_ibm_runtime.Session#from_id "qiskit_ibm_runtime.Session.from_id") because it was a breaking change without proper deprecation. - + ## 0.15.0 - + -### Prelude - -Sessions are now thread-safe and allow for multiple concurrent interactive experiments. - - - - - ### New Features * A new module [`qiskit_ibm_runtime.fake_provider`](fake_provider#module-qiskit_ibm_runtime.fake_provider "qiskit_ibm_runtime.fake_provider"), has been added to provide access to a series of fake backends derived from snapshots of IBM Quantum devices. This functionality was originally provided by the `qiskit.providers.fake_provider` module, but will soon be deprecated in favor of [`qiskit_ibm_runtime.fake_provider`](fake_provider#module-qiskit_ibm_runtime.fake_provider "qiskit_ibm_runtime.fake_provider"). @@ -313,69 +301,17 @@ Sessions are now thread-safe and allow for multiple concurrent interactive exper * Removed storing result in `RuntimeJob._results`. Instead retrieve results every time the `results()` method is called. -* Sessions are now thread-safe. - -* Added a new method [`properties()`](qiskit_ibm_runtime.RuntimeJob#properties "qiskit_ibm_runtime.RuntimeJob.properties") which returns the backend properties of the job at the time the job was run. - -* [`details()`](qiskit_ibm_runtime.Session#details "qiskit_ibm_runtime.Session.details") has a new field, activated\_at, which is the timestamp of when the session was changed to active. - -* Added a new parameter, dynamic\_circuits to [`backends()`](qiskit_ibm_runtime.QiskitRuntimeService#backends "qiskit_ibm_runtime.QiskitRuntimeService.backends") to allow filtering of backends that support dynamic circuits. - -* Added `max_time` parameter to `IBMBackend.open_session()`. - -* Added a method `RuntimeJob.queue_info()` to get the queue information from the backend. This feature was transferred from `qiskit_ibm_provider`. - -* Add `dd_barrier` optional input to [`PadDynamicalDecoupling`](qiskit_ibm_runtime.transpiler.passes.scheduling.PadDynamicalDecoupling "qiskit_ibm_runtime.transpiler.passes.scheduling.PadDynamicalDecoupling") constructor to identify portions of the circuit to apply dynamical decoupling (dd) on selectively. If this string is contained in the label of a barrier in the circuit, dd is applied on the delays ending with it (on the same qubits); otherwise, it is not applied. - -* Python 3.12 is now supported. - -* Sessions will now be started with a new `/sessions` endpoint that allows for different execution modes. Batch mode is now supported through `Batch`, and [`Session`](qiskit_ibm_runtime.Session "qiskit_ibm_runtime.Session") will work the same as way as before. Please see [run/sessions](/run/sessions) for more information. - - Note that `Session` and `Batch` created from `qiskit-ibm-runtime` prior to this release will no longer be supported after March 31, 2024. Please update your `qiskit-ibm-runtime` version as soon as possible before this date. - - Also note that using simulators with sessions is no longer supported. Users can still start sessions with simulators without any issues but a session will not actually be created. There will be no session ID. - -* Sessions started with [`qiskit_ibm_runtime.IBMBackend.open_session()`](qiskit_ibm_runtime.IBMBackend#open_session "qiskit_ibm_runtime.IBMBackend.open_session") will use the new `/sessions` endpoint. - - The sessions functionality will not change but note that `backend.run()` sessions prior to this release will no longer be supported after March 31, 2024. Please update your `qiskit-ibm-runtime` version as soon as possible before this date. - -* This release add a version 2 of the primitives - [`SamplerV2`](qiskit_ibm_runtime.SamplerV2 "qiskit_ibm_runtime.SamplerV2") and [`EstimatorV2`](qiskit_ibm_runtime.EstimatorV2 "qiskit_ibm_runtime.EstimatorV2"). The emphasis of this new version is on performing vectorized calls to the primitive `run()` methods, so that sweeps over parameter value sets and observables can be efficiently specified. The sampler has also been changed to return the outputs (e.g. bitstrings) from every shot, rather than providing a counts-like return. See the [Migration Guide](/api/migration-guides/v2-primitives) for more details on the changes and migration steps. - - - - - -### Upgrade Notes - -* Methods related to using custom programs are removed. - -* qiskit-ibm-provider is pending deprecation, and therefore will no longer be a dependency for qiskit-ibm-runtime. - -* Extend `DynamicCircuitInstructions.from_backend()` to extract and patch durations from both `BackendV1` and `BackendV2` objects. Also add `DynamicCircuitInstructions.from_target()` to use a `Target` object instead. - -* qiskit-ibm-runtime is now compatible with Qiskit versions >= 0.45, including 1.0.0. - -* Circuits that do not match the target hardware definition are no longer supported by Qiskit Runtime primitives, unless `channel_strategy="q-ctrl"` is used. See the transpilation documentation ([transpile](/transpile)) for instructions to transform circuits and the primitive examples ([run/primitives-examples](/run/primitives-examples)) to see this coupled with operator transformations. - - + - + ### Deprecation Notes * Usage of the `~/.qiskit/qiskitrc.json` file for account information has been deprecated. Use `~/.qiskit/qiskit-ibm.json` instead. -* [`runtime()`](qiskit_ibm_runtime.QiskitRuntimeService#runtime "qiskit_ibm_runtime.QiskitRuntimeService.runtime") has been deprecated. - -* Circuits that do not match the target hardware definition will no longer be supported after March 1, 2024. See the transpilation documentation ([transpile](/transpile)) for instructions to transform circuits and the primitive examples ([run/primitives-examples](/run/primitives-examples)) to see this coupled with operator transformations. - -* In a future release, `backend` will be a required parameter for [`qiskit_ibm_runtime.Sampler`](qiskit_ibm_runtime.Sampler "qiskit_ibm_runtime.Sampler"), and [`qiskit_ibm_runtime.Estimator`](qiskit_ibm_runtime.Estimator "qiskit_ibm_runtime.Estimator") if `session` is not specified, even when using the `ibm_cloud` channel. - - It will also be a required parameter for [`qiskit_ibm_runtime.Session`](qiskit_ibm_runtime.Session "qiskit_ibm_runtime.Session") and `qiskit_ibm_runtime.Batch`. - - + - + ### Bug Fixes @@ -387,1218 +323,11 @@ Sessions are now thread-safe and allow for multiple concurrent interactive exper * The `circuit_indices` and `observable_indices` run inputs for [`Estimator`](qiskit_ibm_runtime.Estimator "qiskit_ibm_runtime.Estimator") and [`Sampler`](qiskit_ibm_runtime.Sampler "qiskit_ibm_runtime.Sampler") have been completely removed. -* Reverting 0.15.0 changes to [`from_id()`](qiskit_ibm_runtime.Session#from_id "qiskit_ibm_runtime.Session.from_id") because it was a breaking change without proper deprecation. - -* If a cloud instance that is `q-ctrl` enabled is used while `q-ctrl` is not passed in as the `channel_strategy`, an error will be raised. - -* When a single backend is retrieved with the `instance` parameter, - - ```python - service.backend('ibm_torino', instance='ibm-q/open/main') - # raises error if torino is not in ibm-q/open/main but in a different instance - # the user has access to - service = QiskitRuntimeService(channel="ibm_quantum", instance="ibm-q/open/main") - service.backend('ibm_torino') # raises the same error - ``` - - if the backend is not in the instance but in a different one the user has access to, an error will be raised. The same error will now be raised if an instance is passed in at initialization and then a backend not in that instance is retrieved. - -* Fixed an issue where retrieving the coupling\_map of some backends would result in a NameError. - -* Many methods in [`RuntimeJob`](qiskit_ibm_runtime.RuntimeJob "qiskit_ibm_runtime.RuntimeJob") require retrieving the job data from the API with `job_get()`. This API call will now exclude the `params` field by default because they are only necessary in [`qiskit_ibm_runtime.RuntimeJob.inputs()`](qiskit_ibm_runtime.RuntimeJob#inputs "qiskit_ibm_runtime.RuntimeJob.inputs"). - -* Fix the patching of `DynamicCircuitInstructions` for instructions with durations that are not in units of `dt`. - -* Fix assignment of instruction durations when scheduling circuits with control flow. Prior to this fix, the indices for instructions on inner blocks were not mapped to the physical indices in the outer dag. - -* Fixed an issue with the [`IBMBackend.target`](qiskit_ibm_runtime.IBMBackend#target "qiskit_ibm_runtime.IBMBackend.target") where it would incorrectly exclude supported control flow operations (`IfElseOp`, `WhileLoop`, etc.) if a given backend supported them. - -* Fixed a bug where retrieving a fake backend through `FakeProviderForBackendV2.backend()` would result in a type error. - -* Fixes the check for ISA circuits to allow pulse gates and circuits that don’t have layout. - - + - + ### Other Notes * Added migration code for running `backend.run` in qiskit\_ibm\_runtime instead of in qiskit\_ibm\_provider. -* The `InstructionDurations` durations input is now also required for the constructor of `PadDelay`. - - - - - -## 0.14.0 - - - - - -### New Features - -* There is a new class, `qiskit_ibm_runtime.Batch` that currently works the same way as [`qiskit_ibm_runtime.Session`](qiskit_ibm_runtime.Session "qiskit_ibm_runtime.Session") but will later be updated to better support submitting multiple jobs at once. - -* Arbitrary keys and values are no longer allowed in `Options`. - - - - - -### Deprecation Notes - -* Custom programs are being deprecated as of qiskit-ibm-runtime 0.14.0 and will be removed on November 27, 2023. Users can instead convert their custom programs to use Qiskit Runtime primitives with Quantum Serverless. Refer to the migration guide for instructions: [https://qiskit-extensions.github.io/quantum-serverless/migration/migration\_from\_qiskit\_runtime\_programs.html](https://qiskit-extensions.github.io/quantum-serverless/migration/migration_from_qiskit_runtime_programs.html) - - - - - -## 0.13.0 - - - - - -### New Features - -* Added a new method, [`details()`](qiskit_ibm_runtime.Session#details "qiskit_ibm_runtime.Session.details") that returns information about a session, including: maximum session time, active time remaining, the current state, and whether or not the session is accepting jobs. - - Also added [`status()`](qiskit_ibm_runtime.Session#status "qiskit_ibm_runtime.Session.status"), which returns the current status of the session. - -* At initialization, if not passed in directly, the default `instance` selected by the provider will be logged at the “INFO” level. When running a job, if the backend selected is not in the default instance but in a different instance the user also has access to, that instance will also be logged. - - - - - -### Upgrade Notes - -* [`qiskit_ibm_runtime.Session.close()`](qiskit_ibm_runtime.Session#close "qiskit_ibm_runtime.Session.close") has been updated to mark a `Session` as no longer accepting new jobs. The session won’t accept more jobs but it will continue to run any queued jobs until they are done or the max time expires. This will also happen automatically when the session context manager is exited. When a session that is not accepting jobs has run out of jobs to run, it’s immediately closed, freeing up the backend to run more jobs rather than wait for the interactive timeout. - - The old close method behavior has been moved to a new method, [`qiskit_ibm_runtime.Session.cancel()`](qiskit_ibm_runtime.Session#cancel "qiskit_ibm_runtime.Session.cancel"), where all queued jobs within a session are cancelled and terminated. - - - - - -### Bug Fixes - -* Fixed a bug where `shots` passed in as a numpy type were not being serialized correctly. - -* Fixed a bug in [`target_history()`](qiskit_ibm_runtime.IBMBackend#target_history "qiskit_ibm_runtime.IBMBackend.target_history") where the datetime parameter was not being used to retrieve backend properties from the specified date. - - - - - -## 0.12.2 - - - - - -### New Features - -* If using a `channel_strategy`, only backends that support that `channel_strategy` will be accessible to the user. - -* Added the option to define a default account in the account json file. To select an account as default, define `set_as_default=True` in `QiskitRuntimeService.save_account()`. - -* Added new method `Session.from_id` which creates a new session with a given id. - -* There will now be a warning if a user submits a job that is predicted to exceed their system execution time monthly quota of 10 minutes. This only applies to jobs run on real hardware in the instance `ibm-q/open/main`. If the job does end up exceeding the quota, it will be canceled. - - - - - -### Upgrade Notes - -* Job error messages now include the error code. Error codes can be found in [errors](/errors). - - - - - -## 0.12.1 - - - - - -### New Features - -* Users can use a new environment variable, `USAGE_DATA_OPT_OUT` to opt out of user module usage tracking by setting this value to `True`. Additionally, only certain qiskit modules will be tracked instead of all modules that begin with qiskit or qiskit\_. - -* Users can now pass in a value of `default` to the `channel_strategy` parameter in [`qiskit_ibm_runtime.QiskitRuntimeService`](qiskit_ibm_runtime.QiskitRuntimeService "qiskit_ibm_runtime.QiskitRuntimeService"). Now, if an account is configured with a certain channel strategy, the user can override it by passing in `default`. - -* The Sampler and Estimator primitives have been enhanced to incorporate custom validation procedures when the channel\_strategy property within the :class:qiskit\_ibm\_runtime.QiskitRuntimeService is configured as “q-ctrl.” This customized validation logic effectively rectifies incorrect input options and safeguards users against inadvertently disabling Q-CTRL’s performance enhancements. - - - - - -### Bug Fixes - -* Retrieving backend properties with [`properties()`](qiskit_ibm_runtime.IBMBackend#properties "qiskit_ibm_runtime.IBMBackend.properties") now supports passing a `datetime` parameter to retrieve properties from a past date. - -* The `noise_factors` and `extrapolator` options in [`qiskit_ibm_runtime.options.ResilienceOptions`](qiskit_ibm_runtime.options.ResilienceOptions "qiskit_ibm_runtime.options.ResilienceOptions") will now default to `None` unless `resilience_level` is set to 2. Only options relevant to the resilience level will be set, so when using `resilience_level` 2, `noise_factors` will still default to `(1, 3, 5)` and `extrapolator` will default to `LinearExtrapolator`. Additionally, options with a value of `None` will no longer be sent to the server. - -* Job error messages will no longer be returned in all uppercase. - -* The max\_execution\_time option is now based on system execution time instead of wall clock time. System execution time is the amount of time that the system is dedicated to processing your job. If a job exceeds this time limit, it is forcibly cancelled. Simulator jobs continue to use wall clock time. - - - - - -## 0.12.0 - - - - - -### New Features - -* Added a `global_service`, so that if the user defines a QiskitRuntimeService, it will be used by the primitives, even if the service is not passed to them explicitly. For example: - - ```python - from qiskit_ibm_runtime import QiskitRuntimeService, Sampler - service = QiskitRuntimeService(channel="ibm_quantum") - # Sampler._service field will be initialized to ``service`` - sampler = Sampler(backend="ibmq_qasm_simulator") - ``` - -* Added a new method, [`qiskit_ibm_runtime.QiskitRuntimeService.instances()`](qiskit_ibm_runtime.QiskitRuntimeService#instances "qiskit_ibm_runtime.QiskitRuntimeService.instances") that returns all instances(hub/group/project) the user is in. This is only for the `ibm_quantum` channel since the `ibm_cloud` channel does not have multiple instances. - -* Added validations for options on the second level of the dict, i.e., for each of resilience, simulator, execution, and transpilation, check that their options are supported. Otherwise throw an exception. - -* There is a new parameter, `channel_strategy` that can be set in the initialization of [`qiskit_ibm_runtime.QiskitRuntimeService`](qiskit_ibm_runtime.QiskitRuntimeService "qiskit_ibm_runtime.QiskitRuntimeService") or saved in [`qiskit_ibm_runtime.QiskitRuntimeService.save_account()`](qiskit_ibm_runtime.QiskitRuntimeService#save_account "qiskit_ibm_runtime.QiskitRuntimeService.save_account"). If `channel_strategy` is set to `q-ctrl`, all jobs within the service will use the Q-CTRL error mitigation strategy. - - - - - -### Upgrade Notes - -* Circuits and other input parameters will no longer be automatically stored in runtime jobs. They can still be retrieved with [`qiskit_ibm_runtime.RuntimeJob.inputs()`](qiskit_ibm_runtime.RuntimeJob#inputs "qiskit_ibm_runtime.RuntimeJob.inputs"). - - - - - -### Deprecation Notes - -* The `noise_amplifier` resilience options is deprecated. After the deprecation period, only local folding amplification will be supported. Refer to [https://github.com/qiskit-community/prototype-zne](https://github.com/qiskit-community/prototype-zne) for global folding amplification. - - - - - -### Bug Fixes - -* When running on channel “ibm\_cloud”, it is possible not to specify the backend. In this case, the system selects one of the available backends for this service. Issue #625 [https://github.com/Qiskit/qiskit-ibm-runtime/issues/625](https://github.com/Qiskit/qiskit-ibm-runtime/issues/625) reported that the the backend returned by `job.backend()` was not always the actual backend on which the job was run. This PR fixes this bug. - -* Fixes a race condition in the test test\_cancel\_running\_job() in test\_job.py where job cancellation could not be performed. Refer to #1019 \<[https://github.com/Qiskit/qiskit-ibm-runtime/issues/1019](https://github.com/Qiskit/qiskit-ibm-runtime/issues/1019)>\_ for more details. - -* Previously we added validation when jobs were run to make sure the number of circuits was not greater than the maximum for that backend, `backend.max_circuits`. This limit isn’t actually necessary for primtives run from within a session. - - - - - -## 0.11.3 - - - - - -### New Features - -* Added reason for failure when invoking the method [`error_message()`](qiskit_ibm_runtime.RuntimeJob#error_message "qiskit_ibm_runtime.RuntimeJob.error_message"). - -* Added a new property, [`usage_estimation()`](qiskit_ibm_runtime.RuntimeJob#usage_estimation "qiskit_ibm_runtime.RuntimeJob.usage_estimation") that returns the estimated system execution time, `quantum_seconds`. System execution time represents the amount of time that the system is dedicated to processing your job. - -* Raise an exception if the number of circuits passed to `_run_primitive()` exceeds the number of circuits supported on the backend. - -* There is a new method [`update_tags()`](qiskit_ibm_runtime.RuntimeJob#update_tags "qiskit_ibm_runtime.RuntimeJob.update_tags") that can be used to update the `job_tags` of a job. - -* If `instance` is provided as parameter to [`qiskit_ibm_runtime.QiskitRuntimeService`](qiskit_ibm_runtime.QiskitRuntimeService "qiskit_ibm_runtime.QiskitRuntimeService"), then this is used as a filter in `QiskitRuntimeService.backends()`. If `instance` is not recognized as one of the provider instances, an exception will be raised. Previously, we only issued a warning. - - - - - -## 0.11.2 - - - - - -### New Features - -* If a job has been cancelled, and job.result() is requested, throw an exception rather than returning None. - -* A new method, [`qiskit_ibm_runtime.options.SimulatorOptions.set_backend()`](qiskit_ibm_runtime.options.SimulatorOptions#set_backend "qiskit_ibm_runtime.options.SimulatorOptions.set_backend"), allows users to more easily set simulator options for a backend. - - ```python - from qiskit.providers.fake_provider import FakeManila - from qiskit_aer.noise import NoiseModel - - # Make a noise model - fake_backend = FakeManila() - - # Set options to include the noise model - options = Options() - options.simulator.set_backend(fake_backend) - options.simulator.seed_simulator = 42 - ``` - - - - - -### Bug Fixes - -* Fixed infinite recursion when attempting to deepcopy an IBMBackend. Added a method `qiskit_ibm_runtime.IBMBackend.deepcopy()`. - -* Fixed an issue where circuit metadata was not being serialized correctly resulting in a type error. - - - - - -## 0.11.1 - - - - - -### Deprecation Notes - -* In [`qiskit_ibm_runtime.RuntimeJob.metrics()`](qiskit_ibm_runtime.RuntimeJob#metrics "qiskit_ibm_runtime.RuntimeJob.metrics"), the bss field will be replaced by usage. - - - - - -## 0.11.0 - - - - - -### New Features - -* When retrieving a job with `qiskit_ibm_runtime.IBMRuntimeService.job()` the `params` will no longer be returned from the API. They will instead be loaded loazily when they are actually needed in [`qiskit_ibm_runtime.RuntimeJob.inputs()`](qiskit_ibm_runtime.RuntimeJob#inputs "qiskit_ibm_runtime.RuntimeJob.inputs"). - -* Added warning when the backend is not active in QiskitRuntimeService.run. - -* Support input of type `CouplingMap` when given as simulator option. Previously we supported, for example: - - ```python - options.simulator = {"coupling_map": [[0, 1], [1, 0]]} - ``` - - Now we also support the following: - - ```python - options.simulator = {"coupling_map": CouplingMap.from_line(10)} - ``` - - - - - -### Upgrade Notes - -* A default session is no longer open for you if you pass a backend name or backend instance to [`qiskit_ibm_runtime.Sampler`](qiskit_ibm_runtime.Sampler "qiskit_ibm_runtime.Sampler") or [`qiskit_ibm_runtime.Estimator`](qiskit_ibm_runtime.Estimator "qiskit_ibm_runtime.Estimator") constructors. The primitive will instead run without a session. In addition, you should now use the `backend` parameter to pass a backend name or instance instead of the `session` parameter (which can continue to be used to pass a session). - -* The first parameter of the [`qiskit_ibm_runtime.Sampler`](qiskit_ibm_runtime.Sampler "qiskit_ibm_runtime.Sampler") and [`qiskit_ibm_runtime.Estimator`](qiskit_ibm_runtime.Estimator "qiskit_ibm_runtime.Estimator") constructors is now `backend` instead of `session`. - - - - - -### Deprecation Notes - -* Passing a backend name or backend instance to the `session` parameter when initializing a [`qiskit_ibm_runtime.Sampler`](qiskit_ibm_runtime.Sampler "qiskit_ibm_runtime.Sampler") or [`qiskit_ibm_runtime.Estimator`](qiskit_ibm_runtime.Estimator "qiskit_ibm_runtime.Estimator") has been deprecated. Please use the `backend` parameter instead. You can continue to pass a session using the `session` parameter. - - - - - -## 0.10.0 - - - - - -### New Features - -* Python 3.11 is now supported. - - - - - -### Upgrade Notes - -* Added error messages in case the user defines unsupported values for ‘max\_execution\_time’. Previously, this validation was done on the server side. - - - - - -### Bug Fixes - -* Added deserialization of the params of RuntimeJob.inputs. Previously, the circuits were returned in serialized format. Fixes issue [#829](https://github.com/Qiskit/qiskit-ibm-runtime/issues/829). - -* Allow for users to retrieve all backends even if one of the backends has a missing configuration. The backend without a configuration will not be returned. - - - - - -## 0.9.4 - - - - - -### New Features - -* Added methods to validate input options to `transpilation` and `environment` options. - - - - - -### Upgrade Notes - -* When constructing a backend `qiskit.transpiler.Target`, faulty qubits and gates from the backend configuration will be filtered out. - - - - - -### Deprecation Notes - -* The deprecated arguments `circuits`, `parameters`, `service`, and `skip_transpilation` have been removed from [`Sampler`](qiskit_ibm_runtime.Sampler "qiskit_ibm_runtime.Sampler"). - - Similarly, the deprecated arguments `circuits`, `observables`, `parameters`, `service`, and `skip_transpilation` have been removed from [`Estimator`](qiskit_ibm_runtime.Estimator "qiskit_ibm_runtime.Estimator"). - - In [`QiskitRuntimeService`](qiskit_ibm_runtime.QiskitRuntimeService "qiskit_ibm_runtime.QiskitRuntimeService"), the `auth` parameter has been removed. Additionally, the `instance`, `job_tags`, and `max_execution_time` paramters have been removed from [`qiskit_ibm_runtime.QiskitRuntimeService.run()`](qiskit_ibm_runtime.QiskitRuntimeService#run "qiskit_ibm_runtime.QiskitRuntimeService.run"). They can be passed in through [`RuntimeOptions`](qiskit_ibm_runtime.RuntimeOptions "qiskit_ibm_runtime.RuntimeOptions") instead. - - Within [`RuntimeOptions`](qiskit_ibm_runtime.RuntimeOptions "qiskit_ibm_runtime.RuntimeOptions"), `backend_name` is no longer supported. Please use `backend` instead. - - - - - -### Bug Fixes - -* Fixed a bug where retrieving a job from a backend without `noise_model` or `seed_simulator` options would result in a key error. - - - - - -## 0.9.3 - - - - - -### Upgrade Notes - -* Added error messages in case the user defines unsupported values for ‘optimization\_level’ or for ‘resilience\_level’. Added validation checking for options given as input to `resilience`. Previously, this validation was done on the server side. By adding them on the client side, response will be much faster upon failure. The environment variable `QISKIT_RUNTIME_SKIP_OPTIONS_VALIDATION` is used to control validation. If set, validation will be skipped. - -* Backend configurations are no longer loaded when [`QiskitRuntimeService`](qiskit_ibm_runtime.QiskitRuntimeService "qiskit_ibm_runtime.QiskitRuntimeService") is initialized. Instead, the configuration is only loaded and cached during [`get_backend()`](qiskit_ibm_runtime.QiskitRuntimeService#get_backend "qiskit_ibm_runtime.QiskitRuntimeService.get_backend") and [`backends()`](qiskit_ibm_runtime.QiskitRuntimeService#backends "qiskit_ibm_runtime.QiskitRuntimeService.backends"). - - - - - -### Bug Fixes - -* When creating an Option object and passing an input option to `resilience_options`, this option was included in `resilience_options`, but the other, default options were removed. This was fixed, so now inputs are handled correctly, like other option types. - - - - - -## 0.9.2 - - - - - -### New Features - -* Added a new argument called `session_time` to the program\_run method and [`qiskit_ibm_runtime.RuntimeOptions`](qiskit_ibm_runtime.RuntimeOptions "qiskit_ibm_runtime.RuntimeOptions"). Now values entered by the user for session `max_time` will be sent to the server side as `session_time`. This allows users to specify different values for session `max_time` and `max_execution_time`. - -* Added the method [`target_history()`](qiskit_ibm_runtime.IBMBackend#target_history "qiskit_ibm_runtime.IBMBackend.target_history"). This method is similar to [`target()`](qiskit_ibm_runtime.IBMBackend#target "qiskit_ibm_runtime.IBMBackend.target"). The difference is that the new method enables the user to pass a datetime parameter, to retrieve historical data from the backend. - - - - - -### Upgrade Notes - -* Accept all options on given on level 1 and assign them to the appropriate hierarchical option type. For example, if the user provides `options = {"shots": 10}` as input to Sampler/Estimator, this will be interpreted as `options = {"execution: {"shots": 10}}`. - -* If a job is returned without a backend, retrieving the backend through [`qiskit_ibm_runtime.RuntimeJob.backend()`](qiskit_ibm_runtime.RuntimeJob#backend "qiskit_ibm_runtime.RuntimeJob.backend") will re-retrieve data from the server and attempt to update the backend. Additionally, `job_id` and `backend`, which were deprecated attributes of [`qiskit_ibm_runtime.RuntimeJob`](qiskit_ibm_runtime.RuntimeJob "qiskit_ibm_runtime.RuntimeJob") have now been removed. - -* Added a user warning when the user passes an option that is not supported in Options. - - - - - -### Bug Fixes - -* Fixed a bug where the default values for `optimization_level` and for `resilience_level` were not being set correctly. - -* Fixed an issue where if no backend was selected, `optimization_level` and `resilience_level` would default to `None`, causing the job to fail. - -* If an instance is passed in to [`qiskit_ibm_runtime.QiskitRuntimeService.get_backend()`](qiskit_ibm_runtime.QiskitRuntimeService#get_backend "qiskit_ibm_runtime.QiskitRuntimeService.get_backend") and then the backend is used in a session, all jobs within the session will be run from the original instance passed in. - -* Removed additional decomposition of `BlueprintCircuit`s in the JSON encoder. This was introduced as a bugfix, but has since been fixed. Still doing the decomposition led to possible problems if the decomposed circuit was not in the correct basis set of the backend anymore. - - - - - -## 0.9.1 - - - - - -### Upgrade Notes - -* [`qiskit_ibm_runtime.QiskitRuntimeService.jobs()`](qiskit_ibm_runtime.QiskitRuntimeService#jobs "qiskit_ibm_runtime.QiskitRuntimeService.jobs") now has a `backend_name` parameter that can be used to only return jobs run with the specified backend. - -* Allow the user to store account details in a file specified by the user in the parameter. `filename`. The default remains \~/.qiskit/qiskit-ibm.json. Example of usage: Ex: - - ```python - QiskitRuntimeService.save_account(channel="ibm_quantum", - filename="~/my_account_file.json", - name = "my_account", - token="my_token") - service = QiskitRuntimeService(channel="ibm_quantum", - filename="~/my_account_file.json", - name = "my_account",) - ``` - - - - - -### Deprecation Notes - -* `backend` is no longer a supported option when using [`qiskit_ibm_runtime.Session.run()`](qiskit_ibm_runtime.Session#run "qiskit_ibm_runtime.Session.run"). Sessions do not support multiple cross backends. Additionally, an exception will be raised if a backend passed in through options does not match the original session backend in an active session. - - - - - -### Bug Fixes - -* `ECRGate` and `CZGate` mappings have been added to the `Target` constructor to fix a tranpile bug. - - - - - -### Other Notes - -* Since error messages from a failing job may be long, we shortened them so that they begin from the last `Traceback` in the message. - - - - - -## 0.9.0 - - - - - -### Upgrade Notes - -* Changed the default values for `optimization_level` and for `resilience_level` in `qiskit_ibm_runtime.Options`. If their values are defined by the user, they are not modified. If not set, if the backend is a noiseless simulator then `optimization_level` is set to 1 and `resilience_level` is set to 0; Otherwise, they are be set to 3 and 1 respectively. - -* [`session_id()`](qiskit_ibm_runtime.RuntimeJob#session_id "qiskit_ibm_runtime.RuntimeJob.session_id") and [`tags()`](qiskit_ibm_runtime.RuntimeJob#tags "qiskit_ibm_runtime.RuntimeJob.tags") were added for an easy way to return the session\_id and job\_tags of a job. - - - - - -### Bug Fixes - -* Fixed a bug where jobs that did not run before a session closes are not actually run as a part of that session. Jobs should run as a part of a session even if that session is closed by the exit of the context manager. - -* Fixes the issue wherein submitting a large job fails due to write operation timeout. - - - - - -## 0.8.0 - - - - - -### New Features - -* Python 3.10 is now supported. - -* Advanced resilience options can now be set under `options.resilience`. See [`qiskit_ibm_runtime.options.ResilienceOptions`](qiskit_ibm_runtime.options.ResilienceOptions "qiskit_ibm_runtime.options.ResilienceOptions") for all available options. - -* You can now specify a pair of result decoders for the `result_decoder` parameter of [`qiskit_ibm_runtime.QiskitRuntimeService.run()`](qiskit_ibm_runtime.QiskitRuntimeService#run "qiskit_ibm_runtime.QiskitRuntimeService.run") method. If a pair is specified, the first one is used to decode interim results and the second the final results. - - - - - -### Upgrade Notes - -* The default `resilience_level` option for has been changed from 0 to 1. In addition, the default `optimization_level` option has been changed from 1 to 3. - - - - - -### Deprecation Notes - -* The transpilation options `translation_method` and `timing_constraints` have been deprecated. - - - - - -### Bug Fixes - -* If a [`qiskit_ibm_runtime.IBMBackend`](qiskit_ibm_runtime.IBMBackend "qiskit_ibm_runtime.IBMBackend") instance is passed to the [`qiskit_ibm_runtime.Session`](qiskit_ibm_runtime.Session "qiskit_ibm_runtime.Session") constructor, the service used to initialize the `IBMBackend` instance is used for the session instead of the default account service. - - - - - -## 0.7.0 - - - - - -### New Features - -* `qiskit_ibm_runtime.Options` class now accepts arbitrary keyword arguments. This allows users to specify new options to the primitive programs without upgrading `qiskit_ibm_runtime`. These arbitrary keyword arguments, however, are not validated. - -* The [`qiskit_ibm_runtime.options.EnvironmentOptions`](qiskit_ibm_runtime.options.EnvironmentOptions "qiskit_ibm_runtime.options.EnvironmentOptions") class now accepts a `callback` parameter. This parameter can be used to stream the interim and final results of the primitives. - -* The `qiskit_ibm_runtime.Options` class now accepts `max_execution_time` as a first level option and `job_tags` as an option under `environment`. [`qiskit_ibm_runtime.RuntimeOptions`](qiskit_ibm_runtime.RuntimeOptions "qiskit_ibm_runtime.RuntimeOptions") has also been updated to include these two parameters. - - - - - -### Upgrade Notes - -* This version of qiskit-ibm-runtime requires qiskit-terra version 0.22 or higher. The `requirements.txt` file has been updated accordingly. - - - - - -### Deprecation Notes - -* Qiskit Runtime programs `torch-train`, `torch-infer`, `sample-expval`, `sample-program`, and `quantum_kernal_alignment` have been deprecated due to low usage. - -* Passing `instance` parameter to the [`qiskit_ibm_runtime.QiskitRuntimeService.run()`](qiskit_ibm_runtime.QiskitRuntimeService#run "qiskit_ibm_runtime.QiskitRuntimeService.run") has been deprecated. Instead, you can pass the `instance` parameter inside the `options` parameter. - -* Passing `job_tags` and `max_execution_time` as parameters to [`qiskit_ibm_runtime.QiskitRuntimeService`](qiskit_ibm_runtime.QiskitRuntimeService "qiskit_ibm_runtime.QiskitRuntimeService") has been deprecated. Please pass them inside `options`. - - - - - -### Bug Fixes - -* Fixes the missing section on retrieving jobs in the how-to guide. - - - - - -## 0.7.0rc2 - - - - - -### Upgrade Notes - -* Added a validation check to `run()`. It raises an error if there is no classical bit. - -* [`Sampler`](qiskit_ibm_runtime.Sampler "qiskit_ibm_runtime.Sampler") is updated to return `SamplerResult` with `SamplerResult.quasi_dists` as a list of `QuasiDistrbution`. It used to set a list of `dict` as `SamplerResult.quasi_dists`, but it did not follow the design of `SamplerResult`. - -* The [`RuntimeJob`](qiskit_ibm_runtime.RuntimeJob "qiskit_ibm_runtime.RuntimeJob") class is now a subclass of `qiskit.providers.Job`. - - - - - -### Deprecation Notes - -* `job_id` and `backend` attributes of [`qiskit_ibm_runtime.RuntimeJob`](qiskit_ibm_runtime.RuntimeJob "qiskit_ibm_runtime.RuntimeJob") have been deprecated. Please use [`qiskit_ibm_runtime.RuntimeJob.job_id()`](qiskit_ibm_runtime.RuntimeJob#job_id "qiskit_ibm_runtime.RuntimeJob.job_id") and [`qiskit_ibm_runtime.RuntimeJob.backend()`](qiskit_ibm_runtime.RuntimeJob#backend "qiskit_ibm_runtime.RuntimeJob.backend") methods instead. - -* The `backend_name` attribute in [`qiskit_ibm_runtime.RuntimeOptions`](qiskit_ibm_runtime.RuntimeOptions "qiskit_ibm_runtime.RuntimeOptions") is deprecated and replaced by `backend`. - - - - - -## 0.7.0rc1 - - - - - -### Prelude - -There are significant changes to how primitives are invoked within a session, and the options available to the primitives. Please review the rest of the release notes and the tutorials for full information. - - - - - -### New Features - -* You can now invoke the same or different primitive programs multiple times within a session. For example: - - ```python - from qiskit_ibm_runtime import QiskitRuntimeService, Session, Sampler, Estimator, Options - from qiskit.test.reference_circuits import ReferenceCircuits - from qiskit.circuit.library import RealAmplitudes - from qiskit.quantum_info import SparsePauliOp - - # Initialize account. - service = QiskitRuntimeService() - - # Set options, which can be overwritten at job level. - options = Options(optimization_level=1) - - # Prepare inputs. - bell = ReferenceCircuits.bell() - psi = RealAmplitudes(num_qubits=2, reps=2) - H1 = SparsePauliOp.from_list([("II", 1), ("IZ", 2), ("XI", 3)]) - theta = [0, 1, 1, 2, 3, 5] - - with Session(service=service, backend="ibmq_qasm_simulator") as session: - # Submit a request to the Sampler primitive within the session. - sampler = Sampler(session=session, options=options) - job = sampler.run(circuits=bell) - print(f"Sampler results: {job.result()}") - - # Submit a request to the Estimator primitive within the session. - estimator = Estimator(session=session, options=options) - job = estimator.run( - circuits=[psi], observables=[H1], parameter_values=[theta] - ) - print(f"Estimator results: {job.result()}") - ``` - -* A new `qiskit_ibm_runtime.Options` class is introduced. This class allows you to auto-complete options related to primitive programs. For example: - - ```python - from qiskit_ibm_runtime import Session, Sampler, Options - from qiskit.test.reference_circuits import ReferenceCircuits - - options = Options() - options.optimization_level = 3 # This can be done using auto-complete. - - with Session(backend="ibmq_qasm_simulator") as session: - # Pass the options to Sampler. - sampler = Sampler(session=session, options=options) - - # Or at job level. - job = sampler.run(circuits=ReferenceCircuits.bell(), shots=4000) - ``` - -* [`qiskit_ibm_runtime.RuntimeJob`](qiskit_ibm_runtime.RuntimeJob "qiskit_ibm_runtime.RuntimeJob") has a new method [`metrics()`](qiskit_ibm_runtime.RuntimeJob#metrics "qiskit_ibm_runtime.RuntimeJob.metrics"). This method returns the metrics of a job, which includes timestamp information. - -* The [`qiskit_ibm_runtime.QiskitRuntimeService`](qiskit_ibm_runtime.QiskitRuntimeService "qiskit_ibm_runtime.QiskitRuntimeService") `channel` can now be stored as an environment variable, `QISKIT_IBM_CHANNEL`. This way, when using Runtime Primitives, the service does not have to be instantiated manually and can instead be created directly from environment variables. - - - - - -### Upgrade Notes - -* Raise `RuntimeJobMaxTimeoutError` when a job runs for too long so that it can be handled appropriately by programs. - -* The experimental parameters `transpilation_settings`, `resilience_settings`, and `max_time` to the :class:\`qiskit\_ibm\_runtime.Sampler and [`qiskit_ibm_runtime.Estimator`](qiskit_ibm_runtime.Estimator "qiskit_ibm_runtime.Estimator") constructors have been removed. You can instead use the `qiskit_ibm_runtime.Options` class to specify the settings, and `max_time` can be specified when starting a new session. For example: - - ```python - from qiskit_ibm_runtime import Session, Sampler, Options - - options = Options() - # This can be done using auto-complete. - option.optimization_level = 3 - options.resilience_level = 1 - - with Session(max_time="2h") as session: - # Pass the options to Sampler. - sampler = Sampler(session=session, options=options) - ``` - -* Since some accounts have many runtime programs, caching a list of all programs on the first call of `programs()` has been removed. Instead, programs will only be cached up to the `limit` given, which has a default value of 20. - - - - - -### Deprecation Notes - -* Invoking [`qiskit_ibm_runtime.Sampler`](qiskit_ibm_runtime.Sampler "qiskit_ibm_runtime.Sampler") and [`qiskit_ibm_runtime.Estimator`](qiskit_ibm_runtime.Estimator "qiskit_ibm_runtime.Estimator") as context managers has been deprecated. You can instead use the qiskit\_ibm\_runtime.Session class to create a new session and invoke one or more primitives within the session. - - As a result, passing input parameters, such as `circuits`, `observables`, and `parameter_values`, as well as `service` to the constructors of `Sampler` and `Estimator` has also been deprecated. The inputs can now be passed to the `run()` method of the primitive classes, and `service` can be passed to [`qiskit_ibm_runtime.Session`](qiskit_ibm_runtime.Session "qiskit_ibm_runtime.Session") when starting a new session. - -* Passing `skip_transpilation` to the :class:\`qiskit\_ibm\_runtime.Sampler and [`qiskit_ibm_runtime.Estimator`](qiskit_ibm_runtime.Estimator "qiskit_ibm_runtime.Estimator") constructors has been deprecated. You can instead use the `qiskit_ibm_runtime.Options` class to specify this option. For example: - - ```python - from qiskit_ibm_runtime import Options - - options = Options() - # This can be done using auto-complete. - options.transpilation.skip_transpilation = True - ``` - - - - - -### Bug Fixes - -* Fixes issue [#428](https://github.com/Qiskit/qiskit-ibm-runtime/issues/428) by raising the minimum required `qiskit-terra` version to `0.21.0`, since latest version of `qiskit-ibm-runtime` is not compatible with `0.20.0` or earlier of `qiskit-terra`. - - - - - -## 0.6.0 - - - - - -### Upgrade Notes - -* When migrating from `qiskit-ibmq-provider` your `ibm_quantum` channel credentials will get automatically copied over from the qiskitrc file and a qiskit-ibm.json file will get created if one doesn’t exist. You have to just initialize [`QiskitRuntimeService`](qiskit_ibm_runtime.QiskitRuntimeService "qiskit_ibm_runtime.QiskitRuntimeService") class without passing any parameters to use this copied over default `ibm_quantum` account. - - Ex: - - ```python - from qiskit_ibm_runtime import QiskitRuntimeService - service = QiskitRuntimeService() - ``` - -* `IBMEstimator` class which was deprecated earlier is now removed. Use [`Estimator`](qiskit_ibm_runtime.Estimator "qiskit_ibm_runtime.Estimator") class going forward. - -* `IBMRuntimeService` class which was deprecated earlier is now removed. Use [`QiskitRuntimeService`](qiskit_ibm_runtime.QiskitRuntimeService "qiskit_ibm_runtime.QiskitRuntimeService") class going forward. - - - - - -## 0.5.0 - - - - - -### Prelude - -This release leverages the API and Queue enhancements to become more runtime session aware. As a result when using the primitives (sampler and estimator), runtime jobs in the same session will skip to the front of the queue, thereby speeding up the runtime session, once it has started. - - - - - -### New Features - -* The `service` object which is an instance of [`QiskitRuntimeService`](qiskit_ibm_runtime.QiskitRuntimeService "qiskit_ibm_runtime.QiskitRuntimeService") class can now be accessed from [`IBMBackend`](qiskit_ibm_runtime.IBMBackend "qiskit_ibm_runtime.IBMBackend") class using the `service` property. - - Ex: - - ```python - backend = service.get_backend("ibmq_qasm_simulator") - backend.service # QiskitRuntimeService instance used to instantiate the backend - ``` - - - - - -### Upgrade Notes - -* [`jobs()`](qiskit_ibm_runtime.QiskitRuntimeService#jobs "qiskit_ibm_runtime.QiskitRuntimeService.jobs") has two new parameters, `created_after` and `created_before`. These can be used to filter jobs by creation date in local time. - -* The parameters `circuit_indices` and `observable_indices` when calling `estimator` are now deprecated and will be removed in a future release. You can now pass either indices or objects using the `circuits` and `observables` parameters. - - Ex: - - ```python - with Estimator( - circuits=[qc1, qc2], - observables=[H1, H2, H3], - service=service, - options=options - ) as estimator: - # pass circuits and observables as indices - result = estimator(circuits=[0, 1], observables=[0, 1], parameter_values=[theta1, theta2]) - - # pass circuits and observables as objects - result = estimator(circuits=[qc1, qc2], observables=[H1, H3], parameter_values=[theta1, theta3]) - ``` - -* The parameters `circuit_indices` and `observable_indices` when calling `estimator` are now deprecated and will be removed in a future release. You can now pass either indices or objects using the `circuits` and `observables` parameters. - - Ex: - - ```python - with Sampler( - circuits=[qc1, qc2], - service=service, - options=options - ) as sampler: - # pass circuits as indices - result = sampler(circuits=[0, 1], parameter_values=[theta1, theta2]) - - # pass circuit as objects - result = sampler(circuits=[qc1, qc2], parameter_values=[theta2, theta3]) - ``` - -* The `session_id`, which is the Job ID of the first job in a runtime session can now be used as a filter in [`jobs()`](qiskit_ibm_runtime.QiskitRuntimeService#jobs "qiskit_ibm_runtime.QiskitRuntimeService.jobs") with the parameter `session_id`. - -* [`run()`](qiskit_ibm_runtime.QiskitRuntimeService#run "qiskit_ibm_runtime.QiskitRuntimeService.run") now supports a new parameter, `job_tags`. These tags can be used when filtering jobs with [`jobs()`](qiskit_ibm_runtime.QiskitRuntimeService#jobs "qiskit_ibm_runtime.QiskitRuntimeService.jobs"). - -* [`run()`](qiskit_ibm_runtime.QiskitRuntimeService#run "qiskit_ibm_runtime.QiskitRuntimeService.run") now supports a new parameter, `max_execution_time`, which can be used to override the default program maximum execution time. It should be less than or equal to the program maximum execution time. - -* [`jobs()`](qiskit_ibm_runtime.QiskitRuntimeService#jobs "qiskit_ibm_runtime.QiskitRuntimeService.jobs") has a new parameter, `descending`. This parameter defaults to `True`, where jobs will be returned in descending order based on creation date. - -* `RuntimeJobTimeoutError` is now raised when the `timeout` set in [`result()`](qiskit_ibm_runtime.RuntimeJob#result "qiskit_ibm_runtime.RuntimeJob.result") or [`wait_for_final_state()`](qiskit_ibm_runtime.RuntimeJob#wait_for_final_state "qiskit_ibm_runtime.RuntimeJob.wait_for_final_state") expires. - -* When initializing [`QiskitRuntimeService`](qiskit_ibm_runtime.QiskitRuntimeService "qiskit_ibm_runtime.QiskitRuntimeService") and an invalid token is used, `IBMNotAuthorizedError` will be raised instead of `RequestsApiError`. - -* `IBMSampler` class which was deprecated earlier is now removed. Use [`Sampler`](qiskit_ibm_runtime.Sampler "qiskit_ibm_runtime.Sampler") class going forward. - -* [`qubit_properties()`](qiskit_ibm_runtime.IBMBackend#qubit_properties "qiskit_ibm_runtime.IBMBackend.qubit_properties") will now return a sub class of `QubitProperties` called `IBMQubitProperties` and will expose anharmonicity in addition to the t1, t2 and frequency already exposed by the `QubitProperties` class. - - - - - -## 0.4.0 - - - - - -### Upgrade Notes - -* `IBMRuntimeService` has been renamed to `QiskitRuntimeSerice`. `IBMRuntimeService` class is now deprecated and will be removed in a future release. - - Example: - - Before: - - ```python - from qiskit_ibm_runtime import IBMRuntimeService - service = IBMRuntimeService(channel="ibm_cloud", token="...", instance="...") - ``` - - After: - - ```python - from qiskit_ibm_runtime import QiskitRuntimeService - service = QiskitRuntimeService(channel="ibm_cloud", token="...", instance="...") - ``` - -* `IBMEstimator` class is now deprecated and will be removed in a future release. Use [`Estimator`](qiskit_ibm_runtime.Estimator "qiskit_ibm_runtime.Estimator") class going forward. - - Example: - - Before: - - ```python - from qiskit_ibm_runtime import IBMRuntimeService, IBMEstimator - service = IBMRuntimeService(channel="ibm_cloud", token="...", instance="...") - - estimator_factory = IBMEstimator(service=service, backend="ibmq_qasm_simulator") - - with estimator_factory(circuits=[qc], observables="...", parameters="...") as estimator: - result = estimator(circuit_indices=[0], ...) - ``` - - After: - - ```python - from qiskit_ibm_runtime import QiskitRuntimeService, Estimator - service = QiskitRuntimeService(channel="ibm_cloud", token="...", instance="...") - - with Estimator( - circuits=[qc], - observables="...", - parameters="...", - service=service, - options={ "backend": "ibmq_qasm_simulator" }, # or IBMBackend<"ibmq_qasm_simulator"> - ) as estimator: - result = estimator(circuit_indices=[0], ...) - ``` - -* `IBMSampler` class is now deprecated and will be removed in a future release. Use [`Sampler`](qiskit_ibm_runtime.Sampler "qiskit_ibm_runtime.Sampler") class going forward. - - Example: - - Before: - - ```python - from qiskit_ibm_runtime import IBMRuntimeService, IBMSampler - service = IBMRuntimeService(channel="ibm_cloud", token="...", instance="...") - - sampler_factory = IBMSampler(service=service, backend="ibmq_qasm_simulator") - - with sampler_factory(circuits=[qc], parameters="...") as sampler: - result = sampler(circuit_indices=[0], ...) - ``` - - After: - - ```python - from qiskit_ibm_runtime import QiskitRuntimeService, Sampler - service = QiskitRuntimeService(channel="ibm_cloud", token="...", instance="...") - - with Sampler( - circuits=[qc], - parameters="...", - service=service, - options={ "backend": "ibmq_qasm_simulator" }, # or IBMBackend<"ibmq_qasm_simulator"> - ) as sampler: - result = sampler(circuit_indices=[0], ...) - ``` - - - - - -### Deprecation Notes - -* `IBMRuntimeService`, `IBMEstimator` and `IBMSampler` classes have been deprecated and will be removed in a future release. Use [`QiskitRuntimeService`](qiskit_ibm_runtime.QiskitRuntimeService "qiskit_ibm_runtime.QiskitRuntimeService"), [`Estimator`](qiskit_ibm_runtime.Estimator "qiskit_ibm_runtime.Estimator") and [`Sampler`](qiskit_ibm_runtime.Sampler "qiskit_ibm_runtime.Sampler") classes instead. See upgrade notes section for a detailed explanation with examples. - - - - - -## 0.3.0 - - - - - -### Upgrade Notes - -* A new parameter `channel` has now been added to `qiskit_ibm_runtime.IBMRuntimeService` class and also to methods like `save_account()`, `saved_accounts()` and `delete_account()`. It can be set to `ibm_quantum` or `ibm_cloud` to authenticate to either of the two different channels through which Qiskit Runtime service is currently offered. `channel` replaces the `auth` parameter which has now been deprecated. - - - - - -### Deprecation Notes - -* The `auth` parameter to `qiskit_ibm_runtime.IBMRuntimeService` class and also to methods like `save_account()`, `saved_accounts()` and `delete_account()` has now been deprecated and will be removed in a future release. Please use the new `channel` parameter instead. - - - - - -### Bug Fixes - -* Fixed [#291](https://github.com/Qiskit/qiskit-ibm-runtime/issues/219) where passing a single `QuantumCircuit` to sampler or estimator primitives was throwing an error. - - - - - -## 0.2.0 - - - - - -### New Features - -* `qiskit_ibm_runtime.IBMEstimator` and `qiskit_ibm_runtime.IBMSampler` classes now allow you to easily interact with the `estimator` and `sampler` primitive programs. Refer to the examples in the respective class doc strings to learn more about how to use them. - - - - - -### Bug Fixes - -* Fixed a bug where [`qiskit_ibm_runtime.RuntimeJob.wait_for_final_state()`](qiskit_ibm_runtime.RuntimeJob#wait_for_final_state "qiskit_ibm_runtime.RuntimeJob.wait_for_final_state") would result in a NoneType error if the job already completed and [`qiskit_ibm_runtime.RuntimeJob.status()`](qiskit_ibm_runtime.RuntimeJob#status "qiskit_ibm_runtime.RuntimeJob.status") was called beforehand. - - - - - -## 0.1.0 - - - - - -### Prelude - -qiskit-ibm-runtime is a new Python API client for accessing the quantum programs, systems and simulators at IBM Quantum via the Qiskit Runtime Service. - -This new package is built upon the work already done in qiskit.providers.ibmq.runtime module in the qiskit-ibmq-provider package and replaces it going forward. The runtime module in qiskit-ibmq-provider package is now deprecated. - -qiskit-ibm-runtime is not included as part of Qiskit meta package and thereby you have to install it separately using `pip install qiskit-ibm-runtime`. - - - - - -### New Features - -* `qiskit_ibm_runtime.IBMRuntimeService.least_busy()` will now allow you find the least busy backend. - - - - - -### Upgrade Notes - -* qiskit-ibm-runtime package no longer uses the \$HOME/.qiskit/qiskitrc file used by qiskit-ibmq-provider to save credentials. Credentials are now stored in a JSON format in \$HOME/.qiskit/qiskit-ibm.json file when you use `qiskit_ibm_runtime.IBMRuntimeService.save_account()` method. - - You can now save multiple credentials and give an optional name for each credential. - -* Qiskit Runtime service is accessible using an IBM Quantum (legacy) account or an IBM Cloud (cloud) account. qiskit-ibm-runtime enables you to connect to either of these accounts: - - ```python - # Legacy - from qiskit_ibm_runtime import IBMRuntimeService - service = IBMRuntimeService(auth="legacy", token="abc") - - # Cloud - from qiskit_ibm_runtime import IBMRuntimeService - service = IBMRuntimeService(auth="cloud", token="abc", instance="IBM Cloud CRN or Service instance name") - ``` - -* [`qiskit_ibm_runtime.IBMBackend`](qiskit_ibm_runtime.IBMBackend "qiskit_ibm_runtime.IBMBackend") class now implements the `qiskit.providers.BackendV2` interface and provides flatter access to the configuration of a backend, for example: - - ```python - # BackendV1: - backend.configuration().n_qubits - - # BackendV2: - backend.num_qubits - ``` - - Only breaking change when compared to BackendV1 is backend.name is now an attribute instead of a method. - - Refer to the [`qiskit_ibm_runtime.IBMBackend`](qiskit_ibm_runtime.IBMBackend "qiskit_ibm_runtime.IBMBackend") class doc string for a list of all available attributes. - -* If you used qiskit.providers.ibmq.AccountProvider.get\_backend method (for example, `provider.get_backend("ibmq_qasm_simulator")`) in the qiskit-ibmq-provider package, it’s equivalent method in this new package is `qiskit_ibm_runtime.IBMRuntimeService.backend()`: - - ```python - service = IBMRuntimeService() - backend = service.backend("ibmq_qasm_simulator") - ``` - -* It is now optional to specify a hub/group/project upfront when connecting to the legacy IBM Quantum account. The hub/group/project is selected in the following order. - - > * hub/group/project if passed via `instance` parameter when initializing `qiskit_ibm_runtime.IBMRuntimeService` - > * the specific hub/group/project required by the backend specified when calling `qiskit_ibm_runtime.IBMRuntimeService.run()` - > * the default set previously via `qiskit_ibm_runtime.IBMRuntimeService.save_account()` - > * a premium hub/group/project in your account - > * open access hub/group/project - -* It is now optional to specify backend\_name in options when executing `qiskit_ibm_runtime.IBMRuntimeService.run()` method when using cloud runtime (IBM Cloud only). The server will automatically pick a backend and return the name. - -* qiskit.providers.ibmq.runtime.IBMRuntimeService.logout method in qiskit-ibmq-provider which was used to clear authorization cache on the server has been removed. - -* Python 3.6 has reached end of life and will no longer be supported in the new qiskit-ibm-runtime package. - -* qiskit.providers.ibmq.runtime.IBMRuntimeService.run\_circuits method in qiskit-ibmq-provider has been removed and will be replaced by the `Sampler` primitive program. - -* `qiskit_ibm_runtime.IBMRuntimeService.run()` method now accepts runtime execution options as [`qiskit_ibm_runtime.RuntimeOptions`](qiskit_ibm_runtime.RuntimeOptions "qiskit_ibm_runtime.RuntimeOptions") class in addition to already supported Dict. backend\_name, image and log\_level are the currently available options. - -* Final result is also streamed now after interim results when you specify a `callback` to `qiskit_ibm_runtime.IBMRuntimeService.run()` or [`qiskit_ibm_runtime.RuntimeJob.stream_results()`](qiskit_ibm_runtime.RuntimeJob#stream_results "qiskit_ibm_runtime.RuntimeJob.stream_results"). - - - - - -## 0.1.0rc2 - - - - - -### New Features - -* For convenience, you can now set the `IBM Cloud service name` as a value for the account `instance` parameter. If you choose to set the name instead of the `CRN`, the initialization time of the `qiskit_ibm_runtime.IBMRuntimeService` class is slightly higher because the required `CRN` value is internally resolved via IBM Cloud APIs. - - - - - -### Bug Fixes - -* [`qiskit_ibm_runtime.utils.json.RuntimeEncoder`](qiskit_ibm_runtime.RuntimeEncoder "qiskit_ibm_runtime.utils.json.RuntimeEncoder") and [`qiskit_ibm_runtime.utils.json.RuntimeDecoder`](qiskit_ibm_runtime.RuntimeDecoder "qiskit_ibm_runtime.utils.json.RuntimeDecoder") have been updated to handle instances of the Instruction class. - -* Fixed an issue where numpy ndarrays with object types could not be serialized. [`qiskit_ibm_runtime.utils.json.RuntimeEncoder`](qiskit_ibm_runtime.RuntimeEncoder "qiskit_ibm_runtime.utils.json.RuntimeEncoder") and [`qiskit_ibm_runtime.utils.json.RuntimeDecoder`](qiskit_ibm_runtime.RuntimeDecoder "qiskit_ibm_runtime.utils.json.RuntimeDecoder") have been updated to handle these ndarrays. - - - - - -## 0.1.0rc1 - - - - - -### New Features - -* You can now pass `instance` parameter in the hub/group/project format to `qiskit_ibm_runtime.IBMRuntimeService.jobs()` to filter jobs. Currently only supported for legacy authentication. - -* You can now use the [`qiskit_ibm_runtime.RuntimeJob.interim_results()`](qiskit_ibm_runtime.RuntimeJob#interim_results "qiskit_ibm_runtime.RuntimeJob.interim_results") method to retrieve runtime program interim results. Note that interim results will only be available for up to two days. - - - - - -### Upgrade Notes - -* In order to be consistent with other properties in [`qiskit_ibm_runtime.RuntimeJob`](qiskit_ibm_runtime.RuntimeJob "qiskit_ibm_runtime.RuntimeJob") class the job\_id and backend methods have been converted to properties. - -* When uploading a program with `qiskit_ibm_runtime.IBMRuntimeService.upload_program()`, the program description is now optional. - -* When printing programs with `qiskit_ibm_runtime.IBMRuntimeService.pprint_programs()`, `backend_requirements` will now be listed. - - - - - -### Bug Fixes - -* Fixed an issue with JSON encoding and decoding when using `ParameterExpression`s in conjunction with Qiskit Terra 0.19.1 and above. Previously, the `Parameter` instances reconstructed from the JSON output would have different unique identifiers, causing them to seem unequal to the input. They will now have the correct backing identities. - diff --git a/public/images/api/qiskit-ibm-runtime/fake_provider-1_02.png b/public/images/api/qiskit-ibm-runtime/fake_provider-1_02.png index a740f2eb6b2934a9034f98652488d0826a4af1eb..bd60b6cb95b619810f4f6ba80a4529905e288f96 100644 GIT binary patch literal 14698 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 Ok;P@Nq+HT@_&)$dwp$JW literal 14418 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 Date: Wed, 6 Mar 2024 16:30:32 -0500 Subject: [PATCH 8/9] Revert "Fix release note span IDs" This reverts commit 8ba20e127c3c75fe8336a8136cef9f8688597695. --- scripts/lib/api/conversionPipeline.ts | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/scripts/lib/api/conversionPipeline.ts b/scripts/lib/api/conversionPipeline.ts index 1552a490d49..da735333f5a 100644 --- a/scripts/lib/api/conversionPipeline.ts +++ b/scripts/lib/api/conversionPipeline.ts @@ -193,9 +193,7 @@ async function handleReleaseNotesFile( if (!pkg.hasSeparateReleaseNotes) { // Deal with Reno issue: https://github.com/Qiskit/documentation/issues/978 if (pkg.name === "qiskit-ibm-runtime") { - result.markdown = result.markdown - .replace("# HACK FOR RENO ISSUE", "") - .replaceAll('id="hack-for-reno-issue-', 'id="release-notes-'); + result.markdown = result.markdown.replace("# HACK FOR RENO ISSUE", ""); } return pkg.isLatest(); } From fed3dd49c79ae98d84a0e7c2f5424136da515633 Mon Sep 17 00:00:00 2001 From: Eric Arellano <14852634+Eric-Arellano@users.noreply.github.com> Date: Wed, 6 Mar 2024 16:34:31 -0500 Subject: [PATCH 9/9] Fix link checker --- scripts/commands/checkInternalLinks.ts | 2 ++ scripts/lib/links/ignores.ts | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/scripts/commands/checkInternalLinks.ts b/scripts/commands/checkInternalLinks.ts index 6e49659edbe..a1edb1d3562 100644 --- a/scripts/commands/checkInternalLinks.ts +++ b/scripts/commands/checkInternalLinks.ts @@ -100,8 +100,10 @@ async function main() { const PROVIDER_GLOBS_TO_LOAD = ["docs/api/qiskit/*.md"]; const RUNTIME_GLOBS_TO_LOAD = [ "docs/api/qiskit/providers_models.md", + "docs/api/qiskit-ibm-runtime/options.md", "docs/run/max-execution-time.mdx", "docs/run/configure-error-mitigation.mdx", + "docs/run/configure-runtime-compilation.mdx", ]; const QISKIT_GLOBS_TO_LOAD = [ "docs/build/circuit-construction.ipynb", diff --git a/scripts/lib/links/ignores.ts b/scripts/lib/links/ignores.ts index c166378ff22..f8b601c44f3 100644 --- a/scripts/lib/links/ignores.ts +++ b/scripts/lib/links/ignores.ts @@ -64,7 +64,7 @@ type FilesToIgnores = { [id: string]: string[] }; const _QPY_IGNORES = ["#f1", "#f2", "#f3", "#id2", "#id4", "#id6", "#id8"]; const _RUNTIME_OBJECT_INV = Object.fromEntries( - ["", "dev/", "0.16/", "0.17/", "0.18/", "0.19/"].map((vers) => [ + ["", "dev/", "0.16/", "0.17/", "0.18/", "0.19/", "0.20/"].map((vers) => [ `public/api/qiskit-ibm-runtime/${vers}objects.inv`, [ `/api/qiskit-ibm-runtime/${vers}qiskit_ibm_runtime.RuntimeEncoder#key_separator`,