FAQ dotyczące trybów wykonania Qiskit Runtime
Czy lokalny tryb testowania Qiskit Runtime obsługuje różne tryby wykonania?
Lokalny tryb testowania obsługuje składnię różnych trybów wykonania, ale ponieważ podczas lokalnego testowania nie ma żadnego harmonogramowania, tryby są ignorowane.
Ile zadań może być wykonywanych równolegle dla określonego Backend?
Liczba zadań wykonywanych równolegle zależy od stopnia równoległości skonfigurowanego dla danego Backend, który wynosi pięć dla większości Backend dostępnych obecnie.
Jak jest raportowane użycie w przypadku nieudanych lub anulowanych zadań?
Zobacz sekcję Nieudane i anulowane zadania na stronie dotyczącej trybów wykonania.
Sessions
Co stanie się z moimi zadaniami, jeśli Session zostanie zamknięta?
Jeśli używasz klasy Session z qiskit-ibm-runtime:
Session.close()oznacza, że Session nie przyjmuje już nowych zadań, ale istniejące zadania są wykonywane do końca.Session.cancel()anuluje wszystkie oczekujące zadania Session.
Jeśli używasz bezpośrednio REST API:
PATCH /sessions/{id}zaccepting_jobs=Falseoznacza, że Session nie przyjmuje już nowych zadań, ale istniejące zadania są wykonywane do końca.DELETE /sessions/{id}/closeanuluje wszystkie oczekujące zadania Session.
Jeśli używam trybu Session i spodziewam się, że mój eksperyment zajmie wiele godzin, czy można poprosić o przeprowadzenie kalibracji?
Nie. Kalibracja na żądanie nie jest dostępna.
Czy w trybie Session istnieje interaktywny limit czasu (interactive TTL)?
Tak. Zmniejsza to niepożądane koszty, gdy użytkownik zapomni zamknąć swoją Session.
Czy mogę zmienić interaktywny TTL lub maksymalny TTL Session?
Nie możesz zmienić wartości interaktywnego TTL. Możesz zmienić wartość maksymalnego TTL Session (zobacz Określanie długości Session), ale musi być ona mniejsza niż zdefiniowane przez system maksimum. Poproś swojego administratora o kontakt z pomocą techniczną IBM, jeśli potrzebujesz innego interaktywnego TTL lub systemowego maksymalnego TTL.
Jak użycie Session wpływa na członków IBM Quantum Network, którzy nie są rozliczani na podstawie użycia?
Członkowie IBM Quantum Network uzyskują zarezerwowaną przepustowość na QPU IBM Quantum®. Użycie jest odliczane od tej przepustowości, a instancje z niższą przepustowością mają dłuższy czas oczekiwania w kolejce.
Czy w trybie Session mam taką samą równoległość jak w trybie batch?
Tak. Jeśli przesyłasz wiele zadań jednocześnie w Session, zadania te będą wykonywane równolegle.
Czy Session mogą być przerywane przez aktualizacje lub kalibracje QPU?
Nie. Session działają w trybie dedykowanym, co oznacza, że użytkownik ma pełny dostęp do Backend. Session nigdy nie są przerywane przez kalibracje ani aktualizacje oprogramowania.
Czy czas kompilacji jest wliczany do użycia w trybie Session?
Tak. W trybie Session użycie to czas zegarowy, przez który QPU jest przydzielony do Session. Zaczyna się, gdy pierwsze zadanie Session startuje, i kończy, gdy Session przechodzi w stan nieaktywny, zostaje zamknięta lub gdy ostatnie zadanie zostanie ukończone — w zależności od tego, co nastąpi najpóźniej. Dlatego użycie nadal jest naliczane po zakończeniu Session, jeśli QPU nadal wykonuje zadanie. Ponadto czas po ukończeniu zadania, podczas gdy QPU czeka na kolejne zadanie Session (interaktywny TTL), jest wliczany do użycia. Dlatego powinieneś upewnić się, że Session jest zamknięta, gdy tylko skończyłeś przesyłać do niej zadania.
Batch
Ile zadań jest wykonywanych równolegle w trybie batch?
Liczba zadań wykonywanych równolegle zależy od stopnia równoległości skonfigurowanego dla Backend, który wynosi pięć dla większości Backend. Jednak liczba równoczesnych zadań w aktywnym batch może być mniejsza, ponieważ w momencie aktywacji batch mogą już działać inne zadania.
Czym różni się uruchamianie N PUB w trybie job od uruchamiania N zadań z pojedynczym PUB w trybie batch?
Główna różnica dotyczy kompromisu między czasem a kosztem:
Tryb batch:
- Całkowity czas wykonania jest krótszy, ponieważ przetwarzanie klasyczne może odbywać się równolegle.
- Uruchomienie każdego zadania wiąże się z niewielkim narzutem, więc za zadania wsadowe płacisz nieco więcej. Ten narzut jest powiązany z rozmiarem zadania. Na przykład łączne użycie dwóch zadań, każde zawierające 40 obwodów 100x100, jest o sześć sekund większe niż pojedynczego zadania zawierającego 80 obwodów.
- Ponieważ tryb batch nie zapewnia wyłącznego dostępu do Backend, zadania w batch mogą być wykonywane razem z zadaniami innych użytkowników lub zadaniami kalibracyjnymi.
- Jeśli niektóre zadania się nie powiodą, nadal otrzymujesz wyniki z ukończonych zadań.
- Możesz podjąć działania w trakcie wykonywania zadań batch na podstawie wyników ukończonych zadań. Na przykład możesz anulować pozostałe zadania, jeśli początkowe wyniki wyglądają nieprawidłowo.
Tryb job:
- Całkowity czas wykonania prawdopodobnie będzie wyższy, ponieważ nie ma równoległości.
- Nie płacisz za dodatkowy narzut per-job związany z zadaniami wsadowymi.
- Wszystkie twoje Circuit zostaną uruchomione razem.
- Jeśli to pojedyncze zadanie się nie powiedzie, nie otrzymujesz częściowych wyników.
- Twoje zadanie może osiągnąć limit, jeśli zawiera zbyt wiele Circuit lub jeśli Circuit są zbyt duże.
Ogólnie rzecz biorąc, jeśli każde z twoich zadań zużywa mniej niż minutę czasu QPU, rozważ połączenie ich w jedno większe zadanie (dotyczy to wszystkich trybów wykonania).
Ile zadań mogę przesłać w batch?
Choć nie ma ograniczeń co do liczby zadań, które możesz przesłać w batch, istnieje maksymalny czas związany z batch. Oznacza to, że gdy czas zegarowy batch (który zaczyna się, gdy pierwsze zadanie batch zaczyna działać) przekroczy zdefiniowane przez system maksimum, batch nie będzie akceptować żadnych nowych zadań, a wszelkie zadania w kolejce, które nie działają, zostaną anulowane. Ponadto istnieją ograniczenia dotyczące użycia, jakie twoje zadania mogą generować, w zależności od twojego planu. Aby określić maksymalny czas związany z batch, użyj metody batch.details() i poszukaj wartości max_time.
Kiedy moje zadania w trybie batch będą wykonywane równolegle z zadaniami innych użytkowników?
Stopień równoległości skonfigurowany dla Backend jest również nazywany "torami wykonania" (execution lanes). Jeśli dostępny jest jeden lub więcej torów wykonania, a twoje zadania batch są następne w kolejce do uruchomienia, harmonogram uruchamia wystarczającą liczbę zadań, aby wypełnić tory. Podobnie, jeśli twój batch nie ma wystarczającej liczby zadań do wypełnienia torów, harmonogram uruchamia zadania innych użytkowników.
Przykład: wybrany przez ciebie Backend ma pięć torów wykonania, a dwa z nich są aktualnie zajęte przez zadania innych użytkowników. Twój batch z sześcioma zadaniami jest następny w kolejce do uruchomienia.
Ponieważ dostępne są trzy wolne tory, harmonogram uruchamia trzy z sześciu zadań batch. Kontynuuje uruchamianie zadań w twoim batch, gdy zadania się kończą i tory wykonania stają się dostępne. Jeśli tor stanie się dostępny, a w twoim batch nie ma już zadań, harmonogram uruchamia następne zadanie w kolejce.
Czy wszystkie moje zadania batch muszą czekać w kolejce?
Ponieważ QPU są ograniczonymi i współdzielonymi zasobami, wszystkie zadania muszą czekać w kolejce. Jednak gdy pierwsze zadanie w twoim batch zaczyna działać, wszystkie pozostałe zadania w tym batch w zasadzie przeskakują na początek kolejki i są traktowane priorytetowo przez harmonogram.
Czy batch kończy się automatycznie, gdy ostatnie powiązane zadanie się zakończy?
Tak. Jednak z tym automatycznym wykrywaniem wiąże się nieznaczny narzut, więc zawsze powinieneś zamykać swój batch i Session.
Czy batch mogą być przerywane przez kalibracje lub aktualizacje oprogramowania?
Tak. Zadania wsadowe mogą być przerywane przez kalibracje lub aktualizacje oprogramowania.
Czy czas kompilacji jest wliczany do użycia w trybie batch?
Nie. W trybie batch jako użycie liczy się tylko czas spędzony na sprzęcie kwantowym.