---
title: Introduction to Qiskit
description: What is Qiskit? This document provides an introduction to the Qiskit stack.
source: https://eu-de.quantum.cloud.ibm.com/docs/en/qiskit
---

# Introduction to Qiskit

The name "Qiskit" is a general term referring to a collection of software for executing programs on quantum computers. Most notable among these software tools is the open-source Qiskit SDK, and the runtime environment, accessed using IBM Quantum® Compute Service (formerly known as the Qiskit Runtime Service), through which you can execute workloads on IBM® quantum processing units (QPUs). As quantum technology evolves, so does Qiskit, with new capabilities released every year that expand this core collection of quantum software.

In addition, many open-source projects are part of the broader Qiskit ecosystem. These software tools are not part of Qiskit itself, but rather interface with Qiskit and can provide valuable additional functionality.

IBM is committed to the responsible development of quantum computing. Learn more and review our responsible quantum principles in the [Responsible quantum computing](/docs/responsible-quantum-computing) topic.

## The Qiskit SDK

The Qiskit SDK (package name [`qiskit`](https://pypi.org/project/qiskit/)) is an open-source SDK for working with quantum computers at the level of extended (static, dynamic, and scheduled) quantum circuits, operators, and primitives. This library is the core component of Qiskit; it is the largest package under the Qiskit name with the broadest suite of tools for quantum computation, and many other components interface with it.

Some of the most useful features of the Qiskit SDK include:

- **Circuit-building tools** ([`qiskit.circuit`](/docs/api/qiskit/circuit)) - For initializing and manipulating registers, circuits, instructions, gates, parameters, and control flow objects.

- **Circuit library** ([`qiskit.circuit.library`](/docs/api/qiskit/circuit_library)) - A vast range of circuits, instructions, and gates - key building blocks for circuit-based quantum computations.

- **Quantum info library** ([`qiskit.quantum_info`](/docs/api/qiskit/quantum_info)) - A toolkit for working with quantum states, operators and channels, using exact calculations (no sampling noise). Use this module to specify input observables and analyze fidelity of outputs from primitives queries.

- **Transpiler** ([`qiskit.transpiler`](/docs/api/qiskit/transpiler)) - For transforming and adapting quantum circuits to suit specific device topology, and optimizing for execution on real quantum processing units (QPUs).

- **Primitives** ([`qiskit.primitives`](/docs/api/qiskit/primitives)) - The module that contains the base definitions and reference implementations of the Sampler and Estimator primitives, from which different quantum hardware providers can derive their own implementations. See more information about the IBM Quantum primitives [in the documentation](/docs/ibm-quantum-compute/qiskit-runtime-primitives).

### Installation

For a more detailed introduction to installing the Qiskit SDK, check out the [installation page](/docs/qiskit/install-qiskit). If you're ready to install it now, simply run:

```bash
pip install qiskit
```

## Benchmarking

Benchmarking is important for comparing the relative performance of quantum software across different stages of a development workflow. Benchmarking tests for quantum software might, for example, look at the speed and quality of building, manipulating, and transpiling circuits. IBM Quantum is committed to delivering the most performant SDK possible, and to that end, the Qiskit SDK is benchmarked using over 1,000 tests developed by leading universities, national labs, and researchers at IBM. The benchmarking suite used for these tests, named Benchpress, is now available as [an open-source package](https://github.com/qiskit/benchpress). You can now use the Benchpress package to perform your own analysis of quantum SDK performance.

## Next steps

> **Recommendations**
>
> - Learn about the library of circuits and instructions available in the Qiskit [circuit library](/docs/qiskit/circuit-library).
> - Read about the Qiskit transpiler and the many options for transpilation in the [Transpiler](/docs/qiskit/transpile) section.
> - Find out how to use the [primitive interface](/docs/qiskit/primitives) to streamline quantum programming.
> - Check out the [Qiskit ecosystem](https://www.ibm.com/quantum/ecosystem), which hosts open-source projects interfacing and extending the functionality of Qiskit.


## Contents

- [Introduction to Qiskit](/docs/qiskit)
- Install
  - [Install Qiskit](/docs/qiskit/install-qiskit)
  - [Install the Qiskit SDK from source](/docs/qiskit/install-qiskit-source)
  - [Configure the Qiskit SDK locally](/docs/qiskit/configure-qiskit-local)
  - [Install the Qiskit C API](/docs/qiskit/install-c-api)
  - [Extend Qiskit in Python with C](/docs/qiskit/c-extension-for-python)
  - [Online lab environments](/docs/qiskit/online-lab-environments)
- Circuits and operators
  - Build circuits
    - [Overview](/docs/qiskit/construct-circuits)
    - [Circuit library](/docs/qiskit/circuit-library)
    - [Save circuits to disk](/docs/qiskit/save-circuits)
    - [Measure qubits](/docs/qiskit/measure-qubits)
    - [Deferred timing resolution using stretch](/docs/qiskit/stretch)
    - [Classical feedforward and control flow](/docs/qiskit/classical-feedforward-and-control-flow)
    - [Bit-ordering in the Qiskit SDK](/docs/qiskit/bit-ordering)
  - Operators module
    - [Overview of operator classes](/docs/qiskit/operators-overview)
    - [The Operator class](/docs/qiskit/operator-class)
    - [Synthesize unitary operators](/docs/qiskit/synthesize-unitary-operators)
    - [Specify observables in the Pauli basis](/docs/qiskit/specify-observables-pauli)
  - OpenQASM
    - [Introduction](/docs/qiskit/introduction-to-qasm)
    - [OpenQASM 2 and the Qiskit SDK](/docs/qiskit/interoperate-qiskit-qasm2)
    - [OpenQASM 3 and the Qiskit SDK](/docs/qiskit/interoperate-qiskit-qasm3)
    - [OpenQASM 3 feature table](/docs/qiskit/qasm-feature-table)
    - [OpenQASM 3.x live specification](https://openqasm.com/)
- Transpilation
  - [Introduction to transpilation](/docs/qiskit/transpile)
  - [Transpiler stages](/docs/qiskit/transpiler-stages)
  - Pass managers
    - [Transpile with pass managers](/docs/qiskit/transpile-with-pass-managers)
    - [Create a pass manager for dynamical decoupling](/docs/qiskit/dynamical-decoupling-pass-manager)
    - Configure preset pass managers
      - [Default settings and configuration options](/docs/qiskit/defaults-and-configuration-options)
      - [Set optimization level](/docs/qiskit/set-optimization)
      - [Commonly used parameters for transpilation](/docs/qiskit/common-parameters)
      - [Represent quantum computers for the transpiler](/docs/qiskit/represent-quantum-computers)
  - [Compare transpiler settings](/docs/qiskit/circuit-transpilation-settings)
  - Advanced transpilation resources
    - [Write a custom transpiler pass](/docs/qiskit/custom-transpiler-pass)
    - [Create and transpile against custom backends](/docs/qiskit/custom-backend)
    - [Install and use transpiler plugins](/docs/qiskit/transpiler-plugins)
    - [Create a transpiler plugin](/docs/qiskit/create-transpiler-plugin)
    - [Work with DAGs in transpiler passes](/docs/qiskit/DAG-representation)
    - [AI-powered transpiler passes](/docs/qiskit/ai-transpiler-passes)
- Execution
  - [Introduction to primitives](/docs/qiskit/primitives)
  - [Primitive inputs and outputs](/docs/qiskit/primitive-input-output)
  - [Get started with the backend primitives](/docs/qiskit/get-started-with-backend-primitives)
- Verification
  - Simulation
    - [Introduction](/docs/qiskit/debugging-tools)
    - [Exact and noisy simulation with Qiskit Aer primitives](/docs/qiskit/simulate-with-qiskit-aer)
    - [Exact simulation with Qiskit SDK primitives](/docs/qiskit/simulate-with-qiskit-sdk-primitives)
    - [Build noise models](/docs/qiskit/build-noise-models)
    - [Efficient simulation of stabilizer circuits with Qiskit Aer primitives](/docs/qiskit/simulate-stabilizer-circuits)
  - Visualization
    - [Visualize circuits](/docs/qiskit/visualize-circuits)
    - [Visualize circuit timing](/docs/qiskit/visualize-circuit-timing)
    - [Plot quantum states](/docs/qiskit/plot-quantum-states)
    - [Visualize results](/docs/qiskit/visualize-results)
- Additional resources
  - [Integrate external quantum resources with Qiskit](/docs/qiskit/create-a-provider)
  - [Version strategy](/docs/qiskit/qiskit-sdk-version-strategy)
  - [Contributor guide](https://github.com/Qiskit/qiskit/blob/main/CONTRIBUTING.md)
  - [Maintainer guide](https://github.com/Qiskit/qiskit/blob/main/MAINTAINING.md)
  - [Qiskit ecosystem](https://www.ibm.com/quantum/ecosystem)
