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


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.