Skip to content

Commit d5814e4

Browse files
authored
Merge pull request #110 from lazyoracle/docs-intro
Add Introduction to Documentation Add sections explaining the following: - The three building blocks: - Device Model - Classical Electronics - Instructions - Parameter Map - Experiment - Optimizer - Libraries
2 parents eddeaef + cdc773d commit d5814e4

File tree

2 files changed

+84
-0
lines changed

2 files changed

+84
-0
lines changed

docs/index.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ When combined in sequence, these three procedures represent a recipe for system
2727
:maxdepth: 4
2828
:caption: Contents:
2929

30+
intro
3031
two_qubits
3132
optimal_control
3233
Simulated_calibration

docs/intro.rst

Lines changed: 83 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,83 @@
1+
Introduction to :math:`C^3` Toolset
2+
====================================
3+
4+
In this section, we go over the foundational components and concepts in :math:`C^3` with the
5+
primary objective of understanding how the different sub-modules inside the :code:`c3-toolset`
6+
are structured, the purpose they serve and how to tie them together into a complete Automated
7+
Quantum Device Bring-up workflow. For more detailed examples of how to use the :code:`c3-toolset`
8+
to perform a specific Quantum Control task, please check out the :doc:`two_qubits` or the
9+
:doc:`Simulated_calibration` sections or refer to the :doc:`c3` for descriptions of
10+
Classes and Functions.
11+
12+
13+
The Building Blocks
14+
--------------------
15+
16+
There are three basic building blocks that form the foundation of all the modelling and calibration
17+
tasks one can perform using :code:`c3-toolset`, and depending on the use-case, some or all of these
18+
blocks might be useful. These are the following:
19+
20+
Quantum Device Model
21+
~~~~~~~~~~~~~~~~~~~~~
22+
23+
A theoretical Physics-based model of the Quantum Processing Unit. This is encapsulated by the
24+
:code:`Model` class which consists of objects from the :code:`chip` and :code:`tasks` library.
25+
:code:`chip` contains Hamiltonian models of different kinds of qubit realisations, along with
26+
their couplings while :code:`tasks` let you perform common operations such as qubit initialisation or
27+
readout. A typical :code:`Model` object would contain objects encapsulating qubits along with their
28+
interactions as drive lines and tasks, if any.
29+
30+
Classical Control Electronics
31+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
32+
A digital twin of the electronic control stack associated with the Quantum Processing Unit. The
33+
:code:`Generator` class contains the required encapsulation in the form of :code:`devices` which
34+
help model the behaviour of the classical control electronics taking account of their imperfections and
35+
physical realisations. The devices e.g, an LO or an AWG or a Mixer are wired together in the
36+
:code:`Generator` object to form a complete representation of accessory electronics.
37+
38+
Instructions
39+
~~~~~~~~~~~~~~
40+
Once there is a software model for the QPU and the control electronics, one would need to define
41+
Instructions or operations to be perform on this device. For gate-based quantum computing , this is
42+
in the form of gates and their underlying pulse operations. Pulse shapes are described through a
43+
:code:`Envelope` along with a :code:`Carrier`, which are then wrapped up in the form of :code:`Instruction`
44+
objects. The sequence in which these gates are applied are not defined at this stage.
45+
46+
47+
.. warning::
48+
Components inside the :code:`c3/generator/` and :code:`c3/signal/` sub-modules will be restructured
49+
in an upcoming release to be more consistent with how the :code:`Model` class encapsulates smaller
50+
blocks present in the :code:`c3/libraries` sub-module.
51+
52+
53+
Parameter Map
54+
--------------
55+
56+
The :code:`ParameterMap` helps to obtain an optimizable vector of parameters from the various theoretical
57+
models previously defined. This allows for a simple interface to the optimization algorithms which are tasked
58+
with optimizing different sets of variables used to define some entity, e.g, optimizing pulse parameters by
59+
calibrating on hardware or providing an optimal gate-set through model-based quantum control.
60+
61+
Experiments
62+
-------------
63+
64+
With the building blocks in place, we can bring them all together through an :code:`Experiment` object that
65+
encapsulates the device model, the control signals, the instructions and the parameter map. Note that depending on
66+
the use only some of the blocks are essential when building the experiment.
67+
68+
Optimizers
69+
-----------
70+
71+
At its core, :code:`c3-toolset` is an optimization framework and all of the three steps - Open-Loop, Calibration and
72+
Model Learning can be defined as a optimization task. The :code:`optimizers` contain classes that provide
73+
helpful encapsulation for these steps. These objects take as arguments the previously defined :code:`Experiment` and
74+
:code:`ParameterMap` objects along with an :code:`algorithm` e.g, :code:`CMA-eS` or :code:`L-BFGS` which performs
75+
the iterative optimization steps.
76+
77+
Libraries
78+
----------
79+
80+
The :code:`c3/libraries` sub-module includes various helpful library of components that are used somewhat like lego
81+
pieces when building the bigger blocks, e.g, :code:`hamiltonians` for the :code:`chip` present in the :code:`Model`
82+
or :code:`envelopes` defining a control :code:`pulse`. More details about these components are available in the
83+
:doc:`c3.libraries` section.

0 commit comments

Comments
 (0)