חדש! אין לכם כח לקרוא? אתם יכולים ללחוץ על הקישור כאן או להסתכל בסוף הפוסט על וידאו קצרצר המסכם את הפוסט.
עולם ה-HPC הוא עולם שמתקדם בקצב איטי. עד לפני שנים מעטות, השינויים המהותיים היו יותר קשורים ל-Job management פופולרי (slurm ש"כבש" פופולריות במקום ה-Sun Grid Engine לדוגמא, שהפך לאחר מכן ל-Son of Grid Engine) וברוב המקרים כשהיה מדובר על מערכות גדולות (עשרות, מאות שרתים ומעלה) חברות כמו Dell ו-HPE החליפו שרתים של Sun (לאלו שהיתה להם מערכת HPC ישנה יותר).
בשנים האחרונות, מספר טכנולוגיות חדשות נכנסו לעולם ה-HPC וחלקן בדרך להיכנס:
- מבחינת מערכת File system מרכזית – ל-Lustre עדיין יש מקום ורלוונטיות (גירסה חדשה שוחררה רק בחודש שעבר), אך במקביל, מערכות כמו Gluster ו-CEPH תפסו מקום נכבד כ-Scale Out Storage
- יותר ויותר חברות עוברות לשימוש מאסיבי יותר בכרטיסי GPU יעודיים (V100, A100 של NVIDIA, וכרטיסים אחרים לעיבוד AI/ML/DL מחברות כמו AMD ואיננטל יכנסו בקרוב לשוק בצורה יותר רצינית).
- חיבוריות/רשת תקשורת פנימית עוברת שדרוג רציני. במקרים רבים, חברות היו משתמשות בחיבור סיב במהירות של 10 ג'יגהביט, כיום בד"כ ההמלצה היא 50 ג'יגהביט ומעלה.
רכישת שרתים להקמת HPC היתה מעט מורכבת, הואיל והיה צריך לבצע מספר חישובים (כמות וגודל דיסקים, כמות ליבות פר מעבד פר שרת, מהירות תקשורת בין המכונות לצרכי File system ולצרכים אחרים, צרכים של פלטפורמות וספריות שונות, רישוי ועוד דברים רבים נוספים) ולאחר מכן היו פותחים במעין "מכרז" בו מתמודדות חברות שונות, ולבסוף היו סוגרים עם נציגות של אחד מהיצרנים או האינטגרטורים (אני מודע לכך שבמציאות כל התהליך היה הרבה יותר ארוך ומורכב, אך לשם פוסט זה אני מפשט את הדברים).
כיום חברות כמו NVidia מציעות שרתי DGX במחיר שווה: במחיר של 200-220K אתה מקבל שרת עם 2 טרהבייט זכרון, 8 מודולי GPU מסוג A100 (עם 80 ג'יגהבייט זכרון פר מודול), אחסון מקומי בגודל 36 טרהבייט, 128 ליבות (2 מעבדי AMD EPYC עם 64 ליבות), קישוריות רציפה בין מודולי ה-GPU (זה ה-NVSwitch) ומספר חיבורים במהירות 200 ג'יגהביט. עם קופסאות כאלו, בדרך כלל תצטרך לרכוש מתג (או מתגים, תלוי בקופסא) ותצטרך לדאוג לפתרון אחסון Scale Out (אם מדובר ברכישה של 10+ שרתים) וגם פתרון אחסון יותר איטי – והרי לך פתרון HPC בסיסי ברמה העקרונית (כמובן שברזלים זה נחמד, אבל יש המון עבודה להתקין דברים, להגדיר, אוטומציה, Job Management ועוד ועוד)
בשנתיים (פלוס) האחרונות ישנו פתרון נוסף שבעבר לא היה קיים – הענן הציבורי ופתרונות HPC, וכאן נכנסת דילמה רצינית לאלו שרוצים לשדרג מערכת HPC קיימת או לבנות מערכת HPC חדשה, ואין זה משנה הם הארגון הוא סטארט-אפ, משרד ממשלתי, מוסד חינוכי, חברה מסחרית או כל ישות אחרות. הדילמה היא פשוטה:
לרכוש ולבנות "משלנו" או ללכת עם פתרון ענן של ParallelCluster של AWS (או פתרון של Azure או GCP)?
על מנת לענות על שאלה זו, נצטרך בשלב הראשון לחלק בעצם את פתרון ה-HPC ל-2 חלקים:
חלק ראשון הוא הגוף שמקים ומתחזק את פתרון ה-HPC בחברה/ארגון. ברוב המקרים זו תהיה מחלקת ה-IT, ומה שמחלקת ה-IT בעצם תתחיל לעשות (לאחר הקמת פתרון ה-HPC) הוא בעצם "למכור" את המשאבים למחלקות השונות – לפי כמות ליבות, כמות שעות שימוש ועוד.
החלק השני הן המחלקות השונות שהן ה"רוכשות" משאבי HPC לצרכיהן: מהנדסים, מדענים, ומחלקות שונות שמעוניינות להשתמש בשרותי HPC ולפיכך הן "רוכשות" כמות מסויימת של שעות, והחישוב כולל כמובן את מה שמשתמשים בפועל: ליבות, אחסון, GPU ועוד.
החלוקה הזו חשובה מאוד להנהלה, הואיל ומערכות HPC גדולות הן מערכות יקרות ויש צורך למצוא להן הצדקה והחזר השקעה, ולכן, גם כשלא רואים זאת אצל חברות מסויימות – יש חלוקת תקציבים ומחלקות שונות רוכשות שעות ומשאבים.
וכאן, אם אנחנו מדברים על שעות, פתרונות מבוססי ענן נכנסים לתמונה, עם מספר יתרונות גדול בענן שלא קיימים ב-HPC המוקמים מקומית:
- זמינות לעבודה מיידית: בין אם אתה צריך 1000 או 10000 ליבות, בין אם אתה צריך 2 או 300 כרטיסי GPU החדשים ביותר – הם זמינים עבורך תוך דקות ספורות. אין צורך להמתין שהמערכת תתפנה, או להבין שאין ב-HPC המקומי את הציוד שאתם כלקוח צריכים.
- התשלום הוא רק עבור שימוש: הפעלתם דרישה של 1000 ליבות לעבודה שלקחה שעתיים ו-14 דקות? על כך בדיוק תשלמו (פלוס האחסון, תעבורת אינטרנט וכו'). בסיום ה-JOB בדרך כלל (בהתאם להגדרות) המערכת "תהרוג" את כל ה-Nodes המשתתפים בעבודה (לאחר שהחומר הרלוונטי הועבר לאחסון), מה שמאפשר ביצוע עבודות רבות עם תקציב קטן יחסית, גם לסטארט-אפים.
- מבחר ענק של ציוד: צריכים מכונות חזקות מאוד? חלשות (עם תשלום נמוך)? עם 2 כרטיסי GPU? ללא כרטיסי GPU? עם מהירות תקשורת של מאות ג'יגהביט? עם אחסון במהירות 7 ספרות IOPS? ברוב פתרונות ה-HPC, האפשרויות מצומצמות מאוד, ובענן – כל מה שצריך זה לבחור ולשנות שורה אחת בקובץ קונפיגורציה.
- תאימות: רגילים לעבוד עם SGE, עם Slurm, עם Torque? רוב הסיכויים שפתרון ה-HPC בענן כבר תומך ב-Job Management שאתם רגילים אליו, ולכן מעבר לשימוש HPC בענן יהא יחסית קל.
כשרואים את רשימת היתרונות של ה-HPC בענן, סביר להניח שיהיו לא מעט שיקראו וישתכנעו ש-HPC בענן הוא הפתרון שיתאים להם ושיחסוך להם משאבים רבים בכל מיני אספקטים, אולם לכל הפתרונות HPC בענן יש חסרון אחד גדול, שהוא, כמה שיפתיע – זה המחיר.
המחיר, שבהתחלה נראה יחסית צנוע (במיוחד שאפשר לבחור שרתים זולים, לדוגמא), מטפס במהירות כלפי מעלה כשבוחרים מכונות חזקות. רוצה יותר מ-60 ליבות? רוצה 8 כרטיסי GPU במכונה? בשמחה, המחיר מתחיל ב-30 דולר ומעלה לשעה פר מכונה, ואם אנחנו רוצים להשתמש בכך למשך שעות רבות או לתקופה באופן רצוף – המחיר יהיה גבוה מאוד.
לעומת זאת, אם נרכוש מערכת ונחלק את כל העלויות ל-3 שנים בחלוקה לשעות, סביר להניח שנגיע למחיר שיהיה יותר זול ממה שספק הענן מציע, וכאן יש את ה"סוד" הכי ידוע על תשתיות ענן: הן זולות כשהמשאבים הנדרשים נמוכים, אך כשכל שמטפסים בדרישות, המחירים מזנקים לגובה עד לסיטואציות בהן פתרון On Prem יהיה הרבה יותר זול.
ישנן סיטואציות בהן ההחלטה היא יותר קלה לכאן או לכאן:
- האם יש דרישה למשאבים? (שימו לב: יש במובן הוודאי, לא "תהיה" (במובן של "אולי")) לשימוש ארוך טווח? ולניצול רוב המשאבים? במקרים כאלו, כדאי לחשוב על רכישה והקמה מקומית.
- אם מדובר בשרות של גופים חיצוניים שאינם מחוייבים לאותו ספק HPC, ושאותם גופים חיצוניים יכולים לפנות למתחרים כמו ספקי ענן – יהיה כדאי לבדוק לעומק את מידת הרצינות של הגוף להתחייב לספק. בל נשכח שספקי ענן יכולים (ומציעים) לגופים שונים מחירי רצפה שיכולים להפוך השקעת הקמת HPC להשקעה בלתי כדאית.
לעומת זאת, אם אין ידיעה על כמות המשאבים הנדרשת, או שה"לקוחות" לא יודעים עדיין מה הם רוצים וכמה, מומלץ להתחיל עם HPC בענן, או HPC קטן מקומי עם המשכיות בענן עד שרואים להיכן הרוח נושבת, ומשם מחליטים אם להמשיך לענן או להגדיל מקומית את ההשקעה ב-HPC.
למעוניינים – גירסת וידאו קצרה המסכמת את הפוסט: