Our review
FakePeekskill is a simulated backend class in Qiskit IBM Runtime, replicating a 27-qubit quantum processor for circuit development and testing.
Strengths
- Simulates a realistic IBM backend with 27 qubits
- Includes coupling map and instruction durations
- Allows testing circuits without real quantum hardware access
Limitations
- Does not replace a real quantum computer
- Limited to 27 qubits
- May not capture all real noise
Use FakePeekskill when you need to test or develop quantum circuits in a simulated environment that mimics a real IBM backend.
Avoid using it when you need results from actual quantum hardware or require higher qubit counts.
Security analysis
SafeThis is a documentation page for a fake backend class in Qiskit. It contains no executable code or harmful instructions.
No concerns found
Examples
Create a quantum circuit with a Hadamard gate and measurement, then run it on the FakePeekskill backend using Qiskit.List the qubits, coupling map, and supported instructions of the FakePeekskill backend.Simulate a 27-qubit quantum circuit using FakePeekskill and compare the results with an ideal simulation.title: FakePeekskill (latest version) description: API reference for qiskit_ibm_runtime.fake_provider.FakePeekskill in the latest version of qiskit-ibm-runtime in_page_toc_min_heading_level: 1 python_api_type: class python_api_name: qiskit_ibm_runtime.fake_provider.FakePeekskill
FakePeekskill
<Class id="qiskit_ibm_runtime.fake_provider.FakePeekskill" isDedicatedPage={true} github="https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.45/qiskit_ibm_runtime/fake_provider/backends/peekskill/fake_peekskill.py#L21-L27" signature="FakePeekskill" modifiers="class"> Bases: `FakeBackendV2`A fake 27 qubit backend.
FakeBackendV2 initializer.
Attributes
backend_name
<Attribute id="qiskit_ibm_runtime.fake_provider.FakePeekskill.backend_name" attributeValue="'fake_peekskill'" />conf_filename
<Attribute id="qiskit_ibm_runtime.fake_provider.FakePeekskill.conf_filename" attributeValue="'conf_peekskill.json'" />coupling_map
<Attribute id="qiskit_ibm_runtime.fake_provider.FakePeekskill.coupling_map"> Return the [`CouplingMap`](/docs/api/qiskit/qiskit.transpiler.CouplingMap) object </Attribute>dirname
<Attribute id="qiskit_ibm_runtime.fake_provider.FakePeekskill.dirname" attributeValue="'/home/runner/work/qiskit-ibm-runtime/qiskit-ibm-runtime/qiskit_ibm_runtime/fake_provider/backends/peekskill'" />dt
<Attribute id="qiskit_ibm_runtime.fake_provider.FakePeekskill.dt"> Return the system time resolution of input signalsThis is required to be implemented if the backend supports Pulse scheduling.
**Returns**
The input signal timestep in seconds. If the backend doesn’t define `dt`, `None` will be returned.
</Attribute>
dtm
<Attribute id="qiskit_ibm_runtime.fake_provider.FakePeekskill.dtm"> Return the system time resolution of output signals**Returns**
The output signal timestep in seconds.
</Attribute>
instruction_durations
<Attribute id="qiskit_ibm_runtime.fake_provider.FakePeekskill.instruction_durations"> Return the [`InstructionDurations`](/docs/api/qiskit/qiskit.transpiler.InstructionDurations) object. </Attribute>instructions
<Attribute id="qiskit_ibm_runtime.fake_provider.FakePeekskill.instructions"> A list of Instruction tuples on the backend of the form `(instruction, (qubits)` </Attribute>max_circuits
<Attribute id="qiskit_ibm_runtime.fake_provider.FakePeekskill.max_circuits"> This property used to return the max\_experiments value from the backend configuration but this value is no longer an accurate representation of backend circuit limits. New fields will be added to indicate new limits. </Attribute>meas_map
<Attribute id="qiskit_ibm_runtime.fake_provider.FakePeekskill.meas_map"> Return the grouping of measurements which are multiplexedThis is required to be implemented if the backend supports Pulse scheduling.
**Returns**
The grouping of measurements which are multiplexed
**Raises**
**NotImplementedError** – if the backend doesn’t support querying the measurement mapping
</Attribute>
num_qubits
<Attribute id="qiskit_ibm_runtime.fake_provider.FakePeekskill.num_qubits"> Return the number of qubits the backend has. </Attribute>operation_names
<Attribute id="qiskit_ibm_runtime.fake_provider.FakePeekskill.operation_names"> A list of instruction names that the backend supports. </Attribute>operations
<Attribute id="qiskit_ibm_runtime.fake_provider.FakePeekskill.operations"> A list of [`Instruction`](/docs/api/qiskit/qiskit.circuit.Instruction) instances that the backend supports. </Attribute>options
<Attribute id="qiskit_ibm_runtime.fake_provider.FakePeekskill.options"> Return the options for the backendThe 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.
</Attribute>
props_filename
<Attribute id="qiskit_ibm_runtime.fake_provider.FakePeekskill.props_filename" attributeValue="'props_peekskill.json'" />provider
<Attribute id="qiskit_ibm_runtime.fake_provider.FakePeekskill.provider"> Return the backend provider.**Returns**
the provider responsible for the backend.
**Return type**
provider
</Attribute>
target
<Attribute id="qiskit_ibm_runtime.fake_provider.FakePeekskill.target"> A [`qiskit.transpiler.Target`](/docs/api/qiskit/qiskit.transpiler.Target) object for the backend.**Return type**
Target
</Attribute>
version
<Attribute id="qiskit_ibm_runtime.fake_provider.FakePeekskill.version" attributeValue="2" />name
<Attribute id="qiskit_ibm_runtime.fake_provider.FakePeekskill.name"> Name of the backend. </Attribute>description
<Attribute id="qiskit_ibm_runtime.fake_provider.FakePeekskill.description"> Optional human-readable description. </Attribute>online_date
<Attribute id="qiskit_ibm_runtime.fake_provider.FakePeekskill.online_date"> Date that the backend came online. </Attribute>backend_version
<Attribute id="qiskit_ibm_runtime.fake_provider.FakePeekskill.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. </Attribute>Methods
check_faulty
<Function id="qiskit_ibm_runtime.fake_provider.FakePeekskill.check_faulty" github="https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.45/qiskit_ibm_runtime/fake_provider/fake_backend.py#L175-L207" signature="check_faulty(circuit)"> Check if the input circuit uses faulty qubits or edges.**Parameters**
**circuit** ([*QuantumCircuit*](/docs/api/qiskit/qiskit.circuit.QuantumCircuit)) – Circuit to check.
**Raises**
**ValueError** – If an instruction operating on a faulty qubit or edge is found.
**Return type**
None
</Function>
configuration
<Function id="qiskit_ibm_runtime.fake_provider.FakePeekskill.configuration" github="https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.45/qiskit_ibm_runtime/fake_provider/fake_backend.py#L171-L173" signature="configuration()"> Return the backend configuration.**Return type**
[*QasmBackendConfiguration*](models-qasm-backend-configuration "qiskit_ibm_runtime.models.backend_configuration.QasmBackendConfiguration")
</Function>
properties
<Function id="qiskit_ibm_runtime.fake_provider.FakePeekskill.properties" github="https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.45/qiskit_ibm_runtime/fake_provider/fake_backend.py#L158-L169" signature="properties(refresh=False)"> Return the backend properties**Parameters**
**refresh** (*bool*) – If `True`, re-retrieve the backend properties from the local file.
**Returns**
The backend properties.
**Return type**
[*BackendProperties*](models-backend-properties "qiskit_ibm_runtime.models.backend_properties.BackendProperties")
</Function>
qubit_properties
<Function id="qiskit_ibm_runtime.fake_provider.FakePeekskill.qubit_properties" signature="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** (*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
**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
**Return type**
[*QubitProperties*](/docs/api/qiskit/qiskit.providers.QubitProperties) | *List*\[[*QubitProperties*](/docs/api/qiskit/qiskit.providers.QubitProperties)]
</Function>
refresh
<Function id="qiskit_ibm_runtime.fake_provider.FakePeekskill.refresh" github="https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.45/qiskit_ibm_runtime/fake_provider/fake_backend.py#L394-L465" signature="refresh(service, use_fractional_gates=False)"> Update the data files from its real counterpartThis method pulls the latest backend data files from their real counterpart and overwrites the corresponding files in the local installation:
* `../fake_provider/backends/{backend_name}/conf_{backend_name}.json`
* `../fake_provider/backends/{backend_name}/defs_{backend_name}.json`
* `../fake_provider/backends/{backend_name}/props_{backend_name}.json`
The new data files will persist through sessions so the files will stay updated unless they are manually reverted locally or when `qiskit-ibm-runtime` is upgraded or reinstalled.
**Parameters**
* **service** ([*QiskitRuntimeService*](qiskit-runtime-service "qiskit_ibm_runtime.qiskit_runtime_service.QiskitRuntimeService")) – A `QiskitRuntimeService` instance
* **use\_fractional\_gates** (*bool*) – Set True to allow for the backends to include fractional gates.
**Raises**
* **ValueError** – if the provided service is a non-QiskitRuntimeService instance.
* **Exception** – If the real target doesn’t exist or can’t be accessed
**Return type**
None
</Function>
run
<Function id="qiskit_ibm_runtime.fake_provider.FakePeekskill.run" github="https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.45/qiskit_ibm_runtime/fake_provider/fake_backend.py#L278-L309" signature="run(run_input, **options)"> Run on the fake backend using a simulator.This method runs circuit jobs (an individual or a list of QuantumCircuit) using BasicSimulator or Aer simulator and returns a [`Job`](/docs/api/qiskit/qiskit.providers.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 BasicSimulator without noise.
Currently noisy simulation of a pulse job is not supported yet in FakeBackendV2.
**Parameters**
* **run\_input** (*QuantumCircuit or list*) – An individual or a list of [`QuantumCircuit`](/docs/api/qiskit/qiskit.circuit.QuantumCircuit)
* **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
</Function>
set_options
<Function id="qiskit_ibm_runtime.fake_provider.FakePeekskill.set_options" signature="set_options(**fields)"> Set the options fields for the backendThis 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
</Function>
status
<Function id="qiskit_ibm_runtime.fake_provider.FakePeekskill.status" github="https://github.com/Qiskit/qiskit-ibm-runtime/tree/stable/0.45/qiskit_ibm_runtime/fake_provider/fake_backend.py#L140-L156" signature="status()"> Return the backend status.**Returns**
The status of the backend.
**Return type**
[*BackendStatus*](models-backend-status "qiskit_ibm_runtime.models.backend_status.BackendStatus")
</Function>
</Class>TDD Red-Green-Refactor
Testing
Skill that guides Claude through the complete TDD cycle.
Web Accessibility Audit
Testing
Performs a comprehensive web accessibility audit following WCAG standards.
UAT Test Case Generator
Testing
Generates structured and comprehensive user acceptance test cases.