Exemple : Soumission d'une tâche quantique à un QPU - Amazon Braket

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.

Exemple : Soumission d'une tâche quantique à un QPU

Amazon Braket vous permet d'exécuter un circuit quantique sur un appareil QPU. L'exemple suivant montre comment soumettre une tâche quantique à Rigetti or IonQ appareils.

Choisissez le Rigetti Ankaa-3 appareil, puis regardez le graphique de connectivité associé

# import the QPU module from braket.aws import AwsDevice # choose the Rigetti device device = AwsDevice("arn:aws:braket:us-west-1::device/qpu/rigetti/Ankaa-3") # take a look at the device connectivity graph device.properties.dict()['paradigm']['connectivity']
{'fullyConnected': False, 'connectivityGraph': {'0': ['1', '7'], '1': ['0', '2', '8'], '2': ['1', '3', '9'], '3': ['2', '4', '10'], '4': ['3', '5', '11'], '5': ['4', '6', '12'], '6': ['5', '13'], '7': ['0', '8', '14'], '8': ['1', '7', '9', '15'], '9': ['2', '8', '10', '16'], '10': ['3', '9', '11', '17'], '11': ['4', '10', '12', '18'], '12': ['5', '11', '13', '19'], '13': ['6', '12', '20'], '14': ['7', '15', '21'], '15': ['8', '14', '22'], '16': ['9', '17', '23'], '17': ['10', '16', '18', '24'], '18': ['11', '17', '19', '25'], '19': ['12', '18', '20', '26'], '20': ['13', '19', '27'], '21': ['14', '22', '28'], '22': ['15', '21', '23', '29'], '23': ['16', '22', '24', '30'], '24': ['17', '23', '25', '31'], '25': ['18', '24', '26', '32'], '26': ['19', '25', '33'], '27': ['20', '34'], '28': ['21', '29', '35'], '29': ['22', '28', '30', '36'], '30': ['23', '29', '31', '37'], '31': ['24', '30', '32', '38'], '32': ['25', '31', '33', '39'], '33': ['26', '32', '34', '40'], '34': ['27', '33', '41'], '35': ['28', '36', '42'], '36': ['29', '35', '37', '43'], '37': ['30', '36', '38', '44'], '38': ['31', '37', '39', '45'], '39': ['32', '38', '40', '46'], '40': ['33', '39', '41', '47'], '41': ['34', '40', '48'], '42': ['35', '43', '49'], '43': ['36', '42', '44', '50'], '44': ['37', '43', '45', '51'], '45': ['38', '44', '46', '52'], '46': ['39', '45', '47', '53'], '47': ['40', '46', '48', '54'], '48': ['41', '47', '55'], '49': ['42', '56'], '50': ['43', '51', '57'], '51': ['44', '50', '52', '58'], '52': ['45', '51', '53', '59'], '53': ['46', '52', '54'], '54': ['47', '53', '55', '61'], '55': ['48', '54', '62'], '56': ['49', '57', '63'], '57': ['50', '56', '58', '64'], '58': ['51', '57', '59', '65'], '59': ['52', '58', '60', '66'], '60': ['59'], '61': ['54', '62', '68'], '62': ['55', '61', '69'], '63': ['56', '64', '70'], '64': ['57', '63', '65', '71'], '65': ['58', '64', '66', '72'], '66': ['59', '65', '67'], '67': ['66', '68'], '68': ['61', '67', '69', '75'], '69': ['62', '68', '76'], '70': ['63', '71', '77'], '71': ['64', '70', '72', '78'], '72': ['65', '71', '73', '79'], '73': ['72', '80'], '75': ['68', '76', '82'], '76': ['69', '75', '83'], '77': ['70', '78'], '78': ['71', '77', '79'], '79': ['72', '78', '80'], '80': ['73', '79', '81'], '81': ['80', '82'], '82': ['75', '81', '83'], '83': ['76', '82']}}

Le dictionnaire précédent connectivityGraph répertorie les qubits voisins pour chaque qubit du Rigetti appareil.

Choisissez le IonQ Aria-1 appareil

Pour IonQ Aria-1 appareil, le connectivityGraph est vide, comme indiqué dans l'exemple suivant, car le périphérique offre une all-to-allconnectivité. Par conséquent, un détail n'connectivityGraphest pas nécessaire.

# or choose the IonQ Aria-1 device device = AwsDevice("arn:aws:braket:us-east-1::device/qpu/ionq/Aria-1") # take a look at the device connectivity graph device.properties.dict()['paradigm']['connectivity']
{'fullyConnected': True, 'connectivityGraph': {}}

Comme le montre l'exemple suivant, vous avez la possibilité de régler le shots (par défaut = 1000), le poll_timeout_seconds (par défaut = 432000 = 5 jours), le poll_interval_seconds (par défaut = 1) et l'emplacement du compartiment S3 (s3_location) où vos résultats seront stockés si vous choisissez de spécifier un emplacement autre que le compartiment par défaut.

my_task = device.run(circ, s3_location = 'amazon-braket-my-folder', shots=100, poll_timeout_seconds = 100, poll_interval_seconds = 10)

Le IonQ and Rigetti les appareils compilent automatiquement le circuit fourni dans leurs ensembles de portes natifs respectifs, et ils cartographient le résumé qubit indices physiques qubits sur le QPU correspondant.

Note

Les appareils QPU ont une capacité limitée. Vous pouvez vous attendre à des temps d'attente plus longs lorsque la capacité sera atteinte.

Amazon Braket peut exécuter des tâches quantiques QPU dans certaines fenêtres de disponibilité, mais vous pouvez toujours soumettre des tâches quantiques à tout moment (24 heures sur 24, 7 jours sur 7) car toutes les données et métadonnées correspondantes sont stockées de manière fiable dans le compartiment S3 approprié. Comme indiqué dans la section suivante, vous pouvez récupérer votre tâche quantique à l'aide AwsQuantumTask de votre identifiant unique de tâche quantique.