יצירת MIG עם פלח TPU מרובה מארחים

מאמר עזרה זה מתאר איך ליצור קבוצת מופעי מכונה מנוהלים (MIG) שיוצרת פלח TPU עם כמה מארחים.

לפני שמתחילים

  • כדאי לעיין במגבלות שחלות על יצירת קבוצות של מכונות מנוהלות עם מכונות TPU.
  • אם עדיין לא עשיתם את זה, תצטרכו להגדיר אימות. אימות הוא תהליך שבו מאמתים את הזהות שלכם כדי לקבל גישה לממשקי API ולשירותים של Google Cloud . כדי להריץ קוד או דוגמאות מסביבת פיתוח מקומית, אפשר לבצע אימות ל-Compute Engine באחת מהדרכים הבאות:
    1. התקינו את ה-CLI של Google Cloud. אחר כך, אתחלו את ה-CLI של Google Cloud באמצעות הפקודה הבאה:

      gcloud init

      אם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים להיכנס ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.

    2. הגדרת אזור ותחום כברירת מחדל

דרישות מוקדמות

לפני שיוצרים פלח TPU עם כמה מארחים, צריך לבצע את הפעולות הבאות:

  1. בחירת גרסת ה-TPU: בוחרים את גרסת ה-TPU שמתאימה לעומס העבודה. במאמר גרסאות מומלצות של TPU לפי סוגי עומסי עבודה מפורטת רשימה של גרסאות TPU לפי סוג עומס העבודה.

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

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

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

  5. בחירת טופולוגיה: בוחרים טופולוגיה שנתמכת בגרסת ה-TPU שנבחרה. במאמר בנושא טופולוגיית TPU מפורטת רשימה של הטופולוגיות שזמינות לכל גרסת TPU.

יצירת MIG עם פרוסות TPU מרובות מארחים

  1. יוצרים תבנית של הגדרות מכונה.
  2. יוצרים מדיניות של עומס עבודה.
  3. יוצרים את ה-MIG.

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

הפקודה ליצירת תבנית של הגדרות מכונה תלויה באפשרות הצריכה שבה אתם משתמשים: על פי דרישה, Spot, מוגבלת למקום שמור או התחלה גמישה (Flex-start). מידע נוסף על אפשרויות הצריכה זמין במאמר מידע על מודלים להקצאת מכונות וירטואליות.

יצירת תבנית של הגדרות מכונה של מכונת TPU וירטואלית לפי דרישה

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

gcloud compute instance-templates create INSTANCE_TEMPLATE_NAME \
  --machine-type=MACHINE_TYPE \
  --maintenance-policy=TERMINATE \
  --image-family=IMAGE_FAMILY \
  --image-project=IMAGE_PROJECT

מחליפים את ה-placeholders הבאים:

  • INSTANCE_TEMPLATE_NAME: השם של תבנית הגדרות המכונה.
  • MACHINE_TYPE: סוג המכונה של מכונת ה-TPU VM, לדוגמה, ct6e-standard-8t.
  • IMAGE_FAMILY: משפחת תמונות מערכת ההפעלה של ה-TPU VM. אם רוצים להתקין גרסה ספציפית של מערכת ההפעלה, משתמשים בדגל --image. מידע נוסף על תמונות של מערכת ההפעלה זמין במאמר תמונות של מערכת ההפעלה.
  • IMAGE_PROJECT: הפרויקט שמכיל את תמונת מערכת ההפעלה. בתמונות TPU, הערך הוא ubuntu-os-accelerator-images.

יצירת תבנית של הגדרות מכונה עבור VM במודל Spot של TPU

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

gcloud compute instance-templates create INSTANCE_TEMPLATE_NAME \
  --machine-type=MACHINE_TYPE \
  --maintenance-policy=TERMINATE \
  --instance-termination-action=STOP \
  --provisioning-model=SPOT \
  --image-family=IMAGE_FAMILY \
  --image-project=IMAGE_PROJECT

מחליפים את ה-placeholders הבאים:

  • INSTANCE_TEMPLATE_NAME: השם של תבנית הגדרות המכונה.
  • MACHINE_TYPE: סוג המכונה של מכונת ה-TPU VM, לדוגמה, ct6e-standard-8t.
  • IMAGE_FAMILY: משפחת תמונות מערכת ההפעלה של ה-TPU VM. אם רוצים להתקין גרסה ספציפית של מערכת ההפעלה, משתמשים בדגל --image. מידע נוסף על תמונות של מערכת ההפעלה זמין במאמר תמונות של מערכת ההפעלה.
  • IMAGE_PROJECT: הפרויקט שמכיל את תמונת מערכת ההפעלה. בתמונות TPU, הערך הוא ubuntu-os-accelerator-images.

יצירת תבנית של הגדרות מכונה למכונה וירטואלית שמוגבלת למקום שמור של TPU

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

gcloud compute instance-templates create INSTANCE_TEMPLATE_NAME \
  --machine-type=MACHINE_TYPE \
  --maintenance-policy=TERMINATE \
  --instance-termination-action=DELETE \
  --reservation-affinity=specific \
  --provisioning-model=reservation-bound \
  --reservation=RESERVATION_NAME \
  --image-family=IMAGE_FAMILY \
  --image-project=IMAGE_PROJECT

מחליפים את ה-placeholders הבאים:

  • INSTANCE_TEMPLATE_NAME: השם של תבנית הגדרות המכונה.
  • MACHINE_TYPE: סוג המכונה של מכונת ה-TPU VM, לדוגמה, ct6e-standard-8t.
  • RESERVATION_NAME: השם של ההזמנה הספציפית שרוצים להשתמש בה.
  • IMAGE_FAMILY: משפחת תמונות מערכת ההפעלה של ה-TPU VM. אם רוצים להתקין גרסה ספציפית של מערכת ההפעלה, משתמשים בדגל --image. מידע נוסף על תמונות של מערכת ההפעלה זמין במאמר תמונות של מערכת ההפעלה.
  • IMAGE_PROJECT: הפרויקט שמכיל את תמונת מערכת ההפעלה. בתמונות TPU, הערך הוא ubuntu-os-accelerator-images.

יצירת תבנית של מכונה וירטואלית עם TPU Flex-start

הפקודה הבאה יוצרת תבנית של הגדרות מכונה באמצעות אפשרות הצריכה flex-start:

gcloud compute instance-templates create INSTANCE_TEMPLATE_NAME \
    --machine-type=MACHINE_TYPE \
    --maintenance-policy=TERMINATE \
    --instance-termination-action=DELETE \
    --provisioning-model=FLEX_START \
    --max-run-duration=DURATION \
    --image-family=IMAGE_FAMILY \
    --image-project=IMAGE_PROJECT

מחליפים את ה-placeholders הבאים:

  • INSTANCE_TEMPLATE_NAME: השם של תבנית הגדרות המכונה.
  • MACHINE_TYPE: סוג המכונה של מכונת ה-TPU VM, לדוגמה, ct6e-standard-8t.
  • DURATION: משך הזמן המקסימלי שבו אפשר להריץ את TPU VM.
  • IMAGE_FAMILY: משפחת תמונות מערכת ההפעלה של ה-TPU VM. אם רוצים להתקין גרסה ספציפית של מערכת ההפעלה, משתמשים בדגל --image. מידע נוסף על תמונות של מערכת ההפעלה זמין במאמר תמונות של מערכת ההפעלה.
  • IMAGE_PROJECT: הפרויקט שמכיל את תמונת מערכת ההפעלה. בתמונות TPU, הערך הוא ubuntu-os-accelerator-images.

יצירת מדיניות של עומס עבודה

צריך ליצור מדיניות של כוח עבודה עם הפרמטר accelerator-topology (לדוגמה, 4x4,‏ 8x8 או 4x4x4). טופולוגיית המאיץ מגדירה את ה-MIG כך שהמופעים יטופלו כפלח יחיד ומקושר.

הפקודה הבאה יוצרת מדיניות של עומס עבודה:

gcloud compute resource-policies create workload-policy WORKLOAD_POLICY_NAME \
  --type=high-throughput \
  --accelerator-topology=TOPOLOGY \
  --region=REGION

מחליפים את ה-placeholders הבאים:

  • WORKLOAD_POLICY_NAME: השם של מדיניות עומס העבודה.
  • TOPOLOGY: הטופולוגיה של מכונות ה-TPU הווירטואליות, לדוגמה, 4x4x8. מידע נוסף על הטופולוגיה של כל גרסה של TPU זמין במאמר בנושא טופולוגיית TPU.
  • REGION: האזור של מדיניות עומס העבודה.

יצירת קבוצת מופעים מנוהלת (MIG)

יוצרים קבוצת MIG אזורית או אזורית באמצעות הפקודה gcloud compute instance-groups managed create באופן הבא:

  • כדי ליצור קבוצת MIG אזורית שמכילה פרוסת TPU עם כמה מארחים, משתמשים בפקודה הבאה:

     gcloud compute instance-groups managed create MIG_NAME \
        --size=MIG_SIZE \
        --target-size-policy-mode=bulk \
        --template=INSTANCE_TEMPLATE_URL \
        --zone=ZONE \
        --default-action-on-vm-failure=do-nothing \
        --workload-policy=WORKLOAD_POLICY_URL
    
  • כדי ליצור קבוצת MIG אזורית שמכילה פלח TPU עם כמה מארחים, משתמשים בפקודה הבאה:

     gcloud compute instance-groups managed create MIG_NAME \
        --size=MIG_SIZE \
        --target-size-policy-mode=bulk \
        --template=INSTANCE_TEMPLATE_URL \
        --region=REGION \
        --default-action-on-vm-failure=do-nothing \
        --workload-policy=WORKLOAD_POLICY_URL \
        --target-distribution-shape=any-single-zone \
        --instance-redistribution-type=none
    

מחליפים את ה-placeholders הבאים:

  • MIG_NAME: השם של קבוצת ה-MIG.
  • MIG_SIZE: מספר המכונות הווירטואליות ב-MIG.
  • INSTANCE_TEMPLATE_URL: כתובת ה-URL של תבנית של הגדרות מכונה שרוצים להשתמש בה כדי ליצור מכונות ב-MIG. כתובת ה-URL יכולה להכיל את המזהה או את השם של תבנית של הגדרות מכונה. מציינים אחד מהערכים הבאים:
    • לתבנית של הגדרות מכונה אזורית: projects/PROJECT_ID/regions/REGION/instanceTemplates/INSTANCE_TEMPLATE_ID
    • בתבנית של הגדרות מכונה גלובלית: INSTANCE_TEMPLATE_ID
  • ZONE: האזור של ה-MIG.
  • REGION: האזור של ה-MIG.
  • WORKLOAD_POLICY_URL: כתובת ה-URL של מדיניות העומס שרוצים להשתמש בה כדי ליצור מופעים ב-MIG. לדוגמה: projects/PROJECT_ID/regions/WORKLOAD_POLICY_REGION/resourcePolicies/WORKLOAD_POLICY_NAME.

יצירת מכונות וירטואליות עם שמות בהתאמה אישית ב-MIG

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

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

  • קודם צריך לוודא שאין מכונות וירטואליות בקבוצת ה-MIG. אם יש מכונות וירטואליות ב-MIG, צריך לשנות את הגודל של ה-MIG לגודל היעד 0 או ליצור עוד MIG עם גודל היעד 0.

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

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

  • בשביל MIG אזורי, משתמשים ב-instanceGroupManagers.createInstances.

     POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/MIG_NAME/createInstances
     {
       "instances": [
         {
           "name": "INSTANCE_NAME_1"
         },
         {
           "name": "INSTANCE_NAME_2"
         },
         ...
       ]
     }
     

  • ל-MIG אזורי, משתמשים ב-regionInstanceGroupManagers.createInstances.

     POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers/MIG_NAME/createInstances
     {
       "instances": [
         {
           "name": "INSTANCE_NAME_1"
         },
         {
           "name": "INSTANCE_NAME_2"
         },
         ...
       ]
     }
     

מחליפים את ה-placeholders הבאים:

  • PROJECT_ID: מזהה הפרויקט שבו קיימת קבוצת ה-MIG.
  • ZONE: האזור של ה-MIG.
  • REGION: האזור של ה-MIG.
  • INSTANCE_NAME_1,2,..: השמות של המכונות הווירטואליות שרוצים להוסיף לקבוצת ה-MIG שצוינה.

המאמרים הבאים