Skip to main contentIBM Quantum Documentation
This page is from an old version of Qiskit SDK and does not exist in the latest version. We recommend you migrate to the latest version. See the release notes for more information.

Qiskit Tools

qiskit.tools


Parallel Routines

A helper function for calling a custom function with python ProcessPoolExecutor. Tasks can be executed in parallel using this function. It has a built-in event publisher to show the progress of the parallel tasks.

parallel_map

qiskit.tools.parallel_map(task, values, task_args=(), task_kwargs={}, num_processes=2)

GitHub

Parallel execution of a mapping of values to the function task. This is functionally equivalent to:

result = [task(value, *task_args, **task_kwargs) for value in values]

On Windows this function defaults to a serial implementation to avoid the overhead from spawning processes in Windows.

Parameters

  • task (func) – Function that is to be called for each value in values.
  • values (array_like) – List or array of values for which the task function is to be evaluated.
  • task_args (list) – Optional additional arguments to the task function.
  • task_kwargs (dict) – Optional additional keyword argument to the task function.
  • num_processes (int) – Number of processes to spawn.

Returns

The result list contains the value of

task(value, *task_args, **task_kwargs) for

each value in values.

Return type

result

Raises

QiskitError – If user interrupts via keyboard.

Events:

terra.parallel.start: The collection of parallel tasks are about to start. terra.parallel.update: One of the parallel task has finished. terra.parallel.finish: All the parallel tasks have finished.

Examples

import time
from qiskit.tools.parallel import parallel_map
def func(_):
        time.sleep(0.1)
        return 0
parallel_map(func, list(range(10)));

Monitoring

A helper module to get IBM backend information and submitted job status.

job_monitor

qiskit.tools.job_monitor(job, interval=None, quiet=False, output=<_io.TextIOWrapper name='<stdout>' mode='w' encoding='utf-8'>, line_discipline='\r')

GitHub

Monitor the status of a IBMQJob instance.

Parameters

  • job (BaseJob) – Job to monitor.
  • interval (int) – Time interval between status queries.
  • quiet (bool) – If True, do not print status messages.
  • output (file) – The file like object to write status messages to.
  • sys.stdout. (By default this is) –
  • line_discipline (string) – character emitted at start of a line of job monitor output,
  • r. (This defaults to) –

Examples

from qiskit import BasicAer, transpile
from qiskit.circuit import QuantumCircuit
from qiskit.tools.monitor import job_monitor
sim_backend = BasicAer.get_backend("qasm_simulator")
qc = QuantumCircuit(2, 2)
qc.h(0)
qc.cx(0, 1)
qc.measure_all()
tqc = transpile(qc, sim_backend)
job_sim = sim_backend.run(tqc)
job_monitor(job_sim)

backend_monitor

qiskit.tools.backend_monitor(backend)

GitHub

Monitor a single IBMQ backend.

Parameters

backend (IBMQBackend) – Backend to monitor.

Raises

Examples: .. code-block:: python

from qiskit.providers.ibmq import IBMQ from qiskit.tools.monitor import backend_monitor provider = IBMQ.get_provider(hub=’ibm-q’) backend_monitor(provider.backends.ibmq_lima)

backend_overview

qiskit.tools.backend_overview()

GitHub

Gives overview information on all the IBMQ backends that are available.

Examples

from qiskit.providers.ibmq import IBMQ
from qiskit.tools.monitor import backend_overview
provider = IBMQ.get_provider(hub='ibm-q')
backend_overview()

Events (qiskit.tools.events)

A helper component for publishing and subscribing to events.

TextProgressBar

class qiskit.tools.events.TextProgressBar(output_handler=None)

GitHub

A simple text-based progress bar.

output_handlerthe handler the progress bar should be written to, default

is sys.stdout, another option is sys.stderr

Examples

The progress bar can be used to track the progress of a parallel_map.

import numpy as np
import qiskit.tools.jupyter
from qiskit.tools.parallel import parallel_map
from qiskit.tools.events import TextProgressBar
 
TextProgressBar()
%qiskit_progress_bar -t text
parallel_map(np.sin, np.linspace(0,10,100));

And it can also be used individually.

from qiskit.tools.events import TextProgressBar
 
iterations = 100
t = TextProgressBar()
t.start(iterations=iterations)
for i in range(iterations):
    # step i of heavy calculation ...
    t.update(i + 1)  # update progress bar
Was this page helpful?
Report a bug or request content on GitHub.