Running Braket hybrid jobs in your own container
To create a hybrid job with your own container, call AwsQuantumJob.create() with the argument
image_uri specified. You can use a QPU, an on-demand simulator, or run your code locally on the
classical processor available with Braket Hybrid Jobs. We recommend testing your code out on a simulator
like SV1, DM1, or TN1 before running on a real QPU.
To run your code on the classical processor, specify the instanceType and the instanceCount
you use by updating the InstanceConfig. Note that if you specify an instance_count > 1,
you need to make sure that your code can run across multiple hosts. The upper limit for the number of
instances you can choose is 5. For example:
job = AwsQuantumJob.create( source_module="source_dir", entry_point="source_dir.algorithm_script:start_here", image_uri="111122223333.dkr.ecr.us-west-2.amazonaws.com/my-byoc-container:latest", instance_config=InstanceConfig(instanceType="ml.p3.8xlarge", instanceCount=3), device="local:braket/braket.local.qubit", # ...)
Note
Use the device ARN to track the simulator you used as hybrid job metadata.
Acceptable values must follow the format device = "local:<provider>/<simulator_name>".
Remember that <provider> and <simulator_name> must consist only of letters,
numbers, _, -, and . . The string is limited to 256 characters.
If you plan to use BYOC and you're not using the Braket SDK to create quantum tasks, you should pass the
value of the environmental variable AMZN_BRAKET_JOB_TOKEN to the jobToken parameter
in the CreateQuantumTask request. If you don't, the quantum tasks don't get priority and
are billed as regular standalone quantum tasks.