(De)constructing Quantum Software - DeQS
The past five years have seen quantum computation shift from a largely theoretical exercise to a practical one. Rather than imagining hypothetical quantum computers where we might one day run quantum algorithms, it is becoming increasingly possible to access and experiment with real, small-scale quantum hardware. These emerging devices show a great deal of potential, and may soon start to perform useful computations which are far beyond the reach of classical computers, solving hard problems in chemical development, material science, drug discovery, finance, industrial optimisation, or in areas that are, as yet, completely unexpected.
Just like classical computer hardware, quantum hardware is only as good as the software that drives it. This proposal focuses on quantum compilation, which concerns the translation of high-level descriptions of quantum algorithms to low-level instructions that can be run on specific quantum hardware. Current and near-future quantum hardware platforms are extremely limited in their capabilities and highly susceptible to noise from the environment, and sophisticated optimising compilers are crucial to practical applications for these devices.
The objective of this proposal is to produce more efficient and robust quantum software by means of advanced quantum compilation tools. In addition to that objective, the proposed research will develop new techniques to classically simulate large-scale quantum computations and prove they are correctly implemented. Whereas existing approaches treat the problems of compilation, classical simulation, and verifying correctness as separate challenges, the core idea behind this work is to treat these applications all as different aspects of the same thing: a flexible and generic notion of quantum program transformation based on graph rewriting. This provides a unique new perspective on these problems and allows a cross-pollination of ideas and techniques across these application areas, as well as between quantum computation and classical theoretical computer science.