mirror of https://github.com/intel/intel-qs.git
![]() Add the possibility of reordering the qubits at the level of the data storage. Consider that we have N qubits distributed among 2^P processes. Previously: * the first M=N-P qubits were local * the last P qubits were global Now we can choose the qubit order for storage and therefore select any M qubits to be local. This possibility helps reducing the simulation time by avoiding MPI communication overhead. Implementation: * Add distributed implementation of (symmetric) SWAP-like gates. * Extend class Permutation. * Add documentation inside qureg.hpp about storage conventions. * 'qubit' indicates program qubits, 'position' indicates data qubits * GetGlobalAmplitude(index) returns the amplitude corresponding to the global index in input, considering that such index is expressed in terms of program qubits while the actual state is stored according to the data qubit order. * Add QubitRegister functions to permute qubits. For example PermuteQubits(), PermuteLocalQubits(), ... * Add unit tests covering the class Permutation class and novel QubitRegister methods. |
||
---|---|---|
.. | ||
apply_1q_gate_test.hpp | ||
apply_swap_gate_test.hpp | ||
chunking_communication_test.hpp | ||
compiler_flags_test.hpp | ||
conversion_test.hpp | ||
expectation_values_test.hpp | ||
gate_counter_test.hpp | ||
measure_test.hpp | ||
multiple_states_test.hpp | ||
noisy_simulation_test.hpp | ||
one_qubit_register_test.hpp | ||
permutation_test.hpp | ||
qaoa_features_test.hpp | ||
qureg_permute_test.hpp | ||
random_number_generator_test.hpp | ||
single_qubit_gates_test.hpp | ||
state_initialization_test.hpp | ||
tinymatrix_test.hpp | ||
two_qubit_register_test.hpp | ||
utility_methods_test.hpp |