انتقل إلى المحتوى الرئيسي
هذا المشروع في مرحلة تجريبية. وجدت خطأ؟ افتح مشكلة على GitHub. لديك سؤال أو فكرة؟ اسأل في Discussions — نحب سماع ملاحظاتك!
كيف جودة الترجمة في هذه الصفحة؟

مقدمة إلى سير العمل المُدار

توفر الخطة

Qiskit Functions وسير العمل المُدار ميزتان تجريبيتان (beta) متاحتان فقط لمستخدمي خطط Premium وFlex وOn-Prem (عبر واجهة IBM Quantum® Platform API).

يشغّل سير العمل المُدار كود Python المخصص لك على حوسبة كلاسيكية تديرها IBM Quantum Platform نيابةً عنك. استخدم سير العمل المُدار لتشغيل سير عمل كمومي-كلاسيكي هجين، وتقطير المصفوفات (diagonalization) واسع النطاق، والمهام المتوازية طويلة الأمد دون إدارة البنية التحتية للحوسبة أو التخزين.

متى تستخدم سير عمل مُدار​

استخدم سير عمل مُدار عندما لا توجد Catalog Function جاهزة تغطي مهمتك، أو عندما تريد تغليف طريقتك الخاصة كدالة قابلة لإعادة الاستخدام. يناسبك سير العمل المُدار عندما تريد القيام بما يلي:

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

  • استخدام عُقد ذات ذاكرة كبيرة وعُقد GPU. اختر موارد الذاكرة وCPU وGPU التي يحتاجها حملك.

  • تشغيل المهام بالتوازي. ابدأ الكثير من المهام ذات العقدة الواحدة في الوقت نفسه.

أنت توفّر كود سير العمل واعتمادياته وأحجام الحوسبة التي يدعمها. يشغّل سير العمل المُدار سير العمل على حوسبة تديرها IBM® في بيئة جاهزة مثبّتة فيها حزمك، ويوفر تخزيناً سحابياً للملفات التي يقرؤها سير العمل ويكتبها.

كيف يعمل سير العمل المُدار​

ترفع سير العمل مرة واحدة وتشغّل أي عدد تحتاجه من المهام. تعمل كل مهمة بالطرق التالية:

  • تبدأ المهمة في بيئة جديدة بقرص محلي فارغ. يُغلق سير العمل المُدار البيئة بعد انتهاء المهمة.

  • تعمل المهمة على أحد أحجام الحوسبة التي تحددها عند رفع سير العمل. يمكنك اختيار حجم مختلف لكل تشغيل.

  • يمكن للمهمة قراءة تخزين ملفات سير العمل والكتابة فيه. تبقى الملفات في تخزين الملفات بعد انتهاء المهمة.

لأن كل مهمة تبدأ بقرص محلي فارغ، لا يمكن لمهمة لاحقة أن تجد سوى الملفات التي حفظتها مهمة سابقة في تخزين الملفات.

دورة حياة التشغيل​

تعمل كل مهمة بشكل غير متزامن لمدة تصل إلى 24 ساعة. يمكنك امتلاك ما يصل إلى 50 مهمة نشطة في الوقت نفسه إذا كان لدى نسختك (instance) تخصيص كافٍ.

From your Python session, you call upload() one time to upload the workflow's code, packages, and compute profiles. No job exists yet. Each call to run(args) creates a job that moves through these stages: Queue, where it waits for allocation with status QUEUED; Start, where the managed workflow creates the environment with status INITIALIZING; Running, where your code can optionally set stages with update_status(): Mapping (RUNNING: MAPPING), Optimizing (RUNNING: OPTIMIZING_FOR_HARDWARE), Waiting for QPU (RUNNING: WAITING_FOR_QPU), Executing QPU (RUNNING: EXECUTING_QPU), and Post-processing (RUNNING: POST_PROCESSING); and Result, where the environment shuts down with status DONE, ERROR, or CANCELED. While running, the job reads and writes workflow file storage, which exists outside the job, is shared by all runs, and persists before and after each job. From your session, you can read status() from Queue onward, logs() from Running onward, and result() after the job reaches Result. All three remain available after the job ends.

يصف الجدول التالي كل مرحلة في المخطط وحالة المهمة التي تراها خلال تلك المرحلة:

المرحلةما يحدثحالة المهمة
الرفعترفع كود سير العمل واعتمادياته وأحجامه. يرفض سير العمل أي رفع غير صالح قبل تشغيل أي مهمة.لا شيء (لا توجد مهمة بعد)
الانتظار في الطابورتستدعي run(). يتحقق سير العمل مما إذا كان لدى نسختك تخصيص كافٍ، ويجدول المهمة عندما تتوفر الحوسبة.QUEUED
البدءينشئ سير العمل بيئة بملف الحوسبة الذي اخترته.INITIALIZING
التشغيلتعمل نقطة دخول سير عملك. يمكن لنقطة الدخول الإبلاغ عن تقدمها باستخدام update_status()، ويمكنك قراءة سجلاتها باستخدام logs() أثناء عملها.RUNNING، أو مرحلة تحددها أنت، مثل RUNNING: WAITING_FOR_QPU
النتيجةتنتهي المهمة، ويُغلق سير العمل بيئته مع الاحتفاظ بالنتيجة والسجلات.DONE أو ERROR أو CANCELED

ما الذي يمكن للمهمة الجارية الوصول إليه​

تعمل كل مهمة في بيئة معزولة. يعرض المخطط والجدول التاليان الموارد التي يمكن للمهمة الجارية استخدامها.

You call run() with arguments from your Python session and receive status, logs, and the result. Inside the managed workflow, each run executes in an isolated job environment with access to its compute (CPU, RAM, and optionally GPU), your code and packages, and its arguments. The job produces outputs with save_result(), logs, and update_status(), and submits QPU jobs that run on your instance. File storage and your instance, which provides access and cost management, are shared across all managed workflow jobs and persist after the job ends. The job has no internet access.

الموردما يمكن للمهمة استخدامه
الحوسبةCPU والذاكرة وGPU الخاصة بـملف الحوسبة الذي اخترته للمهمة.
الكود والحزمالملفات التي رفعتها مع سير العمل، والحزم المدعومة المثبّتة في البيئة.
المعاملات (Arguments)المعاملات التي مررتها إلى run(). اقرأها باستخدام get_arguments().
الوصول إلى QPUبيانات الاعتماد والنسخة (instance) اللتان استخدمتهما لاستدعاء run(). تعمل مهام QPU التي يرسلها سير العمل على نسختك وتُحتسب ضمن استخدامك.
المخرجاتنتيجة تحفظها المهمة باستخدام save_result()، والسجلات التي تطبعها المهمة، وتحديثات الحالة التي تضبطها المهمة باستخدام update_status().
تخزين الملفاتالملفات التي تشترك فيها جميع تشغيلاتك لسير العمل. تبقى الملفات في التخزين بعد انتهاء المهمة.
الإنترنتلا يوجد وصول. لا يمكن للمهمة إجراء اتصالات صادرة. صرّح بالحزم عند رفع سير العمل، ووفّر البيانات كمعاملات أو ملفات.

الأمان والعزل​

يعزل سير العمل المُدار كل مهمة عن المهام الأخرى ويحدّ من صلاحيات الكود الذي يعمل فيها. حدود الوصول في الجدول السابق جزء من هذا العزل. كما يطبّق سير العمل المُدار الحمايات التالية:

  • عزل المهام. لا تعمل أي مهمة أخرى في بيئة مهمتك. ويشمل ذلك مهام المستخدمين الآخرين ومهامك الخاصة التي تعمل في الوقت نفسه.

  • النتائج والسجلات والتخزين. يمكن فقط للمستخدم الذي شغّل المهمة قراءة نتائجها وسجلاتها.

  • بيانات الاعتماد. يشفّر سير العمل المُدار بيانات الاعتماد التي تستخدمها المهمة، بما في ذلك مفتاح API الخاص بك، عند تخزينها. يمكن لكود سير عملك قراءة بيانات الاعتماد هذه أثناء تشغيل المهمة.

  • الصلاحيات. يزيل سير العمل المُدار الصلاحيات على مستوى المسؤول من البيئة قبل أن تبدأ نقطة الدخول.

المقارنة مع HPC المحلي​

يختلف سير العمل المُدار عن عنقود HPC محلي في طريقة الحصول على وقت الحوسبة وإعداد البرمجيات وإرسال المهام. يقارن الجدول التالي المهام الشائعة.

المهمةعنقود HPC المحليسير العمل المُدار
الحصول على وقت الحوسبةاطلب تخصيصاً أو حجزاً من مسؤول العنقود.استخدم تخصيص نسخة IBM Quantum الخاصة بك. يضع سير العمل كل مهمة في الطابور عند استدعاء run().
الوصول إلى النظاماتصل بعقدة تسجيل الدخول عبر SSH.استخدم عميل Python على حاسوبك المحلي. لا يوفر سير العمل المُدار عقدة تسجيل دخول.
تثبيت البرمجياتابنِ البرمجيات، أو حمّل الوحدات (modules)، أو اطلب من المسؤول تثبيت الحزم.استخدم الحزم المدعومة المثبّتة في كل بيئة، أو ارفع ملفات wheel للحزم الأخرى.
إرسال مهمةاكتب سكربت دفعي (batch script) وأرسله إلى المجدول.استدعِ run() مع معاملات المهمة.
طلب الموارداطلب العُقد وCPU والذاكرة وGPU.اختر أحد أحجام الحوسبة المعرّفة لسير العمل. تعمل كل مهمة على عقدة واحدة.
تشغيل مسح للمعاملاتأرسل مصفوفة مهام (job array).استدعِ run() مرة واحدة لكل مجموعة معاملات.
تخزين الملفات المشتركةاكتب في نظام ملفات scratch مشترك.اكتب في تخزين الملفات الخاص بسير العمل.
تحديد وقت التشغيلاضبط حداً للوقت الفعلي (wall-time).يلغي سير العمل المهمة بعد 24 ساعة.
نقاط التحقق للمهام الطويلةاكتب نقاط التحقق في تخزين scratch.احفظ النتائج الوسيطة في تخزين الملفات.
إعادة تشغيل مهمة فاشلةأعد إرسال المهمة.استدعِ run() مرة أخرى. لا يعيد سير العمل محاولة المهام الفاشلة تلقائياً.
مراقبة المهامتحقق من الطابور وملفات السجل من عقدة تسجيل الدخول.تحقق من حالة كل مهمة وسجلاتها ونتيجتها من جلسة Python المحلية الخاصة بك.

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

التوصيات