GithubHelp home page GithubHelp logo

quri-parts's Introduction

QURI Parts

QURI Parts is an open source library suite for creating and executing quantum algorithms on various quantum computers and simulators. QURI Parts focuses on the followings:

  • Modularity and extensibility: It provides small parts with which you can assemble your own algorithms. You can also use ready-made algorithms, customizing their details by replacing sub components easily.
  • Platform independence: Once you assemble an algorithm with QURI Parts, you can execute it on various quantum computers or simulators without modifying the main algorithm code. Typically you only need to replace a few lines to switch to a different device or simulator.
  • Performance: When dealing with a simulator, it is often the case that classical computation before and after quantum circuit simulation (such as data preparation and post processing) takes considerable time, spoiling performance of the simulator. We put an emphasis on computational performance and try to get the most out of simulators.

Covered areas and components

Current QURI Parts covers the following areas, provided as individual components. Please note that more components will be added in future. You are also encouraged to propose or author new components as necessary.

  • Core components
    • quri-parts-circuit: Quantum circuit
      • Gate, circuit, noise etc.
    • quri-parts-core: General components
      • Operator, state, estimator, sampler etc.
  • Platform (device/simulator) support
    • Quantum circuit simulators
    • Quantum platforms/SDKs
      • quri-parts-braket: Amazon Braket SDK
      • quri-parts-cirq: Cirq (Only circuit conversion is supported yet)
      • quri-parts-qiskit: Qiskit (Circuit conversion and execution are not supported yet)
  • Intermediate representation support
  • quri-parts-algo: Algorithms
    • Ansatz, optimizer, error mitigation etc.
  • Chemistry
    • quri-parts-chem: General concepts
      • Fermion-qubit mapping etc.
    • Library support

Installation

QURI Parts requires Python 3.9.8 or later.

Use pip to install QURI Parts. Default installation only contains components not depending specific platforms (devices/simulators) or external libraries. You need to specify extras with square brackets ([]) to use those platforms and external libraries with QURI Parts:

# Default installation, no extras
pip install quri-parts

# Use Qulacs, a quantum circuit simulator
pip install "quri-parts[qulacs]"

# Use Amazon Braket SDK
pip install "quri-parts[braket]"

# Use Qulacs and OpenFermion, a quantum chemistry library for quantum computers
pip install "quri-parts[qulacs,openfermion]"

Currently available extras are as follows:

  • qulacs
  • braket
  • qiskit
  • cirq
  • openfermion
  • stim
  • openqasm
  • itensor

You can also install individual components (quri-parts-*) directly. In fact, quri-parts is a meta package, a convenience method to install those individual components.

Installation from local source tree

If you check out the QURI Parts repository and want to install from that local source tree, you can use requirements-local.txt. In requirements-local.txt, optional components are commented out, so please uncomment them as necessary.

pip install -r requirements-local.txt

Documentation and tutorials

Documentation of QURI Parts is available at https://quri-parts.qunasys.com. Tutorials would be a good starting point.

Release notes

See Releases page on GitHub.

Contribution guidelines

If you are interested in contributing to QURI Parts, please take a look at our contribution guidelines.

Authors

QURI Parts developed and maintained by QunaSys Inc.. All contributors can be viewed on GitHub.

License

QURI Parts is licensed under Apache License 2.0.

quri-parts's People

Contributors

dchung0741 avatar kushargs avatar kwkbtr avatar lqtmirage avatar r-imai-quantum avatar rykojima avatar snuffkin avatar speed1313 avatar tanan avatar toru4838 avatar zshan0 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.