Welcome to the Docs for Forest and pyQuil!¶
pyQuil is part of the Rigetti Forest toolkit for quantum programming in the cloud. If you are interested in obtaining an API key for the beta, please reach out by signing up here. We look forward to hearing from you.
pyQuil is an open source Python library developed at Rigetti Computing that constructs programs for quantum computers. The source is hosted on GitHub. More concretely, pyQuil produces programs in the Quantum Instruction Language (Quil). For a full description of Quil, please refer to the whitepaper A Practical Quantum Instruction Set Architecture.  Quil is an opinionated quantum instruction language — its basic belief is that in the near term quantum computers will operate as coprocessors, working in concert with traditional CPUs. This means that Quil is designed to execute on a Quantum Abstract Machine that has a shared classical/quantum architecture at its core.
Quil programs can be executed on a cloud-based Quantum Virtual Machine (QVM). This is a classical simulation of a quantum processor that can simulate various qubit operations. The default access key allows you to run simulations of up to 26 qubits. These simulations can be run through either synchronous API calls, or through an asynchronous job queue for larger programs. More information about the QVM can be found in the The Quantum Virtual Machine (QVM).
In addition to the QVM, we offer the ability to run programs on our superconducting quantum processors, or Quantum Processing Units (QPUs), at our lab in Berkeley, California. To request upgraded access to our 19Q QPU, please fill out the request form with a brief summary of what you hope to use it for. For more information on QPUs, check out The Quantum Processing Unit (QPU).
If you are already familiar with quantum computing, then feel free to proceed to Installation and Getting Started. Otherwise, take a look at our Introduction to Quantum Computing, where we use Quil introduce the basics of quantum computing and the Quantum Abstract Machine on which it runs.
- Introduction to Quantum Computing
- From Bit to Qubit
- Qubit Operations
- The Quantum Abstract Machine
- Next Steps
- Installation and Getting Started
- The Basics: Programs and Gates
- Advanced Usage
- The Quantum Virtual Machine (QVM)
- The Quantum Processing Unit (QPU)
- The Quil Compiler
- Using Qubit Placeholders
- Noise and Quantum Computation
- Modeling Noisy Quantum Gates
- Noisy Gates on the Rigetti QVM
- Adding Decoherence Noise
- Modeling Readout Noise
- Working with Readout Noise
- Source Code Documentation