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

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

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

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

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

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

    המסוף

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

    gcloud

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

      gcloud init

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

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

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

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

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

אי אפשר להוסיף Cloud RDMA למכונה וירטואלית (VM) קיימת של 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 עבור מערכת ההפעלה של האורח. כדי להשתמש באחת מ-Advanced Compute Images, צריך להשתמש ב-CLI של gcloud או ב-REST.

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

    כניסה לדף Create an instance

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

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

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

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

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

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

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

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

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

    1. לוחצים על Change. מופיעה החלונית Boot disk עם הכרטיסייה 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. אופציונלי: כדי לראות אפשרויות הגדרה מתקדמות, מרחיבים את הקטע הצגת הגדרות מתקדמות.
    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. אופציונלי: כדי ליצור את מכונת ה-Compute באמצעות משאבים מוזמנים, בתפריט הניווט לוחצים על מתקדם. בקטע 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, צריך לבחור אחת ממשפחות התמונות שמפורטות במאמר Supported hardware and image families.
  • 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, צריך לבחור אחת ממשפחות התמונות שמפורטות במאמר Supported hardware and image families.
  • 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 או בתמונות Advanced Compute שמבוססות על 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. בקטע גישה מרחוק, לוחצים על הרשימה הנפתחת הראשונה ובוחרים את אופן הגישה למכונה.

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

gcloud

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

gcloud compute ssh INSTANCE_NAME --zone ZONE

מערכת Compute Engine מעבירה את מפתחות ה-SSH שלכם ויוצרת את המשתמש. מידע נוסף זמין במאמר התחברות למכונות וירטואליות של 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 אל השיטה 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 Images שמבוססים על Rocky Linux מאפשרים כברירת מחדל ריבוי נימים סימולטני (SMT), שנקרא גם Hyper-Threading במעבדי Intel. השבתת SMT יכולה להפוך את הביצועים לצפויים יותר ולקצר את משך העבודה.

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

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

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

    sudo google_mpi_tuning --nosmt
    

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

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

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

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

המסוף

כדי להגדיר את 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.

קובץ האימג' של מכונה וירטואלית ל-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. מפעילים מחדש את המופע.

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

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

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

  • שימוש ב-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 Collective, שמאפשרת לכם לציין אלגוריתמים ופרמטרים של הגדרה שיכולים לפעול בצורה שונה מאוד בסביבה. Google Cloud

קובץ האימג' של מכונת ה-HPC וקובצי ה-Advanced Compute Images שמבוססים על 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

תמונת ה-VM של 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. כדי ליצור אימג' בהתאמה אישית לשימוש ביצירת מכונות וירטואליות (VM) של 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: האזור שבו נמצא המופע של מכונת ה-HPC.
  • IMAGE_FAMILY: אופציונלי. משפחת התמונות שאליה התמונה הזו שייכת.
  • LOCATION: אופציונלי. האזור שבו רוצים לאחסן את התמונה המותאמת אישית. מיקום ברירת המחדל הוא האזור המרובה הקרוב ביותר למיקום של דיסק המקור.

תמחור

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

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

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