Presentation is loading. Please wait.

Presentation is loading. Please wait.

Synchronizers - מסנכרנים הדמיית רשת סינכרונית ברשת אסינכרונית.

Similar presentations


Presentation on theme: "Synchronizers - מסנכרנים הדמיית רשת סינכרונית ברשת אסינכרונית."— Presentation transcript:

1 Synchronizers - מסנכרנים הדמיית רשת סינכרונית ברשת אסינכרונית

2 הקדמה (1) המטרה ביצוע אלגורתמים סינכרונים בסביבה אסינכרונית המניע קלות הבנה קלות תיכנון, בדיקה וניפוי באגים ביצועים

3 הקדמה (2) המודל רשת אמינה, אסינכרונית, ללא זכרון משותף השיטה הדמיית " פעימת שעון " ברשת האסינכרונית

4 פעימה פעימה – פרק זמן בו נשלחות הודעות בו זמנית באלגוריתם הסינכרוני. בפעימה תשלח הודעה אחת בין לפחות שני מעבדים שכנים ברשת. לא יותר מהודעה אחת לכל כיוון נשלחת בפעימה בין 2 מעבדים הדמייה תהיה נכונה אם באלגוריתם האסינכרוני אף מעבד לא יקבל או ישלח הודעה מפעימה P לפני שהוא סיים לשלוח ולקבל את כל ההודעות מפעימה P-1

5 סינכרון מעבר של מעבד V מפעימה P-1 לפעימה P שלב א ' : מוכנות המעבד V לעבור לפעימה P שלב ב ' : קבלת נכונות הרשת לעבור לפעימה P מעבר לפעימה P

6 שלב א ' - מוכנות הגדרה מעבד V יהיה מוכן לעבור לפעימה P כאשר הוא סיים להעביר את ההודעות של פעימה P-1 שימו לב. ההגדרה אינה תלויה במעבדים האחרים ברשת בכל אלגוריתמי הסינכרון שלב א ' זהה האלגוריתם לשלב א ' הוא קבלת אישור על שליחת ההודעות

7 שלב א ' - ביצועים סיבוכיות ביצוע O(1) סיבוכיות הודעות O(1) על כל הודעה של האלגוריתם הסינכרוני שמדמים, נשלחת בדיוק עוד הודעה אחת

8 שלב ב ' מעבד V ישלח הודעה של פעימה P רק אם הוא יודע בוודאות שהנמען מוכן לפעימה P יתכן שמעבד V יקבל הודעות של פעימה P לפני שמותר לו לשלוח הודעה של פעימה P שלושה אלגוריתמים לשלב ב ' α β γ

9 אלגוריתם α העקרון מעבד V יכול לעבור לשלב P כאשר הוא יודע ששכניו מוכנים לשלב P האלגוריתם כאשר מעבד V מוכן לפעימה P, הוא מעביר הודעת מוכנות לכל שכניו כאשר מעבד V מקבל מכל שכניו הודעת מוכנות הוא עובר לשלב P

10 אלגוריתם α – נכונות וביצועים עקרון הנכונות לא יתכן שתעבור הודעה מפעימה P לשכן שלא אישר מוכנות לפעימה P ביצועים סיבוכיות זמן O(1) מעבד צריך לשלוח הודעה אחת לכל שכן סיבוכיות הודעות O(E) בין כל שני מעבדים נשלחות שתי הודעות

11 אלגוריתם β העקרון שימוש בעץ פורש כאשר שורש העץ אחראי על שליחת פעימות הסינכרון

12 אלגוריתם β – שלבי האלגוריתם עלה – שולח הודעת נכונות ברגע שהוא מוכן צומת – כאשר א ) היא מוכנה לפעימה הבאה ב ) היא מקבלת הודעת מוכנות מכל בניה היא שולחת הודעת נכונות לאב שורש – כאשר הוא מקבל הודעת נכונות מכל בניו, הוא מעביר הודעת פעימה לכל בניו צומת ועלה – מעבירה הודעת פעימה ועוברת לפעימה הבאה

13 אלגוריתם β – נכונות וביצועים עקרון הנכונות הודעה של פעימה P יכולה לעבור בעץ רק לאחר ששורש העץ קיבל מוכנות ל P מכל העץ סיבוכיות זמן * בהנחה שהעץ נבנה יעיל כך שעומק העץ זהה לקוטר שלו סיבוכיות הודעות

14 אלגוריתם γ עסקת חליפין בין זמני הביצוע וסיבוכיות ההודעות באלגוריתמים α ו β הבסיס שילוב שני האלגוריתמים הקודמים המטרה להגיע לאלגוריתם עם סיבוכיות זמן סיבוכיות הודעות עבור k כלשהו

15 אלגוריתם γ - הרשת העקרון בנית רשת של עצים מקושרים כל עץ יהיה אשכול (cluster) בגרף בין כל שני עצים שכנים תיקבע צלע אחת בלבד שמעבירה הודעות סנכרון כל עץ יעבוד לפי אלגוריתם β בין העצים יעבוד אלגוריתם α

16 אלגוריתם γ – שלבי האלגוריתם 1. העברת הודעת נכונות במעלה העץ 2. העברת הודעת " אשכול בטוח " במורד העץ 3. העברת הודעת " אשכול בטוח " לאשכולים סמוכים בצלעות המיועדות לכך בלבד 4. העברת הודעת " אשכול שכן בטוח " במעלה העץ 5. העברת הודעת " הכל בטוח " במורד העץ

17 אלגוריתם γ – נכונות וביצועים נכונות - נובע מאלגוריתמים α ו β כל אשכול בנפרד בטוח לפי אלגוריתם β האשכולות בטוחים ביניהם לפי אלגוריתם α ביצועים – תלוי בחלוקה לאשכולות בעזרת האלגוריתם הבא השיג את התוצאות הבאות סיבוכיות הודעות סיבוכיות זמן

18 אלגוריתם חלוקת הגרף המטרה בחירת אשכול מקסימלי s כך שקוטר האשכול אינו עלה על לוגריתם גודל האשכול העקרון בונים אשכול " שמן " כך שבממוצע לקדקוד באשכול, אין יותר מ k שכנים מחוץ לאשכול

19 מרכיבי האלגוריתם לחלוקת גרף חיפוש מנהיג ראשוני, בכל אלגוריתם מבוזר יצירת אשכול סביב מנהיג חיפוש מנהיג בגרף השארית מציאת קשת מועדפת בין אשכולות

20 יצירת אשכול סביב מנהיג העקרון הקדקוד היוזם את בניית האשכול בונה עץ פורש בעזרת BFS סביבו העץ נבנה רמה אחר רמה לפני הוספת רמה לעץ, סופרים את מספר הקודקודים ברמה אשר אינם שייכים לאשכול קיים. את מספר הקדקודים באשכול ספירה זו מחייבת עליה וירידה בעץ בכל שלב באלגוריתם

21 בחינת רמה לפני הוספה לאשכול לפני הוספת רמה חדשה לעץ, בוחנים את מספר הקדקודים ברמה החדשה אם מספר זה עולה על (k-1) פעמים מספר הקדקודים בכל העץ, מוסיפים את הרמה החדשה וממשיכים לרמה הבאה אחרת מפסיקים את בניית העץ ומחפשים מנהיג לאשכול חדש הרמה הנבחנת לא תוסף לעץ, אך האשכול יזכור את הקדקודים הרמה הדחויה

22 חיפוש מנהיג בוחרים קדקוד ( למשל בעל ID מינימלי ) מהרמה הדחויה ובונים סביבו אשכול חדש אם הרמה הדחויה ריקה, חוזרים לאשכול שיצר את האשכול הנוכחי, ומחפשים ברמה הדחויה שלו אם חזרנו לאשכול הראשון שייצרנו וגם הרמה הדחויה שלו ריקה, נגמר האלגוריתם האלגוריתם דומה לחיפוש DFS בין האשכולות

23 חיפוש קשת מועדפת נבחר פונקציית משקל בין שני קדקודים i,j בעלי צלע משותפת הנמצאים באשכולות שונים פונקציה זו מבטיחה כי שני האשכולות יבחרו את אותה הצלע ביניהם, אם בכלל יש צלע ביניהם

24 בחירת קשת מועדפת באשכול בקבלת ההודעה המתאימה כל קדקוד יוצר רשימה של המשקל המינימלי לכל אשכול סמוך רשימה זו עוברת במעלה העץ כל צומת מאחדת את רשימת כל בניה עם הרשימה שלה במהלך האיחוד, מנפים את הרשימה, כך שלכל אשכול סמוך תישאר הצלע המינימלית

25 ההודעה למציאת קשת מועדפת ההודעה נשלחת כאשר חוזרים דרך האשכול במהלך הצעד " חיפוש מנהיג " ההודעה נשלחת על ידי שורש העץ, כאשר " חיפוש מנהיג " מחזיר כישלון בשלב זה, לא יתכן שלקדקוד יהיה שכן שאינו חלק מאשכול

26 פרסום הקשת המועדפת כאשר השורש מקבל את רשימת המשקלים, הוא מאחד אותה עם שלו, ומפרסם אותה בכל העץ קדקוד המקבל את הרשימה ומוצא שקשת היוצאת ממנו נמצאת בא, יסמן את הקשת להעברת הודעות סנכרון מחוץ לאשכול הודעה זו יכולה להיות גם הודעה לפעימה הראשונה באלגוריתם הסינכרוני

27 יצירת אשכול - ביצועים סיבוכיות הודעות כל אשכול יוצרים פעם אחת כולל עד סבבים באשכול בכל סבב עוברות הודעות בכל האשכול סיבוכיות זמן גובה כל אשכול שבונים המכיל n קדקודים ישנם h סבבים בגובה h ולכן סיבוכיות זמן קיים חסם למספר שלם n ו כך ש ולכן סבוכיות זמן

28 חיפוש מנהיג - ביצועים בכל פעם שמתבצע חיפוש מנהיג דרך אשכול מסויים צריך לבחון את העץ עבור בחינה אחת סיבוכיות הודעות סיבוכיות זמן מספר חיפושי המנהיג חסום על ידי מספר האשכולות, שחסום בגודל הגרף סיבוכיות הודעות סיבוכיות זמן

29 בחירת קשת מועדפת - ביצועים לצורך הניתוח, במקום רשימת משקלים. כל קדקוד יכול לשלוח משקל אחד בכל שלב שלב זה יכול להתבצע באשכולות במקביל בשליחת משקל בודד במעלה העץ הודעות זמן מכיוון שיש לא יותר מ V אשכולות סמוכים הודעות זמן

30 חלוקת הגרף – ביצועים סיבוכיות הודעות סיבוכיות זמן

31 חסם תחתון על מסנכרנים השאלה – האם יש יחס חליפין יותר טוב בין סיבוכיות ביצוע לסיבוכיות הודעות ? ישנם רשתות ספציפיות עבורם יש אך ניתן לבנות רשתות שעבורם לא ניתן לשפר את היחס


Download ppt "Synchronizers - מסנכרנים הדמיית רשת סינכרונית ברשת אסינכרונית."

Similar presentations


Ads by Google