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

🎨 MQT Bench Update: New device structure and device, code refactoring, and further improvements #429

Open
wants to merge 65 commits into
base: main
Choose a base branch
from

Conversation

nquetschlich
Copy link
Collaborator

@nquetschlich nquetschlich commented Nov 20, 2024

This PR

  1. removes the Provider class (resolves Remove the Provider concept and replace it with base classes of Devices  #387)
  2. removes the placement option for the mapped TKET quantum circuits
  3. removes the frontend and evaluation submodules
  4. adds a new IBM device: ibmq_torino (and, with that, resolves Add 433-Qubit IBM Device with new native gate set #220 kind of)
  5. improves the Device class structure
  6. refactors the tests to accelerate the test execution time
  7. renames the random circuit (resolves Rename random benchmark because of shadowing python's module with the same name #368)
  8. adds a qasm3 export function (resolves ✨ OpenQASM 3.0 support #389)
  9. adds the Bernstein-Vazarani algorithm
  10. removes all benchmarks relying on not-maintained-anymore dependencies qiskit_algorithms, qiskit_optimization, and qiskit_nature (making 🔥Remove most of the qiskit application module benchmarks #404 obsolete and resolves ✨ Removal of deprecated dependencies #390 as well as resolves ✨ Improving documentation to make it more explicit which benchmarks trigger an optimization procedure when generated #388)
  11. renames the vqe ansatz circuit benchmarks and rewrote the qaoa benchmark to not use the qiskit application libraries anymore
  12. adds a algorithm level benchmark generation function for qiskit that only supports qasm3

As a consequence of this PR, the get_benchmark function parameter name changed since it does not need the provider anymore but a gateset. However, this allows one to easily generate benchmarks for custom gatesets.

This PR comes with multiple breaking changes.

Copy link

codecov bot commented Nov 21, 2024

Codecov Report

Attention: Patch coverage is 91.00418% with 43 lines in your changes missing coverage. Please review.

Project coverage is 92.4%. Comparing base (13a3482) to head (8dd5658).

Files with missing lines Patch % Lines
src/mqt/bench/benchmark_generator.py 16.0% 42 Missing ⚠️
src/mqt/bench/qiskit_helper.py 95.4% 1 Missing ⚠️
Additional details and impacted files
@@           Coverage Diff           @@
##            main    #429     +/-   ##
=======================================
- Coverage   92.8%   92.4%   -0.5%     
=======================================
  Files         43      35      -8     
  Lines       1969    1606    -363     
=======================================
- Hits        1828    1484    -344     
+ Misses       141     122     -19     
Flag Coverage Δ
python 92.4% <91.0%> (-0.5%) ⬇️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

@nquetschlich nquetschlich marked this pull request as ready for review November 21, 2024 21:20
@nquetschlich nquetschlich changed the title 🎨 Remove provider class and improve overall structure 🎨 MQT Bench Update: New device structure and device, code refactoring, and further improvements Nov 22, 2024
@nquetschlich nquetschlich added enhancement New feature or request python Pull requests that update Python code labels Nov 23, 2024
@burgholzer burgholzer changed the title 🎨 MQT Bench Update: New device structure and device, code refactoring, and further improvements 🎨 MQT Bench Update: New device structure and device, code refactoring, and further improvements Nov 28, 2024
Signed-off-by: burgholzer <burgholzer@me.com>
Signed-off-by: burgholzer <burgholzer@me.com>
Signed-off-by: burgholzer <burgholzer@me.com>
Signed-off-by: burgholzer <burgholzer@me.com>
Signed-off-by: burgholzer <burgholzer@me.com>
Signed-off-by: burgholzer <burgholzer@me.com>
Signed-off-by: burgholzer <burgholzer@me.com>
Signed-off-by: burgholzer <burgholzer@me.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request feature New feature or request major Part of a major release mqt.bench Issues that affect mqt.bench python Pull requests that update Python code usability Anything related to usability
Projects
Status: In Progress
Status: In Progress
2 participants