Skip to content

Simulators

intel-qs

Maintained by intel

Intel Quantum Simulator (Intel-QS), also known as qHiPSTER (The Quantum High Performance Software Testing Environment), is a simulator of quantum circuits optimized to take maximum advantage of multi-core and multi-nodes architectures.

C++Apache-2.0
intel-qs illustration

Resource snapshot

Category

Simulators

Stars

261

Last pushed

May 26, 2026Updated 3mo ago

Open issues

15

What it is

intel-qs is maintained by intel and sits in the Simulators lane of the open-source quantum map.

Intel Quantum Simulator (Intel-QS), also known as qHiPSTER (The Quantum High Performance Software Testing Environment), is a simulator of quantum circuits optimized to take maximum advantage of multi-core and multi-nodes architectures.

Last verified by Qtangl generator on May 27, 2026

Who it's for

Developers and researchers who need to test ideas locally before running on hardware or who want to compare simulation strategies.

What you can build or learn

  • Benchmark how different simulation methods trade accuracy for runtime.
  • Inspect circuit behavior, noise assumptions, or state evolution offline.
  • Choose the right simulator for a debugging, teaching, or research workflow.

Code samples

Examples from the repository.

Get Started With Iqs-Checkpoint (tutorials/.ipynb_checkpoints/get_started_with_IQS-checkpoint.ipynb)
# Import the Python library with the C++ class and methods of Intel Quantum Simulator.
# If the library is not contained in the same folder of this notebook, its path has to be added.
import sys
sys.path.insert(0, '../build/lib')
import intelqs_py as simulator

# import numPy
import numpy as np

# Import graphical library for plots.
import matplotlib.pyplot as plt
Basic Use Presentation (tutorials/basic_use_presentation.ipynb)
# Import the Python library with the C++ class and methods of Intel Quantum Simulator.
# If the library is not contained in the same folder of this notebook, its path has to be added.
import sys
sys.path.insert(0, '../build/lib')
import intelqs_py as simulator

# import numPy
import numpy as np
Get Started With Iqs (tutorials/get_started_with_IQS.ipynb)
# Import the Python library with the C++ class and methods of Intel Quantum Simulator.
# If the library is not contained in the same folder of this notebook, its path has to be added.
import sys
sys.path.insert(0, '../build/lib')
import intelqs_py as simulator

# import numPy
import numpy as np

# Import graphical library for plots.
import matplotlib.pyplot as plt

Citation

BibTeX
@software{intelquantumsimulator,
  title = {Intel Quantum Simulator},
  author = {Unknown},
  year = {2017},
}

License

Apache-2.0

SPDX identifier detected from the repository metadata or license files.

Repository README

Preview from the project README.

Rendered as Markdown inside a scrollable preview. Long READMEs stay contained; expand or open on GitHub for the full document.

~922 words · about 4 min readOpen on GitHub

C++ build with CMake Python build (no MPI)

Intel Quantum Simulator

Intel Quantum Simulator (Intel-QS), also known as qHiPSTER (The Quantum High Performance Software Testing Environment), is a simulator of quantum circuits optimized to take maximum advantage of multi-core and multi-nodes architectures. It is based on a complete representation of the qubit state, but avoids the explicit representation of gates and other quantum operations in terms of matrices. Intel-QS uses the MPI (message-passing-interface) protocol to handle communication between the distributed resources used to store and manipulate quantum states.

Temporary notice: backward compatibility

Intel-QS team is aware of the importance of backward compatibility. We do our best to assure it.

In April 2021 we adopted good-coding practices and moved a few classes and methods under the namespace iqs. This may cause disruption in older programs. The fix is simple, add iqs:: in front of declaration of objects like QubitRegister. Other namespaces like qhipster have been susbtituted with namespace iqs too.

In October 2022 we transferred the repository from iqusoft to intel to better assist the IQS users. All links to the previous repository location are automatically redirected to this new location. However, we recommend updating the URL in local clones via: git remote set-url origin https://github.com/intel/intel-qs.

Build instructions

Intel-QS builds as a shared library which, once linked to the application program, allows to take advantage of the high-performance implementation of circuit simulations. The library can be built on a variety of different systems, from laptop to HPC server systems.

The directory structure of the repository can be found in docs/directory_structure.md.

The complete guide to the installation can be found in docs/install_guide.md.

At the end of the installation, the library object will be: /builb/lib/libiqs.so

Build Options

The following are build options in cmake:

  • IqsMPI : Enables MPI
  • IqsMKL : Enables MKL
  • IqsPython : Enables Python wrapper
  • IqsUtest : Builds unit tests
  • IqsNative : Enables the latest vector instructions to be built in the build
  • IqsBuildAsStatic : Builds IQS as a static library instead of a shared library
  • BuildExamples : Builds the examples
  • BuildInterface : Builds the QASM Interface

Requirements

The following packages are required by the installation:

  • CMake tools version 3.12+
  • MPICH3 library for enabling the distributed communication
  • optional: MKL for distributed random number generation
  • optional: PyBind11 (installed via conda, not pip) required by the Python binding of Intel-QS
  • optional: GoogleTest (automatically installed if needed during the build) required by the unit tests
  • optional: Eigen (library to solve eigensystems) required for simulations with realistic noise

The first step is cloning the repository:

  git clone https://github.com/iqusoft/intel-qs.git
  cd intel-qs

Use standard GNU tools to build Intel-QS

Here we describe the basic build using the open-source GNU compiler. For high-performance computing applications, we suggest adopting the recommended build detailed in the installation guide. The installation follows the out-of-source building and requires the creation of the directory build. This directory is used to collect all the files generated during the installation process.

  mkdir build
  cd build
  CXX=g++ cmake -DIqsMPI=ON -DIqsUtest=ON -DIqsPython=ON -DIqsNoise=OFF -DBuildExamples=ON ..
  make -j10

The install is customizable and, above, we have chosen to use MPI, compile the unit tests (based on GoogleTest framework), create a Python library via PyBind11, not include the possibility of simulating noisiy gates as quantum channels (feature that would need library Eigen), and compile a set of C++ examples.

To re-build Intel-QS with different settings or options, we recommend to delete all content of the build directory and then restart from the CMake command.

Docker: build image and run/execute container

Dockerfile includes the instructions to build the docker image of an Ubuntu machine with Intel-QS already installed. The image can be 'run' to create a container. The container can be 'executed' to login into the machine.

  docker build -t qhipster .
  docker run -d -t qhipster
  docker ps
  docker exec -itd <container_id> /bin/bash

If Docker is used on a Windows host machine, the last line should be substituted by: winpty docker exec -it <container_id> //bin/bash.

More detailed instructions can be found in intel-qs/docs/docker_guide.md, together with instructions to launch a Jupyter notebook from within the container.

Getting started with Intel-QS

The simplest way of familiarize with the Intel Quantum Simulator is by exploring the tutorials provided in the directory tutorials/. In particular, the code tutorials/get_started_with_IQS.cpp provides step-by-step description of the main commands to: define a qubit register object, perform quantum gates, measure one or multiple qubits.

If the Python bindings were enabled, the same learning can be performed using the iPython notebook tutorials/get_started_with_IQS.ipynb.

How to contribute or contact us

Thanks for your interest in the project! We welcome pull requests from developers of all skill levels. If you would like to contribute to Intel-QS, please take a look to our contributing policy and also to the code of conduct. For any bug, we use GitHub issues GitHub issues. Please submit your request there.

If you have a question or want to discuss something, feel free to send an email to Gian Giacomo Guerreschi, Ryan Wu, or to Fabio Baruffa.

How to cite

When using Intel Quantum Simulator for research projects, please cite:

Gian Giacomo Guerreschi, Justin Hogaboam, Fabio Baruffa, Nicolas P. D. Sawaya Intel Quantum Simulator: A cloud-ready high-performance simulator of quantum circuits Quantum Sci. Technol. 5, 034007 (2020)

The original implementation is described here:

Mikhail Smelyanskiy, Nicolas P. D. Sawaya, Alán Aspuru-Guzik qHiPSTER: The Quantum High Performance Software Testing Environment arXiv:1601.07195

Read on GitHub

Activity

Latest release

—

Watchers

15

Python support

—

Learn digest

Get monthly updates when library entries change.

Monthly digest: new library entries, updated flagships, and one editorial pick.

Related resources

Keep exploring nearby tools.

qosf

os_quantum_software

Curated list of open-source quantum software projects.

CC0-1.0

2,105 stars · Updated 4mo ago

BBN-Q

PySimulator

Python with C++ Backend Simulator for Superconducting Circuits QIP

PythonApache-2.0

8 stars · Updated 12y ago

QISKit

qiskit-tutorial

A collection of Jupyter notebooks showing how to use the Qiskit SDK

Jupyter NotebookApache-2.0Archive

2,522 stars · Updated 3y ago

0tt3r

QuaC

Time Dependent Open Quantum Systems Solver written by Matthew Otten (mjotten@wisc.edu)

CMIT

30 stars · Updated 2y ago

aniabrown

QuEST

A multithreaded, distributed, GPU-accelerated simulator of quantum computers

C++MITArchive

473 stars · Updated 3mo ago

adamisntdead

QuSimPy

A Multi-Qubit Ideal Quantum Computer Simulator

PythonAGPL-3.0

724 stars · Updated 5y ago