انتقل إلى المحتوى الرئيسي

الأسئلة الشائعة حول أوضاع تنفيذ Qiskit Runtime

هل يدعم وضع الاختبار المحلي في Qiskit Runtime أوضاع التنفيذ المختلفة؟

يدعم وضع الاختبار المحلي صياغة أوضاع التنفيذ المختلفة، لكن نظرًا لعدم وجود جدولة عند الاختبار محليًا، يتم تجاهل هذه الأوضاع.

كم عدد المهام التي يمكن تشغيلها بالتوازي لـ Backend معين؟

عدد المهام التي تعمل بالتوازي يعتمد على درجة التوازي المُهيَّأة لـ Backend، وهي خمس مهام لمعظم الـ Backends حاليًا.

كيف يُحسَب الاستخدام للمهام الفاشلة أو الملغاة؟

راجع قسم المهام الفاشلة والملغاة في صفحة أوضاع التنفيذ.

الجلسات

ماذا يحدث لمهامي إذا أُغلقت الجلسة؟

إذا كنت تستخدم الفئة Session في qiskit-ibm-runtime:

  • Session.close() تعني أن الجلسة لن تقبل مهامًا جديدة، لكن المهام الموجودة تُكمَل حتى نهايتها.
  • Session.cancel() تلغي جميع مهام الجلسة المعلّقة.

إذا كنت تستخدم REST API مباشرةً:

  • PATCH /sessions/{id} مع accepting_jobs=False تعني أن الجلسة لن تقبل مهامًا جديدة، لكن المهام الموجودة تُكمَل حتى نهايتها.
  • DELETE /sessions/{id}/close تلغي جميع مهام الجلسة المعلّقة.

إذا كنت أستخدم وضع الجلسة وأتوقع أن تستغرق تجربتي ساعات طويلة، هل هناك طريقة لطلب إجراء المعايرة؟

لا. المعايرة عند الطلب غير متاحة.

هل يوجد مهلة تفاعلية (TTL تفاعلي) في وضع الجلسة؟

نعم. يُقلّل هذا من التكاليف غير المرغوبة في حال نسي المستخدم إغلاق جلسته.

هل يمكنني تغيير TTL التفاعلي أو الحد الأقصى لـ TTL الخاص بالجلسة؟

لا يمكنك تغيير قيمة TTL التفاعلي. يمكنك تغيير قيمة الحد الأقصى لـ TTL الخاص بالجلسة (راجع تحديد مدة الجلسة)، لكنها يجب أن تكون أقل من الحد الأقصى المُعرَّف من قِبل النظام. اطلب من مسؤولك التواصل مع دعم IBM إذا كنت بحاجة إلى TTL تفاعلي مختلف أو حد أقصى مختلف لـ TTL النظام.

كيف يؤثر استخدام الجلسة على أعضاء IBM Quantum Network الذين لا يُحاسَبون بناءً على الاستخدام؟

يحصل أعضاء IBM Quantum Network على طاقة استيعابية محجوزة على وحدات IBM Quantum® QPUs. يُخصَم الاستخدام من هذه الطاقة، وتواجه المثيلات ذات الطاقة الأقل أوقات انتظار أطول في الطابور.

هل أحصل على نفس التوازي في وضع الجلسة الذي أحصل عليه في وضع الدفعات؟

نعم. إذا أرسلت عدة مهام في وقت واحد ضمن جلسة، فستعمل هذه المهام بالتوازي.

هل يمكن أن تُقاطَع الجلسات بسبب ترقيات QPU أو عمليات المعايرة؟

لا. تعمل الجلسات في الوضع الحصري، مما يعني أن المستخدم يمتلك وصولًا كاملًا إلى الـ Backend. لا تُقاطَع الجلسات أبدًا بسبب المعايرات أو ترقيات البرامج.

هل يُحتسَب وقت التصريف ضمن الاستخدام في وضع الجلسة؟

نعم. في وضع الجلسة، الاستخدام هو وقت الساعة الحقيقية التي يكون فيها QPU مرتبطًا بالجلسة. يبدأ عندما تنطلق أول مهمة في الجلسة وينتهي عندما تصبح الجلسة غير نشطة، أو تُغلَق، أو عند اكتمال آخر مهمة، أيهما حدث أخيرًا. وبالتالي، يستمر تراكم الاستخدام بعد انتهاء الجلسة إذا كان QPU لا يزال يشغّل مهمة. علاوةً على ذلك، يُحتسَب الوقت الذي يمر بعد اكتمال مهمة بينما ينتظر QPU مهمة جلسة أخرى (TTL التفاعلي) ضمن الاستخدام. لهذا السبب يجب عليك التأكد من إغلاق الجلسة فور الانتهاء من إرسال المهام إليها.

الدفعات

كم عدد المهام التي تعمل بالتوازي في وضع الدفعات؟

عدد المهام التي تعمل بالتوازي يعتمد على درجة التوازي المُهيَّأة للـ Backend، وهي خمس مهام لمعظم الـ Backends. لكن قد يكون عدد المهام المتزامنة في دفعة نشطة أقل، نظرًا لإمكانية وجود مهام أخرى تعمل بالفعل عند تنشيط الدفعة.

ما الفرق بين تشغيل N من PUBs في وضع المهمة الواحدة وتشغيل N من المهام ذات PUB واحد في وضع الدفعات؟

الفرق الرئيسي هو التوازن بين الوقت والتكلفة:

وضع الدفعات:

  • إجمالي وقت التشغيل أقل لأن المعالجة الكلاسيكية قد تعمل بالتوازي.
  • هناك حمل زائد طفيف لتشغيل كل مهمة، مما يجعلك تدفع قليلًا أكثر للمهام المجمّعة. يرتبط هذا الحمل بحجم المهمة. على سبيل المثال، إجمالي استخدام مهمتين تحتوي كل منهما على 40 دائرة 100×100 يزيد بست ثوانٍ عن مهمة واحدة تحتوي على 80 دائرة.
  • لأن وضع الدفعات لا يمنحك وصولًا حصريًا إلى الـ Backend، قد تعمل مهام الدفعة مع مهام مستخدمين آخرين أو مهام المعايرة.
  • إذا فشلت بعض المهام، ستحصل على نتائج المهام المكتملة.
  • يمكنك اتخاذ إجراءات في منتصف عبء عمل الدفعة بناءً على نتائج المهام المكتملة. على سبيل المثال، يمكنك إلغاء باقي المهام إذا بدت النتائج الأولية غير صحيحة.

وضع المهمة الواحدة:

  • من المرجح أن يكون إجمالي وقت التشغيل أعلى لعدم وجود توازي.
  • لا تدفع مقابل الحمل الزائد لكل مهمة المرتبط بأعباء عمل الدفعات.
  • ستعمل جميع دوائرك معًا.
  • إذا فشلت هذه المهمة الواحدة، لن تحصل على نتائج جزئية.
  • قد تصطدم مهمتك بالحد الأقصى إذا احتوت على دوائر كثيرة جدًا أو كانت الدوائر كبيرة جدًا.

بشكل عام، إذا كانت كل مهمة من مهامك تستهلك أقل من دقيقة من وقت QPU، فكّر في دمجها في مهمة أكبر (ينطبق هذا على جميع أوضاع التنفيذ).

كم عدد المهام التي يمكنني إرسالها في دفعة واحدة؟

بينما لا توجد قيود على عدد المهام التي يمكنك إرسالها في دفعة، هناك وقت أقصى مرتبط بالدفعة. أي أنه عندما يتجاوز وقت الساعة الحقيقية للدفعة (الذي يبدأ عند انطلاق أول مهمة في الدفعة) الحد الأقصى للوقت المُعرَّف من قِبل النظام، لن تقبل الدفعة أي مهام جديدة، وسيتم إلغاء أي مهام في الطابور لم تبدأ بعد. علاوةً على ذلك، هناك قيود على مقدار الاستخدام الذي يمكن أن تستهلكه مهامك بناءً على خطتك. لتحديد الوقت الأقصى المرتبط بدفعة، استخدم طريقة batch.details() وابحث عن قيمة max_time.

متى ستعمل مهام وضع الدفعات الخاصة بي بالتوازي مع مهام المستخدمين الآخرين؟

درجة التوازي المُهيَّأة للـ Backend تُسمّى أيضًا "مسارات التنفيذ". إذا كان هناك مسار تنفيذ واحد أو أكثر متاحًا، وكانت مهام دفعتك التالية في الصف، يبدأ المُجدوِل بتشغيل عدد كافٍ من المهام لملء المسارات. وبالمثل، إذا لم تكن دفعتك تحتوي على مهام كافية لملء المسارات، يبدأ المُجدوِل بتشغيل مهام مستخدمين آخرين.

مثال: الـ Backend الذي اخترته يملك خمسة مسارات تنفيذ، واثنان منها مشغولان حاليًا بمهام مستخدمين آخرين. دفعتك المكونة من ست مهام هي التالية في الصف.

نظرًا لوجود ثلاثة مسارات متاحة، يبدأ المُجدوِل بتشغيل ثلاث من مهامك الست. ويستمر في تشغيل المهام في دفعتك مع انتهاء المهام وتوفّر مسارات التنفيذ. إذا أصبح مسار متاحًا ولم تتبق مهام في دفعتك، يبدأ المُجدوِل بتشغيل المهمة التالية في الصف.

هل تحتاج جميع مهام الدفعة الخاصة بي إلى الانتظار في الطابور؟

نظرًا لكون QPUs موارد محدودة ومشتركة، تحتاج جميع المهام إلى الانتظار في الطابور. لكن عندما تبدأ المهمة الأولى في دفعتك بالعمل، تقفز جميع المهام الأخرى في تلك الدفعة فعليًا إلى مقدمة الطابور وتحظى بأولوية من قِبل المُجدوِل.

هل تنتهي الدفعة تلقائيًا عند انتهاء آخر مهمة مرتبطة بها؟

نعم. لكن هناك حمل زائد طفيف مرتبط بهذا الاكتشاف التلقائي، لذا يجب عليك دائمًا إغلاق دفعتك وجلستك.

هل يمكن أن تُقاطَع الدفعات بسبب المعايرات أو ترقيات البرامج؟

نعم. قد تُقاطَع أعباء عمل الدفعات بسبب المعايرات أو ترقيات البرامج.

هل يُحتسَب وقت التصريف ضمن الاستخدام في وضع الدفعات؟

لا. في وضع الدفعات، يُحتسَب فقط الوقت المُنفَق على العتاد الكمي ضمن الاستخدام.