עיבוד מקבילי – הבדלי גרסאות

תוכן שנמחק תוכן שנוסף
מ שיפורי ניסוח והספת קישורים עד הפרק "סיווג" כולל.
מ שיפורי ניסוח וקישורים בפרק הטכניקות
שורה 49:
אחד החוקים הבסיסיים בתכנות מקבילי קובע שההאצה משימוש בחישוב מקבילי על ''n'' מעבדים תמיד תהיה נמוכה מ-''n'', כלומר הפונקציה היא תמיד פחות מלינארית. הכלל נובע מ[[חוק אמדאהל]] (Amdahl's law). כדי לקבל האצה כלשהי יש צורך לבנות אלגוריתם מקבילי, המחלק את המטלות על מספר מעבדים.
 
במקרים רבים האלגוריתם המקבילי יהיה שונה מהותית מהאלגוריתםמכל הטוריאלגוריתם טורי לפתרון אותה מטלה, ואף ייתכן שיהיה לא יעיל באורחבמידה קיצוניקיצונית על מחשב טורי.
 
כדי ליישם תכנות מקבילי יש לפרק את הבעיה לגורמים קטנים יותר. לרובבמצב מעדיפיםהאידיאלי שהחלוקההחלוקה תהיה סימטרית ובלתי מוגבלת - כלומר כל תת-בעיה זהה לבעיה הגדולה, למעטפרט לכך שהיא פועלת על אוסף הנתוניםנתונים (הקטןקטן יותר) עליה- היאחלק פועלתמאוסף הנתונים של הבעיה הגדולה. כך ניתן להפעיל את האלגוריתם על מספר שונהמשתנה של מעבדים ללא צורך לשנות את האלגוריתםאותו, תוך שיפור היעילות באופן יחסי למספר המעבדים (אך כפי הנראה לא לינארי).
 
במקרים אחרים מחלקים את הבעיה למספר בעיות שונות, כשכל אחת רצה על מעבד אחר. במקרה זה אין יתרון בהוספת מעבדים נוספים מעבר למספר תתי הבעיות.
שורה 57:
רבים מהאלגוריתמים לפיכך בנויים ממספר שלבים:
# פירוק הבעיה לתתי בעיות.
# פתרון תתי הבעיות על המעבדים השונים (ייתכן שבאופן רקורסיבי) ו"תפירת" תנאי שפה (נק'נקודות חפיפה) ביניהם.
# הרכבת הפתרונות.
 
====ממשק העברת הודעות (MPI - Message Passing Interface)====
במערכות ללא זיכרון משותף, הממשק לפירוק הבעיות וקבלת התוצאות מכל אחת מיחידות העיבוד מבוסס על העברת הודעות. [[MPI]] נחשבהוא לסטנדרטתקן דה-פאקטומקובל לעבודה במערכות מקביליות ללא זיכרון משותף.
 
===סינכרון===
במערכות מקביליות קיימת בעיה הנובעתשל מכךאי-ודאות שאין ודאותבאשר לסדר הפעולות, היות שכל מעבד מבצע את התוכנית על פי הקצבבקצב שלומשלו. הבעיה עלולה ליצור טעויות אלגוריתמיות הנובעות מחוסר תיאום בין המעבדים.
 
דוגמה: