Add qiskit-omelyan#1114
Conversation
Co-authored-by: MarkoMalezic <MarkoMalezic@users.noreply.github.com>
| contact_info = "malezic15@gmail.com" | ||
| labels = [ "circuit building", "circuit optimization", "unitary synthesis", "research",] | ||
| interface = [ "Python",] | ||
| category = "Circuit simulator" |
There was a problem hiding this comment.
Is this the right category?
From https://qisk.it/ecosystem-categories#circuit-simulator
Circuit simulator
Simulates a quantum computer on your local classical computer
If implements HLS plugin interface, maybe it can be a transpiler plugin
There was a problem hiding this comment.
Right, sorry for misunderstanding, and thank you for the suggestion.
Just to clarify: at the moment this project provides a product-formula synthesizer for time-evolution (OmelyanTrotter + concrete schemes) that users call directly via Python
Regarding the “HLS plugin” idea: do you expect ecosystem entries in this category to implement Qiskit’s High-Level Synthesis plugin interface so they can be discovered/used automatically by Qiskit? If so, is that something I should implement on my side within this package.
If you can point me to the recommended plugin interface/docs (or an example repo that implements it), I’d be happy to explore adding it.
There was a problem hiding this comment.
do you expect ecosystem entries in this category to implement Qiskit’s High-Level Synthesis plugin interface so they can be discovered/used automatically by Qiskit?
yes :)
Here some docs https://quantum.cloud.ibm.com/docs/en/guides/create-transpiler-plugin
There was a problem hiding this comment.
do you expect ecosystem entries in this category to implement Qiskit’s High-Level Synthesis plugin interface so they can be discovered/used automatically by Qiskit?
yes
:)Here some docs https://quantum.cloud.ibm.com/docs/en/guides/create-transpiler-plugin
Hey! Thank you for the documentation, and I have an update on my progress.
I did implement and register the omelyan_trotter HLS plugin for PauliEvolutionGate, and it shows up as discoverable via HighLevelSynthesisPluginManager (I see it listed alongside default / rustiq). So the entry-point + plugin registration part seems OK.
Where I’m currently stuck is the user-facing usage / testing path: I can’t reliably figure out how to make the HighLevelSynthesis pass (or the preset pass managers) actually dispatch to the plugin for PauliEvolutionGate. When I try to configure HLSConfig to use omelyan_trotter, the result still looks like the built-in/default evolution (and my plugin’s run() isn’t being invoked when I add a hard raise as a sanity check).
It feels like the docs/examples around PauliEvolution + HLS are a bit inconsistent/out of date across versions (e.g., what key the config should use, and what the “correct” minimal invocation snippet is).
Could you point me to the canonical way to invoke an HLS plugin for PauliEvolutionGate in the currently supported Qiskit version(s)? Even a tiny minimal code snippet that forces selection of a specific method would help a lot—I’m happy to add it as a test / README example once I know the intended API.
Thanks!
There was a problem hiding this comment.
There are examples for synthesis of Clifford, LinearFunction, PermutationGate, QFTGate, and others in https://github.com/Qiskit/qiskit/blob/main/qiskit/transpiler/passes/synthesis/hls_plugins.py
Maybe that helps.
Nomination for: qiskit-omelyan
By @MarkoMalezic, via #1113