Skip to content

IBM

IBM Backend

IBM offers a variety of quantum simulators that emulate the behavior of real gate-based quantum computers using classical hardware. With Luna, you can seamlessly access these IBM simulators — available under both free and paid plans — to test and develop quantum algorithms before running them on actual quantum hardware.

Running on Luna Servers

This simulated backend runs on Luna servers.

Initialization

Initialize the IBM backend with:

from luna_quantum.solve.parameters.backends import IBM

backend = IBM(
    backend=IBM.SimulatorBackend(
        backend_type='simulator',
        backend_name='aer'
    )
)

API-Reference

IBM

Bases: IBackend

IBM quantum backend configuration.

This class provides configuration options for IBM quantum backends, supporting both local simulators and fake provider backends for quantum algorithm execution. The configuration allows users to specify which type of backend to use without requiring an IBM token for simulator-based execution.

The class supports two main backend types:

  • Simulator backends: Execute quantum algorithms locally using simulators
  • Fake provider backends: Use IBM's fake backends for testing and development

Attributes:

Name Type Description
backend SimulatorBackend | FakeProviderBackend

The backend configuration, defaults to AER simulator.

backend class-attribute instance-attribute

backend: SimulatorBackend | FakeProviderBackend = Field(
    default=SimulatorBackend(), discriminator="backend_type"
)

provider property

provider: str

Retrieve the name of the provider.

Returns:

Type Description
str

The name of the provider.

FakeProviderBackend

Bases: BaseModel

FaleProvider.

Use a V2 fake backend from qiskit_ibm_runtime.fake_provider. The QAOA is executed entirely on our server, and no IBM token is required.

Attributes:

Name Type Description
backend_name str

Which backend to use

backend_name instance-attribute
backend_name: Literal[
    "FakeAlgiers",
    "FakeAlmadenV2",
    "FakeArmonkV2",
    "FakeAthensV2",
    "FakeAuckland",
    "FakeBelemV2",
    "FakeBoeblingenV2",
    "FakeBogotaV2",
    "FakeBrisbane",
    "FakeBrooklynV2",
    "FakeBurlingtonV2",
    "FakeCairoV2",
    "FakeCambridgeV2",
    "FakeCasablancaV2",
    "FakeCusco",
    "FakeEssexV2",
    "FakeFez",
    "FakeFractionalBackend",
    "FakeGeneva",
    "FakeGuadalupeV2",
    "FakeHanoiV2",
    "FakeJakartaV2",
    "FakeJohannesburgV2",
    "FakeKawasaki",
    "FakeKolkataV2",
    "FakeKyiv",
    "FakeKyoto",
    "FakeLagosV2",
    "FakeLimaV2",
    "FakeLondonV2",
    "FakeManhattanV2",
    "FakeManilaV2",
    "FakeMarrakesh",
    "FakeMelbourneV2",
    "FakeMontrealV2",
    "FakeMumbaiV2",
    "FakeNairobiV2",
    "FakeOsaka",
    "FakeOslo",
    "FakeOurenseV2",
    "FakeParisV2",
    "FakePeekskill",
    "FakePerth",
    "FakePrague",
    "FakePoughkeepsieV2",
    "FakeQuebec",
    "FakeQuitoV2",
    "FakeRochesterV2",
    "FakeRomeV2",
    "FakeSantiagoV2",
    "FakeSherbrooke",
    "FakeSingaporeV2",
    "FakeSydneyV2",
    "FakeTorino",
    "FakeTorontoV2",
    "FakeValenciaV2",
    "FakeVigoV2",
    "FakeWashingtonV2",
    "FakeYorktownV2",
]
backend_type class-attribute instance-attribute
backend_type: Literal['fake_provider'] = 'fake_provider'

SimulatorBackend

Bases: BaseModel

Simulator.

Use a simulator as backend. The QAOA is executed completely on our server, and no IBM token is required.

Attributes:

Name Type Description
backend_name Literal['aer', 'statevector']

Which simulator to use. Currently, AerSimulator from qiskit_aer and the statevector simulator from qiskit.primitives are available.

backend_name class-attribute instance-attribute
backend_name: Literal['aer', 'statevector'] = 'aer'
backend_type class-attribute instance-attribute
backend_type: Literal['simulator'] = 'simulator'