Skip to content
New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

Feature: Program simplification variant that removes unused calibrations #341

Open
mhodson-rigetti opened this issue Feb 18, 2024 · 1 comment

Comments

@mhodson-rigetti
Copy link

When users build Quil-T programs, they often add the full set of production calibrations to the Quil program. This makes the program very large to persist and slower than necessary to parse. Given the set of instructions in the program, it would be desirable to remove all of unused Quil-T calibrations, frames, and waveforms. For feature completeness, it should also be considered to remove any DEFGATE or DEFCIRCUIT that are not referred to.

This is similar to the existing Program.into_simplified(), except that the calibrations would not be expanded. It may be most appropriate for this feature to be implemented here first, and then exposed suitably through pyquil.

@mhodson-rigetti mhodson-rigetti changed the title Feature: Program simplification variant that removed unused calibrations Feature: Program simplification variant that removes unused calibrations Feb 18, 2024
@mhodson-rigetti
Copy link
Author

Further suggestion: In common use cases, users bring a Program with instructions and some optional subset of new calibrations, frames and waveforms, meant to support novel instructions or to override those available from a prior process. In the override case it is not preferred to add inconsistent duplicates to a single Program and rely on some ordering rule to resolve. It might be preferred to provide a Program to resolve, and then a (potentially empty) ordered list of other calibration-only Programs which are successively used to resolve calibrations, frames and waveforms. Any matched across that ordered resolution fold up into the final result.

# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant