KR20230006867A - 비동기식 양자 정보 처리 - Google Patents

비동기식 양자 정보 처리 Download PDF

Info

Publication number
KR20230006867A
KR20230006867A KR1020227040968A KR20227040968A KR20230006867A KR 20230006867 A KR20230006867 A KR 20230006867A KR 1020227040968 A KR1020227040968 A KR 1020227040968A KR 20227040968 A KR20227040968 A KR 20227040968A KR 20230006867 A KR20230006867 A KR 20230006867A
Authority
KR
South Korea
Prior art keywords
quantum
parameter set
program
qipu
parameters
Prior art date
Application number
KR1020227040968A
Other languages
English (en)
Inventor
윌리엄 조셉 젱
Original Assignee
골드만 삭스 앤드 코. 엘엘씨
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 골드만 삭스 앤드 코. 엘엘씨 filed Critical 골드만 삭스 앤드 코. 엘엘씨
Publication of KR20230006867A publication Critical patent/KR20230006867A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N10/00Quantum computing, i.e. information processing based on quantum-mechanical phenomena
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N10/00Quantum computing, i.e. information processing based on quantum-mechanical phenomena
    • G06N10/20Models of quantum computing, e.g. quantum circuits or universal quantum computers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N10/00Quantum computing, i.e. information processing based on quantum-mechanical phenomena
    • G06N10/60Quantum algorithms, e.g. based on quantum optimisation, quantum Fourier or Hadamard transforms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N10/00Quantum computing, i.e. information processing based on quantum-mechanical phenomena
    • G06N10/70Quantum error correction, detection or prevention, e.g. surface codes or magic state distillation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N10/00Quantum computing, i.e. information processing based on quantum-mechanical phenomena
    • G06N10/80Quantum programming, e.g. interfaces, languages or software-development kits for creating or handling programs capable of running on quantum computers; Platforms for simulating or accessing quantum computers, e.g. cloud-based quantum computing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N7/00Computing arrangements based on specific mathematical models
    • G06N7/01Probabilistic graphical models, e.g. probabilistic networks
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B82NANOTECHNOLOGY
    • B82YSPECIFIC USES OR APPLICATIONS OF NANOSTRUCTURES; MEASUREMENT OR ANALYSIS OF NANOSTRUCTURES; MANUFACTURE OR TREATMENT OF NANOSTRUCTURES
    • B82Y10/00Nanotechnology for information processing, storage or transmission, e.g. quantum computing or single electron logic

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Artificial Intelligence (AREA)
  • Mathematical Physics (AREA)
  • Evolutionary Computation (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computational Mathematics (AREA)
  • Condensed Matter Physics & Semiconductors (AREA)
  • Algebra (AREA)
  • Probability & Statistics with Applications (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Medical Informatics (AREA)
  • Complex Calculations (AREA)
  • Superconductor Devices And Manufacturing Methods Thereof (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Holo Graphy (AREA)

Abstract

양자 알고리즘을 구현하는 비동기식 접근법은 양자 정보 처리 유닛(QIPU)의 데드 타임을 감소시킬 수 있다. 양자 프로그램에 대한 다수의 파라미터 세트가 컨트롤러에 의해 결정되고, QIPU는 파라미터 세트에 대한 양자 프로그램을 실행하도록 지시받는다. 각 프로그램 실행의 결과는 컨트롤러에 반환된다. 하나 이상의 결과가 수신된 후, 컨트롤러가 업데이트된 파라미터 세트를 결정하는 동안 QIPU는 나머지 파라미터 세트에 대한 양자 프로그램을 계속 실행한다. QIPU는 (예컨대, 즉시, 현재 프로그램 실행 후, 또는 나머지 파라미터 세트가 처리된 후) 업데이트된 파라미터 세트에 대한 양자 프로그램을 실행하도록 지시받는다. 이러한 비동기식 접근법은 QIPU에 데드 타임이 거의 없거나 전혀 없도록 할 수 있으므로, QIPU를 보다 효율적으로 사용하게 할 수 있다.

Description

비동기식 양자 정보 처리
본 출원은 35 U.S.C. §119(e)에 따라 2020년 4월 22일에 "비동기식 양자 정보 처리"라는 명칭으로 출원된 미국 임시 특허 출원 번호 제63/014,066호에 대한 우선권을 주장하며, 이러한 미국 임시 특허 출원은 그 전체내용이 본원에 참고로 포함된다.
기술된 발명은 일반적으로 양자 컴퓨팅에 관한 것으로, 특히 양자 정보 처리를 위한 비동기식 접근법에 관한 것이다.
양자 알고리즘은 고전적 컴퓨팅 연산(computation)에 의해 함께 연결된 많은 양자 회로를 포함할 수 있다. 결과적으로, 최신 양자 정보 처리에는 양자 프로세서와 다른 컴퓨트 유닛, 예컨대, CPU, GPU, FPGA, 또는 다른 디지털 또는 아날로그 프로세서 간의 통신이 포함될 수 있다. 전체 양자 알고리즘(full quantum algorithm)은 양자 프로세서와 고전적 컴퓨트 사이에서 하이브리드 실행을 수행할 수 있다. 하이브리드 알고리즘의 예는 (i) 변동 양자 알고리즘(variational quantum algorithm)(예를 들어, 변동 양자 아이겐솔버, 양자 근사 알고리즘, 또는 다양한 양자 머신 학습 방법), (ii) 양자 오류 정정, (iii) 연합 양자 학습, 및 기타 용도를 포함한다.
양자 알고리즘을 구현하기 위한 직렬 방법은 양자 프로그램에 대한 제1 파라미터 세트를 연산하는 컨트롤러와 제1 파라미터 세트를 사용하여 양자 프로그램을 실행하는 양자 정보 처리 유닛(quantum information processing unit, QIPU)을 포함할 수 있다(QIPU의 예는 양자 처리 유닛(quantum processing unit, QPU), 양자 센서, QPU 네트워크, 또는 양자 센서 네트워크를 포함한다). 컨트롤러는 실행 결과를 수신하고, 결과에 기반하여 업데이트된 파라미터 세트를 결정한다. QIPU는 업데이트된 파라미터 세트로 양자 프로그램을 실행하도록 지시받는다. 이 프로세스는 종료 조건이 충족될 때까지 반복될 수 있다(예컨대, 솔루션이 수렴된다). 업데이트된 파라미터 세트가 결정되는 동안 QIPU는 유휴 상태를 유지할 수 있다.
실시예는 QIPU의 데드 타임(dead time)이 감소되거나 제거되는 양자 알고리즘을 구현하는 비동기식 방법에 관한 것이다. 양자 프로그램에 대한 다수의 파라미터 세트가 결정되고, QIPU는 각 파라미터 세트에 대한 양자 프로그램을 실행하도록 지시받는다. 각 프로그램 실행으로부터의 개별 결과 또는 집성 결과(예컨대, 기대값)는 컨트롤러에 반환될 수 있다. 하나 이상의 결과가 수신된 후, 컨트롤러가 업데이트된 파라미터 세트를 결정하는 동안 QIPU는 나머지 파라미터 세트에 대한 양자 프로그램을 계속 실행한다. 그 후 QIPU는 (예컨대, 즉시, 현재 프로그램 실행 후, 또는 나머지 파라미터 세트가 처리된 후) 업데이트된 파라미터 세트에 대한 양자 프로그램을 실행하도록 지시받는다. 이러한 비동기식 방법은 QIPU에 데드 타임이 거의 없거나 전혀 없도록 하므로, QIPU를 보다 효율적으로 사용할 수 있게 한다. 또한, QIPU로부터 결과를 수신하여 업데이트된 파라미터를 결정하고, QIPU의 대기열을 실시간으로 조정함으로써, 비동기식 방법은 직렬 방법보다 더 유연하고 역동적이므로, 종료 조건이 더 빨리 충족될 수 있게 할 수 있다. 또한, 비동기식 방법은 직렬 방법보다 더 많은 결과를 제공할 수 있으며, 이는, QIPU가 본질적으로 확률적이므로, 신뢰도가 더 높은 결과와 솔루션을 제공하게 할 수 있다.
일 실시예에서, 양자 처리 시스템은 하나 이상의 (예컨대, 고전적) 컨트롤러 및 하나의 QIPU를 포함한다. 하나 이상의 컨트롤러는 양자 프로그램에 대한 일련의 초기 파라미터 세트를 계산한다. 일련의 초기 파라미터 세트와 함께 양자 프로그램은 양자 처리 대기열에 발송된다. QIPU는 제1 초기 파라미터 세트의 파라미터를 이용하여 양자 프로그램에 대한 제1 기대값을 평가하고, 제1 기대값을 하나 이상의 컨트롤러에 브로드캐스팅한다. QIPU가 제2 초기 파라미터 세트의 파라미터를 이용하여 양자 프로그램에 대한 제2 기대값을 평가하는 동안, 하나 이상의 컨트롤러는 제1 초기 파라미터 세트 및 제1 기대값에 기반하여 다음 파라미터 세트를 연산한다. 다음 파라미터 세트는 양자 처리 대기열에 발송되고, QIPU는 다음 파라미터 세트의 파라미터를 이용하여 양자 프로그램에 대한 다음 기대값을 평가한다.
도 1a는 일 실시예에 따른 양자 처리 시스템을 나타내는 블록도이다.
도 1b는 일 실시예에 따른 양자 처리 유닛(quantum processing unit, QPU)을 나타내는 블록도이다.
도 2는 도 1a의 양자 처리 시스템 상에서 하이브리드 양자-고전 루틴의 예시적인 실행을 도시한 것이다.
도 3은 상당한 미사용 QPU 데드 타임을 포함하는 직렬 변동 프로그램의 단계들의 타임라인이다.
도 4는 일 실시예에 따른 QPU의 효율적인 사용을 포함하는 직렬 변동 프로그램의 단계들의 타임라인이다.
도 5는 일 실시예에 따라, 양자 프로그램을 QPU 세트에 병렬로 (예컨대, 동시에) 발송하는 다수의 제어 프로세서의 사용을 나타내는 블록도이다.
도 6은 일 실시예에 따라, 도 5에 도시된 QPU 세트의 비동기식 연산을 도시한 것이다.
도 7은 일 실시예에 따라, 도 6에 도시된 비동기식 QPU 연산의 예시적인 구현예를 도시한 것이다.
도 8은 일 실시예에 따라, 도 5 내지 도 7의 비동기식 접근법을 양자 센서 세트에 적용한 것을 도시한 것이다.
도 9는 일 실시예에 따른 양자 정보 처리를 위한 비동기식 방법을 나타내는 플로우차트이다.
도 10은 일 실시예에 따른 양자 정보 처리를 위한 다른 비동기식 방법을 나타내는 플로우차트이다.
도 11은 일 실시예에 따른 컨트롤러로서 사용하기에 적합한 고전적 컴퓨팅 시스템의 예시적인 아키텍처이다.
이제 여러 실시예에 대해 참조가 행해질 것이며, 그 예가 첨부 도면에 도시되어 있다. 실행가능한 경우, 도면에서는 유사하거나 동일한 기능을 나타내기 위해 유사하거나 동일한 참조 번호가 사용된다. 다양한 특정 실시예가 설명되지만, 당업자라면 대체 구성을 사용하여 기술된 접근법을 구현할 수 있다는 것을 인식할 것이다.
도 1a는 양자 처리 시스템(100)의 일 실시예를 도시한 것이다. 도시된 실시예에서, 양자 처리 시스템(100)은 (예컨대, 고전적) 컨트롤러(110) 및 양자 처리 유닛(QPU)(120)을 포함한다. 전술한 바와 같이, QPU는 QIPU의 예이다(따라서, 도 1a의 QPU(120)는 보다 일반적인 시스템(100)을 예시하기 위해 QIPU로 대체될 수 있다). 컨트롤러(110)는 (도 11과 관련하여 더 설명되는) 고전적 컴퓨팅 시스템일 수 있다. 컨트롤러(110) 및 QPU(120)는 함께 도시되어 있지만, 이들은 (예컨대, 클라우드 아키텍처에서) 물리적으로 분리된 디바이스일 수 있다. 일부 실시예에서, 양자 처리 시스템(100)은 QPU(120)와 양자 센서를 모두 포함하는 다중 모드 시스템이다. 다른 실시예에서, 양자 처리 시스템(100)은 상이한 또는 추가적인 요소(예컨대, 다수의 QPU(120))를 포함한다. 또한, 기능들은 기술된 것과는 다른 방식으로 요소들 간에 분산될 수 있다.
도 1b는 일 실시예에 따른 QPU(120)를 예시하는 블록도이다. QPU(120)는 임의의 개수의 양자 비트("큐비트")(150) 및 관련 큐비트 컨트롤러(140)를 포함한다. 큐비트(150)는 2-레벨 양자 기계 시스템이다. 큐비트(150)는 제1 상태, 제2 상태, 또는 두 상태의 중첩 상태에 있을 수 있다. 큐비트의 예시적인 물리적 구현예는 초전도 큐비트, 이온 트랩, 및 포토닉스 시스템(예컨대, 도파관 내의 광자)을 포함한다. 일부 실시예에서, QPU(120)는 큐비트(150)에 추가로 또는 큐비트(150) 대신에 큐디트(qudit)를 포함한다. 큐디트는 2개 이상의 상태를 갖는 (큐비트와 같은) 멀티-레벨 양자 기계 시스템이다. 큐비트 컨트롤러(140)는 큐비트(150)를 제어하는 모듈이다. 큐비트 컨트롤러(140)는 CPU, GPU, FPGA와 같은 고전적 프로세서를 포함할 수 있다. 큐비트 컨트롤러(140)는 큐비트(150)에 대해 물리적 연산을 수행할 수 있다(예컨대, 큐비트 컨트롤러(140)는 큐비트(150)에 대한 양자 게이트 연산을 수행할 수 있다). 도 1b의 예에서, 각각의 큐비트(150)마다 별도의 큐비트 컨트롤러(140)가 도시되어 있지만, 큐비트 컨트롤러(150)는 QPU(120)의 다수의 (예컨대, 모든) 큐비트(150)를 제어할 수 있거나 다수의 컨트롤러(150)가 단일 큐비트를 제어할 수 있다. 예를 들어, 큐비트 컨트롤러(150)는 별도의 프로세서, 동일한 프로세서 상의 병렬 스레드, 또는 이 둘의 일부 조합일 수 있다. 다른 실시예에서, QPU(120)는 상이한 또는 추가적인 요소를 포함한다. 또한, 기능들은 기술된 것과는 다른 방식으로 요소들 간에 분산될 수 있다.
도 2는 양자 처리 시스템(100) 상에서 하이브리드 양자-고전 루틴의 예시적인 실행을 도시한 것이다. 컨트롤러(210)는 QPU(230)에 의해 실행되거나 처리될 양자 프로그램을 생성한다(212). 양자 프로그램은 QPU(230)(또는 양자 센서)에 의해 수행될 인스트럭션 또는 서브루틴을 포함할 수 있다. 일 예에서, 양자 프로그램은 양자 회로이다. 다른 예에서, 출력 또는 프로그램은 오류 신드롬을 측정한다. 이 프로그램은 양자 프로그래밍 언어로 또는 QASM 또는 Quil과 같은 중간 표현으로 수학적으로 표현될 수 있다. 일반적으로, 이 프로그램은 일부 파라미터 벡터
Figure pct00001
에 의해 파라미터화될 수 있다. 파라미터 벡터는 양자 프로그램이 QPU(230)에 의해 실행될 때 양자 프로그램의 결과에 영향을 미치는 파라미터 세트를 인코딩한다. 예시적인 파라미터는 양자 회로에서의 양자 게이트 파라미터, 양자 회로에서의 양자 게이트의 순서, 양자 회로에서의 게이트의 유형, 또는 프로그램의 제어 흐름 그래프에 대한 조건을 포함한다. 변동 양자 아이겐솔버(variational quantum eigensolver)의 예에서, 이러한 파라미터화된 프로그램은 가설 풀이(ansatz)라고 지칭될 수 있다. 이렇게 생성된 프로그램은 그 후 단일 QPU(230)에 발송된다(223).
QPU(230)는 프로그램을 실행하여 결과(예컨대, 양자 측정치)를 연산한다(234). QPU(230)는 일반적으로 프로그램을 여러 번 실행하여 확률적 실행에서 통계치를 축적한다. 각각의 결과를 연산한(234) 후, QPU(230)는 종료 조건이 충족되는지 여부를 평가할 수 있고(235), 종료 조건이 충족되지 않으면 다른 결과의 연산을 트리거할 수 있다. 예를 들어, 프로그램은 어떠한 고정된 반복 횟수 동안 실행되거나 또는 어떠한 다른 종료 조건이 충족될 때까지 실행될 수 있다. 종료 조건이 충족된 후, 축적된 결과(예컨대, 기대값)는 컨트롤러(210)로 반환된다(226). 그런 다음 컨트롤러(210)는
Figure pct00002
에 대한 새로운 값, 또는 완전히 새로운 프로그램을 (종종 어떠한 목적 함수에 대해 평가함으로써) 연산하고, 새로운 프로그램을 QPU(230)에 발송한다(223). 컨트롤러(210)와 QPU(230) 간의 이러한 하이브리드 루프는 (양자 오류 정정의 경우에서와 같이) 무한정으로 계속되거나, 또는 (변동 양자 아이겐솔버에서와 같이) 어떠한 수렴 기준이 충족될 때까지 계속될 수 있다.
변동 양자 프로그래밍에서, 양자 회로는 유니터리(unitary)
Figure pct00003
로 파라미터화된다. 일반성의 손실 없이, 이들 변동 프로그램은
Figure pct00004
상태에서 초기화되고, 컴퓨팅 연산을 기반으로 측정된다고 가정될 수 있다. 이들 변동 프로그램의 기대값은
Figure pct00005
이다. 그런 다음 프로그래머는 또한 최적화기 ζ를 정의하며, 그에 따라
ζ
Figure pct00006
는 하나의 기대값 또는 L개의 기대값의 세트를 M개의 파라미터 설정값의 새로운 세트에 매핑하게 된다. 예를 들어, 경사 하강법과 넬드 미더(Nelder-Mead)는 L = M = 1을 갖는다. 그러나, 예를 들어, 파라미터 시프트 규칙(parameter-shift rule)을 사용하여 양자 회로의 그래디언트 계산을 고려하면, M
Figure pct00007
이 될 수 있다. 이 경우, 두 개의 양자 회로를 실행하여 각 파라미터마다의 그래디언트를 계산할 수 있다. 그럼에도 불구하고, 가장 일반적인 설정값에서, 최적화기는 이전에 관찰된 기대값 및 출력의 전체 히스토리로부터(예컨대, 이러한 전체 히스토리에 기반하여) 평가할 임의의 개수의 파라미터 값을 학습할 수 있다.
일 실시예에서,
Figure pct00008
는 직렬로 실행되는 M개의 회로의 세트로 변환된다. 또한, 최적화기의 각 반복 단계 t는 새로운 회로 세트
Figure pct00009
를 생성한다. 각 반복 단계는 또한 직렬로 실행되어, 최적화기가 수렴할
Figure pct00010
개의 단계를 취하는 경우 총
Figure pct00011
개의 직렬 회로 실행을 발생시킨다.
일단 이들 새로운 파라미터
Figure pct00012
가 최적화기에 의해 계산되면, 이들 파라미터는 병렬로 실행될 수 있다. 예를 들어, 이들 파라미터는 서로 다른 QPU(120) 상에서 병렬로 실행될 수 있고, 그 후 제각기의 결과는 최적화기 내로 다시 집성될 수 있다. ζ의 구조에 따라, 이러한 병렬 실행은 비동기식 연합 최적화의 형태로서 비동기식으로 발생할 수 있다. 이러한 유형의 연합 학습 방법은 모바일폰과 같은 에지 디바이스를 사용하여 고전적 머신 학습 모델을 트레이닝하는 데 사용될 수 있다. 일 실시예에서, QPU(120)는 에지 컴퓨팅 리소스이다. 이 접근법에 대한 가능한 문제는 QPU가 균일하지 않을 수 있다는 것이다. 특히, QPU의 노이즈 특성이 서로 다를 수 있으므로, 여러 QPU에 걸쳐 변동 양자 프로그램을 트레이닝하게 되면, 변동 최적화에서 가능한 노이즈 감소를 개선할 수 있다.
도 3은 변동 프로그램의 단계를 실행하기 위한 직렬 방법을 도시한 것이다. 도 3에 도시된 예에서, 하나 이상의 컨트롤러(210) 또는 고전적 프로세스(본원에서는 일반성의 손실 없이, 편의 상 "CPU"라고 지칭되기도 함)가 양자 프로그램에 대한 파라미터
Figure pct00013
를 연산하고(310), QPU(230)는 양자 프로그램
Figure pct00014
의 기대값을 평가한다(320). 컨트롤러(210)와 QPU(230) 사이에서 데이터가 전달됨에 따라, 연산(310)과 평가(320) 사이에는 대기 시간(315)이 존재한다. 일단 평가(320)가 완료되면, 컨트롤러(210)는 다음 변동 단계
Figure pct00015
를 연산하고(330), QPU(230)는
Figure pct00016
를 평가한다(340). 따라서, 다음 변동 단계
Figure pct00017
가 연산 중인 동안(330) QPU(230)가 유휴 상태일 경우 데드 타임(335)이 존재한다. 대기 시간(315) 및 데드 타임(335)은 QPU(230)를 비효율적으로 사용하게 하므로 불리할 수 있다.
다양한 실시예에서, 양자 처리 시스템(100)은 변동 최적화기 단계들 사이에서 발생하는 "데드 타임"(예컨대, 데드 타임(335))을 사용하여 변동 양자 프로그램의 병렬 실행을 모방한다. 이는 양자 처리 시스템이 동일한 QPU(230)를 서로 다른 시간 빈(time bin)에 걸쳐 반복적으로 사용하기 때문에 실행 시간을 단축할 수 있다. 다음 단락에서, M = 1인 실시예(비동기식 접근법이라고 지칭됨)가 예시 목적으로 설명된다. 그러나, 설명된 비동기식 접근법은 보다 큰 M의 값으로 일반화될 수 있다. 사실, 이 접근법에 의해 산출된 효율성 이득은 보다 큰 M의 값의 경우 더 중요할 수 있다.
도 4는 일 실시예에 따라, 데드 타임(335)의 일부 또는 전부가 다른 QPU(230)가 실행을 위해 이용가능한 것처럼 사용되는 비동기식 접근법을 도시한 것이다. 따라서, QPU(230)를 보다 효율적으로 사용할 수 있다. 도시된 실시예에서, 컨트롤러(210)와 QPU(230) 사이에는 비동기식 상호작용이 존재한다. 컨트롤러(210)는 일련의 초기 파라미터 세트
Figure pct00018
를 계산하고(410), 이들을 QPU(230)가 풀링하는 대기열에 발송한다. QPU(230)가 기대값을 평가하면, 이를 컨트롤러(210)로 브로드캐스팅한다. 예를 들어, 도 4에서, QPU(230)는 제1 기대값
Figure pct00019
을 평가하고(420), 이를 컨트롤러(210)로 브로드캐스팅하며, 그리고 컨트롤러(210)가 다음 변동 단계
Figure pct00020
를 연산(430)하는 동안, QPU(230)는 제2 기대값
Figure pct00021
을 평가하고(422), 제3 기대값
Figure pct00022
을 평가(424)하는 등을 수행한다. 유사하게, 컨트롤러(210)는 서로 다른 기대값에 기반하여 (예컨대, 병렬로 동작하는 다수의 고전적 프로세서(210) 또는 병렬로 동작하는 스레드를 사용하여) 다음 변동 단계의 변형을 연산(432 및 434)할 수 있다. 컨트롤러(210)는 QPU(230)에 대한 대기열에 부가하고, (예컨대, 대기열의 임의의 지점에서) 실행을 중단할 수 있다. 도 4에서, 이것은
Figure pct00023
의 단축된 평가(426)로 도시된다. 실제로, 이는 특정
Figure pct00024
에서는 샘플이 덜 취해진다는 것을 의미할 수 있는데, 그 이유는 프로세스가 (
Figure pct00025
인경우) 대신
Figure pct00026
를 평가(440)하여 더 많은 정보를 학습할 수 있을 것으로 결정할 수 있기 때문이다.
컨트롤러(210)를 베이지안 학습자(Bayesian learner)로 간주하면, 컨트롤러(210)를 관리하는 방법에 대한 통찰력을 얻을 수 있다. 컨트롤러(210)는
Figure pct00027
에 걸친 일부 사전 정보로 시작하고, 그 후 가장 유용한 정보를 얻을 수 있을 것이라는 위치를 기반으로 새로운 파라미터에서 평가할 것을 선택한다. 이러한 비동기식 실행 방법으로 전환함으로써 베이지안 학습자는 시도해야 할 차선의 파라미터 세트가 무엇인지를 연산하는 동안에도 QPU(230) 상에서 새로운 데이터를 계속 평가할 수 있다. 이러한 새로운 데이터는 다음 단계를 알리기 위한 추가 정보가 된다.
이 비동기식 접근 방식을 사용하여 얼마나 많은 시간을 절약할 수 있는지를 설명하기 위한 예로서, QPU(210)의 샷 속도(shot rate)가 1Mhz라고 가정하면(하나의 샷은 QPU(120)의 단일 실행을 의미할 수 있음), 각 단계마다의 (예컨대, 고전적) 최적화를 위한 시간(예컨대, 단계(430)) + 대기 시간(예컨대, 대기 시간(415))은 0.1초이고, 각 기대값마다의 샷의 수는 Ns = 104이다. 이들은 현재의 최신 기술 시스템의 경우 그럴듯한 값들이 된다. 이는 0.1초의 데드 타임으로 변환되며, 이러한 데드 타임에서는 비동기식 접근법을 사용하여 추가의 105개의 샘플을 평가할 수 있다. 이것은 직렬 실행 방법의 각 단계에서 얻을 수 있는 것보다 10배 더 많은 샘플이 된다. 이러한 로직에 따라, 비동기식 방법은 직렬 방법으로 얻을 수 있는 것보다 최대 10배 많은 샘플을 제공하게 된다. 보다 일반적으로, 비동기식 접근법은
Figure pct00028
* r/N s 배 더 많은 샘플을 제공할 수 있으며,
Figure pct00029
는 양방향 대기 시간을 포함하는 (예컨대, 고전적) 연산 단계의 지속 시간이며, r은 QPU(230)의 샷 속도이다.
도 3의 직렬 접근법과 비교하여, 도 4에 도시된 비동기 접근법은 단일 QPU(230)가 데드 타임이 거의 또는 전혀 없이 보다 자주(예컨대, 연속적으로) 실행될 수 있도록 다수의 컨트롤러(210)를 사용할 수 있다. 이러한 비동기식 방법 동안, QPU(230)는 처리를 위해 데이터를 다시 (예컨대, 연속적으로) 스트리밍하여(또는 데이터 배치(batches of data)를 주기적으로 전송하여), 더 적은 시간에 더 많은 연산을 수행할 수 있다. 연산된 데이터 양의 증가는 일반적으로 실행 시간을 선형적으로 감소시키지 않지만 준선형적으로 감소시킬 수 있다. 이러한 추가 데이터를 사용하여 최적화기를 개선할 수 있고, 변동 알고리즘의 더 나은/보다 빠른 수렴을 얻을 수 있다.
도 5는 다수의 컨트롤러(510)가 양자 프로그램을 병렬로(예컨대, 동시에) 발송하는 실시예를 도시한 것이다. 중간 라우팅 계층(520)은 이들 프로그램을 하나 이상의 QPU(530)로 라우팅한다. QPU(530)는 그러한 연산을 실행하고 그 결과를 라우팅 계층(520)에 (예컨대, 비동기식으로) 반환한다. 라우팅 계층(520)은 이들 결과를 집성하여 컨트롤러 세트(510)로 반환한다. 컨트롤러(510)는 그 후 차례로 실행을 위한 추가 프로그램을 (예컨대, 비동기식으로) 생성할 수 있다.
도 6은 이러한 비동기식 접근법을 도 2에 도시된 직렬 방법과 대조한 것이다. 비동기식 접근법에서, QPU(630)로부터의 결과는 각 QPU(630) 상에서 종료 조건이 충족될 때까지 기다리지 않고 라우팅 계층(620)으로 (예컨대, 즉시, 대기 시간으로 지연되어, 그리고 다른 고유한 지연으로) 반송된다. 이를 통해 컨트롤러(610)는 QPU(630)로부터 추가 데이터를 스트림으로(또는 일괄적으로) 수신할 수 있다. 예를 들어, 이러한 추가 데이터를 사용하여 학습 시스템을 업데이트함으로써 변동 양자 아이겐솔버가 더 빠르게 수렴되도록 할 수 있다. 이 예에서, 컨트롤러(610)는 연합 학습 알고리즘을 사용할 수 있으며, 이러한 연합 학습 알고리즘에서 에지 컴퓨팅 유닛은 QPU(630)가 된다.
비동기식 방법은 도 7에 도시된 바와 같이 구현될 수 있으며, 여기서 생성된 프로그램은 라우팅 계층(620)으로부터 프로그램 스택(이는 또한 대기열이라고 지칭되기도 함)에 추가된다(710). 프로그램은 QPU(630)에 의한 실행을 위해 스택으로부터 풀링된다(720). 각 실행마다, QPU(630)(또는 프로그램으로부터의 인스트럭션)는 (예컨대, 종료 조건을 통해) 더 많은 통계치를 수집하기 위해 동일한 연산을 재실행거나 다른 프로그램으로 이동할 것을 결정할 수 있다. 스택은 프로그램들의 우선 순위를 가질 수 있다. 일부 실시예에서, 라우팅 계층(620)(또는 컨트롤러(들)(610))은 QPU(630) 상의 프로그램의 실행을, 해당 QPU(630)에 새로운 프로그램이 제출될 때 중단할 수 있다. QPU(630)가 프로그램의 실행을 완료하면, QPU(630)는, 예를 들어, 다른 QPU(630)가 각자의 프로그램의 실행을 완료할 것을 기다리지 않고, 결과를 컨트롤러(610)에 발송한다(740). 일부 실시예에서, 스택 내의 프로그램은 자신을 실행해야 하는 특정 QPU(630)를 지정한다. 각 QPU(630)는 각자의 자체 노이즈 프로파일을 가질 수 있기 때문에, 해당 QPU(630)(또는 실질적으로 동일한 노이즈 프로파일을 갖는 QPU 세트(630))가 서로 다른 파라미터를 이용하여 프로그램을 실행하는 것이 유리할 수 있다. 노이즈 프로파일이 실질적으로 동일한지 여부를 결정하는 것은 노이즈 모델에 따라 매우 다를 수 있으며, 오퍼레이터는 실질적으로 동일한 노이즈 모델을 정의하는 방법을 선택할 수 있다. 일부 노이즈 모델에는 많은 파라미터가 있다. 예를 들어, 큐비트마다 오류율은 서로 다르다. 이것은 평균 임계치와 같은 일부 기준이 될 수 있다. 다른 경우에는 더 복잡할 수 있다. 일부 실시예에서, 각자의 양자 프로세스 오퍼레이터의 다이아몬드 놈 거리(diamond norm distance)에 기반하여 유사한 QPU들을 클러스터링할 수 있다. 양자 프로세스 오퍼레이터를 측정하는 것이 어려운 경우, 휴리스틱 프록시를 사용할 수 있다.
도 4를 참조하여 위에서 기술한 바와 같이, 단일 QPU(630)는 다른 계산을 수행하기 위해 변동 단계들 사이의 데드 타임을 사용함으로써 마치 다수의 QPU인 것처럼 사용될 수 있다. 따라서, 도 6에 도시된 구성은 다수의 컨트롤러(610) 및 단일 QPU(630)를 사용하여 근사화될 수 있다. 대안적으로, 다수의 QPU(630)가 사용될 수 있으며, 각각은 도 4의 기법을 사용하여 이용가능한 QPU의 유효 수를 증가시킬 수 있다.
도 8은 비동기식 접근법이 양자 센서 세트(830)에 적용될 수 있음을 도시한 것이다. 여기에서, 하나 이상의 양자 프로그램(예컨대, 인스트럭션)은 하나 이상의 컨트롤러(810)로부터 라우팅 계층(820)을 통해 양자 센서 뱅크(830)로 전송된다. 양자 프로그램은 센서(830)에 대한 파라미터를 조정하는 것을 포함할 수 있다. 양자 센서(830)는 데이터를 (예컨대, 비동기식으로) 생성하고, 이를 추가 처리를 위해 스트리밍 또는 일괄적 방식으로 컨트롤러(810)에 반환한다.
해당 비동기식 접근법은 또한 다른 컨텍스트에서도 적용될 수 있다. 예를 들어, 개시된 비동기식 접근법은 양자 네트워크 또는 양자 감지, 네트워킹, 및 연산의 다른 분산 시스템의 노드에 적용될 수 있다. 실제로, 컨트롤러 자체는 반드시 고전적일 필요는 없다. 컨트롤러는 QIPU(예컨대, QPU(120))일 수 있다. 예를 들어, 컨트롤러는 QIPU의 연산 단위(예컨대, 큐비트)의 분할된 세트일 수 있다. 추가적으로 또는 대안적으로, 컨트롤러는 단일 QIPU의 스레드일 수 있다. 또한, QIPU에 의해 수행되는 연산은 네트워크 프로토콜의 실행과 관련될 수 있다. 예를 들어, QIPU는 양자 네트워크의 노드일 수 있으며, QIPU는 네트워크 프로토콜을 실행한다.
도 9는 일 실시예에 따른 비동기식 방법(900)을 나타내는 플로우차트이다. 방법(900)의 단계는 하나 이상의 컨트롤러에 의해 수행될 수 있다. 방법(900)의 단계는 서로 다른 순서로 수행될 수 있고, 방법은 서로 다른, 추가적인, 또는 더 적은 단계를 포함할 수 있다. 방법(1000)의 양태(도 10과 관련하여 설명됨)는 또한 방법(900)에도 적용될 수 있다.
컨트롤러는 양자 프로그램에 대한 제1 파라미터 세트 및 제2 파라미터 세트를 결정한다(910). 일부 실시예에서, 제2 파라미터 세트는 상이한 양자 프로그램을 위한 것이다. 일부 실시예에서, 양자 프로그램은 변동 최적화 문제의 양자 회로이고, 제3 파라미터 세트는 다음 변동 단계에 해당한다.
컨트롤러는 제1 파라미터 세트 및 제2 파라미터 세트와 함께 양자 프로그램을 양자 정보 처리 유닛(QIPU)의 양자 처리 대기열에 발송한다(920). 양자 처리 대기열은 QIPU에 의해 실행될 양자 프로그램을 저장하도록 구성된다.
컨트롤러는 제1 파라미터 세트의 파라미터를 이용하여 QIPU에 의해 실행되는 양자 프로그램의 제1 기대값을 수신한다(930). 컨트롤러는 또한 제1 파라미터 세트의 파라미터를 이용한 양자 프로그램의 개별 실행 결과를 (예컨대, 스트리밍 또는 일괄적 방식으로) 수신할 수 있다.
QIPU가 제2 파라미터 세트의 파라미터를 이용하여 양자 프로그램의 제2 기대값을 평가하는 동안, 컨트롤러는 제1 파라미터 세트 및 제1 기대값에 기반하여 양자 프로그램에 대한 제3 파라미터 세트를 연산한다(940).
컨트롤러는 제3 파라미터 세트와 함께 양자 프로그램을 양자 처리 대기열에 발송함으로써 양자 처리 대기열을 수정한다(950). 양자 처리 대기열을 수정하는 것은 양자 처리 대기열의 종단에 제3 파라미터 세트를 추가하는 것을 포함할 수 있다. 추가적으로 또는 대안적으로, 대기열을 수정하는 것은, 현재 실행을 중단하고 제3 파라미터 세트의 파라미터를 이용하여 양자 프로그램의 기대값을 평가하도록 QIPU에게 지시하는 것을 포함할 수 있다.
일부 실시예에서, 컨트롤러는 제2 파라미터 세트의 파라미터를 이용하여 QIPU에 의해 실행되는 양자 프로그램의 제2 기대값을 수신한다. QIPU가 제3 파라미터 세트의 파라미터를 이용하여 양자 프로그램의 제3 기대값을 평가하는 동안, 컨트롤러는 제1 파라미터 세트 및 제2 파라미터 세트와 제1 기대값 및 제2 기대값에 기반하여 양자 프로그램에 대한 제4 파라미터 세트를 연산한다. 컨트롤러는 제4 파라미터 세트와 함께 양자 프로그램을 양자 처리 대기열에 발송함으로써 양자 처리 대기열을 수정한다.
일부 실시예에서, QIPU가 제1 파라미터 세트의 파라미터를 이용하여 양자 프로그램의 제1 기대값을 평가하거나 제3 파라미터 세트의 파라미터를 이용하여 양자 프로그램의 제3 기대값을 평가하는 동안, 컨트롤러는 제2 양자 프로그램에 대한 파라미터 세트를 연산한다. 컨트롤러는 제2 양자 프로그램의 파라미터 세트와 함께 제2 양자 프로그램을 양자 처리 대기열에 발송함으로써 양자 처리 대기열을 수정한다.
일부 실시예에서, QIPU는 QIPU 세트 중 하나이며, 양자 처리 대기열은 QIPU 세트 중 하나 이상의 QIPU에 의해 실행될 양자 프로그램 각각을 저장하도록 구성된다. QIPU에 의해 계산된 기대값은 컨트롤러에 의해 비동기식으로 수신될 수 있다. 일부 실시예에서, 제3 파라미터 세트와 함께 양자 프로그램을 발송하는 것은 컨트롤러가 QIPU에 의해 실행될 제3 파라미터 세트와 함께 양자 프로그램에 대한 인스트럭션을 발송하는 것을 더 포함한다. 일부 실시예에서, 제3 파라미터 세트와 함께 양자 프로그램을 발송하는 것은 컨트롤러가 QIPU의 노이즈 프로파일과 실질적으로 동일한 노이즈 프로파일을 이용하여 QIPU에 의해 실행될 제3 파라미터 세트와 함께 양자 프로그램에 대한 인스트럭션을 발송하는 것을 더 포함한다.
일부 실시예에서, 양자 처리 대기열이 임계 개수 미만의 프로그램을 갖는 것에 응답하여, 컨트롤러는 제1 파라미터 세트(또는 임의의 다른 파라미터 세트)와 함께 양자 프로그램을 양자 처리 대기열에 재발송한다. 컨트롤러는 추가 통계 샘플을 제공할 수 있으며, 대기열이 비어 있지 않도록 할 수 있다.
도 10은 일 실시예에 따른 다른 비동기식 방법(1000)을 나타내는 플로우차트이다. 방법(1000)의 단계는 하나 이상의 컨트롤러에 의해 수행될 수 있다. 방법(1000)의 단계는 서로 다른 순서로 수행될 수 있고, 방법(1000)은 서로 다른, 추가적인, 또는 더 적은 단계를 포함할 수 있다. 방법(900)의 양태(도 9와 관련하여 앞서 설명됨)는 또한 방법(1000)에도 적용될 수 있다.
컨트롤러는 양자 프로그램 세트를 생성한다(1010).
컨트롤러는 양자 프로그램 세트 중 적어도 일부를 실행을 위해 다수의 양자 정보 처리 유닛(QIPU)에 발송한다(1020).
컨트롤러는 다수의 QIPU에 의해 생성된 결과를 스트리밍 또는 일괄 처리 방식으로 비동기식으로 수신한다(1030). 결과는 발송된 양자 프로그램을 처리하는 다수의 QIPU에 의해 생성될 수 있다. 결과는 기대값일 수 있거나 양자 프로그램을 처리한 개별 결과일 수 있다.
컨트롤러는 반환된 결과에 기반하여 새로운 양자 프로그램 세트의 단일 또는 다중스레드 생성을 수행한다(1040).
컨트롤러는 새로운 양자 프로그램 세트 중 적어도 일부를 실행을 위해 다수의 QIPU에 발송한다(1050). 일부 실시예에서, QIPU는 양자 프로그램 세트 내의 양자 프로그램 처리를, 새로운 양자 프로그램 세트로부터 양자 프로그램을 수신하는 것에 응답하여, 완료 전에 중단한다.
일부 실시예에서, 양자 프로그램 세트는 스트리밍 결과를 베이지안 학습 모델에 통합하여 변동 양자 알고리즘에서 목적 함수를 최적화함으로써 생성된다.
도 11은 일 실시예에 따른 컴퓨팅 시스템의 예시적인 아키텍처이다. 도 11은 일 실시예에 따라, 본원에 기술된 하나 이상의 엔티티의 일부 또는 전부로서 사용되는 컴퓨터의 물리적 컴포넌트를 나타내는 상위 레벨 블록도를 도시하지만, 컴퓨터는 도 11에 제공된 컴포넌트에 대한 추가적인, 더 적은, 또는 변형을 가질 수 있다. 도 11은 컴퓨터(1100)를 도시하고 있지만, 도면은 본원에 기술된 구현예의 구조적 개략도로서가 아니라 컴퓨터 시스템에 존재할 수 있는 다양한 특징의 기능적 설명을 위한 것이다. 실제로, 그리고 본 기술 분야의 통상의 기술자가 인식하는 바와 같이, 개별적으로 도시된 항목은 조합될 수 있고, 일부 항목은 분리될 수 있다.
칩셋(1104)에 연결된 적어도 하나의 프로세서(1102)가 도 11에 도시되어 있다. 메모리(1106), 저장 디바이스(1108), 키보드(1110), 그래픽 어댑터(1112), 포인팅 디바이스(1114), 및 네트워크 어댑터(1116)가 또한 칩셋(1104)에 연결되어 있다. 디스플레이(1118)는 그래픽 어댑터(1112)에 연결되어 있다. 일 실시예에서, 칩셋(1104)의 기능은 메모리 컨트롤러 허브(1120) 및 I/O 허브(1122)에 의해 제공된다. 다른 실시예에서, 메모리(1106)는 칩셋(1104) 대신 프로세서(1102)에 직접 연결된다. 일부 실시예에서, 컴퓨터(1100)는 이들 컴포넌트를 상호 연결하기 위한 하나 이상의 통신 버스를 포함한다. 하나 이상의 통신 버스는 선택적으로, 시스템 컴포넌트들 간의 통신을 상호 연결하고 제어하는 회로부(때때로 칩셋이라고 지칭됨)를 포함한다.
저장 디바이스(1108)는 임의의 비일시적 컴퓨터 판독가능 저장 매체, 예를 들어, 하드 드라이브, 컴팩트 디스크 판독 전용 메모리(CD-ROM), DVD, 또는 솔리드 스테이트 메모리 디바이스 또는 다른 광학 스토리지, 자기 카세트, 자기 테이프, 자기 디스크 스토리지 또는 다른 자기 저장 디바이스, 자기 디스크 저장 디바이스, 광학 디스크 저장 디바이스, 플래시 메모리 디바이스, 또는 다른 비휘발성 솔리드 스테이트 저장 디바이스이다. 그러한 저장 디바이스(1108)는 또한 영구 메모리로 지칭될 수 있다. 포인팅 디바이스(1114)는 마우스, 트랙볼, 또는 다른 유형의 포인팅 디바이스일 수 있고, 키보드(1110)와 조합하여 컴퓨터(1100)에 데이터를 입력하는 데 사용된다. 그래픽 어댑터(1112)는 디스플레이(1118) 상에 이미지 및 다른 정보를 표시한다. 네트워크 어댑터(1116)는 컴퓨터(1100)를 로컬 또는 광역 네트워크에 연결한다.
메모리(1106)는 프로세서(1102)에 의해 사용될 인스트럭션 및 데이터를 보유한다. 메모리(1106)는 비영구 메모리일 수 있고, 그 예는 DRAM, SRAM, DDR RAM, ROM, EEPROM, 플래시 메모리와 같은 고속 랜덤 액세스 메모리를 포함한다.
본 기술 분야에 알려져 있는 바와 같이, 컴퓨터(1100)는 도 11에 도시된 것과는 상이하거나 다른 컴포넌트를 가질 수 있다. 또한, 컴퓨터(1100)에는 특정 예시된 컴포넌트가 없을 수 있다. 일 실시예에서, 서버 역할을 하는 컴퓨터(1100)에는 키보드(1110), 포인팅 디바이스(1114), 그래픽 어댑터(1112), 또는 디스플레이(1118)가 없을 수 있다. 더욱이, 저장 디바이스(1108)는 (SAN (storage area network) 내에 구현된 것과 같이) 컴퓨터(1100)로부터 로컬이거나 원격일 수 있다.
본 기술 분야에 알려져 있는 바와 같이, 컴퓨터(1100)는 본원에 기술된 기능을 제공하기 위한 컴퓨터 프로그램 모듈을 실행하도록 적응된다. 본원에서 사용되는 바와 같이, "모듈"이라는 용어는 특정 기능을 제공하기 위해 사용되는 컴퓨터 프로그램 로직을 의미한다. 따라서, 모듈은 하드웨어, 펌웨어, 또는 소프트웨어로 구현될 수 있다. 일 실시예에서, 프로그램 모듈은 저장 디바이스(1108) 상에 저장되고, 메모리(1106) 내로 로딩되고, 그리고 프로세서(302)에 의해 실행된다.
위의 설명의 일부 부분은 알고리즘 프로세스 또는 동작의 관점에서 실시예를 설명한다. 이러한 알고리즘 설명 및 표현은 컴퓨팅 분야의 기술자가 자신의 연구 내용을 해당 기술 분야의 다른 기술자에게 효과적으로 전달하는 데 일반적으로 사용된다. 이들 동작은 기능적으로, 연산적으로, 또는 논리적으로 설명되지만, 프로세서 또는 동등한 전기 회로, 마이크로코드 등에 의해 실행될 인스트럭션을 포함하는 컴퓨터 프로그램에 의해 구현되는 것으로 이해된다. 또한, 일반성의 손실 없이, 이들 기능적 동작의 배열을 모듈로 지칭하는 것이 때때로 편리한 것으로 입증되었다.
본원에서 사용되는 바와 같이, "일 실시예" 또는 "실시예"에 대한 언급은 그 실시예와 관련하여 설명된 특정 요소, 구조, 또는 특성이 적어도 하나의 실시예에 포함된다는 것을 의미한다. 본 명세서의 다양한 곳에서 "일 실시예에서"라는 문구의 표현은 모두가 반드시 동일한 실시예를 지칭하는 것은 아니다. 마찬가지로, 단수 형태의 요소나 컴포넌트는 단지 편의상 행해진 것이다. 이 설명은 달리 의미하는 것이 명백하지 않는 한 하나 이상의 요소 또는 컴포넌트가 존재한다는 것을 의미하는 것으로 이해되어야 한다.
값이 "근사치" 또는 "실질적으로"(또는 이들의 파생물)로 설명되는 경우, 해당 값은 문맥에서 다른 의미가 명확하지 않는 한 정확한 +/-10%로 해석되어야 한다. 예를 들어, "약 10"은 "9 내지 11의 범위 내에 있는"을 의미하는 것으로 이해되어야 한다.
본원에서 사용되는 바와 같이, 용어 "포함한다", "포함하는", "구비한다", "구비하는", "갖는다", "가지는", 또는 이들의 임의의 다른 변형은 비배타적 포함을 포괄하도록 의도된다. 예를 들어, 요소 목록을 포함하는 프로세스, 방법, 제조물, 또는 장치는 해당 요소에만 반드시 제한되지 않고, 그러한 프로세스, 방법, 제조물, 또는 장치에 명시적으로 나열되지 않았거나 고유하지 않은 다른 요소를 포함할 수 있다. 또한, 명시적으로 달리 명시되지 않는 한, "또는"은 '포괄적인 또는'을 의미하며 '배타적 또는'을 의미하지는 않는다. 예를 들어, 조건 A 또는 B는: A는 참(또는 존재)이고 B는 거짓(또는 부존재)인 것, A는 거짓(또는 부존재)이고 B는 참(또는 존재)인 것, A와 B 모두 참(또는 존재)인 것 중 어느 하나에 의해 충족된다.
본 개시내용을 읽으면, 본 기술 분야의 기술자는 비동기식 양자 정보 처리를 위한 시스템 및 프로세스에 대한 또 다른 대안적인 구조적 및 기능적 설계를 인식할 것이다. 따라서, 특정 실시예 및 애플리케이션이 도시되고 설명되었지만, 설명된 발명은 개시된 정확한 구성 및 컴포넌트에 제한되지는 않는다는 것을 이해해야 한다. 보호 범위는 다음 청구 범위에 의해서만 제한된다.

Claims (20)

  1. 컴퓨팅 시스템에 의해 실행될 때, 상기 컴퓨팅 시스템으로 하여금 동작을 수행하게 하는 인스트럭션을 저장한 비일시적 컴퓨터 판독가능 저장 매체로서,
    상기 동작은:
    양자 프로그램에 대한 제1 파라미터 세트 및 제2 파라미터 세트를 결정하는 단계;
    상기 제1 파라미터 세트 및 상기 제2 파라미터 세트와 함께 상기 양자 프로그램을 양자 정보 처리 유닛(QIPU)의 양자 처리 대기열에 발송하는 단계 ― 상기 양자 처리 대기열은 상기 QIPU에 의해 실행될 양자 프로그램을 저장하도록 구성됨 ―;
    상기 제1 파라미터 세트의 파라미터를 이용하여 상기 QIPU에 의해 실행되는 상기 양자 프로그램의 제1 기대값을 수신하는 단계;
    상기 QIPU가 상기 제2 파라미터 세트의 파라미터를 이용하여 상기 양자 프로그램의 제2 기대값을 평가하는 동안, 상기 제1 파라미터 세트 및 상기 제1 기대값에 기반하여 상기 양자 프로그램에 대한 제3 파라미터 세트를 연산하는 단계; 및
    상기 제3 파라미터 세트와 함께 상기 양자 프로그램을 상기 양자 처리 대기열에 발송함으로써 상기 양자 처리 대기열을 수정하는 단계를 포함하는,
    비일시적 컴퓨터 판독가능 저장 매체.
  2. 제1항에 있어서,
    상기 동작은:
    상기 제2 파라미터 세트의 파라미터를 이용하여 상기 QIPU에 의해 실행되는 상기 양자 프로그램의 제2 기대값을 수신하는 단계;
    상기 QIPU가 상기 제3 파라미터 세트의 파라미터를 이용하여 상기 양자 프로그램의 제3 기대값을 평가하는 동안, 상기 제1 파라미터 세트 및 상기 제2 파라미터 세트와 상기 제1 기대값 및 상기 제2 기대값에 기반하여 상기 양자 프로그램에 대한 제4 파라미터 세트를 연산하는 단계; 및
    상기 제4 파라미터 세트와 함께 상기 양자 프로그램을 상기 양자 처리 대기열에 발송함으로써 상기 양자 처리 대기열을 수정하는 단계를 더 포함하는,
    비일시적 컴퓨터 판독가능 저장 매체.
  3. 제1항에 있어서,
    상기 동작은:
    상기 QIPU가 상기 제1 파라미터 세트의 파라미터를 이용하여 상기 양자 프로그램의 제1 기대값을 평가하거나 상기 제3 파라미터 세트의 파라미터를 이용하여 상기 양자 프로그램의 제3 기대값을 평가하는 동안, 제2 양자 프로그램에 대한 파라미터 세트를 연산하는 단계; 및
    상기 제2 양자 프로그램의 파라미터 세트와 함께 상기 제2 양자 프로그램을 상기 양자 처리 대기열에 발송함으로써 상기 양자 처리 대기열을 수정하는 단계를 더 포함하는,
    비일시적 컴퓨터 판독가능 저장 매체.
  4. 제1항에 있어서,
    상기 QIPU는 QIPU 세트 중 하나이며, 상기 양자 처리 대기열은 상기 QIPU 세트 중 하나 이상의 QIPU에 의해 실행될 양자 프로그램 각각을 저장하도록 구성되는,
    비일시적 컴퓨터 판독가능 저장 매체.
  5. 제4항에 있어서,
    상기 제3 파라미터 세트와 함께 상기 양자 프로그램을 발송하는 것은 상기 QIPU에 의해 실행될 상기 제3 파라미터 세트와 함께 상기 양자 프로그램에 대한 인스트럭션을 발송하는 것을 더 포함하는,
    비일시적 컴퓨터 판독가능 저장 매체.
  6. 제4항에 있어서,
    상기 제3 파라미터 세트와 함께 상기 양자 프로그램을 발송하는 것은 상기 QIPU의 노이즈 프로파일과 실질적으로 동일한 노이즈 프로파일을 이용하여 상기 QIPU에 의해 실행될 상기 제3 파라미터 세트와 함께 상기 양자 프로그램에 대한 인스트럭션을 발송하는 것을 더 포함하는,
    비일시적 컴퓨터 판독가능 저장 매체.
  7. 제1항에 있어서,
    상기 양자 처리 대기열을 수정하는 단계는 상기 양자 처리 대기열의 종단에 상기 제3 파라미터 세트를 추가하는 단계를 포함하는,
    비일시적 컴퓨터 판독가능 저장 매체.
  8. 제1항에 있어서,
    상기 대기열을 수정하는 단계는, 현재 실행을 중단하고, 상기 제3 파라미터 세트의 파라미터를 이용하여 상기 양자 프로그램의 기대값을 평가하도록 상기 QIPU에게 지시하는 단계를 포함하는,
    비일시적 컴퓨터 판독가능 저장 매체.
  9. 제1항에 있어서,
    상기 양자 프로그램은 변동 최적화 문제의 양자 회로이고, 상기 제3 파라미터 세트는 다음 변동 단계에 해당하는,
    비일시적 컴퓨터 판독가능 저장 매체.
  10. 제1항에 있어서,
    상기 양자 처리 대기열이 임계 개수 미만의 프로그램을 갖는 것에 응답하여, 상기 제1 파라미터 세트와 함께 상기 양자 프로그램을 상기 양자 처리 대기열에 재발송하는,
    비일시적 컴퓨터 판독가능 저장 매체.
  11. 방법으로서,
    양자 프로그램 세트를 생성하는 단계;
    상기 양자 프로그램 세트 중 적어도 일부를 실행을 위해 다수의 양자 정보 처리 유닛(QIPU)에 발송하는 단계;
    상기 다수의 QIPU에 의해 생성된 결과를 스트리밍 또는 일괄 처리 방식으로 비동기식으로 수신하는 단계;
    반환된 결과에 기반하여 새로운 양자 프로그램 세트의 단일 또는 다중스레드 생성을 수행하는 단계; 및
    상기 새로운 양자 프로그램 세트 중 적어도 일부를 실행을 위해 상기 다수의 QIPU에 발송하는 단계를 포함하는,
    방법.
  12. 제11항에 있어서,
    상기 다수의 양자 정보 처리 유닛에 의해, 상기 발송된 프로그램을 처리하는 단계를 더 포함하는,
    방법.
  13. 제11항에 있어서,
    상기 양자 프로그램 세트는 변동 양자 프로그램 실행을 위해 목적 함수를 최적화함으로써 고전적 컨트롤러에 의해 생성되는,
    방법.
  14. 제11항에 있어서,
    상기 새로운 양자 프로그램 세트 중 적어도 일부를 발송하는 단계는, 현재 양자 프로그램 프로세스를 중단하고, 상기 새로운 양자 프로그램 세트의 양자 프로그램을 처리하라는 인스트럭션을 적어도 하나의 QIPU에 전송하는 단계를 포함하는,
    방법.
  15. 양자 처리 시스템으로서,
    하나 이상의 컨트롤러 ― 상기 컨트롤러는:
    양자 프로그램에 대한 일련의 초기 파라미터 세트를 계산하고;
    상기 일련의 초기 파라미터 세트와 함께 상기 양자 프로그램을 양자 처리 대기열에 발송하고;
    제1 초기 파라미터 세트의 파라미터와 함께 상기 양자 프로그램에 해당하는 제1 기대값을 수신하고;
    상기 제1 초기 파라미터 세트 및 제1 기대값에 기반하여 다음 파라미터 세트를 연산하고;
    상기 다음 파라미터 세트를 상기 양자 처리 대기열에 발송하도록 구성됨 ―; 및
    양자 정보 처리 유닛(QIPU)을 포함하고, 상기 양자 정보 처리 유닛(QIPU)은:
    상기 제1 초기 파라미터 세트의 파라미터를 이용하여 상기 양자 프로그램에 대한 제1 기대값을 평가하고;
    상기 제1 기대값을 상기 하나 이상의 컨트롤러에 브로드캐스팅하고;
    상기 다음 파라미터 세트가 연산되는 동안, 제2 초기 파라미터 세트의 파라미터를 이용하여 상기 양자 프로그램에 대한 제2 기대값을 평가하고;
    상기 다음 파라미터 세트를 수신하고;
    상기 다음 파라미터 세트의 파라미터를 이용하여 상기 양자 프로그램에 대한 다음 기대값을 평가하도록 구성되는,
    양자 처리 시스템.
  16. 제15항에 있어서,
    상기 양자 정보 처리 유닛은, 상기 다음 파라미터 세트를 수신하는 것에 응답하여 상기 제2 기대값의 평가를 완료 전에 중단하도록 추가로 구성되는,
    양자 처리 시스템.
  17. 제15항에 있어서,
    상기 QIPU는 QIPU 세트 중 하나이며, 상기 양자 처리 대기열은 상기 QIPU 세트의 QIPU에 의해 실행될 양자 프로그램을 저장하도록 구성되는,
    양자 처리 시스템.
  18. 제17항에 있어서,
    상기 다음 파라미터 세트를 발송하는 것은 상기 QIPU에 의해 실행될 상기 다음 파라미터 세트와 함께 상기 양자 프로그램에 대한 인스트럭션을 발송하는 것을 더 포함하는,
    양자 처리 시스템.
  19. 제17항에 있어서,
    상기 다음 파라미터 세트를 발송하는 것은 상기 QIPU의 노이즈 프로파일과 실질적으로 동일한 노이즈 프로파일을 이용하여 상기 QIPU에 의해 실행될 상기 다음 파라미터 세트와 함께 상기 양자 프로그램에 대한 인스트럭션을 발송하는 것을 포함하는,
    양자 처리 시스템.
  20. 제15항에 있어서,
    상기 하나 이상의 컨트롤러는, 상기 양자 처리 대기열이 임계 개수 미만의 프로그램을 갖는 것에 응답하여, 상기 일련의 초기 파라미터 세트와 함께 상기 양자 프로그램을 상기 양자 처리 대기열에 재발송하도록 추가로 구성되는,
    양자 처리 시스템.
KR1020227040968A 2020-04-22 2021-04-19 비동기식 양자 정보 처리 KR20230006867A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US202063014066P 2020-04-22 2020-04-22
US63/014,066 2020-04-22
PCT/IB2021/053222 WO2021214638A1 (en) 2020-04-22 2021-04-19 Asynchronous quantum information processing

Publications (1)

Publication Number Publication Date
KR20230006867A true KR20230006867A (ko) 2023-01-11

Family

ID=78222224

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020227040968A KR20230006867A (ko) 2020-04-22 2021-04-19 비동기식 양자 정보 처리

Country Status (9)

Country Link
US (1) US20210334128A1 (ko)
EP (1) EP4139854A4 (ko)
JP (1) JP2023524204A (ko)
KR (1) KR20230006867A (ko)
CN (1) CN115836303A (ko)
AU (1) AU2021260985A1 (ko)
CA (1) CA3180652A1 (ko)
IL (1) IL297433A (ko)
WO (1) WO2021214638A1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20240045711A1 (en) * 2022-08-03 2024-02-08 International Business Machines Corporation Preempting a quantum program in a quantum computing device

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100643283B1 (ko) * 2004-10-13 2006-11-10 삼성전자주식회사 양자 코프로세서를 사용하여 연산 속도를 향상시키는 방법및 장치
US20080313430A1 (en) * 2007-06-12 2008-12-18 Bunyk Paul I Method and system for increasing quantum computer processing speed using digital co-processor
CA3112444A1 (en) * 2018-10-02 2020-04-09 Zapata Computing, Inc. Hybrid quantum-classical computer for solving linear systems

Also Published As

Publication number Publication date
AU2021260985A8 (en) 2023-02-23
JP2023524204A (ja) 2023-06-09
WO2021214638A1 (en) 2021-10-28
US20210334128A1 (en) 2021-10-28
CA3180652A1 (en) 2021-10-28
EP4139854A1 (en) 2023-03-01
EP4139854A4 (en) 2024-03-20
CN115836303A (zh) 2023-03-21
IL297433A (en) 2022-12-01
AU2021260985A1 (en) 2022-12-22

Similar Documents

Publication Publication Date Title
US11120368B2 (en) Scalable and efficient distributed auto-tuning of machine learning and deep learning models
CN111464154B (zh) 一种控制脉冲的计算方法及装置
Neglia et al. The role of network topology for distributed machine learning
US20200175370A1 (en) Decentralized distributed deep learning
US10984155B2 (en) Accelerating particle-swarm algorithms
US11164093B1 (en) Artificial intelligence system incorporating automatic model switching based on model parameter confidence sets
US11222288B2 (en) Building deep learning ensembles with diverse targets
US20140258382A1 (en) Application congestion control
CN116680062B (zh) 一种基于大数据集群的应用调度部署方法及存储介质
Teng et al. Bayesian distributed stochastic gradient descent
KR20230006867A (ko) 비동기식 양자 정보 처리
Han et al. Optimizing space utilization for more effective multi-robot path planning
Seethalakshmi et al. Real-coded multi-objective genetic algorithm with effective queuing model for efficient job scheduling in heterogeneous Hadoop environment
WO2024074023A1 (zh) 一种基于改进粒子群优化算法的任务调度方法
Akay et al. Predicting the performance measures of a 2-dimensional message passing multiprocessor architecture by using machine learning methods
CN112256422A (zh) 基于q学习的异构平台任务调度方法及系统
KR102153814B1 (ko) 로드 균형을 위한 확률 기반 적응형 라우팅 알고리즘
CN116996941A (zh) 基于配网云边端协同的算力卸载方法、装置及系统
D'Aronco et al. Online resource inference in network utility maximization problems
JP2021036395A (ja) 機械学習装置および機械学習方法
CN115220818A (zh) 基于深度强化学习的实时依赖型任务卸载方法
KR20230069763A (ko) 신경망 네트워크의 셀프 어텐션 연산을 가속하는 장치
EP4222596A1 (en) Efficient adjustment of spin-locking parameter values
JP2022177458A (ja) 情報処理装置、情報処理方法及びプログラム
CN112199153A (zh) 一种虚拟网络功能vnf实例部署方法及装置