PennyLaneAI / PennyLaneAI/catalyst

Accurate max wire count for the `--resource-tracker` pass

Open
#2,583 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

enhancement
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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.