PennyLaneAI / pennylane-orquestra

The PennyLane-Orquestra plugin integrates the Orquestra workflow management system with PennyLane

Home Page:https://docs.pennylane.ai/projects/orquestra

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Add noise model support for Qiskit simulators

antalszava opened this issue · comments

Context
Orquestra provides the option to pass noise model and connectivity information when using Qiskit simulators (see Orquestra workflow example with a noise model).

We would like to allow this option to be available when using the orquestra.qiskit device by passing a noise_data dictionary as a keyword argument.

Required entries of the noise_data dictionary would include:

  • device_name: the IBMQ hardware device for which we'd like to obtain the noise model and connectivity data for
  • api_token: a valid IBMQ token used while extracting noise model data

For generating workflows, this would include adding a preliminary step that extracts noise model data using the {"file": "qe-qiskit/steps/noise.py", "function": "get_qiskit_noise_model"} Orquestra provided function.

Draft
The qiskit_noise_models branch contains a draft version of the described functionality:

  1. The server-side code is adjusted to parse keyword arguments for a noise model and device connectivity. These data are then used during backend creation.
  2. The client-side code is changed to allow parsing noise model data and generating workflows include a noise-model extraction step. Further improvements and changes to workflow generation are needed.

Batch execute

It is worth noting the case of workflows with parallel steps when using device.batch_execute.

When using the device.batch_execute method, a workflow with multiple parallel steps computing expectation values would be created (e.g., named expval). If a noise model is defined for the backend to be used, extracting this noise model would mean adding a single step along with batch_size many steps computing expectation values to the same workflow. Each of the expval steps would depend on the same noise model artifact of the first step. Therefore, it is worth considering if this could lead to problems with multiple steps attempting to access the same resource.