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 |
|---|---|---|---|
– |
Cap |
Basat en CPU; no requereix maquinari especial. |
|
|
Requereix maquinari NVIDIA amb controladors recents. |
||
|
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 |
|---|---|---|---|---|
✅ |
✅ |
✅ |
✅ |
|
✅ |
✅ |
🟡 |
✅ |
|
✅ |
✅ |
🟡 |
✅ |
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).