연습 - Azure Portal을 사용하여 양자 프로그램 실행
Azure Quantum 포털에는 샘플 Notebooks가 포함된 Notebooks 갤러리가 포함되어 있습니다. 이러한 Notebooks를 사용하여 자체 양자 프로그램을 실행할 수 있습니다.
필수 구성 요소
- Azure 구독 Azure 구독이 아직 없는 경우 시작하기 전에 체험 계정을 만듭니다.
Quantum 작업 영역 만들기
- Azure 구독에 대한 자격 증명을 사용하여 Azure Portal에 로그인합니다.
- 리소스 만들기를 선택한 다음 Azure Quantum을 검색합니다. 결과 페이지에 Azure Quantum 서비스 타일이 표시됩니다.
- Azure Quantum을 선택한 다음 만들기를 선택합니다. 작업 영역을 만드는 양식이 열립니다.
- 새 작업 영역과 연결할 구독을 선택합니다.
- 빨리 만들기를 선택합니다.
- 이름을 입력하고 작업 영역의 지역을 선택합니다.
- 만들기를 실행합니다.
작업 영역 배포는 몇 분 정도 걸릴 수 있습니다. 상태 및 배포 세부 정보는 포털에서 업데이트됩니다.
Azure Quantum Notebooks를 사용하여 양자 프로그램 실행
Notebook 만들기
- Azure Portal에서 새 Quantum 작업 영역을 선택합니다.
- Notebook을 선택합니다.
- 내 Notebooks를 클릭하고 새로 추가를 클릭합니다.
- 파일 이름(예: submit-quantum-job.ipynb)을 입력하고 파일 만들기를 클릭합니다.
- Notebooks는 내 Notebooks에서 찾을 수 있으며 이제 Notebooks를 실행할 수 있습니다.
Azure Quantum 작업 영역에 연결
Azure Quantum 서비스에 연결하려면 리소스 ID와 Azure Quantum 작업 영역의 위치가 필요합니다. Azure Portal 작업 영역의 개요 섹션에서 이 값을 찾을 수 있습니다.
Notebook의 새 셀에 다음 코드를 복사하고 resource_id
및 location
의 값을 작업 영역의 값으로 바꿉니다.
import azure.quantum
workspace = Workspace (
resource_id = "", # Add your resource_id
location = "" # Add your workspace location (for example, "westus")
)
Q# 연산 작성
먼저, 이후 셀에서 사용되는 "%%qsharp" 매직 명령을 사용하도록 설정하려면
qsharp
패키지를 가져와야 합니다. Notebook의 새 셀에 다음 코드를 추가합니다.import qsharp
Notebook의 새 셀에 다음 코드를 복사합니다. 이 코드는
%%qsharp
'magic' 명령을 사용하여 임의 비트를 생성하는 Q# 작업을 정의합니다.%%qsharp operation Random() : Result { use q = Qubit(); H(q); let result = M(q); Reset(q); return result } operation RandomNBits(N: Int): Result[] { mutable results = []; for i in 0 .. N - 1 { let r = Random(); set results += [r]; } return results }
Random
작업은H
게이트를 사용하여 큐비트를0
및1
의 중첩에 넣은 다음 큐비트를 측정하여 임의의 비트를 가져옵니다.Reset
연산은 큐비트를|0⟩
상태로 다시 설정합니다.RandomNBits
연산은 정수N
을 입력으로 사용하고N
임의 비트의 배열을 반환합니다.
Q# 작업 실행
Rigetti 시뮬레이터에 대해 100개의 샷에 대해
RandomNBits
작업을 실행하려면 Notebook의 새 셀에 다음 코드를 추가합니다.operation = qsharp.compile("RandomNBits(4)") target = workspace.get_targets("rigetti.sim.qvm") job = target.submit(operation, "my-azure-quantum-job", input_params={ "count": 100 }) # Wait for the job to complete job.get_results()
전체 프로그램을 위에서 아래로 실행하려면 모두 실행을 선택합니다.
예제를 살펴보고 각 셀을 위에서 아래로 개별적으로 실행하려면 실행할 셀을 선택하고 실행 아이콘을 선택합니다.