CompositeExperiment¶
- class CompositeExperiment(experiments, physical_qubits, backend=None, experiment_type=None, flatten_results=True, analysis=None)[source]¶
Composite Experiment base class
Initialize the composite experiment object.
- Parameters:
experiments (List[BaseExperiment]) – a list of experiment objects.
physical_qubits (Sequence[int]) – list of physical qubits for the experiment.
backend (Backend | None) – Optional, the backend to run the experiment on.
experiment_type (str | None) – Optional, composite experiment subclass name.
flatten_results (bool) – If True flatten all component experiment results into a single ExperimentData container, including nested composite experiments. If False save each component experiment results as a separate child ExperimentData container. This kwarg is ignored if the analysis kwarg is used.
analysis (CompositeAnalysis | None) – Optional, the composite analysis class to use. If not provided this will be initialized automatically from the supplied experiments.
- Raises:
QiskitError – If the provided analysis class is not a CompositeAnalysis instance.
Attributes
- analysis¶
Return the analysis instance for the experiment
- backend¶
Return the backend for the experiment
- experiment_options¶
Return the options for the experiment.
- experiment_type¶
Return experiment type.
- num_experiments¶
Return the number of sub experiments
- num_qubits¶
Return the number of qubits for the experiment.
- physical_qubits¶
Return the device qubits for the experiment.
Methods
- abstract circuits()[source]¶
Return a list of experiment circuits.
- Returns:
A list of
QuantumCircuit
.
Note
These circuits should be on qubits
[0, .., N-1]
for an N-qubit experiment. The circuits mapped to physical qubits are obtained via the internal_transpiled_circuits()
method.
- component_experiment(index=None)[source]¶
Return the component Experiment object.
- Parameters:
index (int) – Experiment index, or
None
if all experiments are to be returned.- Returns:
The component experiment(s).
- Return type:
- config()¶
Return the config dataclass for this experiment
- Return type:
- classmethod from_config(config)¶
Initialize an experiment from experiment config
- Return type:
- job_info(backend=None)¶
Get information about job distribution for the experiment on a specific backend.
- Parameters:
backend (Backend) – Optional, the backend for which to get job distribution information. If not specified, the experiment must already have a set backend.
- Returns:
A dictionary containing information about job distribution.
”Total number of circuits in the experiment”: Total number of circuits in the experiment.
”Maximum number of circuits per job”: Maximum number of circuits in one job based on backend and experiment settings.
”Total number of jobs”: Number of jobs needed to run this experiment on the currently set backend.
- Return type:
dict
- Raises:
QiskitError – if backend is not specified.
- run(backend=None, sampler=None, analysis='default', timeout=None, backend_run=None, **run_options)¶
Run an experiment and perform analysis.
- Parameters:
backend (Backend | None) – Optional, the backend to run on. Will override existing backend settings.
sampler (BaseSamplerV2 | None) – Optional, the sampler to run the experiment on. If None then a sampler will be invoked from previously set backend
analysis (BaseAnalysis | None) – Optional, a custom analysis instance to use for performing analysis. If None analysis will not be run. If
"default"
the experimentsanalysis()
instance will be used if it contains one.timeout (float | None) – Time to wait for experiment jobs to finish running before cancelling.
backend_run (bool | None) – Use backend run (temp option for testing)
run_options – backend runtime options used for circuit execution.
- Returns:
The experiment data object.
- Raises:
QiskitError – If experiment is run with an incompatible existing ExperimentData container.
- Return type:
- set_experiment_options(**fields)¶
Set the experiment options.
- Parameters:
fields – The fields to update the options
- Raises:
AttributeError – If the field passed in is not a supported options
- set_run_options(**fields)[source]¶
Set options values for the experiment
run()
method.- Parameters:
fields – The fields to update the options
See also
The Setting options for your experiment guide for code example.
- set_transpile_options(**fields)[source]¶
Set the transpiler options for
run()
method.- Parameters:
fields – The fields to update the options
- Raises:
QiskitError – If initial_layout is one of the fields.
See also
The Setting options for your experiment guide for code example.