Summary of Known Limitations / Issues¶
The maximum number of qubits supported is bounded by the total memory available to the Intel® Quantum Simulator and is a machine and application dependent quantity. See Memory Requirements. The Tensor Network and Clifford Simulator backends are limited to 256 qubits.
All operations on classical variables inside a
quantum_kernel
function will be executed at the beginning of thatquantum_kernel
, unless placed after the final quantum gate in thequantum_kernel.
This applies toquantum_kernel
functions called in the middle of otherquantum_kernel
functions, i.e. adding the return value of the interiorquantum_kernel
to an integer inside the higher scopequantum_kernel
will be moved to the beginning of the resulting set of instructions. See In-lining & quantum_kernel functions.All source code must be located in a single
.cpp
file or included through header files.Top-level
quantum_kernel
functions cannot supportqbit
arguments. See In-lining & quantum_kernel functions.For
quantum_kernel
functions that use many qubit preparation operations, i.e. significantly more than the number of qubits used, use of-O1
flag is known to dramatically slow down the compilation. See Compiling.Custom placement can only be used on global
qbit
variables. See Placement.If the scheduler pass
-S
flag is not set, the compiler assumes an all-to-all connection even if a non-all-to-all connectivity is given in the platform configuration.json
file. Conversely, to invoke the-S
flag, the-c
flag must be given. See Scheduling.When the
-S
flag is not set and-O1
optimization is set, somequantum_kernel
functions may see additionalquswapalp
gate operations at the end of thequantum_kernel
. See Scheduling.Users should not call
MPI_Finalize()
in the user program. Otherwise, MPI functions will be called afterMPI_Finalize()
, which is not allowed. See Running with MPI.When running a simulation with more than 35 qubits, the
display_
andget_
APIs for theFullStateSimulator
might not work properly if the user tries these methods to retrieve or show allamplitudes
orprobabilities
. See Running with MPI.A compilation failure could occur if code which supports exception handling is invoked within a
quantum_kernel
function. The compilation error will likely be reported as a result of invalid branching. One such case would be the initialization of a quantum simulator within aquantum_kernel
function. To avoid undesirable behavior, it is recommended to initialize the simulator in themain()
function.