MS, 양자컴퓨터 프로그래밍언어 오픈소스 공개 예고

양자컴퓨팅 및 알고리즘 개발 촉진과 개발자를 위한 투명성 확대

컴퓨팅입력 :2019/05/09 11:11    수정: 2019/05/09 11:18

[시애틀(미국)=임민철 기자] 마이크로소프트(MS)가 양자컴퓨터 프로그래밍 언어를 포함한 개발도구를 오픈소스로 풀겠다고 예고했다. 양자컴퓨터가 대중화될 시기에 앞서 전통적인 학계와 산업계 연구자 및 개발자들이 양자컴퓨터를 다루고 활용할 수 있는 수단을 제공해 기술 커뮤니티의 활성화에 나서겠다는 포석이다.

MS는 지난 6일 미국 워싱턴스테이트컨벤션센터 '빌드2019' 개발자컨퍼런스 진행 현장에서 그간 무료로 배포해 온 '양자개발도구(Quantum Development Kit)'의 소스코드를 여름께 깃허브에 공개하겠다고 밝혔다. 이날 공식 블로그에 양자개발도구를 오픈소스화하기로 한 배경과 기존 양자개발도구의 소스코드에 기여한 협력 사례가 일부 소개됐다. [원문보기 ☞ Open Source Release coming for Microsoft’s Quantum Development Kit]

양자개발도구는 지난 2017년말 MS가 선보인 양자컴퓨터용 프로그래밍 언어 'Q#'의 컴파일러와 그 프로그램을 돌리기 위한 퀀텀 시뮬레이터(quantum simulators)를 포함한다. MS는 깃허브에 양자개발도구를 오픈소스 프로젝트로 공개해, 개발자들이 성장하고 있는 양자컴퓨팅 프로그래머 커뮤니티에 기여할 수 있도록 하겠다고 밝혔다. MS는 이미 지난해부터 양자개발도구에 포함된 라이브러리와 샘플 등 몇 가지 구성요소를 오픈소스로 공개하면서 이런 작업을 추진해 왔다고 설명했다.

마이크로소프트가 2018년 2월 유튜브에 공개한 양자개발도구 업데이트 영상. 당시 맥OS와 리눅스 지원, 파이썬 언어와 Q# 언어 상호운용성이 추가됐다는 소식을 강조했다. [사진=유튜브 영상 캡처]

MS의 양자개발도구는 현재 무료로 내려받을 수 있는 상태다. 윈도용 버전과 맥OS 및 리눅스용 버전이 따로 배포되고 있다. Q#은 MS가 지난 2017년 12월 공개한 양자컴퓨터 프로그래밍 언어다. 당시 MS는 전통적인 프로그래밍 개념을 양자컴퓨팅 분야에 도입할 목적으로 Q#을 개발했다고 밝혔다. 그간 양자컴퓨터에서 돌아가는 알고리즘을 짜기 위해 논리게이트방식을 써 왔는데 일반 컴퓨터 프로그래밍에서처럼 함수, 변수, 분기, 디버깅을 지원하는 개발환경을 제공하고자 했다는 설명이다.

MS는 '마이크로소프트 퀀텀 네트워크'라는 파트너 네트워크를 만드는 등 양자컴퓨터 기술 분야에서 다른 전문가들과 협력하는 자리를 마련해 왔다. MS의 양자개발도구에 그 협력 성과도 포함돼 있다. 일례로 이 네트워크에 참여하고 있는 원큐비트(1QBit)는 신소재 및 양자화학연구를 가속하기 위해 양자개발도구에 두 가지 코드 샘플을 기여했는데, 하나는 변이양자고유솔버(VQE)에 초점을 맞춘 것이고 또 하나는 원큐비트의 QEMIST 플랫폼 위에 밀도행렬임베딩이론(DMET)을 구현한 것이었다.

MS는 오픈소스 소프트웨어를 필요로하는 학술기관이 그들의 양자 학습과 개발에 Q#을 활용할 수 있을 것이라 봤다. 이를 통해 개발자와 특정 분야 전문가들이 그들의 코드를 통해 향상시킨 요소와 아이디어를 기여할 수 있을 거라 기대했다. 양자개발도구의 화학관련 라이브러리를 개발해 기여한 미국 퍼시픽노스웨스트국립연구소(PNNL)와의 협력 사례를 언급했다. 화학자를 위한 분자 상호작용 시뮬레이션과 화학 분야에서 현실에 양자 알고리즘 적용방안을 탐구할 수 있게 해주는 NWChem의 코드 샘플 겸 인터페이스가 그 결과물로 소개됐다.

올여름께 오픈소스로 풀릴 Q# 프로그래밍 언어와 퀀텀시큘레이터를 포함한 마이크로소프트 '퀀텀개발도구(Quantum Development Kit)'의 홈페이지 특징 설명.

지난 7일 빌드2019 컨퍼런스 2일차 행사장에선 MS 연구원들이 참석자들을 대상으로 양자개발도구를 활용하는 방법을 소개하고 시연하는 강연도 진행했다. 크리스토퍼 그래네이드 MS 리서치 시니어 소프트웨어 개발 엔지니어(SDE)와 안드레스 파즈 MS 프린시펄 소프트웨어 엔지니어의 '마이크로소프트 양자개발도구와 주피터 노트북으로 개발하기'라는 강연이었다.

파즈 엔지니어는 "양자 프로그램은 고전적인 프로그램과 다르다"며 "고전 프로그램은 1과 0과 로직을 사용하고 값을 저장해 한 단계에서 다음 단계로 넘어가는 식으로 실행되는데, 양자 프로그램은 여전히 1과 0이 있지만 그 둘이 존재할 확률을 프로그램에 얘기해 줘서 처리한다"고 말했다. 이어 "이런 확률을 이용한 프로그램을 만들어 양자컴퓨터가 더 적은 단계를 거치면서 더 빠르게 처리되게 할 수 있다"고 설명했다.

양자컴퓨터 프로그래밍 언어로 MS의 양자개발도구에 포함된 Q#이 소개됐다. 양자개발도구는 양자컴퓨터에 Q# 연산을 지시해 실행할 수 있도록 만드는 도구다. 실제 양자컴퓨터가 없는 사용자에게, 양자컴퓨터처럼 동작하는 시뮬레이션을 데스크톱이나 애저 클라우드에서 구동하게 할 수 있다. 또 모든 프로그램 코드를 실행하는 대신에, 실행했을 경우 실제 양자컴퓨터의 리소스가 얼마나 될지 파악하는 기능도 제공한다.

크리스토퍼 그래네이드 MS 리서치 시니어 소프트웨어 개발 엔지니어(SDE)와 안드레스 파즈 MS 프린시펄 소프트웨어 엔지니어의 '마이크로소프트 양자개발도구와 주피터 노트북으로 개발하기'라는 강연 발표 자료 일부.

주피터는 여러 프로그래밍 언어와 클라이언트를 연결할 수 있는 일종의 프레임워크다. 파이썬, R, F#, 줄리아(Julia) 등 프로그래밍 언어를 주피터 노트북, 주피터 랩, 엔터랙트(nteract), 비주얼스튜디오 코드 등 코드 실행 결과를 보여주며 상호작용 가능한 클라이언트에 연결해 주는 용도다. 강연에선 양자개발도구와 함께 쓰일 수 있는 도구로 언급됐다. 파즈 엔지니어는 "이제 주피터 프레임워크에 Q#을 연결해 C# 코드를 대신 쓰지 않고도 직접 양자 연산을 할 수 있다"며 "또 파이썬으로 Q# 연산을 시뮬레이트할 수도 있다"고 설명했다.

관련기사

그래네이드 엔지니어는 Q# 프로그래밍 언어와 주피터로 실제 작성된 코드를 불러내 편집하고 실행하는 과정을 시연했다. 주피터 노트북 표준 인터페이스로 코드 중 익숙치 않은 명령을 보게 되면 초기버전 퀀텀 시뮬레이터의 명령을 설명하는 기술 문서 내용을 보여 준다. 알고리즘을 다룰 때 복잡한 프로그램일수록 양자컴퓨터의 하드웨어 특성을 염두에 둬야 하는 경우가 있는데, 양자개발도구에 포함된 라이브러리를 사용하면 주피터 노트북의 인터페이스를 통해 상대적으로 알고리즘을 기술하고 개발하는 자체에 더 집중할 수 있다.

양자개발도구 기반의 예제를 통해 파이썬같은 다른 프로그래밍 언어로 짠 프로그램을 Q# 연산과 함수로 변환해 실행하는 시연이 이어졌다. 그래네이드 엔지니어는 파이썬 객체를 저장해 컴파일러로 보낸 다음, 코드를 실행할 대상 기기, 즉 양자컴퓨터에서 그 프로그램을 돌리려할 때 필요한 게이트가 얼마나 될지, 계산에 소비되는 자원이 얼마나 필요할지 확인하는 과정을 보여 줬다. 또 주피터용 Q# 커널인 'IQ#'을 설치해 파이썬 내부에 Q# 프로그램을 불러오는 것도 가능함을 보여 줬다.

빌드2019 현장에서 '마이크로소프트 양자개발도구와 주피터 노트북으로 개발하기'라는 강연을 진행한 안드레스 파즈 MS 프린시펄 소프트웨어 엔지니어(왼쪽)와 크리스토퍼 그래네이드 MS 리서치 시니어 소프트웨어 개발 엔지니어.