יצירת קבוצת MIG עם חלקי TPU של מארח יחיד

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

אפשר גם ליצור פרוסת TPU עם מארח יחיד כמופע TPU עצמאי. מידע נוסף זמין במאמר יצירת מכונת TPU וירטואלית.

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

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

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

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

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

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

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

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

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

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

יצירת MIG עם כמה פרוסות TPU של מארח יחיד

כדי ליצור כמה מכונות וירטואליות עצמאיות של TPU בקבוצת MIG:

  1. יוצרים תבנית של הגדרות מכונה.
  2. יוצרים את ה-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 הווירטואלית (לדוגמה, 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 הווירטואלית (לדוגמה, ct6e-standard-8t).
  • IMAGE_FAMILY: משפחת תמונות מערכת ההפעלה של ה-TPU VM. אם רוצים להתקין גרסה ספציפית של מערכת ההפעלה, משתמשים בדגל --image. מידע נוסף על תמונות של מערכת ההפעלה זמין במאמר תמונות של מערכת ההפעלה.
  • IMAGE_PROJECT: הפרויקט שמכיל את תמונת מערכת ההפעלה. בתמונות TPU, הערך הוא ubuntu-os-accelerator-images.

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

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

 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 (לדוגמה, 1h).
  • IMAGE_FAMILY: משפחת תמונות מערכת ההפעלה של ה-TPU VM. אם רוצים להתקין גרסה ספציפית של מערכת ההפעלה, משתמשים בדגל --image. מידע נוסף על תמונות של מערכת ההפעלה זמין במאמר תמונות של מערכת ההפעלה.
  • IMAGE_PROJECT: הפרויקט שמכיל את תמונת מערכת ההפעלה. בתמונות TPU, הערך הוא ubuntu-os-accelerator-images.

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

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

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

    gcloud compute instance-groups managed create MIG_NAME \
        --size=MIG_SIZE \
        --template=INSTANCE_TEMPLATE_URL \
        --zone=ZONE
    
  • כדי ליצור קבוצת MIG אזורית שמכילה פרוסת TPU של מארח יחיד, משתמשים בפקודה הבאה:

    gcloud compute instance-groups managed create MIG_NAME \
        --size=MIG_SIZE \
        --template=INSTANCE_TEMPLATE_URL \
        --region=REGION \
        --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.

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

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

gcloud

יוצרים מכונה וירטואלית עם שם מותאם אישית באמצעות הפקודה create-instance ומציינים את הדגל --instance. כדי ליצור כמה מכונות וירטואליות, חוזרים על הפקודה לכל מכונה וירטואלית. אחרת, השתמשו בשיטת API בארכיטקטורת REST כדי לציין כמה מכונות וירטואליות בבקשה אחת.

  • ל-MIG אזורי, משתמשים בפקודה הבאה:

    gcloud compute instance-groups managed create-instance MIG_NAME \
        --zone=ZONE \
        --instance=INSTANCE_NAME
    
  • ל-MIG אזורי, משתמשים בפקודה הבאה:

    gcloud compute instance-groups managed create-instance MIG_NAME \
        --region=REGION \
        --instance=INSTANCE_NAME
    

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

  • MIG_NAME: השם של קבוצת ה-MIG.
  • ZONE: האזור של ה-MIG.
  • REGION: האזור של ה-MIG.
  • INSTANCE_NAME: השם של המכונה הווירטואלית שרוצים להוסיף לקבוצת ה-MIG שצוינה.

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 שצוינה.

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