דלג לתוכן הראשי
פרויקט זה בשלב בטא. מצאת באג? פתח issue ב-GitHub. יש שאלה או רעיון? שאל ב-Discussions — נשמח לשמוע ממך!
מה איכות התרגום בדף זה?

מבוא ל-managed workflows

זמינות התוכנית

Qiskit Functions ו-managed workflows הם תכונות בטא הזמינות רק למשתמשים בתוכניות Premium, Flex ו-On-Prem (דרך ה-API של IBM Quantum® Platform).

Managed workflows מריצים את קוד ה-Python המותאם שלך על מחשוב קלאסי ש-IBM Quantum Platform מנהלת עבורך. השתמש ב-managed workflows כדי להריץ תהליכי עבודה היברידיים קוונטיים-קלאסיים, לכסון בקנה מידה גדול ומשימות מקבילות ארוכות טווח, בלי לנהל תשתית מחשוב או אחסון.

מתי להשתמש ב-managed workflow​

השתמש ב-managed workflow כשאף Catalog Function מוכנה לא מכסה את המשימה שלך, או כשאתה רוצה לארוז את השיטה שלך כפונקציה לשימוש חוזר. Managed workflows מתאימים כשאתה רוצה לעשות את הדברים הבאים:

  • להריץ jobs ארוכים בענן. managed workflow ממשיך לרוץ גם כשאתה סוגר את המחשב הנייד, ואפשר להתחבר מחדש ל-job מאוחר יותר.

  • להשתמש בצמתים עם זיכרון גדול וב-GPU. בחר את משאבי הזיכרון, ה-CPU וה-GPU שעומס העבודה צריך.

  • להריץ משימות במקביל. התחל הרבה jobs של צומת יחיד באותו זמן.

אתה מספק את קוד ה-workflow, את התלויות שלו ואת גדלי המחשוב שהוא תומך בהם. Managed workflows מריצים את ה-workflow על מחשוב בניהול IBM® בסביבה מוכנה מראש עם החבילות שלך מותקנות, ומספקים אחסון בענן לקבצים שה-workflow קורא וכותב.

איך managed workflows עובדים​

אתה מעלה workflow פעם אחת ומריץ כמה jobs שתצטרך. כל job פועל בדרכים הבאות:

  • ה-job מתחיל בסביבה חדשה עם דיסק מקומי ריק. Managed workflows סוגרים את הסביבה אחרי שה-job מסתיים.

  • ה-job רץ באחד מגדלי המחשוב שאתה מגדיר כשאתה מעלה את ה-workflow. אפשר לבחור גודל אחר לכל הרצה.

  • ה-job יכול לקרוא ולכתוב באחסון הקבצים של ה-workflow. קבצים באחסון הקבצים נשארים אחרי שה-job מסתיים.

מכיוון שכל job מתחיל עם דיסק מקומי ריק, job מאוחר יותר יכול למצוא רק את הקבצים ש-job קודם שמר באחסון הקבצים.

מחזור החיים של הרצה​

כל job רץ באופן אסינכרוני עד 24 שעות. אפשר להחזיק עד 50 jobs פעילים באותו זמן אם ל-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.

הטבלה הבאה מתארת כל שלב בתרשים ואת סטטוס ה-job שאתה רואה במהלכו:

שלבמה קורהסטטוס ה-job
העלאהאתה מעלה את הקוד, התלויות והגדלים של ה-workflow. ה-workflow דוחה העלאה לא תקינה לפני שרץ job כלשהו.אין (עדיין אין job)
תוראתה קורא ל-run(). ה-workflow בודק אם ל-instance שלך יש מספיק הקצאה, ומתזמן את ה-job כשהמחשוב זמין.QUEUED
התחלהה-workflow יוצר סביבה עם פרופיל המחשוב שבחרת.INITIALIZING
הרצהנקודת הכניסה של ה-workflow שלך רצה. נקודת הכניסה יכולה לדווח על ההתקדמות שלה באמצעות update_status(), ואפשר לקרוא את הלוגים שלה באמצעות logs() בזמן שהיא רצה.RUNNING, או שלב שהגדרת, כמו RUNNING: WAITING_FOR_QPU
תוצאהה-job מסתיים, וה-workflow סוגר את הסביבה שלו ושומר את התוצאה והלוגים.DONE, ERROR או CANCELED

למה job רץ יכול לגשת​

כל job רץ בסביבה מבודדת. התרשים והטבלה הבאים מראים את המשאבים ש-job רץ יכול להשתמש בהם.

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.

משאבבמה ה-job יכול להשתמש
מחשובה-CPU, הזיכרון וה-GPU של פרופיל המחשוב שבחרת ל-job.
קוד וחבילותהקבצים שהעלית עם ה-workflow, והחבילות הנתמכות שמותקנות בסביבה.
ארגומנטיםהארגומנטים שהעברת ל-run(). קרא אותם באמצעות get_arguments().
גישה ל-QPUהאישורים וה-instance שבהם השתמשת כדי לקרוא ל-run(). jobs של QPU שה-workflow שולח רצים על ה-instance שלך ונספרים בשימוש שלך.
פלטיםתוצאה ש-job שומר באמצעות save_result(), לוגים ש-job מדפיס, ועדכוני סטטוס ש-job מגדיר באמצעות update_status().
אחסון קבציםקבצים שכל ההרצות שלך של ה-workflow חולקות. קבצים נשארים באחסון אחרי שה-job מסתיים.
אינטרנטאין גישה. job לא יכול ליצור חיבורים יוצאים. הצהר על חבילות כשאתה מעלה את ה-workflow, וספק נתונים כארגומנטים או כקבצים.

אבטחה ובידוד​

Managed workflows מבודדים כל job מ-jobs אחרים ומגבילים את ההרשאות של הקוד שרץ בו. גבולות הגישה בטבלה הקודמת הם חלק מהבידוד הזה. Managed workflows מחילים גם את ההגנות הבאות:

  • בידוד jobs. אף job אחר לא רץ בסביבה של ה-job שלך. זה כולל jobs של משתמשים אחרים ו-jobs שלך שרצים באותו זמן.

  • תוצאות, לוגים ואחסון. רק המשתמש שהריץ job יכול לקרוא את התוצאות והלוגים שלו.

  • אישורים. Managed workflows מצפינים את האישורים ש-job משתמש בהם, כולל ה-API token שלך, כשהם שומרים אותם. קוד ה-workflow שלך יכול לקרוא את האישורים האלה בזמן שה-job רץ.

  • הרשאות. Managed workflows מסירים הרשאות ברמת מנהל מהסביבה לפני שנקודת הכניסה שלך מתחילה.

השוואה ל-HPC מקומי​

Managed workflows שונים מאשכול HPC מקומי באופן שבו משיגים זמן מחשוב, מגדירים תוכנה ושולחים jobs. הטבלה הבאה משווה משימות נפוצות.

משימהאשכול HPC מקומיManaged workflows
השגת זמן מחשובבקש הקצאה או הזמנה ממנהל האשכול.השתמש בהקצאה של ה-instance של IBM Quantum שלך. ה-workflow מכניס כל job לתור כשאתה קורא ל-run().
גישה למערכתהתחבר לצומת כניסה באמצעות SSH.השתמש בלקוח ה-Python במחשב המקומי שלך. Managed workflows לא מספקים צומת כניסה.
התקנת תוכנהבנה תוכנה, טען modules, או בקש ממנהל להתקין חבילות.השתמש בחבילות הנתמכות שמותקנות בכל סביבה, או העלה wheels לחבילות אחרות.
שליחת jobכתוב סקריפט batch ושלח אותו ל-scheduler.קרא ל-run() עם ארגומנטי ה-job.
בקשת משאביםבקש צמתים, CPU, זיכרון ו-GPU.בחר אחד מגדלי המחשוב שהוגדרו ל-workflow. כל job רץ על צומת יחיד.
הרצת parameter sweepשלח מערך jobs.קרא ל-run() פעם אחת לכל קבוצת ארגומנטים.
אחסון קבצים משותפיםכתוב למערכת קבצים משותפת מסוג scratch.כתוב לאחסון הקבצים של ה-workflow.
הגבלת זמן ריצההגדר מגבלת wall-time.ה-workflow מבטל job אחרי 24 שעות.
Checkpoint ל-jobs ארוכיםכתוב checkpoints לאחסון scratch.שמור תוצאות ביניים באחסון הקבצים.
הרצה חוזרת של job שנכשלשלח את ה-job מחדש.קרא שוב ל-run(). ה-workflow לא מנסה שוב jobs שנכשלו באופן אוטומטי.
ניטור jobsבדוק את התור וקובצי הלוג מצומת הכניסה.בדוק את הסטטוס, הלוגים והתוצאה של כל job מסשן ה-Python המקומי שלך.

השלבים הבאים​

המלצות