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
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
Metadata Files
README.md
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
- Website: https://www.cda.cit.tum.de
- Repositories: 22
- Profile: https://github.com/cda-tum
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
Top Committers
| Name | 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 |
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
- DoozyX/clang-format-lint-action v0.14 composite
- actions/checkout v3 composite
- codecov/codecov-action v3 composite
- ilammy/msvc-dev-cmd v1 composite
- 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 *
- 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
- PyYAML ==6.0
- watchdog ==2.1.7
- 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
- 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
- actions/checkout v4 composite
- cpp-linter/cpp-linter-action v2 composite