QILIMA & QIBO

The Qilima stack lets both hardware and theory teams access in a secured and easy-to-use way to our quantum machines and simulators for either the low-level diagnostic experiments and for running the new algorithms.

Qibo_

Qibo is an open-source framework for quantum computing. It manages the full-stack from the low level libraries to control the quantum hardware, to the high-level to develop quantum algorithms. It also provides a remote access API to run your algorithms on the available quantum machines.

Qibo aims to contribute as a community driven quantum middleware software with:_

Qibo key features:_

From the scientific users, qibo provides a language API, based on Python 3, which defines the interface for the development of quantum applications, models and new algorithms. It already comes with a large code-base of models and algorithms, presented with code examples and step-by-step tutorials.

More information can be found at:

Some already coded applications by algorithm:

From the lab users perspective, it is hardware agnostic. It provides a lab API, denoted as qibolab, which abstracts the specific laboratory setup and implements the generic steps, leaving for the laboratory users the differences of each quantum hardware.It comes also with some already pre-implemented simulation backends and hardware specific implementations. In the image below we present a schematic view of the currently supported backends.

Quantum simulation is proposed through dedicated backends for single node multi-GPU and multi-threading CPU setups. Quantum hardware control is supported for chips based on superconducting qubits.

Following the overview description above, in this section we present the python packages for the modules and backends presented.

Qibo core_

qibo is the base package for coding and using the API. This package contains all primitives and algorithms for starting coding quantum circuits, adiabatic evolution and more (see API reference). This package comes with a lightweight quantum simulator based on numpy which works on multiple CPU architectures such as x86 and arm64.

Simulation backends

We provide multiple simulation backends for Qibo, which are automatically loaded if the corresponding packages are installed, following the hierarchy below:

  • qibojit: an efficient simulation backend for CPU, GPU and multi-GPU based on just-in-time (JIT) compiled custom operators. Install this package if you need to simulate quantum circuits with large number of qubits or complex quantum algorithms which may benefit from computing parallelism.
  • qibotf: an efficient simulation backend for CPU, GPU and multi-GPU based on TensorFlow custom operators. Install this package if you need to simulate quantum circuits with large number of qubits or complex quantum algorithms which may benefit from computing parallelism.
  • tensorflow: a pure TensorFlow implementation for quantum simulation which provides access to gradient descent optimization and the possibility to implement classical and quantum architectures together. This backend is not optimized for memory and speed, use qibotf instead.
  • numpy: a lightweight quantum simulator shipped with the qibo base package. Use this simulator if your CPU architecture is not supported by the other backends. Please note that the simulation performance is quite poor in comparison to other backends.

Hardware backends

We provide the following hardware control backends for Qibo:

  • qibolab (under development): a module for laboratories.

Hardware backends

  • Qibo website: https://qibo.science/
  • Qibo technical documentation: https://qibo.readthedocs.io/en/stable/
  • S. Efthymiou, S. Ramos-Calderer, C. Bravo-Prieto, A. Pérez-Salinas, D. Garćıa-Martın, A. Garcia-Saez, J. I. Latorre, S. Carrazza, Qibo: a framework for quantum simulation with hardware acceleration, Quantum Science and Technology 7 (1) (2021) 015018. doi:10.1088/2058-9565/ac39f5, (arXiv:2009.01845)