เวลาดำเนินการสูงสุดสำหรับ workload ของ Qiskit Runtime
เพื่อความเป็นธรรม มีเวลาสูงสุดที่คำนวณโดย service สำหรับแต่ละ Qiskit Runtime job ที่สามารถรันได้ หาก job เกินขีดจำกัดเวลานี้ จะถูกยกเลิกโดยบังคับและ exception RuntimeJobMaxTimeoutError จะถูก raise นอกจากนี้ยังสามารถตั้งค่าเวลาดำเนินการสูงสุดบน job เพื่อช่วยควบคุมค่าใช้จ่าย
Session หรือ batch จะถูกยุติทันทีเมื่อถึงขีดจำกัดค่าใช้จ่าย job ที่กำลังรันอยู่ใน session หรือ batch นั้นจะรันต่อไปจนเสร็จ แต่ job ที่ยังรอคิวอยู่จะถูกยกเลิก
ตั้งค่าเวลาดำเนินการสูงสุด
เวลาดำเนินการสูงสุดสำหรับ job คือค่าที่น้อยกว่าในบรรดา:
- ค่าที่ตั้งไว้สำหรับ
max_execution_time - ค่า timeout ของ job ที่กำหนดโดย service
ค่า max_execution_time อ้างอิงจาก QPU usage ไม่ใช่เวลานาฬิกาบนผนัง
ตั้งค่าเวลาดำเนินการสูงสุด (เป็นวินาที) บน job options ดังแสดงในตัวอย่างต่อไปนี้ ดูคู่มือ Estimator options, Sampler options หรือ Executor 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 ที่เสร็จสิ้นใช้การใช้งานไปเท่าไรโดยการดึง job metrics ดังนี้:
# Find QPU usage of a specific job
print(f"QPU usage of 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 สามารถใช้ QPU ได้สูงสุด 10 นาทีต่อ 28 วันแบบต่อเนื่อง สามารถดูการใช้งานของ instance ได้ที่หน้า Instances
ขั้นตอนถัดไป
- การใช้งาน workload
- ดูเคล็ดลับเหล่านี้: ลดเวลารัน job