跳转到主要内容

Contents

For a curated list of learning resources please check out desireevl's repo.

Quantum full-stack libraries

C++

Python

  • blueqat - A quantum computing SDK.
  • Braket - Amazon's fully managed quantum computing service for building quantum algorithms.
  • Cirq - Framework for creating, editing, and invoking Noisy Intermediate Scale Quantum (NISQ) circuits.
  • Forest - Rigetti's software library for writing, simulating, compiling and executing quantum programs.
  • Ocean - D-Wave System's suite of tools for solving hard problems with quantum computers.
  • OpenQL - Compiler framework with algorithm libraries, optimizer, scheduler, QEC, mapping, micro-code generator.
  • ProjectQ - Hardware-agnostic framework with compiler and simulator with emulation capabilities.
  • quantumcat - Cross-platform open-source high-level quantum computing library focused on building applications.
  • Qiskit - Framework for noisy quantum computers at the level of pulses, circuits, and algorithms (supported by IBM).
  • Strawberry Fields - Xanadu's software library for photonic quantum computing.
  • Tequila - An Extensible Quantum Information and Learning Architecture developed by Alan Aspuru-Guzik's group (UofT).

Q#

  • Q# - Microsoft's quantum programming language with Visual Studio integration.

Silq

  • Silq - Silq is a high-level quantum programming language with safe uncomputation and intuitive semantics.

Quantum simulators

C

  • QuaC - Parallel time-dependent open quantum systems solver.
  • QuEST - Quantum Exact Simulation Toolkit is a high performance multicore simulator of universal quantum circuits.
  • TNQVM - Tensor Network QPU Simulator for Eclipse XACC.

Common Lisp

  • QVM - Rigetti's high-performance quantum virtual machine.

Coq

C++

  • Huawei HiQsimulator - Single-amplitude, Full-amplitude and Error-correction circuit simulation engine.
  • Intel Quantum Simulator - Distributed qubit register quantum simulator using OpenMP and MPI.
  • JKQ-DDSIM - Error-free quantum simulator using decision diagrams as underlying data structure. (arXiv / IEEE)
  • qFlex - Flexible high-performance simulator for verifying and benchmarking quantum circuits implemented on real hardware.
  • Qiskit Aer - High performance simulator for quantum circuits that includes noise models (supported by IBM).
  • QCEAD - C++ program to both simulate a quantum computer and use parallel evolutionary techniques to design algorithms.
  • Qrack - Comprehensive qubit and gate implementation for developing universal virtual quantum processors.
  • qSim - High level, elementary simulation library.
  • QSim - Schrödinger and Schrödinger-Feynman simulators for quantum circuits.
  • Quantum++ - High-performance general purpose quantum simulator (can simulate d-dimensional qudits).
  • tweedledum - Library for synthesis, compilation, and optimization of quantum circuits.

F#

GoLang

  • Q - Quantum Computation Simulator written purely in GoLang.

Java

  • Strange - Java API that can be used to create Quantum Programs.

JavaScript

  • jsquil - JavaScript interface for writing Quil programs.
  • Quantum Circuit Simulator - Smoothly runs 20+ qubit simulations in browser or on node.js server.
  • Quirk - Drag-and-drop quantum circuit simulator in your browser.
  • Quantum JavaScript (Q.js) - Drag-and-drop circuit editor, simulator, documented API, text-as-circuit DSL, concept primers.
  • Quantum-computing-playground - Browser-based simple IDE interface to run, visualize and debug quantum programs.
  • Quantum tensors - JavaScript / TypeScript package for sparse tensor operations on complex numbers for quantum computing.

Julia

  • Cliffords.jl - Efficient calculation of Clifford circuits in Julia.
  • IonSim.jl - Simulate the dynamics of a configuration of trapped ions interacting with laser light.
  • QSimulator.jl - Unitary and Lindbladian evolution in Julia.
  • QuantumInfo.jl - Julia library for quantum information related calculations.
  • QuantumOptics.jl - Numerical framework to simulate various kinds of open quantum systems in Julia.
  • RandomQuantum.jl - Package for generating random quantum states and processes.
  • Yao.jl - Extensible, Efficient Quantum Algorithm Design for Humans.

Python

  • Interlin-q - Quantum network simulator imitating distributed quantum systems with interconnect communication between nodes.
  • MISTIQS - Generating/compiling/executing quantum circuits for simulating quantum many-body dynamics of systems.
  • PIQS - Efficient simulation of open quantum dynamics of identical qubits.
  • QCircuits - User-friendly quantum circuit simulator designed for students and newcomers to quantum computing.
  • QCompute - Baidu's software development kit for designing quantum circuits and simulating on a high-performance simulator.
  • Qibo - Framework for quantum simulation with hardware acceleration, including multi-GPU support.
  • QTop - Simulation and visualization of topological quantum computers.
  • quantum-computing - Functionally complete simulator for universal quantum computing in Python
  • quimb - Easy but fast python library for quantum information and many-body calculations, including with tensor networks.
  • Quintuple - Simulating the 5-qubit processor of the IBM Quantum Experience.
  • QuPy - Quantum circuit simulator for both CPU and GPU.
  • QuSpin - Exact diagonalization and dynamics of arbitrary boson, fermion and spin many-body systems.
  • QuTiP - User-friendly and efficient numerical simulations of a wide variety of open quantum systems.
  • SeQuencing - Construct and simulate realistic quantum control sequences using QuTiP.
  • SimulaQron - Application level simulator of a quantum network.
  • Stim - A fast stabilizer circuit simulator.
  • SQUANCH - A distributed simulation framework for quantum networks and channels.
  • QuNetSim - A quantum network simulation framework.
  • The WalrusXanadu's library for simulating Gaussian Boson Sampling.

Rust

  • QCGPU - High-performance GPU-accelerated quantum computer simulation outlined in this arXiv paper.
  • RustQIP - Rust Quantum Computing library leveraging graph building to build efficient quantum circuit simulations.

Swift

Quantum annealing

C++

  • C-to-D-Wave - Compile a very small subset of C to a D-Wave Hamiltonian function

Go

  • edif2qmasm - Compile VerilogVHDL, and other hardware-description languages to a D-Wave Hamiltonian function
  • QA Prolog - Compile a subset of Prolog to a D-Wave Hamiltonian function

Python

  • chimera_embedding - Algorithms to generate native-structured embeddings for Chimera graphs.
  • dimod - Shared API for Ising and QUBO problems.
  • dwavebinarycsp - Map constraint satisfaction problems with binary variables to binary quadratic models.
  • dwave-cloud-client - Min. implementation of the REST interface to communicate with D-Wave's Solver API.
  • dwave_neal - An implementation of a simulated annealing sampler.
  • dwave_networkx - Exploration and analysis of network graphs.
  • dwave-system - API for easily incorporating D-Wave quantum annealers as samplers in the Ocean software stack.
  • embedding_utilities - Mapping samples between original and embedded graph.
  • micro_client_sapi_dimod - Dimod wrapper for the D-Wave Micro Client.
  • minorminer - Heuristic tool for minor graph embedding.
  • penaltymodel - Utilities and interfaces for using penalty models.
  • QMASM - Quantum macro assembler for D-Wave systems
  • qubo-nn - Classifying, auto-encoding and reverse-engineering QUBO matrices. Also includes 20 problem formulations.

Python, C & Matlab

  • Qbsolv - QUBO solver with D-Wave or classical tabu solver backend.

Quantum algorithms

C++

  • XACC VQE - Variational quantum eigensolver built on XACC for distributed, and shared memory systems.

Julia

Python

Q#

  • Quantum Katas - Programming exercises for learning Q# and quantum computing.

Quantum compilers

C++

  • QCOR - C++ language extension and associated compiler implementation for hybrid quantum-classical programming.
  • ScaffCC - Compilation, analysis and optimization framework for the Scaffold quantum programming language.
  • tweedledum - C++17 library for analysis, compilation/synthesis, and optimization of quantum circuits.

Mathematica

  • UniversalQCompiler - Synthesis of isometries (including unitaries and state preparation), channels and POVMs.

Julia

  • QuantumCircuitOpt.jl - Julia package for provably optimal decompositions and compilations of quantum circuits

Python

  • Arline Benchmarks - Automated benchmarking platform for quantum compilers, quantum hardware and quantum algorithms.
  • BQSKit - Berkeley Quantum Synthesis Toolkit is an optimizing quantum compiler and related tool-set.
  • Mitiq - Cross-platform, error-mitigating quantum compiler from Unitary Fund.
  • PyZX - Python library for quantum circuit rewriting and optimisation using the ZX-calculus.
  • QEDA - Quantum electronic design automation software for optical circuits using QASM.
  • QGL2 Compiler - Language compiler for imperative Quantum Gate Language (QGL).
  • Qiskit Terra - Python library for quantum circuit rewriting and optimization (supported by IBM).
  • Qubiter - Quantum compiler with Python wrapper for LAPACK's CS Decomposition to build a binary tree of matrices.

Common Lisp

  • quilc - Rigetti's optimizing Quil compiler.

Quantum assembly

  • Blackbird - Open-source quantum instruction language currently used for Xanadu's photonic hardware.
  • OpenQASM - Open-source quantum assembly language.
  • QMASM - A quantum macro assembler for D-Wave's quantum annealers.
  • Quil - An open hybrid quantum/classical instruction set currently used by Rigetti. Parser

Quantum control

Python

  • C3 - Open-loop, closed-loop and automated Control, Calibration and Characterization of quantum devices.
  • Krotov - Python implementation of Krotov's method for quantum optimal control.
  • Quanlse - Quanlse provides quantum control solutions via a cloud SDK, developed by Baidu Quantum.

Quantum error correction

Python

  • PyMatching - Python package for decoding quantum error correcting codes with minimum-weight perfect matching.
  • qecsim - Python package for simulating quantum error correction using stabilizer codes.
  • Qsurface - Python package for simulation and visualization of quantum error-correction on surface codes.

Quantum and post-quantum cryptography

C

  • liboqs - C library for quantum-resistant cryptographic algorithms.
  • openssh - OpenSSH with quantum-safe key exchange algorithms.
  • openssl - OpenSSL with quantum-safe cryptographic algorithms.
  • PQClean - Clean, portable, tested implementations of post-quantum cryptography.

Python

Experimental quantum computing

Julia

  • Qlab.jl - Generic lab tools in Julia.

Matlab

  • Qlab - Measurement and control software for superconducting qubits.

Python

  • ARTIQ - Next-generation control system for quantum information experiments.
  • OLSQ - OpenQASM package to perform optimal layout synthesis for quantum computing.
  • pyEPR - Automated Python module for the design and quantization of Josephson quantum circuits.
  • PyRPL - Turn your RedPitaya into a powerful DSP device, suitable as a digital lockbox and measurement device in quantum optics.
  • QCoDeS - Python-based data acquisition framework for quantum experiments.
  • QFlow-lite - Machine Learning tools for autotuning quantum dot experiments.
  • QGL - Domain-specific language embedded in Python for specifying pulse sequences.
  • Qiskit Metal - Quantum hardware design and analysis.
  • QTT - Quantum Technology Toolbox is a framework for the tuning and calibration of quantum dots and spin qubits.
  • Quantify - Data acquisition platform focused on Quantum Computing and solid-state physics experiments.
  • qupulse - Quantum computing pulse parametrization and sequencing framework (formerly qc-toolkit).
  • scqubits - Simulating superconducting qubits, obtaining energy spectra, plotting energy levels and more.

Quantum fun

Board games

  • Entanglion - The world’s first open source quantum computing board game. For 2 players.

F#

Python

Python & JavaScript

JavaScript

Scala

  • feyn - Puzzle game for the browser in which you need to find the combination of gates that the qubits need to pass.

Quantum tools

Mathematica

  • Quantum - A free Mathematica add-on for Dirac Bra-Ket Notation, Quantum Algebra, Quantum Computing and the QHD approximation to the Heisenberg Equations of Motion.
  • QI - Toolkit for common quantum information functions.

Python

  • Covalent - Tool for running high performance/quantum workflows on advanced computing hardwares.
  • IBM Q bot - Bot for Slack and Telegram to monitor the load of IBM Q quantum computers.
  • orqviz - Library to easily visualize the loss landscape of variational quantum algorithms.
  • pulsemaker - A Python widget library for designing pulses and pulse schedules for quantum computing hardware.
  • pyQuirk - A Python widget for Quirk to be used in Jupyter notebooks, JupyterLab, and the IPython kernel.
  • qonduit - A Python library with visualization tools and workflows for quantum computing that utilize the best of what’s available.
  • qprof - gprof-compatible profiler for quantum programs.
  • QRAND - A multiplatform and multiprotocol quantum random number generator for arbitrary probability distributions.
  • QuantumGraphs - Grow and study random graphs by a continuous, randomly collapsing quantum walk.
  • toqito - Framework to study problems pertaining to entanglement theory, nonlocal games, and other aspects of quantum information.

Quantum data

  • QDataSet - Quantum datasets for the training and development of QML algorithms.

Others

Abandoned projects

2+ years of inactivity. Feel free to reanimate, document and contribute to some of this work!

  • BLACK-STONE - Specification and implementation of quantum common lisp, for gate-model quantum computers.
  • libquantum - C library for quantum computing and quantum simulation.
  • libQuantumJava - Crude translation from the C implementation of libquantum to a Java version.
  • jquil - Java library for quantum programming using Quil.
  • pQCS - Parallel quantum circuit synthesis with optimal T-count.
  • PyQLab - Library for instrument control and superconducting QIP experiments.
  • PySimulator - Python with C++ backend simulator for superconducting circuits.
  • QACG - Quantum Arithmetic Circuit Generator in Haskell.
  • QCL - High level, hardware-agnostic programming language for quantum computers (syntax like C or Pascal).
  • QCViewer - Visual quantum circuit design and simulation tool.
  • QGL.jl - Performance orientated QGL compiler.
  • Qlmp - Interpreter for the functional quantum programming language Qumin.
  • Qiskit-JS - Quantum information software kit for JavaScript (supported by IBM).
  • QOCS - Quantum OCaml Circuit Simulator is a functional approach to simulating quantum gates.
  • QuantumUtils - Tools for quantum control, simulation, channel representation conversion, and perturbations.
  • Quantum Virtual Machine - Reference implementation of Rigetti's Quantum Virtual Machine.
  • Quince - Node-based GUI that allows for graphical configuration of qubit experiments in Auspex.
  • Quipper - Scalable functional programming language for quantum computing based on Quantum Lambda Calculus.
  • QuSim - Ideal noise-free multi-qubit simulator written in 150 lines of code.
  • QSEL - Quantum programming language putting entanglement and superposition front and center.
  • sapi_dimod - Dimod wrapper for D-Wave's Solver API (SAPI).
  • Squankum - Visual Java quantum simulator.

原文:https://github.com/qosf/awesome-quantum-software