List of QC simulators

This list provides an overview of available QC simulators grouped by programming language

C/C++

  • Intel Quantum Simulator (IQS, former qHiPSTER)
    • Description: multi-threaded, distributed simulator of quantum circuit. released open-source, IQS is implemented in C++ and has an intuitive Python interface. It is a Schrödinger-style full state-vector simulator that simulates arbitrary single-qubit gates and two-qubit controlled gates, in addition to state preparation and measurement operations. IQS is targeted at algorithm developers who wish to test their software in simulation, and at hardware developers for device characterization and modeling.
    • Repository: https://github.com/iqusoft/intel-qs -- Technical report: https://arxiv.org/abs/2001.10554
    • Status: Active
  • staq
    • Description: staq is a high performance C++ full-stack quantum processing toolkit. It includes compiler tools, circuit synthesizing and hardware placement tools, translators, as well as resource estimators
    • author: softwareQ Inc.
    • Webpage: https://github.com/softwareqinc/staq
    • Status: Active, version 3.5, released on 8 March 2024 under the MIT License
    • Copyright (c) 2019 - 2024 softwareQ Inc. All rights reserved.
  • QuEST
    • Description: multithreaded, distributed, GPU-accelerated simulator of universal quantum circuits, state vectors and density matrices. QuEST is an open-source and stand-alone C/C++ library, can operate general single-qubit and and multi-controlled unitaries on both pure states and mixed states, and simulate dephasing and depolarising noise. The same code can be seamlessly deployed to all hardware backends, and the simulation cost and precision changed at compile time. QuEST is currently the only active distributed QC simulator, and the first and only to offer distributed density matrix support.
    • Webpage: https://quest.qtechtheory.org (technical report) https://arxiv.org/abs/1802.08032
    • Status: Active
  • Qrack
    • Description: Qrack is a highly optimized OpenCL-supporting quantum simulator implemented in C++ with extensive documentation, testing, and performance metrics. Usable either as a library inside a larger application or directly via a 6502 emulator. Suitable for production use in high performance environments. Supports a wide range of standard and custom gates, as well as extensive optimizations for parallel gate operations and ALU operations.
    • Webpage: https://vm6502q.readthedocs.io
    • Status: Active
  • QX Simulator
    • Description: QX is a high-performance universal quantum computer simulator which simulates the execution of quantum circuits on perfect or error-prone quantum computers. The input of the QX simulator are quantum circuits which are described using a simple quantum assembly language (QASM).
    • Webpage: http://quantum-studio.net/
    • Status: Active
  • Quantum++
    • Description: Quantum++ is a modern C++ general purpose quantum computing library, composed solely of template header files. Quantum++ is written in standard C++17 and has very low external dependencies, using only the Eigen 3 linear algebra header-only template library and, if available, the OpenMP multi-processing library.
    • author: softwareQ Inc.
    • Webpage: https://github.com/softwareQinc/qpp
    • Status: Active, version 5.1, released on 2 March 2024 under the MIT License
    • Copyright (c) 2017 - 2024 softwareQ Inc. All rights reserved.
  • qsims
    • Description: A general-purpose quantum simulation software package, capable of simulating the dynamics of systems with a wide range of Hamiltonians
    • Webpage: http://qsims.sourceforge.net/
    • Status: Active, under development
  • Quantum Computer Language
  • Quantum Network Computing
  • QuIDDPro
    • Description: Uses the Quantum Information Decision Diagram (QuIDD) datastructure to simulate a number of important circuits using asymptotically less runtime and memory resources than simulation techniques based on explicit matrices and vectors.
    • Webpage: http://vlsicad.eecs.umich.edu/Quantum/qp/
    • Status: Finished

CaML

OCaml

Coq

F#

GUI based

  • Quantum Programming Studio
    • Description: Web based IDE and Simulator, Drag & Drop circuit builder, cross platform (Rigetti & IBM), connects to quantum computer from UI
    • Webpage: https://quantum-circuit.com
    • Status: Active
  • Qubit Workbench
    • Description: Web based IDE and Simulator, Drag & Drop circuit builder, printable circuits, can group gates into functions.
    • Webpage: https://elyah.io/product
    • Status: Active
  • Linear Al
    • Description: Quantum development environment; research, design and teaching tool for quantum computing and quantum information
    • Webpage: http://linearal.sourceforge.net/
    • Status: Active
  • QCAD
    • Description: Windows-based environment for quantum computing simulation (Open Source)
    • Webpage: http://qcad.sourceforge.jp/
    • Status: Active
  • Quantum Fog
    • Description: Quantum simulator (and graphic programming language) that uses quantum generalization of Bayesian Networks; works only on MacOS X (10.2 or later)
    • Webpage: http://www.ar-tiste.com/qfog.html
    • Status: Alive
  • Q-Kit
    • Description: Q-Kit or Quantum-Kit is a graphical quantum circuit simulator. Q-Kit enables building and designing quantum circuits, visualizing the effect of quantum gate operations as probability distributions of quantum states or on a Bloch Sphere.
    • Webpage: https://sites.google.com/view/quantum-kit/home
    • Status: Active

Java

  • jQuantum - Quantum Computer Simulator
  • QuanSuite
    • Description: Suite of 7 Java applications, all based on a common class library called QWalk. Each application compiles a different kind of evolution operator.
    • Webpage: http://www.ar-tiste.com/QuanSuite.html
    • Status: Alive
  • qMIPS101
    • Description: Two quantum computing Java applications: Qubit101 an usable and efficient quantum circuit simulator and qMIPS a simulator of a processor with an integrated quantum functional unit.
    • Webpage: http://institucional.us.es/qmipsmaster/
    • Status: Active
  • QuSAnn (and Multiplexor Expander)
    • Description: 2 Java applications. QuSAnn outputs quantum circuit for doing simulated annealing on a quantum computer. MultiplexorExpander is a utility tool that expands quantum multiplexor gate into sequence of more elementary gates.
    • Webpage: http://www.ar-tiste.com/qusann.html
    • Status: Alive

Javascript

  • BackupBrain Quantum Computer Simulator - Open-Source Programmable Quantum Computer Simulator implemented in client-side only JavaScript
    • Description: An open-source, client-side only quantum simulator for use in the browser, emphasizing OpenQASM programming and downloadable CSV results. Experiments can be saved in the browser for future use and results can be downloaded as a CSV file.
    • Webpage: https://backupbrain.github.io/quantum-compiler-simulator/
    • Status: Active
  • quantum-circuit - Quantum circuit simulator implemented in javascript
    • Description: Optimized memory usage but CPU intensive. Smoothly runs 20+ qubit simulations on laptop. Can run in browser or at server (node.js). No UI: you can use it in your program to run quantum simulations. Circuit can be imported from and exported to OpenQASM. Circuit drawing can be exported to SVG vector image.
    • Webpage: https://www.npmjs.com/package/quantum-circuit
    • Status: Active
  • jsqis - Javascript Quantum Information Simulator
    • Description: A quantum simulator for use in the browser, emphasizing a complete, precise, visual representation of quantum bits and registers
    • Webpage: https://github.com/garrison/jsqis
    • Status: Active

Julia

  • QuantumOptics.jl
    • Description: QuantumOptics.jl is a numerical framework written in the Julia programming language that makes it easy to simulate various kinds of open quantum systems. It is inspired by the Quantum Optics Toolbox for MATLAB and the Python framework QuTiP.
    • Webpage: https://qojulia.org/
    • Status: Active
  • Yao.jl
    • Description: Yao is an open source framework that aims to empower quantum information

research with software tools, quantum algorithm design, quantum software 2.0, and quantum computation education.

Maple

Mathematica

  • Quantum Information Programs in Mathematica
  • TRQS
    • Description: Package for Mathematica computing system allowing to generate true random quantum states. It can be used with Quantis random number generator or QRNG service as a source of randomness.
    • Webpage: https://github.com/jmiszczak/trqs
    • Status: Active

Maxima

MATLAB/Octave

  • QETLAB
    • Description: Toolbox for quantum information theory and entanglement
    • Webpage: http://www.qetlab.com
    • Status: Active
  • Quantum Computing Functions for Matlab (QFC)
  • Quantum Octave

Maxima

.NET

Online Services

  • Fraunhofer Quantum Computing Simulator
  • Quantum Walks
    • Description: Online calculator for simulating quantum walks on cycles hosted at The National University of Ireland, Galway.
    • Webpage: http://walk.to/quantum
    • Status: Unknown
  • Quantum Circuit Simulator (Davy Wybiral)
    • Description: Online point-and-click circuit simulator written in Javascript using NumericJS.
    • Webpage: http://www.davyw.com/quantum/
    • Status: Complete
  • Qubit Workbench
    • Description: Web based IDE and Simulator, Drag & Drop circuit builder, printable circuits, can group gates into functions.
    • Webpage: https://elyah.io/product
    • Status: Active
  • QRBGS
  • VirtualQC
    • Description: Online quantum computer emulator that runs Shor's algorithm (up to 205 qubits) and quantum simulation algorithms.
    • Webpage: http://demo.riverlane.io
    • Status: Complete

Perl/PHP

Python

  • BQSKit
    • Description: A python package providing tools for numerical optimization of simulated quantum circuits, particularly for the purposes of quantum gate synthesis and quantum circuit optimization.
    • Webpage: https://github.com/BQSKit/bqskit
    • Status: Active
  • Cirq
    • Description: A python framework for creating, editing, and invoking Noisy Intermediate Scale Quantum (NISQ) circuits.
    • Webpage: https://github.com/quantumlib/Cirq
    • Status: Active
  • ProjectQ
    • Description: ProjectQ is an open-source software framework for quantum computing started at ETH Zurich. It allows users to implement their quantum programs in Python using a powerful and intuitive syntax. ProjectQ can then translate these programs to any type of back-end, be it a simulator run on a classical computer or an actual quantum chip.
    • Webpage: https://projectq.ch/
    • Status: Active
  • PyQu
    • Description: High-level quantum programming in Python (C extension module using libquantum).
    • Webpage: http://code.google.com/p/pyqu
    • Status: Under developement
  • QISKit
    • Description: An open-source quantum computing framework for leveraging today's quantum processors and conducting research
    • Webpage: https://qiskit.org/
    • Status: Active
  • qitensor
    • Description: Matrix-level quantum operations, with labeled component Hilbert spaces. Symbolics supported in Sage.
    • Webpage: http://www.stahlke.org/dan/qitensor
    • Status: Active
  • QuTiP
    • Description: Framework for solving open quantum systems using a wide range of master equation and stochastic methods. Also quantum optimal control modules for control pulse engineering.
    • Webpage: http://qutip.org/
    • Status: Active
  • sparse_pauli
    • Description: Implementation of large, sparse Pauli operators using pairs of sets indicating where each Pauli has X and Z support. Contains absolutely minimal functionality.
    • Webpage: https://github.com/bcriger/sparse_pauli
    • Status: Active
  • toqito
    • Description: An open source Python library for studying various objects in quantum information, namely, states, channels, and measurements.
    • Webpage: https://vprusso.github.io/toqito/
    • Status: Active

Q#

  • Microsoft Quantum Development Kit

QASM

  • OpenQASM

Rust

  • QCGPU
    • Description: QCGPU is a high performance, hardware accelerated quantum computer simulator written with Rust and OpenCL.
    • Webpage: https://qcgpu.github.io/
    • Status: Active

Scala

Scheme/Haskell/LISP/ML

  • QIO
    • Description: The Quantum IO Monad is a library for defining quantum computations in Haskell. It can be thought of as an embedded language within Haskell, and comes with functions for simulating the running of these quantum computations. The distribution contains many example computations written in QIO, including an implementation of Shor's algorithm. Also implemented in Agda.
    • Webpage: http://hackage.haskell.org/package/QIO
    • Status: Active

Category:Resources for the QIP Community Category:Software

Last modified: 

Friday, April 12, 2024 - 22:04