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

اختر وضع التنفيذ المناسب

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

فيما يلي ملخص لفوائد كل وضع:

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

التوصيات وأفضل الممارسات

بوجه عام، استخدم وضع الدُّفعة إلا إذا كانت لديك أعباء عمل لا تتوفر جميع مدخلاتها من البداية.

  • استخدم وضع الدُّفعة لإرسال وظائف بدائية متعددة في آنٍ واحد لتقليص وقت المعالجة.

  • استخدم وضع الجلسة لأعباء العمل التكرارية، أو إذا كنت بحاجة إلى وصول حصري لوحدة المعالجة الكمومية.

  • استخدم وضع الوظيفة دائماً لإرسال طلب بدائي فردي.

  • لأن الجلسات أغلى تكلفةً بشكل عام، يُنصح باستخدام الدُّفعة في كل مرة لا تحتاج فيها إلى المزايا الإضافية للجلسات.

  • لا يستطيع مستخدمو الخطة المفتوحة (Open Plan) إرسال وظائف الجلسة.

لضمان الاستخدام الأكثر كفاءة لأوضاع التنفيذ، يُوصى بالممارسات التالية:

  • هناك تكلفة ثابتة مرتبطة بتشغيل أي وظيفة. بوجه عام، إذا كانت كل وظيفة من وظائفك تستهلك أقل من دقيقة من وقت QPU، فكّر في دمج عدة وظائف في وظيفة واحدة أكبر (هذا ينطبق على جميع أوضاع التنفيذ). يقصد بـ"وقت QPU" الوقت الذي تقضيه منظومة QPU في معالجة وظيفتك.

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

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

أمثلة

تشغيل خوارزمية كمومية تغايرية

يتبع تشغيل خوارزمية كمومية تغايرية عادةً هذا المسار:

  1. إعداد الـ ansatz.
  2. تقييم دالة التكلفة على وحدة QPU.
  3. أخذ نتيجة الخطوة السابقة وتشغيلها عبر محسِّن كلاسيكي.
  4. ضبط المعاملات وفق مخرجات الخطوة (3)، ثم العودة إلى الخطوة (2).

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

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

مقارنة إعدادات تخفيف الأخطاء

لمقارنة تأثيرات أساليب تخفيف الأخطاء المتاحة، قد تتبع هذا المسار:

  1. بناء Circuit و observable.
  2. إرسال وظائف بدائية تستخدم مجموعات مختلفة من إعدادات تخفيف الأخطاء.
  3. رسم النتائج لمراقبة تأثيرات الإعدادات المختلفة.

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

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