Terra provides the foundations for Qiskit. It allows the user to write quantum circuits easily, and takes care of the constraints of real hardware.
Branch: master
Clone or download
mtreinish and nonhermitian Center histogram labels with multiple executions (#1826)
When we were plotting multiple executions in the histogram plot the
xtick (and label) were being put on the position of the first bar.
However this goes contrary to expectations since the tick is normally
expected in the center of the group of bars for that particular result.
This commit adjusts this by apply an offset to the xtick position to
always keep in centered in the group.

Fixes #1812
Latest commit 4f8eb53 Feb 19, 2019
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github Update the badge for travis-ci.com (#1787) Feb 11, 2019
docs Removing docs (#1672) Jan 13, 2019
examples New commutation passes (#1500) Dec 19, 2018
qiskit Center histogram labels with multiple executions (#1826) Feb 19, 2019
test Remove underscore from qiskit.mapper files (#1809) Feb 15, 2019
tools Fixing reporting URL for Travis (#1824) Feb 19, 2019
.gitignore Renaming qiskit.backends to qiskit.providers (#1531) Dec 17, 2018
.pylintrc Remove travis documentation deploy, other fixes (#1678) Jan 14, 2019
.stestr.conf Switch to stestr for test runner (#737) Nov 6, 2018
.travis.yml Remove ibmq stage from travis (#1795) Feb 12, 2019
CHANGELOG.rst Updated node_counter on DAG to return current number of nodes (#1763) Feb 13, 2019
LICENSE.txt Consistent license across all the project (#550) Jun 8, 2018
MANIFEST.in Remove legacy C++ simulator code (#1644) Jan 8, 2019
Make.bat Remove "make doc" target (#1756) Feb 7, 2019
Makefile Remove "make doc" target (#1756) Feb 7, 2019
README.md Update README.md (#1819) Feb 16, 2019
appveyor.yml Utility for reporting a CI failure as a GitHub issue. (#1071) Feb 11, 2019
pypi.sh Update QISKit to Qiskit (#634) Jul 11, 2018
requirements-dev.txt Utility for reporting a CI failure as a GitHub issue. (#1071) Feb 11, 2019
requirements.txt Remove travis documentation deploy, other fixes (#1678) Jan 14, 2019
setup.py Remove travis documentation deploy, other fixes (#1678) Jan 14, 2019
tox.ini Specify basepython in tox testenv (#1761) Feb 4, 2019


Qiskit Terra

LicenseBuild Status

Qiskit is an open-source framework for working with Noisy Intermediate-Scale Quantum (NISQ) computers at the level of pulses, circuits, and algorithms.

Qiskit is made up elements that work together to enable quantum computing. This element is Terra and is the foundation on which the rest of Qiskit is built.


We encourage installing Qiskit via the pip tool (a python package manager), which installs all Qiskit elements, including Terra.

pip install qiskit

PIP will handle all dependencies automatically and you will always install the latest (and well-tested) version.

To install from source, follow the instructions in the contribution guidelines.

Creating Your First Quantum Program in Qiskit Terra

Now that Qiskit is installed, it's time to begin working with Terra.

We are ready to try out a quantum circuit example, which is simulated locally using the Qiskt Aer element. This is a simple example that makes an entangled state.

$ python
>>> from qiskit import *
>>> q = QuantumRegister(2)
>>> c = ClassicalRegister(2)
>>> qc = QuantumCircuit(q, c)
>>> qc.h(q[0])
>>> qc.cx(q[0], q[1])
>>> qc.measure(q, c)
>>> backend_sim = Aer.get_backend('qasm_simulator')
>>> result = execute(qc, backend_sim).result()
>>> print(result.get_counts(qc))

In this case, the output will be:

{'00': 513, '11': 511}

A script is available here, where we also show how to run the same program on a real quantum computer via IBMQ.

Executing your code on a real quantum chip

You can also use Qiskit to execute your code on a real quantum chip. In order to do so, you need to configure Qiskit for using the credentials in your IBM Q account:

Configure your IBMQ credentials

  1. Create an IBM Q > Account if you haven't already done so.

  2. Get an API token from the IBM Q website under My Account > Advanced > API Token.

  3. Take your token from step 2, here called MY_API_TOKEN, and run:

    >>> from qiskit import IBMQ
    >>> IBMQ.save_account('MY_API_TOKEN')
  4. If you have access to the IBM Q Network features, you also need to pass the URL listed on your IBM Q account page to save_account.

After calling IBMQ.save_account(), your credentials will be stored on disk. Once they are stored, at any point in the future you can load and use them in your program simply via:

>>> from qiskit import IBMQ
>>> IBMQ.load_accounts()

Those who do not want to save there credentials to disk should use instead:

>>> from qiskit import IBMQ
>>> IBMQ.enable_account('MY_API_TOKEN')

and the token will only be active for the session. For examples using Terra with real devices we have provided a set of examples in examples/python and we suggest starting with using_qiskit_terra_level_0.py and working up in the levels.

Contribution Guidelines

If you'd like to contribute to Qiskit Terra, please take a look at our contribution guidelines. This project adheres to Qiskit's code of conduct. By participating, you are expected to uphold to this code.

We use GitHub issues for tracking requests and bugs. Please join the Qiskit Slack community and use our Qiskit Slack channel for discussion and simple questions. For questions that are more suited for a forum we use the Qiskit tag in the Stack Exchange.

Next Steps

Now you're set up and ready to check out some of the other examples from our Qiskit Tutorials repository.

Authors and Citation

Qiskit Terra is the work of many people who contribute to the project at different levels. If you use Qiskit, please cite as per the included BibTeX file.


Apache License 2.0