Autonomic Cloud Management

Quantum Computing

A quantum computer is a system that performs computation by evolving according to the laws of quantum mechanics. By storing information in quantum mechanical systems, a quantum computer can exploit phenomena such as superposition and entangled states to greatly increase parallelism. The canonical text on quantum computing is Chuang and Nielsen's Quantum Computing and Quantum Information. For a more accessible introduction to the field, Quantum Computing for Computer Scientists is an excellent read.

Scaffold and ScafCC

Scaffold is a high level, C-like programming language for expressing quantum algorithms. Its purpose is to aid in the design and evaluation of applications for quantum computers. ScafCC is a compiler built around the LLVM compiler infrastructure that generates quantum circuits from Scaffold code. ScafCC also implements a number of optimization and resource estimation passes.

Dynamic Compilation of Arbitrary Rotation Gates

Quantum rotation gates pose a unique challenge to quantum algorithm designers because they represent a continuous set of operation that cannot be implemented fault tolerantly. As a result, arbitrary rotations must be approximated by sequences of fault tolerant operations in a process called decomposition. We are investigating the problem of dynamically decomposing rotations (during quantum algorithm execution) and have developed a tool that accomplishes this up to 100,000X faster than existing methods.