banner

Projects

Software Platforms for Quantum Experiments

PI: Oskar Painter (Divisions of Engineering and Applied Sciences (EAS) and Physics, Mathematics and Astronomy (PMA))
SASE: Alex Hadley, Scholar

Quantum information science has recently become one of the most highlighted directions in the field of physical science. Research in quantum information is not limited to fundamental problems in quantum many-body physics and quantum chemistry, but also includes industry-fueled efforts to build a practical quantum computer, which is anticipated to solve problems that are prohibitively hard to tackle with classical computers. In Oskar Painter’s group at Caltech, experiments involving 10 superconducting qubits are underway, and the size of the system is expected to grow rapidly over the next few years. The Schmidt Academy collaborated with the Painter Lab to develop a set of open-source software packages to manage the data required to run these increasingly complex systems.

ParamDB is a Python package for storing and retrieving experiment parameters. ParamDB allows researchers to define the structure of their parameters using Data Classes, which enables code suggestions and type checking. ParamDB also stores the history of parameters, which is important for reproducibility. Under the hood, ParamDB uses SQLite and Zstandard compression to achieve greater space efficiency, storing a previously 1.2 TB parameter database in only 15 MB (in part due to a quadratic scaling bug in the old package). This reduced database size allows researchers to perform much larger experiments without running out of hard drive space.

ParamView is a web interface that allows researchers to view and edit a ParamDB database. Previously, researchers could only interact with parameters via a Python interpreter. ParamView greatly improves the ability to monitor live experiments, view historical parameter values, and modify parameters. A demo of ParamView and ParamDB can be watched here: youtu.be/YctzCs7Wr0c.

DataLogs is a Python package for saving measurement results in an organized directory structure. Previously, the lab used proprietary and outdated software for this purpose, so DataLogs provides a modern and open-source alternative with additional organizational features.

Finally, a set of JupyterLab extensions makes it easier for researchers to plot and analyze DataLogs files. JupyterLab DataLogs generates Python code to load and plot DataLogs files. JupyterLab PDF Preview previews PDF files on hover, making it easy to search through saved figures. JupyterLab Display Name allows the user to enter a name to use (otherwise, they are named a random moon of Jupiter). Lastly, JupyterLab Open Warning displays a warning dialog when opening a file that another user has open, allowing multiple people to safely use a JupyterLab server at the same time. A demo of DataLogs and these JupyterLab extensions can be watched here: youtu.be/OwQBZl_Jj0w.

image

A ParamDB database being viewed in ParamView (left) and corresponding analysis using DataLogs and JupyterLab extensions (right).