Praca z zadaniami usługi Azure Quantum

Po uruchomieniu programu kwantowego w usłudze Azure Quantum utworzysz i uruchomisz zadanie. Kroki tworzenia i uruchamiania zadania zależą od typu zadania i dostawcy oraz target skonfigurowanego dla obszaru roboczego.

Właściwości zadania

Wszystkie zadania mają następujące wspólne właściwości:

Właściwości opis
Identyfikator Unikatowy identyfikator zadania. Musi być unikatowa w obszarze roboczym.
Dostawca KtoTo chcesz uruchomić zadanie.
Obiekt docelowy Co chcesz uruchomić zadanie. Na przykład dokładny sprzęt kwantowy lub symulator kwantowy oferowany przez dostawcę.
Nazwa/nazwisko Nazwa zdefiniowana przez użytkownika ułatwiając organizowanie zadań.
Parametry Opcjonalne parametry wejściowe dla elementu targets. Zapoznaj się z dokumentacją dotyczącą wybranej target definicji dostępnych parametrów.

Po utworzeniu zadania różne metadane są dostępne dla jego stanu i historii uruchamiania.

Cykl życia zadania

Po napisaniu programu kwantowego możesz wybrać element target i przesłać zadanie.

Ten diagram przedstawia podstawowy przepływ pracy po przesłaniu zadania:

przepływ zadań kwantowych platformy Azure

Najpierw usługa Azure Quantum przekazuje zadanie do konta usługi Azure Storage skonfigurowanego w obszarze roboczym. Następnie zadanie jest dodawane do kolejki zadań dla dostawcy określonego w zadaniu. Usługa Azure Quantum pobiera następnie program i tłumaczy go dla dostawcy. Dostawca przetwarza zadanie i zwraca dane wyjściowe do usługi Azure Storage, gdzie jest dostępny do pobrania.

Monitorowanie zadań

Po przesłaniu zadania można monitorować stan zadania. Zadania mają następujące możliwe stany:

Stan Opis
Czeka Zadanie oczekuje na uruchomienie. Niektóre zadania będą wykonywać zadania przetwarzania wstępnego w stanie oczekiwania. waiting jest zawsze pierwszym stanem, jednak zadanie może przejść do executing stanu, zanim będzie można go obserwować w waiting.
Wykonywanie Zadanie target jest obecnie uruchomione.
Zakończyła się pomyślnie Zadanie zakończyło się pomyślnie, a dane wyjściowe są dostępne. Jest to stan końcowy .
Nie powiodło się Zadanie nie powiodło się, a informacje o błędzie są dostępne. Jest to stan końcowy .
Anulowane Użytkownik zażądał anulowania uruchomienia zadania. Jest to stan końcowy . Aby uzyskać więcej informacji, zobacz Anulowanie zadania w tym artykule.

Stany succeeded, failedi cancelled są uznawane za stany końcowe. Gdy zadanie znajduje się w jednym z tych stanów, nie będą już wykonywane żadne aktualizacje, a odpowiednie dane wyjściowe zadania nie ulegają zmianie.

Na tym diagramie przedstawiono możliwe przejścia stanu zadania:

Diagram przedstawiający przepływ pracy przesyłania zadania do platformy Azure Qauntum.

Po pomyślnym zakończeniu zadania zostanie wyświetlony link do danych wyjściowych na koncie usługi Azure Storage. Sposób uzyskiwania dostępu do tych danych zależy od zestawu SDK lub narzędzia użytego do przesłania zadania.

Jak monitorować zadania

Zadania można monitorować za pomocą języka Python, witryny Azure Portal i interfejsu wiersza polecenia platformy Azure.

Wszystkie właściwości zadania są dostępne w pliku job.details. Na przykład możesz uzyskać dostęp do nazwy zadania, stanu i identyfikatora w następujący sposób:

print(job.details)
print("\nJob name:", job.details.name)
print("Job status:", job.details.status)
print("Job ID:", job.details.id)
{'additional_properties': {'isCancelling': False}, 'id': '0fc396d2-97dd-11ee-9958-6ca1004ff31f', 'name': 'MyPythonJob', 'provider_id': 'rigetti'...}
Job name: MyPythonJob
Job status: Succeeded
Job ID: fc396d2-97dd-11ee-9958-6ca1004ff31f

Liczba zadań

Aby uzyskać liczby wynikające z dużej liczby zadań, warto wykonać lokalną instalację Quantum Development Kit narzędzi. W przypadku instalacji lokalnej można przechowywać identyfikatory zadań lokalnie.

Aby uzyskać listę zadań i ich wyniki, możesz skopiować następujący kod:

for job in workspace.list_jobs():
    print(job.id, job.details.name, job.details.output_data_uri)

Anulowanie zadania

Jeśli zadanie nie jest jeszcze w stanie końcowym (na przykład succeeded, lub failedcancelled), możesz poprosić o anulowanie zadania. Wszyscy dostawcy anulują zadanie, jeśli jest w waiting stanie. Jednak nie wszyscy dostawcy obsługują anulowanie, jeśli twoje zadanie jest w executing stanie.

Uwaga

Jeśli anulujesz zadanie po rozpoczęciu jego działania, twoje konto może nadal być rozliczane za częściową lub pełną kwotę dla tego zadania. Zapoznaj się z dokumentacją rozliczeń dla wybranego dostawcy