שאלות נפוצות על מצבי הרצה
האם מצב הבדיקה המקומי של qiskit-ibm-runtime תומך במצבי הרצה שונים?
מצב הבדיקה המקומי תומך בתחביר של מצבי ההרצה השונים, אך מכיוון שאין תזמון כלשהו בבדיקה מקומית, המצבים עצמם מתעלמים.
כמה משימות יכולות לרוץ במקביל עבור Backend מסוים?
מספר המשימות הרצות במקביל מבוסס על רמת המקביליות המוגדרת עבור ה-Backend, שהיא חמש עבור רוב ה-Backends כיום.
כיצד מדווח השימוש עבור משימות שנכשלו או בוטלו?
ראה את הסעיף משימות שנכשלו ובוטלו בדף מצבי ההרצה.
סשנים
מה קורה למשימות שלי אם הסשן נסגר?
אם אתה משתמש בקלאס Session ב-qiskit-ibm-runtime:
-
Session.close()פירושו שהסשן אינו מקבל עוד משימות חדשות, אך המשימות הקיימות ממשיכות עד השלמתן. -
Session.cancel()מבטל את כל משימות הסשן הממתינות.
אם אתה משתמש ב-REST API ישירות:
-
PATCH /sessions/{id}עםaccepting_jobs=Falseפירושו שהסשן אינו מקבל עוד משימות חדשות, אך המשימות הקיימות ממשיכות עד השלמתן. -
DELETE /sessions/{id}/closeמבטל את כל משימות הסשן הממתינות.
אם אני משתמש ב-session mode ומצפה שהניסוי שלי יימשך שעות רבות, האם יש דרך לבקש שיתבצעו כיולים?
לא. כיול לפי דרישה אינו זמין.
האם קיים פסק זמן אינטראקטיבי (TTL אינטראקטיבי) ב-session mode?
כן. הדבר מפחית עלויות בלתי רצויות אם משתמש שוכח לסגור את הסשן שלו.
האם אפשר לשנות את ה-TTL האינטראקטיבי או את ה-TTL המקסימלי של סשן?
לא ניתן לשנות את ערך ה-TTL האינטראקטיבי. ניתן לשנות את ערך ה-TTL המקסימלי של סשן (ראה ציון אורך הסשן), אך הוא חייב להיות קטן מהמקסימום המוגדר במערכת. פנה למנהל המערכת שלך ליצור קשר עם תמיכת IBM אם אתה זקוק ל-TTL אינטראקטיבי שונה או ל-TTL מקסימלי שונה של המערכת.
כיצד שימוש ב-Session משפיע על חברי IBM Quantum Network שאינם מחויבים לפי שימוש?
חברי IBM Quantum Network מקבלים קיבולת שמורה ב-QPUs של IBM Quantum®. השימוש מנוכה מקיבולת זו, ומופעים עם קיבולת נמוכה יותר נתונים לזמני תור ארוכים יותר.
האם אני מקבל את אותה רמת מקביליות ב-session mode כמו ב-batch mode?
כן. אם אתה שולח מספר משימות בו-זמנית בסשן, משימות אלו ירוצו במקביל.
האם סשנים יכולים להיקטע על ידי שדרוגי QPU או כיולים?
לא. סשנים פועלים במצב ייעודי, כלומר למשתמש יש גישה מלאה ל-Backend. סשנים אינם נקטעים לעולם על ידי כיולים או שדרוגי תוכנה.
האם זמן קומפילציה נחשב כשימוש ב-session mode?
כן. ב-session mode, השימוש הוא זמן השעון שה-QPU מחויב לסשן. הוא מתחיל כאשר משימת הסשן הראשונה מתחילה ומסתיים כאשר הסשן הופך ללא פעיל, נסגר, או כאשר המשימה האחרונה מסתיימת, לפי המאוחר שבהם. לכן, השימוש ממשיך להצטבר לאחר סיום הסשן אם ה-QPU עדיין מריץ משימה. בנוסף, הזמן שחולף לאחר סיום משימה בזמן שה-QPU ממתין למשימת סשן נוספת (ה-TTL האינטראקטיבי) נחשב כשימוש. זו הסיבה שעליך לוודא שהסשן נסגר ברגע שסיימת לשלוח אליו משימות.
אצווה
כמה משימות רצות במקביל ב-batch mode?
מספר המשימות הרצות במקביל מבוסס על רמת המקביליות המוגדרת עבור ה-Backend, שהיא חמש עבור רוב ה-Backends. עם זאת, מספר המשימות הרצות בו-זמנית באצווה פעילה עשוי להיות נמוך יותר, מכיוון שייתכן שיש משימות אחרות שכבר רצות כאשר האצווה הופכת לפעילה.
במה שונה הרצת _N_ PUBs ב-job mode מהרצת _N_ משימות עם PUB בודד ב-batch mode?
ההבדל העיקרי הוא בפשרה בין זמן ועלות:
Batch mode:
-
זמן ההרצה הכולל קצר יותר מכיוון שהעיבוד הקלאסי עשוי לרוץ במקביל.
-
קיים תקורה קלה עבור הרצת כל משימה, ולכן בסופו של דבר אתה משלם מעט יותר עבור משימות באצווה לעומת כאשר כל המעגלים מורצים במשימה בודדת.
-
מכיוון ש-batch mode אינו מעניק לך גישה בלעדית ל-Backend, משימות בתוך אצווה עשויות לרוץ עם משימות של משתמשים אחרים או משימות כיול.
-
אם חלק מהמשימות נכשלות, אתה עדיין מקבל תוצאות מהמשימות שהושלמו.
-
ניתן לנקוט פעולה באמצע עומס עבודה באצווה על סמך תוצאות המשימות שהושלמו. לדוגמה, ניתן לבטל את שאר המשימות אם התוצאות הראשוניות נראות שגויות.
Job mode:
-
זמן ההרצה הכולל צפוי להיות גבוה יותר מכיוון שאין מקביליות.
-
אינך משלם עבור התקורה הנוספת לכל משימה הקשורה לעומסי עבודה באצווה.
-
כל המעגלים שלך ירוצו יחד.
-
אם משימה בודדת זו נכשלת, אינך מקבל תוצאות חלקיות.
-
המשימה שלך עשויה לפגוע במגבלה אם היא מכילה יותר מדי מעגלים או אם המעגלים גדולים מדי.
באופן כללי, אם כל אחת מהמשימות שלך צורכת פחות מדקה של זמן QPU, שקול לאחד אותן למשימה גדולה יותר (זה חל על כל מצבי ההרצה).
כמה משימות אני יכול לשלוח באצווה?
אמנם אין מגבלות על מספר המשימות שניתן לשלוח באצווה, אך קיים זמן מקסימלי הקשור לאצווה. כלומר, כאשר זמן השעון של האצווה (שמתחיל כאשר משימת האצווה הראשונה מתחילה לרוץ) חורג מהזמן המקסימלי המוגדר במערכת, האצווה לא תקבל משימות חדשות, וכל משימה שנמצאת בתור אך אינה רצה תבוטל. בנוסף, קיימות מגבלות על כמות השימוש שהמשימות שלך יכולות לצרוך בהתאם לתוכנית שלך. כדי לקבוע את הזמן המקסימלי הקשור לאצווה, השתמש במתודה batch.details() וחפש את הערך max_time.
מתי המשימות שלי ב-batch mode ירוצו במקביל למשימות של משתמשים אחרים?
רמת המקביליות המוגדרת עבור Backend נקראת גם "נתיבי הרצה". אם ישנם נתיב הרצה אחד או יותר פנויים, והמשימות באצווה שלך הן הבאות בתור, המתזמן מתחיל מספיק משימות כדי למלא את הנתיבים. באופן דומה, אם האצווה שלך אינה מכילה מספיק משימות למילוי הנתיבים, המתזמן מתחיל משימות של משתמשים אחרים.
דוגמה: ל-Backend שבחרת יש חמישה נתיבי הרצה, ושניים מהם כרגע תפוסים על ידי משימות של משתמשים אחרים. האצווה שלך עם שש משימות היא הבאה בתור.
מכיוון שיש שלושה נתיבים פנויים, המתזמן מתחיל שלוש מתוך שש משימות האצווה שלך. הוא ממשיך להתחיל משימות באצווה שלך ככל שמשימות מסתיימות ונתיבי הרצה מתפנים. אם נתיב מתפנה ואין עוד משימות באצווה שלך, המתזמן מתחיל את המשימה הבאה בתור.
האם כל המשימות שלי באצווה צריכות לחכות בתור?
מכיוון שה-QPUs הם משאבים מוגבלים ומשותפים, כל המשימות צריכות לחכות בתור. עם זאת, כאשר המשימה הראשונה באצווה שלך מתחילה לרוץ, כל שאר המשימות באצווה זו למעשה קופצות לראש התור ומקבלות עדיפות על ידי המתזמן.
האם אצווה מסתיימת אוטומטית כאשר המשימה האחרונה המשויכת אליה מסתיימת?
כן. עם זאת, קיימת תקורה קלה הקשורה לאיתור אוטומטי זה, לכן עליך תמיד לסגור את האצווה והסשן שלך.
האם אצוות יכולות להיקטע על ידי כיולים או שדרוגי תוכנה
כן. עומסי עבודה באצווה עלולים להיות מופרעים על ידי כיולים או שדרוגי תוכנה.
האם זמן קומפילציה נחשב כשימוש ב-batch mode?
לא. ב-batch mode, רק הזמן שמושקע בחומרה הקוונטית נחשב כשימוש.