Migrar do Qiskit Pulse para portas fracionárias
Com a introdução de portas fracionárias, o controle de nível de pulso em todos os processadores IBM Quantum® foi descontinuado e será removido no início de 2025. Além disso, o módulo qiskit.pulse foi descontinuado a partir de Qiskit SDK v1.3.0 e será removido em Qiskit SDK v2.0.0. Essa mudança foi motivada pelo nosso foco contínuo em experimentos em escala de utilidade e suporte para usuários que exploram aplicativos que podem levar a vantagens quânticas.
Execute rotações de um e dois qubits diretamente com portas fracionárias
O caso de uso mais comum do controle de nível de pulso foi a criação de programações de pulso personalizadas que modificam os pulsos ECR ou RX para executar diretamente rotações de um e dois qubits. O processo típico era usar os sites RXCalibrationBuilder e RZXCalibrationBuilder (ou RZXCalibrationBuilderNoEcho) e adicionar uma instrução RXGate ou RZXGate ao site target de uma QPU e, em seguida, criar um pipeline de transpilação contendo os passes do construtor de calibração para calibrar as rotações de um e dois qubits para um ângulo especificado. Em segundo plano, isso criou uma calibração, que é um mapa entre um ScheduleBlock e um portão em um QuantumCircuit.
Agora você pode fazer isso nos processadores Heron usando o novo sinalizador use_fractional_gates . Conforme especificado no guia de portas fracionárias, tanto quanto devem ser carregados usando esse sinalizador, que retorna um backend cujo atributo Target contém informações sobre essas portas.
service = QiskitRuntimeService()
backend = service.backend('ibm_torino', use_fractional_gates=True)Use o Qiskit Dynamics
O módulo qiskit.pulse continha muito mais funcionalidades do que apenas a execução de rotações de um e dois qubits com mais eficiência. Grande parte do controle sobre a física do dispositivo pode ser modelada usando o pacote Qiskit Dynamics encontrado no Qiskit Ecosystem. Em particular, o pacote tem sua própria representação análoga de muitos dos recursos fornecidos pelo qiskit.pulse na forma de um módulo qiskit_dynamics.signals . A documentação desse pacote contém alguns tutoriais que podem ser úteis: