양자 컴퓨터에 사용할 수있는 프로그래밍 언어는 무엇입니까?


53

이 질문에서 저는 주요 양자 컴퓨팅 프로그래밍 언어가 Q #QISKit이라는 것을 모았습니다 .

양자 컴퓨터 프로그래밍에 사용할 수있는 다른 프로그래밍 언어는 무엇입니까? 특정 것을 선택하면 어떤 이점이 있습니까?

편집 : 에뮬레이터가 아닌 프로그래밍 언어를 찾고 있습니다. 에뮬레이터는 사물을 시뮬레이션합니다. 프로그래밍 언어는 명령어를 작성하는 방법입니다 (실제 객체 또는 에뮬레이터 용). 여러 에뮬레이터에서 작동하는 단일 언어가있을 수 있으며 그 반대도 마찬가지입니다.


본질적으로 여기에 허용 된 답변에 나열된 언어 중 어느 것도 실제로 기존 양자 컴퓨터에 대해 실행할 수 없다는 것을 지적하고 싶습니다. 1) 기존 하드웨어에 대해 실행되도록 컴파일 할 수없는 언어를 요구하는지 확인하기 위해 질문을 편집하거나 2) 다른 답변을 수락하는 것이 더 합리적 일 수 있습니다.
DanielSank

1
@DanielSank Wikipedia 목록을 수락했습니다. 왜냐하면 목록이 실제로 하드웨어에서 실행되는 언어를 포함하도록 업데이트 될 것이라고 가정했기 때문입니다. Wikipedia에 해당 페이지가 계속 있다고 가정하면 최상의 응답으로 사용됩니다.
프로 Q

1
@ProQ-내 답변에 약간의 업데이트가 있습니다. 또한, 나는 내 대답이 잘라 내기 / 붙여 넣기가 아니라 링크를 확인했음을 클레임했습니다. 깨진 링크를 수정했습니다. 중요한 기고자 웹 사이트를 추가했습니다. -나는이 답변이 "대단히 우수"하다는 것을 보장하기 위해 수시로 돌아올 것입니다. 응답 및 유지 관리에 대한 세부 사항이 해결되었습니다. 내 대답의 일부 언어는 구매 가능한 하드웨어에서 실행되며 정기적으로 사용되고 있습니다. 당신의 믿음 ProQ에 감사드립니다.
Rob

도 있습니다 야오 줄리아, 작성 (확장, 인간에 대한 효율적인 양자 알고리즘 설계), github.com/QuantumBFS/Yao.jl는 . 그리고 여기여기 에 비교가 있습니다.
스칸

답변:


34

Quantum Computer 프로그래밍 언어의 위키 백과 목록

(이 답변은 해당 웹 페이지의 사본이 아니며 더 업데이트되고 링크가 확인되었습니다. 경우에 따라 저자의 논문 또는 웹 사이트 링크가 추가됩니다.)

Quantum Computing Report 웹 사이트 에는 12 개의 링크에 대한 도구 웹 페이지가 있으며 , 일부는 위의 목록을 반복하여 새롭고 일부는 반복합니다.

C / C ++, CaML, OCaml, F # 및 GUI 기반, Java, JavaScript, Julia, Maple, Mathematica, Maxima를 기반으로 한 시뮬레이터 및 프로그래밍 언어 목록은 QuanTiki의 웹 페이지 : " QC 시뮬레이터 목록 "을 참조하십시오 . , Matlab / Octave, .NET, Perl / PHP, Python, Scheme / Haskell / LISP / ML 및 계산기, 컴파일러, 시뮬레이터 및 툴킷 등을 제공하는 기타 온라인 서비스

특정 것을 선택하면 어떤 이점이 있습니까?

특정 양자 컴퓨터를 사용할 계획이라면 제조업체가 개발 한 프로그래밍 언어가 해당 특정 기계에 가장 적합하고 잘 지원되기를 바랍니다.

다음과 같이 더 큰 언어를 선택하면 더 많은 포럼이 있고 더 많은 버그 수정 및 지원이있을 수 있습니다.

불행히도, 그것은 틈새 시장 제품이 사용자 기반을 얻기 위해 애 쓰고 있습니다. 강력하고 표현력이 뛰어나고 다양한 플랫폼에서 지원되는 하나의 언어를 찾는 것이 속임수입니다.

Ryan LaRose는 " 게이트 레벨 양자 소프트웨어 플랫폼의 개요 및 비교 "(2018 년 7 월 6 일 )에서 4 가지 소프트웨어 플랫폼 인 Forest (pyQuil), QISKit, ProjectQ 및 Quantum Developer Kit의 평가를 제공합니다 .


업데이트 :

Google의 Cirq 및 OpenFermion-Cirq : " Google의 AI 블로그-Cirq 발표 : NISQ 알고리즘을위한 오픈 소스 프레임 워크 "

D-Wave의 Leap and Ocean SDK를 사용 하면 클라우드 환경에서 D-Wave 2000Q ™ 시스템 에 액세스하여 2000 개 이상의 큐 비트 양자 어닐링 머신에 액세스하여 무료로 워크로드를 테스트하고 실행하여 사용되는 핵심 알고리즘이 오픈 소스 풀에 있다고 가정 . D-Wave의 Leap In 웹 페이지 에서 로그인을 신청하십시오 .

Rigetti Computing의 QCS ( Quantum Cloud Service )는 Forest 2.0으로 사전 구성된 가상화 된 프로그래밍 및 실행 환경 인 Quantum Machine Image를 제공하여 최대 16Qubits의 128Qubit 컴퓨터 에 액세스 할 수 있습니다.

기존 컴퓨터보다 약 10,000 배 빠른 계산을 수행 할 수있는 아키텍처 인 Fujitsu의 Digital Annealer 에 대한 정보를 계속 확인하십시오 . 그들이 진정한 양자 컴퓨터 와 상호 호환되는 개발 환경을 제공 한다면 , 이 두 문단은이 답변에 남을 것이고, 그렇지 않으면 그것들을 제거 할 것입니다.

실리콘 칩은 본질적으로 양자가 아니지만 후지쯔는 1Qbit 과 제휴하여 디지털 어 닐러 가 오리처럼 떨리는 지 (D-Wave처럼 어닐링 하고 호환되는 코드를 사용 하는지) " Quantum Inspired AI Cloud Service "를 개발했습니다. 볼 수 있습니다. Fujitsu Digital Annealer 기술 서비스 에 액세스하려면 여기를 방문하십시오 .

University of Pennsylvania의 QWIRE ( 합창단 )는 양자 회로 언어 및 공식 검증 도구이며 GitHub 웹 페이지가 있습니다.

Cirq, Cliffords.jl, dimod, dwave-system, FermiLib, Forest (pyQuil & Grove), OpenFermion, ProjectQ, PyZX, QGL.jl, Qbsolv, Qiskit Terra and Aqua, Qiskit Tutorials 및 Qiskit.js, Qrack, Quantum Fog, Quantum ++, Qubiter, Quirk, reference-qvm, ScaffCC, Strawberry Fields, XACC 및 마지막으로 XACC VQE가 논문에서 제공됩니다 : " Quantum Computing의 오픈 소스 소프트웨어 "(Dec 21 2018), Mark Fingerhuth, Tomáš Babej와 Peter Wittek.

과도한 답변없이 업데이트를 위해 때때로이 답변으로 돌아갑니다 .



일종의 "프로그래밍"관련 뉴스 : IBM은 다음 달에 이용할 수있는 53 Qubit 컴퓨터를 일반인이 발표했습니다 .
Rob

28

게이트 모델 하드웨어 공급 업체는 자체 저수준 언어를 구축했습니다.

이것들은 더 높은 수준의 파이썬 SDK를 가지고 있습니다 :

Rigetti는 또한 Grove 라는 사전 빌드 된 애플리케이션을 호출하기 위해 언어를 상위 레벨 라이브러리에 배치하고 있습니다 .

Microsoft는 기존 시뮬레이터와 실제 하드웨어에 대해 실행할 Q # 을 개발했습니다 .

위의 언어는 공급 업체별로 다르기 때문에 주요 이점은 컴퓨터에서 퀀텀 프로그램을 실행할 수 있다는 것입니다.

공급 업체별 언어 외에는 프린스턴 연구원이 개발하고있는 스캐 폴드 가 있습니다. 이 언어는 비용, 성능 잠재력 및 확장 가능성을 결정하기 위해 프로그램을 분석하기위한 툴체인 을 포함하므로 흥미 롭습니다 .

편집 : Project Q 는 포함 된 시뮬레이터에서 실행할 수있는 Python을 사용하는 프로그램을 개발할 수있는 또 다른 프레임 워크입니다.

Oak Ridge National Labs는 공급 업체별 코드를 추상화하여 사용자가 각 공급 업체별 언어로 코드를 복제하지 않고도 다양한 하드웨어 플랫폼에 액세스 할 수 있도록 XACC 라는 프로젝트를 시작했습니다 .


3
projectq.ch도 언급 할 가치가 있습니다.
James Wootton

1
기존 하드웨어에 대해 실제로 어떤 언어를 실행할 수 있는지 설명하기 때문에이 답변이 마음 에 듭니다 .
DanielSank


3

IBM Composer를 포함하겠습니다. 모든 버그와 오류 및 기능을 얻지 못하기 때문에 프로그래밍처럼 느껴지지 않지만 게이트의 명령을 QASM으로 명확하게 변환하여 실제 IBM 시뮬레이터 또는 실제 IBM 양자 컴퓨터에서 실행합니다 (선택은 사용자).


1

불행히도 Quantiki의 목록은 꽤 오래되었고 잘 유지되지 않았습니다. 양자 환경이 지속적으로 발전하고 있기 때문에이 질문에 대한 단일 응답으로 모든 양자 프로그래밍 언어를 나열하는 것조차 지속될 수 없습니다. 예를 들어 Google은 방금 며칠 전에 발표 된 이후 위의 답글에 포함되지 않은 NISQ (Noisy Intermediate Scale Quantum) 컴퓨터를위한 새로운 양자 프로그래밍 프레임 워크 인 Cirq를 출시 했습니다.

이 문제를 해결하고 QC StackExchange에 대한 다른 질문대한 답변 으로 GitHub 에서 활발하게 개발 된 양자 프로그래밍 언어 및 프레임 워크에 대한 포괄적 인 개요를 포함하는 엄선 된 오픈 소스 소프트웨어 프로젝트 목록을 시작했습니다 . 이 목록은 커뮤니티에서 적극적으로 유지 관리하며 지속적으로 새로운 프로젝트를 추가합니다.


2
이것은 훌륭한 자원처럼 보입니다. 감사합니다! 오픈 소스가 아닌 다른 유사한 프로젝트 목록이 있는지 궁금합니다.
프로 Q

1
@ProQ 솔직히 말하면 오픈 소스 목록은 양자 소프트웨어 공간의 95 % 이상을 차지한다고 생각합니다. 공개 액세스가 가능한 폐쇄 소스 패키지는 거의 없으며 공개 액세스없이 일부 회사 내에서 내부적으로 사용되는 퀀텀 소프트웨어는 신경 쓰지 않습니다.
Mark Fingerhuth
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.