Skip to main content

jiuzhang-sdk

Python SDK for the JiuZhang photonic quantum cloud platform.

The SDK provides two separate capability groups:

Capability Uses the JiuZhang cloud platform Result source Typical use
Cloud GBS tasks Yes Executed by the JiuZhang cloud platform Submit GBS experiments, poll status, parse returned results
Local GBS sampling No Generated locally by numerical libraries Teaching, prototyping, local validation, notebook demos

Cloud tasks can be submitted from local Python scripts or Jupyter notebooks. In this case, "local" only describes where the user runs the client code; the task itself is executed by the cloud platform.

Local GBS sampling runs entirely on the user's machine and does not call the cloud API. Its results are generated by the local The Walrus numerical backend from the provided matrix and sampling parameters.

Installation

Install the SDK:

pip install jiuzhang-sdk

Install local GBS math and sampling extras:

pip install "jiuzhang-sdk[local-gbs]"

Install local IR serialization extras:

pip install "jiuzhang-sdk[local-ir]"

Cloud Credentials

Before submitting a cloud task, prepare these values from the JiuZhang cloud workspace:

Value Description
api_key Authentication credential used in the X-Jiuzhang-API-Key request header
project_id Cloud project identifier used to associate tasks with a project
quantum_computer_id Cloud device code, for example PH_QC_04

Recommended environment variables:

export JIUZHANG_API_KEY="your-api-key"
export JIUZHANG_PROJECT_ID="your-project-id"
export JIUZHANG_QUANTUM_COMPUTER_ID="PH_QC_04"
export JIUZHANG_BASE_URL="https://cloud.jiuzhangqt.com/api/v1"

Cloud GBS Workflow

from jiuzhang import CloudClient, GBSParams, parse_gbs_result

client = CloudClient(
    base_url="https://cloud.jiuzhangqt.com/api/v1",
    api_key="your-api-key",
)

params = GBSParams(
    project_id="EXP-demo-project",
    quantum_computer_id="PH_QC_04",
    mt=500,
    pump_energy_nj=4.6,
    squeezing_param=0.35,
    task_name="GBS experiment",
)

estimate = client.estimate_runtime(
    quantum_computer_id=params.quantum_computer_id,
    mt_value=params.mt,
    pump_energy_nj=params.pump_energy_nj,
)

task = client.submit_task(
    project_id=params.project_id,
    task_name=params.task_name,
    quantum_computer_id=params.quantum_computer_id,
    mt_value=params.mt,
    pump_energy_nj=params.pump_energy_nj,
    squeezing_param=params.squeezing_param,
)

task_id = task["data"]["task_id"]
raw_result = client.get_result(task_id)
result = parse_gbs_result(raw_result)

print(result.status_name)
print(result.sample_count)
print(result.experimental_distribution)

client.close()

One-call helper:

result = client.run_gbs(params, poll_interval=2.0, timeout=300.0)
print(result.status_name)

Cloud API Methods

Method Purpose
CloudClient(base_url, api_key, timeout=30.0) Create an authenticated cloud API client
CloudClient.from_env() Create a client from JIUZHANG_* environment variables
estimate_runtime(quantum_computer_id, mt_value, pump_energy_nj) Estimate runtime before submitting a task
submit_task(project_id, task_name, quantum_computer_id, mt_value, pump_energy_nj, squeezing_param=None) Submit a cloud GBS task
get_result(task_id) Query a task result
run_experiment(...) Estimate, submit, poll, and return raw responses
estimate_gbs(params) Estimate using GBSParams
submit_gbs(params) Submit using GBSParams
run_gbs(params) Run the full workflow and return GBSResult
close() Close the underlying HTTP client

Cloud Parameter Object

from jiuzhang import GBSParams

params = GBSParams(
    project_id="EXP-demo-project",
    quantum_computer_id="PH_QC_04",
    mt=500,
    pump_energy_nj=4.6,
    squeezing_param=0.35,
    task_name="GBS experiment",
)
Field Description
project_id Cloud project ID
quantum_computer_id Cloud device code
mt Pump pulse time-bin count, validated as 1..500
pump_energy_nj Pump energy in nJ
squeezing_param Optional squeezing parameter
shots Optional shot count field
task_name Display name for the task

Helper methods:

Method Purpose
validate() Validate fields locally
input_mode_count() Return 3 * mt
output_mode_count() Return 9 * (mt + 80)
to_cloud_payload() Build a cloud payload dictionary
summary() Build a compact parameter summary

Parsed Result Object

GBSResult is returned by run_gbs() or by parse_gbs_result(raw_result).

Field or property Description
task_id Cloud task ID
status_name Normalized task status
sample_count Returned sample count
result_map_points Probability distribution curves
experimental_distribution Experimental distribution points
ground_truth_distribution Reference distribution points
download_url Raw result download URL
raw Original response dictionary

Local GBS Sampling

Local GBS sampling does not call the cloud API. Results are generated on the user's machine by The Walrus from the adjacency matrix and sampling parameters.

from jiuzhang.local.gbs import (
    random_adjacency_matrix,
    sample_gbs,
    samples_to_distribution,
)

graph = random_adjacency_matrix(8, scale=0.16, seed=7)
samples = sample_gbs(
    graph,
    shots=24,
    mean_photon_count=1.0,
    detector="pnr",
    cutoff=4,
    max_photons=12,
    seed=123,
)
distribution = samples_to_distribution(samples)
print(distribution)
Function Purpose
random_adjacency_matrix(modes, scale=0.2, seed=None) Generate a symmetric adjacency matrix
sample_gbs(adjacency, shots=10, mean_photon_count=1.0, detector="pnr", cutoff=5, max_photons=30, seed=None, parallel=False) Generate local GBS samples
samples_to_distribution(samples) Convert samples into a normalized pattern distribution

Local Math and IR Helpers

from jiuzhang.local.gbs import (
    GBSProgram,
    dumps_ir,
    hafnian,
    loop_hafnian,
    threshold_probability,
    to_blackbird,
    to_xir,
    torontonian,
)
Function Purpose
hafnian(matrix, loop=False, approx=False, num_samples=1000, method="glynn") Compute the Hafnian of a square matrix
loop_hafnian(matrix, diagonal=None, reps=None, glynn=True) Compute the loop Hafnian
torontonian(matrix, recursive=True) Compute the Torontonian
threshold_probability(mean, covariance, pattern, hbar=2.0, atol=1e-10, rtol=1e-10) Compute a threshold detection probability
GBSProgram(modes, operations=(), name="gbs_program") Build a local GBS program
dumps_ir(program, format="json") Serialize a program to JSON, Blackbird, or XIR text
loads_ir(payload) Parse JSON local IR
to_blackbird(program) Serialize to Blackbird text
to_xir(program) Serialize to XIR text

License

Proprietary. Copyright 2026 JiuZhang Quantum. All rights reserved.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

jiuzhang_sdk-0.1.0.tar.gz (34.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

jiuzhang_sdk-0.1.0-py3-none-any.whl (35.7 kB view details)

Uploaded Python 3

File details

Details for the file jiuzhang_sdk-0.1.0.tar.gz.

File metadata

  • Download URL: jiuzhang_sdk-0.1.0.tar.gz
  • Upload date:
  • Size: 34.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.13

File hashes

Hashes for jiuzhang_sdk-0.1.0.tar.gz
Algorithm Hash digest
SHA256 103722e473adf4b3c854517267b6059c80694592d240ac214ea38f5a359aa4ec
MD5 cc223bd28efc58cfdeaa82d066f22271
BLAKE2b-256 a8d4e09ed700fac58bdfeaaab21cca733c1be2ee3a5d125529691ad8c32519ad

See more details on using hashes here.

File details

Details for the file jiuzhang_sdk-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: jiuzhang_sdk-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 35.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.13

File hashes

Hashes for jiuzhang_sdk-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 378c39afaf2323fd8058015d49f60e05d36ed2f3d445b1396ff3a62e7f9bbe3a
MD5 0849646689eff174a63ca3a5875af1af
BLAKE2b-256 fd13c6ba86fb37d129c8e628ccb59d78ac4d321c0efa1190b864e4b1c089e6fc

See more details on using hashes here.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page