יצירת MIG עם פרוסות Cloud TPU במארח יחיד
מסמך זה מתאר איך ליצור קבוצת מופעי מכונה מנוהלים (MIG) עם כמה פרוסות TPU עצמאיות במארח יחיד.
דרישות מוקדמות
מבצעים את הפעולות הבאות:
- יוצרים פרויקט ליחידות ה-TPU, כמו שמתואר במאמר הגדרת פרויקט ליחידות TPU.
- מגדירים את דרישות ה-TPU כמו שמתואר בקטע תכנון המשאבים.
יצירת MIG עם כמה פרוסות TPU במארח יחיד
כדי ליצור כמה מכונות וירטואליות של TPU נפרדות ב-MIG:
- יוצרים תבנית של הגדרות מכונה.
- יוצרים את ה-MIG.
יצירת תבנית של הגדרות מכונה
ההגדרות של תבניות המכונות משתנות בהתאם לאפשרות הצריכה שבה אתם משתמשים: על פי דרישה, Spot, הזמנות או Flex-start. למידע נוסף על אפשרויות הצריכה, קראו את המאמר תכנון משאבי TPU.
יצירת תבנית של הגדרות מכונה ל-TPU VM על פי דרישה
הפקודה הבאה יוצרת תבנית של הגדרות מכונה שמשתמשת באפשרות הצריכה on-demand:
gcloud
gcloud compute instance-templates create INSTANCE_TEMPLATE_NAME \
--machine-type=MACHINE_TYPE \
--maintenance-policy=TERMINATE \
--image-family=IMAGE_FAMILY \
--image-project=IMAGE_PROJECT
REST
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
-d '{
"name": "INSTANCE_TEMPLATE_NAME",
"properties": {
"machineType": "MACHINE_TYPE",
"disks": [
{
"boot": true,
"initializeParams": {
"sourceImage": "projects/IMAGE_PROJECT/global/images/family/IMAGE_FAMILY"
}
}
],
"scheduling": {
"onHostMaintenance": "TERMINATE"
},
"networkInterfaces": [
{
"network": "global/networks/default"
}
]
}
}' \
"https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/instanceTemplates"
מחליפים את ה-placeholders הבאים:
-
PROJECT_ID: מזהה הפרויקט ב- Google Cloud . -
INSTANCE_TEMPLATE_NAME: השם של התבנית של הגדרות המכונה. -
MACHINE_TYPE: סוג המכונה של ה-TPU VM (לדוגמה,ct6e-standard-8t). -
IMAGE_FAMILY: משפחת קובצי האימג' של מערכת ההפעלה של ה-TPU VM. אם רוצים להתקין גרסה ספציפית של מערכת ההפעלה, משתמשים בדגל--image. מידע נוסף על קובצי אימג' של מערכת ההפעלה -
IMAGE_PROJECT: הפרויקט שמכיל את קובץ האימג' של מערכת ההפעלה. בתמונות TPU, הערך הואubuntu-os-accelerator-images.
יצירת תבנית של הגדרות מכונה ל-TPU VM במודל Spot
הפקודה הבאה יוצרת תבנית של הגדרות מכונה שמשתמשת באפשרות הצריכה Spot:
gcloud
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
REST
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
-d '{
"name": "INSTANCE_TEMPLATE_NAME",
"properties": {
"machineType": "MACHINE_TYPE",
"disks": [
{
"boot": true,
"initializeParams": {
"sourceImage": "projects/IMAGE_PROJECT/global/images/family/IMAGE_FAMILY"
}
}
],
"scheduling": {
"onHostMaintenance": "TERMINATE",
"provisioningModel": "SPOT",
"instanceTerminationAction": "STOP"
},
"networkInterfaces": [
{
"network": "global/networks/default"
}
]
}
}' \
"https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/instanceTemplates"
מחליפים את ה-placeholders הבאים:
-
PROJECT_ID: מזהה הפרויקט ב- Google Cloud . -
INSTANCE_TEMPLATE_NAME: השם של התבנית של הגדרות המכונה. -
MACHINE_TYPE: סוג המכונה של ה-TPU VM (לדוגמה,ct6e-standard-8t). -
IMAGE_FAMILY: משפחת קובצי האימג' של מערכת ההפעלה של ה-TPU VM. אם רוצים להתקין גרסה ספציפית של מערכת ההפעלה, משתמשים בדגל--image. מידע נוסף על קובצי אימג' של מערכת ההפעלה -
IMAGE_PROJECT: הפרויקט שמכיל את קובץ האימג' של מערכת ההפעלה. בתמונות TPU, הערך הואubuntu-os-accelerator-images.
יצירת תבנית של הגדרות מכונה ל-VM שקשור להזמנה של TPU
הפקודה הבאה יוצרת תבנית של הגדרות מכונה שמשתמשת באפשרות הצריכה reservation-bound:
gcloud
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
REST
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
-d '{
"name": "INSTANCE_TEMPLATE_NAME",
"properties": {
"machineType": "MACHINE_TYPE",
"disks": [
{
"boot": true,
"initializeParams": {
"sourceImage": "projects/IMAGE_PROJECT/global/images/family/IMAGE_FAMILY"
}
}
],
"scheduling": {
"onHostMaintenance": "TERMINATE",
"provisioningModel": "RESERVATION_BOUND",
"instanceTerminationAction": "DELETE"
},
"reservationAffinity": {
"consumeReservationType": "SPECIFIC_RESERVATION",
"key": "compute.googleapis.com/reservation-name",
"values": [
"RESERVATION_NAME"
]
},
"networkInterfaces": [
{
"network": "global/networks/default"
}
]
}
}' \
"https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/instanceTemplates"
מחליפים את ה-placeholders הבאים:
-
PROJECT_ID: מזהה הפרויקט ב- Google Cloud . -
INSTANCE_TEMPLATE_NAME: השם של התבנית של הגדרות המכונה. -
MACHINE_TYPE: סוג המכונה של ה-TPU VM (לדוגמה,ct6e-standard-8t).
RESERVATION_NAME: השם של הזמנה ספציפית שרוצים להשתמש בה. בכל ההזמנות במצב 'כל הקיבולת', אפשר לטרגט בלוק או תת-בלוק על ידי ציון כתובת ה-URL להזמנת מקום באופן הבא:מציינים בלוק:
RESERVATION_NAME/reservationBlocks/RESERVATION_BLOCK_NAMEמציינים בלוק משנה:
RESERVATION_NAME/reservationBlocks/RESERVATION_BLOCK_NAME/reservationSubBlocks/RESERVATION_SUBBLOCK_NAME
IMAGE_FAMILY: משפחת קובצי האימג' של מערכת ההפעלה של ה-TPU VM. אם רוצים להתקין גרסה ספציפית של מערכת ההפעלה, משתמשים בדגל--image. מידע נוסף על קובצי אימג' של מערכת ההפעלה זמין במאמר קובצי אימג' של מערכת ההפעלה.
IMAGE_PROJECT: הפרויקט שמכיל את קובץ האימג' של מערכת ההפעלה. בתמונות TPU, הערך הואubuntu-os-accelerator-images.
יצירת תבנית של הגדרות מכונה ל-TPU Flex-start VM
הפקודה הבאה יוצרת תבנית של הגדרות מכונה שמשתמשת באפשרות הצריכה Flex-start:
gcloud
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
REST
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
-d '{
"name": "INSTANCE_TEMPLATE_NAME",
"properties": {
"machineType": "MACHINE_TYPE",
"disks": [
{
"boot": true,
"initializeParams": {
"sourceImage": "projects/IMAGE_PROJECT/global/images/family/IMAGE_FAMILY"
}
}
],
"scheduling": {
"onHostMaintenance": "TERMINATE",
"provisioningModel": "FLEX_START",
"instanceTerminationAction": "DELETE",
"maxRunDuration": {
"seconds": "DURATION"
}
},
"networkInterfaces": [
{
"network": "global/networks/default"
}
]
}
}' \
"https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/instanceTemplates"
מחליפים את ה-placeholders הבאים:
-
PROJECT_ID: מזהה הפרויקט ב- Google Cloud . -
INSTANCE_TEMPLATE_NAME: השם של התבנית של הגדרות המכונה. -
MACHINE_TYPE: סוג המכונה של ה-TPU VM (לדוגמה,ct6e-standard-8t). -
DURATION: משך הזמן המקסימלי להרצה של ה-TPU VM. ב-REST, מציינים את זה כמחרוזת שמכילה את מספר השניות ואחריו "s" (לדוגמה,3600sלשעה אחת או604800sל-7 ימים). -
IMAGE_FAMILY: משפחת קובצי האימג' של מערכת ההפעלה של ה-TPU VM. אם רוצים להתקין גרסה ספציפית של מערכת ההפעלה, משתמשים בדגל--image. מידע נוסף על קובצי אימג' של מערכת ההפעלה -
IMAGE_PROJECT: הפרויקט שמכיל את קובץ האימג' של מערכת ההפעלה. בתמונות TPU, הערך הואubuntu-os-accelerator-images.
יצירת MIG
כדי ליצור קבוצת MIG אזורית שמכילה פרוסת TPU עם מארח יחיד, משתמשים בפקודה הבאה:
gcloud
gcloud compute instance-groups managed create MIG_NAME \
--size=MIG_SIZE \
--template=INSTANCE_TEMPLATE_URL \
--zone=ZONE
REST
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
-d '{
"name": "MIG_NAME",
"targetSize": MIG_SIZE,
"instanceTemplate": "INSTANCE_TEMPLATE_URL"
}' \
"https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers"
מחליפים את ה-placeholders הבאים:
-
PROJECT_ID: מזהה הפרויקט ב- Google Cloud . -
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.
כדי ליצור קבוצת MIG אזורית שמכילה פרוסת TPU במארח יחיד, משתמשים בפקודה הבאה:
gcloud
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
REST
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
-d '{
"name": "MIG_NAME",
"targetSize": MIG_SIZE,
"instanceTemplate": "INSTANCE_TEMPLATE_URL",
"distributionPolicy": {
"targetShape": "ANY_SINGLE_ZONE"
},
"updatePolicy": {
"instanceRedistributionType": "NONE"
}
}' \
"https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers"
מחליפים את ה-placeholders הבאים:
-
PROJECT_ID: מזהה הפרויקט ב- Google Cloud . -
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. כדי ליצור כמה מכונות וירטואליות, חוזרים על הפקודה לכל מכונה וירטואלית. אחרת, צריך להשתמש ב-method של ה-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 הבאים:
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 הבאים:
המאמרים הבאים
- מידע נוסף על מכונות וירטואליות של TPU וקבוצות MIG
- איך יוצרים MIG עם פרוסת Cloud TPU בכמה מארחים
- איך מנהלים TPU VM
- מידע על יחידות TPU ב-GKE