munich-quantum-toolkit / munich-quantum-toolkit/core
⚡️ Use Configurable (Defaults to 16-Bit) Integer Size Indexing in Mapping Pass
Nobody has claimed this yet.
- Dominant language
- C++
- Stars
- 133
- Forks
- 73
- Avg merge
- 17h 34m
- Merged PRs (30d)
- 261
Description
Currently, we use size_t throughout the mapping pass implementation to represent indices. Usually, this is fine as size_t represents the largest representable datatype for indices. However, state-of-the-art quantum computers don't surpass the 2^16=65.536 threshold and hence a smaller datatype might be just fine.
Resolving this issue includes the following steps:
- Implement a configurable index size which defaults to
uint16_t. Template where necessary. - Benchmark the mapping pass using larger-scale circuits (such as grover). Answer: Is the performance gain noticeable?
- Decide whether the performance gain justifies the "additional implementation overhead".
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by locating the mapping pass implementation and inventorying where size_t represents indices. Benchmark larger-scale circuits such as grover before and after a configurable index size defaulting to uint16_t, then compare the performance gain with the added implementation overhead to determine whether the change is justified.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- compilers, performance
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100