{ "cells": [ { "cell_type": "markdown", "id": "a3082d18-56df-4834-8963-586a5500bced", "metadata": { "editable": true, "papermill": { "duration": 0.004283, "end_time": "2025-02-01T16:32:54.223797", "exception": false, "start_time": "2025-02-01T16:32:54.219514", "status": "completed" }, "slideshow": { "slide_type": "" }, "tags": [] }, "source": [ "# Decoding Speed" ] }, { "cell_type": "code", "execution_count": 1, "id": "afceb91f-5b83-487f-96f9-5015002f5daf", "metadata": { "editable": true, "execution": { "iopub.execute_input": "2025-02-01T16:32:54.230875Z", "iopub.status.busy": "2025-02-01T16:32:54.230534Z", "iopub.status.idle": "2025-02-01T16:32:54.237240Z", "shell.execute_reply": "2025-02-01T16:32:54.236996Z" }, "papermill": { "duration": 0.011191, "end_time": "2025-02-01T16:32:54.238196", "exception": false, "start_time": "2025-02-01T16:32:54.227005", "status": "completed" }, "slideshow": { "slide_type": "" }, "tags": [ "parameters" ] }, "outputs": [], "source": [ "# This cell is tagged `parameters` and will be override by `papermill`\n", "decoder: str = \"mwpm\"\n", "json_filename: str = \"speed-rsc-mwpm.json\" # where to save the result, must be provided\n", "\n", "rounds: int = 200\n", "kwargs = dict(\n", " min_time = 60,\n", " min_shots = 50,\n", " min_init_time = 0.1,\n", " min_init_shots = 1,\n", ")\n", "max_per_round_time: float = 0.1 # if each round takes more than 100ms to decode, then do not run the next `d`, since it is not meaningful anymore" ] }, { "cell_type": "code", "execution_count": 2, "id": "f1e9eda4", "metadata": { "execution": { "iopub.execute_input": "2025-02-01T16:32:54.241142Z", "iopub.status.busy": "2025-02-01T16:32:54.241021Z", "iopub.status.idle": "2025-02-01T16:32:54.242763Z", "shell.execute_reply": "2025-02-01T16:32:54.242512Z" }, "papermill": { "duration": 0.004117, "end_time": "2025-02-01T16:32:54.243580", "exception": false, "start_time": "2025-02-01T16:32:54.239463", "status": "completed" }, "tags": [ "injected-parameters" ] }, "outputs": [], "source": [ "# Parameters\n", "decoder = \"mwpf(c=1000)\"\n", "json_filename = \"speed-rsc-mwpf-c1000.json\"\n" ] }, { "cell_type": "code", "execution_count": 3, "id": "5e4bf8f4-0e7c-453e-aacd-18c9061a999c", "metadata": { "editable": true, "execution": { "iopub.execute_input": "2025-02-01T16:32:54.246625Z", "iopub.status.busy": "2025-02-01T16:32:54.246478Z", "iopub.status.idle": "2025-02-01T16:32:54.256715Z", "shell.execute_reply": "2025-02-01T16:32:54.256388Z" }, "papermill": { "duration": 0.013071, "end_time": "2025-02-01T16:32:54.257836", "exception": false, "start_time": "2025-02-01T16:32:54.244765", "status": "completed" }, "slideshow": { "slide_type": "" }, "tags": [] }, "outputs": [], "source": [ "%load_ext autoreload\n", "%autoreload 2" ] }, { "cell_type": "code", "execution_count": 4, "id": "552dcc10-a319-487b-a20b-09221382176b", "metadata": { "editable": true, "execution": { "iopub.execute_input": "2025-02-01T16:32:54.260741Z", "iopub.status.busy": "2025-02-01T16:32:54.260623Z", "iopub.status.idle": "2025-02-01T16:32:54.268037Z", "shell.execute_reply": "2025-02-01T16:32:54.267703Z" }, "papermill": { "duration": 0.010079, "end_time": "2025-02-01T16:32:54.269156", "exception": false, "start_time": "2025-02-01T16:32:54.259077", "status": "completed" }, "slideshow": { "slide_type": "" }, "tags": [] }, "outputs": [], "source": [ "# import psutil\n", "# psutil.Process().nice(0)# if on *ux\n", "# psutil.Process().nice(psutil.IDLE_PRIORITY_CLASS)# if on win" ] }, { "cell_type": "code", "execution_count": 5, "id": "f4ce38b6-65b8-4ec5-b097-aab9f6943e10", "metadata": { "editable": true, "execution": { "iopub.execute_input": "2025-02-01T16:32:54.272373Z", "iopub.status.busy": "2025-02-01T16:32:54.272229Z", "iopub.status.idle": "2025-02-01T16:32:55.428012Z", "shell.execute_reply": "2025-02-01T16:32:55.427645Z" }, "papermill": { "duration": 1.158623, "end_time": "2025-02-01T16:32:55.429076", "exception": false, "start_time": "2025-02-01T16:32:54.270453", "status": "completed" }, "slideshow": { "slide_type": "" }, "tags": [] }, "outputs": [], "source": [ "from qec_lego_bench.cli.decoding_speed import decoding_speed, DecodingSpeedResult\n", "from qec_lego_bench.hpc.job_store import Job, JobStore\n", "from qec_lego_bench.hpc.plotter.logical_error_rate_plotter import *" ] }, { "cell_type": "code", "execution_count": 6, "id": "2eb79028-afab-46a7-a36e-f567fd486716", "metadata": { "editable": true, "execution": { "iopub.execute_input": "2025-02-01T16:32:55.432549Z", "iopub.status.busy": "2025-02-01T16:32:55.432307Z", "iopub.status.idle": "2025-02-01T16:32:55.447077Z", "shell.execute_reply": "2025-02-01T16:32:55.446675Z" }, "papermill": { "duration": 0.017595, "end_time": "2025-02-01T16:32:55.448120", "exception": false, "start_time": "2025-02-01T16:32:55.430525", "status": "completed" }, "slideshow": { "slide_type": "" }, "tags": [] }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "d_vec: [3, 5, 7, 9, 11, 13, 15, 17, 19, 23, 27, 31, 37, 43, 51]\n" ] } ], "source": [ "def generate_d_vec(ratio: float = 1.18, max_d: int = 51) -> list[int]:\n", " d = 3\n", " d_vec = [d]\n", " while d <= max_d:\n", " int_d = 2 * round(d / 2) + 1\n", " if int_d != d_vec[-1]:\n", " d_vec.append(int_d)\n", " d *= ratio\n", " return d_vec\n", "d_vec = generate_d_vec()\n", "print(\"d_vec:\", d_vec)\n", "p_vec = [0.00001, 0.0001, 0.001, 0.003, 0.01]\n", "\n", "def evaluation_function(d: int, p: float, rounds: int, verbose: bool = True) -> DecodingSpeedResult:\n", " if verbose:\n", " print(f\"d: {d}, p: {p}\")\n", " return decoding_speed(decoder=decoder, code=f\"rsc(d={d},p={p})\", **kwargs, no_print=not verbose)\n", "\n", "jobs = [Job(d=d, p=p, rounds=rounds) for p in p_vec for d in d_vec[:1]] # only add the smallest d and dynamically add others\n", "# evaluation_function(min(d_vec), min(p_vec), rounds)" ] }, { "cell_type": "markdown", "id": "ebd460d0-efa9-4075-9a1d-a62791230623", "metadata": { "editable": true, "papermill": { "duration": 0.001093, "end_time": "2025-02-01T16:32:55.450532", "exception": false, "start_time": "2025-02-01T16:32:55.449439", "status": "completed" }, "slideshow": { "slide_type": "" }, "tags": [] }, "source": [ "Define the plot functionality" ] }, { "cell_type": "code", "execution_count": 7, "id": "aea5f255-0cca-4a5b-a43d-f5d4b460d502", "metadata": { "editable": true, "execution": { "iopub.execute_input": "2025-02-01T16:32:55.454359Z", "iopub.status.busy": "2025-02-01T16:32:55.454224Z", "iopub.status.idle": "2025-02-01T16:32:55.476495Z", "shell.execute_reply": "2025-02-01T16:32:55.476222Z" }, "papermill": { "duration": 0.025783, "end_time": "2025-02-01T16:32:55.477493", "exception": false, "start_time": "2025-02-01T16:32:55.451710", "status": "completed" }, "slideshow": { "slide_type": "" }, "tags": [] }, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "from decoding_time_plotter import DecodingTimePlotter\n", "\n", "plotter = DecodingTimePlotter(p_vec=p_vec, d_vec=d_vec, rounds=rounds, max_per_round_time=max_per_round_time)" ] }, { "cell_type": "code", "execution_count": 8, "id": "1cfa5901-2d84-4321-90e2-220ac77b9da1", "metadata": { "editable": true, "execution": { "iopub.execute_input": "2025-02-01T16:32:55.480786Z", "iopub.status.busy": "2025-02-01T16:32:55.480670Z" }, "papermill": { "duration": 3651.178229, "end_time": "2025-02-01T17:33:46.657080", "exception": false, "start_time": "2025-02-01T16:32:55.478851", "status": "completed" }, "slideshow": { "slide_type": "" }, "tags": [] }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "d: 3, p: 1e-05\n", "\r", "\u001b[KEvaluating initialization of 1 shots, elapsed: 0.003301s, average: 3.301e-03s per shot\r" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r", "\u001b[KEvaluating initialization of 2 shots, elapsed: 0.004499s, average: 2.249e-03s per shot\r" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r", "\u001b[KEvaluating initialization of 4 shots, elapsed: 0.008852s, average: 2.213e-03s per shot\r" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r", "\u001b[KEvaluating initialization of 8 shots, elapsed: 0.016470s, average: 2.059e-03s per shot\r" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r", "\u001b[KEvaluating initialization of 16 shots, elapsed: 0.034600s, average: 2.162e-03s per shot\r" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r", "\u001b[KEvaluating initialization of 32 shots, elapsed: 0.067577s, average: 2.112e-03s per shot\r" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r", "\u001b[KEvaluating initialization of 64 shots, elapsed: 0.133466s, average: 2.085e-03s per shot\r" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\n", "initialization time: 2.085e-03s\n", "\r", "\u001b[KEvaluating decoding of 50 shots, elapsed: 0.001198s, average: 2.396e-05s per shot\r" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r", "\u001b[KEvaluating decoding of 100 shots, elapsed: 0.001777s, average: 1.777e-05s per shot\r" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r", "\u001b[KEvaluating decoding of 200 shots, elapsed: 0.003844s, average: 1.922e-05s per shot\r" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r", "\u001b[KEvaluating decoding of 400 shots, elapsed: 0.007325s, average: 1.831e-05s per shot\r" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r", "\u001b[KEvaluating decoding of 800 shots, elapsed: 0.014498s, average: 1.812e-05s per shot\r" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r", "\u001b[KEvaluating decoding of 1600 shots, elapsed: 0.028759s, average: 1.797e-05s per shot\r" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r", "\u001b[KEvaluating decoding of 3200 shots, elapsed: 0.057962s, average: 1.811e-05s per shot\r" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r", "\u001b[KEvaluating decoding of 6400 shots, elapsed: 0.116689s, average: 1.823e-05s per shot\r" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r", "\u001b[KEvaluating decoding of 12800 shots, elapsed: 0.227847s, average: 1.780e-05s per shot\r" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r", "\u001b[KEvaluating decoding of 25600 shots, elapsed: 0.455655s, average: 1.780e-05s per shot\r" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r", "\u001b[KEvaluating decoding of 51200 shots, elapsed: 0.916526s, average: 1.790e-05s per shot\r" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r", "\u001b[KEvaluating decoding of 102400 shots, elapsed: 1.837557s, average: 1.794e-05s per shot\r" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r", "\u001b[KEvaluating decoding of 3677926 shots, elapsed: 67.376447s, average: 1.832e-05s per shot\r" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\n", "decoding time: 1.832e-05s\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "d: 3, p: 0.0001\n", "\r", "\u001b[KEvaluating initialization of 1 shots, elapsed: 0.002423s, average: 2.423e-03s per shot\r" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r", "\u001b[KEvaluating initialization of 2 shots, elapsed: 0.004452s, average: 2.226e-03s per shot\r" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r", "\u001b[KEvaluating initialization of 4 shots, elapsed: 0.008882s, average: 2.220e-03s per shot\r" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r", "\u001b[KEvaluating initialization of 8 shots, elapsed: 0.018731s, average: 2.341e-03s per shot\r" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r", "\u001b[KEvaluating initialization of 16 shots, elapsed: 0.035342s, average: 2.209e-03s per shot\r" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r", "\u001b[KEvaluating initialization of 32 shots, elapsed: 0.068154s, average: 2.130e-03s per shot\r" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r", "\u001b[KEvaluating initialization of 64 shots, elapsed: 0.134230s, average: 2.097e-03s per shot\r" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\n", "initialization time: 2.097e-03s\n", "\r", "\u001b[KEvaluating decoding of 50 shots, elapsed: 0.001589s, average: 3.178e-05s per shot\r" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r", "\u001b[KEvaluating decoding of 100 shots, elapsed: 0.002142s, average: 2.142e-05s per shot\r" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r", "\u001b[KEvaluating decoding of 200 shots, elapsed: 0.006738s, average: 3.369e-05s per shot\r" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r", "\u001b[KEvaluating decoding of 400 shots, elapsed: 0.008584s, average: 2.146e-05s per shot\r" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r", "\u001b[KEvaluating decoding of 800 shots, elapsed: 0.017988s, average: 2.249e-05s per shot\r" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r", "\u001b[KEvaluating decoding of 1600 shots, elapsed: 0.036575s, average: 2.286e-05s per shot\r" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r", "\u001b[KEvaluating decoding of 3200 shots, elapsed: 0.060906s, average: 1.903e-05s per shot\r" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r", "\u001b[KEvaluating decoding of 6400 shots, elapsed: 0.122425s, average: 1.913e-05s per shot\r" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r", "\u001b[KEvaluating decoding of 12800 shots, elapsed: 0.238707s, average: 1.865e-05s per shot\r" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r", "\u001b[KEvaluating decoding of 25600 shots, elapsed: 0.507086s, average: 1.981e-05s per shot\r" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r", "\u001b[KEvaluating decoding of 51200 shots, elapsed: 1.057195s, average: 2.065e-05s per shot\r" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r", "\u001b[KEvaluating decoding of 3196382 shots, elapsed: 60.855347s, average: 1.904e-05s per shot\r" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\n", "decoding time: 1.904e-05s\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "d: 3, p: 0.001\n", "\r", "\u001b[KEvaluating initialization of 1 shots, elapsed: 0.002697s, average: 2.697e-03s per shot\r" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r", "\u001b[KEvaluating initialization of 2 shots, elapsed: 0.004516s, average: 2.258e-03s per shot\r" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r", "\u001b[KEvaluating initialization of 4 shots, elapsed: 0.008304s, average: 2.076e-03s per shot\r" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r", "\u001b[KEvaluating initialization of 8 shots, elapsed: 0.016839s, average: 2.105e-03s per shot\r" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r", "\u001b[KEvaluating initialization of 16 shots, elapsed: 0.035589s, average: 2.224e-03s per shot\r" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r", "\u001b[KEvaluating initialization of 32 shots, elapsed: 0.067603s, average: 2.113e-03s per shot\r" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r", "\u001b[KEvaluating initialization of 64 shots, elapsed: 0.171974s, average: 2.687e-03s per shot\r" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\n", "initialization time: 2.687e-03s\n", "\r", "\u001b[KEvaluating decoding of 50 shots, elapsed: 0.000632s, average: 1.264e-05s per shot\r" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r", "\u001b[KEvaluating decoding of 100 shots, elapsed: 0.002817s, average: 2.817e-05s per shot\r" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r", "\u001b[KEvaluating decoding of 200 shots, elapsed: 0.005066s, average: 2.533e-05s per shot\r" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r", "\u001b[KEvaluating decoding of 400 shots, elapsed: 0.012259s, average: 3.065e-05s per shot\r" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r", "\u001b[KEvaluating decoding of 800 shots, elapsed: 0.021052s, average: 2.631e-05s per shot\r" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r", "\u001b[KEvaluating decoding of 1600 shots, elapsed: 0.050500s, average: 3.156e-05s per shot\r" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r", "\u001b[KEvaluating decoding of 3200 shots, elapsed: 0.080814s, average: 2.525e-05s per shot\r" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r", "\u001b[KEvaluating decoding of 6400 shots, elapsed: 0.293770s, average: 4.590e-05s per shot\r" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r", "\u001b[KEvaluating decoding of 12800 shots, elapsed: 0.513317s, average: 4.010e-05s per shot\r" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r", "\u001b[KEvaluating decoding of 25600 shots, elapsed: 0.983342s, average: 3.841e-05s per shot\r" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r", "\u001b[KEvaluating decoding of 51200 shots, elapsed: 1.694942s, average: 3.310e-05s per shot\r" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r", "\u001b[KEvaluating decoding of 1993696 shots, elapsed: 73.304025s, average: 3.677e-05s per shot\r" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\n", "decoding time: 3.677e-05s\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "d: 3, p: 0.003\n", "\r", "\u001b[KEvaluating initialization of 1 shots, elapsed: 0.002771s, average: 2.771e-03s per shot\r" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r", "\u001b[KEvaluating initialization of 2 shots, elapsed: 0.004811s, average: 2.405e-03s per shot\r" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r", "\u001b[KEvaluating initialization of 4 shots, elapsed: 0.008703s, average: 2.176e-03s per shot\r" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r", "\u001b[KEvaluating initialization of 8 shots, elapsed: 0.017180s, average: 2.147e-03s per shot\r" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r", "\u001b[KEvaluating initialization of 16 shots, elapsed: 0.034626s, average: 2.164e-03s per shot\r" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r", "\u001b[KEvaluating initialization of 32 shots, elapsed: 0.067779s, average: 2.118e-03s per shot\r" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r", "\u001b[KEvaluating initialization of 64 shots, elapsed: 0.135051s, average: 2.110e-03s per shot\r" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\n", "initialization time: 2.110e-03s\n", "\r", "\u001b[KEvaluating decoding of 50 shots, elapsed: 0.007293s, average: 1.459e-04s per shot\r" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r", "\u001b[KEvaluating decoding of 100 shots, elapsed: 0.005535s, average: 5.535e-05s per shot\r" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r", "\u001b[KEvaluating decoding of 200 shots, elapsed: 0.014924s, average: 7.462e-05s per shot\r" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r", "\u001b[KEvaluating decoding of 400 shots, elapsed: 0.050841s, average: 1.271e-04s per shot\r" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r", "\u001b[KEvaluating decoding of 800 shots, elapsed: 0.044500s, average: 5.563e-05s per shot\r" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r", "\u001b[KEvaluating decoding of 1600 shots, elapsed: 0.224264s, average: 1.402e-04s per shot\r" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r", "\u001b[KEvaluating decoding of 3200 shots, elapsed: 0.431702s, average: 1.349e-04s per shot\r" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r", "\u001b[KEvaluating decoding of 6400 shots, elapsed: 0.598093s, average: 9.345e-05s per shot\r" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r", "\u001b[KEvaluating decoding of 12800 shots, elapsed: 1.535543s, average: 1.200e-04s per shot\r" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r", "\u001b[KEvaluating decoding of 550163 shots, elapsed: 66.953696s, average: 1.217e-04s per shot\r" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\n", "decoding time: 1.217e-04s\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "d: 3, p: 0.01\n", "\r", "\u001b[KEvaluating initialization of 1 shots, elapsed: 0.002837s, average: 2.837e-03s per shot\r" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r", "\u001b[KEvaluating initialization of 2 shots, elapsed: 0.005873s, average: 2.936e-03s per shot\r" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r", "\u001b[KEvaluating initialization of 4 shots, elapsed: 0.009090s, average: 2.273e-03s per shot\r" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r", "\u001b[KEvaluating initialization of 8 shots, elapsed: 0.017876s, average: 2.235e-03s per shot\r" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r", "\u001b[KEvaluating initialization of 16 shots, elapsed: 0.039453s, average: 2.466e-03s per shot\r" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r", "\u001b[KEvaluating initialization of 32 shots, elapsed: 0.073549s, average: 2.298e-03s per shot\r" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r", "\u001b[KEvaluating initialization of 64 shots, elapsed: 0.224047s, average: 3.501e-03s per shot\r" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\n", "initialization time: 3.501e-03s\n", "\r", "\u001b[KEvaluating decoding of 50 shots, elapsed: 0.005900s, average: 1.180e-04s per shot\r" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r", "\u001b[KEvaluating decoding of 100 shots, elapsed: 0.166415s, average: 1.664e-03s per shot\r" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r", "\u001b[KEvaluating decoding of 200 shots, elapsed: 0.099036s, average: 4.952e-04s per shot\r" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r", "\u001b[KEvaluating decoding of 400 shots, elapsed: 0.325752s, average: 8.144e-04s per shot\r" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r", "\u001b[KEvaluating decoding of 800 shots, elapsed: 0.393953s, average: 4.924e-04s per shot\r" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r", "\u001b[KEvaluating decoding of 1600 shots, elapsed: 1.486553s, average: 9.291e-04s per shot\r" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r", "\u001b[KEvaluating decoding of 71036 shots, elapsed: 62.124816s, average: 8.746e-04s per shot\r" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\n", "decoding time: 8.746e-04s\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "d: 5, p: 1e-05\n", "\r", "\u001b[KEvaluating initialization of 1 shots, elapsed: 0.014559s, average: 1.456e-02s per shot\r" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r", "\u001b[KEvaluating initialization of 2 shots, elapsed: 0.026551s, average: 1.328e-02s per shot\r" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r", "\u001b[KEvaluating initialization of 4 shots, elapsed: 0.054721s, average: 1.368e-02s per shot\r" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r", "\u001b[KEvaluating initialization of 8 shots, elapsed: 0.109163s, average: 1.365e-02s per shot\r" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\n", "initialization time: 1.365e-02s\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r", "\u001b[KEvaluating decoding of 50 shots, elapsed: 0.003605s, average: 7.210e-05s per shot\r" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r", "\u001b[KEvaluating decoding of 100 shots, elapsed: 0.005197s, average: 5.197e-05s per shot\r" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r", "\u001b[KEvaluating decoding of 200 shots, elapsed: 0.010157s, average: 5.079e-05s per shot\r" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r", "\u001b[KEvaluating decoding of 400 shots, elapsed: 0.063496s, average: 1.587e-04s per shot\r" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r", "\u001b[KEvaluating decoding of 800 shots, elapsed: 0.036446s, average: 4.556e-05s per shot\r" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r", "\u001b[KEvaluating decoding of 1600 shots, elapsed: 0.078712s, average: 4.919e-05s per shot\r" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r", "\u001b[KEvaluating decoding of 3200 shots, elapsed: 0.148831s, average: 4.651e-05s per shot\r" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r", "\u001b[KEvaluating decoding of 6400 shots, elapsed: 0.299050s, average: 4.673e-05s per shot\r" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r", "\u001b[KEvaluating decoding of 12800 shots, elapsed: 0.591694s, average: 4.623e-05s per shot\r" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r", "\u001b[KEvaluating decoding of 25600 shots, elapsed: 1.188570s, average: 4.643e-05s per shot\r" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r", "\u001b[KEvaluating decoding of 1421540 shots, elapsed: 66.835168s, average: 4.702e-05s per shot\r" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\n", "decoding time: 4.702e-05s\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "d: 5, p: 0.0001\n", "\r", "\u001b[KEvaluating initialization of 1 shots, elapsed: 0.014491s, average: 1.449e-02s per shot\r" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r", "\u001b[KEvaluating initialization of 2 shots, elapsed: 0.026019s, average: 1.301e-02s per shot\r" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r", "\u001b[KEvaluating initialization of 4 shots, elapsed: 0.052257s, average: 1.306e-02s per shot\r" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r", "\u001b[KEvaluating initialization of 8 shots, elapsed: 0.154602s, average: 1.933e-02s per shot\r" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\n", "initialization time: 1.933e-02s\n", "\r", "\u001b[KEvaluating decoding of 50 shots, elapsed: -0.003602s, average: -7.204e-05s per shot\r" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r", "\u001b[KEvaluating decoding of 100 shots, elapsed: -0.001094s, average: -1.094e-05s per shot\r" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r", "\u001b[KEvaluating decoding of 200 shots, elapsed: 0.004859s, average: 2.430e-05s per shot\r" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r", "\u001b[KEvaluating decoding of 400 shots, elapsed: 0.013999s, average: 3.500e-05s per shot\r" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r", "\u001b[KEvaluating decoding of 800 shots, elapsed: 0.035571s, average: 4.446e-05s per shot\r" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r", "\u001b[KEvaluating decoding of 1600 shots, elapsed: 0.080841s, average: 5.053e-05s per shot\r" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r", "\u001b[KEvaluating decoding of 3200 shots, elapsed: 0.178292s, average: 5.572e-05s per shot\r" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r", "\u001b[KEvaluating decoding of 6400 shots, elapsed: 0.357185s, average: 5.581e-05s per shot\r" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r", "\u001b[KEvaluating decoding of 12800 shots, elapsed: 0.787991s, average: 6.156e-05s per shot\r" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r", "\u001b[KEvaluating decoding of 25600 shots, elapsed: 1.372082s, average: 5.360e-05s per shot\r" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r", "\u001b[KEvaluating decoding of 1231413 shots, elapsed: 71.823886s, average: 5.833e-05s per shot\r" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\n", "decoding time: 5.833e-05s\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "d: 5, p: 0.001\n", "\r", "\u001b[KEvaluating initialization of 1 shots, elapsed: 0.013596s, average: 1.360e-02s per shot\r" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r", "\u001b[KEvaluating initialization of 2 shots, elapsed: 0.027242s, average: 1.362e-02s per shot\r" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r", "\u001b[KEvaluating initialization of 4 shots, elapsed: 0.053765s, average: 1.344e-02s per shot\r" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r", "\u001b[KEvaluating initialization of 8 shots, elapsed: 0.164735s, average: 2.059e-02s per shot\r" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\n", "initialization time: 2.059e-02s\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r", "\u001b[KEvaluating decoding of 50 shots, elapsed: 0.004170s, average: 8.340e-05s per shot\r" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r", "\u001b[KEvaluating decoding of 100 shots, elapsed: 0.046251s, average: 4.625e-04s per shot\r" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r", "\u001b[KEvaluating decoding of 200 shots, elapsed: 0.016097s, average: 8.048e-05s per shot\r" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r", "\u001b[KEvaluating decoding of 400 shots, elapsed: 0.141602s, average: 3.540e-04s per shot\r" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r", "\u001b[KEvaluating decoding of 800 shots, elapsed: 128.873790s, average: 1.611e-01s per shot\r" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\n", "decoding time: 1.611e-01s\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "d: 5, p: 0.003\n", "\r", "\u001b[KEvaluating initialization of 1 shots, elapsed: 0.014893s, average: 1.489e-02s per shot\r" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r", "\u001b[KEvaluating initialization of 2 shots, elapsed: 0.041145s, average: 2.057e-02s per shot\r" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r", "\u001b[KEvaluating initialization of 4 shots, elapsed: 0.054652s, average: 1.366e-02s per shot\r" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r", "\u001b[KEvaluating initialization of 8 shots, elapsed: 1.025797s, average: 1.282e-01s per shot\r" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\n", "initialization time: 1.282e-01s\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r", "\u001b[KEvaluating decoding of 50 shots, elapsed: 0.341761s, average: 6.835e-03s per shot\r" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r", "\u001b[KEvaluating decoding of 100 shots, elapsed: 1.025512s, average: 1.026e-02s per shot\r" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r", "\u001b[KEvaluating decoding of 6435 shots, elapsed: 852.743554s, average: 1.325e-01s per shot\r" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\n", "decoding time: 1.325e-01s\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "d: 5, p: 0.01\n", "\r", "\u001b[KEvaluating initialization of 1 shots, elapsed: 0.015096s, average: 1.510e-02s per shot\r" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r", "\u001b[KEvaluating initialization of 2 shots, elapsed: 0.036294s, average: 1.815e-02s per shot\r" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r", "\u001b[KEvaluating initialization of 4 shots, elapsed: 0.147873s, average: 3.697e-02s per shot\r" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\n", "initialization time: 3.697e-02s\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r", "\u001b[KEvaluating decoding of 50 shots, elapsed: 246.632270s, average: 4.933e+00s per shot\r" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\n", "decoding time: 4.933e+00s\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "d: 7, p: 1e-05\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r", "\u001b[KEvaluating initialization of 1 shots, elapsed: 0.145479s, average: 1.455e-01s per shot\r" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\n", "initialization time: 1.455e-01s\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r", "\u001b[KEvaluating decoding of 50 shots, elapsed: -0.092403s, average: -1.848e-03s per shot\r" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r", "\u001b[KEvaluating decoding of 100 shots, elapsed: -0.085065s, average: -8.507e-04s per shot\r" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r", "\u001b[K" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Evaluating decoding of 200 shots, elapsed: -0.074791s, average: -3.740e-04s per shot\r" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r", "\u001b[KEvaluating decoding of 400 shots, elapsed: 0.003085s, average: 7.713e-06s per shot\r" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r", "\u001b[KEvaluating decoding of 800 shots, elapsed: -0.000104s, average: -1.294e-07s per shot\r" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r", "\u001b[KEvaluating decoding of 1600 shots, elapsed: 0.094441s, average: 5.903e-05s per shot\r" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r", "\u001b[KEvaluating decoding of 3200 shots, elapsed: 0.284770s, average: 8.899e-05s per shot\r" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r", "\u001b[KEvaluating decoding of 6400 shots, elapsed: 0.713532s, average: 1.115e-04s per shot\r" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r", "\u001b[KEvaluating decoding of 12800 shots, elapsed: 1.457416s, average: 1.139e-04s per shot\r" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r", "\u001b[KEvaluating decoding of 579656 shots, elapsed: 69.254497s, average: 1.195e-04s per shot\r" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\n", "decoding time: 1.195e-04s\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "d: 7, p: 0.0001\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r", "\u001b[KEvaluating initialization of 1 shots, elapsed: 0.046061s, average: 4.606e-02s per shot\r" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r", "\u001b[KEvaluating initialization of 2 shots, elapsed: 0.094793s, average: 4.740e-02s per shot\r" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r", "\u001b[KEvaluating initialization of 4 shots, elapsed: 0.238411s, average: 5.960e-02s per shot\r" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\n", "initialization time: 5.960e-02s\n", "\r", "\u001b[KEvaluating decoding of 50 shots, elapsed: 0.045796s, average: 9.159e-04s per shot\r" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r", "\u001b[KEvaluating decoding of 100 shots, elapsed: 0.003810s, average: 3.810e-05s per shot\r" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r", "\u001b[KEvaluating decoding of 200 shots, elapsed: 0.014189s, average: 7.094e-05s per shot\r" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r", "\u001b[KEvaluating decoding of 400 shots, elapsed: 0.097369s, average: 2.434e-04s per shot\r" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r", "\u001b[KEvaluating decoding of 800 shots, elapsed: 0.093428s, average: 1.168e-04s per shot\r" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r", "\u001b[KEvaluating decoding of 1600 shots, elapsed: 0.213463s, average: 1.334e-04s per shot\r" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r", "\u001b[KEvaluating decoding of 3200 shots, elapsed: 0.434454s, average: 1.358e-04s per shot\r" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r", "\u001b[KEvaluating decoding of 6400 shots, elapsed: 0.930936s, average: 1.455e-04s per shot\r" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r", "\u001b[KEvaluating decoding of 12800 shots, elapsed: 1.811703s, average: 1.415e-04s per shot\r" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r", "\u001b[KEvaluating decoding of 466301 shots, elapsed: 78.170155s, average: 1.676e-04s per shot\r" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\n", "decoding time: 1.676e-04s\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "d: 7, p: 0.001\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r", "\u001b[KEvaluating initialization of 1 shots, elapsed: 0.100871s, average: 1.009e-01s per shot\r" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\n", "initialization time: 1.009e-01s\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r", "\u001b[KEvaluating decoding of 50 shots, elapsed: -0.002058s, average: -4.116e-05s per shot\r" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r", "\u001b[KEvaluating decoding of 100 shots, elapsed: 0.052294s, average: 5.229e-04s per shot\r" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r", "\u001b[KEvaluating decoding of 200 shots, elapsed: 0.159556s, average: 7.978e-04s per shot\r" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r", "\u001b[KEvaluating decoding of 400 shots, elapsed: 0.571066s, average: 1.428e-03s per shot\r" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r", "\u001b[KEvaluating decoding of 800 shots, elapsed: 1.032891s, average: 1.291e-03s per shot\r" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r", "\u001b[KEvaluating decoding of 51118 shots, elapsed: 1329.344346s, average: 2.601e-02s per shot\r" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\n", "decoding time: 2.601e-02s\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "d: 7, p: 0.003\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r", "\u001b[KEvaluating initialization of 1 shots, elapsed: 0.206374s, average: 2.064e-01s per shot\r" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\n", "initialization time: 2.064e-01s\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r", "\u001b[KEvaluating decoding of 50 shots, elapsed: 312.823355s, average: 6.256e+00s per shot\r" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\n", "decoding time: 6.256e+00s\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "d: 7, p: 0.01\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r", "\u001b[KEvaluating initialization of 1 shots, elapsed: 0.978369s, average: 9.784e-01s per shot\r" ] } ], "source": [ "job_store = JobStore(evaluation_function, jobs, result_type=DecodingSpeedResult, filename=json_filename)\n", "job_store.execute(loop_callback=plotter)" ] }, { "cell_type": "code", "execution_count": null, "id": "a2edb553-f1b5-41ba-9643-86978a83b3e8", "metadata": { "editable": true, "papermill": { "duration": null, "end_time": null, "exception": null, "start_time": null, "status": "completed" }, "slideshow": { "slide_type": "" }, "tags": [] }, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.11.6" }, "papermill": { "default_parameters": {}, "duration": 3653.911817, "end_time": "2025-02-01T17:33:47.313886", "environment_variables": {}, "exception": null, "input_path": "decoding_speed_mwpm.ipynb", "output_path": "decoding_speed_mwpf_c1000.ipynb", "parameters": { "decoder": "mwpf(c=1000)", "json_filename": "speed-rsc-mwpf-c1000.json" }, "start_time": "2025-02-01T16:32:53.402069", "version": "2.6.0" } }, "nbformat": 4, "nbformat_minor": 5 }