Специального API для этого нет, но добавление хуков в симулятор должно быть простым. Исходный код теперь доступен на https://github.com/microsoft/qsharp-runtime.
Существует два подхода:
- Измените реализации операций, чтобы регистрировать идентификатор шлюза и кубита при каждом вызове.
- Добавьте обработчик для события
onOperationStart
в SimulatorBase
, который ищет интересующие вас ворота и регистрирует идентификатор шлюза и кубита.
Первое, вероятно, более утомительно, но проще. Если вы используете второй подход, будет полезно свойство ICallable.Name
.