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

مقدمة إلى أوضاع التنفيذ في Qiskit Runtime

عند إطلاق Qiskit Runtime في البداية، كان بإمكان المستخدمين تنفيذ الدوائر على شكل وظائف فردية فقط. ومع ظهور أنواع مختلفة من أحمال العمل الكمومية، بات من الواضح أن ثمة حاجة إلى استراتيجيات جدولة متعددة. تحدد أوضاع التنفيذ كيفية جدولة وظائفك، واختيار الوضع المناسب يتيح لحمل عملك أن يعمل بكفاءة ضمن ميزانيتك. تتوفر ثلاثة أوضاع للتنفيذ: وضع الوظيفة، ووضع الجلسة، ووضع الدُفعة.

وضع الوظيفة

طلب primitive مفرد من المُقدِّر (estimator) أو المُعيِّن (sampler) يُقدَّم خارج أي مدير سياق. تُعبَّأ الدوائر والمدخلات على شكل كتل موحَّدة للـ primitive (PUBs) وتُرسَل كمهمة تنفيذ على الحاسوب الكمومي. لتشغيل وظيفة في هذا الوضع، حدد mode=backend عند إنشاء primitive. راجع أمثلة Primitives للاطلاع على طريقة الاستخدام.

وضع الدُفعة

مدير متعدد الوظائف لتشغيل التجارب التي تتضمن أحمال عمل من وظائف متعددة بكفاءة عالية. تتألف هذه الأحمال من وظائف قابلة للتنفيذ بصورة مستقلة دون أي علاقة شرطية فيما بينها. في وضع الدُفعة، يرسل المستخدمون جميع وظائفهم دفعةً واحدة.

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

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

ملاحظات
  • عند استخدام وضع الدُفعة، لا يُضمَن تشغيل الوظائف بالترتيب الذي أُرسِلت به. وبينما تعمل وظائف الدُفعة بشكل متقارب قدر الإمكان، إلا أنها لا تحظى بوصول حصري إلى Backend. لذلك، قد تعمل وظائف دُفعتك بالتوازي مع وظائف مستخدمين آخرين إذا توفرت طاقة معالجة كافية على وحدة QPU. كذلك قد تعمل وظائف المعايرة الخاصة بوحدة QPU بين وظائف الدُفعة.
  • لا يقل وقت الانتظار في الطابور للوظيفة الأولى المرسَلة ضمن دُفعة. لذلك لا تُقدِّم الدُفعات أي فائدة عند تشغيل وظيفة واحدة فقط.

لتشغيل وظيفة في وضع الدُفعة، حدد mode=batch عند إنشاء primitive، أو شغِّل الوظيفة داخل مدير سياق الدُفعة. راجع تشغيل وظائف في دُفعة للاطلاع على أمثلة.

وضع الجلسة

نافذة مخصصة لتشغيل أحمال عمل تتضمن وظائف متعددة. خلال هذه النافذة، يمتلك المستخدم وصولاً حصرياً إلى النظام ولا يمكن لأي وظيفة أخرى أن تعمل — بما في ذلك وظائف المعايرة. يتيح ذلك للمستخدمين تجربة الخوارزميات التغايرية بطريقة أكثر قابلية للتنبؤ، بل وتشغيل تجارب متعددة في آنٍ واحد مستفيدين من التوازي في المنظومة. يساعد استخدام الجلسات على تجنب التأخيرات الناجمة عن وضع كل وظيفة في طابور منفصل، وهو أمر مفيد بشكل خاص للمهام التكرارية التي تستلزم تواصلاً متكرراً بين الموارد الكلاسيكية والكمومية.

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

لتشغيل وظيفة في وضع الجلسة، حدد mode=session عند إنشاء primitive، أو شغِّل الوظيفة داخل مدير سياق الجلسة. راجع تشغيل وظائف في جلسة للاطلاع على أمثلة.

ملاحظات
  • لا يقل وقت الانتظار في الطابور للوظيفة الأولى المرسَلة ضمن جلسة. لذلك لا تُقدِّم الجلسات أي فائدة عند تشغيل وظيفة واحدة فقط.
  • لا يمكن لمستخدمي الخطة المفتوحة (Open Plan) إرسال وظائف الجلسة.

سير العمل الأساسي

سير العمل الأساسي للدُفعات والجلسات متشابه:

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

    يجب أن تمر الوظيفة عبر الطابور العادي لإعادة تفعيل حمل العمل.

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

يوضح الفيديو التالي سير العمل الأساسي باستخدام الجلسات مثالاً:

للاطلاع على تفاصيل كاملة حول مؤقتات TTL، راجع دليل الحد الأقصى لوقت التنفيذ.

الخطوات التالية