Descripción general

El módulo backends proporciona motores de ejecución concretos para ejecutar functionals (procesos cuánticos). Actualmente se admiten tres backends:

  • QiliSim: Un simulador de CPU de alto rendimiento desarrollado por Qilimanjaro, ideal para el desarrollo y las pruebas locales.

  • CUDA: Un backend con aceleración GPU que aprovecha el hardware de NVIDIA para simulaciones a gran escala.

  • Qutip: Un backend basado en CPU que utiliza la biblioteca QuTiP, adecuado para simulaciones ligeras y entornos sin acceso a GPU.

Nota

Los backends distintos de QiliSim son opcionales; para instalar uno, incluya su extra al instalar QILISDK:

pip install qilisdk[<backend_name>]

Para más información, consulte la página Instalación.

Una vez instalado, cualquier funcional primitivo puede ejecutarse pasándolo al método execute() del backend junto con las especificaciones de lectura:

from qilisdk.backends import QiliSim
from qilisdk.functionals import DigitalPropagation
from qilisdk.readout import Readout
from qilisdk.digital import Circuit

circuit = Circuit(2)
results = QiliSim().execute(DigitalPropagation(circuit), Readout().with_sampling(nshots=1000))
print(results)

Descripción general de la arquitectura

Todos los backends concretos son subclases de Backend, que centraliza el flujo de trabajo de ejecución utilizado en todo el SDK. El método execute() despacha un funcional primitivo (p. ej., DigitalPropagation o AnalogEvolution) a la rutina de simulación apropiada y devuelve un FunctionalResult (véase el capítulo Functionals). El método execute también acepta especificaciones de lectura que definen cómo se mide el estado cuántico. Asimismo, se utiliza para optimizar programas variacionales mediante llamadas repetidas al funcional primitivo parametrizado subyacente.

Los backends registran manejadores para los funcionales que soportan. Si un funcional no está implementado, execute() lanza NotImplementedError para detectar la incompatibilidad de forma temprana.

Hardware y dependencias

Instalar un extra de backend incorpora la pila de bibliotecas necesaria para ese simulador. Los backends de GPU también requieren que haya controladores compatibles presentes en el sistema.

Backend

Extra

Dependencia principal

Notas

QiliSim

Ninguna

Basado en CPU; no requiere hardware especial.

CudaBackend

cuda

cuda-quantum

Requiere hardware NVIDIA con controladores recientes.

QutipBackend

qutip

QuTiP

Basado en CPU; no requiere hardware especial.

Soporte de funcionales

La tabla siguiente resume qué functionals primitivos puede ejecutar cada backend.

Leyenda:

  • ✅ Totalmente soportado por el simulador nativo del backend.

  • 🟡 Parcialmente soportado — consulta la página de cada backend para ver la limitación exacta.

  • ❌ No soportado.

Backend

DigitalPropagation

AnalogEvolution

QuantumReservoir

VariationalProgram

QiliSim

CudaBackend

🟡

QutipBackend

🟡

Nota

QuantumReservoir is fully native only on QiliSim. On the CudaBackend and QutipBackend the Circuit reservoir steps are evaluated as dense QTensor unitaries on CPU, while Schedule steps still use the backend’s native analog solver. Attaching a NoiseModel to a reservoir run is ignored on both CudaBackend and QutipBackend. (a warning is logged).