Przejdź do głównej treści

Wybierz odpowiedni tryb wykonania

Zadania obliczeniowe w skali użytkowej mogą trwać wiele godzin, dlatego ważne jest, aby zarówno zasoby klasyczne, jak i kwantowe były planowane wydajnie, co pozwala usprawnić wykonanie. Tryby wykonania zapewniają elastyczność w balansowaniu między kosztem a czasem, umożliwiając optymalne wykorzystanie zasobów dla Twoich zadań. Przy wyborze trybu wykonania należy wziąć pod uwagę kilka aspektów, takich jak całkowity czas wykonania (maksymalny czas życia, czyli TTL) oraz czas między zadaniami (interaktywny TTL).

Korzyści z każdego trybu są podsumowane poniżej:

  • Batch
    • Cała partia zadań jest planowana razem i nie ma dodatkowego czasu oczekiwania w kolejce dla każdego z nich.
    • Klasyczne obliczenia zadań, takie jak kompilacja, są wykonywane równolegle. Dzięki temu uruchamianie wielu zadań w trybie Batch jest znacznie szybsze niż uruchamianie ich seryjnie.
    • Zazwyczaj między zadaniami występuje minimalne opóźnienie, co pomaga uniknąć dryfu.
    • Jeśli podzielisz swoje obciążenie robocze na wiele zadań i uruchomisz je w trybie Batch, możesz otrzymywać wyniki z poszczególnych zadań, co czyni je bardziej elastycznymi w użyciu. Na przykład, jeśli wyniki zadania nie spełniają Twoich oczekiwań, możesz anulować pozostałe zadania. Ponadto, jeśli jedno zadanie się nie powiedzie, możesz je ponownie przesłać zamiast uruchamiać całe obciążenie robocze od nowa.
    • Jest generalnie tańszy niż Session.
  • Session
    • Wszystkie funkcje trybu Batch (ale wymagający większego użycia; więcej szczegółów na temat obliczania użycia znajdziesz w Użycie obciążenia roboczego).
    • Dedykowany i wyłączny dostęp do QPU podczas aktywnego okna Session.
    • Przydatny w przypadku obciążeń roboczych, które nie mają wszystkich danych wejściowych gotowych na początku, dla iteracyjnych obciążeń roboczych wymagających klasycznego przetwarzania końcowego przed uruchomieniem kolejnego, oraz dla eksperymentów, które muszą być uruchamiane jak najbliżej siebie.
  • Job
    • Najłatwiejszy w użyciu przy uruchamianiu małego eksperymentu.
    • Może uruchomić się wcześniej niż tryb Batch.

Zalecenia i najlepsze praktyki

Generalnie używaj trybu Batch, chyba że masz obciążenia robocze, które nie mają wszystkich danych wejściowych gotowych na początku.

  • Używaj trybu Batch, aby jednocześnie przesyłać wiele zadań prymitywnych i skrócić czas przetwarzania.

  • Używaj trybu Session dla iteracyjnych obciążeń roboczych lub gdy potrzebujesz dedykowanego dostępu do QPU.

  • Zawsze używaj trybu Job do przesyłania pojedynczego żądania prymitywnego.

  • Ponieważ Session są generalnie droższe, zaleca się używanie trybu Batch zawsze, gdy nie potrzebujesz dodatkowych korzyści z używania Session.

  • Użytkownicy planu Open nie mogą przesyłać zadań w trybie Session.

Aby zapewnić jak najbardziej efektywne korzystanie z trybów wykonania, zalecane są następujące praktyki:

  • Z każdym uruchomieniem zadania wiąże się stały narzut. Ogólnie rzecz biorąc, jeśli każde z Twoich zadań zużywa mniej niż jedną minutę czasu QPU, rozważ połączenie kilku z nich w jedno większe zadanie (dotyczy to wszystkich trybów wykonania). „Czas QPU" odnosi się do czasu spędzonego przez kompleks QPU na przetwarzaniu Twojego zadania.

  • Jeśli każde z Twoich zadań zużywa więcej niż jedną minutę czasu QPU lub jeśli łączenie zadań nie jest praktyczne, nadal możesz uruchamiać wiele zadań równolegle. Każde zadanie przechodzi przez przetwarzanie zarówno klasyczne, jak i kwantowe. Chociaż QPU może przetwarzać tylko jedno zadanie naraz, do pięciu zadań klasycznych może być przetwarzanych równolegle. Możesz to wykorzystać, przesyłając wiele zadań w trybie wykonania Batch lub Session.

Powyższe są ogólnymi wytycznymi i powinieneś dostroić swoje obciążenie robocze, aby znaleźć optymalny stosunek, szczególnie podczas korzystania z Session. Na przykład, jeśli używasz Session, aby uzyskać wyłączny dostęp do Backend, rozważ podzielenie dużych zadań na mniejsze i uruchamianie ich równolegle. Może to być bardziej opłacalne, ponieważ może skrócić czas rzeczywisty (wall-clock time).

Przykłady

Uruchamianie kwantowego algorytmu wariacyjnego

Uruchamianie kwantowego algorytmu wariacyjnego zazwyczaj przebiega według następującego schematu:

  1. Przygotuj ansatz.
  2. Oceń funkcję kosztu na QPU.
  3. Pobierz wynik z poprzedniego kroku i przepuść go przez klasyczny optymalizator.
  4. Dostosuj parametry zgodnie z wyjściem z kroku (3), a następnie wróć do kroku (2).

W tym przypadku, gdybyś używał trybu Job lub Batch, każde zadanie wygenerowane przez krok (2) musi ponownie przejść przez kolejkę. Drastycznie wydłuża to długość eksperymentu (czas rzeczywisty) z powodu czasu oczekiwania w kolejce. Zbieżność może również trwać dłużej z powodu dryfu urządzenia. Oznacza to, że każda iteracja powinna dawać lepszy wynik, ale dryf urządzenia może sprawiać, że kolejne wyniki będą gorsze.

Ponadto, jeśli używasz PEA lub PEC, możesz nauczyć się modelu szumu raz i stosować go do kolejnych zadań podczas uruchamiania w dedykowanej Session. Zazwyczaj nie działa to w trybie Batch lub Job, ponieważ model szumu może stać się nieaktualny do czasu, gdy następne zadanie wyjdzie z kolejki.

Porównywanie ustawień mitygacji błędów

Aby porównać efekty dostępnych metod mitygacji błędów, możesz postępować według następującego schematu:

  1. Skonstruuj Circuit i obserwowalną.
  2. Prześlij zadania prymitywne korzystające z różnych kombinacji ustawień mitygacji błędów.
  3. Wykreśl wyniki, aby zaobserwować efekty różnych ustawień.

W tym przypadku wszystkie zadania (które są powiązane, ale niezależne) są dostępne na początku. Jeśli używasz trybu Batch, są one planowane zbiorowo, więc musisz tylko raz czekać, aż przejdą przez kolejkę. Ponadto, ponieważ celem jest porównanie efektów różnych metod mitygacji błędów, korzystne jest, aby były uruchamiane jak najbliżej siebie. Dlatego Batch byłby dobrym wyborem. Możesz uruchamiać te zadania w Session, ale ponieważ Session są generalnie droższe, zaleca się używanie trybu Batch zawsze, gdy nie potrzebujesz dodatkowych funkcji, które zapewniają Session.

Kolejne kroki