Skip to content

Optimise distributed applyTrotterizedPauliStrSumGadget() #644

@TysonRayJones

Description

@TysonRayJones

The current implementation of applyTrotterizedPauliStrSumGadget() (with or without the improvements to numerical accuracy discussed in #596) is suboptimal in distributed settings. This is because the constituent applyPauliStrGadget() have identical communication patterns to those of calcExpecPauliStrSum() (as discussed in #599) for the same strings. As a consequence, applyPauliStrGadget() upon PauliStr which differ only by the substitution of prefix qubits for I <-> Z and X <-> Y induce the same communication pattern.

It is ergo prudent to re-order the Trotter-prescribed gadgets (potentially within a commuting group to preserve accuracy) into sub-sequences so that contiguous gadgets have strings differing as above, ergo inducing the same communication which can be performed once before the sequence. Note the primary state partition and the received communication buffer would need modification for each contiguous Pauli gadget.

This appears to be an improvement upon the scheme presented in arxiv 2504.17881, since that method requires the the prefix Paulis are identical (rather than permitting I <-> Z and X <-> Y). Note the other reported innovations of the work (Pauli strings as bitmasks and gadgets inducing pairwise communication) already exist in QuEST v4 and are leveraged by existing Trotterisation.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions