QuEra Aquila를 사용하여 아날로그 프로그램 제출 - Amazon Braket

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

QuEra Aquila를 사용하여 아날로그 프로그램 제출

이 페이지에서는 QuEra의 Aquila 시스템 기능에 대한 포괄적인 설명서를 제공합니다. 여기서 다루는 세부 정보는 다음과 같습니다.

  1. Aquila가 시뮬레이션한 매개변수화된 해밀토니안

  2. AHS 프로그램 파라미터

  3. AHS 결과 내용

  4. Aquila 기능 파라미터

해밀토니안

QuEra의 Aquila 시스템은 기본적으로 다음 (시간 종속) 해밀토니안을 시뮬레이션합니다.

드라이브, 로컬 디튜닝 및 점 간 결합 항을 포함하는 시스템의 해밀토니안을 나타내는 합계가 포함된 수학 방정식입니다.
참고

로컬 디튜닝에 대한 액세스는 실험 기능이며 Braket Direct를 통해 요청하여 사용할 수 있습니다.

where

  • Hdrive,k​(t)=( 1/2 ​Ω(t)eiϕ(t)S−,k​ + 1/2 ​Ω(t)e−iϕ(t) S+,k​) + (−Δglobal​(t)nk​),

    • Ω(t)는 시간 종속 전역 구동 진폭(Rabi 주파수라고도 함)으로, 단위는 (rad/s)입니다.

    • ϕ(t)는 라디안 단위로 측정되는 시간 종속 전역 위상입니다.

    • S−,k​와 S+,k​는 원자 k의 스핀 강하 및 상승 연산자입니다(기저 상태에서 |↓⟩=|g⟩, |↑⟩=|r⟩, 이는 S​=|g⟩⟨r|, S+​=(S​)=|r⟩⟨g|).

    • Δglobal​(t)는 시간 종속 전역 디튜닝입니다.

    • nk는 원자 k의 Rydberg 상태에 대한 사영 연산자입니다(즉, n=|r⟩⟨r|).

  • Hlocal detuning,k(t)=-Δlocal(t)hknk

    • Δlocal(t)는 (rad/s) 단위로 나타낸 로컬 주파수 이동의 시간 종속 인자입니다.

    • hk는 위치 종속 인자로, 0.0에서 1.0 사이의 무차원수입니다.

  • Vvdw,k,l​=C6​/(dk,l​)6nk​nl​,

    • C6은​van der Waals 계수로, 단위는 (rad / s) * (m)^6입니다.

    • dk,l은 원자 k와 l 사이의 유클리드 거리로, 미터 단위로 측정됩니다.

사용자는 Braket AHS 프로그램 스키마를 통해 다음 파라미터를 제어할 수 있습니다.

  • 2차원 원자 배열(각 원자 k의 xk​ 및 yk​ 좌표, um 단위)로, k,l=1,2,…N으로 쌍별 원자 거리 dk,l​을 제어합니다.

  • Ω(t)는 시간 종속 전역 구동 주파수로, 단위는 (rad/s)입니다.

  • ϕ(t)는 시간 종속 전역 위상으로, 단위는 (rad)입니다.

  • Δglobal​(t)는 시간 종속 전역 디튜닝으로, 단위는 (rad/s)입니다.

  • Δlocal(t)는 로컬 디튜닝 크기의 시간 종속 (전역) 인자로, 단위는 (rad/s)입니다.

  • hk는 로컬 디튜닝 크기의 (정적) 위치 종속 인자로, 0.0에서 1.0 사이의 무차원수입니다.

참고

사용자는 관련된 수준(즉, S​,S+​, n 연산자가 고정됨)이나 Rydberg-Rydberg 상호 작용 계수(C6)의 강도를 제어할 수 없습니다.

Braket AHS 프로그램 스키마

braket.ir.ahs.program_v1.Program 객체(예제)

참고

계정에 대해 로컬 디튜닝 기능이 활성화되지 않은 경우 다음 예제에서 localDetuning=[]을 사용합니다.

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.000003')] ), pattern='uniform' ), detuning=PhysicalField( time_series=TimeSeries( values=[Decimal('-54000000.0'), Decimal('54000000.0')], times=[Decimal('0'), Decimal('0.000003')] ), 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(예제)

참고

계정에 대해 로컬 디튜닝 기능이 활성화되지 않은 경우 다음 예제에서 "localDetuning": []을 사용합니다.

{ "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.000003000] }, "pattern": "uniform" }, "detuning": { "time_series": { "values": [-54000000.0, 54000000.0], "times": [0E-9, 0.000003000] }, "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] } } ] } }
기본 필드
프로그램 필드 type description

setup.ahs_register.sites

List[List[Decimal]]

핀셋이 원자를 포획하는 2차원 좌표 목록

setup.ahs_register.filling

List[int]

트랩 위치를 차지하는 원자는 1로, 빈 위치는 0으로 표시

hamiltonian.drivingFields[].amplitude.time_series.times

List[Decimal]

구동 진폭의 시점, Omega(t)

hamiltonian.drivingFields[].amplitude.time_series.values

List[Decimal]

구동 진폭의 값, Omega(t)

hamiltonian.drivingFields[].amplitude.pattern

str

구동 진폭의 공간 패턴, Omega(t). 'uniform'이어야 함

hamiltonian.drivingFields[].phase.time_series.times

List[Decimal]

구동 위상의 시점, phi(t)

hamiltonian.drivingFields[].phase.time_series.values

List[Decimal]

구동 위상의 값, phi(t)

hamiltonian.drivingFields[].phase.pattern

str

구동 위상의 공간 패턴, phi(t). 'uniform'이어야 함

hamiltonian.drivingFields[].detuning.time_series.times

List[Decimal]

구동 디튜닝의 시점, Delta_global(t)

hamiltonian.drivingFields[].detuning.time_series.values

List[Decimal]

구동 디튜닝의 값, Delta_global(t)

hamiltonian.drivingFields[].detuning.pattern

str

구동 디튜닝의 공간 패턴, Delta_global(t). 'uniform'이어야 함

hamiltonian.localDetuning[].magnitude.time_series.times

List[Decimal]

로컬 디튜닝 크기의 시간 종속 인자의 시점, Delta_local(t)

hamiltonian.localDetuning[].magnitude.time_series.values

List[Decimal]

로컬 디튜닝 크기의 시간 종속 인자의 값, Delta_local(t)

hamiltonian.localDetuning[].magnitude.pattern

List[Decimal]

로컬 디튜닝 크기의 위치 종속 인자, h_k(값은 setup.ahs_register.sites의 위치에 해당)

메타데이터 필드
프로그램 필드 type description

braketSchemaHeader.name

str

스키마의 이름. 'braket.ir.ahs.program'이어야 함

braketSchemaHeader.version

str

스키마 버전

Braket AHS 작업 결과 스키마

braket.tasks.analog_hamiltonian_simulation_quantum_task_result.AnalogHamiltonianSimulationQuantumTaskResult(예제)

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(예제)

{ "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 } } }
기본 필드
작업 결과 필드 type description

measurements[].shotResult.preSequence

List[int]

각 샷에 대한 사전 시퀀스 측정 비트(각 원자성 위치마다 하나씩): 위치가 비어 있는 경우 0, 위치가 채워진 경우 1, 양자 진화를 실행하는 펄스 시퀀스 전에 측정됨

measurements[].shotResult.postSequence

List[int]

각 샷에 대한 사후 시퀀스 측정 비트: 원자가 Rydberg 상태에 있거나 위치가 비어 있는 경우 0, 원자가 바닥 상태에 있는 경우 1, 양자 진화를 실행하는 펄스 시퀀스 종료 시 측정됨

메타데이터 필드
작업 결과 필드 type description

braketSchemaHeader.name

str

스키마의 이름. 'braket.task_result.analog_hamiltonian_simulation_task_result'여야 함

braketSchemaHeader.version

str

스키마 버전

taskMetadata.braketSchemaHeader.name

str

스키마의 이름, ‘braket.task_result.task_metadata'여야 함

taskMetadata.braketSchemaHeader.version

str

스키마 버전

taskMetadata.id

str

양자 작업의 ID입니다.AWS양자 작업의 경우 양자 작업 ARN입니다.

taskMetadata.shots

int

양자 작업에 대한 샷 수입니다.

taskMetadata.shots.deviceId

str

양자 작업이 실행된 디바이스의 ID입니다.AWS디바이스의 경우 디바이스 ARN입니다.

taskMetadata.shots.createdAt

str

생성 타임스탬프입니다. 형식은 ISO-8601/RFC3339 문자열 형식 YYYY-MM-DDTHH:mm:ss.sssZ여야 합니다. 기본값은 '없음'입니다.

taskMetadata.shots.endedAt

str

양자 작업이 종료된 시점의 타임스탬프입니다. 형식은 ISO-8601/RFC3339 문자열 형식 YYYY-MM-DDTHH:mm:ss.sssZ여야 합니다. 기본값은 '없음'입니다.

taskMetadata.shots.status

str

양자 작업의 상태(CREATED, QUEUED, RUNNING, COMPLETED, FAILED)입니다. 기본값은 '없음'입니다.

taskMetadata.shots.failureReason

str

양자 작업의 실패 이유입니다. 기본값은 '없음'입니다.

additionalMetadata.action

braket.ir.ahs.program_v1.Program

(Braket AHS program schema 섹션 참조)

additionalMetadata.action.braketSchemaHeader.queraMetadata.name

str

스키마의 이름. 'braket.task_result.quera_metadata'여야 함

additionalMetadata.action.braketSchemaHeader.queraMetadata.version

str

스키마 버전

additionalMetadata.action.numSuccessfulShots

int

완전히 성공한 샷 수. 요청된 샷 수와 같아야 함

measurements[].shotMetadata.shotStatus

int

샷 상태(성공, 부분 성공, 실패). "성공"이어야 함

QuEra 디바이스 속성 스키마

braket.device_schema.quera.quera_device_capabilities_v1.QueraDeviceCapabilities(예제)

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(예제)

{ "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 ... } }
서비스 속성 필드
서비스 속성 필드 type description

service.executionWindows[].executionDay

ExecutionDay

실행 기간의 일 수. '매일', '평일', '주말', '월요일', '화요일', '수요일', 목요일', '금요일', '토요일' 또는 '일요일'이어야 함

service.executionWindows[].windowStartHour

datetime.time

실행 기간이 시작되는 시간의 UTC 24시간 형식

service.executionWindows[].windowEndHour

datetime.time

실행 기간이 종료되는 시간의 UTC 24시간 형식

service.qpu_capabilities.service.shotsRange

Tuple[int, int]

디바이스의 최소 및 최대 샷 수

service.qpu_capabilities.service.deviceCost.price

실수

미국 달러 기준 디바이스 요금

service.qpu_capabilities.service.deviceCost.unit

str

요금 청구 단위, 예: '분', '시간', '샷', '작업'

메타데이터 필드
메타데이터 필드 type description

action[].version

str

AHS 프로그램 스키마 버전

action[].actionType

ActionType

AHS 프로그램 스키마 이름. 'braket.ir.ahs.program'이어야 함

service.braketSchemaHeader.name

str

스키마의 이름. 'braket.device_schema.device_service_properties'여야 함

service.braketSchemaHeader.version

str

스키마 버전

service.deviceDocumentation.imageUrl

str

디바이스 이미지의 URL

service.deviceDocumentation.summary

str

디바이스에 대한 간략한 설명

service.deviceDocumentation.externalDocumentationUrl

str

외부 설명서 URL

service.deviceLocation

str

디바이스의 지리적 위치

service.updatedAt

datetime

디바이스 속성이 마지막으로 업데이트된 시간