

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Travailler avec les réservations
<a name="braket-reservations"></a>

Les réservations vous donnent un accès exclusif à l'appareil quantique de votre choix. Vous pouvez planifier une réservation à votre convenance afin de savoir exactement quand votre charge de travail commence et se termine. Les réservations sont disponibles par tranches d'une heure pour tous les appareils Braket et peuvent être annulées jusqu'à 48 heures à l'avance, sans frais supplémentaires. Nous vous recommandons de mettre en file d'attente les tâches quantiques et les tâches hybrides pour une prochaine réservation à l'avance, en utilisant votre ARN de réservation Braket Direct ou en soumettant des charges de travail lors de votre réservation.

Le coût de l'accès à un appareil dédié est basé sur la durée de votre réservation, quel que soit le nombre de tâches quantiques et de tâches hybrides que vous exécutez sur l'unité de traitement quantique (QPU). Une liste actualisée des ordinateurs quantiques disponibles pour les réservations est disponible sur notre [page de tarification](https://aws.amazon.com/braket/pricing/) ou via la console de [gestion Amazon Braket](https://us-east-1.console.aws.amazon.com/braket/home?region=us-east-1#/devices). 

**Note**  
Dans le cas d'une réservation, il n'y a pas de [limite d'accès.](braket-terms.md#gateshot-limit-term) En outre, pour les IonQ appareils, le nombre minimum de tirs pour les tâches [d'atténuation des erreurs](https://docs.aws.amazon.com/braket/latest/developerguide/braket-error-mitigation.html) est réduit à 500 (contre 2 500 pour les tâches à la demande).

 **Quand utiliser une réservation** 

Tirer parti de l'accès aux réservations vous offre la commodité et la prévisibilité de savoir exactement quand votre charge de travail quantique commence et se termine son exécution. Par rapport à la soumission de tâches et de tâches hybrides à la demande, vous n'avez pas à attendre dans une file d'attente pour d'autres tâches clients. Comme vous avez un accès exclusif à l'appareil lors de votre réservation, seules vos charges de travail sont exécutées sur l'appareil pendant toute la durée de la réservation.

Nous vous recommandons d'utiliser l'accès à la demande pour la phase de conception et de prototypage de votre recherche, afin de permettre une itération rapide et rentable de vos algorithmes. Une fois que vous serez prêt à produire les résultats finaux de l'expérience, pensez à planifier une réservation d'appareil à votre convenance afin de respecter les délais de projet ou de publication. Nous vous recommandons également d'utiliser les réservations lorsque vous souhaitez exécuter des tâches à des moments précis, par exemple lorsque vous organisez une démonstration en direct ou un atelier sur un ordinateur quantique.

**Topics**
+ [Comment créer une réservation](braket-create-a-reservation.md)
+ [Exécution de tâches quantiques lors d'une réservation](braket-run-quantum-task-with-reservation.md)
+ [Exécution de tâches hybrides lors d'une réservation](braket-run-hybrid-jobs-with-reservation.md)
+ [Que se passe-t-il à la fin de votre réservation](braket-end-of-reservation.md)
+ [Annuler ou reporter une réservation existante](braket-cancel-reservation.md)

# Comment créer une réservation
<a name="braket-create-a-reservation"></a>

Pour créer une réservation, contactez l'équipe Braket en suivant ces étapes :

1. Ouvrez la console Amazon Braket.

1. Choisissez **Braket Direct** dans le volet de gauche, puis dans la section **Réservations**, choisissez **Réserver un appareil**.

1. Sélectionnez l'**appareil** que vous souhaitez réserver.

1. Fournissez vos coordonnées, y compris votre **nom** et **votre e-mail**. Assurez-vous de fournir une adresse e-mail valide que vous consultez régulièrement.

1. Sous **Parlez-nous de votre charge de travail**, fournissez des informations sur la charge de travail à exécuter en utilisant votre réservation. Par exemple, la durée de réservation souhaitée, les contraintes pertinentes ou le calendrier souhaité.

Après avoir soumis le formulaire, vous recevez un e-mail de l'équipe Braket avec les prochaines étapes. Une fois votre réservation confirmée, vous recevrez l'ARN de réservation par e-mail. Vous devez utiliser l'ARN de réservation pour créer des tâches de réservation. Les tâches créées sans l'ARN de réservation seront soumises à la file d'attente à la demande normale et ne seront PAS exécutées pendant votre réservation.

**Note**  
Votre réservation n'est confirmée qu'une fois que vous avez reçu l'ARN de réservation.

Les réservations sont disponibles par tranches d'au moins une heure et certains appareils peuvent être soumis à des contraintes de durée de réservation supplémentaires (y compris les durées de réservation minimales et maximales). L'équipe Braket partage toutes les informations pertinentes avec vous avant de confirmer la réservation.

L'équipe Braket vous contactera par e-mail pour organiser une session de 30 minutes avec un expert de Braket.

# Exécution de tâches quantiques lors d'une réservation
<a name="braket-run-quantum-task-with-reservation"></a>

Après avoir obtenu un ARN de réservation valide auprès de [Create a reservation](https://docs.aws.amazon.com/braket/latest/developerguide/braket-reservations.html#braket-create-a-reservation), vous pouvez créer des tâches quantiques à exécuter pendant la réservation. Les tâches quantiques et hybrides soumises avec un ARN de réservation n'apparaîtront pas dans une file d'attente d'appareils. Les tâches soumises avant l'heure de début de la réservation resteront `QUEUED` inchangées jusqu'au début de votre réservation. 

**Note**  
Les réservations sont spécifiques au AWS compte et à l'appareil. Seul le AWS compte qui a créé la réservation peut utiliser votre ARN de réservation.   
Lors d'une réservation, il est possible de créer à la fois des tâches de réservation et des tâches régulières. Pour vérifier qu'une tâche quantique Braket créée est associée à une réservation, vérifiez le champ « Reservation ARN » sur la page de la tâche quantique dans la console Braket, ou interrogez le même champ dans les métadonnées de la tâche à l'aide du SDK. Le reste de cette page explique comment spécifier les tâches associées à la réservation. 

Vous pouvez créer des tâches quantiques en Python SDKs utilisant [Braket](https://docs.aws.amazon.com/braket/latest/developerguide/braket-references.html),,, [https://github.com/NVIDIA/cuda-quantum](https://github.com/NVIDIA/cuda-quantum), ou directement avec boto3 ([Working with](https://docs.aws.amazon.com/braket/latest/developerguide/braket-using-boto3.html) Boto3). Pour utiliser les réservations, vous devez disposer de la version [v1.79.0](https://github.com/amazon-braket/amazon-braket-sdk-python/releases/tag/v1.79.0) ou supérieure d'Amazon [Braket](https://github.com/amazon-braket/amazon-braket-sdk-python). Python SDK Vous pouvez effectuer la mise à jour vers le dernier SDK, Qiskit fournisseur et PennyLane plugin Braket à l'aide du code suivant. 

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

**Exécuter des tâches avec le gestionnaire de `DirectReservation` contexte**

La méthode recommandée pour exécuter une tâche dans le cadre de votre réservation planifiée consiste à utiliser le gestionnaire de `DirectReservation` contexte. En spécifiant votre appareil cible et votre ARN de réservation, le gestionnaire de contexte garantit que toutes les tâches créées dans l'`with`instruction Python sont exécutées avec un accès exclusif à l'appareil. 

Définissez d'abord un circuit quantique et le dispositif. Utilisez ensuite le contexte de réservation et exécutez la tâche. **Assurez-vous que l'intégralité de votre charge de travail est gérée à l'intérieur du `with` bloc ; tout ce qui se trouve en dehors du `with` bloc ne sera pas associé à votre réservation \$1**

```
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.ForteEnterprise1)

# run the circuit in a reservation
with DirectReservation(device, reservation_arn="<my_reservation_arn>"):
    task = device.run(bell, shots=100)
```

Vous pouvez créer des tâches quantiques dans une réservation à l'aide de Qiskit plugins CUDA-QPennyLane, et, à condition que le `DirectReservation` contexte soit actif lors de la création de tâches quantiques. Par exemple, avec le Qiskit-Braket fournisseur, vous pouvez exécuter des tâches comme suit.

```
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)

qpu = BraketProvider().get_backend("Forte Enterprise 1")

# run the circuit in a reservation
with DirectReservation(Devices.IonQ.ForteEnterprise1, reservation_arn="<my_reservation_arn>"):
    qpu_task = qpu.run(qc, shots=10)
```

De même, le code suivant exécute un circuit lors d'une réservation à l'aide du Braket-PennyLane plugin.

```
from braket.devices import Devices
from braket.aws import DirectReservation
import pennylane as qml


dev = qml.device("braket.aws.qubit", device_arn=Devices.IonQ.ForteEnterprise1.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.ForteEnterprise1, reservation_arn="<my_reservation_arn>"):
    probs = bell_state()
```

**Configuration manuelle du contexte de réservation**

Vous pouvez également définir manuellement le contexte de réservation à l'aide du code suivant.

```
# set reservation context 
reservation_context = DirectReservation(device, reservation_arn="<my_reservation_arn>").start()

# run circuit during reservation
task = device.run(bell, shots=100)
```

C'est idéal pour les blocs-notes Jupyter où le contexte peut être exécuté dans la première cellule et où toutes les tâches suivantes seront exécutées dans la réservation.

**Note**  
La cellule contenant l'`.start()`appel *ne doit être exécutée qu'une seule fois*. 

Pour revenir au mode à la demande : redémarrez le bloc-notes Jupyter ou appelez le numéro suivant pour revenir au mode à la demande.

```
reservation_context.stop()  # unset reservation context 
```

**Note**  
 Les réservations ont une heure de début et de fin prédéterminées (voir [Création d'une réservation](https://docs.aws.amazon.com/braket/latest/developerguide/braket-reservations.html#braket-create-a-reservation)). Les `reservation_context.stop()` méthodes `reservation_context.start()` et **ne commencent ni ne terminent une réservation**. Au lieu de cela, lorsque le contexte est actif, toutes les tâches quantiques que vous créez seront associées à votre réservation et ne seront exécutées que pendant votre réservation planifiée. Le contexte de réservation n'a aucun effet sur l'heure de réservation prévue. 

**Transmettez explicitement l'ARN de réservation lors de la création de la tâche**

Une autre méthode pour créer des tâches lors d'une réservation consiste à transmettre explicitement l'ARN de la réservation lors de l'appel`device.run()`. 

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

Cette méthode associe directement la tâche quantique à l'ARN de réservation, garantissant ainsi son exécution pendant la période réservée. Pour cette option, ajoutez l'ARN de réservation à chaque tâche que vous prévoyez d'exécuter lors d'une réservation. Notez toutefois que lorsque vous utilisez des bibliothèques tierces telles que Qiskit ouPennyLane, il peut être difficile de s'assurer que les tâches soumises utilisent le bon ARN de réservation. C'est pourquoi il est recommandé d'utiliser le gestionnaire de DirectReservation contexte. 

Lorsque vous utilisez directement boto3, transmettez l'ARN de réservation sous forme d'association lors de la création d'une tâche.

```
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)
```

# Exécution de tâches hybrides lors d'une réservation
<a name="braket-run-hybrid-jobs-with-reservation"></a>

Une fois que vous avez une fonction Python à exécuter en tant que tâche hybride, vous pouvez exécuter la tâche hybride dans une réservation en transmettant l'argument du `reservation_arn` mot clé. Toutes les tâches de la tâche hybride utilisent l'ARN de réservation. Il est important de noter que le travail hybride `reservation_arn` *n'active le calcul classique qu'une fois que votre réservation commence*. 

**Note**  
Une tâche hybride exécutée pendant une réservation *n'exécute avec succès que* des tâches quantiques sur l'appareil réservé. Toute tentative d'utilisation d'un autre appareil Braket à la demande entraînera une erreur. Si vous devez exécuter des tâches à la fois sur un simulateur à la demande et sur l'appareil réservé dans le cadre d'une même tâche hybride, `DirectReservation` utilisez-les plutôt.

Le code suivant montre comment exécuter une tâche hybride lors d'une réservation.

```
from braket.aws import AwsDevice
from braket.devices import Devices
from braket.jobs import get_job_device_arn, hybrid_job

@hybrid_job(device=Devices.IonQ.ForteEnterprise1, reservation_arn="<my_reservation_arn>")
def example_hybrid_job():
    # declare AwsDevice within the hybrid job
    device = AwsDevice(get_job_device_arn())
    bell = Circuit().h(0).cnot(0, 1)
    
    task = device.run(bell, shots=10)
```

Pour les tâches hybrides qui utilisent un script Python (voir la section sur la [création de votre premier Job hybride](https://docs.aws.amazon.com/braket/latest/developerguide/braket-jobs-first.html) dans le guide du développeur), vous pouvez les exécuter dans le cadre de la réservation en transmettant l'argument du `reservation_arn` mot clé lors de la création de la tâche.

```
from braket.aws import AwsQuantumJob 
from braket.devices import Devices

job = AwsQuantumJob.create( 
    Devices.IonQ.ForteEnterprise1,
    source_module="algorithm_script.py", 
    entry_point="algorithm_script:start_here",
    reservation_arn="<my_reservation_arn>"
)
```

# Que se passe-t-il à la fin de votre réservation
<a name="braket-end-of-reservation"></a>

Une fois votre réservation terminée, vous ne disposez plus d'un accès dédié à l'appareil. Toutes les charges de travail restantes mises en file d'attente avec cette réservation sont automatiquement annulées.

**Note**  
Toute tâche dont le `RUNNING` statut était en cours à la fin de la réservation est annulée. Nous vous recommandons d'utiliser des [points de contrôle pour enregistrer et redémarrer les](https://docs.aws.amazon.com/braket/latest/developerguide/braket-jobs-checkpoints.html) tâches à votre convenance.

Une réservation en cours, par exemple après le début et avant la fin de la réservation, ne peut pas être prolongée car chaque réservation représente un accès autonome à un appareil dédié. Par exemple, deux back-to-back réservations sont considérées comme distinctes et toutes les tâches en attente depuis la première réservation sont automatiquement annulées. Ils ne reprennent pas lors de la deuxième réservation.

**Note**  
Les réservations représentent un accès à un appareil dédié à votre AWS compte. Même si l'appareil reste inactif, aucun autre client ne peut l'utiliser. Par conséquent, vous êtes facturé pour la durée du temps réservé, quel que soit le temps utilisé.

# Annuler ou reporter une réservation existante
<a name="braket-cancel-reservation"></a>

Vous pouvez annuler votre réservation au moins 48 heures avant l'heure de début prévue de la réservation. Pour annuler, répondez à l'e-mail de confirmation de réservation que vous avez reçu avec votre demande d'annulation.

Pour replanifier, vous devez annuler votre réservation existante, puis en créer une nouvelle.