Skip to main content

Currently Skimming:

6 Essential Software Components of a Scalable Quantum Computer
Pages 135-155

The Chapter Skim interface presents what we've algorithmically identified as the most significant single chunk of text within every page in the chapter.
Select key terms on the right to highlight them within pages of the chapter.


From page 135...
... Given the different, and emerging, approaches to building a quantum data plane, early-stage high-level software tools must be particularly flexible if they are to remain useful in the event of changes in hardware and algorithms. This requirement complicates the task of developing a complete software architecture for quantum computing.
From page 136...
... Optimization tools such as resource estimators would enable rapid estimation of the performance and qubit resources needed to perform different quantum algorithms. This enables a compiler to transform the desired computation into an efficient form, minimizing the number of qubits or qubit operations required for the hardware in question.
From page 137...
... The following sections describe these issues in more detail. 6.2 QUANTUM PROGRAMMING LANGUAGES Algorithm design, including for QC algorithms, usually starts with a mathematical formulation of an approach for solving a problem.
From page 138...
... While some low-level languages are used at present to program devices directly, the long-term vision and goal for quantum computing is to absorb such languages into automated tool flows; as in classical computers, the goal is to have lower-level QC device orchestration be automatically generated, and to abstract such low-level information away from the programmer. Similar to early stages of a classical computing ecosystem, the current state of play in QC software includes many languages and tools, a number of them open-source efforts,1 in development both commercially and academically.
From page 139...
... In some quantum programming languages, the approach is to describe an algorithm as a quantum circuit. Software toolchain systems then analyze this circuit in terms of both circuit width and circuit depth to optimize it for a particular quantum data plane.
From page 140...
... All languages use some forms of data types. For example, in most programming languages, base data types are provided for integers, floating point numbers, characters, and other commonly used entities; the definition of addition is different for integers than it is for floating point numbers.
From page 141...
... Classical computers compile programs such that they can be run with many different inputs: for example, a spreadsheet program accepts and calculates any numbers typed in by a user, rather than compiling a unique program for each new input. Until QC resource constraints relax considerably, a QC program compilation will much more closely resemble the tight optimization processes used in designing computer hardware (i.e., "hardware synthesis")
From page 142...
... Such tight tailoring in compiler tool flows can allow algorithms to most efficiently use the limited qubit counts available in the NISQ era. 6.2.3 Software Library Support In classical computers, function libraries help programmers mitigate complexity by using prewritten subroutines for programs.
From page 143...
... Library approaches are similarly expected to be essential for efficient quantum computing. One critical set of libraries arises from the need to evaluate commonly used functions within a quantum algorithm.
From page 144...
... . The results of resource estimation analysis can be used by other software tools to guide optimization efforts, especially when mapping to the quantum data plane, and by programmers to identify realistic applications of quantum computers.
From page 145...
... Simulators can model the effect of noise for different hardware technologies. This helps algorithm designers to predict the effects of noise on the performance of quantum algorithms before there are machines capable of running them.
From page 146...
... This approach is particularly useful for quantum algorithms that use "oracle functions," functions for which the quantum implementation is not known -- in this case, the programmer can provide a classical implementation of the oracle function. 6.4 SPECIFICATION, VERIFICATION, AND DEBUGGING The specification, verification, and debugging of quantum programs is an extremely difficult problem.
From page 147...
... . A third model considers a classical verifier interacting with a single quantum device, where the verifier uses post-quantum cryptography to keep the device honest.
From page 148...
... Given the difficulty of developing quantum algorithms and tool flows, designers need methods to help validate both the initial algorithm and the low-level output that the compiler generates (to check the optimizations done in the compiler)
From page 149...
... Given the unique requirements and operations of quantum algorithms, the programmer would use a domain specific language (DSL) created for quantum computing or perhaps even for algorithmic subdomains within QC.
From page 150...
... The qubits of this "expanded" quantum program are then mapped onto a specific hardware implementation accounting for the specific gate operations and connectivity available. At the lowest level, the operations on physical qubits will be generated as instructions of the quantum control processor that orchestrate the specific control pulses (e.g., microwave or optical)
From page 151...
... 6.5.2 Quantum Error Correction Given the high error rates of quantum gates, once quantum error correction can be deployed, one of the key jobs of the tool flow is to map the needed logical qubits into a set of the physical qubits, and the logical qubit operations into operations on the physical qubits. Until qubit gate error probabilities fall precipitously, the fault-tolerant architectures adopted will have complex structures (both in terms of the number of
From page 152...
... 6.6 SUMMARY The software tools needed to create and debug quantum programs are as essential to all scales of quantum computer as the underlying quantum data plane. While good progress has been made in this area, a number of challenging problems remain to be solved before a practical machine could become operational.
From page 153...
... The NISQ era may prove to be one of significant change in software compilation and tools. In particular, the ability to rapidly develop and test quantum programs on real hardware will be critical in developing a deeper understanding of the power of quantum computers for concrete applications, as well as enabling fast feedback and progress in hardware development.
From page 154...
... Svore, and M Troyer, 2018, A software methodology for compiling quantum programs, Quantum Science and Technology 3:020501.
From page 155...
... Franklin, and M Martonosi, 2017, Programming languages and com piler design for realistic quantum hardware, Nature 549(7671)


This material may be derived from roughly machine-read images, and so is provided only to facilitate research.
More information on Chapter Skim is available.