חישוב מקבילי ומבוזר

Download Report

Transcript חישוב מקבילי ומבוזר

‫מכון ויצמן למדע‬
‫המחלקה להוראת המדעים‬
‫חישוב מקבילי ומבוזר‬
‫יחידה חמישית במדעי המחשב‬
‫פרופ’ מוטי בן‪-‬ארי‬
‫יפעת בן‪-‬דוד קוליקנט‬
‫חנה מחלב‬
‫אהובה תקוותי‬
‫מה זה חישוב מקבילי?‬
‫‪ ‬ענף מתקדם במדעי המחשב העוסק במערכות‬
‫ממוחשבות מרובות ישויות‪.‬‬
‫‪ ‬מתחבר לענפים רבים במדעי המחשב כגון מערכות‬
‫הפעלה‪ ,‬תקשורת‪ ,‬מערכות זמן אמת‪,‬‬
‫אלגוריתמיקה‪( ,‬אלגוריתמים מקביליים) ומבני‬
‫נתונים‪.‬‬
‫דוגמאות למערכות ממוחשבות‬
‫מערכת הכספומטים אמינה‬
‫ומהירה ומתואמת גם עם‬
‫הבנק‬
‫מערכת המרכזיות‬
‫מטפלת בשיחות‬
‫רבות בו"ז‬
‫•מערכת הזמנת‬
‫כרטיסי טיסה מכל‬
‫רחבי הארץ לכל‬
‫סוכנויות הטיסה‬
‫האפשריות‪.‬‬
‫מה לומדים ?‬
‫• תיאום ‪ -‬תזמור בין מספר ישויות החולקות‬
‫משאבים משותפים במערכת‪ ,.‬על‪-‬ידי שימוש‬
‫בזיכרון משותף או שליחת וקבלת הודעות‪.‬‬
‫• מהימנות ‪ -‬קבלת החלטות סבירות במערכת‬
‫מבוזרת על סמך מידע ממספר ישויות גם כאשר‬
‫חלק מהן 'מתפגרות' או 'משתגעות'‪.‬‬
‫למה כדאי שתלמידים‬
‫ילמדו חישוב מקבילי ?‬
‫• הקורס משיג את מטרות הוראת מדעי‬
‫המחשב הנגזרות ממטרות הוראת המדעים ‪:‬‬
‫–הבנה של העולם הסובב‬
‫דוגמאות לתופעות שניתן להסביר‬
‫• איך אפשר לעבוד ב‪ Word -‬ובמקביל לבצע‬
‫‪ download‬לקבצים?‬
‫• איך מגיע מידע לגולש באינטרנט ? למה הוא לא‬
‫הולך לאיבוד אם מחשבים נופלים בדרך ?‬
‫• איך רואים במשחקי מחשב מספר ישויות שנעות‬
‫במקביל על המסך?‬
‫למה כדאי שתלמידים‬
‫ילמדו חישוב מקבילי ?‬
‫• הקורס משיג את מטרות הוראת מדעי‬
‫המחשב הנגזרות ממטרות הוראת המדעים ‪:‬‬
‫– הבנה של העולם הסובב‬
‫–רכישת מיומנויות של חשיבה ‪ -‬יצירתיות‪,‬‬
‫ביקורתיות‪ ,‬היוריסטיקות לפתרון בעיות‪....‬‬
‫–אתגר אינטלקטואלי‬
‫למה כדאי‪ :‬מה שונה חישוב מקבילי ומבוזר‬
‫ממדעי המחשב שנלמד עד כה ?‬
‫במערכות ממוחשבות מרובות ישויות‪ ,‬כל ישות במערכת‬
‫תלויה גם בקלט (כמו קודם) אבל גם בהתנהגות ישויות‬
‫אחרות במערכת !‬
‫למשל‪ 20 ,‬מחשבים המחוברים למדפסת חייבים‬
‫ל'התחשב' זה בזה בשימוש בה‪.‬‬
‫למה כדאי ‪:‬אז מה ?‬
‫בחמ"מ מרחיבים מושגים ושיטות עבודה שנלמדו‬
‫כך שיתאימו גם למערכת רב‪-‬ישותית (עם‬
‫הרבה ישויות והרבה תסריטים אפשריים)‬
‫– מדגישים ניתוח של הבעיה !‬
‫– מדגישים תכנון של פתרון !‬
‫– מדגישים בדיקת נכונות שיטתית !‬
‫מבנה הקורס‬
‫הקורס מחולק ל‪ 60 -‬שעות הוראה בכיתה ‪,‬‬
‫ול‪ 30 -‬שעות מעבדה‬
‫הקורס והמבחנים בנויים בצורה מדורגת‪.‬‬
‫סביבת מעבדה המאפשרת פיתוח וניתוח‬
‫תכניות מקבילות‪ .‬שפת התכנה ‪ -‬פסקל‬
‫דידקטיקה‪ case studies :‬מעולם התלמיד‪,‬‬
‫המחזות‪ ,‬פרמול למושגים מקצועיים ותרגול‬
‫במעבדה‪.‬‬
‫חומרי למידה‬
‫•‬
‫•‬
‫•‬
‫•‬
‫•‬
‫•‬
‫ספר לתלמיד הכולל נושאים תיאורטיים ופעילויות מעבדה‪.‬‬
‫מדריך למורה ‪ +‬דיסקט פתרונות לכל תרגילי המעבדה‪.‬‬
‫סביבת מעבדה המדמה מקבילות בפסקל ‪ +‬מדריך‬
‫למשתמש‪.‬‬
‫סביבות המאפשרות להריץ אלגוריתמים מבוזרים ולחקרם‪.‬‬
‫מצגות וסימולציות ויזואליזציה‬
‫דוגמאות של בחינות ופתרונות‬
‫אלגוריתם מקבילי ‪ -‬דוגמא‬
‫התבונן באלגוריתם המקבילי הבא‪:‬‬
‫מהו הפלט ?‬
‫תהליך ‪English‬‬
‫הצג כפלט ‪Hello‬‬
‫הצג כפלט ‪Wolrd‬‬
‫תהליך ‪Hebrew‬‬
‫הצג כפלט ‪Shalom‬‬
‫הצג כפלט ‪Olam‬‬
‫בעיית הרובוטים והמיץ‬
‫שני רובוטים צריכים להמתיק כוס מיץ בדיוק בכפית סוכר‬
‫אחת‪ .‬לכל אחד מהרובוטים יש תהליך זהה‪:‬‬
‫טעם את המיץ‬
‫אם אינו מתוק אזי‬
‫לך למטבח‬
‫קח כפית עם סוכר‬
‫חזור‬
‫הוסף כפית סוכר‬
‫האם‬
‫האלגוריתם‬
‫נכון ?‬
‫תסריט שולל נכונות‬
‫רובוט א‬
‫טב‬
‫בו‬
‫רו‬
‫אלגוריתם משופר‬
‫טעם את המיץ‬
‫אם אינו מתוק אזי‬
‫לך למטבח‬
‫קח כפית עם סוכר‬
‫חזור‬
‫טעם את המיץ‬
‫אם אינו מתוק אזי‬
‫הוסף כפית סוכר‬
‫האם זה נכון ???‬
‫תסריט שולל נכונות‬
‫טועם‬
‫טועם‬
‫הולך להביא סוכר‬
‫הולך להביא סוכר‬
‫טועם (בפעם השניה)‬
‫מוסיף סוכר‬
‫טועם (בפעם השניה)‬
‫מוסיף סוכר‬
‫נכונות‬
‫תכנית נכונה =‬
‫תוכנית תקינה ושלמה‬
‫בעיית כרטיסי הקולנוע‬
‫•לאולם קולנוע קופה ממוחשבת המוכרת כרטיסים‬
‫לסרט שבאולם‪.‬‬
‫•הלקוח מקבל את הכרטיס למושב הטוב ביותר‬
‫הפנוי‪ .‬הקופה פועלת בעזרת תכנה המחליטה מהו‬
‫המושב הפנוי הטוב ביותר‪.‬‬
‫• רוצים להוסיף קופה נוספת שתמכור כרטיסים‬
‫במקביל לאותו סרט באותו אולם‪ .‬בכל עמדת קופאי‬
‫תהיה מדפסת להדפסת כרטיסים ‪.‬‬
‫אלגוריתם נוכחי (לקופה אחת)‬
‫כל עוד ‪Seat<> -1‬‬
‫‪  Seat‬המקום_הפנוי_הטוב_ביותר‬
‫אם ‪ Seat <> -1‬אזי‬
‫סמן_מקום_תפוס (‪)Seat‬‬
‫הדפס_כרטיס (‪) Seat‬‬
‫כשל אפשרי בין שתי קופות‬
‫כרטיסים‬
Office1
Office2
Seat Find_Best
Seat Find_Best
Mark(Seat2)
Mark(Seat2)
Print (Seat2)
Print (Seat2)
‫בעיית הכספרים בבנק‬
‫•‬
‫•‬
‫•‬
‫•‬
‫•‬
‫בבנק 'הצבי' מנוהלים חשבונות של לקוחות הבנק‪ .‬חלק‬
‫מהחשבונות משותפים ‪.‬‬
‫יש שתי עמדות כספרים‪ ,‬בהן מטפל קופאי בלקוח‪.‬‬
‫לקוח יכול לברר את יתרתו ולמשוך כסף מחשבונו‪ .‬משיכה‬
‫מאושרת רק אם סכום המשיכה גדול או שווה ליתרה שבחשבונו‪.‬‬
‫מחשוב הבנק ייעשה על‪-‬ידי שני תהליכים שכ"א תומך בעמדת‬
‫כספר אחת ותהליך מעדכן הכנסות המקבל הודעות ממחשב‬
‫הסניף הראשי על הכנסות של לקוח (משכורת‪ ,‬וכד') ומעדכן את‬
‫היתרה בהתאם‪.‬‬
‫(לא נטפל בהפקדות צ'קים ופעולות נוספות)‪.‬‬
‫כשל אפשרי בבעיית הכספרים‬
‫יתכן שביתרה‬
‫יישאר מעט מידי‬
‫כסף !‬
‫ייתכן שביתרה‬
‫יישאר יותר‬
‫מידי כסף !‬
‫האם תוכלו לתת תסריטים‬
‫המוכיחים כשל ?‬
‫תסריט המוכיח כשל‬
‫‪Entity 2‬‬
‫‪Entity 1‬‬
‫תסריט המוכיח כשל‬
‫‪Entity 2‬‬
‫‪Entity 1‬‬
‫בדוק יתרה‬
‫בדוק יתרה‬
‫השם ליתרה‬
‫השם ליתרה‬
‫המשאב המשותף – יתרת הלקוח!!‬
‫פעולות הבודקות (צהוב) ומשנות (כחול) את מצבו‬
‫אסור שתישזרנה זו בזו‬
‫בעיית הקטע הקריטי‬
‫קיימים קטעי קוד בשתי ישויות‬
‫במערכת‬
‫• שאסור שיתבצעו במקביל (קטעים‬
‫קריטיים)‬
‫•הקטעים הם קריטיים זה לזה בלבד‬
‫ הפתרון חייב לאפשר את כל שאר‬‫תסריטי הביצוע !‬
‫סכמת פתרון בעיית הקטע הקריטי‬
‫•‬
‫•‬
‫•‬
‫•‬
‫•‬
‫ישות א‬
‫קטע לא קריטי‬
‫המתן עד שאפשר‬
‫להיכנס לקטע קריטי‬
‫בצע קטע קריטי‬
‫סמן שאפשר להיכנס‬
‫•‬
‫•‬
‫•‬
‫•‬
‫•‬
‫ישות ב‬
‫קטע לא קריטי‬
‫המתן עד שאפשר‬
‫להיכנס לקטע קריטי‬
‫בצע קטע קריטי‬
‫סמן שאפשר להיכנס‬
‫פתרון בעיית הקטע הקריטי‬
‫• על‪-‬ידי טיפוסים חדשים ‪-‬סמפור‬
‫• על ידי שליחת וקבלת הודעות‬
‫תגובות של תלמידים‬
‫"פה התעסקתי עם בעיות אמיתיות"‬
‫"זה הקורס הראשון שגרם לי לפתוח את הראש ולחשוב "‪.‬‬
‫ועוד ‪....‬‬