Al ejecutar cargas de trabajo de computación cuántica con numerosos circuitos, como la imitación del sistema molecular, hacer sombras clásicas y capacitación de modelos de aprendizaje automático cuántico, recolectando cada circuito individualmente debido a la configuración de tareas y la ejecución debido al tiempo de procesamiento. La sobrecarga ha agregado horas al tiempo de ejecución total de los experimentos y hace que los resultados sean sensibles al dispositivo.
Hoy, nos complace anunciar los conjuntos de programas, una nueva característica de un soporte de Amazon que se ejecuta hasta 24 veces en dispositivos compatibles cuando se ejecutan cientos de ejecuciones de circuitos. Con los conjuntos del programa, puede enviar 100 circuitos cuánticos únicos o un solo circuito parametérico con 100 configuraciones de parámetros diferentes en la misma tarea cuántica Brequate de Amazon. El soporte maneja la orquestación de los circuitos en la unidad de procesamiento cuántico (QPU) y minimiza el tiempo entre las ejecuciones. Esto reduce la sobrecarga de procesamiento de tareas cuánticas, lo que permite horas de ejecución rápidas.
¿Cuáles son los conjuntos del programa?
Un conjunto de programas es un conjunto de circuitos cuánticos o programas de hasta 100 que está empaquetado en la misma tarea cuántica del soporte de Amazon. Cuando los circuitos se presentan como tareas cuánticas separadas, asociadas con él Tarea por lanzamiento La sobrecarga aumenta rápidamente. Los conjuntos del programa reducen la sobrecarga innecesaria por tarea al agrupar los circuitos, lo que permite una espalda y procesamiento más eficiente.

Chatra 1: con los conjuntos de programas, puede empaquetar circuitos, configuraciones de parámetros (o «conjuntos de entrada») y bases de medición (o «observaciones») en el mismo paquete, después de lo cual los dispositivos de senos compatibles se implementan de manera efectiva.
Los beneficios del conjunto de programas
El uso del conjunto de programas ofrece tres beneficios importantes.
Sencillez: Los conjuntos de programas proporcionan una forma de crear y recopilar múltiples programas cuánticos en los soportes de Amazon sin la necesidad de presentar cientos de tareas separadas individualmente y rastrearlos. Esto reduce la complejidad de una gran cantidad de programas cuánticos y permite a los consumidores centrarse en el desarrollo del algoritmo en lugar de la gestión de tareas. Los resultados de todos los circuitos en un conjunto de programas se devuelven juntos, lo que hace que sean más fáciles de analizar. (Ver Figura 2)

Chitra 2: un conjunto de programas enviado al dispositivo Amazon Bracket ha sido rastreado como un tipo de «conjunto de programas» de la tarea cuántica Brequate de Amazon. En la consola del soporte, el trabajo asociado se muestra con datos de metal adicionales: ejecución total y tomas exitosas. Una vez que esté completado, puede inspeccionar el programa programado en la pestaña «Explorador», que muestra la clasificación de programas (o circuitos) en el programa y se prescribe como un árbol expansible en el programa. Después de elegir un viable, la consola muestra sus características (como definición del circuito, el código ABRIR QSM y los valores de los parámetros) y los resultados.
Tiempo de ejecución menos: En el hardware compatible, el conjunto del programa le permite operar una gran cantidad de circuitos 3x -24x minimizando la sobrecarga entre las ejecuciones de circuito. Es especialmente valioso valioso del algoritmo que requiere el mismo circuito parametrizado con diferentes mediciones o valores de parámetros, como aggonoloros cuánticos (VQE), modelo de aprendizaje automático cuántico y protocolo de sombra. Poco tiempo de ejecución también ayuda a minimizar los efectos del aumento del dispositivo y conduce a resultados más permanentes. (Ver Tabla 1)
Ahorro de costos: Con el programa establecido, puede ahorrar costos para los métodos de acceso basados en la demanda y la reserva. Las cargas de trabajo a pedido, usted paga solo una por tarifa de tarea y por tarifa de disparo en función del número total de disparos en todos los circuitos en un conjunto de programas. Esto reduce el costo de las cargas de trabajo con muchos circuitos, donde anteriormente paga una tarifa de tarea por circuito. Además, con un tiempo de ejecución bajo, puede ejecutar más circuitos durante la reserva directa de descanso. (Consulte la Tabla 1) Para obtener más detalles, consulte la sección «Precios».
| La carga de trabajo | Use el caso, por ejemplo, | Juego de puerta | Tipo de circuito | El procesamiento acelera | En la reducción de costos de demandas | ||
| 400 disparos por viable (g, a) | 1 disparo por viable (g) | 400 disparos por viable (g, a) | 1 disparo por viable (g) | ||||
| 1 | Estimación de Hamilton | Afuera | Paramétrico | 5x | 24x | -40 % | -99 % |
| 2 | Sombra clásica | Paternal | Paramétrico | 5x | 14x | -40 % | -99 % |
| 3 | Interrumpir | Paternal | No paramétrico | 3x | 5x | -40 % | -99 % |
Tabla 1: La aceleración de procesamiento y la reducción de costos a través del programa Amazon Brefate se establecen en una carga de trabajo de tres tipos. La carga de trabajo 1 consiste en puertas cuánticas discrecionales, mientras que las cargas de trabajo se construyen a partir de 2 y 3, después de la compilación, desde las puertas ancestrales hasta el dispositivo. Las cargas de trabajo usan circuitos parametéricos 1 y 2, mientras que la carga de trabajo consta de 3 circuitos no paraméticos. La carga de cada trabajo tenía completamente 100 conjuntos ejecutivos por programa, con disparos diferentes de 400 disparos. –
Para comenzar con el conjunto de programas
Los conjuntos de programas extienden la experiencia actual de envases e implementación de circuitos utilizando SDK y API de Amazon Brackets. El nuevo conjunto de programas se puede construir a partir de circuitos de clase, conjuntos de entrada (o configuración de parámetros) y la lista de observadores (o mediciones). Cada combinación de estas entradas es un conjunto de programas viable.

Ejemplo básico: múltiples circuitos independientes
En su forma más fácil, se puede crear un conjunto de programas a partir de la lista de circuitos totalmente irrelevantes. Ya proporciona la ventaja de procesar en las QPU asistentes.
from math import pi
from braket.circuits import Circuit
from braket.program_sets import ProgramSet
program_set_1 = ProgramSet((
Circuit().h(0).cnot(0,1),
Circuit().rx(0, pi/4).ry(1, pi/8).cnot(1,0),
Circuit().t(0).t(1).cz(0,1).s(0).cz(1,2).s(1).s(2),
))
Usando total_executablesAtributo, confirmamos que el programa creado ha determinado tres ejecuciones.
print(program_set_1.total_executables)
# 3
Nota: entries Atributo y to_ir() Se puede utilizar para inspeccionar el procedimiento ProgramSetObjeción
Ahora podemos ejecutar el programa en un simulador local e inspeccionar los resultados.
from braket.devices import LocalSimulator
device = LocalSimulator()
result_1 = device.run(program_set_1, shots=300).result()
Después de presentar un conjunto de programas, podemos ver información detallada sobre cada tiempo de finalización del circuito. Si todos los conjuntos de circuitos fallan, también podemos obtener resultados parciales para aquellos que se completaron con éxito. El resultado son las calificaciones de 2 niveles (primero: programa, segundo: procesado) en el objeto. Podemos ingresarlos de la siguiente manera.
for program_result in result_1:
for executable_result in program_result:
print(executable_result.counts)
# Counter({'00': 51, '11': 49})
# Counter({'00': 89, '11': 5, '10': 5, '01': 1})
# Counter({'000': 100})
Tenga en cuenta que los 300 disparos que hemos solicitado están igualmente divididos en las tres ejecuciones. En otras palabras, shots Argumentar device.run()Se usa para configurar Total de disparos Más que todo el conjunto de programas.
Ejemplo avanzado: la estimación de Hamilton para la química cuántica
Algunos casos de uso, como las estimaciones de Hamiltonin, pueden beneficiarse aún más al conectar el mismo circuito parametrizado con una lista de conjuntos de entrada y observaciones en el mismo conjunto de programas. Describimos a un observador, un Hamilton
De la combinación lineal de las palabras de Pauli,
En dos cuartos, 0 y 1 configurado, y cree un conjunto de programas. Una forma de hacer esto es usar CircuitBindingClase
from braket.circuits.observables import I, X, Y, Z
from braket.program_sets import CircuitBinding
bell_circuit = Circuit().h(0).cnot(0,1)
hamiltonian = 0.1 * Z(0) @ Z(1) - 5.0 * X(0) @ X(1)
program_set_2 = ProgramSet(
CircuitBinding(
circuit=bell_circuit,
observables=hamiltonian,
)
)
Los conjuntos de programas resultantes son dos colgantes para cada término en el hamlettinin, uno para un término,
Y
. Después de ejecutarlo en un simulador local para cada 100 disparos viables, analizamos los resultados que lo usan expectationAtributo de resultados individualmente viables, que recibe 0.1 y -5.0. Llamar expectation()Todo el procedimiento del programa da como resultado la expectativa de todo el hamstein, -4.9.
result_2 = device.run(program_set_2, shots=program_set_2.total_executables * 100).result()
print((result_2(0)(0).expectation, result_2(0)(1).expectation))
# (0.10, -5.00)
print(result_2(0).expectation())
# -4.90
Nota: Para métodos adicionales para especificar conjuntos de programas utilizando CircuitBindingClase y product() Y zip() Formas de ProgramSetVea el ejemplo de la clase, conjunto de programas.
Carillo.
Con el programa establecido, usted paga la misma tarifa de tarea y por tarifa por disparo en función del número total de tomas exitosas en todos los programas en un conjunto de programas. El costo total es más bajo que el momento en que se presentan los mismos circuitos como tareas individuales. Por ejemplo, considere 100 circuitos y 1000 disparos por circuito (por disparo: $ 0.0009) en Anka 3. Usar el conjunto de programas se reduce rápidamente en la sobrecarga del costo del circuito, y reduce el costo general en un 25 %. (Ver Tabla 2)
| Correr como | Circo | Tarea brexit | Total de disparos | Costo de la tarea | Costo de disparo | Costo total |
| 100 obras individuales | 100 | 100 | 100,000 | .00 30.00 | $ 90 | .00 120.00 |
| Un conjunto de programas | 100 | 1 | 100,000 | $ 0.30 | $ 90 | . 90.30 |
La Tabla 2: 100 se ejecuta como un solo programa establecido con 100 ejecuras de ejecución en comparación con el mismo costo de carga de trabajo en comparación con las tareas individuales.
Los soportes del trabajo se cargan directamente a través del LOO de reserva, solo paga las horas utilizadas. El uso del conjunto del programa reduce el tiempo de procesamiento, por lo que proporcionar trompas adicionales al ejecutar la carga de trabajo compleja, le permite completar más trabajo durante su reserva. Para obtener la última información de precios, consulte la página de Precios Breficados de Amazon.
Disponibilidad y comienzo
El conjunto de programas de Amazon Breficate está listo hoy para usar todas las QPU de súper conductores en la región de los EE. UU. Oeste (N. California) en el IQM y el simulador local Brequate de Amazon en la región. Planeamos aumentar el soporte del programa para equipos y simuladores adicionales en el futuro.
Más información sobre el conjunto de programas de paréntesis de Amazon y comience a afilar su investigación de computación cuántica, consulte la Guía de desarrolladores de Amazon Brack. También puede descubrir nuestro nuevo programa de programa, por ejemplo, cuadernos y ver la consola de administración de Bracket de Amazon lo último.
