양자 소프트웨어 (Quantum Software)
편집하기 (부분)
둘러보기로 이동
검색으로 이동
경고:
로그인하지 않았습니다. 편집을 하면 IP 주소가 공개되게 됩니다.
로그인
하거나
계정을 생성하면
편집자가 사용자 이름으로 기록되고, 다른 장점도 있습니다.
스팸 방지 검사입니다. 이것을 입력하지
마세요
!
= 검증 및 디버깅 = 복잡한 프로그램 및 시스템을 개발하는 핵심 기술 중 하나는 검증 및 디버깅 기술이다. 고전 컴퓨팅 기술은 복잡한 시스템을 간단하게 모델링할 수 있는 인터페이스와 고성능 시뮬레이터를 통해 개발 비용을 줄이고 개발 속도를 개선시켜왔다. 고전 컴퓨터의 결정적 계산 모델은 사용자가 프로그램을 쉽게 검증하고 개발할 수 있도록 하였다. 대규모 양자 시스템을 개발하기 위해서도 이러한 효과적인 검증 및 디버깅 기술이 절실하다. 그러나 현재 기술로는 매우 어려운 일이 될 것으로 예측된다. 이러한 어려움은 크게 두 가지 원인에서 기인한다. 첫째, 양자 시스템은 [[큐비트]]의 개수에 지수적으로 비례하는 상태 공간 크기를 가지며 결국 대규모 양자 프로그램을 검증하는 것은 사실상 불가능하다. 따라서 대규모 양자 컴퓨터 개발은 복잡한 시스템을 단순하게 기술하기 위한 해석적 모델링 기술을 필요로 한다. 둘째, 양자 붕괴(collapse) 현상으로 인하여 사용자는 시스템의 최종적인 상태가 아닌 측정을 통해 일부 표본만 얻을 수 있다. 사용자는 자신이 기술한 알고리듬이 목적한 최종 상태에 놓이게 되었는지 확인하기 매우 어렵다. 나아가 양자 붕괴 현상은 작성된 양자 프로그램을 디버깅하는 것을 어렵게 만들 뿐만 아니라 시스템 오류의 원인을 분석하고 개선하는 것을 어렵게 만든다. 특히 NISQ 시대의 [[양자 컴퓨터]]가 지니는 오류 취약성은 문제를 더욱 복잡하게 만든다. 현재 단계에서 적용되고 있는 양자 프로그램 검증 및 디버깅 기술을 실행 중 검증과 실행 후 검증 크게 두 가지로 나눌 수 있다. 실행 중 검증은 실행 중간에 양자 프로그램이 만족시켜야 할 특성을 사용자가 명세하고 이를 프로그램에 선언(assertion)의 형태로 표현하는 것이다.<ref name=Huang>Y. Huang & M. M. artonosi, Statistical assertions for validating patterns and finding bugs in quantum programs, in ''Proceedings of the 46th International Symposium on Computer Architecture'' (ISCA 2019), p.541. doi:[https://doi.org/10.1145/3307650.3322213 10.1145/3307650.3322213]. </ref> 선언은 고전 컴퓨터에서 효과적으로 사용되는 기술로 사용자가 목적한 바를 논리적 선언의 형태로 기술하고 시스템이 이에 따라 변화하고 있다는 것을 실행 중간에 검사하여 확인하는 것이다. 만약 명시된 특성이 만족되지 않으면, 프로그램은 오류를 출력하고 종료한다. 양자 프로그램의 선언도 이와 유사하다. 단, 양자 프로그램의 특성상 참과 거짓으로 구별되는 논리적 선언과 달리 확률적 선언의 형태를 지니게 된다. 실제 양자 하드웨어 상에서 확률적 선언을 실행하기 위해서는 보조 큐비트(ancillary qubit)를 필요로 한다. 우선 보조 큐비트와 사용되는 큐비트가 물리 큐비트와[[양자 얽힘 상태]]에 놓여있도록 한다. 확률적 선언의 실행은 보조 큐비트에 대한 측정을 통해 이루어지며, 검증이 끝난 뒤에는 다시 양자 얽힘 상태를 만들도록 해야한다. 이 모든 과정은 컴파일러에 의해 자동으로 수행될 수 있다. 실행 후 검증은 동일한 양자 프로그램을 반복적으로 실행하여 얻은 결과를 통해 측정 전 상태에 대한 통계적 추론을 하는 것이다 (quantum tomography). 이 때 통계적으로 유의미한 결과를 얻기 위해 반복해야 할 실험의 수는 [[큐비트]]의 개수에 지수적으로 비례한다는 것이 알려져 있다. 결국 고전 시뮬레이션을 수행하는 것과 다르지 않은 시간이 소모되며, [[양자 이점]]을 포기해야 한다. 실행 후 검증 기술의 핵심은 적은 반복 만으로 주어진 양자 프로그램이 생성할 확률 분포를 추론하는 것이다. 특히 NISQ 시대의 양자 컴퓨터 상에서 적은 횟수의 실험 만으로 결과를 보장할 수 있다면 상당한 성능 향상을 끌어낼 수 있을 것으로 예측된다. 물론 실행 후 검증의 경우 오류의 발생 지점과 원인을 파악하기 어렵다는 한계가 있다는 점에 주의해야 한다.
요약:
한국양자정보학회 위키에서의 모든 기여는 다른 기여자가 편집, 수정, 삭제할 수 있다는 점을 유의해 주세요. 만약 여기에 동의하지 않는다면, 문서를 저장하지 말아 주세요.
또한, 직접 작성했거나 퍼블릭 도메인과 같은 자유 문서에서 가져왔다는 것을 보증해야 합니다(자세한 사항은
한국양자정보학회 위키:저작권
문서를 보세요).
저작권이 있는 내용을 허가 없이 저장하지 마세요!
취소
편집 도움말
(새 창에서 열림)
둘러보기 메뉴
개인 도구
로그인하지 않음
토론
기여
계정 만들기
로그인
이름공간
문서
토론
한국어
보기
읽기
편집
역사 보기
더 보기
검색
둘러보기
대문
최근 바뀜
임의의 문서로
미디어위키 도움말
도구
여기를 가리키는 문서
가리키는 글의 최근 바뀜
특수 문서 목록
문서 정보