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.qpuallows submitting quantum tasks and retrieving their result to one or several vQPUs by leveraging the tools provided by thecunqa.qjobandcunqa.resultmodules.The design of circuits is handled by the module
circuit. This module contains a class calledCunqaCircuitwhich contains the necessary directives to model a quantum task with and without communications. It also contains the submoduletransformations, a series of special directives to perform cuts and unions of different circuits.
Module |
Description |
|---|---|
Contains the |
|
Contains the class that defines and manages quantum jobs. |
|
Contains the |
|
Contains map-like callables to distribute circuits among vQPUs. |
|
Helpers to extract probability distributions (or frequency estimates) from results. |
|
Quantum circuit abstraction for the |
|
In addition to the module API reference, three usage-oriented pages complement it:
CunqaCircuit instructions — a categorized overview of the
CunqaCircuitinstruction set.Run configuration — an explanation of the configuration parameters accepted by
runandexecute.Parameters and upgrade_parameters — a detailed example of the use of gate parameters and its updating.