Skip to content

Repository files navigation

연세대학교 양자컴퓨터 테스트 환경

소개

이 프로젝트는 연세대학교에 도입된 IBM Quantum System One 양자컴퓨터를 조금 더 쉽게 테스트할 수 있게 세팅해 둔 프로젝트입니다.

연세대학교는 대한민국 최초로 IBM Quantum System One을 국제캠퍼스에 설치하였으며, 이를 통해 교내 구성원들이 양자컴퓨팅을 실습할 수 있도록 무료 시범 운영 서비스를 제공하고 있습니다.

이 프로젝트를 통해 다음을 수행할 수 있습니다:

  • IBM Quantum API를 통해 연세대학교 양자컴퓨터에 연결
  • 기본적인 양자 회로를 작성하고 실행
  • 백엔드 설정 및 대기열 관리 자동화

추가적으로, /Quantum_Computing_Tutorials 폴더 내에 양자컴퓨팅과 관련한 강의들을 간단히 작성해 두었으니 입문자의 경우 이를 참고하여 공부할 수 있습니다.


주요 기능

  1. 양자컴퓨터 백엔드 설정

    • .env 파일에 설정된 백엔드를 자동으로 연결
    • 설정이 없을 경우 사용 가능한 백엔드 목록에서 첫 번째 백엔드를 선택
  2. 대기열 관리

    • 백엔드의 대기열 상태를 확인하고, 대기열이 처리될 때까지 대기
  3. 양자 회로 실행

    • 간단한 양자 회로를 실행하고 결과를 확인

설치 및 설정

1. IBM Quantum 계정 생성

IBM Quantum 웹사이트(https://quantum-computing.ibm.com/)에서 계정을 생성하고, API 키를 발급받습니다.

연세대학교 양자컴퓨터의 API 키는 이벤트 기간에만 발급되었기 때문에, 연세대학교 양자컴퓨터 전용 API 키를 새로 발급받으려면 연세대학교 양자정보기술연구원에 별도로 문의해 보는 것을 추천드립니다.

발급받은 API 키는 .env 파일에서 사용됩니다.

2. .env 파일 생성

프로젝트 루트 디렉토리에 .env 파일을 생성하고, 아래 내용을 추가합니다:

API_TOKEN=발급받은_API_키
BACKEND=사용할_백엔드_이름
  • API_TOKEN: IBM Quantum에서 발급받은 API 키를 입력합니다.
  • BACKEND: 사용할 백엔드 이름을 입력합니다 (예: ibmq_qasm_simulator).
    만약 BACKEND를 설정하지 않으면, 사용 가능한 백엔드 중 첫 번째가 자동으로 선택됩니다.

3. 의존성 설치

Python 환경에서 필요한 라이브러리를 설치합니다:

pip install -r requirements.txt

코드 설명

1. quantum.py

양자 회로를 작성하고 실행하는 메인 코드입니다.
.env 파일에 BACKEND 값이 설정되어 있으면 해당 백엔드를 사용하며, 설정이 없을 경우 대기열이 가장 짧은 백엔드를 자동으로 선택합니다.
이 코드를 실행하여 양자 회로를 테스트할 수 있습니다.

2. backend_status_check.py

사용 가능한 백엔드 목록과 각 백엔드의 대기 중인 사용자 수를 확인하는 코드입니다.
백엔드 목록 및 상태를 확인할 때 이 코드를 실행하세요.

  • 실행 결과 예시

    [사용 가능한 백엔드 목록]
    ibm_brisbane (대기열에 대기 중인 사용자 수: 15)
    ibm_kyiv (대기열에 대기 중인 사용자 수: 32)
    ibm_sherbrooke (대기열에 대기 중인 사용자 수: 15)
    ibm_yonsei (대기열에 대기 중인 사용자 수: 6)
    

3. quantum_local.ipynb

양자 회로를 로컬 환경에서 시뮬레이션하기 위한 코드입니다.
IBM Quantum 서버를 사용하지 않고, Qiskit Aer를 통해 로컬에서 실행할 수 있는 환경을 제공합니다.
빠른 테스트나 로컬 개발 환경에서 사용하기 적합합니다.

  • 주요 기능:

    • QuantumCircuit을 생성하고, AerSimulator를 사용해 회로를 시뮬레이션
    • 백엔드 대기열 없이 빠르게 실행 결과를 확인 가능
    • 설치된 로컬 Qiskit 환경에서 실행
  • 실행 결과 예시:

    측정 결과: {'1': 496, '0': 504}
    

이 코드는 양자 회로의 기본 동작을 확인하거나, IBM Quantum 서버와 독립적으로 테스트할 때 사용됩니다.

4. settings.py

백엔드 설정 및 대기열 관리를 담당하는 코드입니다.
.env 파일에서 BACKEND 값을 확인하거나, backend_status_check.py의 기능을 활용해 대기열이 가장 짧은 백엔드를 선택합니다.
직접 실행하거나 수정할 필요가 없는 내부 로직 코드입니다.

5. /Quantum_Coumputing_Tutorials

양자컴퓨팅 기초와 관련하여 간단한 개념들을 정리한 강의들입니다. 입문자의 경우 이 강의들을 보며 기본 개념들을 쉽게 이해할 수 있습니다.


사용법

  1. 레포지토리 클론
    프로젝트를 로컬 환경으로 clone합니다:

    git clone https://github.com/your_username/yonsei-quantum-test.git
    cd yonsei-quantum-test
    
  2. 코드 작성 quantum.py에 양자컴퓨터로 실행할 코드를 작성합니다.

    초기 테스트 코드가 작성되어 있기 때문에 초기 실행 테스트를 위해서는 별도로 코드를 작성할 필요는 없습니다.

  3. 테스트 실행
    아래 명령어로 테스트 코드를 실행합니다:

    python quantum.py
    
  4. 실행 결과 예시
    실행 시 선택된 백엔드와 대기열 상태, 양자 회로 실행 결과가 출력됩니다:

    선택된 backend: ibm_yonsei
    대기열에 대기 중인 사용자 수: 0
    backend 상태: 사용 가능
    코드를 실행합니다.
    --------------------
    측정 결과: {'0': 500, '1': 500}
    
  5. 백엔드 대기열이 너무 길 경우
    IBM Quantum 서버의 대기열이 너무 길면 quantum_local.ipynb를 이용해 로컬 환경에서 테스트할 수 있습니다. 로컬 시뮬레이션에서는 백엔드 대기열 없이 빠르게 실행 결과를 확인할 수 있습니다.

About

연세대학교 양자컴퓨터 IBM Quantum System One을 쉽게 사용할 수 있도록 세팅해 둔 프로젝트

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages