Getting Started
QuREKA에서 양자 작업을 요청하고 결과를 확인하는 과정을 살펴봅시다.
양자 작업은 양자 회로를 포함하는 일련의 프로그램 또는 알고리즘을 가리키는데, 단순히 하나의 양자 회로로 표현되거나 VQE, QAOA 처럼 고전-양자 하이브리드 계산이 포함된 일련의 알고리즘일 수도 있습니다.
본 문서에서는 하나의 양자 회로를 포함하는 간단한 양자 작업을 작성합니다.
양자 작업 작성
개발 환경 진입
먼저 양자 회로를 작성하기 위해 대시보드의 Notebook 버튼을 눌러서 접속합니다.
커널 선택
접속을 마쳤다면 양자 작업을 작성할 커널을 선택합니다. QuREKA는 네 종류의 커널을 제공합니다.
Jupyter notebook 파일을 생성한 후에도 우측 상단의 커널 이름을 클릭하여 커널을 변경할 수 있습니다.
양자 회로 작성
사용자는 CUDA-Q 또는 Pennylane에 기반하여 양자 회로를 작성할 수 있습니다. QuREKA는 CUDA-Q에 최적화된 DGX 서버를 제공하므로 우리는 CUDA-Q로 개발하는 것을 권장합니다. 우리는 예시로 세 큐비트에 대한 GHZ 상태를 생성합니다.
import cudaq
@cudaq.kernel
def ghz(numQubits:int):
qubits = cudaq.qvector(numQubits)
h(qubits.front())
x.ctrl(qubits[0],qubits[1])
x.ctrl(qubits[1],qubits[2])
mz(qubits)
작업을 제출하기 전에 이 회로가 유효한지 먼저 확인해볼 수 있습니다.
sample_result = cudaq.sample(ghz, 3)
print(sample_result)
실행 결과는 아래처럼 `000`부터 `111`까지 총 8개의 상태가 약 125회씩 출력됩니다. 이 결과값은 무작위성에 의해서 실행할때마다 다를 수 있습니다.
{ 000:123 001:158 010:121 011:107 100:107 101:115 110:124 111:145 }
양자 작업 제출
양자 자원을 선택하여 양자 작업을 제출합니다. `cudaq.set_target`을 통해 QuREKA에서 제공하는 다양한 양자 백엔드를 선택할 수 있습니다. 양자 작업을 제출하기 위해서 QuREKA에서 제공하는 API 키를 사용합니다. API 키는 [대시보드](./interfaces/Dashboard.md) 탭에서 확인할 수 있습니다.
아래 예제는 MIMIQ 시뮬레이터를 사용하기 위한 `target` 설정 방법입니다.
device = "qube.mimiq"
api_key = "TYPE_YOUR_API_KEY"
cudaq.set_target("sdt",device=device,api_key=api_key)
양자 작업 확인
제출된 양자 작업은 화면 우측 'TASK' 탭 또는 QuREKA 콘솔의 '양자 작업' 탭에서 모니터링할 수 있습니다.