About cookies on this site Our websites require some cookies to function properly (required). In addition, other cookies may be used with your consent to analyze site usage, improve the user experience and for advertising. For more information, please review your options. By visiting our website, you agree to our processing of information as described in IBM’sprivacy statement. To provide a smooth navigation, your cookie preferences will be shared across the IBM web domains listed here.
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)
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')
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)
Monitor a single IBMQ backend.
Parameters
backend (IBMQBackend) – Backend to monitor.
Raises
- QiskitError – Input is not a IBMQ backend.
- MissingOptionalLibraryError – If qiskit-ibmq-provider is not installed
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()
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)
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.