Getting Started

The Intel® Quantum SDK is a complete quantum computing stack using simulation. It gives developers the programming tools for developing applications that incorporate results from quantum algorithms.

Included are a quantum compiler, quantum runtime, language extensions, and a suite of qubit simulator backends (ranging from abstract to physics-based). The language extensions provide the data types to represent quantum resources and build powerful quantum expressions. The quantum compiler comprehends that logic, and optimizes the quantum instructions to reduce the number and complexity. The quantum runtime enables the dynamic flow of data between the qubit simulator backend and the C++ data structures. And the qubit simulators apply various simulation techniques to return a result from a given quantum system.

Users can find information here to: * Get familiar with new tools and quantum computing concepts. * Check on hardware requirements. * Learn about how to use the SDK.

System Requirements

The Intel® Quantum SDK has the following memory requirements:

Memory Requirements

The memory requirement of applications compiled using the Intel® Quantum SDK will be the sum of the traditional footprint created by the data structure in the C++ code and the memory required by the qubit simulator.

The backends utilizing state-vector simulations require an amount of memory which increases with the number of qubits. Representing \(n\) qubits requires \(2^n\) complex numbers. Representing a complex double value requires 16 bytes, \(2^4\). So the memory required to simulate \(n\) qubits is

\[\text{memory} = 2^{(4 + n)} \, \text{bytes}\]

As an example, simulating different-sized qubit systems will require at least:

Table 1 Memory Requirements

qubits

memory

10

17 KB

20

17 MB

30

17.2 GB

Note that adding 1 additional qubit doubles the required memory.

How to Use?

In the simplest terms, using the Intel® Quantum SDK follows the pattern:

  1. Write the quantum algorithm with a .cpp extension as a separate file. This file will include the quantum_kernel definitions, initialization for quantum hardware, and the logic for the quantum/classical algorithms (see Writing New Algorithms section for details). Example: my_new_algo.cpp

  2. Build and Run. Invoke the intel-quantum-compiler to use the Intel® Quantum SDK:

    $ ./intel-quantum-compiler [compiler flags] new_algo_start_here.cpp
    

    To see a list of the flag options, run

    $ ./intel-quantum-compiler -h
    

    Run the executable produced by the compiler:

    $ ./new_algo_start_here
    

See Summary of Known Limitations / Issues for the limitations.