Saltar a contenido

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_name debe coincidir con el nombre del caso de uso en QCentroid, no con la etiqueta visible.
  • job.name, solver.name y use_case.name son 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_params y max_exec_time_m.