Welcome to the Docs for the Forest SDK!¶
The Rigetti Forest Software Development Kit includes pyQuil, the Rigetti Quil Compiler (quilc), and the Quantum Virtual Machine (qvm).
Longtime users of Rigetti Forest will notice a few changes. First, the SDK now contains a downloadable compiler and a QVM. Second, the SDK contains pyQuil 2.0, with significant updates to previous versions. As a result, programs written using previous versions of the Forest toolkit will need to be updated to pyQuil 2.0 to be compatible with the QVM or compiler.
Quantum Cloud Services will provide users with a dedicated Quantum Machine Image, which will come prepackaged with the Forest SDK. We’re releasing a Preview to the Forest SDK now, so current users can begin migrating code (and share feedback with us early and often!). Longtime Forest users should start with the Migration Guide which outlines key changes in this SDK Preview release.
If you’re new to Forest, we hope this documentation will provide everything you need to get up and running with the toolkit. Once you’ve oriented yourself here, proceed to the section Installation and Getting Started to get started. If you’re new to quantum computing, you also go to our section on Introduction to Quantum Computing. There, you’ll learn the basic concepts needed to write quantum software. You can also work through an introduction to quantum computing in a jupyter notebook; launch the notebook from the source folder in pyquil’s docs:
A few terms to orient you as you get started with Forest:
- pyQuil: An open source Python library to help you write and run quantum programs. The source is hosted on github.
- Quil: The Quantum Instruction Language standard. Instructions written in Quil can be executed on any implementation of a quantum abstract machine, such as the quantum virtual machine (QVM), or on a real quantum processing unit (QPU). More details regarding Quil can be found in the whitepaper, A Practical Quantum Instruction Set Architecture.
- QPU: Quantum processing unit. This refers to the physical hardware chip which we run quantum programs on.
- Quil Compiler: The compiler,
quilc, compiles Quil written for one quantum abstract machine (QAM) to another. Our open source compiler will take arbitrary Quil and compile it for the given QAM, according to its supported instruction set architecture. Find quilc on GitHub.
- Forest SDK: Our software development kit, optimized for near-term quantum computers that operate as coprocessors, working in concert with traditional processors to run hybrid quantum-classical algorithms. For references on problems addressable with near-term quantum computers, see Quantum Computing in the NISQ era and beyond.
Our flagship product Quantum Cloud Services offers users an on-premise, dedicated access point to our quantum computers. This access point is a fully-configured VM, which we call a Quantum Machine Image. A QMI is bundled with the same downloadable SDK mentioned above, and a command line interface (CLI), which is used for scheduling compute time on our quantum computers. To sign up for our waitlist, please click the link above. If you’d like to access to our quantum computers for research, please email firstname.lastname@example.org.
To join our user community, connect to the Rigetti Slack workspace at https://rigetti-forest.slack.com.
- Installation and Getting Started
- Upgrading or Installing pyQuil
- Downloading the QVM and Compiler
- Getting Started
- New in Forest 2 - Running on the QVM
- New in Forest 2 - QuantumComputer
- Running a program
- Debugging with
- Sampling with
- Change alert:
run_and_measurewill return a dictionary of 1d bitstrings.
- Change alert: All qubits are measured
- Change alert:
run_and_measureworks with noise models now.
QuantumComputers have a topology
- Inspecting the topology
- What If I don’t want a topology?
- Heirarchy of realism
- “What is a
QuantumComputer?” Advanced Edition
- New in Forest 2 - Parametric Programs
- New in Forest 2 - Other
- Programs and Gates
- The Standard Gate Set
- Declaring Memory
- Parametric Compilation
- Gate Modifiers
- Defining New Gates
- Defining Parametric Gates
- Ways to Construct Programs
- QPU-allowable Quil
- The Quantum Computer
- The Wavefunction Simulator
- The Quil Compiler
- Noise and Quantum Computation
- Modeling Noisy Quantum Gates
- Noisy Gates on the Rigetti QVM
- Adding Decoherence Noise
- Modeling Readout Noise
- Working with Readout Noise
- Advanced Usage
- Introduction to Quantum Computing
- From Bit to Qubit
- Qubit Operations
- The Quantum Abstract Machine
- Next Steps