דלג לתוכן הראשי

בחירת מצב הרצה מתאים

עומסי עבודה בסדר גודל של שירות יכולים לארוך שעות רבות, ולכן חשוב שמשאבים קלאסיים וקוונטיים כאחד יתוזמנו בצורה יעילה כדי לייעל את ההרצה. מצבי ההרצה מספקים גמישות בניהול הפשרה בין עלות לזמן, ומאפשרים שימוש אופטימלי במשאבים עבור עומסי העבודה שלך. ישנם מספר היבטים לשקול בעת בחירת מצב ההרצה המתאים, כגון זמן ההרצה הכולל (זמן חיים מרבי, או TTL) והזמן בין עבודות (interactive TTL).

היתרונות של כל אחד מסוכמים למטה:

  • Batch
    • כל אצוות העבודות מתוזמנות יחד ואין זמן המתנה בתור נוסף לכל אחת מהן.
    • החישוב הקלאסי של העבודות, כגון קומפילציה, מתבצע במקביל. לפיכך, הרצת מספר עבודות ב-batch מהירה משמעותית מהרצתן בסדרה.
    • בדרך כלל יש עיכוב מינימלי בין עבודות, מה שיכול לסייע במניעת drift.
    • אם אתה מפצל את עומס העבודה שלך למספר עבודות ומריץ אותן במצב batch, תוכל לקבל תוצאות מעבודות בודדות, דבר שהופך אותן לגמישות יותר לעבודה. לדוגמה, אם התוצאות של עבודה מסוימת אינן עומדות בציפיותיך, תוכל לבטל את שאר העבודות. כמו כן, אם עבודה אחת נכשלת, תוכל לשלוח אותה מחדש במקום להריץ מחדש את כל עומס העבודה.
    • בדרך כלל זול יותר מ-sessions.
  • Session
    • כל הפונקציונליות ממצב batch (אך דורש שימוש מוגבר; ראה שימוש בעומס עבודה לפרטים נוספים על אופן חישוב השימוש).
    • גישה ייעודית ובלעדית ל-QPU במהלך חלון הפעילות של ה-session.
    • שימושי לעומסי עבודה שאין להם את כל הנתונים הנדרשים מראש, לעומסי עבודה איטרטיביים הדורשים עיבוד קלאסי לאחר כל שלב לפני שהשלב הבא יכול לרוץ, ולניסויים שצריכים לרוץ קרוב ככל האפשר זה לזה.
  • Job
    • הקל ביותר לשימוש בעת הרצת ניסוי קטן.
    • עשוי לרוץ מוקדם יותר ממצב batch.

המלצות ושיטות עבודה מומלצות

בדרך כלל, השתמש במצב batch אלא אם כן יש לך עומסי עבודה שאין להם את כל הנתונים הנדרשים מראש.

  • השתמש במצב batch כדי לשלוח מספר עבודות primitive בו-זמנית ולקצר את זמן העיבוד.

  • השתמש במצב session לעומסי עבודה איטרטיביים, או אם אתה זקוק לגישה ייעודית ל-QPU.

  • השתמש תמיד במצב job לשליחת בקשת primitive בודדת.

  • מכיוון ש-sessions יקרים יותר בדרך כלל, מומלץ להשתמש ב-batch בכל פעם שאינך זקוק ליתרונות הנוספים של sessions.

  • משתמשי Open Plan אינם יכולים לשלוח עבודות session.

כדי להבטיח את השימוש היעיל ביותר במצבי ההרצה, מומלצות השיטות הבאות:

  • יש עלות קבועה הקשורה להרצת עבודה. בדרך כלל, אם כל אחת מהעבודות שלך משתמשת בפחות מדקה של זמן QPU, שקול לשלב מספר עבודות לעבודה גדולה אחת (זה חל על כל מצבי ההרצה). "זמן QPU" מתייחס לזמן שמתחם ה-QPU מבלה בעיבוד העבודה שלך.

  • אם כל אחת מהעבודות שלך צורכת יותר מדקה של זמן QPU, או אם שילוב עבודות אינו מעשי, עדיין תוכל להריץ מספר עבודות במקביל. כל עבודה עוברת גם עיבוד קלאסי וגם קוונטי. בעוד ש-QPU יכול לעבד רק עבודה אחת בכל פעם, עד חמש עבודות קלאסיות יכולות להתעבד במקביל. אתה יכול לנצל זאת על ידי שליחת מספר עבודות במצב batch או session.

ההנחיות לעיל הן כלליות, ועליך לכוונן את עומס העבודה שלך למציאת היחס האופטימלי, במיוחד בעת שימוש ב-sessions. לדוגמה, אם אתה משתמש ב-session לקבלת גישה בלעדית ל-backend, שקול לפצל עבודות גדולות לעבודות קטנות יותר ולהריץ אותן במקביל. זה עשוי להיות חסכוני יותר מכיוון שהוא יכול לקצר את זמן השעון.

דוגמאות

הרצת אלגוריתם וריאציוני קוונטי

הרצת אלגוריתם וריאציוני קוונטי בדרך כלל עוקבת אחר זרימה זו:

  1. הכן את ה-ansatz.
  2. הערך את פונקציית העלות על QPU.
  3. קח את התוצאה מהשלב הקודם והרץ אותה דרך אופטימייזר קלאסי.
  4. התאם את הפרמטרים לפי הפלט של (3), ואז חזור לשלב (2).

במקרה זה, אם היית משתמש במצב job או batch, כל עבודה שנוצרת בשלב (2) צריכה לחזור דרך התור. זה מגדיל בצורה דרמטית את אורך הניסוי (זמן השעון) בשל זמן ההמתנה בתור. זה גם עלול לארוך זמן רב יותר להתכנס בשל drift של המכשיר. כלומר, כל איטרציה אמורה לתת לך תוצאה טובה יותר, אך drift של המכשיר עלול להחמיר תוצאות עוקבות.

בנוסף, אם אתה משתמש ב-PEA או PEC, אתה יכול ללמוד את מודל הרעש פעם אחת ולהחיל אותו על עבודות עוקבות בעת הרצה ב-session ייעודי. זה בדרך כלל לא עובד עם מצב batch או job מכיוון שמודל הרעש עלול להתיישן עד שהעבודה הבאה יוצאת מהתור.

השוואת הגדרות הפחתת שגיאות

כדי להשוות את ההשפעות של שיטות הפחתת השגיאות הזמינות, ייתכן שתעקוב אחר זרימה זו:

  1. בנה Circuit ו-observable.
  2. שלח עבודות primitive שמשתמשות בשילובים שונים של הגדרות הפחתת שגיאות.
  3. תכנן את התוצאות כדי לצפות בהשפעות ההגדרות השונות.

במקרה זה, כל העבודות (שקשורות זו לזו אך עצמאיות) זמינות מראש. אם תשתמש במצב batch, הן יתוזמנו ביחד ותצטרך להמתין בתור רק פעם אחת. בנוסף, מכיוון שהמטרה היא להשוות את ההשפעות של שיטות הפחתת שגיאות שונות, כדאי שהן ירוצו קרוב ככל האפשר זו לזו. לכן, batch יהיה בחירה טובה. ניתן להריץ עבודות אלה ב-session, אך מכיוון ש-sessions יקרים יותר בדרך כלל, מומלץ להשתמש ב-batch בכל פעם שאינך זקוק לפונקציונליות הנוספת שמספקות sessions.

השלבים הבאים