ข้ามไปยังเนื้อหาหลัก

กำหนดค่า Qiskit SDK ในเครื่อง

หลังจากติดตั้งและรัน Qiskit SDK แล้ว มีขั้นตอนเสริมที่ทำได้เพื่อเปลี่ยนพฤติกรรมเริ่มต้นของ Qiskit

ไฟล์กำหนดค่าผู้ใช้

ตำแหน่งหลักสำหรับการกำหนดค่าในเครื่องของ Qiskit คือไฟล์กำหนดค่าผู้ใช้ เป็นไฟล์รูปแบบ .ini ที่ใช้เปลี่ยนการตั้งค่าเริ่มต้นของ Qiskit ได้

ตัวอย่าง:

[default]
circuit_drawer = mpl
circuit_mpl_style = default
circuit_mpl_style_path = ~:~/.qiskit
state_drawer = hinton
transpile_optimization_level = 3
parallel = False
num_processes = 15
min_qpy_version = 14

โดยค่าเริ่มต้น ไฟล์นี้อยู่ที่ ~/.qiskit/settings.conf แต่สามารถเปลี่ยนเส้นทางได้ด้วย environment variable QISKIT_SETTINGS

ตัวเลือกที่ใช้ได้

  • circuit_drawer: เปลี่ยนระบบเริ่มต้นสำหรับ circuit drawer สามารถตั้งเป็น latex, mpl, text, หรือ latex_source เมื่อไม่ได้ตั้งค่า kwarg ของ output อย่างชัดเจน ระบบวาดนี้จะถูกใช้

  • circuit_mpl_style: สไตล์ชีตเริ่มต้นที่ใช้สำหรับระบบเอาต์พุต mpl ของ circuit drawer ค่าที่ใช้ได้คือ default หรือ bw

  • circuit_mpl_style_path: เส้นทางที่ circuit drawer ใช้ในการค้นหาสไตล์ชีต JSON เมื่อใช้โหมดเอาต์พุต mpl

  • state_drawer: ใช้เพื่อเปลี่ยนระบบเริ่มต้นสำหรับเมธอดวาดภาพการแสดงผลสถานะ ค่าที่ใช้ได้คือ repr, text, latex, latex_source, qsphere, hinton, หรือ bloch เมื่อไม่ได้ตั้งค่า kwarg output อย่างชัดเจนในเมธอด qiskit.quantum_info.DensityMatrix.draw จะใช้เมธอดเอาต์พุตที่ระบุนี้

  • transpile_optimization_level: เปลี่ยนระดับการปรับให้เหมาะสมเริ่มต้นสำหรับ qiskit.compiler.transpile ระบุจำนวนเต็ม 0-3

  • parallel: ระบุว่าเปิดใช้งาน Python multiprocessing สำหรับการทำงานที่รองรับการรันแบบขนานหรือไม่ ตัวอย่างเช่น การแปลง (transpilation) ของอ็อบเจ็กต์ qiskit.circuit.QuantumCircuit หลายตัว การตั้งค่านี้สามารถถูกแทนที่ได้ด้วยตัวแปรสภาพแวดล้อม QISKIT_PARALLEL ระบุค่าบูลีน

  • num_processes: จำนวนโปรเซสขนานสูงสุดที่จะเริ่มสำหรับการทำงานแบบขนานหากเปิดใช้งานการรันแบบขนาน การตั้งค่านี้สามารถถูกแทนที่ได้ด้วยตัวแปรสภาพแวดล้อม QISKIT_NUM_PROCS ระบุจำนวนเต็มที่มากกว่า 0

  • min_qpy_version: การโหลด QPY จะปฏิเสธไฟล์ที่มีเวอร์ชัน QPY ต่ำกว่าที่กำหนดไว้ที่นี่ ตัวเลือกนี้สามารถใช้เพื่อจำกัดเวอร์ชัน QPY ที่อนุญาตเมื่อพบปัญหาความปลอดภัยในการดีซีเรียลไลซ์ในเวอร์ชัน QPY ที่เก่ากว่า เพื่อป้องกันการโหลดเพย์โหลดที่อาจเป็นอันตราย

หมายเหตุ

ตัวแปรสภาพแวดล้อม

ตั้งค่า environment variables เหล่านี้เพื่อเปลี่ยนพฤติกรรมเริ่มต้นของ Qiskit:

  • QISKIT_PARALLEL: เปิดใช้งาน Python multiprocessing เพื่อทำงานบางอย่างแบบขนาน เช่น การ transpile ของหลาย Circuit ใน Qiskit ระบุค่า boolean

  • QISKIT_NUM_PROCS: จำนวนสูงสุดของกระบวนการขนานที่จะเปิดใช้สำหรับการดำเนินการแบบขนานหากเปิดใช้งาน parallel execution ระบุจำนวนเต็มที่มากกว่าศูนย์

  • RAYON_NUM_THREADS: จำนวน thread สำหรับรันการดำเนินการแบบ multi-threaded ใน Qiskit โดยค่าเริ่มต้น โค้ด multi-threaded จะเปิด thread สำหรับแต่ละ logical CPU หากต้องการปรับจำนวน thread ที่ Qiskit ใช้ ให้ตั้งค่าเป็นจำนวนเต็ม เช่น การตั้งค่า RAYON_NUM_THREADS=4 จะเปิด 4 thread สำหรับฟังก์ชัน multi-threaded

  • QISKIT_FORCE_THREADS: ระบุว่าโค้ด multi-threaded ควรทำงานหลาย thread เสมอ โดยค่าเริ่มต้น หากรันโค้ด multi-threaded ในส่วนของ Qiskit ที่กำลังรันในกระบวนการขนานอยู่แล้ว Qiskit จะไม่เปิดหลาย thread แต่จะรันฟังก์ชันนั้นแบบ serial แทน ที่ทำแบบนี้ก็เพื่อเลี่ยงไม่ให้ CPU ที่มีจำกัดทำงานหนักเกินไป แต่ถ้าต้องการบังคับให้ใช้หลาย thread แม้อยู่ใน multiprocess context ให้ตั้งค่า QISKIT_FORCE_THREADS=TRUE

  • QISKIT_SABRE_ALL_THREADS: ควบคุมพฤติกรรมของ layout และ routing pass ใน preset pass manager ของ Qiskit เมื่อตั้งค่าเป็น 1 หรือ TRUE จะใช้ CPU ทั้งหมดที่มีในการรันการทดสอบแบบสุ่มหลายครั้ง ซึ่งสามารถปรับปรุงคุณภาพของผลลัพธ์ได้ โดยเฉพาะสำหรับระบบที่มี CPU/core มากกว่า 20 ตัว แต่ข้อแลกเปลี่ยนคือผลลัพธ์ไม่สามารถทำซ้ำได้เมื่อรันบนฮาร์ดแวร์ท้องถิ่นที่แตกต่างกัน

ขั้นตอนถัดไป

คำแนะนำ