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 , jak i 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: