בדיקת ההגדרות של מופעי המחשוב והאשכול

במאמר הזה מתוארות ההגדרות ב-AI Hypercomputer שצריך להביא בחשבון לפני שיוצרים מכונות ואשכולות של Compute Engine. בדיקת ההגדרות הזמינות עוזרת לבצע אופטימיזציה של ביצועי עומסי העבודה, וגם לצמצם את זמני ההשבתה ואת הבעיות בביצועים.

גורמי הגדרה ליצירת מכונות ואשכולות

לפני שיוצרים מכונות ואשכולות להרצת עומסי העבודה, כדאי לבדוק באיזו הגדרה להשתמש:

  1. מודל ההקצאה

  2. הכלים לפריסת אשכולות

  3. אם אתם משתמשים במודל הקצאת משאבים שמוגבל להזמנות, אתם צריכים להביא בחשבון גם את הגורמים הבאים:

מודלים של הקצאת הרשאות ידנית

בהתאם לאפשרות הצריכה שבחרתם ליצירת מכונות או אשכולות, אתם יכולים להשתמש באחד ממודלי ההקצאה הבאים כדי לקבל את המשאבים הדרושים ליצירת מכונות:

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

  • התחלה גמישה (Flex-start): אתם יכולים לבקש משאבים בהנחה לתקופה של עד שבעה ימים. המערכת של Compute Engine עושה מאמצים כדי לתזמן את הקצאת המשאבים שביקשתם ברגע שהם זמינים. יש לכם גישה בלעדית למשאבים שקיבלתם לתקופה שביקשתם.

  • Spot: בהתאם לזמינות, אתם יכולים לקבל מיד משאבים בהנחה משמעותית. עם זאת, יכול להיות ש-Compute Engine יפסיק או ימחק מכונות בכל שלב כדי לפנות קיבולת.

מודל הקצאה שקשור להזמנה

מודל ההקצאה שמבוסס על מקומות שמורים מקשר את המכונות שיצרתם למקום ששמרתם מראש. כשאתם שומרים קיבולת, Compute Engine יוצר מקום שמור ריק. לאחר מכן, בשעת ההתחלה של שמירת המקום, קורים הדברים הבאים:

  • Compute Engine מוסיף את מספר המכונות השמורות שלכם למקום השמור. יש לכם גישה בלעדית לקיבולת השמורה עד לסיום תקופת ההזמנה.

  • ‫Google Cloud מחייבת אתכם על הקיבולת השמורה עד לסיום תקופת ההזמנה, גם אם אתם לא משתמשים בקיבולת.

אחר כך תוכלו להשתמש במשאבים השמורים כדי ליצור מכונות ללא חיובים נוספים. אתם משלמים רק על משאבים שלא כלולים בהזמנה, כמו דיסקים או כתובות IP.

כדי לציין את מודל ההקצאה שמוגבל להזמנה כשיוצרים מכונות Compute או קבוצות MIG, צריך לבצע את הפעולות הבאות:

  • במסוף Google Cloud , ברשימה Provisioning model בוחרים באפשרות Reservation-bound.

  • ב-Google Cloud CLI, כוללים בפקודה את הדגל --provisioning-model=RESERVATION_BOUND.

  • ב-Compute Engine API, כוללים את השדה "provisioningModel": "RESERVATION_BOUND" בגוף הבקשה.

למידע נוסף על הגדרת הפרמטרים האלה כשיוצרים מכונות או קבוצות MIG אחרי ששומרים קיבולת, קראו את סקירה כללית על יצירת מכונות ואשכולות של Compute. אם אתם משתמשים ב-Cluster Toolkit כדי לפרוס את האשכולות, תרשים האשכול מגדיר בשבילכם את מודל ההקצאה.

מודל הקצאה מסוג Flex-start

מודל ההקצאה "התחלה גמישה" מאפשר ליצור מכונות וירטואליות עצמאיות מסוג Flex-start, או להוסיף מכונות וירטואליות מסוג Flex-start לקבוצת מכונות מנוהלת (MIG) כשהקיבולת המבוקשת זמינה. כשמוסיפים מכונות Flex-start VM לקבוצת MIG באמצעות בקשות לשינוי כמות, קבוצת ה-MIG יוצרת את כל המכונות בבת אחת. כך תוכלו להימנע מחיובים מיותרים על קיבולת חלקית ש-Compute Engine עשוי לספק בזמן שאתם ממתינים לקיבולת המלאה שנדרשת כדי להתחיל את עומס העבודה. במודל ההקצאה "התחלה גמישה", המשאבים מוקצים ממאגר קיבולת מאובטח, וכך גדלים הסיכויים לקבל משאבים עם ביקוש גבוה כמו מעבדי GPU.

כדי לציין את מודל ההקצאה "התחלה גמישה" כשיוצרים מכונה עצמאית או תבנית של הגדרות מכונה בשביל קבוצת מכונות מנוהלת (MIG):

  • במסוף Google Cloud , ברשימה Provisioning model בוחרים באפשרות Flex-start.

  • ב-CLI של gcloud, מוסיפים לפקודה את הדגל --provisioning-model=FLEX_START.

  • ב-Compute Engine API, כוללים את השדה "provisioningModel": "FLEX_START" בגוף הבקשה.

מידע נוסף על יצירת מכונות או אשכולות שמשתמשים במודל ההקצאה "התחלה גמישה" זמין במאמרים הבאים:

מודל הקצאת משאבים של Spot

מודל ההקצאה של מכונות Spot מאפשר ליצור מכונות בהנחה משמעותית, על סמך הזמינות. עם זאת, יכול להיות ש-Compute Engine יפסיק או ימחק את המכונות שנוצרו בכל שלב כדי להחזיר את הקיבולת. התהליך הזה נקרא הפקעה.

כדי לציין את מודל ההקצאה של Spot כשיוצרים מכונות או קבוצות MIG, מבצעים את הפעולות הבאות:

  • במסוף Google Cloud , ברשימה Provisioning model בוחרים באפשרות Spot.

  • ב-CLI של gcloud, מוסיפים לפקודה את הדגל --provisioning-model=SPOT.

  • ב-Compute Engine API, כוללים את השדה "provisioningModel": "SPOT" בגוף הבקשה.

מידע נוסף על הגדרת הפרמטרים האלה כשיוצרים מכונות או קבוצות MIG זמין במאמר סקירה כללית על יצירת מכונות ואשכולות של Compute.

כלים לפריסת אשכולות

‫Cluster Toolkit הוא כלי פריסה בקוד פתוח שמומלץ ליצירת אשכולות עם האצת GPU. באמצעות Cluster Toolkit אפשר לפרוס אשכולות של Google Kubernetes Engine (GKE) או של Slurm.

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

סוגי פריסה של בלוקים להזמנה

אם אתם משתמשים במודל הקצאה שמבוסס על הזמנה כשאתם יוצרים מכונות או אשכולות של GPU, המכונות שאתם מקבלים נפרסות באופן אוטומטי בתוך בלוקים של מארחים שהוקצו בצפיפות. הפריסה הזו מציעה את היתרונות הבאים:

  • רשת ללא חסימות לקישוריות עקבית של מכונות עם רוחב פס גבוה וזמן אחזור קצר, באמצעות מארג רשת דינמי של למידת מכונה (ML) מבית Google.

  • גישה לטופולוגיה של הרשת, שמספקת תצוגה היררכית של הקרבה היחסית בין המכונות. היכולת הזו שימושית בתרחישים מתקדמים של תזמון משימות.

  • מיקום מפורט ומודע לטופולוגיה כשמשתמשים בתזמור.

  • שליטה מדויקת של המשתמשים בלוחות הזמנים של התחזוקה, כדי למקסם את תזמון המשימות ואת זמן הפעולה התקינה, ולצמצם את זמני ההשבתה.

מצב הפעולה של ההזמנה

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

כל מצב פעולה של הזמנה מגדיר את הדברים הבאים:

  • מי מנהל את השחזור: אתם או Google Cloud.

  • באיזה קיבולת אתם משתמשים לשחזור: רק בקיבולת השמורה, או בקיבולת בתוך או מחוץ לקיבולת השמורה.

  • רמת השליטה במיקום: אם אתם יכולים לראות את התחזוקה ולהתחיל אותה לפני הזמן המתוכנן, בבלוקים ספציפיים של הזמנות, כדי לשלוט בתהליך בצורה מדויקת.

כשאתם שומרים קיבולת כדי ליצור מכונות או אשכולות, אתם צריכים לבחור אחד ממצבי הפעולה הבאים של שמירת המקום: מצב מנוהל או מצב קיבולת מלאה.

מצב מנוהל

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

למצב המנוהל יש את המאפיינים הבאים:

  • ‫Only use reserved capacity for recovery: המערכת של Compute Engine משתמשת בקיבולת השמורה רק כדי להפעיל מחדש מכונות. אם אין קיבולת זמינה במקומות שהזמנתם, המערכת של Compute Engine תפעיל מחדש את המכונות רק אחרי שתקבלו קיבולת נוספת.

  • הפעלה מחדש אוטומטית של מכונות: Google Cloud מטפלת בכל תהליך השחזור של מכונה. כשנדרשת תחזוקה של המארח, Compute Engine מעביר באופן אוטומטי את המכונות למכונות זמינות אחרות במסגרת ההזמנה, ומפעיל מחדש את המכונות.

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

  • מגבלות פוטנציאליות על קצב הקריאות ל-API: יכול להיות שקצב הקריאות ל-API לדיווח על מארח פגום יוגבל לכל הזמנה.

מצב "כל הקיבולת"

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

למצב "כל הקיבולת" יש את המאפיינים הבאים:

  • שימוש בקיבולת שמורה ולא שמורה לשחזור: אתם יכולים להשתמש במשאבים השמורים, וגם בכל המשאבים שזמינים מחוץ להזמנה, כדי להעביר ולהפעיל מחדש מכונה כשהמארח שלה נכשל.

  • הפעלה מחדש ידנית של מכונות: אתם אחראים לתהליך השחזור של המכונה. כשנדרשת תחזוקה של המארח בגלל שגיאה במארח או דיווח על מארח פגום, Compute Engine מפסיק את המכונה. אפשר להפעיל מחדש את המכונה רק אחרי שהתחזוקה מסתיימת.

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

  • אין מגבלות קצב של יצירת בקשות ל-API: אין מגבלות קצב כששולחים קריאות ל-API לדיווח על מארח פגום.

סוגי תזמון של פעולות תחזוקה

אם אתם משתמשים במודל הקצאה שמבוסס על הזמנות, Cluster Director מספק אפשרויות לתזמון תחזוקת המארח של המכונות שפועלות באשכול. כשאתם שומרים קיבולת, אתם יכולים לציין אם לקבץ מכונות ולקבוע להן לוח זמנים מסונכרן לתחזוקה (grouped), או שהמכונות יהיו בצימוד חלש ויהיה להן לוח זמנים עצמאי לתחזוקה (independent).

תזמון תחזוקה מקובצת

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

סוג התזמון של תחזוקה קבוצתית שימושי במקרים הבאים:

  • בסביבה שלכם יש מתזמן משימות, כמו Slurm או GKE.

  • אתם רוצים להריץ אימון או עומסי עבודה אחרים של מחשוב מקבילי מאוד.

תזמון תחזוקה עצמאי

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

מה השלב הבא?