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

Post on 20-Dec-2015

229 Views

Category:

Documents

5 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Synchronizers - מסנכרנים

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

(1הקדמה )

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

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

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

ביצועים

(2הקדמה )

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

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

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

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

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

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

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

P-1

סינכרון

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

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

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

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

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

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

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

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

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

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

שלב ב'

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

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

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

αאלגוריתם

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

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

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

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

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

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

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

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

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

βאלגוריתם

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

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

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

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

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

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

לפעימה הבאה

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

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

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

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

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

))(( * GDiamO

)(VO

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

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

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

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

כלשהוkעבור

)(log VO k

)()( VOkVO

vk 2

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

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

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

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

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

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

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

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

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

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

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

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

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

)()( VOkVC

)(log)( VOT k

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

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

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

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

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

||log)( ssDiag k

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

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

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

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

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

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

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

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

באלגוריתם

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

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

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

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

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

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

חיפוש מנהיג

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

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

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

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

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

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

שונים

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

ביניהם

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

vklog

)log( VVEO k

nh klog

)(log2 nO k

2k89log 2 nnk

)(VO

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

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

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

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

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

)(VO)(log VO k

)( 2VO)log( VVO k

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

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

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

הודעותזמן

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

)(VO)(logVO

)( 2VO)log( VVO

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

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

סיבוכיות זמן

)()()()log( 222 VOVOVOVVEO

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

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

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

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

לשפר את היחס

top related