Skip to main content
IBM Quantum Platform

Specify Executor options

  • The code on this page was developed using the following requirements. We recommend using these versions or newer.

    qiskit-ibm-runtime~=0.46.1
    

You can use options to customize the Executor primitive. Unlike Sampler and Estimator, Executor has very few options since the majority of the design intents is encoded in the samplex.

Notes
  • You can see the available options and update option values during or after primitive initialization.
  • Use the update() method to apply changes to the options attribute.
  • The options attribute is the dataclass Python type. You can use the built-in asdict method to convert it to a dictionary.
  • Executor can only process information encoded in samplexes. Refer to the Samplomatic guides to understand restrictions.

Set Executor options

If an option is specified both during and after primitive initialization, the value set after initializing the primitive is used.

Primitive initialization

You can pass in an instance of the options class or a dictionary when initializing Executor, which then makes a copy of those options. Thus, changing the original dictionary or options instance doesn't affect the options owned by the primitive.

Options class

When creating an instance of the Executor class, you can pass in an instance of the options class. Those options are then applied when you use run() to perform the calculation. Specify the options in this format: options.option.sub-option.sub-sub-option = choice. For example: options.environment.log_level = INFO.

Example:

from qiskit_ibm_runtime import QiskitRuntimeService, Executor
from qiskit_ibm_runtime.options import ExecutorOptions

service = QiskitRuntimeService()
backend = service.least_busy(operational=True, simulator=False)

options = ExecutorOptions(
    environment={"log_level": "INFO"},
    execution={"init_qubits": True},
)

# or use the following instead:

options = ExecutorOptions()
options.environment.log_level = "INFO"
options.execution.init_qubits = True

executor = Executor(mode=backend, options=options)

Dictionary

You can specify options as a dictionary when initializing Executor.

from qiskit_ibm_runtime import QiskitRuntimeService, Executor

service = QiskitRuntimeService()
backend = service.least_busy(operational=True, simulator=False)

# Setting options during primitive initialization
executor = Executor(
    backend,
    options={
        "environment": {"log_level": "INFO"},
        "execution": {"init_qubits": True},
    },
)

Available options

The following table documents options from the latest version of qiskit-ibm-runtime. To see older option versions, visit the qiskit-ibm-runtime API reference and select a previous version.

  • environment API documentation

    • List of tags.

      Choices: None

      Default: None

    • Choices: DEBUG, INFO, WARNING, ERROR, CRITICAL

      Default: WARNING

    • Choices: True, False

      Default: False

    • Choices: Integer number of seconds in the range [1, 10800]

      Default: 10800 (3 hours)

  • execution API documentation

    • Whether to reset the qubits to the ground state for each shot.

      Choices: True, False

      Default: True

    • The delay between a measurement and the subsequent quantum circuit.

      Choices: Value in the range supplied by backend.rep_delay_range

      Default: Given by backend.default_rep_delay

    • Choices: classified, kerneled, avg_kerneled

      Default: classified

  • Experimental options, when available.


Next steps

Recommendations
Was this page helpful?
Report a bug, typo, or request content on GitHub.