Soumettre un programme analogique en utilisant QuEra's Aquila - 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.

Soumettre un programme analogique en utilisant QuEra's Aquila

Cette page fournit une documentation complète sur les fonctionnalités du Aquila machine de QuEra. Les détails abordés ici sont les suivants : 1) L'hamiltonien paramétré simulé par Aquila, 2) paramètres AHS du programme, 3) contenu du AHS résultat, 4) Aquila paramètre de capacités. Nous vous conseillons d'utiliser la fonction de recherche textuelle sur Ctrl+F pour trouver les paramètres correspondant à vos questions.

hamiltonien

Le Aquila machine de QuEra simule nativement l'hamiltonien suivant (dépendant du temps) :

Équation mathématique avec des sommations représentant l'hamiltonien d'un système, impliquant des termes d'entraînement, de désaccordage local et de couplage interpoints.
Note

L'accès au désaccordage local est une fonctionnalité expérimentale et est disponible sur demande via Braket Direct.

  • H drive,k (t) = (1/2Ω (t) e iφ (t) S −,k + 1/2Ω (t) e −iφ (t) S) + (−Δ global (t+,k​) n), k

    • Ω (t) est l'amplitude de conduite globale en fonction du temps (également appelée fréquence de Rabi), en unités de (rad/s)

    • φ (t) est la phase globale dépendante du temps, mesurée en radians

    • S −,k​ et S +,k sont les opérateurs d'abaissement et d'augmentation du spin de l'atome k (dans la base |↓⟩=|g⟩, |↑=|r⟩, ce sont S =|g⟨r|, S =( S) † =|r⟨g|) +

    • Δ global (t) est le déréglage global dépendant du temps

    • n k est l'opérateur de projection sur l'état de Rydberg de l'atome k (c'est-à-dire n=|r⟨r|)

  • H local detuning,k (t) =-Δ local (t) h n k k

    • Δ local (t) est le facteur dépendant du temps du décalage de fréquence local, en unités de (rad/s)

    • h k est le facteur dépendant du site, un nombre sans dimension compris entre 0,0 et 1,0

  • V vdw,k,l = C6​/(dk,l) 6 n k n, l

    • C 6 est le coefficient de van der Waals, en unités de (rad/s) * (m) ^6

    • d k,l est la distance euclidienne entre l'atome k et l, mesurée en mètres.

Les utilisateurs peuvent contrôler les paramètres suivants via le schéma du AHS programme Braket.

  • Arrangement bidimensionnel des atomes (kcoordonnées x k et y de chaque atome k, en unités de µm), qui contrôle les distances atomiques par paires d k,l​ avec k, l=1,2,... N

  • Ω (t), fréquence globale de Rabi dépendante du temps, en unités de (rad/s)

  • φ (t), phase globale dépendante du temps, en unités de (rad)

  • Δ global (t), le désaccordage global dépendant du temps, en unités de (rad/s)

  • Δ local (t), le facteur (global) dépendant du temps de l'ampleur du déréglage local, en unités de (rad/s)

  • hk, le facteur (statique) dépendant du site de l'ampleur du déréglage local, un nombre adimensionnel compris entre 0,0 et 1,0

Note

L'utilisateur ne peut pas contrôler les niveaux concernés (c'est-à-dire que les opérateurs S, S+​, n sont fixes) ni la force du coefficient d'interaction Rydberg-Rydberg (C). 6

Schéma du AHS programme Braket

Objet Braket.IR.AHS.Program_V1.program (exemple)

Program( braketSchemaHeader=BraketSchemaHeader( name='braket.ir.ahs.program', version='1' ), setup=Setup( ahs_register=AtomArrangement( sites=[ [Decimal('0'), Decimal('0')], [Decimal('0'), Decimal('4e-6')], [Decimal('4e-6'), Decimal('0')], ], filling=[1, 1, 1] ) ), hamiltonian=Hamiltonian( drivingFields=[ DrivingField( amplitude=PhysicalField( time_series=TimeSeries( values=[Decimal('0'), Decimal('15700000.0'), Decimal('15700000.0'), Decimal('0')], times=[Decimal('0'), Decimal('0.000001'), Decimal('0.000002'), Decimal('0.000003')] ), pattern='uniform' ), phase=PhysicalField( time_series=TimeSeries( values=[Decimal('0'), Decimal('0')], times=[Decimal('0'), Decimal('0.000001')] ), pattern='uniform' ), detuning=PhysicalField( time_series=TimeSeries( values=[Decimal('-54000000.0'), Decimal('54000000.0')], times=[Decimal('0'), Decimal('0.000001')] ), pattern='uniform' ) ) ], localDetuning=[ LocalDetuning( magnitude=PhysicalField( times_series=TimeSeries( values=[Decimal('0'), Decimal('25000000.0'), Decimal('25000000.0'), Decimal('0')], times=[Decimal('0'), Decimal('0.000001'), Decimal('0.000002'), Decimal('0.000003')] ), pattern=Pattern([Decimal('0.8'), Decimal('1.0'), Decimal('0.9')]) ) ) ] ) )

JSON(exemple)

{ "braketSchemaHeader": { "name": "braket.ir.ahs.program", "version": "1" }, "setup": { "ahs_register": { "sites": [ [0E-7, 0E-7], [0E-7, 4E-6], [4E-6, 0E-7], ], "filling": [1, 1, 1] } }, "hamiltonian": { "drivingFields": [ { "amplitude": { "time_series": { "values": [0.0, 15700000.0, 15700000.0, 0.0], "times": [0E-9, 0.000001000, 0.000002000, 0.000003000] }, "pattern": "uniform" }, "phase": { "time_series": { "values": [0E-7, 0E-7], "times": [0E-9, 0.000001000] }, "pattern": "uniform" }, "detuning": { "time_series": { "values": [-54000000.0, 54000000.0], "times": [0E-9, 0.000001000] }, "pattern": "uniform" } } ], "localDetuning": [ { "magnitude": { "time_series": { "values": [0.0, 25000000.0, 25000000.0, 0.0], "times": [0E-9, 0.000001000, 0.000002000, 0.000003000] }, "pattern": [0.8, 1.0, 0.9] } } ] } }
Principaux domaines
Champ du programme type description

setup.ahs_register.sites

Liste [Liste [Décimal]]

Liste des coordonnées bidimensionnelles où la pince à épiler piège les atomes

setup.ahs_register.filling

Liste [int]

Marque les atomes qui occupent les sites piégés avec 1 et les sites vides avec 0

hamiltonien. drivingFields[] .amplitude.time_series.times

Liste [décimale]

points temporels de l'amplitude de conduite, Omega (t)

hamiltonien. drivingFields[] .amplitude.time_series.values

Liste [décimale]

valeurs de l'amplitude de conduite, Omega (t)

hamiltonien. drivingFields[] .amplitude.modèle

str

schéma spatial de l'amplitude de conduite, Omega (t) ; doit être « uniforme »

hamiltonien. drivingFields[] .phase.time_series.times

Liste [décimale]

points temporels de la phase de conduite, phi (t)

hamiltonien. drivingFields[] .phase.time_series.values

Liste [décimale]

valeurs de la phase de conduite, phi (t)

hamiltonien. drivingFields[] .phase.pattern

str

schéma spatial de la phase de conduite, phi (t) ; doit être « uniforme »

hamiltonien. drivingFields[] .detuning.time_series.times

Liste [décimale]

points temporels du désaccordage de conduite, Delta_global (t)

hamiltonien. drivingFields[] .detuning.time_series.values

Liste [décimale]

valeurs du désaccordage de conduite, Delta_global (t)

hamiltonien. drivingFields[] .detuning.pattern

str

schéma spatial de désaccordage de conduite, Delta_global (t) ; doit être « uniforme »

hamiltonien. localDetuning[] .magnitude.time_series.times

Liste [décimale]

points temporels du facteur dépendant du temps de l'amplitude de déréglage locale, Delta_local (t)

hamiltonien. localDetuning[] .magnitude.time_series.values

Liste [décimale]

valeurs du facteur dépendant du temps de l'amplitude de déréglage locale, Delta_local (t)

hamiltonien. localDetuning[] .magnitude.motif

Liste [décimale]

facteur dépendant du site de l'amplitude du déréglage local, h_k (les valeurs correspondent aux sites dans setup.ahs_register.sites)

Champs de métadonnées
Champ du programme type description

braketSchemaHeader.nom

str

nom du schéma ; doit être « braket.ir.ahs.program »

braketSchemaHeader.version

str

version du schéma

Schéma des résultats des AHS tâches Braket

braket.tasks.analog_hamiltonian_simulation_quantum_task_result. AnalogHamiltonianSimulationQuantumTaskResult(exemple)

AnalogHamiltonianSimulationQuantumTaskResult( task_metadata=TaskMetadata( braketSchemaHeader=BraketSchemaHeader( name='braket.task_result.task_metadata', version='1' ), id='arn:aws:braket:us-east-1:123456789012:quantum-task/12345678-90ab-cdef-1234-567890abcdef', shots=2, deviceId='arn:aws:braket:us-east-1::device/qpu/quera/Aquila', deviceParameters=None, createdAt='2022-10-25T20:59:10.788Z', endedAt='2022-10-25T21:00:58.218Z', status='COMPLETED', failureReason=None ), measurements=[ ShotResult( status=<AnalogHamiltonianSimulationShotStatus.SUCCESS: 'Success'>, pre_sequence=array([1, 1, 1, 1]), post_sequence=array([0, 1, 1, 1]) ), ShotResult( status=<AnalogHamiltonianSimulationShotStatus.SUCCESS: 'Success'>, pre_sequence=array([1, 1, 0, 1]), post_sequence=array([1, 0, 0, 0]) ) ] )

JSON(exemple)

{ "braketSchemaHeader": { "name": "braket.task_result.analog_hamiltonian_simulation_task_result", "version": "1" }, "taskMetadata": { "braketSchemaHeader": { "name": "braket.task_result.task_metadata", "version": "1" }, "id": "arn:aws:braket:us-east-1:123456789012:quantum-task/12345678-90ab-cdef-1234-567890abcdef", "shots": 2, "deviceId": "arn:aws:braket:us-east-1::device/qpu/quera/Aquila", "createdAt": "2022-10-25T20:59:10.788Z", "endedAt": "2022-10-25T21:00:58.218Z", "status": "COMPLETED" }, "measurements": [ { "shotMetadata": {"shotStatus": "Success"}, "shotResult": { "preSequence": [1, 1, 1, 1], "postSequence": [0, 1, 1, 1] } }, { "shotMetadata": {"shotStatus": "Success"}, "shotResult": { "preSequence": [1, 1, 0, 1], "postSequence": [1, 0, 0, 0] } } ], "additionalMetadata": { "action": {...} "queraMetadata": { "braketSchemaHeader": { "name": "braket.task_result.quera_metadata", "version": "1" }, "numSuccessfulShots": 100 } } }
Principaux domaines
Champ de résultat de la tâche type description

mesures []. shotResult. preSequence

Liste [int]

Bits de mesure de pré-séquence (un pour chaque site atomique) pour chaque tir : 0 si le site est vide, 1 si le site est plein, mesurés avant les séquences d'impulsions qui exécutent l'évolution quantique

mesures []. shotResult. postSequence

Liste [int]

Bits de mesure post-séquence pour chaque tir : 0 si l'atome est dans l'état de Rydberg ou si le site est vide, 1 si l'atome est dans l'état fondamental, mesurés à la fin des séquences d'impulsions qui exécutent l'évolution quantique

Champs de métadonnées
Champ de résultat de la tâche type description

braketSchemaHeader.nom

str

nom du schéma ; doit être « braket.task_result.analog_hamiltonian_simulation_task_result »

braketSchemaHeader.version

str

version du schéma

taskMetadata. braketSchemaHeader.nom

str

nom du schéma ; doit être « braket.task_result.task_metadata »

taskMetadata. braketSchemaHeader.version

str

version du schéma

taskMetadata.id

str

L'identifiant de la tâche quantique. Dans AWS tâches quantiques, c'est la tâche quantiqueARN.

taskMetadata.photos

int

Le nombre de tirs pour la tâche quantique

taskMetadata.photos. deviceId

str

L'identifiant de l'appareil sur lequel la tâche quantique s'est exécutée. Dans AWS appareils, c'est l'appareilARN.

taskMetadata.photos. createdAt

str

Horodatage de la création ; le format doit être au format ISO -8601/ RFC3339 chaîne -MM-:MM:SS.sssz. YYYY DDTHH La valeur par défaut est None.

taskMetadata.photos. endedAt

str

Horodatage de la fin de la tâche quantique ; le format doit être au format ISO -8601/ RFC3339 chaîne -MM-:MM:SS.sssz. YYYY DDTHH La valeur par défaut est None.

taskMetadata.prises de vue .status

str

État de la tâche quantique (CREATED,QUEUED,RUNNING,COMPLETED,FAILED). La valeur par défaut est None.

taskMetadata.photos. failureReason

str

La raison de l'échec de la tâche quantique. La valeur par défaut est None.

additionalMetadata.action

Braket.IR.AHS.Program_V.1

(Voir la section Schéma du AHS programme Braket)

additionalMetadata.action. braketSchemaHeader. queraMetadata.nom

str

nom du schéma ; doit être « braket.task_result.quera_metadata »

additionalMetadata.action. braketSchemaHeader. queraMetadata.version

str

version du schéma

additionalMetadata.action. numSuccessfulShots

int

nombre de prises complètement réussies ; doit être égal au nombre de prises demandé

mesures []. shotMetadata. shotStatus

int

Le statut du tir (succès, succès partiel, échec) doit être « Succès »

QuEra schéma des propriétés de l'appareil

braket.device_schema.quera.quera_device_capabilities_v1. QueraDeviceCapabilities(exemple)

QueraDeviceCapabilities( service=DeviceServiceProperties( braketSchemaHeader=BraketSchemaHeader( name='braket.device_schema.device_service_properties', version='1' ), executionWindows=[ DeviceExecutionWindow( executionDay=<ExecutionDay.MONDAY: 'Monday'>, windowStartHour=datetime.time(1, 0), windowEndHour=datetime.time(23, 59, 59) ), DeviceExecutionWindow( executionDay=<ExecutionDay.TUESDAY: 'Tuesday'>, windowStartHour=datetime.time(0, 0), windowEndHour=datetime.time(12, 0) ), DeviceExecutionWindow( executionDay=<ExecutionDay.WEDNESDAY: 'Wednesday'>, windowStartHour=datetime.time(0, 0), windowEndHour=datetime.time(12, 0) ), DeviceExecutionWindow( executionDay=<ExecutionDay.FRIDAY: 'Friday'>, windowStartHour=datetime.time(0, 0), windowEndHour=datetime.time(23, 59, 59) ), DeviceExecutionWindow( executionDay=<ExecutionDay.SATURDAY: 'Saturday'>, windowStartHour=datetime.time(0, 0), windowEndHour=datetime.time(23, 59, 59) ), DeviceExecutionWindow( executionDay=<ExecutionDay.SUNDAY: 'Sunday'>, windowStartHour=datetime.time(0, 0), windowEndHour=datetime.time(12, 0) ) ], shotsRange=(1, 1000), deviceCost=DeviceCost( price=0.01, unit='shot' ), deviceDocumentation= DeviceDocumentation( imageUrl='https://a.b.cdn.console.awsstatic.com/59534b58c709fc239521ef866db9ea3f1aba73ad3ebcf60c23914ad8c5c5c878/a6cfc6fca26cf1c2e1c6.png', summary='Analog quantum processor based on neutral atom arrays', externalDocumentationUrl='https://www.quera.com/aquila' ), deviceLocation='Boston, USA', updatedAt=datetime.datetime(2024, 1, 22, 12, 0, tzinfo=datetime.timezone.utc), getTaskPollIntervalMillis=None ), action={ <DeviceActionType.AHS: 'braket.ir.ahs.program'>: DeviceActionProperties( version=['1'], actionType=<DeviceActionType.AHS: 'braket.ir.ahs.program'> ) }, deviceParameters={}, braketSchemaHeader=BraketSchemaHeader( name='braket.device_schema.quera.quera_device_capabilities', version='1' ), paradigm=QueraAhsParadigmProperties( ... # See https://github.com/amazon-braket/amazon-braket-schemas-python/blob/main/src/braket/device_schema/quera/quera_ahs_paradigm_properties_v1.py ... ) )

JSON(exemple)

{ "service": { "braketSchemaHeader": { "name": "braket.device_schema.device_service_properties", "version": "1" }, "executionWindows": [ { "executionDay": "Monday", "windowStartHour": "01:00:00", "windowEndHour": "23:59:59" }, { "executionDay": "Tuesday", "windowStartHour": "00:00:00", "windowEndHour": "12:00:00" }, { "executionDay": "Wednesday", "windowStartHour": "00:00:00", "windowEndHour": "12:00:00" }, { "executionDay": "Friday", "windowStartHour": "00:00:00", "windowEndHour": "23:59:59" }, { "executionDay": "Saturday", "windowStartHour": "00:00:00", "windowEndHour": "23:59:59" }, { "executionDay": "Sunday", "windowStartHour": "00:00:00", "windowEndHour": "12:00:00" } ], "shotsRange": [ 1, 1000 ], "deviceCost": { "price": 0.01, "unit": "shot" }, "deviceDocumentation": { "imageUrl": "https://a.b.cdn.console.awsstatic.com/59534b58c709fc239521ef866db9ea3f1aba73ad3ebcf60c23914ad8c5c5c878/a6cfc6fca26cf1c2e1c6.png", "summary": "Analog quantum processor based on neutral atom arrays", "externalDocumentationUrl": "https://www.quera.com/aquila" }, "deviceLocation": "Boston, USA", "updatedAt": "2024-01-22T12:00:00+00:00" }, "action": { "braket.ir.ahs.program": { "version": [ "1" ], "actionType": "braket.ir.ahs.program" } }, "deviceParameters": {}, "braketSchemaHeader": { "name": "braket.device_schema.quera.quera_device_capabilities", "version": "1" }, "paradigm": { ... # See Aquila device page > "Calibration" tab > "JSON" page ... } }
Champs des propriétés du service
Champ des propriétés du service type description

service. executionWindows[]. executionDay

ExecutionDay

Jours de la fenêtre d'exécution ; doivent être « Tous les jours », « Jours de semaine », « Week-end », « lundi », « mardi », « mercredi », « jeudi », « vendredi », « samedi » ou « dimanche »

service. executionWindows[]. windowStartHour

datetime.heure

UTCFormat de 24 heures indiquant l'heure de début de la fenêtre d'exécution

service. executionWindows[]. windowEndHour

datetime.heure

UTCFormat de 24 heures indiquant l'heure de fin de la fenêtre d'exécution

service.qpu_capabilities.service. shotsRange

Tuple [int, int]

Nombre minimum et maximum de prises de vue pour l'appareil

service.qpu_capabilities.service. deviceCost.prix

float

Prix de l'appareil en dollars américains

service.qpu_capabilities.service. deviceCost.unité

str

unité pour facturer le prix, par exemple : « minute », « heure », « shot », « task »

Champs de métadonnées
Champ de métadonnées type description

action [] .version

str

version du schéma AHS du programme

action []. actionType

ActionType

AHSnom du schéma du programme ; doit être « braket.ir.ahs.program »

service. braketSchemaHeader.nom

str

nom du schéma ; doit être « braket.device_schema.device_service_properties »

service. braketSchemaHeader.version

str

version du schéma

service. deviceDocumentation. imageUrl

str

URLpour l'image de l'appareil

service. deviceDocumentation.résumé

str

brève description de l'appareil

service. deviceDocumentation. externalDocumentationUrl

str

documentation externe URL

service. deviceLocation

str

emplacement géographique de l'appareil

service. updatedAt

datetime

heure à laquelle les propriétés de l'appareil ont été mises à jour pour la dernière fois