Open jheckey opened 3 years ago
I think I understand the root cause here. By explicitly setting the rewiring to strategy to PARTIAL
the qubits that were targeted in the PRESERVE_BLOCK
were not the same qubits that the circuit was remapped to. By setting the strategy to NAIVE
I was able to successfully compile.
We should still look into why it's timing out. Even if the the use of PRESERVE_BLOCK
isn't kosher, QUILC should not hang.
With the more recent changes, I am seeing that it just appears to be the INITIAL_REWIRING "PARTIAL"
and PRESERVE_BLOCK
interactions in the pragmas. Previously I had seen other issues with PRESERVE_BLOCK
allowing some bad things (allowing non-native/defcal'd gates, or even just invalid syntax) when going from Quil -> NativeQuil, but that seems to be resolved now.
Creating a minimal example of a program using
PRAGMA PRESERVE_BLOCK
and attempting to see the Native Quil that was generated when targeting the Aspen-9 lattice will generate a timeout in QuilC. The same program works for the '9q-square' lattice.preserve_timeout.zip - Jupyter Notebook with minimal repro
Quil program:
QuilC output: