QParallel: Explicit Parallelism for Programming Quantum Computers
- URL: http://arxiv.org/abs/2210.03680v1
- Date: Fri, 7 Oct 2022 16:35:16 GMT
- Title: QParallel: Explicit Parallelism for Programming Quantum Computers
- Authors: Thomas H\"aner, Vadym Kliuchnikov, Martin Roetteler, Mathias Soeken,
Alexander Vaschillo
- Abstract summary: We present a language extension for parallel quantum programming.
QParallel removes ambiguities concerning parallelism in current quantum programming languages.
We introduce a tool that guides programmers in the placement of parallel regions by identifying the subroutines that profit most from parallelization.
- Score: 62.10004571940546
- License: http://arxiv.org/licenses/nonexclusive-distrib/1.0/
- Abstract: We present a language extension for parallel quantum programming to (1)
remove ambiguities concerning parallelism in current quantum programming
languages and (2) facilitate space-time tradeoff investigations in quantum
computing. While the focus of similar libraries in the domain of classical
computing (OpenMP, OpenACC, etc.) is to divide a computation into multiple
threads, the main goal of QParallel is to keep the compiler and the runtime
system from introducing parallelism-inhibiting dependencies, e.g., through
reuse of qubits in automatic qubit management. We describe the syntax and
semantics of the proposed language extension, implement a prototype based on
Q#, and present several examples and use cases to illustrate its performance
benefits. Moreover, we introduce a tool that guides programmers in the
placement of parallel regions by identifying the subroutines that profit most
from parallelization, which is especially useful if the programmer's knowledge
of the source code is limited. Support for QParallel can be added to any
multithreading library and language extension, including OpenMP and OpenACC.
Related papers
- Advising OpenMP Parallelization via a Graph-Based Approach with
Transformers [2.393682571484038]
We propose a novel approach, called OMPify, to detect and predict the OpenMP pragmas and shared-memory attributes in parallel code.
OMPify is based on a Transformer-based model that leverages a graph-based representation of source code.
Our results demonstrate that OMPify outperforms existing approaches, the general-purposed and popular ChatGPT and targeted PragFormer models.
arXiv Detail & Related papers (2023-05-16T16:56:10Z) - Enabling Multi-threading in Heterogeneous Quantum-Classical Programming
Models [53.937052213390736]
We introduce C++-based parallel constructs to enable parallel execution of a quantum kernel.
Preliminary performance results show that running two Bell kernels with 12 threads per kernel in parallel outperforms running the kernels one after the other.
arXiv Detail & Related papers (2023-01-27T06:48:37Z) - Enabling Retargetable Optimizing Compilers for Quantum Accelerators via
a Multi-Level Intermediate Representation [78.8942067357231]
We present a multi-level quantum-classical intermediate representation (IR) that enables an optimizing, retargetable, ahead-of-time compiler.
We support the entire gate-based OpenQASM 3 language and provide custom extensions for common quantum programming patterns and improved syntax.
Our work results in compile times that are 1000x faster than standard Pythonic approaches, and 5-10x faster than comparative standalone quantum language compilers.
arXiv Detail & Related papers (2021-09-01T17:29:47Z) - Extending Python for Quantum-Classical Computing via Quantum
Just-in-Time Compilation [78.8942067357231]
Python is a popular programming language known for its flexibility, usability, readability, and focus on developer productivity.
We present a language extension to Python that enables heterogeneous quantum-classical computing via a robust C++ infrastructure for quantum just-in-time compilation.
arXiv Detail & Related papers (2021-05-10T21:11:21Z) - OpenQASM 3: A broader and deeper quantum assembly language [1.1532193677299474]
Quantum assembly languages are machine-independent languages that traditionally describe quantum computation in the circuit model.
OpenQASM 2 was proposed as an imperative programming language for quantum circuits based on earlier QASM dialects.
In principle, any quantum computation could be described using OpenQASM 2, but there is a need to describe a broader set of circuits beyond the language of qubits and gates.
arXiv Detail & Related papers (2021-04-30T01:57:53Z) - A MLIR Dialect for Quantum Assembly Languages [78.8942067357231]
We demonstrate the utility of the Multi-Level Intermediate Representation (MLIR) for quantum computing.
We extend MLIR with a new quantum dialect that enables the expression and compilation of common quantum assembly languages.
We leverage a qcor-enabled implementation of the QIR quantum runtime API to enable a retargetable (quantum hardware agnostic) compiler workflow.
arXiv Detail & Related papers (2021-01-27T13:00:39Z) - Extending C++ for Heterogeneous Quantum-Classical Computing [56.782064931823015]
qcor is a language extension to C++ and compiler implementation that enables heterogeneous quantum-classical programming, compilation, and execution in a single-source context.
Our work provides a first-of-its-kind C++ compiler enabling high-level quantum kernel (function) expression in a quantum-language manner.
arXiv Detail & Related papers (2020-10-08T12:49:07Z)
This list is automatically generated from the titles and abstracts of the papers in this site.
This site does not guarantee the quality of this site (including all information) and is not responsible for any consequences.