{
  "schema": 2,
  "date": "2026-09-17",
  "task": "Virtuelles sechs- und siebenstelliges Lernschloss: ideale Grover-Simulation mit bekannter Prüfregel",
  "status": "Private Integrationstests der freigegebenen Implementierung; keine öffentliche Geschwindigkeitsmessreihe",
  "hardware": "Intel Core i9-10900K (zehn Kerne, AVX2) für sechs Stellen; NVIDIA GeForce RTX 3090 (OpenCL, doppelte Genauigkeit) für sieben Stellen, Nachprüfung auf dem i9",
  "precision": "complex128",
  "shots": 2048,
  "seed": 42,
  "six_digits": {
    "implementation": "grover-cpp-v3",
    "device": "CPU",
    "search_qubits": 20,
    "helper_qubits": 0,
    "basis_states": 1048576,
    "valid_codes": 1000000,
    "rounds": 804,
    "state_vector_bytes": 16777216,
    "integration_tests": 8,
    "median_simulation_seconds": 0.15669650584459305,
    "min_simulation_seconds": 0.08217827323824167,
    "max_simulation_seconds": 0.2573135355487466,
    "code_sweep": {
      "codes": 40,
      "all_passed": true,
      "max_norm_deviation": 2.1094237467877974e-15,
      "max_full_state_error": 1.1102230246251565e-15,
      "min_hits_of_2048": 2048,
      "median_seconds": 0.10629117162898183,
      "max_seconds": 0.35595108196139336
    },
    "cases": [
      {
        "testcode": "000000",
        "counts": {
          "00000000000000000000": 2048
        },
        "simulation_including_process_start_seconds": 0.2573135355487466,
        "private_worker_delivery_seconds": 0.32301434222608805
      },
      {
        "testcode": "000007",
        "counts": {
          "00000000000000000111": 2048
        },
        "simulation_including_process_start_seconds": 0.24775255471467972,
        "private_worker_delivery_seconds": 0.31749035883694887
      },
      {
        "testcode": "314159",
        "counts": {
          "01001100101100101111": 2048
        },
        "simulation_including_process_start_seconds": 0.1336251851171255,
        "private_worker_delivery_seconds": 0.1661620121449232
      },
      {
        "testcode": "999999",
        "counts": {
          "11110100001000111111": 2048
        },
        "simulation_including_process_start_seconds": 0.17976782657206059,
        "private_worker_delivery_seconds": 0.32601248659193516
      },
      {
        "testcode": "000000",
        "counts": {
          "00000000000000000000": 2048
        },
        "simulation_including_process_start_seconds": 0.13143442012369633,
        "private_worker_delivery_seconds": 0.15805303025990725
      },
      {
        "testcode": "000007",
        "counts": {
          "00000000000000000111": 2048
        },
        "simulation_including_process_start_seconds": 0.08217827323824167,
        "private_worker_delivery_seconds": 0.1543374378234148
      },
      {
        "testcode": "314159",
        "counts": {
          "01001100101100101111": 2048
        },
        "simulation_including_process_start_seconds": 0.18630900979042053,
        "private_worker_delivery_seconds": 0.27080695051699877
      },
      {
        "testcode": "999999",
        "counts": {
          "11110100001000111111": 2048
        },
        "simulation_including_process_start_seconds": 0.11033586598932743,
        "private_worker_delivery_seconds": 0.16262102127075195
      }
    ],
    "threads": [
      10
    ]
  },
  "seven_digits": {
    "implementation": "grover-opencl-v1",
    "device": "GPU",
    "search_qubits": 24,
    "helper_qubits": 0,
    "basis_states": 16777216,
    "valid_codes": 10000000,
    "rounds": 3216,
    "state_vector_bytes": 268435456,
    "integration_tests": 8,
    "median_simulation_seconds": 2.9288535793311894,
    "min_simulation_seconds": 2.9051673309877515,
    "max_simulation_seconds": 2.9913684595376253,
    "code_sweep": {
      "codes": 36,
      "all_passed": true,
      "max_norm_deviation": 2.220446049250313e-15,
      "max_full_state_error": 1.1102230246251565e-15,
      "min_hits_of_2048": 2048,
      "median_seconds": 2.9247144269756973,
      "max_seconds": 3.008253580890596
    },
    "cases": [
      {
        "testcode": "0000000",
        "counts": {
          "000000000000000000000000": 2048
        },
        "simulation_including_process_start_seconds": 2.9908118173480034,
        "private_worker_delivery_seconds": 3.2948401169851422
      },
      {
        "testcode": "0000007",
        "counts": {
          "000000000000000000000111": 2048
        },
        "simulation_including_process_start_seconds": 2.9069949313998222,
        "private_worker_delivery_seconds": 3.2964747343212366
      },
      {
        "testcode": "3141592",
        "counts": {
          "001011111110111111011000": 2048
        },
        "simulation_including_process_start_seconds": 2.9133711019530892,
        "private_worker_delivery_seconds": 3.2967045037075877
      },
      {
        "testcode": "9999999",
        "counts": {
          "100110001001011001111111": 2048
        },
        "simulation_including_process_start_seconds": 2.930957126431167,
        "private_worker_delivery_seconds": 3.296724951826036
      },
      {
        "testcode": "0000000",
        "counts": {
          "000000000000000000000000": 2048
        },
        "simulation_including_process_start_seconds": 2.9913684595376253,
        "private_worker_delivery_seconds": 3.0871202806010842
      },
      {
        "testcode": "0000007",
        "counts": {
          "000000000000000000000111": 2048
        },
        "simulation_including_process_start_seconds": 2.9051673309877515,
        "private_worker_delivery_seconds": 2.981846663169563
      },
      {
        "testcode": "3141592",
        "counts": {
          "001011111110111111011000": 2048
        },
        "simulation_including_process_start_seconds": 2.9570030802860856,
        "private_worker_delivery_seconds": 2.9878910910338163
      },
      {
        "testcode": "9999999",
        "counts": {
          "100110001001011001111111": 2048
        },
        "simulation_including_process_start_seconds": 2.9267500322312117,
        "private_worker_delivery_seconds": 2.981612124480307
      }
    ]
  },
  "validation": {
    "passed_tests": 252,
    "passed_tests_detail": "116 Rechenkern-Tests einschließlich Grafikkarte und 136 Portal-/Dienst-Tests auf dem i9",
    "independent_reference": "Sechs Stellen: Vollzustand nach allen 804 Runden gegen getrennt programmierte NumPy-Entwicklung, Fehlergrenze 1e-9; zusätzlich 0, 1 und 2 Runden gegen die geschlossene Formel. Grafikkarte: Vollzustände mit 10, 13 und 16 Qubits nach 0, 1, 2 und 100 Runden gegen NumPy (1e-12) und gegen den CPU-Rechenkern; bei 24 Qubits prüft jeder Lauf alle 16.777.216 Amplituden gegen die geschlossene Formel (1e-9).",
    "numerics": "CPU: Mittelwert mit kompensierter Summation (TwoSum) in acht festen Bahnen. Grafikkarte: paarweise Baumsummation. Ohne rundungsarme Summation verfehlt die 20-Qubit-Rechnung die unveränderte 1e-9-Normprüfung.",
    "determinism": "Der Endzustand des sechsstelligen Rechenkerns ist für 1, 3, 64 und die automatisch gewählte Zahl von Threads bit-identisch. Drei- und vierstellige Ergebnisse sind byte-identisch zur vorherigen Version.",
    "legacy_tests": "Drei- und vierstellige native Aufträge und bisherige Aer-Suche weiterhin geprüft",
    "negative_tests": "Unzulässige Eingaben, falsche Messwerte/Versionen/Breiten/Geräte, Prozessfehler und Zeitüberschreitungen"
  },
  "timing_spread": "Sechs Stellen: Der 16 MiB große Zustand passt nur knapp in den 20 MiB großen Zwischenspeicher des Prozessors. Je nachdem, welche Speicherseiten das Betriebssystem zuteilt, dauerte dieselbe Rechnung mit bit-identischem Ergebnis 0,08 bis 0,37 Sekunden.",
  "eight_digits_private_run": {
    "offered": false,
    "search_qubits": 27,
    "rounds": 9099,
    "state_vector_bytes": 2147483648,
    "runs": 1,
    "simulation_including_process_start_seconds": 54.24980948213488,
    "full_state_max_error": 5.329070518200751e-15,
    "passed": true,
    "note": "Ein einzelner privater Lauf mit dem Forschungsprogramm auf der RTX 3090; für die Warteschlange zu lang, deshalb nicht angeboten."
  },
  "limitations": [
    "Acht Integrationstestläufe je Schloss sind kein umfassender Leistungsbenchmark.",
    "Simulation einschließlich Prozessstart, Zustandsprüfung und 2048 Samples; bei sieben Stellen auch Start der Grafikkarte und Rücktransfer; ohne Warteschlange, Netzwerk und Animation.",
    "Reiner Zustandsvektor, nicht gesamter Speicherverbrauch.",
    "Ein gewöhnliches Programm, das alle Codes der Reihe nach prüft, ist für diese Aufgabe schneller als die Simulation.",
    "Kein Quantenvorteil; keine unbekannte PIN und kein reales Schloss werden geknackt.",
    "Kein Nachweis für beliebige 20- oder 24-Qubit-Programme oder Kompressionsverfahren."
  ],
  "sha256": {
    "native/grover.cpp": "eafe685770e174682f87f5298ce0c5f4754e260e708e8314d97eef5d0406a317",
    "native/bin/grover": "10a6df17cd253a130a26652eb51985208e5bb05215d7ba5c84552bd014508b78",
    "native/grover_gpu.cpp": "730b398554b3e5b603c2ce7ee437ed9da4671fd7e31c5c216c7cd236bf41aead",
    "native/bin/grover_gpu": "462c7c6768cc5e5c6a4fd603e0dde33f4ee24bda35c3a1bf48cfa2c1084ebcd8",
    "src/qlab/native_grover.py": "9aef3abb8f5d784dd2fe6b8f767d98de59b32369e6436aa84ea78445d277dbaf",
    "src/qlab/webserver.py": "988b1b21a369757958458cf633b0d58631ead8ab3fe5dc194ddb3aad9ac0870d",
    "portal/store.py": "aa95f6c76c8af1511acf95f3542c1eac4fb4b233e7287dd355b3cd0bcc7a3bc6",
    "portal/worker.py": "cfb6f7de42eb0aff670caf0a60bcaef4bab359993531abfef0464cdfdf2e7f37"
  }
}
