Go to file
Diego M. Rodríguez 815ddfe01e Update backend.properties() to use BackendProperties (#1331)
* Fix BackendProperties required lengths

Fix the required length of some items in `BackendProperties`, to adjust
to specs.

* Update backend.properties() return model

Update `BaseBackend.properties()` in order to return instances of
`BackendProperties` instead of dicts.
Update the local simulators with a basic `BackendProperties` - some
of the fields (gates, qubits) are populated with dummy values in order
to conform to the specs, but need to be revised.

* Enable test_aer_backend_properties, fix dummy sim

Enable the `test_aer_backend_properties`, for checking that all local
simulators produce schema-conformant BackendProperties. Fix the dummy
sim with properties().

* Update IBMQBackend.properties() using model

Update `IBMQBackend.properties()` for returning an instance of
`BackendProperties` instead of a dict. The logic for converting the
API properties has been moved to IBMQConnector, taking into account the
format returned currently for QX and IBMQ, while waiting for the new
endpoints with the final format.

Enable `test_remote_backend_properties` for testing the feature.

* Update CHANGELOG
2018-11-26 20:56:18 -05:00
.github Simplifying the readme (#1282) 2018-11-17 10:16:04 -05:00
cmake Decrease test runner concurrency on travis (#1228) 2018-11-08 10:57:40 -05:00
doc Add setuptools extras for installing matplotlib (#1304) 2018-11-21 08:16:25 -05:00
examples fix middle measurements moving to the end (#1337) 2018-11-26 19:24:33 -05:00
qiskit Update backend.properties() to use BackendProperties (#1331) 2018-11-26 20:56:18 -05:00
src/qasm-simulator-cpp Correcting typos throughout project (#1139) 2018-10-26 16:25:36 -04:00
test Update backend.properties() to use BackendProperties (#1331) 2018-11-26 20:56:18 -05:00
tools removing old code (#1207) 2018-11-04 11:52:24 -05:00
.gitignore networkx 2.2 in setup and changelog (#1267) 2018-11-14 10:30:21 +01:00
.pylintrc Update backend.properties() to use BackendProperties (#1331) 2018-11-26 20:56:18 -05:00
.stestr.conf Switch to stestr for test runner (#737) 2018-11-06 17:43:03 +00:00
.travis.yml Add draw() method to QuantumCircuit class (#911) 2018-11-15 09:46:12 -05:00
CHANGELOG.rst Update backend.properties() to use BackendProperties (#1331) 2018-11-26 20:56:18 -05:00
CMakeLists.txt Update QISKit to Qiskit (#634) 2018-07-11 13:14:15 +02:00
LICENSE.txt Consistent license across all the project (#550) 2018-06-08 15:00:58 +02:00
MANIFEST.in Fix cpp simulator distribution (#998) 2018-10-01 22:22:25 -04:00
Make.bat Documenation changes (#1254) 2018-11-13 23:50:58 -05:00
Makefile Documenation changes (#1254) 2018-11-13 23:50:58 -05:00
README.md Simplifying the readme (#1282) 2018-11-17 10:16:04 -05:00
appveyor.yml Add step to appveyor process to cancel builds on PR update (#1239) 2018-11-12 14:02:10 -05:00
pypi.sh Update QISKit to Qiskit (#634) 2018-07-11 13:14:15 +02:00
requirements-dev.txt runtime matplotlib import (#1281) 2018-11-17 09:09:16 -05:00
requirements.txt runtime matplotlib import (#1281) 2018-11-17 09:09:16 -05:00
setup.py Add setuptools extras for installing matplotlib (#1304) 2018-11-21 08:16:25 -05:00
tox.ini Switch to stestr for test runner (#737) 2018-11-06 17:43:03 +00:00

README.md

Qiskit Terra

PyPI Build Status Build Status IBM Q

Qiskit is a software development kit for developing quantum computing applications and working with NISQ (Noisy-Intermediate Scale Quantum) computers.

Qiskit is made up elements that each work together to enable quantum computing. This element is Terra and is the foundation on which the rest of Qiskit is built (see this post for an overview).

Installation

We encourage installing Qiskit via the PIP tool (a python package manager):

pip install qiskit

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

At least Python 3.5 or later is needed for using Qiskit. In addition, Jupyter Notebook is recommended for interacting with the tutorials. For this reason we recommend installing the Anaconda 3 python distribution, as it comes with all of these dependencies pre-installed.

See installing Qiskit for detailed instructions, how to build from source and using environments.

Creating your first quantum program

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:

{'counts': {'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()

For those who do not want to save there credentials to disk please use

>>> 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, please take a look at our contribution guidelines. This project adheres to Qiskit's code of conduct. By participating, you are expect to uphold to this code.

We use GitHub issues for tracking requests and bugs. Please use our slack for discussion. To join our Slack community use the link. To ask questions to Stack Overflow.

Next Steps

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

Authors

Qiskit Terra is the work of many people who contribute to the project at different levels.

License

Apache License 2.0