Running Circuits

We provide the following tools for running circuits on simulators and hardware:

  1. Compilation to a native gateset

    The Compiler enables the user to re-express a circuit in terms of operations native to a given device and is covered in the Compilation Tools section.

  2. Simulation

    Our built-in Simulator allows users to easily run simulations of circuits with built-in or customizable noise models. A simulator with a specified noise model can be initialized once and used to run any circuit thereafter.

    1. Example: Introduction to the Simulator

      Walks through the basic functionality of the Simulator

    2. Example: Advanced Simulator Usage

      Gives an overview about basic and advanced options for adding noise sources for the Simulator and different simulation backends.

    3. Example: State Preparation and Measurement Noise

      Demonstrates how to add State and Measurement (SPAM) noise to the Simulator.

    4. Example: Simulating Leakage

      Shows how the simulator can be used to simulate leakage into undesired engergy levels.

    5. Example: Writing Custom Noise Sources

      Shows how to implement custom noise models for the Simulator.

    6. Example: Emulating a device from measured error profiles

      When combined with True-Q™’s Error Diagnostics tools, the Simulator can be used to emulate a device using its measured error profile, as this example demonstrates.

  3. Conversion to a different language

    We provide tools that allow users to easily convert their circuits to and from True-Q™ into Qiskit, Cirq, and pyQuil, as shown in the Compilation Tools section.

  4. Batching and submitting circuits to a backend

    True-Q™ offers batching tools that allow users to break jobs into batches of a fixed size for submission. Additionally, when working with a Qiskit backend, our Executor allows users to run experiments on any of that hardware. This tool includes automated batching, job submission, pausing/resuming, and saving results to disk.

    1. Example: Circuit Batching

      Shows how to use the batch() to group a CircuitCollection into numbered batches of arbitrary sizes.

    2. Example: Running Jobs on Qiskit Backends

      Shows how to run circuits on an IBM backend using the Executor.