https://github.com/cda-tum/mqt-limdd

https://github.com/cda-tum/mqt-limdd

Science Score: 39.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 3 DOI reference(s) in README
  • Academic publication links
  • Committers with academic emails
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (12.5%) to scientific vocabulary

Keywords from Contributors

archiving parallel generic energy-system-model transformers quantum-circuits mesh distributed projection regionalization
Last synced: 10 months ago · JSON representation

Repository

Basic Info
  • Host: GitHub
  • Owner: cda-tum
  • License: mit
  • Language: C++
  • Default Branch: main
  • Size: 53.3 MB
Statistics
  • Stars: 16
  • Watchers: 3
  • Forks: 1
  • Open Issues: 4
  • Releases: 0
Created almost 3 years ago · Last pushed 11 months ago
Metadata Files
Readme License

README.md

License: MIT C++ Workflow

MQT LIMDD - A quantum circuit simulator based on decision diagrams written in C++

[!IMPORTANT] This simulator uses LIMDD type decision diagrams which only cover a subset of functionality available in mqt-ddsim and mqt-core.

A tool for classical quantum circuit simulation developed as part of the Munich Quantum Toolkit (MQT)[^1] by the Chair for Design Automation at the Technical University of Munich. It builds upon MQT Core, which forms the backbone of the MQT.

Usage

The simulator comes with a stand alone executable that takes input via the command line and output their results as json object.

The following example assumes the simulator has been build from source in the build/ directory. Afterwards, there will be an executable ddsim_simple in build/apps/ which can be used to simulate (among others) OpenQASM files. All executables support the --help parameter to list their options.

``` build/apps/ddsimsimple --help MQT LIMDD by https://www.cda.cit.tum.de/ -- Allowed options: -h [ --help ] produce help message --shots arg number of measurements (if the algorithm does not contain non-unitary gates, weak simulation is used) (default: 0) --ps print simulation stats (applied gates, sim. time, and maximal size of the DD) --simulatefile arg simulate a quantum circuit given by file (detection by the file extension) [...]

build/apps/ddsimsimple --shots 1000 --ps --simulatefile path/to/ghz03.qasm { "statistics": { "appliedgates": 3, "approximationruns": "0", "benchmark": "ghz03", "distinctresults": 2, "finalfidelity": "1.000000", "maxnodes": 7, "nqubits": 3, "seed": "0", "shots": 1000, "simulationtime": 0.00044452399015426636, "singleshots": "1", "step_fidelity": "1.000000" } } ```

References

L. Vinkhuijzen, T. Grurl, S. Hillmich, S. Brand, R. Wille, and A. Laarman. Efficient implementation of LIMDDs for quantum circuit simulation. In International Symposium on Model Checking of Software (SPIN), 2023. DOI: 10.1007/978-3-031-32157-3_1

[^1]: The Munich Quantum Toolkit was formerly known under the acronym JKQ and developed by the Institute for Integrated Circuits at the Johannes Kepler University Linz).

Owner

  • Name: Chair for Design Automation, TU Munich
  • Login: cda-tum
  • Kind: organization
  • Location: Germany

The CDA provides expertise for all main steps in the design and realization of integrated circuits, embedded systems, as well as cyber-physical systems.

GitHub Events

Total
  • Watch event: 7
  • Delete event: 1
  • Issue comment event: 3
  • Push event: 16
  • Pull request event: 4
  • Create event: 3
Last Year
  • Watch event: 7
  • Delete event: 1
  • Issue comment event: 3
  • Push event: 16
  • Pull request event: 4
  • Create event: 3

Committers

Last synced: about 1 year ago

All Time
  • Total Commits: 33
  • Total Committers: 4
  • Avg Commits per committer: 8.25
  • Development Distribution Score (DDS): 0.455
Past Year
  • Commits: 4
  • Committers: 1
  • Avg Commits per committer: 4.0
  • Development Distribution Score (DDS): 0.0
Top Committers
Name Email Commits
pre-commit-ci[bot] 6****] 18
Stefan Hillmich s****h@s****t 11
dependabot[bot] 4****] 3
Lukas Burgholzer b****r@m****m 1
Committer Domains (Top 20 + Academic)
me.com: 1 scch.at: 1

Issues and Pull Requests

Last synced: about 1 year ago

All Time
  • Total issues: 1
  • Total pull requests: 42
  • Average time to close issues: 8 days
  • Average time to close pull requests: 19 days
  • Total issue authors: 1
  • Total pull request authors: 6
  • Average comments per issue: 4.0
  • Average comments per pull request: 1.52
  • Merged pull requests: 24
  • Bot issues: 0
  • Bot pull requests: 36
Past Year
  • Issues: 0
  • Pull requests: 8
  • Average time to close issues: N/A
  • Average time to close pull requests: about 8 hours
  • Issue authors: 0
  • Pull request authors: 3
  • Average comments per issue: 0
  • Average comments per pull request: 1.25
  • Merged pull requests: 4
  • Bot issues: 0
  • Bot pull requests: 7
Top Authors
Issue Authors
  • Quist-A (1)
Pull Request Authors
  • pre-commit-ci[bot] (27)
  • dependabot[bot] (22)
  • hillmich (3)
  • burgholzer (2)
  • timcp (1)
  • Quist-A (1)
Top Labels
Issue Labels
Pull Request Labels
dependencies (22) github_actions (14) python (8) usability (2) major (1)

Dependencies

.github/workflows/cmake.yml actions
  • DoozyX/clang-format-lint-action v0.14 composite
  • actions/checkout v3 composite
  • codecov/codecov-action v3 composite
  • ilammy/msvc-dev-cmd v1 composite
extern/qfr/extern/dd_package/methods-that-require-attention.txt pypi
  • 0.pleasereadthismethodandverifywhetherthingsmoreorlessmakesense *
  • 1.twoLIMsaremultipliedinthefollowinglineinStep1 ,
  • 2.inStep3 ,theprocedurehighLabelZmaychangetheweightonthehighedge,bymultiplyingitby
  • 3.InStep6 ,therootedgeweightismultipliedby
  • Canbeimplementedwithalmostnoreallocationofmemory *
  • CanthishaveunintendedconsequencesiftheCTEntryisalsousedbyanotherweightelsewhereinthediagram *
  • Canthishaveunintendedconsequencesifthesameweightsareusedelsewhereinthediagram *
  • GH *
  • GH_Id *
  • GHisnotdeallocatedproperly *
  • Hereaweightismultipliedby-1 ,inthefunction
  • Ifso ,weshouldrefactorthislinetohavenounintendedconsequences
  • Isthisaviolationofthenormalizationrules *
  • Package.hpp *
  • PauliAlgebra.hpp *
  • Pleasereadthismethodandverifywhetherthingsmoreorlessmakesense *
  • PutthisobjectintheLimTable ,ordeallocateappropriatelyinsomeotherway,e.g.,
  • ShouldthismethodbemovedtoComplex.hpp *
  • Solution *
  • Thefollowinglocalvariablesareallocatedontheheapbutnotdeallocated ,causingmemoryleaks
  • ThefollowingmethodsrequireattentionfromThomasandStefan *
  • ThesamequestionforLimEntry <>
  • Thismayintroduceamemoryleak *
  • ThisprocedureallocatesLimBitsetobjectsintheG_Idvariable ,
  • ThisprocedureremovesLimEntry *
  • a_H *
  • a_prime *
  • allocatesnewLimBitset ,buttheseobjectsareneverdeallocated.
  • buttheseobjectsarenotdeallocated. *
  • deallocate *
  • e.g. ,the
  • inLimTable.hpp *
  • inPauliAlgebra.hpp *
  • k_G *
  • k_H *
  • otherwise ,intheplacesthatcallthisfunction,makesurethattheLimEntryisputintheLimTable
  • putLimEntrypointers *
  • putthenewLimEntryintheLimTable *
  • r.p- >e
  • refactorintoalocalvariable *
  • thefollowinglinemayintroduceamemoryleak ,byallocatinganewLimEntrywithoutdeallocatingthepreviouscontentofG
  • thesameasabove *
  • thisprocedureshouldreducetherefcountoftheLimEntryobjectsitremovesfromG *
  • weight.multiplyByMinusOne *
extern/qfr/extern/json/docs/mkdocs/requirements.txt pypi
  • Babel ==2.10.1
  • GitPython ==3.1.27
  • Jinja2 ==3.1.1
  • Markdown ==3.3.6
  • MarkupSafe ==2.1.1
  • PyYAML ==6.0
  • Pygments ==2.11.0
  • certifi ==2021.10.8
  • charset-normalizer ==2.0.12
  • click ==8.1.2
  • csscompressor ==0.9.5
  • future ==0.18.2
  • ghp-import ==2.0.2
  • gitdb ==4.0.9
  • htmlmin ==0.1.12
  • httplib2 ==0.20.4
  • idna ==3.3
  • importlib-metadata ==4.11.3
  • joblib ==1.1.0
  • jsmin ==3.0.1
  • livereload ==2.6.3
  • lunr ==0.6.2
  • markdown-include ==0.6.0
  • mergedeep ==1.3.4
  • mkdocs ==1.3.0
  • mkdocs-git-revision-date-localized-plugin ==1.0.1
  • mkdocs-material ==8.2.10
  • mkdocs-material-extensions ==1.0.3
  • mkdocs-minify-plugin ==0.5.0
  • mkdocs-simple-hooks ==0.1.5
  • nltk ==3.7
  • packaging ==21.3
  • plantuml ==0.3.0
  • plantuml-markdown ==3.5.2
  • pymdown-extensions ==9.3
  • pyparsing ==3.0.8
  • python-dateutil ==2.8.2
  • pytz ==2022.1
  • pyyaml_env_tag ==0.1
  • regex ==2022.4.24
  • requests ==2.27.1
  • six ==1.16.0
  • smmap ==5.0.0
  • tornado ==6.1
  • tqdm ==4.64.0
  • urllib3 ==1.26.9
  • watchdog ==2.1.7
  • zipp ==3.8.0
extern/qfr/extern/json/tools/serve_header/requirements.txt pypi
  • PyYAML ==6.0
  • watchdog ==2.1.7
extern/qfr/extern/pybind11/docs/requirements.txt pypi
  • breathe ==4.34.0
  • furo ==2022.6.21
  • sphinx ==5.0.2
  • sphinx-copybutton ==0.5.0
  • sphinxcontrib-moderncmakedomain ==3.21.4
  • sphinxcontrib-svg2pdfconverter ==1.2.0
extern/qfr/extern/pybind11/pyproject.toml pypi
extern/qfr/extern/pybind11/setup.py pypi
extern/qfr/extern/pybind11/tests/requirements.txt pypi
  • build ==0.8.0 test
  • numpy ==1.21.5 test
  • numpy ==1.19.3 test
  • numpy ==1.22.2 test
  • pytest ==7.0.0 test
  • pytest-timeout * test
  • scipy ==1.5.4 test
  • scipy ==1.8.0 test
extern/qfr/extern/pybind11/tools/pyproject.toml pypi
extern/qfr/pyproject.toml pypi
extern/qfr/setup.py pypi
.github/workflows/cpp-linter.yml actions
  • actions/checkout v4 composite
  • cpp-linter/cpp-linter-action v2 composite