퀼(명령어 집합 아키텍처)

Quil (instruction set architecture)

Quil은 공유 양자/클래식 메모리 모델을 처음 도입한 양자 명령 집합 아키텍처입니다.Robert Smith, Michael Curtis 및 William Zeng에 의해 A Practical Quantum Instruction Set [1]Architecture에서 소개되었습니다.많은 양자 알고리즘(양자 순간이동, 양자 오류 보정, 시뮬레이션 [2][3]및 최적화 알고리즘[4] 포함)에는 공유 메모리 아키텍처가 필요합니다.퀼은 리게티컴퓨팅[5][6]포레스트 양자 프로그래밍 API를 통해 개발한 초전도 양자 프로세서를 위해 개발 중이다.Python 라이브러리 이름:pyQuil퀼 프로그램을 개발하기 위해 도입되었습니다.Quil 백엔드는 다른 양자 프로그래밍 [7][8]환경에서도 지원됩니다.

기본 양자 추상 기계

Smith, Curtis 및 Zeng이 제시한 논문에서 Quille은 튜링 기계와 유사한 Quantum Abstract Machine(QAM, 양자 추상 기계) 명령 세트를 명시하고 있으며, "실제"[1] 작업을 수행하는 데 보다 실용적입니다.QAM 상태는 6-태플 C 、 G )\ C , ' G ' , G ' , , \ 나타낼 수 있습니다.

  • {\ { \rangle}은 0 기반의 인덱싱을 사용하여 색인화된 이지만 임의의 수의 N { q}의 (양자) 상태입니다.
  • C C 0 기반 인덱싱을 사용하여 인덱싱된 N 클래식 메모리입니다.
  • { G 고정적이지만 임의의 정적 게이트 목록(Hadamard 게이트와 같은 파라미터에 의존하지 않는 양자 게이트).
  • G \ G 고정적이지만 임의적인 파라미터 목록(위상 편이 게이트와 같이 각도 파라미터를 완전히 정의해야 하는 복잡한 파라미터에 따라 달라짐)입니다.
  • 을 나타내는 일련의 Quil 명령어를 P P 는 P P됩니다.
  • \kappa 실행 다음 명령을 가리키는 정수 프로그램 . \kappa}는 항상 0th} )에서 시작하여(\P })에서 프로그램 중단을 나타냅니다(마지막 에는 P - 1(\ P 1)).프로그램 카운터는 특수 제어 흐름 지시(조건 및 무조건 점프) 및 특수 명령을 제외한 모든 지시 후에 증가합니다.HALT " P하여 프로그램을 중지하는 명령입니다.

QAM의 의미는 힐버트 공간의 텐서 곱과 그 [1]사이의 선형 맵을 사용하여 정의된다.

특징들

퀼은 매트릭스 형태로 가능한 파라메타화된 게이트를 정의하고(언어는 매트릭스가 단일한지 확인하는 방법을 포함하지 않으며, 정의된 게이트의 물리적 실현을 위해 필요한 조건이다) 큐비트에 적용할 수 있다.이 언어는 또한 가능한 매개 변수화된 양자 회로의 매크로와 같은 정의와 그 확장, 큐비트 측정 및 클래식 메모리에 결과의 기록, 기존 컴퓨터와의 동기화 및WAIT클래식 프로그램이 실행, 조건부 및 무조건 분기, 플러그마 지원 및 라이브러리로 사용할 파일 포함이 종료될 때까지 Quil 프로그램의 실행을 일시 중지하는 명령(표준 게이트 세트가 라이브러리의 하나로 제공됨)

리게티 QVM

Rigetti Computing은 정의된 Quantum Abstract Machine을 기존 컴퓨터에서 시뮬레이트하여 HTTP를 [9]통해 원격으로 실행할 수 있는 Quantum Virtual Machine을 개발했습니다.

다음 예시는 레지스터 [10][11]1을 등록하기 위해 레지스터 2큐비트를 양자 순간이동하는 데 필요한 고전적인 제어 흐름을 보여 줍니다.

# 클래식 메모리 선언 선언하다  조금[2] # 종짝 만들기 H 0 하지 않다 0 1 # 텔레포트 하지 않다 2 0 H 2 재다 2 [0] 재다 0 [1] # 측정치를 클래식하게 전달한다. 점프하지 않는 한 @건너뛰다. [1] X 1 라벨. @건너뛰다. 점프하지 않는 한 @끝. [0] Z 1 라벨. @끝. 

양자 푸리에 변환과 변이 양자 에이겐솔버의 구현 예를 이 논문에서 제시한다.

레퍼런스

  1. ^ a b c Smith, Robert S.; Curtis, Michael J.; Zeng, William J. (2016-08-10). "A Practical Quantum Instruction Set Architecture". arXiv:1608.03355 [quant-ph].
  2. ^ McClean, Jarrod R.; Romero, Jonathan; Babbush, Ryan; Aspuru-Guzik, Alán (2016-02-04). "The theory of variational hybrid quantum-classical algorithms". New Journal of Physics. 18 (2): 023023. arXiv:1509.04279. Bibcode:2016NJPh...18b3023M. doi:10.1088/1367-2630/18/2/023023. ISSN 1367-2630. S2CID 92988541.
  3. ^ Rubin, Nicholas C. (2016-10-21). "A Hybrid Classical/Quantum Approach for Large-Scale Studies of Quantum Systems with Density Matrix Embedding Theory". arXiv:1610.06910 [quant-ph].
  4. ^ Farhi, Edward; Goldstone, Jeffrey; Gutmann, Sam (2014-11-14). "A Quantum Approximate Optimization Algorithm". arXiv:1411.4028 [quant-ph].
  5. ^ "Rigetti Launches Full-Stack Quantum Computing Service and Quantum IC Fab". IEEE Spectrum: Technology, Engineering, and Science News. 26 June 2017. Retrieved 2017-07-06.
  6. ^ "Rigetti Quietly Releases Beta of Forest Platform for Quantum Programming in the Cloud Quantum Computing Report". quantumcomputingreport.com. 8 March 2017. Retrieved 2017-07-06.
  7. ^ "XACC Rigetti Accelerator". ornl-qci.github.io. Retrieved 2017-07-06.
  8. ^ Doiron, Nick (2017-03-07), jsquil: Quantum computer instructions for JavaScript developers, retrieved 2017-07-06
  9. ^ The @rigetti high-performance quantum virtual machine.: rigetti/qvm, Rigetti Computing, 2019-04-26, retrieved 2019-04-28
  10. ^ Nielsen, Michael A.; Chuang, Isaac L. (2000). Quantum Computation and Quantum Information. Cambridge University Press. p. 27. ISBN 978-0-521-63503-5.
  11. ^ Computing, Rigetti (28 May 2019). "pyQuil Documentation" (PDF). pyQuil Documentaion. Retrieved 6 June 2019.

외부 링크