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

Parallelize the QubitMapper routines #771

Open
mrossinek opened this issue Aug 6, 2022 · 1 comment
Open

Parallelize the QubitMapper routines #771

mrossinek opened this issue Aug 6, 2022 · 1 comment

Comments

@mrossinek
Copy link
Member

mrossinek commented Aug 6, 2022

What is the expected enhancement?

It should be possible to improve the QubitMapper class by parallelizing its internal processes.

We may also want to look into implementing generator routines which would allow "lazy conversion" of operators (assuming that we have lazy operator generation).

Note: This is a long-term goal and does not have immediate priority.

mrossinek added a commit to mrossinek/qiskit-nature that referenced this issue Aug 6, 2022
This removes the usage of ListOrDict wherever possible.
The QubitConverter class is the last place this is needed, because the
UCC and UVCC ansatze pass their excitation operators for conversion as
a list.

That is fine for now, but may be improved when tackling qiskit-community#771
mrossinek added a commit to mrossinek/qiskit-nature that referenced this issue Aug 6, 2022
This removes the usage of ListOrDict wherever possible.
The QubitConverter class is the last place this is needed, because the
UCC and UVCC ansatze pass their excitation operators for conversion as
a list.

That is fine for now, but may be improved when tackling qiskit-community#771
mrossinek added a commit to mrossinek/qiskit-nature that referenced this issue Aug 6, 2022
This removes the usage of ListOrDict wherever possible.
The QubitConverter class is the last place this is needed, because the
UCC and UVCC ansatze pass their excitation operators for conversion as
a list.

That is fine for now, but may be improved when tackling qiskit-community#771
mrossinek added a commit to mrossinek/qiskit-nature that referenced this issue Aug 6, 2022
This removes the usage of ListOrDict wherever possible.
The QubitConverter class is the last place this is needed, because the
UCC and UVCC ansatze pass their excitation operators for conversion as
a list.

That is fine for now, but may be improved when tackling qiskit-community#771
@woodsp-ibm
Copy link
Member

woodsp-ibm commented Aug 10, 2022

Maybe this could be stated more generally as improve performance of QubitConvertor. This would allow Rust to be considered and threads etc as need. If the convertor can be given an iterator of some form then whether the operator content is created on demand as the iterator progresses or its all there up front will be transparent to the convertor though may limit how the operator is parceled out for concurrent conversion.

mrossinek added a commit that referenced this issue Aug 12, 2022
* refactor: enable dict_aux_operators by default

* refactor: deprecate qiskit_nature.ListOrDict

This removes the usage of ListOrDict wherever possible.
The QubitConverter class is the last place this is needed, because the
UCC and UVCC ansatze pass their excitation operators for conversion as
a list.

That is fine for now, but may be improved when tackling #771

* refactor: match return type of `BaseProblem.second_q_ops()` to Terra

The algorithms in Terra always take a tuple of the main operator and
some auxiliary operators. This commit changes the `BaseProblem`
interface to already return the generated operators in the same format.
This simplifies the handling of the main operator, a scenario that
occurs very often and required manual intervention thus far.
@mrossinek mrossinek changed the title Parallelize the QubitConverter routines Parallelize the QubitMapper routines Mar 1, 2023
Anthony-Gandon pushed a commit to Anthony-Gandon/qiskit-nature that referenced this issue May 25, 2023
* refactor: enable dict_aux_operators by default

* refactor: deprecate qiskit_nature.ListOrDict

This removes the usage of ListOrDict wherever possible.
The QubitConverter class is the last place this is needed, because the
UCC and UVCC ansatze pass their excitation operators for conversion as
a list.

That is fine for now, but may be improved when tackling qiskit-community#771

* refactor: match return type of `BaseProblem.second_q_ops()` to Terra

The algorithms in Terra always take a tuple of the main operator and
some auxiliary operators. This commit changes the `BaseProblem`
interface to already return the generated operators in the same format.
This simplifies the handling of the main operator, a scenario that
occurs very often and required manual intervention thus far.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants