My leap into quantum computing
Tags: octograd2020, devgrad2020, githubsdp
Published: 2020-05-20 05:16:30

[Comment]: # (All of this is placeholder text. Use this format or any other format of your choosing to best describe your project and experience.)

[Note]: # (If you used the GitHub Student Developer Pack on your project, add the "#githubsdp" tag above. We’d also love to know which services you used and how you used it!)

## My Project
Determining thresholds for quantum error-correction codes via Ising spin glass simulations

### Description
Quantum computing promises great potential for solving certain hard problems, like factoring, that classical computers can't solve efficiently. However, wrangling computation under the rules of quantum mechanics is very difficult because qubits, or quantum bits, are very susceptible to error and info decoherence. Thus, a major question in the field is how can we achieve error correction within our future quantum computers without corrupting the computation in the process.

To this end, I explored how effective a certain class of quantum error correction codes can be at defending our computations against errors. I wrote C++ and Python physics simulations to model the evolution of entangled quantum bits, or qubits, set on a torus. Through these simulations, I investigated the maximum error rate corrigible by different topological stabilizer codes. In the bigger picture, this research helps us seek more effective codes to realize fault-tolerant quantum computing.

### Link to Code
[quantum-error-code-simulations](https://github.com/mldurney/quantum-error-code-simulations)

[Note]: # (Our markdown editor supports pretty embeds. If you're sharing a GitHub repo, try this syntax: `{% github link_to_your_repo %}`)

### How I built it
In C++, I wrote a multi-threaded physics simulator with tunable parameters for performing Monte Carlo simulations of Ising spin glasses. In these simulations, the quantum error decoding problem on a 2-D lattice was mapped to the Ising spin glasses, allowing me to investigate how qubits interact with each other and how errors propogate.

On top of the C++ simulator, I wrote Python scripts to automate running tests and collecting data. These include scripts for generating the input, running batches of simulations, aggregating data, and plotting the results.

While building my project, I worked in a VSCode + WSL environment. I also used a GitHub private repo available to me through the Student Developer Pack to host my project and track changes. (This was back in 2017 before private repos were enabled for everyone.)

### Additional Thoughts / Feelings / Stories
This was my first adventure into quantum computing research, and I have been hooked since! This summer, I'll be working with the Quantum Team at X to collaborate on exciting research at the intersection of quantum computing and tensor networks. Then, in the fall, I will be heading to the startup PsiQuantum whose mission is to build the first useful quantum computer by leveraging a silicon photonic architecture.

This was also my first true computer science project. Thus, the work is very rough around the edges, but I learned so much through it. It's something I built from the ground up, and through it I was exposed to version control, interfacing with computing clusters, multi-threading, using multiple languages together, and so much more. This experience set me on the path I'm chasing today to be the best computer scientist I can be while diving deeper and deeper into quantum computing research!

[Final Note]: # (CONGRATULATIONS!!! You are amazing!)