Reference

This section will explain deeper the main components of CUNQA. As CUNQA manages the resources of a quantum infrastructure through a set of bash commands and provides an platform-user interaction through a Python API, this section is divided into two subsections: resource management and Python API.

Resource management

Three commands cover the quantum infrastructures management: qraise, qdrop, and qinfo.

  • qraise. Responsible for deploying the vQPUs to build DQC infrastructures.

  • qdrop. Responsible for releasing the resources of vQPUs when they are no longer needed.

  • qinfo. Built to obtain information about the available vQPUs.

Simulators

The simulator that each vQPU uses to run quantum tasks is chosen at deployment time. The Simulators page lists the available simulators, the --simulator value to select each one, and which communication schemes, noise and GPU execution they support.

Configuration and files

CUNQA stores the state of the deployed vQPUs on disk. The Configuration and files page describes the $STORE/.cunqa directory, the qpus.json registry read by qinfo/qdrop/get_QPUs, and how to recover from stale state.

Python API

The Python API handles two basic things: the interaction user-vQPU by sending and receiving quantum tasks and the actual design of quantum tasks.

  • The module cunqa.qpu allows submitting quantum tasks and retrieving their result to one or several vQPUs by leveraging the tools provided by the cunqa.qjob and cunqa.result modules.

  • The design of circuits is handled by the module circuit. This module contains a class called CunqaCircuit which contains the necessary directives to model a quantum task with and without communications. It also contains the submodule transformations, a series of special directives to perform cuts and unions of different circuits.

Module

Description

cunqa.qpu

Contains the QPU class and the main functions to interact with vQPUs.

cunqa.qjob

Contains the class that defines and manages quantum jobs.

cunqa.result

Contains the Result, which holds the output of the executions.

cunqa.tools.mappers

Contains map-like callables to distribute circuits among vQPUs.

cunqa.tools.probabilities

Helpers to extract probability distributions (or frequency estimates) from results.

cunqa.circuit

Quantum circuit abstraction for the cunqa API.

cunqa.qc_protocols

Teledata and telegate quantum-communication protocols.

In addition to the module API reference, three usage-oriented pages complement it: