מה זה עיבוד מקבילי?
עיבוד מקבילי או מחשוב מקביל הוא סוג של חישוב שבו מתבצעים חישובים או תהליכים רבים בו זמנית.
ניתן לחלק בעיות גדולות לבעיות קטנות יותר, אשר לאחר מכן ניתן לפתור בו-זמנית.
ישנם מספר מושגי מפתח במחשוב מקביל:
חומרה מקבילית: זה כולל מעבדים מרובי ליבות, יחידות עיבוד גרפיות (GPU) ואשכולות מחשבים.
כל אחת מתצורות החומרה הללו מאפשרת לבצע מספר תהליכים בו זמנית.
מעבדים מרובי ליבות יכולים לבצע פעולות במקביל על ידי שימוש במספר יחידות עיבוד בתוך שבב מחשב בודד, בעוד שמעבדי GPU
מתוכננים להתמודד עם מספר עצום של משימות בו זמנית, אם כי פשוטות יותר בהשוואה למה שמעבדים מופקדים בדרך כלל.
אשכולות מחשבים משתמשים במספר מחשבים כדי לעבוד יחד על משימה אחת.
תוכנה מקבילית: זה כולל שימוש בשפות תכנות וכלי תוכנה התומכים בעיבוד מקביל.
שפות תכנות מקבילות וממשקי API נפוצים כוללים MPI (ממשק העברת הודעות), OpenMP ו-CUDA עבור NVIDIA GPUs.
כלים ושפות אלה מספקים דרכים להפיץ משימות על פני משאבי החומרה הזמינים.
סוגי מקביליות: מחשוב מקביל כולל מספר סוגים של מקביליות, כולל:
מקביליות נתונים: זה כולל הפצת תת-קבוצות של אותם נתונים על פני מספר צמתי מחשוב
וביצוע אותה פעולה בכל תת-קבוצה במקביל.
מקביליות משימות: צמתים או מעבדי מחשוב שונים מבצעים משימות שונות על אותם או
מערכי נתונים שונים במקביל.
אתגרים: מחשוב מקביל מגיע עם סט אתגרים משלו, כגון סנכרון, שבו יש לתאם משימות כך שיבוצעו בסדר הנכון; פיצול נתונים,
הכולל פירוק נתונים לנתחים שניתנים לעיבוד במקביל; ואיזון עומסים, המבטיח שכל יחידות העיבוד מנוצלות ביעילות
מבלי שחלקן יועמסו בעוד שאחרות לא מנוצלות.
יישומים: מחשוב מקביל משמש במגוון רחב של יישומים, החל ממחקר מדעי (כמו דוגמנות אקלים, מכניקת קוונטים וביואינפורמטיקה)
ועד לתעשייה (כגון מודלים פיננסיים, סימולציה ומסחר בתדרים גבוהים), בשל יכולתו לבצע הרבה להפחית את זמן החישוב עבור בעיות מורכבות.
מוצרי עיבוד מקבילי
מוצרי מחשוב מקבילים משתרעים על טווח רחב, מחומרה ועד תוכנה, שנועדו לתמוך או לשפר את הביצועים של משימות מחשוב מקבילות.
להלן סקירה כללית של סוגי המוצרים הזמינים במערכת האקולוגית של המחשוב המקביל:
חומרה מקבילית
מעבדים מרובי ליבות: כמעט כל המעבדים המודרניים הם מרובי ליבות, כאשר הצעות של אינטל (Core i3, i5, i7, i9 סדרות)
ו-AMD (סדרת Ryzen) פופולריים בקרב צרכנים ואנשי מקצוע כאחד.
יחידות עיבוד גרפי (GPUs): בעיקר מ-NVIDIA (GeForce לצרכנים, Tesla ו-Quadro למקצוענים) ו-AMD (Radeon לצרכנים,
Radeon Pro ו-Instinct למקצוענים), GPUs הם קריטיים למשימות מקבילות לנתונים.
מערכי שער הניתנים לתכנות שדה (FPGA): מכשירים כמו סדרת Stratix של אינטל וסדרת Virtex של Xilinx משמשים
למשימות עיבוד מקבילות הניתנות להתאמה אישית בתעשיות ובמחקר.
אשכולות מחשוב עתירי ביצועים (HPC): אלו הם מכלולים של מספר מחשבים (צמתים) הפועלים יחד כמערכת אחת,
לרוב בנויים בהתאמה אישית אך גם זמינים כמערכות מוגדרות מראש מחברות כמו Cray (כיום חלק מ-HPE), IBM, ו-Dell.
תוכנה מקבילית
שפות והרחבות תכנות מקבילות: שפות כמו C/C++ ו-Fortran עם הרחבות מקבילות (למשל, OpenMP, MPI) הן סטנדרטיות.
יש גם שפות מיוחדות כמו ג’וליה שעוצבו תוך מחשבה על מחשוב מקביל.
סביבות פיתוח: סביבות פיתוח משולבות (IDE) וכלים במיוחד עבור תכנות מקבילי, כמו ערכת הכלים CUDA
של NVIDIA לתכנות GPU, וערכת הכלים oneAPI של אינטל.
מסגרות מחשוב מבוזרות: Apache Hadoop לאחסון ועיבוד מבוזר של ביג דאטה, Apache Spark
לניתוח ביג דאטה ו-Dask למחשוב מקביל ב-Python.
שירותי מחשוב מקבילים מבוססי ענן: AWS (Amazon Web Services) מציעה מכונות וירטואליות המותאמות למשימות מחשוב מקבילות,
וכך גם Microsoft Azure ו-Google Cloud Platform, המספקות משאבי מחשוב ענן ניתנים להרחבה.
תוכנות וספריות מקביליות מיוחדות
ספריות מחשוב מדעי: ספריות כגון TensorFlow ו- PyTorch ללמידה עמוקה משתמשות במחשוב מקביל לעיבוד.
דוגמאות אחרות כוללות ספריות מבוססות MPI לסימולציות פיזיקה או ביואינפורמטיקה.
מערכות מסד נתונים: מערכות כמו Teradata או הרחבות מקבילות עבור PostgreSQL ו-MySQL מאפשרות עיבוד מקביל
של שאילתות מסד נתונים, ומשפרות את הביצועים עבור מערכי נתונים גדולים.

