-
Notifications
You must be signed in to change notification settings - Fork 49
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Added error correction pipeline simulations #198
Added error correction pipeline simulations #198
Conversation
A lot of the failures are due to the LDPCDecoders dependency. I cleaned it up a bit. Let's see whether the tests work better after JuliaRegistries/General#97229 |
@Benzillaist, could you drop a link here to the code you have prepared for the wiki. If I remember correctly, we had discussed some API design with you, and it would be useful for me to refer to that API while working through reviewing this code. |
There were some changes done on the master branch which help with testing. I updated this branch to include the changes from master. Be sure to first do |
Benchmark ResultJudge resultBenchmark Report for /home/runner/work/QuantumClifford.jl/QuantumClifford.jlJob Properties
ResultsA ratio greater than
Benchmark Group ListHere's a list of all the benchmark groups executed by this job:
Julia versioninfoTarget
Baseline
Target resultBenchmark Report for /home/runner/work/QuantumClifford.jl/QuantumClifford.jlJob Properties
ResultsBelow is a table of this job's results, obtained by running the benchmarks.
Benchmark Group ListHere's a list of all the benchmark groups executed by this job:
Julia versioninfo
Baseline resultBenchmark Report for /home/runner/work/QuantumClifford.jl/QuantumClifford.jlJob Properties
ResultsBelow is a table of this job's results, obtained by running the benchmarks.
Benchmark Group ListHere's a list of all the benchmark groups executed by this job:
Julia versioninfo
Runtime information
Architecture: x86_64
Benchmark ResultJudge resultBenchmark Report for /home/runner/work/QuantumClifford.jl/QuantumClifford.jlJob Properties
ResultsA ratio greater than
Benchmark Group ListHere's a list of all the benchmark groups executed by this job:
Julia versioninfoTarget
Baseline
Target resultBenchmark Report for /home/runner/work/QuantumClifford.jl/QuantumClifford.jlJob Properties
ResultsBelow is a table of this job's results, obtained by running the benchmarks.
Benchmark Group ListHere's a list of all the benchmark groups executed by this job:
Julia versioninfo
Baseline resultBenchmark Report for /home/runner/work/QuantumClifford.jl/QuantumClifford.jlJob Properties
ResultsBelow is a table of this job's results, obtained by running the benchmarks.
Benchmark Group ListHere's a list of all the benchmark groups executed by this job:
Julia versioninfo
Runtime information
Architecture: x86_64
|
@@ -0,0 +1,512 @@ | |||
"""Generate a lookup table for decoding single qubit errors.""" | |||
function create_lookup_table(code::Stabilizer) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@Benzillaist could you link to the implementation you have for the lookup table? In particular in the type-based API for decoders
For these four functions we need a better API:
One type of code repetition here is that there are two copies of the simulation code for each of the hardcoded decoders. It would be useful to decouple the decoders. Something that Ben (@Benzillaist) has been working on is a decoder API. Ben, could you submit a PR to LDPCDecoders with the API? It is along the lines of:
(done once for the X logicals and once for the Z logicals) |
Hello Stefan, apologies for the delay. I have made a pull request to LDPCDecoders with my code as it is right now. Link to PR: QuantumSavory/LDPCDecoders.jl#11 |
Implemented both naive and short syndrome error correction pipelines for both CSS and non-CSS codes. I have many non-official testing functions for these, but didn’t know if I should have included them. The main way I’ve been testing them is by generating plots and then inspecting them visually. Regardless this feature might be nice to have in the library, as currently these function just return a tuple of an x and z logical error rate for a given code and physical error rate. It would be nice if the user didn’t have to convert this into something more easy to plot themselves. Below I’ll include a sample function of mine, and based on discussion, might supply a second commit that adds these types of “nice-to-have” features.
Here is a sample testing function. There are some functions being called from my private repo, but hopefully the main idea of how to use this is clear. This function in particular returns a plot for the logical X error, as well as a plot for the logical Z error. (f_x and f_z are plots)
And its output: