Přeskočit na hlavní obsah

Maximální doba provádění pro úlohy IBM Quantum Compute Service

Aby byla zajištěna spravedlnost, existuje službou vynucená maximální doba, po kterou může každá úloha běžet. Pokud úloha tento časový limit překročí, je násilně zrušena a je vyvolána výjimka RuntimeJobMaxTimeoutError. Na svých úlohách můžeš také nastavit maximální dobu provádění, aby sis pomohl/a kontrolovat náklady.

poznámka

Session nebo batch je okamžitě ukončen, jakmile je dosaženo limitu nákladů. Všechny úlohy, které v dané Session nebo batchi právě běží, doběhnou do konce, ale všechny čekající úlohy budou zrušeny.

Nastavení maximální doby provádění​

Maximální doba provádění úlohy je menší z těchto hodnot:

  • Hodnota nastavená pro max_execution_time

  • Maximální hodnota časového limitu služby (tři hodiny)

Hodnota max_execution_time je založena na využití QPU (pouze kvantové využití), nikoli na reálném čase.

Nastav maximální dobu provádění (v sekundách) v možnostech úlohy, jak je znázorněno v následujícím příkladu. Informace o nastavení možností najdeš v průvodcích Estimator options, Sampler options nebo Executor options.

from qiskit_ibm_runtime import QiskitRuntimeService
from qiskit_ibm_runtime import EstimatorV2 as Estimator

service = QiskitRuntimeService()
backend = service.least_busy(operational=True, simulator=False)

estimator = Estimator(mode=backend)

estimator.options.max_execution_time = 2500

Můžeš také zjistit, kolik využití dokončené úlohy spotřebovaly, a to vrácením metrik úlohy následovně:

# Find QPU usage of a specific job
print(f"QPU usage of job {job.job_id()} was {job.metrics()['usage']['quantum_seconds']} seconds")

Maximální doba provádění vynucená službou​

Služba vynucuje maximální limit doby provádění tři hodiny, aby bylo zajištěno spravedlivé využívání zařízení. Pokud je pro úlohu zadána také hodnota max_execution_time, použije se menší z obou hodnot.

Pokud například zadáš max_execution_time=5000 (přibližně 83 minut), úloha bude zrušena přibližně po 83 minutách, i když by ji služba mohla nechat běžet tři hodiny.

Maximální doba provádění batche​

Při spuštění batche je mu přiřazena maximální hodnota doby životnosti (maximum TTL). Po dosažení tohoto TTL je batch ukončen, všechny již běžící úlohy pokračují v běhu a všechny úlohy ve frontě, které v batchi zbývají, jsou převedeny do stavu selhání.

Batche mají také hodnotu interaktivní doby životnosti (interactive TTL) mezi úlohami, kterou nelze konfigurovat. Pokud batch explicitně nezavřeš, je po vypršení interactive TTL deaktivován a může být kdykoli znovu aktivován, dokud nedosáhne svého maximálního TTL.

Pokyny pro práci s těmito hodnotami najdeš v části Run jobs in a batch.

Maximální doba provádění Session​

Při spuštění Session je jí přiřazena maximální hodnota TTL, která určuje, jak dlouho může Session běžet. Po dosažení tohoto TTL je Session ukončena, všechny již běžící úlohy pokračují v běhu a všechny úlohy ve frontě, které v Session zbývají, jsou převedeny do stavu selhání.

Existuje také hodnota interactive TTL, kterou nelze konfigurovat. Pokud v daném časovém okně nejsou ve frontě žádné úlohy Session, Session je dočasně deaktivována.

Pokyny pro práci s těmito hodnotami najdeš v části Run jobs in a session.

Další omezení​

Na Open Plánu můžeš využít až 10 minut na QPU za každé 28denní klouzavé období. Využití instance si můžeš zobrazit na stránce Instances.

Další kroky​

Doporučení