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_kernelfunction will be executed at the beginning of thatquantum_kernel, unless placed after the final quantum gate in thequantum_kernel.This applies toquantum_kernelfunctions called in the middle of otherquantum_kernelfunctions, i.e. adding the return value of the interiorquantum_kernelto an integer inside the higher scopequantum_kernelwill 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
.cppfile or included through header files.Top-level
quantum_kernelfunctions cannot supportqbitarguments. See In-lining & quantum_kernel functions.For
quantum_kernelfunctions that use many qubit preparation operations, i.e. significantly more than the number of qubits used, use of-O1flag is known to dramatically slow down the compilation. See Compiling.Custom placement can only be used on global
qbitvariables. See Placement.If the scheduler pass
-Sflag 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.jsonfile. Conversely, to invoke the-Sflag, the-cflag must be given. See Scheduling.When the
-Sflag is not set and-O1optimization is set, somequantum_kernelfunctions may see additionalquswapalpgate 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 theFullStateSimulatormight not work properly if the user tries these methods to retrieve or show allamplitudesorprobabilities. See Running with MPI.A compilation failure could occur if code which supports exception handling is invoked within a
quantum_kernelfunction. 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_kernelfunction. To avoid undesirable behavior, it is recommended to initialize the simulator in themain()function.