עיבוד מקבילי מבוסס על פיצול תהליך הפתרון של בעיה כלשהי למספר מטלות קטנות יותר, שאותן ניתן לבצע בו־זמנית, עם מידה מסוימת של תיאום.
המניעים לעיבוד מקבילי.
המחשבים הראשונים היו מחשבים טוריים. בכל מחזור פעולה של המחשב בוצעה פעולה אחת, לדוגמה: הבא הוראה מהזיכרון, הבא מידע מהזיכרון, בצע פעולה אריתמטית, וכדומה. לחישוב הטורי מספר חסרונות:
המחשב לו מייחסים את התואר המחשב המקבילי הראשון לא התמודד עם בעיות משאבים, אלא עם בעיית אמינות. המחשב היה בנוי משלושה מעבדים שביצעו את אותה פעולה בו זמנית. בסיום כל פעולה השווה המחשב את תוצאות שלושת המעבדים, ובחר בתוצאה שנתנו רוב המעבדים. המחשב נבנה בפראג בשנות ה־50 של המאה ה־20 על ידי אנטונין סוובודה.
היסטוריה.
המאה ה־21.
הטכנולוגיה של חישוב מקבילי התפתחה במשך שנים רבות תחת הקטגוריה של מחשבי העל, אך מאז שנות התשעים החלה חדירת הטכנולוגיה למגזר המסחרי והביתי.
סיווג.
סיווג מקובל למבני חישוב מקבילי הוא הסיווג של פלין (Flynn) מ־1972:
כמו כן נהוג לסווג על פי ארכיטקטורת העיבוד:
טכניקות חישוב מקבילי.
תכנות מקבילי.
אחד החוקים הבסיסיים בתכנות מקבילי קובע שההאצה משימוש בחישוב מקבילי על "n" מעבדים תמיד תהיה נמוכה מ־"n", כלומר הפונקציה היא תמיד פחות מליניארית. הכלל נובע מחוק אמדאהל (Amdahl's law). כדי לקבל האצה כלשהי יש צורך לבנות אלגוריתם מקבילי, המחלק את המטלות על מספר מעבדים.
במקרים רבים האלגוריתם המקבילי יהיה שונה מהותית מכל אלגוריתם טורי לפתרון אותה מטלה, ואף ייתכן שיהיה לא יעיל במידה קיצונית על מחשב טורי.
כדי ליישם תכנות מקבילי יש לפרק את הבעיה לגורמים קטנים יותר. במצב האידיאלי החלוקה תהיה סימטרית - כלומר כל תת־בעיה זהה לבעיה הגדולה, פרט לכך שהיא פועלת על אוסף נתונים קטן יותר - חלק מאוסף הנתונים של הבעיה הגדולה. כך ניתן להפעיל את האלגוריתם על מספר משתנה של מעבדים ללא צורך לשנות אותו, תוך שיפור היעילות באופן יחסי למספר המעבדים (אך לא ליניארי).
במקרים אחרים מחלקים את הבעיה למספר בעיות שונות, כשכל אחת רצה על מעבד אחר. במקרה זה אין יתרון בהוספת מעבדים נוספים מעבר למספר תתי הבעיות.
רבים מהאלגוריתמים לפיכך בנויים ממספר שלבים:
ממשק העברת הודעות (MPI - Message Passing Interface).
במערכות ללא זיכרון משותף, הממשק לפירוק הבעיות וקבלת התוצאות מכל אחת מיחידות העיבוד מבוסס על העברת הודעות. MPI הוא תקן מקובל לעבודה במערכות מקביליות ללא זיכרון משותף.
סינכרון.
במערכות מקביליות קיימת בעיה של אי־ודאות באשר לסדר הפעולות, היות שכל מעבד מבצע את התוכנית בקצב משלו. הבעיה עלולה ליצור טעויות אלגוריתמיות הנובעות מחוסר תיאום בין המעבדים.
דוגמה.
נניח תוכנית הסופרת את מספר הפעולות שכלל המעבדים מבצעים. התוכנית תיראה כך:
במצב בו שני מעבדים רצים במקביל עלול לקרות המצב הבא:
כיוון שמעבד 2 קרא את הערך לפני שמעבד 1 הספיק להוסיף את מספר הפעולות שלו, התוצאה שנרשמת בזיכרון היא 3 במקום 6.
במחשבים מרובי מעבדים מוגדרות פעולות אטומיות. פעולות אלה מוגדרות כפעולות על תא זיכרון שבמהלכן לא יקרא מעבד אחר את תא הזיכרון או יכתוב אותו. למשל, ארכיטקטורה של מעבד או של חישוב יכולה להבטיח כי פעולת ה־increment (הוספת 1 לערך בזיכרון) וה־decrement (חיסור 1) תהיינה אטומיות.
מנגנונים אחרים לצורך טיפול בבעיות סנכרון הם מנעולים מסוגים שונים. כמו כן הומצאו אלגוריתמים חסרי נעילות, שיכולים לזהות ולהתגבר על בעיות סינכרון.
מקביליות בחומרה: "צינור" (pipeline).
אחד המנגנונים הראשונים של מקביליות במערכות מחשב הוא ה"צינור". הוא מתבסס על כך שיחידות העיבוד של המחשב בנויות ממספר רכיבים בעלי תפקידים שונים:
פעולה בודדת של המעבד יכולה להיות מורכבת ממספר שלבים. למשל חיבור שני ערכים מהזיכרון מורכב מהשלבים:
כל שלב כזה מבוצע על ידי יחידה אחרת במעבד. הצינור משתמש בעיקרון פס הייצור מעולם התעשייה. היחידות במעבד יכולות להיות כמו עמדות בפס ייצור שפועלות במקביל. כך אפשר להביא את ההוראה הבאה מהזיכרון עוד בזמן ביצוע הפעולה האריתמטית שאינה מערבת רכיבי זיכרון, וכך ליצור צינור באורך 2:
למעשה ניתן היה להאיץ בתוכניות מסוימות את קצב הפעולה של המעבד פי 2 (במחשבים רבים צוואר הבקבוק היה פעולות מול הזיכרון). אחד היתרונות של שיטה זו הוא שיפור הביצועים ללא צורך בשינוי האלגוריתם. בהמשך הורחב הרעיון על ידי הפרדת המעבד ליחידות קטנות יותר, ואף הוספת יחידות זהות, כדי לאפשר צינורות ארוכים יותר. טכניקות אלה התפתחו למעבדים superscalar.
לצינורות יש מספר בעיות:
למרות החסרונות, הטכניקה התפתחה ונמצאת במרבית המעבדים המודרניים. היא אף הורחבה עם רעיונות נוספים:
מקביליות בחומרה: יחידות וקטוריות.
בתכנות ישנם מצבים רבים בהם מתבצעות פעולות אריתמטיות זהות על פריטי מידע שונים (SIMD). כמו רבות מהשיטות המוזכרות פה הופיע הצורך לראשונה במחשבי־על ששימשו לסימולציות מדעיות מסובכות. פעולות אלה אופייניות כיום לפעולות גרפיות בתלת־ממד ואף בדו־ממד. לפיכך משולבות במעבד יחידות וקטוריות.
עקרון היחידה הווקטורית הוא שבמקום לפעול על פריט מידע בודד, נטען מהזיכרון אוסף של פריטים (וקטור), והפעולות מתבצעות בבת אחת על כל הפריטים.
בניגוד לצינורות, היחידות הווקטוריות הוסיפו אוסף פקודות מיוחדות למעבד שהיה צורך לעשות בהן שימוש כדי לנצל את היכולת. במעבדי אינטל הטכנולוגיה נקראה MMX, ובמעבדי IBM Power היא נקראה AltiVec. חסרונה העיקרי בכך שנדרשים מהדרים (קומפיילרים) מתוחכמים כדי לבצע וקטוריזציה עצמאית, או לחלופין התערבות מכוונת של המתכנת כדי להביא לשימוש ביחידות הווקטוריות.
בפעולות גרפיות פעולות וקטוריות הן מאוד נפוצות, ולפיכך יחידות וקטוריות (כמו גם צינורות) הפכו לחלק בלתי נפרד מכרטיסים גרפיים מודרניים, כאשר יצרן הכרטיס דואג ליישום הקוד הווקטורי לכל פעולה.
רחל נפרסטק
רחל נפרסטק (Rachel Naparstek; נולדה ב-6 בפברואר 1951) היא אשת חינוך, סופרת ומשוררת ישראלית.
קורות חייה.
נפרסטק נולדה בקיבוץ יבנה. את שירותה הצבאי עשתה במסגרת הנח"ל בהיאחזות "מחולה" בבקעת הירדן.
בראשית דרכה המקצועית עבדה עם נוער עבריין במתנ"ס נוזהה ביפו-תל אביב. בגיל 24 הקימה וניהלה בית ספר לילדים עם פיגור שכלי עמוק בשליחות משרד החינוך, ולאחר שלוש שנים פרשה מניהול בית הספר עקב רצונה להתמקד בגידול ילדיה. מאוחר יותר הייתה מרכזת ארצית של בתי הספר תהיל"ה (תוכנית השכלה ייחודית ללומד המבוגר) של תנועת אמונה והמחלקה לחינוך מבוגרים במשרד החינוך.
משנת 1992 ועד 2020 לימדה באוניברסיטת בר-אילן במסגרת היחידה להבעה עברית ואולפן, כיום מכשירה מורים לעברית מישראל ומחוצה לה במסגרת האקדמיה המקוונת של הערוץ הבין-לאומי במכון מופ"ת, ומנהלת את הפורום הבין-לאומי למורים לעברית כשפה נוספת במכון מופ"ת של משרד החינוך. רחל בעלת תואר ראשון בחינוך מיוחד ובקרימינולוגיה ותואר שני בלשון עברית. ריכזה במשך שנה את תוכנית ההתמחות להוראת עברית כשפה שנייה באוניברסיטת בר-אילן.
נפרסטק למדה תקשורת, וכתבה בעיתון החרדי "יום ליום" כתבות, סיפורים ושירים; השיבה במשך כמעט 15 שנה על שאלות אישיות במדור הייעוץ "רציתי לשאול" של העיתון "יום ליום", ונחשפה לבעיות אישיות קשות מאוד. בהשראת אלפי מכתבים שנשלחו אליה במהלך השנים נכתב ספר הסיפורים "מחיצות" (2006), ועל בסיס מכתבים אלה כתבה את עבודת התיזה שלה: "אפיונים מילוניים בלשונן של בנות חרדיות מעדות המזרח".
כתבה במקומון "במדרחוב" בפתח- תקוה, וערכה את העלון "טל חיים" - עמותה לעזרה בקהילה.
ניהלה במשך כארבע שנים את אתר "ביכורים", ערכה בו סדנאות כתיבה, ופרסמה בו שירים וסיפורים בעילום שם, שאוגדו בשנת ה'תשס"ו לספרים.
כתבה עד כה שלושה ספרי שירה וספר אחד של סיפורים קצרים. אוסף משיריה תורגם לאנגלית על ידי המתרגמת, המשוררת והסופרת דנה ג. פלג.
עובדת עם מלחינים שונים וכותבת מילים ליצירות מוזיקליות. כתבה שירים רבים לקומפוזיטור עמנואל וואל - זוכה פרס ראש הממשלה לקומפוזיטורים - וכתבה גם יצירות גדולות למקהלה. היצירה "יציאת מצריים" זכתה להערכה רבה ובוצעה על ידי מקהלת אורטוריו ירושלים וצלילי הסדנה. כתבה שירים ללחנים של המלחין דובי כהן. אחת היצירות "שדה סליחות" נכתבה בשיתוף פעולה עם נתן כהן (הנשמות הטהורות). בשיתוף פעולה עם המלחין זאב טל כתבה את המילים "אמא - בואי נרקוד את האושר".
רבים משיריה הולחנו. שיריה וסיפוריה נלמדים בבתי ספר בישראל ומחוצה לה, והבולטים שבהם הם השיר "אושוויץ" והסיפור "אמא שלי הייתה בשואה" שפורסמו באנתולוגיה "תמונה קבוצתית - ספרות ישראלית במאה ה-21". הזמרת טל אמיר הלחינה ושרה שירים רבים מספר שיריה הראשון לדוגמה: "שלום - אני עוזבת". במסגרת עבודתה בהכשרת מורים לעברית, היא כתבה שירים לימודיים רבים, המסייעים ללמוד נושאים בעברית. למשל השיר "יוצאים מן הכלל" בלחנו וביצועו של הזמר רני הלרמן. כמו כן הלחינו ושרו משיריה הזמרות ריקי אוגול, רחלי וולשטיין, והזמר אדם וינטר.
השתתפה בפרויקטים ביוזמת הזמר אלי זמיר: "משוררים כותבים ביטלס" ו"משוררים כותבים שירים נוסטלגיים ואהובים". במסגרת זו המשוררים כתבו מילים חדשות בעברית ליצירות מוכרות. לדוגמה: "היא אמרה רק כן" שנכתב למנגינת Your Mother Should Know-The Beatles של הביטלס. ו-"מתי תאמיני בעצמך" שנכתב למנגינת Ben E King - Spanish Harlem.