-
Notifications
You must be signed in to change notification settings - Fork 166
Description
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.