Esecuzione di attività quantistiche durante una prenotazione - Amazon Braket

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Esecuzione di attività quantistiche durante una prenotazione

Dopo aver ottenuto una prenotazione valida ARN da Crea una prenotazione, puoi creare attività quantistiche da eseguire durante la prenotazione. Queste attività rimangono nello QUEUED stato fino all'inizio della prenotazione.

Nota

Le prenotazioni sono AWS specifiche per account e dispositivo. Solo l' AWS account che ha creato la prenotazione può utilizzare la prenotazione. ARN

Nota

Non c'è visibilità in coda per le attività e i lavori inviati con una prenotazione ARN perché solo le attività vengono eseguite durante la prenotazione.

È possibile creare attività quantistiche utilizzando Python SDKs come Braket, Qiskit, PennyLaneo direttamente con boto3 (Funziona con Boto3). Per utilizzare le prenotazioni, devi disporre della versione v1.79.0 o successiva di Amazon Braket Python SDK. Puoi eseguire l'aggiornamento alla versione più recente di BraketSDK, Qiskit fornitore e PennyLane plugin con il seguente codice.

pip install --upgrade amazon-braket-sdk amazon-braket-pennylane-plugin qiskit-braket-provider

Esegui attività con il gestore di DirectReservation contesto

Il modo consigliato per eseguire un'attività all'interno della prenotazione pianificata consiste nell'utilizzare il gestore di DirectReservation contesto. Specificando il dispositivo di destinazione e la prenotazioneARN, il gestore di contesto assicura che tutte le attività create all'interno dell'istruzione with Python vengano eseguite con accesso esclusivo al dispositivo.

Innanzitutto, definisci un circuito quantistico e il dispositivo. Quindi utilizza il contesto di prenotazione ed esegui l'attività.

from braket.aws import AwsDevice, DirectReservation from braket.circuits import Circuit from braket.devices import Devices bell = Circuit().h(0).cnot(0, 1) device = AwsDevice(Devices.IonQ.Aria1) # run the circuit in a reservation with DirectReservation(device, reservation_arn="<my_reservation_arn>"): task = device.run(bell, shots=100)

È possibile creare attività quantistiche in una prenotazione utilizzando PennyLane e Qiskit plugin, purché il DirectReservation contesto sia attivo durante la creazione di attività quantistiche. Ad esempio, con Qiskit-Braket provider, è possibile eseguire le attività nel modo seguente.

from braket.devices import Devices from braket.aws import DirectReservation from qiskit import QuantumCircuit from qiskit_braket_provider import BraketProvider qc = QuantumCircuit(2) qc.h(0) qc.cx(0, 1) aria = BraketProvider().get_backend("Aria 1") # run the circuit in a reservation with DirectReservation(Devices.IonQ.Aria1, reservation_arn="<my_reservation_arn>"): aria_task = aria.run(qc, shots=10)

Allo stesso modo, il codice seguente esegue un circuito durante una prenotazione utilizzando il Braket-PennyLane .

from braket.devices import Devices from braket.aws import DirectReservation import pennylane as qml dev = qml.device("braket.aws.qubit", device_arn=Devices.IonQ.Aria1.value, wires=2, shots=10) @qml.qnode(dev) def bell_state(): qml.Hadamard(wires=0) qml.CNOT(wires=[0, 1]) return qml.probs(wires=[0, 1]) # run the circuit in a reservation with DirectReservation(Devices.IonQ.Aria1, reservation_arn="<my_reservation_arn>"): probs = bell_state()

Impostazione manuale del contesto di prenotazione

In alternativa, puoi impostare manualmente il contesto di prenotazione con il seguente codice.

# set reservation context reservation = DirectReservation(device, reservation_arn="<my_reservation_arn>").start() # run circuit during reservation task = device.run(bell, shots=100)

Questo è ideale per i notebook Jupyter in cui il contesto può essere eseguito nella prima cella e tutte le attività successive verranno eseguite nella prenotazione.

Nota

La cella contenente la .start() chiamata deve essere eseguita solo una volta.

Per tornare alla modalità su richiesta: riavvia il notebook Jupyter o chiama quanto segue per riportare il contesto alla modalità su richiesta.

reservation.stop() # unset reservation context
Nota

Le prenotazioni hanno un orario di inizio e di fine programmato (vedi Creare una prenotazione). I reservation.stop() metodi reservation.start() and non iniziano o terminano una prenotazione. Si tratta di metodi per modificare tutte le attività quantistiche successive da eseguire durante la prenotazione. Questi metodi non hanno alcun effetto sull'orario di prenotazione programmato.

Passa esplicitamente la prenotazione ARN durante la creazione dell'attività

Un altro modo per creare attività durante una prenotazione consiste nell'inoltrare esplicitamente la prenotazione al ARN momento della chiamata. device.run()

task = device.run(bell, shots=100, reservation_arn="<my_reservation_arn>")

Questo metodo associa direttamente l'attività quantistica alla prenotazioneARN, assicurando che venga eseguita durante il periodo prenotato. Per questa opzione, aggiungi la prenotazione ARN a ogni attività che intendi eseguire durante una prenotazione. Inoltre, controlla che le attività siano state create in Qiskit oppure PennyLane stanno utilizzando la prenotazione correttaARN. A causa di queste considerazioni aggiuntive, si consigliano i due metodi precedenti.

Quando usi direttamente boto3, trasmetti la prenotazione ARN come associazione durante la creazione di un'attività.

import boto3 braket_client = boto3.client("braket") kwargs["associations"] = [ { "arn": "<my_reservation_arn>", "type": "RESERVATION_TIME_WINDOW_ARN", } ] response = braket_client.create_quantum_task(**kwargs)