Julia for computer science and quantum computing

Dear everyone!
I am about to take OSSU Computer Science, and after that going to go further with quantum computing, my question is, when I have taken the juliaacademy introduction to Julia language for programmers course, where can I learn further about complex topics like computer science for example doing research on current avaliable algorithms, find weakness and errors in them so then, I can create new algorithms in julia fixing weaknesses and errors, and also doing research about other computer science topics, after a while when also learned quantum information science, I would like to do quantum computing in Julia too, is there any way to learn needed topics and packages for julia so then I can do scientific computing in Julia in computer science and quantum computing topics? Thank you for all answers in advance!
Dominik

2 Likes

Welcome to the Julia community!
I know QUBO.jl for quantum computing. I don’t know much about other aspects.

You might be interested in last years JuliaCon keynote https://www.youtube.com/watch?v=3IKqUGN3BKI

I’m currently using yao.jl for my project (variational algorithms). You might want to play around with it, especially if you are interested in gate based quantum computing.

Hi, @Dominik_Ballo ,

In no particular order:

Office Hours

On most Fridays we run office hours on software for quantum information science, check out the julia community calendars where we have it announced: Community

State vector simulators for arbitrary systems

There is a vast array of tools for modeling arbitrary quantum hardware: QuantumOptics.jl and QuantumToolbox.jl being the flagships. For more restricted dynamics check out also QuantumCummulants.jl and WaveguideQED.jl.

These are tools researchers use when designing low-level hardware, e.g. single qubits, with very detailed physics level simulation. They are frequently classified as open quantum systems modeling tools, because they model noise and decoherence well.

State vector simulators for qubit systems

If you specifically want to run classical simulation of a quantum algorithm, i.e. simulating the state vector of a bunch of qubits, Yao.jl is probably the best tool for this. It is not as actively developed these days, but it is a very solid tool.

Tensor networks

When there is some (potentially ill-defined) structure to the entanglement in a system, tensor networks can be a very efficient way to represent a state vector. ITensor.jl is the flagship tool for such work.

Stabilizer formalism (Clifford Circuits)

QuantumClifford.jl is very expansive, rich, powerful, and efficient, for when you want to deal with stabilizer states, error correcting codes, Pauli frames, and weakly non-Clifford dynamics. This is one of the important techniques for efficiently modeling restricted quantum dynamics on classical hardware.

Error correcting codes

QuantumClifford.jl has a ton of tooling for that as well, but check out TensorQEC.jl and CodingTheory.jl as well.

Also, Nemo.jl / Hecke.jl / Oscar.jl are by far the best tools to use if you want to study the advanced mathematics behind the discovery and creation of good error correcting codes.

Gaussian Quantum Optics

Gabs.jl is the tool to use when working with Gaussian states and linear optics. This is another one of the important techniques for efficiently modeling restricted quantum dynamics on classical hardware.

Optimal Control

QuantumControl.jl and Piccolo.jl are great frameworks for optimizing the classical control pulses that implement a quantum gate in variety of hardware.

Quantum Networks

QuantumSavory.jl is a project sponsored by the US National Science Foundation’s Center for Quantum Networks, implementing a variety of abstractions for the simulation of both the classical and quantum dynamics in a network of quantum nodes.

Symbolics

QuantumSymbolics.jl is a small package with currently fairly restricted capabilities, but it lets you handle simple symbolic expressions and convert them to numerical expressions in various backends.

Bounties and opportunities for new members

We run a bug bounty program that can be a good way to jump into the ecosystem and even contribute: .github/BUG_BOUNTIES.md at main · QuantumSavory/.github · GitHub

3 Likes