Creación y envío de un ejemplo de tarea cuántica de OpenQASM 3.0 - Amazon Braket

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Creación y envío de un ejemplo de tarea cuántica de OpenQASM 3.0

Puede utilizar el SDK Amazon Braket Python, Boto3 o el para enviar tareas cuánticas de OpenQASM 3.0 AWS CLI a un dispositivo Amazon Braket.

Un ejemplo de programa OpenQASM 3.0

Para crear una tarea de OpenQASM 3.0, puede empezar con un programa OpenQASM 3.0 básico (ghz.qasm) que prepare un estado de GHZ, como se muestra en el siguiente ejemplo.

// ghz.qasm // Prepare a GHZ state OPENQASM 3; qubit[3] q; bit[3] c; h q[0]; cnot q[0], q[1]; cnot q[1], q[2]; c = measure q;

Uso del SDK de Python para crear tareas cuánticas de OpenQASM 3.0

Puede usar el SDK de Python de Amazon Braket para enviar este programa a un dispositivo de Amazon Braket con el siguiente código. Asegúrese de reemplazar la ubicación del bucket de Amazon S3 de ejemplo, «amzn-s3-demo-bucket», por el nombre del bucket de Amazon S3.

with open("ghz.qasm", "r") as ghz: ghz_qasm_string = ghz.read() # Import the device module from braket.aws import AwsDevice # Choose the Rigetti device device = AwsDevice("arn:aws:braket:us-west-1::device/qpu/rigetti/Ankaa-3") from braket.ir.openqasm import Program program = Program(source=ghz_qasm_string) my_task = device.run(program) # Specify an optional s3 bucket location and number of shots s3_location = ("amzn-s3-demo-bucket", "openqasm-tasks") my_task = device.run( program, s3_location, shots=100, )

Uso de Boto3 para crear tareas cuánticas de OpenQASM 3.0

También puede usar el SDK de Python de AWS para Braket (Boto3) para crear las tareas cuánticas mediante cadenas de OpenQASM 3.0, como se muestra en el siguiente ejemplo. El siguiente fragmento de código hace referencia a ghz.qasm, que prepara un estado de GHZ, como se muestra anteriormente.

import boto3 import json my_bucket = "amzn-s3-demo-bucket" s3_prefix = "openqasm-tasks" with open("ghz.qasm") as f: source = f.read() action = { "braketSchemaHeader": { "name": "braket.ir.openqasm.program", "version": "1" }, "source": source } device_parameters = {} device_arn = "arn:aws:braket:us-west-1::device/qpu/rigetti/Ankaa-3" shots = 100 braket_client = boto3.client('braket', region_name='us-west-1') rsp = braket_client.create_quantum_task( action=json.dumps( action ), deviceParameters=json.dumps( device_parameters ), deviceArn=device_arn, shots=shots, outputS3Bucket=my_bucket, outputS3KeyPrefix=s3_prefix, )

Úselo para crear tareas de OpenQASM 3.0 AWS CLI

La AWS Command Line Interface (CLI) también se puede utilizar para enviar programas OpenQASM 3.0, como se muestra en el siguiente ejemplo.

aws braket create-quantum-task \ --region "us-west-1" \ --device-arn "arn:aws:braket:us-west-1::device/qpu/rigetti/Ankaa-3" \ --shots 100 \ --output-s3-bucket "amzn-s3-demo-bucket" \ --output-s3-key-prefix "openqasm-tasks" \ --action '{ "braketSchemaHeader": { "name": "braket.ir.openqasm.program", "version": "1" }, "source": $(cat ghz.qasm) }'