มีโปรแกรมภาษาอะไรบ้างสำหรับคอมพิวเตอร์ควอนตัม


53

จากคำถามนี้ผมรวบรวมว่าควอนตัมคอมพิวเตอร์หลักภาษาการเขียนโปรแกรมQ #และQISKit

มีโปรแกรมภาษาอื่นใดบ้างสำหรับการโปรแกรมคอมพิวเตอร์ควอนตัม มีประโยชน์บางอย่างในการเลือกรายการใดรายการหนึ่งหรือไม่

แก้ไข: ฉันกำลังมองหาภาษาการเขียนโปรแกรมไม่ใช่ตัวเลียนแบบ อีมูเลเตอร์จำลองสิ่งต่าง ๆ ภาษาการเขียนโปรแกรมเป็นวิธีการเขียนคำสั่ง (สำหรับวัตถุจริงหรือสำหรับการเลียนแบบ) อาจมีภาษาเดียวที่ใช้กับอีมูเลเตอร์หลายตัวและในทางกลับกัน


ฉันอยากจะชี้ให้เห็นว่าไม่มีภาษาใดที่แสดงรายการอยู่ในคำตอบที่ยอมรับได้ที่นี่จริง ๆ แล้วสามารถทำงานกับคอมพิวเตอร์ควอนตัมที่มีอยู่ได้ มันอาจสมเหตุสมผลมากกว่าหากจะ 1) แก้ไขคำถามเพื่อให้ชัดเจนว่าคุณกำลังขอภาษาที่ไม่สามารถคอมไพล์ให้ทำงานกับฮาร์ดแวร์ที่มีอยู่หรือ 2) ยอมรับคำตอบที่ต่างออกไป
DanielSank

1
@DanielSank ฉันยอมรับรายการ Wikipedia หนึ่งรายการเพราะฉันคิดว่ารายการนั้นจะได้รับการอัปเดตเพื่อรวมภาษาที่ใช้งานจริงบนฮาร์ดแวร์ มันจะทำหน้าที่เป็นการตอบสนองที่ดีที่สุดโดยสมมติว่า Wikipedia ยังคงมีหน้านั้นอยู่
Pro Q

1
@ProQ - มีการปรับปรุงเล็กน้อยสำหรับคำตอบของฉัน นอกจากนี้ฉันได้อ้างว่าคำตอบของฉันไม่ได้ถูกตัด / วาง แต่มีการเชื่อมโยงการตรวจสอบ ฉันแก้ไขลิงก์ที่ใช้งานไม่ได้แล้ว ฉันได้เพิ่มเว็บไซต์ของผู้สนับสนุนที่สำคัญแล้ว - ฉันจะกลับมาอีกเป็นครั้งคราวเพื่อให้แน่ใจว่าคำตอบนี้ "ยอดเยี่ยมโดยประมาณ" รายละเอียดเกี่ยวกับการตอบและการบำรุงรักษาได้รับการแก้ไข บางภาษาในคำตอบของฉันใช้กับฮาร์ดแวร์ที่มีให้ซื้อและมีการใช้งานเป็นประจำ ขอบคุณสำหรับศรัทธา ProQ ของคุณ
Rob

นอกจากนี้ยังมียาว (Extensible มีประสิทธิภาพควอนตัมอัลกอริทึมที่ออกแบบมาสำหรับมนุษย์) เขียนจูเลียgithub.com/QuantumBFS/Yao.jl และที่นี่และที่นี่คุณจะพบการเปรียบเทียบ
skan

คำตอบ:


35

รายการวิกิพีเดียภาษาการเขียนโปรแกรมคอมพิวเตอร์ควอนตัม

(คำตอบนี้ไม่ใช่สำเนาของหน้าเว็บนั้นมีการปรับปรุงเพิ่มเติมและมีการเชื่อมโยงการตรวจสอบในบางกรณีเพิ่มลิงค์กระดาษหรือเว็บไซต์ของผู้เขียน)

  • ชุดคำสั่งควอนตัม

    • Quil - สถาปัตยกรรมชุดคำสั่งสำหรับการคำนวณควอนตัมที่แนะนำรูปแบบหน่วยความจำควอนตัม / คลาสสิกร่วม ดูPyQuilด้วย

    • OpenQASM - The กลางเป็นตัวแทนนำโดย IBM สำหรับใช้กับพวกเขาประสบการณ์ควอนตัม

  • ภาษาโปรแกรมควอนตัม

    ภาษาที่จำเป็น

  •  

    ภาษาหน้าที่

  •  

    ภาษาหลายกระบวนทัศน์

    • Q # (Q Sharp) - ภาษาการเขียนโปรแกรมเฉพาะโดเมนที่ใช้สำหรับแสดงอัลกอริทึมควอนตัม ไมโครซอฟท์เปิดตัวสู่สาธารณะโดยเป็นส่วนหนึ่งของ Quantum Development Kit นอกจากนี้ยังมี Microsoft Quantum Katasซึ่งเป็นชุดการสอนด้วยตนเองที่มุ่งเน้นการสอนองค์ประกอบของการคำนวณควอนตัมและการเขียนโปรแกรม Q # ในเวลาเดียวกัน

    • Strawberry Fields (จากXanduAI ) เป็นห้องสมุด Python แบบเต็มสแต็คสำหรับการออกแบบการจำลองและการเพิ่มประสิทธิภาพวงจรออปติคอลควอนตัมแปรผันอย่างต่อเนื่อง

รายงานการคำนวณควอนตัมของเว็บไซต์มีรายชื่อหน้าเว็บของเครื่องมือบนลิงก์หลายสิบรายการใหม่และบางรายการซ้ำด้านบน

ดูหน้าเว็บของ QuanTiki: " List of QC simulators " สำหรับรายการใหญ่ของ simulators และภาษาโปรแกรมตาม: C / C ++, CaML, OCaml, F # พร้อมด้วย GUI, Java, JavaScript, Julia, Maple, Mathematica, Maxima , Matlab / Octave, .NET, Perl / PHP, Python, Scheme / Haskell / LISP / ML และบริการออนไลน์อื่น ๆ ที่มีเครื่องคิดเลขคอมไพเลอร์ซิมูเลเตอร์และชุดเครื่องมือ ฯลฯ

มีประโยชน์บางอย่างในการเลือกรายการใดรายการหนึ่งหรือไม่

หากคุณวางแผนที่จะใช้คอมพิวเตอร์ควอนตัมโดยเฉพาะคุณก็หวังว่าภาษาการเขียนโปรแกรมที่พัฒนาโดยผู้ผลิตนั้นเหมาะสมที่สุดสำหรับเครื่องนั้นและได้รับการสนับสนุนเป็นอย่างดี

การเลือกภาษาที่มีขนาดใหญ่กว่าดังต่อไปนี้หมายความว่ามีฟอรัมเพิ่มเติมและหวังว่าจะสามารถแก้ไขข้อผิดพลาดและสนับสนุนได้มากขึ้น

น่าเสียดายที่ทำให้ผลิตภัณฑ์เฉพาะกลุ่มบางกลุ่มต้องดิ้นรนเพื่อให้ได้ฐานผู้ใช้ การพยายามค้นหาภาษาเดียวที่มีทั้งความสามารถในการแสดงออกและรองรับในหลาย ๆ แพลตฟอร์มนั้นเป็นเคล็ดลับคำตอบก็คือ ATM ความคิดเห็น

การประเมินผลของสี่แพลตฟอร์มซอฟต์แวร์: Forest (pyQuil), QISKit, ProjectQ และชุดพัฒนา Quantum Developer นำเสนอโดย Ryan LaRose ใน " ภาพรวมและการเปรียบเทียบแพลตฟอร์มซอฟต์แวร์ควอนตัมระดับประตู " (6 ก.ค. 2561)


ปรับปรุง:

Cirq และ OpenFermion-Cirq ของ Google : " บล็อก AI ของ Google - ประกาศ Cirq: กรอบงานโอเพ่นซอร์สสำหรับอัลกอริทึม NISQ "

D-คลื่นLeap มหาสมุทรแปซิฟิกและ SDKช่วยให้การเข้าถึงระบบ D-คลื่น 2000Q ™ในสภาพแวดล้อมคลาวด์ที่มีการเข้าถึง 2000 + qubit เครื่องควอนตัมหลอมเพื่อทดสอบและรันเวิร์กโหลดฟรีสมมติว่าขั้นตอนวิธีการหลักที่ใช้ไปในสระว่ายน้ำเปิดแหล่งที่มา . สมัครเพื่อเข้าสู่ระบบที่หน้าเว็บLeap Inของ D-Wave

Quantum Cloud Service (QCS) ของ Rigetti Computing นำเสนอ Quantum Machine Image โปรแกรมเสมือนจริงและสภาพแวดล้อมการทำงานที่กำหนดค่าไว้ล่วงหน้าด้วย Forest 2.0 เพื่อเข้าถึง 16 qubits ของคอมพิวเตอร์ 128 บิต

คอยติดตามข้อมูลเกี่ยวกับDigital Annealerของฟูจิตสึซึ่งเป็นสถาปัตยกรรมที่สามารถทำการคำนวณได้เร็วกว่าคอมพิวเตอร์ทั่วไปถึง 10,000 เท่า หากในที่สุดพวกเขามีสภาพแวดล้อมการพัฒนาที่เข้ากันได้กับคอมพิวเตอร์ควอนตัมจริงทั้งสองย่อหน้าจะยังคงอยู่ในคำตอบนี้มิฉะนั้นฉันจะลบพวกเขา

ในขณะที่ชิปซิลิกอนของพวกเขาไม่ใช่ควอนตัมในธรรมชาติ Fujitsu ได้ร่วมมือกับ1Qbitเพื่อพัฒนาสิ่งที่อธิบายว่าเป็น " Quantum Inspired AI Cloud Service " ไม่ว่าDigital Annealerของพวกเขาจะเหมือนเป็ด (anneals เช่น D-Wave และใช้รหัสที่เข้ากันได้) ยังคงที่จะเห็น เยี่ยมชมที่นี่เพื่อเข้าถึงฟูจิตสึดิจิตอล annealer บริการด้านเทคนิค

มหาวิทยาลัยเพนซิลQWIRE ( ประสานเสียง ) เป็นภาษาวงจรควอนตัมและเครื่องมือการตรวจสอบอย่างเป็นทางการจะมีหน้าเว็บ GitHub

ความคิดเห็นของ: Cirq, Cliffords.jl, dimod, ระบบ dwave, FermiLib, ป่า (pyQuil & Grove), OpenFermion, ProjectQ, PyZX, QGL.jl, Qbsolv, Qiskit Terra และ Aqua, Qiskit Terra และ Qiskit.js, Qrack, Quantum Fog, Quantum ++, Qubiter, Quirk, Reference-qvm, ScaffCC, Strawberry Fields, XACC และในที่สุด XACC VQE ได้ถูกนำเสนอในบทความ: " ซอฟต์แวร์โอเพ่นซอร์สในการคำนวณควอนตัม " (21 ธ.ค. 2018) Tomáš Babej และ Peter Wittek

ผมจะกลับไปที่คำตอบนี้จากเวลาที่จะทำการอัปเดตโดยไม่ต้องมากเกินไปกระแทก



ข่าวที่เกี่ยวข้องกับการเรียงลำดับของ "การเขียนโปรแกรม": IBM ประกาศคอมพิวเตอร์ 53 Qubit พร้อมใช้งานในเดือนหน้าสำหรับการใช้งานโดยสาธารณะ
Rob

28

ผู้จำหน่ายฮาร์ดแวร์รุ่น Gate ได้สร้างภาษาระดับต่ำของตนเอง:

python sdk ระดับสูงกว่านี้มี:

Rigetti ยังเป็นห่อภาษาของพวกเขาในห้องสมุดระดับที่สูงขึ้นสำหรับการโทรการใช้งานที่สร้างไว้ล่วงหน้าที่เรียกว่าโกรฟ

Microsoft ได้พัฒนาQ #เพื่อทำงานกับโปรแกรมจำลองที่มีอยู่และในที่สุดฮาร์ดแวร์ทางกายภาพของพวกเขา

เนื่องจากภาษาข้างต้นเป็นข้อมูลเฉพาะของผู้ขายประโยชน์หลักคือคุณสามารถเรียกใช้โปรแกรมควอนตัมบนคอมพิวเตอร์ของพวกเขาได้

นอกเหนือจากภาษาเฉพาะของผู้ขายคือScaffoldซึ่งกำลังพัฒนาโดยนักวิจัยของ Princeton ภาษานี้มีความน่าสนใจเนื่องจากมีtoolchainสำหรับการวิเคราะห์โปรแกรมเพื่อกำหนดต้นทุนศักยภาพด้านประสิทธิภาพและความสามารถในการปรับขยายได้

แก้ไข: Project Qเป็นอีกหนึ่งเฟรมเวิร์กที่ให้คุณพัฒนาโปรแกรมโดยใช้ Python ซึ่งสามารถทำงานกับตัวจำลองที่รวมอยู่ได้

Oak Ridge National Labs เริ่มทำงานในโครงการที่ชื่อว่าXACCซึ่งมีจุดประสงค์เพื่อให้ผู้ขายรหัสเฉพาะเพื่อให้ผู้ใช้สามารถเข้าถึงแพลตฟอร์มฮาร์ดแวร์ต่างๆโดยไม่ต้องทำซ้ำรหัสในภาษาเฉพาะของผู้ขายแต่ละราย


3
projectq.ch ยังสมควรได้รับการกล่าวถึง
James Wootton

1
ฉันชอบคำตอบนี้เพราะอธิบายว่าภาษาใดที่สามารถทำงานกับฮาร์ดแวร์ที่มีอยู่ได้
DanielSank

5

หรือแม้แต่ดูที่Quipperภาษาโปรแกรมควอนตัมที่ใช้งานได้ ด้วยความหมายแบบ monadic สร้างขึ้นเพื่อการคำนวณควอนตัมแบบย้อนกลับได้การสนับสนุนวงจรแบบลำดับชั้นและอีกมากมาย! ใช้ในการปฏิบัติจริงเช่นกัน - สำหรับอัลกอริทึมในการคำนวณคำตอบของสมการ Diracโดย LaFlamme


3

ฉันจะรวมนักแต่งเพลงของ IBM มันไม่ได้รู้สึกเหมือนการเขียนโปรแกรมเพราะคุณไม่ได้รับข้อผิดพลาดและข้อผิดพลาดและ funtionality ทั้งหมด แต่มันจะแปลงคำแนะนำของคุณบนเกตเป็น QASM อย่างชัดเจนและรันมันบนตัวจำลอง IBM จริงหรือคอมพิวเตอร์ควอนตัม IBM จริง (ตัวเลือกคือ ผู้ใช้)


1

น่าเสียดายที่รายการใน Quantiki ค่อนข้างเก่าและไม่ได้รับการดูแลอย่างดี แม้แต่การระบุรายชื่อภาษาการเขียนโปรแกรมควอนตัมทั้งหมดในการตอบคำถามนี้เพียงครั้งเดียวยังไม่ยั่งยืนเนื่องจากภูมิควอนตัมมีการพัฒนาอยู่ตลอดเวลา ตัวอย่างเช่น Google เพิ่งเปิดตัวCirqกรอบการเขียนโปรแกรมควอนตัมใหม่สำหรับคอมพิวเตอร์ Noisy Intermediate Scale Quantum (NISQ) ซึ่งไม่ได้ให้ความสำคัญในการตอบกลับใด ๆ ข้างต้นนับตั้งแต่มีการประกาศเพียงไม่กี่วันที่ผ่านมา

เพื่อแก้ไขปัญหานี้และเพื่อตอบคำถามอื่นเกี่ยวกับ QC StackExchange ฉันได้เริ่มต้นรายการโครงการซอฟต์แวร์โอเพ่นซอร์สบน GitHubซึ่งรวมถึงภาพรวมที่ครอบคลุมเกี่ยวกับภาษาและกรอบการเขียนโปรแกรมเชิงควอนตัมที่พัฒนาขึ้นอย่างแข็งขัน รายการได้รับการดูแลโดยชุมชนและเราเพิ่มโครงการใหม่อย่างต่อเนื่อง


2
ดูเหมือนว่าเป็นทรัพยากรที่ยอดเยี่ยม ขอขอบคุณ! ฉันสงสัยว่ามีอีกรายการที่คล้ายกันของโครงการที่ไม่ได้เป็นเพียงโอเพนซอร์ส
Pro Q

1
@ProQ พูดตามตรงฉันคิดว่ารายการโอเพ่นซอร์สครอบคลุมถึง> 95% ของพื้นที่ซอฟต์แวร์ควอนตัม มีแพ็คเกจโอเพ่นซอร์สแทบจะไม่มีการเข้าถึงสาธารณะและคุณจะไม่สนใจซอฟต์แวร์ควอนตัมที่ใช้ภายใน บริษัท บางแห่งโดยไม่ต้องเข้าถึงสาธารณะ
Mark Fingerhuth
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.