Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

basicaer handling of global_phase. #4915

Merged
merged 28 commits into from
Sep 24, 2020
Merged

Conversation

ewinston
Copy link
Contributor

@ewinston ewinston commented Aug 12, 2020

Summary

Adds handling of global_phase carried in header of Qobj as added in #4822. Addresses qiskit-terra aspect of issue #4805.

Details and comments

In order to resolves the example shown in #4805 it was also necessary to make some transpiler passes aware of global_phase so it did not get dropped from the dag.

fixes #4805
fixes #3669
fixes #5004

@ewinston ewinston marked this pull request as ready for review August 25, 2020 06:01
@ewinston ewinston requested review from jyu00 and a team as code owners August 25, 2020 06:01
@CLAassistant
Copy link

CLAassistant commented Sep 3, 2020

CLA assistant check
All committers have signed the CLA.

ewinston and others added 9 commits September 9, 2020 03:48
This preserves global phase in newly created dagcircuit.
This commit drops support for running with python 3.5. It marks the
minimum supported version of the package as python 3.6, removes python
3.5 package pins, removes the 3.5 CI jobs, and removes the warning on
python 3.5. Looking at the PyPI stats since the deprecation period
started the number of users on Python 3.5 has diminished significantly,
but not disappeared. There were 783 downloads with pip from pypi out of
total of 25782 total pip downloads in the last 30 days. Compared to the
roughly 10% figure when we deprecated Python 3.5.

Merging this means we can not release until after the documented EoL
date for Python 3.5 support of September 13. This shouldn't be a problem
because with Qiskit#4767 we will need to coordinate the release of all the
qiskit elements and are planning to do that after 09/13/2020.

It's worth noting that we should start planning to deprecate python 3.6
support sooner rather than later it goes EoL upstream at the end of
next year [1] and some of our other upstream dependencies (mainly numpy
et al) are going to remove support before the upstream Python EoL date
[2].

[1] https://devguide.python.org/#branchstatus
[2] https://numpy.org/neps/nep-0029-deprecation_policy.html

Co-authored-by: Kevin Krsulich <kevin.krsulich@ibm.com>
The recent reno release 3.2.0 included a new feature [1] for setting the
character encoding that reno uses for all it's files. [2] This commit
sets this option in the reno config file to make the release note files
explicitly utf8. This is important (especially for windows users)
because we have literal inlines of the text drawer in some release notes
which use utf8 characters. This should avoid issues for users who's
system encoding is not compatible with the text drawer output in the
release notes.

[1] https://opendev.org/openstack/reno/commit/984bcba17e4e0b46763f42015d09680e5c5d5a04
[2] https://docs.openstack.org/reno/latest/user/usage.html#configuring-reno
…it#4945)

Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
- Resolves Qiskit#4978

Co-authored-by: Kevin Krsulich <kevin.krsulich@ibm.com>
* Add tutorials job to CI

This commit adds a new job to run the qiskit tutorials in CI. The
tutorials are used as a form of upgrade testing to ensure that for key
examples Qiskit as a whole is N and N+1 releases. This caused friction
during the qiskit 0.20.0 release because the tutorials were never
updated to stop using deprecated code (or in the case of other elements
by merging backwards incompatible changes). To ensure there aren't any
surprises at the last minute when we run the tutorials with a proposed
new metapackage this commit adds a job to CI to ensure that they always
run with terra changes. It means for PRs that change an api (after a
deprecation cycle) the tutorial will need to be updated first. This will
ensure that users will have an upgrade path because CI in
qiskit/qiskit-tutorials runs with the metapackage.

* Install pandoc in tutorials job

* Remove aqua tutorials from ci job for run time

* Fix rm path and speed up tutorials clone

* Try pinning matplotlib

* Try fixing archive path

* Add back aqua tutorials

Co-authored-by: Luciano Bello <luciano.bello@ibm.com>
Co-authored-by: Kevin Krsulich <kevin.krsulich@ibm.com>
* Check if circuit is an instance of QuantumObject before comparing it
Added a few tests

* Fixed lint error

Co-authored-by: Kevin Krsulich <kevin.krsulich@ibm.com>
Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
Co-authored-by: Luciano Bello <luciano.bello@ibm.com>
Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
@mtreinish mtreinish added this to the 0.16 milestone Sep 15, 2020
Copy link
Member

@kdk kdk left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the updates. Looks good. One question on optimize_1q_gates.

qiskit/transpiler/passes/optimization/optimize_1q_gates.py Outdated Show resolved Hide resolved
@ewinston
Copy link
Contributor Author

@kdk Good catch. Maybe this is a reason to put the phase on the dag? I think the alternative would be to create a composite gate whose definition is U3 with a global phase but I'm not sure that would be as nice.

@kdk kdk added automerge Changelog: New Feature Include in the "Added" section of the changelog labels Sep 23, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Changelog: New Feature Include in the "Added" section of the changelog global-phase
Projects
None yet
7 participants