Visió general

El mòdul backends proporciona motors d’execució concrets per executar functionals (processos quàntics). Actualment, s’admeten tres backends:

  • QiliSim: Un simulador d’alt rendiment basat en CPU desenvolupat per Qilimanjaro, ideal per al desenvolupament i les proves locals.

  • CUDA: Un backend accelerat per GPU que aprofita el maquinari NVIDIA per a simulacions a gran escala.

  • Qutip: Un backend basat en CPU que utilitza la biblioteca QuTiP, adequat per a simulacions lleugeres i entorns sense accés a GPU.

Nota

Els backends diferents de QiliSim són opcionals; per instal·lar-ne un, incloeu el seu extra en instal·lar QILISDK:

pip install qilisdk[<backend_name>]

Per obtenir més informació, consulteu la pàgina Instal·lació.

Un cop instal·lat, qualsevol funcional primitiu es pot executar passant-lo al mètode execute() del backend juntament amb les especificacions 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)

Visió general de l’arquitectura

Tots els backends concrets subclassen Backend, que centralitza el flux de treball d’execució utilitzat a tot el SDK. El mètode execute() envia un funcional primitiu (p. ex. DigitalPropagation o AnalogEvolution) a la rutina de simulació adequada i retorna un FunctionalResult (vegeu el capítol Functionals). El mètode execute també accepta especificacions de lectura que defineixen com es mesura l’estat quàntic. El mètode execute també s’utilitza per optimitzar programes variacionals mitjançant crides repetides al funcional primitiu parametritzat subjacent.

Els backends registren gestors per als funcionals que admeten. Si un funcional no està implementat, execute() llança NotImplementedError per detectar la incompatibilitat aviat.

Maquinari i dependències

La instal·lació d’un extra de backend incorpora la pila de biblioteques necessàries per a aquell simulador. Els backends de GPU també requereixen que hi hagi controladors compatibles al sistema.

Backend

Extra

Dependència clau

Notes

QiliSim

Cap

Basat en CPU; no requereix maquinari especial.

CudaBackend

cuda

cuda-quantum

Requereix maquinari NVIDIA amb controladors recents.

QutipBackend

qutip

QuTiP

Basat en CPU; no requereix maquinari especial.

Suport de funcionals

La taula següent resumeix quins functionals primitius pot executar cada backend.

Llegenda:

  • ✅ Totalment suportat pel simulador natiu del backend.

  • 🟡 Parcialment suportat — consulteu la pàgina de cada backend per a la limitació exacta.

  • ❌ No suportat.

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).