Skip to content
This repository was archived by the owner on May 7, 2025. It is now read-only.
This repository was archived by the owner on May 7, 2025. It is now read-only.

Update and migrate Qiskit Terra fake backends #26

Description

@HuangJunye

Description

This project proposal aims to address Qiskit/qiskit#9553.

Qiskit Terra has a fake provider module that contains a number of fake backends with device properties snapshots of IBM Quantum Systems. These fake backends primarily have two purposes (quoted from Qiskit/qiskit#9553):

  1. For terra developers who use as the fake backends to test Qiskit specific functionality in the transpiler, visualization, pulse, etc. modules (e.g. using FakeSherbrooke to exercise compilation to ECR gates)
  2. For end users who, following the model of how the fake backends are used in release notes, documentation, Qiskit textbook, want to use the fake backends as as snapshots of IBM devices

These differ mainly in that the first use case doesn't want to couple strongly to provider-specific behavior like the use of custom properties (to avoid mixing vendor- or provider-specific behavior with base terra testing and implementations) while the second explicitly does want a strong coupling between fake and real backends (to avoid having to write special case handling for the fake backends, or complicate using them to test and validate code before sending to real devices).

We plan to address this issue in the following steps:

  1. Update existing test usage to remove IBM-derived fake backends in favor of case-specific fake backend construction (e.g. test-local fake backends to exercise specific cases) and a collection of vendor-agnostic fake backends for common cases, named for what property they help exercise (e.g. Fake500Qubits, FakeWithISwap, ...)
  2. Migrate the existing IBM-derived fake backends (and the associated tooling) from their location in qiskit.providers.fake_provider to the qiskit_ibm_provider package
  3. Update fake backend usage in documentation to reference new location
  4. Deprecate IBM-derived fake backends from qiskit.providers.fake_provider

Deliverables

Each of the step of the plan will involve one or multiple pull requests to the relevant github repos (qiskit-terra and qiskit-ibm-provider. The PRs will contain documentation content (api reference, how-to guides, etc.) as well as code changes.

Mentors details

  • Mentor 1
    • Name: Junye Huang
    • GitHub ID: @HuangJunye
    • What they do: Quantum Developer Advocate

Number of mentees

2 1

Type of mentees

This project can be split into two parts. One mentee can work on step 1 for updating fake backends and another mentee can work on step 2 migrating fake backends to qiskit-ibm-provider. These two projects can be done relatively independently. I think step 1 is a bit easier to do than step 2 so it's more friendly for beginners. We ended up choosing only one mentee due to time zone constrains.

  • Mentee 1 (@MozammilQ)
    • Required:
      • Familiar with Python development
    • Nice to have:
      • Experience in contributing to Qiskit

- Mentee 2
- Required:
- Familiar with Python development
- Nice to have:
- Experience in contributing to Qiskit

Metadata

Metadata

Type

No type

Projects

Status
Final Showcase Submitted

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions