Skip to content
New issue

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

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

Already on GitHub? Sign in to your account

Release 0.4.1 & fix state preparation in remote backend #21

Merged
merged 12 commits into from
Nov 7, 2023

Conversation

jrj-d
Copy link
Contributor

@jrj-d jrj-d commented Nov 4, 2023

No description provided.

Julien Dumazert added 11 commits November 4, 2023 13:57
This new version introduces breaking changes and will require some work
to be supported.
Simulation used to fail when the number of qubits of the processor was
larger than the number of qubits supported by AerSimulator.
This commit fixes this.

Note that this is caused by the release qiskit-aer==0.13.0, and we
forbid this version in the next commit because it is too slow.
Nevertheless, the fix is valuable in itself, for the day 0.13.1 comes
out or if we find a fix for the slowness.
This release made aer irritatingly slow.
The name of instructions should not be an arbitrary string reflecting
the true nature of the instruction, but rather an existing Qiskit
intstruction.
We knew that already in local/, but since the next commits will make
remote/ perform actual transpilation before sending the circuit to the
API, this problem became apparent.
This commit, by using a new version of qiskit-qir-alice-bob-fork,
removes a significant piece of technical debt:
* The version of qiskit-qir now supports native operations like mx,
  prepare_x, prepare_z
* This makes it possible for the remote backend to transpile to native
  A&B qir and send it directly to the API.

Additionally, this commit factorizes the LocalStatePreparationPlugin and
the RemoteStatePreparationPlugin into a single StatePreparationPlugin.
As a consequence, this means that remote backends now cause Qiskit
to perform some transpilation when a circuit is executed.
This will allow us to support through the API a target like
EMU:6Q:PHYSICAL_CATS.
The plugin now gets the list of instructions from the target provided
to the plugin, rather than from the processor itself.
This will enable to use this plugin for remote/ as well.
This will allow us to use this plugin in remote/ when executing against
logical backends like EMU:6Q:LOGICAL_QUBITS through the API.
The remote/ backend now uses the SKSynthesisPlugin when (1)
rotations are absent from the gate set and (2) H and T are in the
gate set.
This will allow us to support logical qubit targets through the API.
The drawback is that the decision rule (1 + 2 above) may not be suitable
for some given situation in the future. Time will tell!
@jrj-d jrj-d requested a review from MaxleDrut November 4, 2023 17:31
Copy link

@MaxleDrut MaxleDrut left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Overall this looks good to me, great improvement!

tests/test_translation_plugin.py Show resolved Hide resolved
tests/test_translation_plugin.py Outdated Show resolved Hide resolved
tests/test_translation_plugin.py Outdated Show resolved Hide resolved
qiskit_alice_bob_provider/local/translation_plugin.py Outdated Show resolved Hide resolved
@jrj-d jrj-d force-pushed the fix_state_preparation branch from d9e71e1 to 46e7352 Compare November 6, 2023 17:27
Copy link

@MaxleDrut MaxleDrut left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🚀

@jrj-d jrj-d merged commit bcbdd1c into main Nov 7, 2023
13 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants