Przejdź do głównej treści

Migracja z Qiskit Pulse do bramek ułamkowych

Wraz z wprowadzeniem bramek ułamkowych sterowanie na poziomie impulsów na wszystkich procesorach IBM Quantum® zostało uznane za przestarzałe i zostanie usunięte na początku 2025 roku. Dodatkowo moduł qiskit.pulse został oznaczony jako przestarzały w Qiskit SDK v1.3.0 i zostanie usunięty w Qiskit SDK v2.0.0. Zmiana ta była motywowana naszym ciągłym skupieniem na eksperymentach w skali użytkowej oraz wsparciem dla użytkowników badających zastosowania, które mogą prowadzić do przewagi kwantowej.

Wykonywanie rotacji jedno- i dwuqubitowych bezpośrednio za pomocą bramek ułamkowych

Najczęstszym przypadkiem użycia sterowania na poziomie impulsów było tworzenie niestandardowych harmonogramów impulsów modyfikujących impulsy ECR lub RX w celu bezpośredniego wykonywania rotacji jednego i dwóch qubitów. Typowy proces polegał na użyciu RXCalibrationBuilder i RZXCalibrationBuilder (lub RZXCalibrationBuilderNoEcho) oraz dodaniu instrukcji RXGate lub RZXGate do target QPU, a następnie zbudowaniu potoku transpilacji zawierającego przebiegi kalibratora w celu skalibrowania rotacji jednego i dwóch qubitów dla określonego kąta. W tle tworzyło to kalibrację, czyli mapowanie między ScheduleBlock a bramką w QuantumCircuit.

Możesz teraz osiągnąć to na procesorach Heron, używając nowej flagi use_fractional_gates. Jak określono w przewodniku po bramkach ułamkowych, zarówno RX(θ)R_X(\theta), jak i RZZ(θ)R_ZZ(\theta) muszą być wczytane przy użyciu tej flagi, która zwraca Backend, którego atrybut Target zawiera informacje o tych bramkach.

service = QiskitRuntimeService()
backend = service.backend('ibm_torino', use_fractional_gates=True)

Używanie Qiskit Dynamics

Moduł qiskit.pulse zawierał znacznie więcej funkcjonalności niż tylko wydajniejsze wykonywanie rotacji jednego i dwóch qubitów. Dużą część kontroli nad fizyką urządzenia można modelować za pomocą pakietu Qiskit Dynamics dostępnego w ekosystemie Qiskit. W szczególności pakiet ten ma własną analogiczną reprezentację wielu funkcji oferowanych przez qiskit.pulse w postaci modułu qiskit_dynamics.signals. Dokumentacja tego pakietu zawiera kilka samouczków, które mogą być pomocne: