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

เวลาดำเนินการสูงสุดสำหรับ workload ของ Qiskit Runtime

เพื่อความเป็นธรรม มีเวลาสูงสุดที่คำนวณโดย service สำหรับแต่ละ Qiskit Runtime job ที่สามารถรันได้ หาก job เกินขีดจำกัดเวลานี้ จะถูกยกเลิกโดยบังคับและ exception RuntimeJobMaxTimeoutError จะถูก raise นอกจากนี้ยังสามารถตั้งค่าเวลาดำเนินการสูงสุดบน job เพื่อช่วยควบคุมค่าใช้จ่าย

หมายเหตุ

Session หรือ batch จะถูกยุติทันทีเมื่อถึงขีดจำกัดค่าใช้จ่าย

ตั้งค่าเวลาดำเนินการสูงสุด

เวลาดำเนินการสูงสุดสำหรับ job คือค่าที่น้อยกว่าในบรรดา:

  • ค่าที่ตั้งไว้สำหรับ max_execution_time
  • ค่า timeout ของ job ที่กำหนดโดย service

ค่า max_execution_time อ้างอิงจาก quantum time ไม่ใช่เวลานาฬิกาบนผนัง Quantum time คือระยะเวลาที่ QPU ทุ่มเทในการประมวลผล job ของตัวเอง

ตั้งค่าเวลาดำเนินการสูงสุด (เป็นวินาที) บน job options ดังแสดงในตัวอย่างต่อไปนี้ ดู ระบุ options สำหรับข้อมูลเกี่ยวกับการตั้งค่า options

from qiskit_ibm_runtime import QiskitRuntimeService
from qiskit_ibm_runtime import EstimatorV2 as Estimator

service = QiskitRuntimeService()
backend = service.least_busy(operational=True, simulator=False)

estimator = Estimator(mode=backend)

estimator.options.max_execution_time = 2500

นอกจากนี้ยังสามารถค้นหาว่า job ที่เสร็จสิ้นใช้ quantum time เท่าไรโดยการดึง job metrics ดังนี้:

# Find quantum time used by the job
print(f"Quantum time used by job {job.job_id()} was {job.metrics()['usage']['quantum_seconds']} seconds")

เวลาดำเนินการสูงสุดที่คำนวณโดย service

service คำนวณค่า timeout ที่เหมาะสมสำหรับ job โดยอ้างอิงจาก circuit และ options ที่ป้อนเข้ามา timeout ที่คำนวณโดย service นี้ถูกจำกัดไว้ที่ 3 ชั่วโมงเพื่อให้การใช้งานอุปกรณ์เป็นธรรม หากมีการระบุ max_execution_time สำหรับ job ด้วย จะใช้ค่าที่น้อยกว่าในสองค่า

ตัวอย่างเช่น หากระบุ max_execution_time=5000 (ประมาณ 83 นาที) แต่ service กำหนดว่าไม่ควรใช้เวลาเกิน 5 นาที (300 วินาที) ในการดำเนินการ job ดังนั้น job จะถูกยกเลิกหลังจาก 5 นาที

เวลาดำเนินการสูงสุดของ batch

เมื่อเริ่ม batch จะได้รับค่าเวลาอยู่รอดสูงสุด (maximum TTL) หลังจาก TTL นี้ถึง batch จะถูกยุติ job ที่กำลังรันอยู่จะรันต่อไป และ job ที่อยู่ในคิวที่เหลืออยู่ใน batch จะถูกตั้งสถานะเป็น failed

batch ยังมีค่าเวลาอยู่รอดแบบโต้ตอบ (interactive TTL) ระหว่าง job ที่ไม่สามารถกำหนดค่าได้ หากไม่ปิด batch อย่างชัดเจน batch จะถูกปิดใช้งานหลังจาก interactive TTL หมดอายุ และสามารถเปิดใช้งานใหม่ได้ทุกเมื่อจนกว่าจะถึง maximum TTL

สำหรับคำแนะนำในการทำงานกับค่าเหล่านี้ ดู รัน job ใน batch

เวลาดำเนินการสูงสุดของ Session

เมื่อเริ่ม Session จะได้รับค่า maximum TTL ที่กำหนดระยะเวลาที่ Session สามารถรันได้ หลังจาก TTL นี้ถึง Session จะถูกยุติ job ที่กำลังรันอยู่จะรันต่อไป และ job ที่อยู่ในคิวที่เหลืออยู่ใน Session จะถูกตั้งสถานะเป็น failed

นอกจากนี้ยังมีค่า interactive TTL ที่ไม่สามารถกำหนดค่าได้ หากไม่มี session job ที่อยู่ในคิวภายในช่วงเวลานั้น Session จะถูกปิดใช้งานชั่วคราว

สำหรับคำแนะนำในการทำงานกับค่าเหล่านี้ ดู รัน job ใน Session

ข้อจำกัดอื่นๆ

  • ข้อมูลนำเข้าสำหรับ job ต้องไม่เกิน 50MB
  • ผู้ใช้แผน Open สามารถใช้ quantum time ได้สูงสุด 10 นาทีต่อ 28 วันแบบต่อเนื่อง Quantum time คือระยะเวลาที่ QPU ทุ่มเทในการประมวลผล job ของตัวเอง สามารถดูการใช้งานของ instance ได้ที่หน้า Instances

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

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