יצירת מכונה וירטואלית שמוכנה ל-HPC

אתם יכולים ליצור מכונת VM שמוכנה ל-HPC באמצעות הממשקים הבאים:

מידע על קובץ האימג' של מכונה וירטואלית ל-HPC ועל Advanced Compute Images זמין במאמרים סקירה כללית על קובצי אימג' של מכונות וירטואליות שמוכנות ל-HPC וסקירה כללית על Advanced Compute Images.

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

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

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

    המסוף

    כשמשתמשים במסוף Google Cloud כדי לגשת לשירותים Google Cloud ולממשקי ה-API, לא צריך להגדיר אימות.

    gcloud

    1. התקינו את ה-CLI של Google Cloud. אחר כך, מאתחלים את ה-CLI של Google Cloud באמצעות הפקודה הבאה:

      gcloud init

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

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

מדריכים למתחילים

במדריכים האלה מוסבר איך להגדיר מכונה וירטואלית (VM) שעברה אופטימיזציה ל-HPC. במאמר הזה נסביר איך:

  • יצירת מכונת HPC וירטואלית (בלי להגדיר Cloud RDMA)
  • ציון מדיניות למיקום קומפקטי כשיוצרים מכונות וירטואליות ל-HPC
  • יצירת מכונה וירטואלית ל-HPC שמשתמשת ב-Cloud RDMA

אי אפשר להוסיף Cloud RDMA למופע קיים של מכונה וירטואלית ל-HPC, לכן צריך לפעול לפי השלבים המתאימים כשיוצרים את המופע.

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

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

יצירת מכונה וירטואלית של HPC

מומלץ מאוד להשתמש בקובץ אימג' של מכונה וירטואלית של HPC או בAdvanced Compute Images (גרסת טרום-השקה (Preview)) עם עומסי העבודה של HPC באמצעות סדרות המכונות הבאות:

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

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

המסוף

אפשר להשתמש במסוף Google Cloud כדי ליצור מכונות וירטואליות שמוכנות ל-HPC ומריצות קובץ אימג' של מכונה וירטואלית ל-HPC עבור מערכת ההפעלה של האורח. כדי להשתמש באחת מתמונות המחשוב המתקדמות, צריך להשתמש ב-CLI של gcloud או ב-REST.

  1. נכנסים לדף Create an instance במסוף Google Cloud .

    כניסה לדף Create an instance

    אם מתבקשים, בוחרים פרויקט ולוחצים על המשך. הדף Create an instance מופיע ובו החלונית Machine configuration.

  2. בחלונית Machine configuration:

    1. בשדה Name (שם), מציינים שם למופע של המחשוב. מידע נוסף זמין במאמר בנושא מוסכמות למתן שמות למשאבים.
    2. אופציונלי: בוחרים Region ו-Zone למכונה.

      ברירת המחדל של Zone היא Any (כל אזור). אם לא תשנו את הבחירה הזו שמוגדרת כברירת מחדל, Google תבחר בשבילכם אזור באופן אוטומטי על סמך סוג המכונה והזמינות שלה.

    3. לוחצים על הכרטיסייה Compute-optimized (אופטימיזציה לחישוב). במסוף Google Cloud מוצגות סדרות המכונות שזמינות למשפחת המכונות שבחרתם.

    4. בעמודה Series, בוחרים את סדרת המכונות של ה-VM, לדוגמה C2.

    5. בקטע Machine type, בוחרים את סוג המכונה של המכונה הווירטואלית, למשל c2-standard-60.

  3. בתפריט הניווט (בצד ימין), לוחצים על מערכת הפעלה ואחסון.

  4. בחלונית Operating system and storage, מגדירים את דיסק האתחול באופן הבא:

    1. לוחצים על Change. מופיעה החלונית דיסק אתחול עם הכרטיסייה Public images.
    2. ברשימה Operating system בוחרים באפשרות HPC VM Image.
    3. ברשימה Version, בוחרים את גרסת מערכת ההפעלה.
    4. אופציונלי: ברשימה Boot disk type, בוחרים את סוג דיסק האתחול.
    5. אופציונלי: בשדה Size (GB) מציינים את הגודל של דיסק האתחול.
    6. אופציונלי: לדיסקים של מערכת ההפעלה מסוג Hyperdisk Balanced, מציינים ערכים בשדות Provisioned IOPS ו-Provisioned throughput.
    7. אופציונלי: כדי לראות אפשרויות הגדרה מתקדמות, מרחיבים את הקטע Show advanced configurations.
    8. כדי לאשר את האפשרויות של דיסק האתחול ולחזור לחלונית מערכת ההפעלה והאחסון, לוחצים על בחירה.
  5. בתפריט הניווט, לוחצים על Networking (רשת). בחלונית Networking שמופיעה, מבצעים את הפעולות הבאות:

    1. עוברים לקטע Firewall.
    2. כדי לאפשר תעבורת HTTP או HTTPS למכונה הווירטואלית, בוחרים באפשרות Allow HTTP traffic או Allow HTTPS traffic.

      ‫Compute Engine מוסיף תג רשת למכונה הווירטואלית ויוצר את כלל חומת האש המתאים לכניסת תנועה, שמאפשר את כל התנועה הנכנסת ב-tcp:80 (HTTP) או ב-tcp:443 (HTTPS). תג הרשת משייך את כלל חומת האש למכונה הווירטואלית. מידע נוסף זמין בסקירה הכללית של הכללים של חומת האש במאמרי העזרה של Cloud Next Generation Firewall.

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

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

  7. אופציונלי: מציינים אפשרויות הגדרה אחרות. מידע נוסף מופיע במאמר אפשרויות הגדרה במהלך יצירת מכונה.

  8. אופציונלי: כדי ליצור את מכונת החישוב באמצעות משאבים מוזמנים, בתפריט הניווט לוחצים על מתקדם. בקטע Reservations, בוחרים באפשרות Use automatic selection. כדי להשתמש בהזמנה, צריך לוודא שהמאפיינים של מכונת ה-Compute תואמים למאפיינים שצוינו בהזמנה.

  9. כדי ליצור את מכונת ה-HPC ולהפעיל אותה, לוחצים על Create.

gcloud

כדי ליצור מכונה וירטואלית של HPC, משתמשים בפקודה instances create.

כדי ליצור מכונה וירטואלית (VM) של HPC בלי מדיניות מיקום, משתמשים בפקודה דומה לזו:

gcloud compute instances create INSTANCE_NAME \
        --zone=ZONE \
        --image-family=IMAGE_FAMILY \
        --image-project=IMAGE_PROJECT \
        --maintenance-policy=TERMINATE \
        --machine-type=MACHINE_TYPE

מחליפים את מה שכתוב בשדות הבאים:

  • ‫INSTANCE_NAME: שם למופע של מכונה וירטואלית ל-HPC.
  • ‫ZONE: האזור שבו רוצים ליצור את המכונה.
  • ‫IMAGE_FAMILY: משפחת התמונות של התמונה שבה רוצים להשתמש כשיוצרים את המכונות הווירטואליות.
    • לתמונות של מכונות וירטואליות ל-HPC, משתמשים באחת מהאפשרויות הבאות: hpc-rocky-linux-8 או hpc-rocky-linux-9
    • כדי להשתמש ב-Advanced Compute Images, צריך לבחור אחת ממשפחות התמונות שמפורטות במאמר בנושא חומרה נתמכת ומשפחות תמונות.
  • ‫IMAGE_PROJECT: פרויקט התמונה שבו רוצים להשתמש כשיוצרים מופעים של מכונות וירטואליות. עבור תמונות של מכונות וירטואליות ל-HPC, הפרויקט הוא cloud-hpc-image-public. ב-Advanced Compute Images, הפרויקט הוא advanced-compute-images.
  • ‫MACHINE_TYPE: סוג המכונה שבה רוצים להשתמש כשיוצרים את המופע של המכונה הווירטואלית.

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

gcloud compute instances describe INSTANCE_NAME

REST

משתמשים ב-method ‏instances.insert כדי ליצור מכונת Compute שמשתמשת בקובץ אימג' של מערכת הפעלה של מכונת HPC:

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances

{
   "machineType":"zones/ZONE/machineTypes/MACHINE_TYPE",
   "name":"VM_NAME",
   "disks":[
      {
         "initializeParams":{
            "sourceImage":"projects/cloud-hpc-image-public/global/images/IMAGE"
         },
         "boot":true
      }
   ],
   "networkInterfaces":[
      {
         "network":"global/networks/NETWORK_NAME"
      }
   ]
}

מחליפים את מה שכתוב בשדות הבאים:

  • ‫PROJECT_ID: מזהה הפרויקט שבו רוצים ליצור את מופע Compute
  • ‫ZONE: האזור שבו רוצים ליצור את מכונת ה-Compute
  • ‫MACHINE_TYPE: סוג המכונה, מוגדר מראש או מותאם אישית, עבור מכונת המחשוב החדשה
  • ‫INSTANCE_NAME: השם של מכונת ה-Compute החדשה
  • ‫IMAGE_FAMILY: משפחת התמונות של התמונה שבה רוצים להשתמש כשיוצרים את המכונות הווירטואליות.
    • לתמונות של מכונות וירטואליות של HPC, משתמשים ב-hpc-rocky-linux-8 או ב-hpc-rocky-linux-9
    • כדי להשתמש ב-Advanced Compute Images, צריך לבחור אחת ממשפחות התמונות שמפורטות במאמר בנושא חומרה נתמכת ומשפחות תמונות.
  • ‫IMAGE_PROJECT: פרויקט התמונה שבו רוצים להשתמש כשיוצרים מופעים של מכונות וירטואליות.
    • לדימויים של מכונות וירטואליות של HPC, משתמשים בפרויקט cloud-hpc-image-public.
    • ל-Advanced Compute Images, משתמשים בפרויקט advanced-compute-images.
  • ‫NETWORK_NAME: רשת ה-VPC שבה רוצים להשתמש עבור מופע Compute. אפשר לציין default כדי להשתמש ברשת ברירת המחדל.

יצירת מכונות וירטואליות ל-HPC עם מדיניות למיקום קומפקטי

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

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

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

  1. יצירת מדיניות למיקום קומפקטי

  2. מבצעים אחת מהפעולות הבאות:

יצירת מכונה וירטואלית ל-HPC שמשתמשת ב-Cloud RDMA

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

כדי ליצור מכונה וירטואלית ל-HPC שמשתמשת ב-Cloud RDMA, צריך לבצע את המשימות הבאות:

  1. מזהים או יוצרים לפחות שתי רשתות VPC:

    • רשת VPC רגילה לתעבורה שעוברת דרך ממשק הרשת gVNIC
    • רשת Falcon VPC לתעבורת הנתונים ברשת RDMA
  2. יוצרים מכונה וירטואלית של HPC.

    1. לתמונת המקור, משתמשים בתמונת מכונה וירטואלית של HPC או בתמונות מחשוב מתקדמות שמבוססות על Rocky Linux. התמונות האלה כוללות את הדרייברים שנדרשים ל-Cloud RDMA.
    2. במהלך יצירת המכונה, מגדירים לפחות שני ממשקי רשת – אחד שמשתמש במנהל ההתקן gVNIC ואחד שמשתמש במנהל ההתקן IRDMA.

      הסבר מלא יותר זמין במאמר יצירת מופע שמשתמש ב-Cloud RDMA.

  3. אם אתם מתכננים להריץ אפליקציות MPI במכונות וירטואליות של HPC שמשתמשות ב-Cloud RDMA, אתם צריכים לפעול לפי שלבי ההגדרה של MPI במאמר הגדרה של אפליקציות MPI והרחבתן במכונות וירטואליות מסוג H4D עם Cloud RDMA.

גישה למכונה וירטואלית של HPC

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

המסוף

  1. נכנסים לדף VM instances במסוף Google Cloud .

    כניסה לדף VM instances

  2. לוחצים על השם של מכונת החישוב.

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

מפתחות ה-SSH מועברים על ידי Compute Engine ונוצר משתמש. מידע נוסף זמין במאמר איך מתחברים למכונות וירטואליות של Linux.

gcloud

כדי לגשת למכונה באמצעות SSH, משתמשים בפקודה gcloud compute ssh:

gcloud compute ssh INSTANCE_NAME --zone ZONE

מפתחות ה-SSH מועברים על ידי Compute Engine ונוצר משתמש. מידע נוסף זמין במאמר התחברות למכונות וירטואליות של Linux.

הסרת המשאבים

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

המסוף

  1. נכנסים לדף VM instances במסוף Google Cloud .

    כניסה לדף VM instances

  2. בוחרים את המופעים שרוצים למחוק.

  3. לוחצים על מחיקה.

  4. בתיבת הדו-שיח, מבצעים את הפעולות הבאות:

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

    2. כדי לאשר, לוחצים על מחיקה.

  5. כדי למחוק את הדיסקים שבהם נעשה שימוש במופעים שנמחקו, עוברים לדף Disks (דיסקים) ומבצעים את השלבים הבאים:

    לפתיחת הדף Disks

    1. בוחרים את הדיסקים שרוצים למחוק. הדיסקים שבוחרים לא יכולים להכיל ערך בעמודה בשימוש על ידי.

    2. לוחצים על מחיקה.

    3. כדי לאשר, לוחצים על מחיקה.

gcloud

כדי למחוק מכונה וירטואלית אחת או יותר באותו אזור, משתמשים בפקודה gcloud compute instances delete. כדי לכפות את המחיקה של הדיסקים שמצורפים למופע אחד או יותר, צריך לכלול את הדגל --delete-disks:

gcloud compute instances delete INSTANCE_NAMES \
        --delete-disks=DELETE_DISK_TYPE \
        --zone=ZONE

מחליפים את מה שכתוב בשדות הבאים:

  • ‫INSTANCE_NAMES: רשימה של שמות מופרדים ברווחים של מופעים – לדוגמה, instance-01 instance-02 instance-03.

  • ‫ZONE: האזור שבו נמצאים המופעים.

  • ‫DELETE_DISK_TYPE: מציינים אחד מהערכים הבאים:

    • כדי למחוק אחסון מתמיד מצורף של אתחול ושל לא אתחול: all
    • כדי למחוק רק את האחסון המתמיד של דיסק האתחול המצורף: boot
    • כדי למחוק רק אחסון מתמיד שאינו ניתן לאתחול: data

REST

  1. כדי למחוק מכונה, שולחים בקשת DELETE אל ה-method‏ instances.delete:

    DELETE https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME
    

    מחליפים את מה שכתוב בשדות הבאים:

    • ‫PROJECT_ID: מזהה הפרויקט שבו נמצא המופע.
    • ‫ZONE: האזור של המכונה.
    • ‫INSTANCE_NAME: שם המכונה.
  2. כדי למחוק דיסק שמשמש את המכונה, שולחים בקשת DELETE ל-method‏ disks.delete:

    DELETE https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/disks/DISK_NAME
    

    מחליפים את מה שכתוב בשדות הבאים:

    • ‫PROJECT_ID: מזהה הפרויקט שבו נמצא הדיסק.
    • ‫ZONE: האזור שבו נמצא הדיסק.
    • ‫DISK_NAME: שם הדיסק.
  3. חוזרים על השלבים הקודמים עבור מופעים או דיסקים נוספים.

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

כדי לשפר את הביצועים של מכונת ה-VM שלכם ל-HPC ולחזות אותם בצורה מדויקת יותר, מומלץ לפעול לפי השיטות המומלצות הבאות.

השבתת ריבוי נימים סימולטני

קובץ האימג' של מכונה וירטואלית ל-HPC וקובצי אימג' של Advanced Compute שמבוססים על Rocky Linux מאפשרים כברירת מחדל ריבוי הליכי משנה בו-זמני (SMT), שנקרא גם Hyper-Threading במעבדי Intel. השבתת SMT יכולה להפוך את הביצועים לצפויים יותר ולקצר את משך העבודות.

אפשר להשבית את SMT בדרכים הבאות:

  • כדי להשבית את SMT בזמן יצירת מופע חדש של מכונה וירטואלית ל-HPC, פועלים לפי השלבים ליצירת מופע של מכונה וירטואלית ל-HPC וכוללים את הדגל
    --threads-per-core=1.

  • כדי להשבית את ה-SMT במכונה וירטואלית קיימת של HPC, מתחברים למכונה ומריצים את הפקודה הבאה ממערכת ההפעלה של האורח:

    sudo google_mpi_tuning --nosmt
    

מידע נוסף מופיע במאמר בנושא הגדרת מספר ה-threads לכל ליבה.

הגדרת gVNIC כסוג ממשק הרשת למכונות C2 ו-C2D

אם יוצרים מכונת C2 או C2D חדשה, כברירת מחדל נעשה שימוש ב-Virtio-net עבור ממשק הרשת הווירטואלי. שימוש ב-gVNIC במקום ב-Virtio-net יכול לשפר את יכולת ההתאמה של אפליקציות MPI, כי הוא מספק ביצועים טובים יותר של תקשורת וקצב העברה גבוה יותר. בנוסף, gVNIC הוא תנאי מוקדם לביצועי רשת ברמה 1 לכל מכונה וירטואלית, שמאפשרים רוחב פס גבוה יותר וקצב העברת נתונים גבוה יותר.

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

המסוף

כדי להגדיר את gVNIC כממשק הרשת, כשיוצרים את המכונה, בתפריט הניווט לוחצים על Networking (רשת). בחלונית Networking שמופיעה, מבצעים את הפעולות הבאות:

  1. עוברים לקטע Network interfaces (ממשקי רשת).
  2. בקטע כרטיס ממשק רשת, בוחרים באפשרות gVNIC.

gcloud

כוללים את הדגל --network-interface=nic-type=GVNIC בפקודה gcloud compute instances create.

REST

בבקשת POST ל-method‏ instances.insert, צריך לכלול את "nicType": "GVNIC" במאפיין networkInterfaces.

קובץ האימג' של מכונת ה-VM של HPC וקובצי ה-Advanced Compute Images שמבוססים על Rocky Linux כוללים את הדרייבר gVNIC כתמיכה במודול ליבה דינמי (DKMS). מידע נוסף מופיע במאמר בנושא שימוש ב-Google Virtual NIC.

השבתה של אמצעי ההגנה מפני Meltdown ו-Spectre

קובץ האימג' של מכונה וירטואלית ל-HPC וקובצי האימג' של Advanced Compute שמבוססים על Rocky Linux מאפשרים את הפתרונות לבעיות Meltdown ו-Spectre כברירת מחדל. במקרים מסוימים, אמצעי ההגנה האלה עלולים לגרום לירידה בביצועים של עומסי עבודה ספציפיים. כדי להשבית את אמצעי ההגנה האלה ולקחת על עצמכם את סיכוני האבטחה שקשורים לכך, צריך לבצע את הפעולות הבאות:

  1. מריצים את הפקודה הבאה במופע:

    sudo google_mpi_tuning --nomitigation
    
  2. מפעילים מחדש את המופע.

שיפור הביצועים של הרשת

כדי לשפר את ביצועי הרשת של המופע, צריך להגדיר אחת או יותר מההגדרות הבאות:

  • הגדרת רוחב פס גבוה יותר. כדי להגדיר רשת ברמה 1 למכונות וירטואליות מסוג C2 או C2D, משתמשים בפקודה gcloud compute instances create כדי ליצור את המכונה. מציינים את הדגל --network-performance-configs כשיוצרים את המכונה. מידע נוסף זמין במאמר בנושא יצירת מופעים וקונטיינרים שמשתמשים ברשת Tier_1.

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

  • הגדלת מגבלות הזיכרון של TCP. רוחב פס גבוה יותר דורש יותר זיכרון TCP. פועלים לפי השלבים כדי להגדיל את ההגדרות של tcp_*mem.

  • שימוש בפרופיל של זמן האחזור ברשת. בודקים את זמן האחזור של האפליקציה ומפעילים סקר פעיל שמקטין את זמן האחזור בנתיב הקבלה ברשת. משנים את ההגדרות של net.core.busy_poll ושל net.core.busy_read ב-/etc/sysctl.conf, או משתמשים ב-tuned-adm.

שימוש ב-Intel MPI 2021

‫Google ממליצה להשתמש בספריית Intel MPI 2021 להרצת משימות MPI ב-Google Cloud.

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

קובץ האימג' של מכונת ה-HPC וקובצי האימג' של Advanced Compute שמבוססים על Rocky Linux כוללים כלי, google-hpc-compute, שמתקין את ספריות ה-MPI המומלצות ומשתמש Google Cloud בספקי libfabric מותאמים אישית על פני פרוטוקול TCP.

מגבלות

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

שימוש בכלי השירות google-hpc-compute לתמיכה ב-Intel MPI 2021

סקריפט google_install_intelmpi הוא הכלי שקשור ל-MPI בכלי השירות google-hpc-compute. הוא עוזר להתקין ולהגדיר את Intel MPI.

כדי להתקין את ספריית Intel MPI בזמן יצירת מכונת VM חדשה של HPC או מכונה של Advanced Compute Images, פועלים לפי השלבים ליצירת מכונת VM של HPC או ליצירת מכונת חישוב עם Advanced Compute Images וכוללים את הפעולות הבאות כשיוצרים את מכונת החישוב:

--metadata=google_install_intelmpi="--impi_2021"

כדי להתקין את הספרייה במכונת VM קיימת של HPC או במכונה של Advanced Compute Images, מריצים את הפקודה הבאה במכונת החישוב הזו:

sudo google_install_intelmpi --impi_2021 --install_dir=PATH_INSTALL_MPI

מיקום ברירת המחדל של install_dir מוגדר כ-/opt/intel.

ספריית Intel MPI וכוונונים קולקטיביים של MPI

תמונת המכונה הווירטואלית של HPC ותמונות מחשוב מתקדמות שמבוססות על Rocky Linux כוללות כוונונים כלליים שמשביתים את ה-hyperthreading, מבצעים אופטימיזציה של הזיכרון, משנים את המגבלות של משאבי המערכת ומחילים פרופילים מותאמים אישית. הסקריפט google_hpc_firstrun מיועד להרצה אוטומטית באתחול הראשון של המופע.

כחלק מהכלי google-hpc-firstrun, מריצים את הסקריפט mpi-tuning כדי לשפר את הביצועים ואת זמן האחזור של מכונת ה-VM של HPC. אפשר להריץ את הסקריפט mpi-tuning.sh כדי להחיל שינויים על מופעי מחשוב ספציפיים.

Usage:
  Verify tuning steps: $ mpi_tuning OPTIONS --dryrun
  Apply tunings: $ mpi_tuning OPTIONS

Options:
  --hpcprofile       Install and apply google-hpc-compute tuned profile
                     Also applies: --tcpmem, --limits
  --hpcthroughput    Install and apply google-hpc-compute-throughput profile
                     Also applies: --tcpmem, --limits
  --tcpmem           Increase memory for TCP
  --limits           Change the system ulimits
  --nosmt            Disable simultaneous multi threading
  --nofirewalld      Disable firewalld
  --noselinux        Disable SE Linux (reboot required)
  --nomitigation     Disable CPU vulnerabilities mitigations (reboot required)
  --reboot           Reboot system after tunings if required
  --dryrun           Do not execute commands
  --verbose          Print verbose messages
  --help             Show help message

יצירת אימג' בהתאמה אישית באמצעות אימג' של מכונה וירטואלית ל-HPC

כדי ליישם את השיטות המומלצות בהיקף גדול, צריך ליצור אימג' של מערכת הפעלה בהתאמה אישית לשימוש במכונות הווירטואליות (VM) של HPC. כדי ליצור אימג' בהתאמה אישית לשימוש כשיוצרים מכונות וירטואליות של HPC, צריך לבצע את המשימות הבאות:

  1. יוצרים מכונת מחשוב שמשתמשת בקובץ אימג' של מכונה וירטואלית ל-HPC.

  2. התאמה אישית של מכונת החישוב באמצעות כוונונים של MPI.

  3. יוצרים אימג' בהתאמה אישית באמצעות דיסק האתחול של אימג' המכונה הווירטואלית (VM) של HPC בתור דיסק המקור. אפשר לעשות זאת באמצעות Google Cloud מסוף או Google Cloud CLI.

המסוף

  1. נכנסים לדף Images במסוף Google Cloud .

    כניסה לדף Images

  2. לוחצים על יצירת תמונה.

  3. מזינים שם לתמונה.

  4. בקטע Source disk (דיסק מקור), בוחרים את השם של דיסק האתחול במופע של מכונה וירטואלית ל-HPC.

  5. בוחרים את שאר המאפיינים של התמונה.

  6. לוחצים על יצירה.

gcloud

יוצרים את האימג' בהתאמה אישית באמצעות הפקודה images create.

gcloud compute images create IMAGE_NAME \
         --source-disk=INSTANCE_NAME \
         --source-disk-zone=ZONE \
         --family=IMAGE_FAMILY \
         --storage-location=LOCATION

מחליפים את מה שכתוב בשדות הבאים:

  • ‫IMAGE_NAME: שם לתמונה המותאמת אישית.
  • ‫INSTANCE_NAME: השם של מופע ה-VM שלכם ל-HPC.
  • ‫ZONE: האזור שבו נמצא מופע ה-VM שלכם ל-HPC.
  • ‫IMAGE_FAMILY: אופציונלי. משפחת התמונות שאליה התמונה הזו שייכת.
  • ‫LOCATION: אופציונלי. האזור שבו רוצים לאחסן את התמונה המותאמת אישית. מיקום ברירת המחדל הוא האזור המרובה הכי קרוב למיקום של דיסק המקור.

תמחור

תמונת מכונת ה-VM של HPC ותמונות Advanced Compute זמינות ללא עלות נוספת. מכיוון שהתמונות האלה פועלות ב-Compute Engine, יכול להיות שתחויבו על משאבי Compute Engine כמו vCPU, דיסקים וזיכרון.

מידע נוסף זמין במאמר בנושא תמחור ב-Compute Engine.

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