Jobs#
Jobs are the main execution unit in QCentroid. With the SDK you can list jobs, inspect a job, and launch a new one.
List jobs#
from qcentroid_sdk import QCentroidClient
client = QCentroidClient(
api_key="your-api-key",
)
jobs = client.jobs.list(limit=10)
for job in jobs.value:
print(job.name, job.status)
Get a job by name#
job = client.jobs.get_by_name("ABC123XYZ")
print(job.name, job.status)
Wait for completion#
job = client.jobs.wait_for_completion("ABC123XYZ")
print(job.name, job.status)
The polling interval defaults to 30 seconds and cannot be lower than 30 seconds.
You can also set it explicitly:
job = client.jobs.wait_for_completion(
"ABC123XYZ",
poll_interval=60,
timeout=3600,
)
Run a job with inline data#
job = client.jobs.run(
use_case_name="qcentroid-example-1-sum",
data={"a": 2, "b": 3},
solvers=[{"name": "QCentroid-OscarSolver-Example1Sum-ClassicalCPU"}],
num_shots=1,
job_description="Run a job with inline data",
)
print(job.job_name)
Get job input#
job_input = client.jobs.get_input("ABC123XYZ")
print(job_input)
Get job output#
job_output = client.jobs.get_output("ABC123XYZ")
print(job_output)
Get execution log#
job_log = client.jobs.get_execution_log("ABC123XYZ")
print(job_log)
Run a job with an existing dataset#
job = client.jobs.run(
use_case_name="maxcut-academic",
dataset_id="your-file-identifier",
solvers=[{"name": "qcentroid-maxcut-random"}],
solvers_provider_params={"qcentroid-maxcut-random": {}},
num_shots=1,
max_exec_time_m=0,
job_description="Run a job with a dataset",
)
print(job.job_name)
Notes#
use_case_namemust match the QCentroid use case name, not the display label.job.name,solver.name, anduse_case.nameare the identifiers users should rely on in scripts.- Some use cases may require specific solver configuration.
- For dataset-based runs, some backends may expect
solvers_provider_paramsandmax_exec_time_m.