กำหนดค่า 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หรือbwcircuit_mpl_style_path: เส้นทางให้ตัววาด Circuit ค้นหา JSON style sheets เมื่อใช้โหมด mpl outputstate_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-3parallel: กำหนดว่าจะเปิด Python multiprocessing สำหรับการดำเนินการที่รองรับการทำงานแบบขนานหรือไม่ เช่น การ transpile ของ qiskit.circuit.QuantumCircuit หลายตัว การตั้งค่านี้สามารถแทนที่ได้ด้วย environment variableQISKIT_PARALLELระบุค่า booleannum_processes: จำนวนสูงสุดของกระบวนการขนานที่จะเปิดใช้สำหรับการดำเนินการแบบขนานหากเปิดใช้งาน parallel execution การตั้งค่านี้สามารถแทนที่ได้ด้วย environment variableQISKIT_NUM_PROCSระบุจำนวนเต็มที่มากกว่า0
หมายเหตุ
- การตั้งค่าตัววาด Circuit ใช้กับ qiskit.circuit.QuantumCircuit.draw และ qiskit.visualization.circuit_drawer
- เมธอด draw ของการแสดงผลสถานะคือ qiskit.quantum_info.Statevector.draw และ qiskit.quantum_info.DensityMatrix.draw
Environment variables
ตั้งค่า environment variables เหล่านี้เพื่อเปลี่ยนพฤติกรรมเริ่มต้นของ Qiskit:
QISKIT_PARALLEL: เปิดใช้งาน Python multiprocessing เพื่อทำงานบางอย่างแบบขนาน เช่น การ transpile ของหลาย Circuit ใน Qiskit ระบุค่า booleanQISKIT_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-threadedQISKIT_FORCE_THREADS: ระบุว่าโค้ด multi-threaded ควรทำงานหลาย thread เสมอ โดยค่าเริ่มต้น หากรันโ ค้ด multi-threaded ในส่วนของ Qiskit ที่กำลังรันในกระบวนการขนานอยู่แล้ว Qiskit จะไม่เปิดหลาย thread แต่จะรันฟังก์ชันนั้นแบบ serial แทน ทำเพื่อหลีกเลี่ยงการโอเวอร์โหลด CPU ที่มีจำกัด แต่ถ้าต้องการบังคับให้ใช้หลาย thread แม้อยู่ใน multiprocess context ให้ตั้งค่าQISKIT_FORCE_THREADS=TRUEQISKIT_SABRE_ALL_THREADS: ควบคุมพฤติกรรมของ layout และ routing pass ใน preset pass manager ของ Qiskit เมื่อตั้งค่าเป็น1หรือTRUEจะใช้ CPU ทั้งหมดที่มีในการรันการทดสอบแบบสุ่มหลายครั้ง ซึ่งสามารถปรับปรุงคุณภาพของผลลัพธ์ได้ โดยเฉพาะสำหรับระบบที่มี CPU/core มากกว่า 20 ตัว แต่ข้อแลกเปลี่ยนคือผลลัพธ์ไม่สามารถทำซ้ำได้เมื่อรันบนฮาร์ดแวร์ท้องถิ่นที่แตกต่างกัน
ขั้นตอนถัดไป
คำแนะนำ
- ลองทำ tutorial เช่น อัลกอริทึม Grover
- รันโปรแกรม Hello world
- อ่านแนวทางการมีส่วนร่วม ถ้าอยากมีส่วนร่วมกับ Qiskit SDK โอเพนซอร์ส
Source: IBM Quantum docs — updated 23 เม.ย. 2569
English version on doQumentation — updated 7 พ.ค. 2569
This translation based on the English version of 11 มี.ค. 2569