qiskit/releasenotes/notes/0.21/remove-hard-time-limit-vf2-...

26 lines
1.4 KiB
YAML

---
upgrade:
- |
The preset pass managers generated by :func:`~.level_1_pass_manager`,
:func:`~.level_2_pass_manager`, and :func:`~.level_3_pass_manager` and used
by the :func:`~.transpile` function's ``optimization_level`` argument at
1, 2, and 3 respectively no longer set a hard time limit on the
:class:`~.VF2Layout` transpiler pass. This means that the pass will no
longer stop trying to find a better alternative perfect layout up until a
fixed time limit (100ms for level 1, 10 sec for level 2, and 60 sec for
level 3) as doing this limited the reproducibility of compilation when a
perfect layout was available. This means that the output when using the pass
might be different than before, although in all cases it would only change
if a lower noise set of qubits can be found over the previous output. If
you wish to retain the previous behavior you can create a custom
:class:`~.PassManager` that sets the ``time_limit`` argument on the
constructor for the :class:`~VF2Layout` pass.
fixes:
- |
Fixed an issue with reproducibility of the :func:`~.transpile` function
when running with ``optimization_level`` 1, 2, and 3. Previously, under
some conditions when there were multiple perfect layouts (a layout that
doesn't require any SWAP gates) available the selected layout and output
circuit could vary regardless of whether the ``seed_transpiler`` argument
was set.