Quantum software and algorithms research
About
The QSAR group works on designing and implementing the software that
enables us to write and run algorithms on quantum computers. It was
established in 2022 in the Department of Electrical and Computer
Engineering at UBC, and is a part
of Quantum BC.
News
- (2024-05-21) The QSAR lab welcomes Nils
Quetschlich, from the
Chair for Design Automation at TUM, as a
visiting PhD student this summer.
- (2024-05-07) Thanks to Gabe's hard work, a mixed-state qutrit simulation device
was released with
PennyLane 0.36! Thank you to the PennyLane team
for all their time and work reviewing our contributions.
- (2024-05-06) Welcome to Cihan and Tanishq, our new summer undergraduate researchers!
- (2024-04-26) QSAR students presented their
research as part
of Quantum BC Research Day's poster
competition. Congrats to Jacky for winning 3rd place!
- (2024-03-06) Abhishek presented the talk
Rocky Raccoon: Automated quantum circuit
optimization using graph-based deep reinforcement learning at
this year's virtual APS March Meeting.
- (2023-11-24) Abhi, Ritu, and Marcus represented
UBC and came 3rd place in Xanadu's
Canadian
Quantum Cup programming competition!
- (2023-09-18) Gabe presents our
work on using
qutrits for QAOA at IEEE Quantum Week in Bellevue, WA.
- (2023-09-01) Jacky, Nishanth, and Ritu join the
group, and Gabe begins his new role as a graduate student.
- (2023-07-23) Abhishek presented the talk
Towards automated quantum circuit optimization with graph-based deep reinforcement learning at the
5th International Workshop on Quantum Compilation.
- (2023-06-10) Our collaborative work with IIT
Roorkee scientists about predicting the neutron drip line with
quantum computing was posted on the arXiv.
Past news items can be found in our
news archive.
Research
Group members work on a broad array of research projects which
typically fall into one of the following categories: quantum software
and compilation, noise characterization and mitigation, and quantum algorithm
development.
Software and compilation
Quantum compilation is the process of translating a high-level
description of a quantum algorithm into a set of instructions that
is executed on hardware. It's a process with many moving parts
that typically involve solving computationally hard problems.
Areas of investigation include:
- Developing automated compilation tools that scale into the
100s of qubits or more
- Optimizing techniques for cutting and partitioning large
quantum circuits
- Exploring how machine learning and can help us select the
best compilation techniques and devices for an algorithm
- Leveraging differentiable quantum programming
to learn how to compile quantum circuits, and do so in a
way that preserves differentiability
Ultimately, we are interested in doing the "hard part" (such as
the optimization process in the gif below), so that users of quantum
software don't need to worry about what happens under the hood, and
can focus instead on writing quantum algorithms.
![Gif of optimizing a quantum circuit.](img/optimize-ccz.gif)
Noise characterization and mitigation
In order to improve the operation of our quantum computers, we
need good tools to learn about and characterize their behaviour, and
quantify how well they work. We are interested in:
- Designing adaptive methods for quantum tomography that can learn to characterize and mimic the behaviour of processors
- Applying noise characterization and calibration data to improve compilation and algorithm execution
- Optimizing the application of error mitigation processes and exploring how they interact with algorithmic components such as compilation and gradient computation.
![Gif of optimizing to learn
overrotation angles.](img/param-learning.gif)
Quantum algorithms
Compared to classical computing, there are relatively few known
quantum algorithms, and even fewer that will one day achieve the
substantial speedups needed to solve life-sized problems.
Our
group works on both co-designing and implementing software that
facilitates our reasoning about algorithms, and exploring how it can be used
to develop new algorithms and applications.
Projects our members are working on include:
- Developing qutrit and qudit simulation tools for the
open-source framework PennyLane
- Exploring the use of higher-level quantum systems like
qutrits and qudits for variational algorithms
- Applying quantum computing and quantum machine learning to
problems in nuclear, particle, and condensed-matter
physics
- Development and implementation of new differentiable quantum
transforms
People
Current members
- Abhishek Abhishek (MASc student)
- Cihan Bosnali (undergraduate student)
- Gabe Bottrill (MASc student)
- Gideon Uchehara (co-supervised PhD student)
- Jacky Jiang (MASc student)
- Mushahid Khan (co-supervised PhD student)
- Nils Quetschlich (visiting PhD student, summer 2024)
- Nishanth Baskaran (PhD student)
- Ritu Thombre (MASc student)
- Tanishq Pradhan (undergraduate student)
Positions
For prospective graduate students
I am not currently accepting applications from prospective graduate
students for a 2024 start. Please check back at a later date.
For UBC undergraduate students
We do not currently have any open positions. If you are considering
a directed studies or research experience course during fall or
winter term in the 2024 year, please contact Olivia directly at olivia @ ece.ubc.ca.
Group code of conduct
All QSAR group members are expected to uphold the following codes of
professional and scientific conduct. The text below is partially
based on CoCs of the
Tropini,
Avasthi, and
Willis labs.
The CoC was last reviewed in September 2023. As a group, we will
review and update it together on at least a yearly basis (in
particular, following an influx of new members) so that everyone has
the opportunity to contribute their ideas.
Professional conduct
- You work with the group, not for the group.
All group members, regardless of their academic status, are
independent researchers in training. Everyone comes with their own skill
set and experience, and contributes their unique perspective to the work
that we do. We work together and do not compete with each other.
- Be professional with everyone. Treat other group members
and your shared space with respect. Ensure everyone has the chance
to speak during group meetings, and be mindful of interrupting or
talking over others. Our work hours are flexible, so be considerate
of the time and schedules of your colleagues. When you are
collaborating with others, giving a talk, or at a conference, you
are out representing our group. Conduct yourself in the same
professional manner as you would within the group, regardless of
where you are and who you are with, and follow the CoCs in place at events.
- Harassment will not be tolerated. There is zero
tolerance for exclusionary comments or jokes, threats, or
violent behaviour or language. Offensive behaviour or comments of
any kind relating to gender, gender identity and expression, sexual
orientation, disability, mental illness, neuro(a)typicality,
physical appearance, body size, age, race, ethnicity, religion,
lifestyle choices, etc. are not welcome in our group. Please do not take
photographs of others, share their work, or post
personally-identifying information online without their explicit
permission.
- Ask for help when needed, and provide it willingly.
Everyone is here to learn, so ask lots of questions! When you
receive questions, respond to them respectfully without putting the
other person down; focus on helping the other person learn how to do
something, rather than simply doing it for them. Be mindful of
people's time: if your question is something a quick online search
will resolve, do so before reaching out.
- Provide constructive feedback. Feedback is meant to help
someone improve. Identify errors when they occur, and make direct
and honest suggestions where appropriate (including to the group
lead!). Make feedback about the work, not the person. This includes
discussions about the work of others.
Scientific conduct
- We share our data and code. We post preprints on
the arXiv so that our work is available to everyone. We publish our source
code and data under permissive licenses on GitHub or other
code-sharing platforms. We also prioritize the use of open-source
libraries in our work, and contribute back to them when
we can.
- We conduct our work with integrity. Never falsify,
make omissions, or otherwise manipulate your code or data. Our work
should be reproducible by others in the field, and we should provide
all that is needed to enable that.
- We collaborate. This includes with other research groups
at UBC and beyond,
companies, and online communities. We treat
confidential information obtained during collaborations with utmost
care. If you wish to establish collaborations with an external
party, great! Please initiate a discussion with the group lead
first.
- We provide proper attribution. Always cite your sources and
images in your written work and presentations, even if that source
is yourself. When using external libraries in your project, make
sure to check the licenses.
- It's okay to make mistakes. Everyone makes them, this is
how we learn. It is important to be open and honest about them,
accept responsibility, and we will work together to resolve
them.