PennyLaneAI / PennyLaneAI/catalyst
Accurate max wire count for the `--resource-tracker` pass
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 234
- Forks
- 84
- Avg merge
- 2d 15h
- Merged PRs (30d)
- 66
Description
Recently added in #2479, this pass counts the number of gates appearing in an Catalyst program. It would be nice if it would report the maximum number of wires used by the program. For instance, it can count:
- the initial allocation (corresponding to
device(..., wires=X)) - dynamic allocations
- we can restrict us to the case where these appear in alloc/dealloc pairs within the same scope
- then, as we are traversing the program, increment on allocation and decrement on deallocation
- simultaneously, keep track of the max value seen so far
Does not work with dynamically-sized allocations of course.
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 with the --resource-tracker pass introduced in #2479 and trace how it counts gates while traversing a Catalyst program. Implement tracking for initial wires and fixed-size alloc/dealloc pairs, retaining the maximum; dynamically sized allocations remain unsupported. Verify the reported count against programs using both initial and dynamic allocations.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- compilers
- Issue type
- Feature
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 48/100