Skip to content
Snippets Groups Projects
Commit ba273018 authored by Benoit Valiron's avatar Benoit Valiron
Browse files

Sect 1.3.1

parent 43b94c15
No related branches found
No related tags found
No related merge requests found
...@@ -589,7 +589,10 @@ various themes: the relation between \zx and other quantum computing representat ...@@ -589,7 +589,10 @@ various themes: the relation between \zx and other quantum computing representat
\subsubsection{A quantum compiler stack} \subsubsection{A quantum compiler stack}
\label{sec:progr-lang-supp} \label{sec:progr-lang-supp}
Several powerful high-level languages (HLLs) have been proposed for quantum programs, such as Quipper~\cite{Alexander-S.-Green:2013fk} and \Qsharp~\cite{qsharp}. Several powerful high-level languages (HLLs) have been proposed for
quantum programs, such as Quipper~\cite{Alexander-S.-Green:2013fk},
\Qsharp~\cite{qsharp}, and the Python library
ProjectQ~\cite{Steiger2016ProjectQ:-An-Op}.
As with classical HLLs, these languages are not designed to be run directly on quantum hardware: instead, their compilers typically output quantum circuit descriptions, which are not tailored well to run on any particular hardware platform. As with classical HLLs, these languages are not designed to be run directly on quantum hardware: instead, their compilers typically output quantum circuit descriptions, which are not tailored well to run on any particular hardware platform.
Our proposed \dzxc system will represent an interface between multiple different HLLs for quantum procedures, and various quantum hardware platforms. Our proposed \dzxc system will represent an interface between multiple different HLLs for quantum procedures, and various quantum hardware platforms.
This system will use terms of the \zxcalculus as an internal representation of the procedure as it undergoes optimisations and translations, \newt{both abstractly and} to fit a particular hardware architecture. This system will use terms of the \zxcalculus as an internal representation of the procedure as it undergoes optimisations and translations, \newt{both abstractly and} to fit a particular hardware architecture.
...@@ -597,30 +600,44 @@ various themes: the relation between \zx and other quantum computing representat ...@@ -597,30 +600,44 @@ various themes: the relation between \zx and other quantum computing representat
but would be generated by a compiler front-end from programs written in existing high-level languages. but would be generated by a compiler front-end from programs written in existing high-level languages.
Therefore it is essential to provide a robust, general framework for compilation of HLLs to \zx terms. Therefore it is essential to provide a robust, general framework for compilation of HLLs to \zx terms.
As most existing quantum HLLs can output circuit descriptions, and as circuits can easily be represented in the \zxcalculus, \newt{in \ref{task:HHL}} we first focus on a simple front end for the circuit language QASM~\cite{Cross2017Open-Quantum-As} before moving towards more expressive HHLs. As most existing quantum HLLs can output circuit descriptions, and
This will allow virtually any extant quantum HLL to interface with the \dzxc system, albeit rather naively at first. as circuits can easily be represented in the \zxcalculus, for the
Later, we will perform concrete front-end front-end of~\ref{task:HHL} will first focus on the circuit language
experiments using more sophisticated existing HLLs in, for example QASM~\cite{Cross2017Open-Quantum-As} before moving towards the more
\emph{Quipper}, \Qsharp~\cite{qsharp}, or ProjectQ expressive HHLs Quipper~\cite{Alexander-S.-Green:2013fk},
\cite{Steiger2016ProjectQ:-An-Op}, with the help of \newt{Task~\ref{task:trans1}}. \Qsharp~\cite{qsharp}, and
ProjectQ~\cite{Steiger2016ProjectQ:-An-Op}. With this expertise we
will then develop in Task~\ref{task:trans1} a general procedure
allowing virtually any extant quantum HLL to interface with the
\dzxc system.
%
Moving down the compilation toolchain towards quantum devices
requires the traduction of \zx terms down to some lower-level
representation, specific to each quantum device.
%
Proposed and existing quantum devices differ along a variety of axes. Proposed and existing quantum devices differ along a variety of axes.
At the most abstract level, the quantum circuit model and the Realistic models of such devices integrates various restrictions such
1-way model \cite{Raussendorf-2001} have different execution as the limitation to a
concepts and primitive operations, despite their computational
equivalence. More realistic models might suffer from limitation to a
fixed number of qubits, a bounded total execution time, or fixed number of qubits, a bounded total execution time, or
restrictions on which qubits may interact directly. restrictions on which qubits may interact directly.
%Looking more closely, %Looking more closely,
Primitive operations will require different amounts of time, Primitive operations will require different amounts of time,
different qubit implementations have different failure different qubit implementations have different failure
modes.\REM{noise,fidelitY} modes, be subject to various noise model and suffer from low fidelity.
\REM{noise,fidelitY}
% %
Due to the novelty of our proposal, we adopt an exploratory approach with respect to back-end models. Due to the novelty of our proposal, we adopt an exploratory approach
Initially, and in parallel, we study the circuit model (\ref{task:circuit-model}) and with respect to back-end models. Initially, and in parallel, we study
the 1-way model (\ref{task:mbqc-model}) because these models are well understood, stable, and have been extensively treated in the \zxcalculus literature. the circuit model (\ref{task:circuit-model}) and the 1-way
These models will allow us to prototype the development of hardware annotations for the \dzxc system, \newt{cf.\ Task~\ref{task:runnable}}. model~\cite{Raussendorf-2001} (\ref{task:mbqc-model}). On one hand,
In both cases, this involves three tightly related tasks: these models are well understood, stable, and have been extensively
treated in the \zxcalculus literature. On the other hand, these two
models have different execution concepts and primitive operations,
despite their computational equivalence. They will therefore allow us
to prototype the development of hardware annotations for the \dzxc
system, \newt{cf.\ Task~\ref{task:runnable}}. In both cases, this
involves three tightly related tasks:
\begin{enumerate}[label=(\roman*)] \begin{enumerate}[label=(\roman*)]
\item \item
decomposing the tensor network into atomic operations; decomposing the tensor network into atomic operations;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment