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

31
Synchronizers - םםםםםםםם םםםםםם םםם םםםםםםםםם םםםם םםםםםםםםםם

Post on 20-Dec-2015

229 views

Category:

Documents


5 download

TRANSCRIPT

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

Synchronizers - מסנכרנים

הדמיית רשת סינכרונית ברשת אסינכרונית

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

(1הקדמה )

המטרה ביצוע אלגורתמים סינכרונים בסביבה

אסינכרוניתהמניע

קלות הבנהקלות תיכנון, בדיקה וניפוי באגים

ביצועים

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

(2הקדמה )

המודלרשת אמינה, אסינכרונית, ללא זכרון משותף

השיטההדמיית "פעימת שעון" ברשת האסינכרונית

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

פעימה פעימה – פרק זמן בו נשלחות הודעות בו זמנית

באלגוריתם הסינכרוני. בפעימה תשלח הודעה אחת בין לפחות שני מעבדים

שכנים ברשת. לא יותר מהודעה אחת לכל כיוון נשלחת בפעימה בין

מעבדים2הדמייה תהיה נכונה אם באלגוריתם האסינכרוני

אף מעבד לא יקבל או ישלח הודעה מפעימהP לפני שהוא סיים לשלוח ולקבל את כל ההודעות מפעימה

P-1

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

סינכרון

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

P מעבר לפעימהP

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

שלב א' - מוכנות

הגדרה מעבדV לעבור לפעימה מוכן יהיה P כאשר הוא

P-1סיים להעביר את ההודעות של פעימה .ההגדרה אינה תלויה במעבדים שימו לב

האחרים ברשתבכל אלגוריתמי הסינכרון שלב א' זהה האלגוריתם לשלב א' הוא קבלת אישור על

שליחת ההודעות

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

שלב א' - ביצועים

סיבוכיות ביצועO(1) סיבוכיות הודעותO(1)

על כל הודעה של האלגוריתם הסינכרונישמדמים, נשלחת בדיוק עוד הודעה אחת

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

שלב ב'

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

יתכן שמעבדV יקבל הודעות של פעימה P Pלפני שמותר לו לשלוח הודעה של פעימה

'שלושה אלגוריתמים לשלב בαβγ

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

αאלגוריתם

העקרון מעבדV יכול לעבור לשלב P כאשר הוא יודע

Pששכניו מוכנים לשלב האלגוריתם

כאשר מעבדV מוכן לפעימה P הוא מעביר ,הודעת מוכנות לכל שכניו

כאשר מעבדV מקבל מכל שכניו הודעת Pמוכנות הוא עובר לשלב

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

– נכונות וביצועיםαאלגוריתם

עקרון הנכונות לא יתכן שתעבור הודעה מפעימהP לשכן שלא

Pאישר מוכנות לפעימה ביצועים

סיבוכיות זמןO(1)מעבד צריך לשלוח הודעה אחת לכל שכן

סיבוכיות הודעותO(E)בין כל שני מעבדים נשלחות שתי הודעות

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

βאלגוריתם

העקרון שימוש בעץ פורש כאשר שורש העץ אחראי על

שליחת פעימות הסינכרון

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

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

א( היא מוכנה לפעימה הבאה ב( היא מקבלת הודעת מוכנות מכל בניה

היא שולחת הודעת נכונות לאב שורש – כאשר הוא מקבל הודעת נכונות מכל

בניו, הוא מעביר הודעת פעימה לכל בניו צומת ועלה –מעבירה הודעת פעימה ועוברת

לפעימה הבאה

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

– נכונות וביצועיםβאלגוריתם

עקרון הנכונות הודעה של פעימהP יכולה לעבור בעץ רק

מכל העץPלאחר ששורש העץ קיבל מוכנות ל סיבוכיות זמן

* בהנחה שהעץ נבנה יעיל כך שעומק העץ זהה לקוטר שלו

סיבוכיות הודעות

))(( * GDiamO

)(VO

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

γ אלגוריתם עסקת חליפין בין זמני הביצוע וסיבוכיות

β ו αההודעות באלגוריתמים הבסיס

שילוב שני האלגוריתמים הקודמיםהמטרה

להגיע לאלגוריתם עםסיבוכיות זמןסיבוכיות הודעות

כלשהוkעבור

)(log VO k

)()( VOkVO

vk 2

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

- הרשתγאלגוריתם

העקרוןבנית רשת של עצים מקושרים כל עץ יהיה אשכול(cluster)בגרף בין כל שני עצים שכנים תיקבע צלע אחת בלבד

שמעבירה הודעות סנכרון כל עץ יעבוד לפי אלגוריתםβ בין העצים יעבוד אלגוריתםα

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

– שלבי האלגוריתםγאלגוריתם

העברת הודעת נכונות במעלה העץ1.

העברת הודעת "אשכול בטוח" במורד העץ2.

העברת הודעת "אשכול בטוח" לאשכולים 3.סמוכים בצלעות המיועדות לכך בלבד

העברת הודעת "אשכול שכן בטוח" 4.במעלה העץ

העברת הודעת "הכל בטוח" במורד העץ5.

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

– נכונות וביצועים γאלגוריתם

נכונות - נובע מאלגוריתמיםα ו β כל אשכול בנפרד בטוח לפי אלגוריתםβ האשכולות בטוחים ביניהם לפי אלגוריתםα

ביצועים – תלוי בחלוקה לאשכולות בעזרת האלגוריתם הבא השיג את התוצאות

הבאות סיבוכיות הודעותסיבוכיות זמן

)()( VOkVC

)(log)( VOT k

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

אלגוריתם חלוקת הגרף

המטרה בחירת אשכול מקסימליs כך שקוטר האשכול

אינו עלה על לוגריתם גודל האשכול

העקרון בונים אשכול "שמן" כך שבממוצע לקדקוד

שכנים מחוץ לאשכול kבאשכול, אין יותר מ

||log)( ssDiag k

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

מרכיבי האלגוריתם לחלוקת גרף

חיפוש מנהיג ראשוני, בכל אלגוריתםמבוזר

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

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

יצירת אשכול סביב מנהיג

העקרון הקדקוד היוזם את בניית האשכול בונה עץ פורש

סביבוBFSבעזרת העץ נבנה רמה אחר רמה לפני הוספת רמה לעץ, סופרים

את מספר הקודקודים ברמה אשר אינם שייכיםלאשכול קיים.

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

באלגוריתם

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

בחינת רמה לפני הוספה לאשכול

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

אם מספר זה עולה על(k-1) פעמים מספר הקדקודים בכל העץ, מוסיפים את הרמה

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

מנהיג לאשכול חדש הרמה הנבחנת לא תוסף לעץ, אך האשכול יזכור את

הקדקודים הרמה הדחויה

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

חיפוש מנהיג

למשל בעל( בוחרים קדקודID )מינימלי מהרמה הדחויה ובונים סביבו אשכול חדש

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

שלו אם חזרנו לאשכול הראשון שייצרנו וגם הרמה

הדחויה שלו ריקה, נגמר האלגוריתם האלגוריתם דומה לחיפושDFSבין האשכולות

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

חיפוש קשת מועדפת

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

שונים

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

ביניהם

)),max(),,(min( jiji

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

בחירת קשת מועדפת באשכול

בקבלת ההודעה המתאימה כל קדקוד יוצררשימה של המשקל המינימלי לכל אשכול

סמוךרשימה זו עוברת במעלה העץ

כל צומת מאחדת את רשימת כל בניה עםהרשימה שלה

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

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

ההודעה למציאת קשת מועדפת

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

ההודעה נשלחת על ידי שורש העץ, כאשר"חיפוש מנהיג" מחזיר כישלון

בשלב זה, לא יתכן שלקדקוד יהיה שכן שאינוחלק מאשכול

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

פרסום הקשת המועדפת

,כאשר השורש מקבל את רשימת המשקליםהוא מאחד אותה עם שלו, ומפרסם אותה

בכל העץ קדקוד המקבל את הרשימה ומוצא שקשת

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

הודעה זו יכולה להיות גם הודעה לפעימההראשונה באלגוריתם הסינכרוני

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

יצירת אשכול - ביצועים

סיבוכיות הודעותכל אשכול יוצרים פעם אחתכולל עד סבבים באשכולבכל סבב עוברות הודעות בכל האשכול

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

vklog

)log( VVEO k

nh klog

)(log2 nO k

2k89log 2 nnk

)(VO

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

חיפוש מנהיג - ביצועים

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

עבור בחינה אחתסיבוכיות הודעותסיבוכיות זמן

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

סיבוכיות הודעותסיבוכיות זמן

)(VO)(log VO k

)( 2VO)log( VVO k

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

בחירת קשת מועדפת - ביצועים

לצורך הניתוח, במקום רשימת משקלים. כלקדקוד יכול לשלוח משקל אחד בכל שלב

שלב זה יכול להתבצע באשכולות במקבילבשליחת משקל בודד במעלה העץ

הודעותזמן

מכיוון שיש לא יותר מ Vאשכולות סמוכים הודעותזמן

)(VO)(logVO

)( 2VO)log( VVO

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

חלוקת הגרף – ביצועים

סיבוכיות הודעות

סיבוכיות זמן

)()()()log( 222 VOVOVOVVEO

)log()log()log()( VVOVVOVVOVO kkk

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

חסם תחתון על מסנכרנים

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

ישנם רשתות ספציפיות עבורם יש אך ניתן לבנות רשתות שעבורם לא ניתן

לשפר את היחס