Running hybrid jobs during a reservation
Once you have a Python function to run as a
hybrid job, you can run the hybrid job in a reservation by passing the reservation_arn
keyword argument. All the tasks within the hybrid job use the reservation ARN. Importantly, the hybrid
job with reservation_arn
only spins up the classical compute once your reservation starts.
Note
A hybrid job running during a reservation only successfully runs quantum tasks on the reserved
device. Attempting to use a different on-demand Braket device will result in an error. If you need
to run tasks on both an on-demand simulator and the reserved device within the same hybrid job,
use DirectReservation
instead.
The following code demonstrates how to run a hybrid job during a reservation.
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.Aria1, 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)
For hybrid jobs that use a Python script (see the section on
Creating your first Hybrid Job in the developer guide),
you can run them within the reservation by passing the reservation_arn
keyword argument when creating the job.
from braket.aws import AwsQuantumJob from braket.devices import Devices job = AwsQuantumJob.create( Devices.IonQ.Aria1, source_module="algorithm_script.py", entry_point="algorithm_script:start_here", reservation_arn="<my_reservation_arn>" )