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

กำหนดค่า 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

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

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

  • circuit_drawer: เปลี่ยนระบบเริ่มต้นสำหรับตัววาด Circuit สามารถตั้งค่าเป็น latex, mpl, text หรือ latex_source เมื่อไม่ได้ตั้งค่า output kwarg อย่างชัดเจน ระบบตัววาดนี้จะถูกใช้
  • circuit_mpl_style: สไตล์ชีตเริ่มต้นที่ใช้สำหรับระบบ mpl output ของตัววาด Circuit ค่าที่ถูกต้องคือ default หรือ bw
  • circuit_mpl_style_path: เส้นทางให้ตัววาด Circuit ค้นหา JSON style sheets เมื่อใช้โหมด mpl output
  • state_drawer: ใช้เปลี่ยนระบบเริ่มต้นสำหรับเมธอด draw ของการแสดงผลสถานะ ค่าที่ถูกต้องคือ repr, text, latex, latex_source, qsphere, hinton หรือ bloch เมื่อไม่ได้ตั้งค่า output kwarg อย่างชัดเจนบนเมธอด qiskit.quantum_info.DensityMatrix.draw เมธอด output ที่ระบุจะถูกใช้
  • transpile_optimization_level: เปลี่ยนระดับ optimization เริ่มต้นสำหรับ qiskit.compiler.transpile ระบุจำนวนเต็ม 0-3
  • parallel: กำหนดว่าจะเปิด Python multiprocessing สำหรับการดำเนินการที่รองรับการทำงานแบบขนานหรือไม่ เช่น การ transpile ของ qiskit.circuit.QuantumCircuit หลายตัว การตั้งค่านี้สามารถแทนที่ได้ด้วย environment variable QISKIT_PARALLEL ระบุค่า boolean
  • num_processes: จำนวนสูงสุดของกระบวนการขนานที่จะเปิดใช้สำหรับการดำเนินการแบบขนานหากเปิดใช้งาน parallel execution การตั้งค่านี้สามารถแทนที่ได้ด้วย environment variable QISKIT_NUM_PROCS ระบุจำนวนเต็มที่มากกว่า 0
หมายเหตุ

Environment variables

ตั้งค่า 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 ตัว แต่ข้อแลกเปลี่ยนคือผลลัพธ์ไม่สามารถทำซ้ำได้เมื่อรันบนฮาร์ดแวร์ท้องถิ่นที่แตกต่างกัน

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

คำแนะนำ
Source: IBM Quantum docs — updated 23 เม.ย. 2569
English version on doQumentation — updated 7 พ.ค. 2569
This translation based on the English version of 11 มี.ค. 2569