Skip to content

Conversation

@pedrorrivero
Copy link
Member

Summary

Adds new TwoQubitPauliTwirlPass class to perform Pauli twirling randomly on all two qubit gates of a circuit during transpilation.

Details and comments

  • This is a utility class to avoid manual twirling in present and upcoming notebooks.
  • There are plans for a notebook exposing how the class is built.
  • Needed for the Utility Scaling notebook, demoed at IBM Quantum Practitioner's Forum 2023.
  • Adds a number of internal auxiliary structures:
    • PauliTwirl class -- to represent a single Pauli twirl (i.e. pre- and post-operations plus an induced global phase).
    • generate_pauli_twirls function -- to compute operation-preserving Pauli twirls.
    • PauliTwirlPass parent class -- to perform Pauli twirling in all gates of the circuit (i.e. not just two-qubit gates).
    • A suite of related validation functions to handle user input smoothly.
  • Adds an internal library of pre-computed Pauli twirls for all unparameterized two-qubit in the standard library today. This library is used for performance purposes (i.e. to avoid numerical re-computation of the twirls).

@pedrorrivero pedrorrivero added feature New feature request PL-2 Priority level 2/5 → Medium-high labels Feb 24, 2024
@pedrorrivero pedrorrivero self-assigned this Feb 24, 2024
@coveralls
Copy link

coveralls commented Feb 24, 2024

Pull Request Test Coverage Report for Build 8057236981

Details

  • 0 of 178 (100.0%) changed or added relevant lines in 2 files are covered.
  • No unchanged relevant lines lost coverage.
  • Overall coverage remained the same at 100.0%

Totals Coverage Status
Change from base Build 8031993973: 0.0%
Covered Lines: 182
Relevant Lines: 182

💛 - Coveralls

@pedrorrivero pedrorrivero changed the title feat(mitigation): add TwoQubitPauliTwirlPass class feat(mitigation): add TwoQubitPauliTwirlPass class Feb 24, 2024
Copy link
Contributor

@ashsaki ashsaki left a comment

Choose a reason for hiding this comment

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

Looks good to me. Nice job.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

feature New feature request PL-2 Priority level 2/5 → Medium-high

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants