Jobs#
Los jobs son la unidad principal de ejecución en QCentroid. Con el SDK puedes listar jobs, inspeccionar un job y lanzar uno nuevo.
Listar 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)
Obtener un job por nombre#
job = client.jobs.get_by_name("ABC123XYZ")
print(job.name, job.status)
Esperar a que finalice#
job = client.jobs.wait_for_completion("ABC123XYZ")
print(job.name, job.status)
El intervalo de polling es de 30 segundos por defecto y no puede ser inferior a 30 segundos.
También puedes definirlo explícitamente:
job = client.jobs.wait_for_completion(
"ABC123XYZ",
poll_interval=60,
timeout=3600,
)
Ejecutar un job con datos inline#
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)
Obtener la entrada del job#
job_input = client.jobs.get_input("ABC123XYZ")
print(job_input)
Obtener la salida del job#
job_output = client.jobs.get_output("ABC123XYZ")
print(job_output)
Obtener el log de ejecución#
job_log = client.jobs.get_execution_log("ABC123XYZ")
print(job_log)
Ejecutar un job con un dataset existente#
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)
Notas#
use_case_namedebe coincidir con el nombre del caso de uso en QCentroid, no con la etiqueta visible.job.name,solver.nameyuse_case.nameson los identificadores en los que los usuarios deberían apoyarse en sus scripts.- Algunos casos de uso pueden requerir configuración específica del solver.
- Para ejecuciones basadas en datasets, algunos backends pueden esperar
solvers_provider_paramsymax_exec_time_m.