Plantillas de código fuente para solvers#
Introducción#
En esta página puedes descargar plantillas de código fuente para los distintos SDKs y proveedores de hardware, de modo que sea más sencillo empezar a implementar tus solvers.
Plantillas por SDK de hardware#
Importante
Asegúrate de descargar la plantilla adecuada según el Hardware SDK que seleccionaste en tu solver. De lo contrario, las ejecuciones pueden fallar en la plataforma.
![]()
Classical CPU#
En la siguiente tabla puedes encontrar todas las plantillas disponibles para CPUs clásicas:
| Lenguaje | Descripción | Descarga |
|---|---|---|
| Python | Plantilla en Python para CPUs clásicas | Disponible próximamente |
![]()
IBM Qiskit#
En la siguiente tabla puedes encontrar todas las plantillas disponibles para IBM Qiskit:
| Lenguaje | Descripción | Descarga |
|---|---|---|
| Python | Plantilla en Python para IBM Qiskit | Disponible próximamente |
![]()
Fujitsu#
En la siguiente tabla puedes encontrar todas las plantillas disponibles para Fujitsu:
| Lenguaje | Descripción | Descarga |
|---|---|---|
| Python | Plantilla en Python para Fujitsu digital annealer | Disponible próximamente |
![]()
AWS Braket#
En la siguiente tabla puedes encontrar todas las plantillas disponibles para AWS Braket:
| Lenguaje | Descripción | Descarga |
|---|---|---|
| Python | Plantilla en Python para AWS Braket clásico | Disponible próximamente |
![]()
Dwave#
En la siguiente tabla puedes encontrar todas las plantillas disponibles para Dwave:
| Lenguaje | Descripción | Descarga |
|---|---|---|
| Python | Plantilla en Python para Dwave | Disponible próximamente |
![]()
Quantum Rings#
| Lenguaje | Descripción | Descarga |
|---|---|---|
| Python | Plantilla en Python para Quantum Rings | Disponible próximamente |
![]()
Alice & Bob#
| Lenguaje | Descripción | Descarga |
|---|---|---|
| Python | Plantilla en Python para Alice & Bob | Disponible próximamente |
![]()
Quantinuum#
| Lenguaje | Descripción | Descarga |
|---|---|---|
| Python | Plantilla en Python para Quantinuum | Disponible próximamente |
![]()
Pasqal#
| Lenguaje | Descripción | Descarga |
|---|---|---|
| Python | Plantilla en Python para Pasqal | Disponible próximamente |
![]()
Xanadu#
| Lenguaje | Descripción | Descarga |
|---|---|---|
| Python | Plantilla en Python para Xanadu | Disponible próximamente |
Descripción de las plantillas#
Todas las plantillas de código fuente contienen 4 archivos principales:
app.pyqcentroid.pyrequirements.txtREADME.md
qcentroid.py#
El archivo qcentroid.py contiene la función run(), que es el entrypoint del solver.
Esta función run() recibe los parámetros de entrada necesarios para la ejecución:
input_datasolver_paramsextra_arguments
Definición de la función run():
def run(input_data:dict, solver_params:dict, extra_arguments:dict) -> dict:
Ejemplo de archivo qcentroid.py simple:
#
# QCentroid entrypoint
#
# DO NOT change the name of this file.
# DO NOT edit the signature of the run() function.
#
#
# TODO: Import here any non-standard packages you need or your custom modules
#
# Configure the QCentroid logging feature to see logs traces in the dashboard
import logging
logger = logging.getLogger("qcentroid-user-log")
def run(input_data:dict, solver_params:dict, extra_arguments:dict) -> dict:
logger.info("Start of my solver...")
#
# Add your solver's code here, or call it from here if it is already implemented in another module
#
output = {"message": "Hello world!"}
logger.info("End of my solver, returning output.")
# And this is the output it returns. This output must be a dictionary.
return output
app.py#
El propósito de este archivo es únicamente realizar pruebas locales. Al ejecutar tu solver en la plataforma, se sustituirá por el archivo propio de la plataforma, que añade las librerías necesarias y llama a los proveedores de hardware adecuados.
Precaución
No deberías modificar este archivo para asegurar que tu solver funciona tanto en entornos locales como de producción.
Como puedes ver en este archivo, lo único que hace es llamar a la función run() que tenemos en el archivo qcentroid.py.
requirements.txt#
Por último, tenemos el archivo requirements.txt, que contiene los paquetes usados en el solver junto con sus versiones:
qiskit==0.17.0
En tu entorno, puedes instalar todos los paquetes listados en el archivo requirements.txt usando pip:
pip install -r requirements.txt
Se instalarán las librerías aprobadas estándar disponibles en pip. Asegúrate de añadir todas las dependencias de tu código, excepto librerías estándar de Python como json, logging o time.
Tip
Recomendamos usar entornos virtuales de Python en tu máquina local para evitar conflictos con dependencias.
README.md#
Es necesario tener en la raíz del repositorio un archivo README.md o [solver-name].md con la documentación que quieres incluir sobre tu solver, explicando, si existen, los parámetros que puede introducir el usuario final.
Ejemplo de archivo MyFirstSolver.md:
## MyFirstSolver
Test documentation associated with my solver.
I don't have auxiliary parameters but I could define them like this:
- "parameter1": (int) This is what my first parameter does.
Ejecutar el solver localmente#
Para ejecutar tu solver localmente durante el proceso de desarrollo y antes de subirlo a la plataforma, ejecuta el script Python app del solver:
python app.py
Instrucciones de uso#
- Descarga la plantilla que necesitas según el Hardware SDK que quieras usar.
- Descomprímela en tu máquina local. Contiene 4 archivos principales:
app.pyqcentroid.pyrequirements.txtREADME.md
- Modifica los archivos para añadir tu propio algoritmo.
- Sube todos los archivos a la carpeta raíz de un repositorio Git.
- Ahora puedes ir a la plataforma, conectar el repositorio, hacer pull y build de tu solver, y ejecutar jobs.









