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

คำถามที่พบบ่อยเกี่ยวกับ execution modes ของ Qiskit Runtime

โหมดการทดสอบในเครื่องของ Qiskit Runtime รองรับ execution modes ต่างๆ หรือไม่?

โหมดการทดสอบในเครื่องรองรับ syntax สำหรับ execution modes ต่างๆ แต่เนื่องจากไม่มีการจัดตารางเวลาเมื่อทดสอบในเครื่อง โหมดต่างๆ จะถูกละเว้น

มี job กี่ตัวที่สามารถรันพร้อมกันสำหรับ backend เฉพาะ?

จำนวน job ที่รันพร้อมกันขึ้นอยู่กับระดับ parallelism ที่กำหนดค่าสำหรับ backend ซึ่งคือห้าสำหรับ backend ส่วนใหญ่ในปัจจุบัน

usage รายงานอย่างไรสำหรับ job ที่ล้มเหลวหรือถูกยกเลิก?

ดูส่วน Job ที่ล้มเหลวและถูกยกเลิก ในหน้า Execution modes

Session

จะเกิดอะไรขึ้นกับ job ของฉันหาก session ถูกปิด?

หากคุณใช้คลาส Session ใน qiskit-ibm-runtime:

  • Session.close() หมายความว่า session ไม่รับ job ใหม่อีกต่อไป แต่ job ที่มีอยู่รันจนเสร็จ
  • Session.cancel() ยกเลิก job ที่รอดำเนินการทั้งหมดใน session

หากคุณใช้ REST API โดยตรง:

  • PATCH /sessions/{id} พร้อม accepting_jobs=False หมายความว่า session ไม่รับ job ใหม่อีกต่อไป แต่ job ที่มีอยู่รันจนเสร็จ
  • DELETE /sessions/{id}/close ยกเลิก job ที่รอดำเนินการทั้งหมดใน session

หากฉันใช้ session mode และคาดว่าการทดลองจะใช้เวลาหลายชั่วโมง มีวิธีขอให้ทำ calibration ได้หรือไม่?

ไม่ การ calibration ตามความต้องการไม่พร้อมใช้งาน

มี interactive timeout (interactive TTL) ใน session mode หรือไม่?

มี สิ่งนี้ช่วยลดค่าใช้จ่ายที่ไม่ต้องการหากผู้ใช้ลืมปิด session

สามารถเปลี่ยน interactive TTL หรือ maximum TTL ของ session ได้หรือไม่?

ไม่สามารถเปลี่ยนค่า interactive TTL ได้ สามารถเปลี่ยนค่า maximum TTL ของ session ได้ (ดู ระบุความยาวของ session) แต่ต้องน้อยกว่าค่าสูงสุดที่ระบบกำหนด ติดต่อผู้ดูแลระบบให้ติดต่อ IBM support หากต้องการ interactive TTL หรือ system maximum TTL ที่แตกต่างออกไป

session usage ส่งผลกระทบต่อสมาชิก IBM Quantum Network ที่ไม่ได้รับการเรียกเก็บเงินตาม usage อย่างไร?

สมาชิก IBM Quantum Network ได้รับ capacity ที่สำรองไว้บน IBM Quantum® QPUs Usage จะถูกหักจาก capacity นี้ และ instance ที่มี capacity น้อยกว่าจะมีเวลาในคิวที่นานกว่า

ฉันได้รับ parallelism เดียวกันใน session mode กับที่ได้ใน batch mode หรือไม่?

ใช่ หากคุณส่ง job หลายตัวพร้อมกันใน session job เหล่านี้จะรันพร้อมกัน

session สามารถถูกขัดจังหวะโดยการอัปเกรดหรือ calibration ของ QPU ได้หรือไม่?

ไม่ Session รันในโหมด dedicated ซึ่งหมายความว่าผู้ใช้มีสิทธิ์เข้าถึง backend อย่างเต็มที่ Session ไม่ถูกขัดจังหวะโดย calibrations หรือการอัปเกรดซอฟต์แวร์

เวลา compilation นับเป็น usage ใน session mode หรือไม่?

ใช่ ใน session mode usage คือเวลา wall clock ที่ QPU ผูกพันกับ session มันเริ่มต้นเมื่อ session job แรกเริ่มต้นและสิ้นสุดเมื่อ session ไม่ได้ใช้งาน ถูกปิด หรือเมื่อ job สุดท้ายเสร็จสมบูรณ์ ขึ้นอยู่กับว่าอะไรเกิดขึ้นหลังสุด ดังนั้น usage ยังคงสะสมหลังจาก session สิ้นสุดหาก QPU ยังคงรัน job อยู่ นอกจากนี้ เวลาหลังจาก job เสร็จสมบูรณ์ขณะที่ QPU รอ session job อื่น (the interactive TTL) นับเป็น usage นี่คือเหตุผลที่คุณควรมั่นใจว่า session ถูกปิดทันทีที่คุณส่ง job เสร็จ

Batch

มี job กี่ตัวที่รันพร้อมกันใน batch mode?

จำนวน job ที่รันพร้อมกันขึ้นอยู่กับระดับ parallelism ที่กำหนดค่าสำหรับ backend ซึ่งคือห้าสำหรับ backend ส่วนใหญ่ อย่างไรก็ตาม จำนวน job พร้อมกันใน active batch อาจน้อยกว่าเพราะอาจมี job อื่นที่กำลังรันอยู่แล้วเมื่อ batch ทำงาน

การรัน N PUBs ใน job mode แตกต่างจากการรัน N single-PUB jobs ใน batch mode อย่างไร?

ความแตกต่างหลักคือการแลกเปลี่ยนระหว่างเวลาและค่าใช้จ่าย:

Batch mode:

  • เวลารันทั้งหมดน้อยกว่าเพราะ classical processing อาจรันพร้อมกัน
  • มี overhead เล็กน้อยสำหรับการรัน job แต่ละตัว ดังนั้นคุณจ่ายมากกว่าเล็กน้อยสำหรับ batched jobs overhead นี้สอดคล้องกับขนาดของ job ตัวอย่างเช่น usage ทั้งหมดของ job สองตัว แต่ละตัวมี Circuit 40 ตัวขนาด 100x100 มากกว่า job เดียวที่มี 80 circuits ถึง 6 วินาที
  • เนื่องจาก batch mode ไม่ให้สิทธิ์เข้าถึง backend แบบ exclusive job ใน batch อาจรันพร้อมกับ job ของผู้ใช้รายอื่นหรือ calibration jobs
  • หาก job บางตัวล้มเหลว คุณยังได้รับผลลัพธ์จาก job ที่เสร็จสมบูรณ์
  • คุณสามารถดำเนินการกลางใน batch workload ตามผลลัพธ์ของ job ที่เสร็จสมบูรณ์ ตัวอย่างเช่น คุณสามารถยกเลิก job ที่เหลือหากผลลัพธ์เริ่มต้นดูไม่ถูกต้อง

Job mode:

  • เวลารันทั้งหมดน่าจะสูงกว่าเพราะไม่มี parallelism
  • คุณไม่จ่ายค่า overhead ต่อ job พิเศษที่เกี่ยวข้องกับ batch workloads
  • Circuit ทั้งหมดของคุณจะรันร่วมกัน
  • หาก job เดียวนี้ล้มเหลว คุณไม่ได้รับผลลัพธ์บางส่วน
  • Job ของคุณอาจถึงขีดจำกัดหากมี Circuit มากเกินไปหรือ Circuit ใหญ่เกินไป

โดยทั่วไป หากแต่ละ job ของคุณใช้ QPU time น้อยกว่าหนึ่งนาที ให้พิจารณารวมเป็น job ที่ใหญ่กว่า (ใช้ได้กับทุก execution modes)

ฉันสามารถส่ง job ใน batch ได้กี่ตัว?

แม้จะไม่มีขีดจำกัดจำนวน job ที่คุณสามารถส่งใน batch แต่มีเวลาสูงสุดที่เกี่ยวข้องกับ batch นั่นคือ เมื่อเวลา wall clock ของ batch (ซึ่งเริ่มต้นเมื่อ batch job แรกเริ่มรัน) เกินเวลาสูงสุดที่ระบบกำหนด batch จะไม่รับ job ใหม่ และ job ที่อยู่ในคิวแต่ยังไม่รันจะถูกยกเลิก นอกจากนี้ มีขีดจำกัดว่า job ของคุณสามารถใช้ usage เท่าไรตาม plan ของคุณ ใช้เมธอด batch.details() และมองหาค่า max_time เพื่อกำหนดเวลาสูงสุดที่เกี่ยวข้องกับ batch

เมื่อใด batch mode jobs ของฉันจะรันพร้อมกับ job ของผู้ใช้รายอื่น?

ระดับ parallelism ที่กำหนดค่าสำหรับ backend เรียกอีกว่า "execution lanes" หากมีหนึ่งหรือมากกว่า execution lanes ว่างอยู่ และ batch jobs ของคุณเป็นคิวถัดไปที่จะรัน scheduler จะเริ่ม job เพียงพอเพื่อเติม lanes นั้น ในทำนองเดียวกัน หาก batch ของคุณมี job ไม่เพียงพอที่จะเติม lanes scheduler จะเริ่ม job ของผู้ใช้รายอื่น

ตัวอย่าง: backend ที่คุณเลือกมีห้า execution lanes และสองในนั้นกำลังถูกใช้โดย job ของผู้ใช้รายอื่น batch ของ job ของคุณหกตัวเป็นคิวถัดไปที่จะรัน

เนื่องจากมี lanes ว่างสามเลน scheduler จะเริ่มสามในหก batch jobs ของคุณ มันยังคงเริ่ม job ใน batch ของคุณเมื่อ job เสร็จสมบูรณ์และ execution lanes ว่าง หาก lane ว่างและไม่มี job เหลือใน batch ของคุณ scheduler จะเริ่ม job ถัดไปในคิว

batch jobs ทั้งหมดของฉันต้องรอในคิวหรือไม่?

เนื่องจาก QPUs เป็นทรัพยากรที่มีจำกัดและแชร์กัน job ทั้งหมดจำเป็นต้องรอในคิว อย่างไรก็ตาม เมื่อ job แรกใน batch ของคุณเริ่มรัน job อื่นทั้งหมดใน batch นั้นจะข้ามไปยังด้านหน้าของคิวอย่างมีนัยสำคัญและได้รับการจัดลำดับความสำคัญโดย scheduler

batch สิ้นสุดโดยอัตโนมัติเมื่อ job ที่เกี่ยวข้องสุดท้ายสิ้นสุดหรือไม่?

ใช่ อย่างไรก็ตาม มี overhead เล็กน้อยที่เกี่ยวข้องกับการตรวจจับอัตโนมัตินี้ ดังนั้นคุณควรปิด batch และ session ของคุณเสมอ

batch สามารถถูกขัดจังหวะโดย calibrations หรือการอัปเกรดซอฟต์แวร์หรือไม่?

ใช่ Batch workloads อาจถูกขัดจังหวะโดย calibrations หรือการอัปเกรดซอฟต์แวร์

เวลา compilation นับเป็น usage ใน batch mode หรือไม่?

ไม่ ใน batch mode มีเพียงเวลาที่ใช้บน quantum hardware เท่านั้นที่นับเป็น usage

Source: IBM Quantum docs — updated 5 มี.ค. 2569
English version on doQumentation — updated 7 พ.ค. 2569
This translation based on the English version of 11 มี.ค. 2569