Quantum Inspire และ Qiskit

Quantum Inspire และ Qiskit

เครดิตฟรี

ปีที่แล้วที่QuTechเราได้เปิดตัวQuantum Inspireซึ่งเป็นแพลตฟอร์มออนไลน์เพื่อแสดงผลงานของเราและทำให้โลกสามารถโต้ตอบกับคอมพิวเตอร์ควอนตัมได้ QuTechเป็นศูนย์การวิจัยขั้นสูงสำหรับควอนตัมคอมพิวเตอร์และควอนตัมอินเตอร์เน็ต, การทำงานร่วมกันก่อตั้งขึ้นในปี 2014 โดยDelft University of Technology (TU Delft)และองค์การเนเธอร์แลนด์เพื่อการวิจัยทางวิทยาศาสตร์ประยุกต์ (TNO)

สล็อต

แพลตฟอร์ม Quantum Inspire บนคลาวด์มีอินเทอร์เฟซผู้ใช้แบบกราฟิกรวมถึง API สำหรับการใช้งานขั้นสูง เมื่อเร็ว ๆ นี้เราได้ยังปล่อยบูรณาการสำหรับของไอบีเอ็ม Qiskit Quantum Inspire ทำงานควบคู่กับ Qiskit ให้ผู้ใช้ได้รับฟังก์ชันและเครื่องมือทั้งหมดที่มีให้โดย Quantum Inspire ในขณะเดียวกันก็ใช้ประโยชน์จาก Qiskit ซึ่งให้การเข้าถึงโปรแกรมจำลองเพิ่มเติม ฮาร์ดแวร์ควอนตัมจริง และปลั๊กอินอื่นๆ ที่เข้ากันได้กับ Qiskit ทั้งหมดอยู่ในสภาพแวดล้อมการพัฒนาเดียว
ในย่อหน้าต่อไปนี้ ฉันจะแนะนำสั้นๆ เกี่ยวกับ Quantum Inspire และการรวม Qiskit สำหรับ Quantum Inspire
เว็บอินเตอร์เฟส
ขั้นแรก มาดูส่วนต่อประสานทางเว็บกันก่อน
องค์ประกอบแบบโต้ตอบหลักในอินเทอร์เฟซเว็บคือตัวแก้ไข มันมีหน้าต่างข้อความที่คุณสามารถป้อนคำสั่งควอนตัมโดยใช้ไวยากรณ์ cQASM 1.0 ของ QuTech การทดสอบสามารถเข้าคิวเพื่อดำเนินการได้จากเว็บอินเตอร์เฟส และสามารถตรวจสอบผลลัพธ์ได้เมื่อทำเสร็จแล้ว
คุณไม่จำเป็นต้องมีบัญชีเพื่อเรียกใช้การทดสอบครั้งแรกของคุณ อย่างไรก็ตาม หากต้องการใช้คุณสมบัติขั้นสูงเพิ่มเติม (เช่น การรักษาการทดลองและผลลัพธ์ก่อนหน้า และการสร้างหลายโครงการเคียงข้างกัน) จำเป็นต้องลงทะเบียน ง่ายเหมือนการป้อนที่อยู่อีเมลและเลือกรหัสผ่าน หลังจากยืนยันที่อยู่อีเมลของคุณแล้ว บัญชีของคุณก็ใช้งานได้และพร้อมใช้งาน
API และ SDK การเข้าถึงแบบเป็นโปรแกรม
นอกจากนี้เรายังต้องการเสนอวิธีการโต้ตอบกับแพลตฟอร์มและแบ็กเอนด์แบบเป็นโปรแกรมมากขึ้น แน่นอน เป็นไปได้ที่จะพูดคุยกับ API โดยตรง แต่นั่นทำให้ผู้ใช้ต้องเข้าสู่กลไกของการร้องขอ HTTP และการแยกวิเคราะห์การตอบสนอง ทุกสิ่งที่เบี่ยงเบนไปจากจุดประสงค์ที่แท้จริงของระบบ: เพื่อสำรวจการคำนวณควอนตัม
Qiskit จัดเตรียมชุดพื้นฐานที่หลากหลายเพื่อโต้ตอบกับคอมพิวเตอร์ควอนตัมและโปรแกรมจำลองควอนตัม และสรุปกลไกของคำขอและการตอบสนองเป็นภาษาเฉพาะโดเมนระดับสูง แทนที่จะคิดค้นวงล้อใหม่และเพิ่มกรอบการประมวลผลควอนตัมอื่นให้กับโลก เราตัดสินใจที่จะเพิ่มการรองรับ Qiskit สำหรับแบ็กเอนด์ Quantum Inspire
มาดำดิ่งกันและแสดงตัวอย่างวิธีใช้แบ็กเอนด์ Quantum Inspire กับ Qiskit ฉันจะถือว่ามีความเข้าใจพื้นฐานเกี่ยวกับการพัฒนาPythonโดยทั่วไป
หากคุณคุ้นเคยกับ Qiskit อยู่แล้ว โค้ดด้านล่างนี้จะจดจำได้ง่าย บูรณาการ Qiskit ของเราดังต่อไปนี้BackendProviderกลไกการแนะนำใน Qiskit 0.7.0 โดยนำเสนอQuantumInspireBackendProvider เมื่อจัดเตรียมอินสแตนซ์แบ็กเอนด์แล้ว อินสแตนซ์จะใช้แบบเดียวกับที่ใช้กับแบ็กเอนด์ AER หรือ IBMQ ที่มีอยู่
ฉันชอบเรียกใช้สิ่งต่าง ๆ ในสภาพแวดล้อมเสมือนของ Pythonเพื่อแยกการพึ่งพาจากโปรเจ็กต์ต่างๆ ออกจากกัน เรามาตั้งค่ากันก่อน คุณสามารถข้ามขั้นตอนนี้ได้ หากคุณไม่ต้องการใช้สภาพแวดล้อมเสมือน แม้ว่าเราขอแนะนำให้คุณเริ่มใช้งานจริง ๆ หากยังไม่ได้ดำเนินการ) สมมติว่าคุณอยู่บนระบบที่ใช้ยูนิกซ์ (เช่น Linux หรือระบบย่อย Windows สำหรับ Linux):
python3 -m venv
env ./env/bin/activate
ในสภาพแวดล้อมที่ใช้ MS Windows เราจะใช้สิ่งต่อไปนี้
python3 -m venv env
env\Scripts\activate
ต่อไป เราต้องติดตั้ง Qiskit และ Quantum Inspire SDK ซึ่งสามารถทำได้สะดวกที่สุดโดยใช้โปรแกรมจัดการแพ็คเกจของ Python, pip:
pip ติดตั้ง qiskit
pip ติดตั้ง quantuminspire
การดำเนินการนี้จะติดตั้ง Qiskit เวอร์ชันสาธารณะล่าสุดและ Quantum Inspire SDK หากคุณสนใจในเวอร์ชันการพัฒนาล่าสุดแทน คุณสามารถดูQuantum Inspire SDK บน githubได้
ตอนนี้เปิดตัวแก้ไขที่คุณชื่นชอบหรือ IDE และสร้างไฟล์หลามชื่อใหม่example_qiskit_entangle.py

สล็อตออนไลน์

อันดับแรก เราเริ่มต้นด้วยต้นแบบและการนำเข้าที่จำเป็น:
“””ตัวอย่างการใช้งานแบ็กเอนด์ Quantum Inspire กับ QisKit SDK
ตัวอย่างง่ายๆ ที่สาธิตวิธีใช้ SDK เพื่อสร้างวงจรเพื่อสร้างสถานะ Bell และจำลองวงจรบน Quantum Inspire
สำหรับเอกสารเกี่ยวกับวิธีการใช้ QisKit เราอ้างอิงถึง https://qiskit.org/
เฉพาะสำหรับ Quantum Inspire คือการสร้างอินสแตนซ์ QI ซึ่งใช้ในการตั้งค่าการตรวจสอบสิทธิ์ของผู้ใช้และจัดเตรียมแบ็กเอนด์ Quantum Inspire ที่ใช้ในการดำเนินการวงจร
ลิขสิทธิ์ 2018-19 QuTech Delft ได้รับอนุญาตภายใต้สัญญาอนุญาต Apache เวอร์ชัน 2.0
“””
จาก getpass นำเข้า getpass
จาก qiskit.circuit นำเข้า QuantumRegister, ClassicalRegister, QuantumCircuit
จาก qiskit.tools.compiler นำเข้า ดำเนินการ
จาก quantuminspire.qiskit นำเข้า QI
หลังจากเอกสารแนะนำบางส่วน เรานำเข้าโมดูลที่เกี่ยวข้องจาก Qiskit ( คลาสQuantumRegister , ClassicalRegisterและQuantumCircuitและวิธีการดำเนินการ) บิตพิเศษที่นี่เป็นบรรทัดสุดท้ายที่เรานำเข้าควอนตัม Inspire BackendProviderเป็นQI
ในการขอข้อมูลประจำตัว เราได้เพิ่มวิธีการอำนวยความสะดวกที่จะขออีเมลและรหัสผ่านของผู้ใช้และส่งคืนสิ่งเหล่านี้เป็นทูเพิล:
def get_authentication():
“””รับการรับรองความถูกต้องสำหรับการเชื่อมต่อกับ
Quantum Inspire API
“””
print(‘Enter email:’)
email = input()
print(‘Enter password’)
password = getpass()
return email, รหัสผ่าน
เราตั้งใจที่จะปรับปรุงสิ่งนี้ในอนาคตอันใกล้โดยใช้โทเค็น API ที่สามารถจัดเก็บบนดิสก์ได้ เพื่อหลีกเลี่ยงไม่ให้ต้องพิมพ์ที่อยู่อีเมลและรหัสผ่านทุกครั้งที่เราทำการทดสอบ

jumboslot

ตอนนี้ตามกลุ่มหลักของตัวอย่าง:
if name == ‘main‘:
ถ้า ‘authentication’ ไม่อยู่ใน vars().keys():
authentication = get_authentication()
QI.set_authentication_details(*authentication)
qi_backend = QI.get_backend(‘QX single-node simulator’)
ก่อนอื่น เราเติมtuple การรับรองความถูกต้องด้วยค่าอีเมลและรหัสผ่าน สิ่งเหล่านี้ถูกส่งไปยังวัตถุQI (ซึ่งเป็นBackendProvider ) โดยใช้เมธอดset_authentication_details สิ่งนี้รับรองความถูกต้องของผู้ให้บริการแบ็กเอนด์ด้วยแพลตฟอร์ม Quantum Inspire
จากนั้น เราได้รับอินสแตนซ์แบ็กเอนด์จากผู้ให้บริการQIโดยขอแบ็กเอนด์ที่มีชื่อ “QX single-node simulator” ถ้าเราต้องการเราสามารถขอรายชื่อของแบ็กเอนด์จากQIโดยการเรียกQI.backends () ในขณะที่เขียนสิ่งนี้ สำหรับผู้ใช้มาตรฐาน จะมีเพียงหนึ่งแบ็กเอนด์ที่แสดง: โปรแกรมจำลองโหนดเดียวของ QX แบ็กเอนด์นี้ดำเนินการทดลองในอินสแตนซ์เมฆเป็นเจ้าภาพของจำลอง QX
ต่อไป เราตั้งค่าวงจรควอนตัม:
q = QuantumRegister(2)
b = ClassicalRegister(2)
วงจร = QuantumCircuit(q, b)
circuit.h(q[0])
circuit.cx(q[0], q[1])
วงจรวัด (q, b)
ขั้นแรก เรากำหนดรีจิสเตอร์qของ 2 qubits ต่อไป เรายังกำหนดทะเบียนคลาสสิกที่มีความกว้าง 2 บิตชื่อbเพื่อให้มีผลการวัดของเรา ด้วยสิ่งเหล่านี้เราสร้างQuantumCircuitชื่อวงจร
การดำเนินการจะถูกเพิ่มเข้าไปในวงจร เราสร้าง Bell-state พื้นฐานโดยใช้ Hadamard gate กับ qubit 0 ตามด้วย Controlled-NOT โดยที่ qubit 0 คือ qubit ควบคุม และ qubit 1 คือ qubit ที่ควบคุม สุดท้าย เราวัดทั้ง qubits และเก็บผลการวัดไว้ใน classic register

slot

แผนการในอนาคต อนาคตจะเป็นอย่างไร?
แม้ว่าความสามารถในการจำลอง qubits ช่วยให้เราสามารถสำรวจโลกของการคำนวณควอนตัมได้ แต่ก็ไม่ได้เสนอสิ่งที่เราไม่สามารถทำได้บนคอมพิวเตอร์แบบคลาสสิก (เนื่องจากการจำลองตามคำจำกัดความทำงานบนคอมพิวเตอร์แบบคลาสสิก) เป็นความตั้งใจที่จะเพิ่มการเข้าถึงคอมพิวเตอร์ควอนตัมที่แท้จริงซึ่งได้รับการพัฒนาที่ QuTech เพื่อ Quantum Inspire ด้วยความช่วยเหลือของ unified API ของเราและกลไกผู้ให้บริการแบ็กเอนด์แบบรวมของ Qiskit จะเป็นการสลับที่ราบรื่นระหว่างการจำลอง (บนตัวจำลองของเราหรือของ Qiskit) และการดำเนินการบนฮาร์ดแวร์จริง