← Quantum Store · Guides · Lessons · Glossary · Packages · About · Türkçe

Google Quantum AI

Google Sycamore quantum supremacy data (Nature 2019)

DatasetBenchmarkingLicence: CC0-1.0Version: 2022-06-137.6 KB

Official source: Quantum supremacy using a programmable superconducting processor

Download ZIP (free)

Measurement data from the random circuit sampling experiment of the 53-qubit Sycamore processor: 37 files, 13.32 GB in total, CC0. The package contains a script that lists the files and downloads the chosen one through the Dryad API.

What is this dataset?

In 2019 Google sampled from random circuits with the 53-qubit Sycamore processor. The task was considered very hard for classical supercomputers ("quantum supremacy"). This Dryad record contains the bit strings measured in the experiment, the circuit definitions and the fidelity (XEB) tables.

Usage

python dryad_listele.py                                  # all files
python dryad_listele.py --indir fidelity_4a.csv veri/    # start with a small file

We recommend starting with the small CSV files. Download the large archives only when you need them. (--indir means download.)

What can you do with it?

Citation

Arute et al., "Quantum supremacy using a programmable superconducting processor", Nature 574, 505–510 (2019).

Installation and running

python dryad_listele.py
python dryad_listele.py --indir fidelity_4a.csv veri/

Tested with: Python 3.12, Dryad API v2 (October 2026).

Official source

Links

Package contents

Licence

The example code and the guide in this package were written by the Quantum Store editors and are MIT licensed. The data it uses is subject to its own licence (CC0-1.0).


Quantum Store — https://hakanerdogan.com/en

Example code

The example shipped in the package, run and checked. Comments and printed messages are in Turkish; the code is the same in any language. Everything is in the ZIP.

dryad_listele.py

"""Dryad'dan Google Sycamore "kuantum üstünlüğü" veri setinin dosyalarını listele/indir.

Kayıt: https://doi.org/10.5061/dryad.k6t1rj8 (lisans: CC0-1.0, toplam ~13 GB)

Kullanım:
    python dryad_listele.py                        # dosyaları listele
    python dryad_listele.py --indir ad.tar.gz veri/  # tek bir dosyayı indir

Yalnızca Python standart kütüphanesi kullanılır.
"""

import argparse
import json
import sys
import urllib.parse
import urllib.request
from pathlib import Path

BASE = "https://datadryad.org"
DOI = "doi:10.5061/dryad.k6t1rj8"


def get_json(url: str) -> dict:
    req = urllib.request.Request(url, headers={"User-Agent": "quantum-store", "Accept": "application/json"})
    with urllib.request.urlopen(req, timeout=60) as r:
        return json.loads(r.read())


def list_files() -> list[dict]:
    ds = get_json(f"{BASE}/api/v2/datasets/{urllib.parse.quote(DOI, safe='')}")
    version_url = BASE + ds["_links"]["stash:version"]["href"]
    files_url = BASE + get_json(version_url)["_links"]["stash:files"]["href"]
    files = []
    while files_url:
        page = get_json(files_url)
        files += page["_embedded"]["stash:files"]
        nxt = page["_links"].get("next")
        files_url = BASE + nxt["href"] if nxt else None
    return files


def main() -> int:
    ap = argparse.ArgumentParser()
    ap.add_argument("--indir", nargs=2, metavar=("DOSYA", "KLASOR"))
    args = ap.parse_args()

    files = list_files()
    total = sum(f["size"] for f in files)
    print(f"{len(files)} dosya, toplam {total / 1e9:.2f} GB")
    for f in sorted(files, key=lambda f: f["path"])[:25]:
        print(f"  {f['path']:60s} {f['size'] / 1e6:9.1f} MB")
    if len(files) > 25:
        print(f"  ... ve {len(files) - 25} dosya daha")

    if not args.indir:
        return 0

    name, folder = args.indir
    match = next((f for f in files if f["path"] == name), None)
    if not match:
        print(f"Dosya bulunamadı: {name}", file=sys.stderr)
        return 1
    target = Path(folder) / name
    target.parent.mkdir(parents=True, exist_ok=True)
    url = BASE + match["_links"]["stash:download"]["href"]
    print(f"İndiriliyor: {target}")
    req = urllib.request.Request(url, headers={"User-Agent": "quantum-store"})
    with urllib.request.urlopen(req, timeout=120) as r, open(target, "wb") as out:
        while chunk := r.read(1 << 20):
            out.write(chunk)
    print("Tamam.")
    return 0


if __name__ == "__main__":
    sys.exit(main())

Related concepts

← All packages

Share: X · LinkedIn