

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.

# Desarrollo de su primer circuito
<a name="braket-get-started-run-circuit"></a>

Una vez lanzada la instancia de cuaderno, ábrala con una interfaz de Jupyter estándar. Para ello, seleccione el cuaderno que acaba de crear.

![Interfaz de bloc de notas que muestra una instancia de bloc de notas existente denominada amazon-braket-test con el estado y su URL. InService](http://docs.aws.amazon.com/es_es/braket/latest/developerguide/images/console-page.png)


Las instancias de cuaderno de Amazon Braket vienen preinstaladas con el SDK de Amazon Braket y todas sus dependencias. Comience por crear un nuevo cuaderno con kernel de `conda_braket`.

![Interfaz de lanzamiento para cuadernos, consola y otras herramientas como terminal, archivo de texto, archivo Markdown, archivo Python, con el entorno Python conda_braket resaltado.](http://docs.aws.amazon.com/es_es/braket/latest/developerguide/images/jupyter-open.png)


Por ejemplo, puede empezar con un simple “¡Hola, mundo\!” . Primero, desarrolle un circuito que prepare un estado de Bell y, a continuación, ejecute ese circuito en diferentes dispositivos para obtener los resultados.

Comience por importar los módulos del SDK de Amazon Braket y definir un simpleBRAKETlong; módulos del SDK y definición de un circuito básico de estado de Bell.

```
import boto3
from braket.aws import AwsDevice
from braket.devices import LocalSimulator
from braket.circuits import Circuit

# Create the circuit
bell = Circuit().h(0).cnot(0, 1)
```

Puede ver el circuito con este comando:

```
print(bell)
```

```
T  : │  0  │  1  │
      ┌───┐       
q0 : ─┤ H ├───●───
      └───┘   │   
            ┌─┴─┐ 
q1 : ───────┤ X ├─
            └───┘ 
T  : │  0  │  1  │
```

 **Ejecución del circuito en el simulador local** 

A continuación, elija el dispositivo cuántico en el que ejecutar el circuito. El SDK de Amazon Braket incluye un simulador local para la creación rápida de prototipos y pruebas. Recomendamos utilizar el simulador local para circuitos más pequeños, que pueden ser de hasta 25 qubits (según el hardware local).

Para crear una instancia de simulador local:

```
# Instantiate the local simulator
local_sim = LocalSimulator()
```

Para ejecutar el circuito:

```
# Run the circuit
result = local_sim.run(bell, shots=1000).result()
counts = result.measurement_counts
print(counts)
```

Debería ver un resultado similar al siguiente:

```
Counter({'11': 503, '00': 497})
```

El estado de Bell específico que ha preparado es una superposición igual de \|00⟩ y \|11⟩, y una distribución aproximadamente igual (hasta el ruido de shot) de 00 y 11 como resultados de medición, según se espera.

 **Ejecución del circuito en un simulador bajo demanda** 

Amazon Braket también proporciona acceso a un simulador de alto rendimiento bajo demanda, SV1, para ejecutar circuitos más grandes. SV1 es un simulador de vector de estado bajo demanda que permite simular circuitos cuánticos de hasta 34 qubits. Encontrará más información en la sección [Dispositivos compatibles y SV1 en la consola.](braket-devices.md) AWS Cuando ejecuta tareas cuánticas en SV1 (y en TN1 o en cualquier QPU), los resultados de la tarea cuántica se almacenan en un bucket de S3 en su cuenta. Si no especifica ningún bucket, el SDK de Braket crea un bucket predeterminado `amazon-braket-{region}-{accountID}` para usted. Para obtener más información, consulte [Administración del acceso a Amazon Braket](braket-manage-access.md).

**nota**  
Rellene el nombre real y existente de su bucket en donde el siguiente ejemplo muestra `amazon-braket-s3-demo-bucket` como el nombre del bucket. Los nombres de los buckets de Amazon Braket siempre comienzan por `amazon-braket-` seguido de otros caracteres identificativos que añada. Si necesita información sobre cómo configurar un bucket de S3, consulte [Introducción a Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/GetStartedWithS3.html).

```
# Get the account ID
aws_account_id = boto3.client("sts").get_caller_identity()["Account"]

# The name of the bucket
my_bucket = "amazon-braket-s3-demo-bucket"

# The name of the folder in the bucket
my_prefix = "simulation-output"
s3_folder = (my_bucket, my_prefix)
```

Para ejecutar un circuito en SV1, debe proporcionar la ubicación del bucket de S3 que seleccionó previamente como argumento posicional en la llamada de `.run()`.

```
# Choose the cloud-based on-demand simulator to run your circuit
device = AwsDevice("arn:aws:braket:::device/quantum-simulator/amazon/sv1")

# Run the circuit
task = device.run(bell, s3_folder, shots=100)

# Display the results
print(task.result().measurement_counts)
```

La consola de Amazon Braket proporciona más información sobre su tarea cuántica. Diríjase a la pestaña **Tareas cuánticas** de la consola y su tarea cuántica debería aparecer en la parte superior de la lista. Como alternativa, puede buscar su tarea cuántica utilizando el identificador único de la tarea cuántica u otros criterios.

**nota**  
Transcurridos 90 días, Amazon Braket elimina automáticamente todos los identificadores de tareas cuánticas y otros metadatos asociados a sus tareas cuánticas. Para obtener más información consulte [Retención de datos](https://docs.aws.amazon.com/braket/latest/developerguide/security.html#braket-data-retention).

 **Ejecución en una QPU** 

Con Amazon Braket, puede ejecutar el ejemplo anterior de circuito cuántico en una computadora cuántica física simplemente cambiando una línea de código. Amazon Braket proporciona acceso a una variedad de dispositivos con unidades de procesamiento cuántico (QPU). Puede encontrar información sobre los distintos dispositivos y las ventanas de disponibilidad en la sección [Dispositivos compatibles](braket-devices.md) y en la AWS consola, en la pestaña **Dispositivos**. En el siguiente ejemplo se muestra cómo crear instancias de un dispositivo de IQM.

```
# Choose the IQM hardware to run your circuit
device = AwsDevice("arn:aws:braket:eu-north-1::device/qpu/iqm/Garnet")
```

O elija un dispositivo de IonQ con este código:

```
# Choose the Ionq device to run your circuit
device = AwsDevice("arn:aws:braket:us-east-1::device/qpu/ionq/Aria-1")
```

Después de seleccionar un dispositivo y antes de ejecutar su carga de trabajo, puede consultar la profundidad de la cola del dispositivo con el siguiente código para determinar el número de tareas cuánticas o trabajos híbridos. Además, los clientes pueden ver las profundidades de cola específicas de cada dispositivo en la página Dispositivos de la Amazon Braket Management Console. 

```
# Print your queue depth
print(device.queue_depth().quantum_tasks)
# Returns the number of quantum tasks queued on the device
# {<QueueType.NORMAL: 'Normal'>: '0', <QueueType.PRIORITY: 'Priority'>: '0'}

print(device.queue_depth().jobs)
# Returns the number of hybrid jobs queued on the device
# '2'
```

Al ejecutar la tarea, el SDK de Amazon Braket sondea para obtener un resultado (con un tiempo de espera predeterminado de 5 días). Puede cambiar este valor predeterminado modificando el parámetro `poll_timeout_seconds` en el comando `.run()`, como se muestra en el siguiente ejemplo. Tenga en cuenta que si el tiempo de espera de sondeo es demasiado corto, es posible que los resultados no se devuelvan dentro del tiempo de sondeo, como cuando una QPU no está disponible y se devuelve un error de tiempo de espera local. Puede reiniciar el sondeo llamando a la función `task.result()`.

```
# Define quantum task with 1 day polling timeout
task = device.run(bell, s3_folder, poll_timeout_seconds=24*60*60)
print(task.result().measurement_counts)
```

Además, después de enviar su tarea cuántica o trabajo híbrido, puede llamar a la función `queue_position()` para comprobar su posición en la cola.

```
print(task.queue_position().queue_position)
# Return the number of quantum tasks queued ahead of you
# '2'
```