1 / 34

Elimination Trees and the Construction of Pools and Stacks

Elimination Trees and the Construction of Pools and Stacks. Presented by: Aya Elhanan. תוכן עניינים. הקדמה Elimination Tree מימוש Pool מימוש Stack-like Pool סיכום. Pool. טיפוס התומך בפעולות האבסטרקטיות:

justus
Download Presentation

Elimination Trees and the Construction of Pools and Stacks

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Elimination Treesand the Construction of Pools and Stacks Presented by: Aya Elhanan

  2. תוכן עניינים הקדמה Elimination Tree מימוש Pool מימוש Stack-like Pool סיכום

  3. Pool • טיפוס התומך בפעולות האבסטרקטיות: • enqueue(e) אשר מוסיפה את אלמנט e ל-poolDequeue אשר מוחקת ומחזירה אלמנט e כלשהו מה-pool. • אין שמירה על סדר מסוים שלהערכים ב-pool. • שתי דרישות: • 1. פעולת הכנסה תמיד מצליחה. • 2. פעולת הוצאה מצליחה אם ה-pool אינו ריק. 3

  4. (המשך)Pool Pool מאפשר את התיאום הנדרש בין מעבדים בבעיות בהן יש לבצע מספר משימות במקביל. דוגמא: מערכת מעקב של חיישנים ומבצעים, כאשר המבצעים צריכים להגיב מאוד מהר למשימות שמקצים להם החישנים. Enq(eat, location1) ? Deq(eat,location1) Enq(eat,location2) Deq(eat,location2) 4

  5. מימושיPoolקיימים • פיתרונות המבוססים על queue-lock • טובים ברמות פעילות נמוכות, אך לא במצבים של עומס גבוה. • אלגוריתמים המבוססים על load-balanced local pools • טובים דווקא תחת עומס גבוה, אך לא ברמות פעילות נמוכות. • Diffracting Trees • פיתרון בעל זמן תגובה ממוצע טוב גם ברמות פעילות נמוכות יחסית וגם תחת עומס. 5

  6. Diffracting Trees עץ בינארי מאוזן שהצמתים שלו הם אלמנטים מסוג- one-input two-output הנקראים מאזנים. מנתב דרך הענפים שלו טוקנים שמייצגים פעולות שיש לבצע. המאזן מפצל את הטוקנים שמאלה וימינה כך שיתחלקו באופן שווה בין המעבדים. 6

  7. Diffracting Trees 7

  8. Diffracting Trees שאלה: איך אפשר לממש מאזן? תשובה: המאזן יכול להיות מורכב מביט בודד, עם החוק שטוקניםהופכים את הביט והולכים לקו הפלט 0 או 1 בהתאם לערך הישן שלו. 1 0 1 0 1 0 8

  9. תוכן עניינים הקדמה Elimination Tree מימוש Pool מימוש Stack-like Pool סיכום

  10. Elimination Trees עץ בינארי מאוזן שהצמתים שלו הם אלמנטים מסוג- one-input two-output הנקראים מאזנים. מנתב דרך הענפים שלו טוקנים ואנטי-טוקנים שמייצגים פעולות בעלות סמנטיקה הפוכה. מאזן מפצל את הטוקנים והאנטי-טוקנים שמאלה וימינה כך שיתחלקו באופן שווה בין המעבדים. שאלה: איך ניתן להגדיר את המאזן כך שיטפל גם באנטי-טוקנים? תשובה: המאזן יכול להיות מורכב משני ביטים: אחד עבור טוקנים והשני עבור אנטי-טוקנים. 10

  11. Elimination Trees 0 1 0 1 0 1 0 1 0 1 0 1 11

  12. שאלה: מה יכול להיות בעייתי במימוש? • תשובה: הביט בשורש העץ יהיה hot-spot. 12

  13. הפיתרון: הצבתמערך מנסרה לפני הביט בתוך כל מאזן. מנסרה = מבנה מערך המאפשר לזוגות של טוקנים להתנגש בתוך התאים שלו. אם אירעה התנגשות, אזי הטוקנים מסכימים ביניהם שאחד מהם צריך להיות מוטה שמאלה והשני ימינה. 0 0 0 שאלה: האם נוצרת בעיה כיוון שטוקנים שהתנגשו לא הופכים את הביט בעת המעבר ב-balancer? תשובה: לא. 13

  14. התנגשות טוקן/אנטי-טוקן שאלה:כיצד תתבצע התנגשות של טוקן ואנטי-טוקן? (רמז: המבנה שלנו נקרא (elimination tree תשובה:כתוצאה מהתנגשות בין טוקן לאנטי-טוקן ניתן להחזיר את ערך הטוקן. הטוקנים ישלימו את פעולתם מבלי שיצטרכו להמשיך לחצות את העץ. num 14

  15. Elimination Balancer properties המאזן חייב לקיים 3 תכונות: Quiescence- לאחר שהמאזן קיבל כקלט מספר סופי של טוקנים ואנטי-טוקנים, הוא יגיע למצב שבו כל החציות של הטוקנים והאנטי-טוקנים הושלמו והוא נמצא במצב מנוחה. Pairing- בכל מצב מנוחה, יש התאמה מושלמת בין טוקנים שחוסלו לאנטי-טוקנים שחוסלו, כך שהערך המוחזר ע"י אנטי-טוקן שחוסל תואם לערך המוחזק ע"י הטוקן שחוסל המתאים לו. Pool Balancing – בכל מצב מנוחה, אם מספר הטוקנים שהתקבלו עד כה גדול או שווה למספר האנטי-טוקנים שהתקבלו עד כה, אז לכל אחד מקווי הפלט בעץ, מספר הטוקנים גדול או שווה למספר האנטי-הטוקנים. 15

  16. Elimination Balancer טוקנים ואנטי-טוקנים שמחזיקים בערכים מגיעים לקו הקלט של המאזן, ומנותבים כפלט בקווי הפלט שלו. בכל פעם שטוקן פוגש באנטי-טוקן במאזן, הוא מעביר את הערך לאנטי-טוקן ושניהם מחוסלים ולא יוצאים כפלט מהמאזן. באופן פורמאלי: מאזן הוא אובייקט משותף המאפשר למעבדים לבצע פעולות TokenTraverse(TokenType, v) המקבלות כקלט את סוג הטוקן ואת ערך הקלט שלו v. כל פעולה כזו מחזירה 0 או 1, תלוי באיזה מקווי הפלט, y0 או y1 הטוקן צריך להמשיך או את הזוג (eliminated, v) אם אירעה התנגשות מחסלת. 16

  17. תוכן עניינים הקדמה Elimination Tree מימוש Pool מימוש Stack-like Pool סיכום

  18. Tree Traversal code

  19. TokenTraversel code

  20. TokenTraversel code (cont) ,<b, mytype, value>, • שאלה: האם חסר משהו בקוד? • תשובה: כן! ערכי קלט וקוד עבור החלפת הערכים בין טוקן לאנטי-טוקן בהתנגשויות מחסלות.

  21. TokenTraversel code ,<b, mytype, value>, ,<b, mytype, value>, ,<b, his_type, value>, ,<his_b, his_type, value>, ,<b, his_type, value>, ,<b, mytype, value>, <0, ELIMINATED, value> value ,<b, mytype, value>, <0, ELIMINATED, value>

  22. ביצועי ה-pool 22

  23. תוכן עניינים הקדמה Elimination Tree מימוש Pool מימוש Stack-like Pool סיכום

  24. Pool vs. Stack-like Pool נתאים את המימוש ל-pool כדי לקבל התנהגות של מחסנית. כלומר, שמירה על סדר LIFO כך שהפעולה האחרונה שנכנסה לעץ היא הראשונה שתבוצע עליה פעולת אנטי-טוקן ע"י אחד המעבדים. שאלה: איזו תועלת יכולה להיות בשמירה על סדר LIFO? תשובה: למנוע ממעבדים לנסות להוציא ולבצע משימה אשר תלויה בתוצאות של משימות אחרות שטרם בוצעו. 0 1 0 1 0 1 0 1 0 1 0 1 24

  25. שאלה: נרצה להשיג התנהגות של מחסנית, כלומר פעולת אנטי-טוקן תישלח לביצוע למעבד שאליו נשלחה פעולת הטוקן האחרונה. איך נגדיר את המאזן? תשובה: המאזן יכול להיות מורכב מביט בודד, עם החוק שטוקנים הופכים את הביט והולכים לקו הפלט 0 או 1 בהתאם לערך הישן שלו, בעוד שאנטי-טוקנים הופכים את הביט והולכים שמאלה או ימינה בהתאם לערך החדש שלו. 1 0 1 0 1 0 25

  26. Gap Elimination Balancer אלמנט בעל קו קלט אחד x ושני קווי פלט yo ו-y1. טוקנים ואנטי-טוקנים שמחזיקים בערכים מגיעים לקו הקלט של המאזן, ומנותבים כפלט בקווי הפלט שלו. בכל פעם שטוקן פוגש באנטי-טוקן במאזן, הוא מעביר את הערך לאנטי-טוקן ושניהם מחוסלים ולא יוצאים כפלט מהמאזן. באופן פורמאלי: מאזן הוא אובייקט משותף המאפשר למעבדים לבצע פעולות TokenTraverse(TokenType, v) המקבלות כקלט את סוג הטוקן ואת ערך הקלט שלו v. כל פעולה כזו מחזירה 0 או 1, תלוי באיזה מקווי הפלט, y0 או y1 הטוקן צריך להמשיך או את הזוג (eliminated, v) אם אירעה התנגשות מחסלת. 26

  27. Elimination Balancer properties המאזן חייב לקיים 3 תכונות: Quiescence- לאחר שהמאזן קיבל כקלט מספר סופי של טוקנים ואנטי-טוקנים, הוא יגיע למצב שבו כל החציות של הטוקנים והאנטי-טוקנים הושלמו והוא נמצא במצב מנוחה. Pairing- בכל מצב מנוחה, יש התאמה מושלמת בין טוקנים שחוסלו לאנטי-טוקנים שחוסלו, כך שהערך המוחזר ע"י אנטי-טוקן שחוסל תואם לערך המוחזק ע"י הטוקן שחוסל המתאים לו. Gap Step Property -מאזן את ההפרש בין מספר הטוקנים והאנטי-טוקנים בקווי הפלט שלו. 27

  28. Gap Step Property עודף הטוקנים על פני אנטי-טוקנים על קווי הפלט של המאזנים מחולק כך שיש פער של לא יותר מטוקן אחד על קו 0 בהשוואה לקו 1 בכל מצב מנוחה. שאלה: האם נשמרת התכונה pool balancing property? (תזכורת: בכל מצב מנוחה, אם מספר הטוקנים שהתקבלו עד כה גדול או שווה למספר האנטי-טוקנים שהתקבלו עד כה, אז לכל אחד מקווי הפלט בעץ, מספר הטוקנים גדול או שווה למספר האנטי-הטוקנים). תשובה: ה-gap step property מביאה לקיום התכונהpool balancing property על קווי הפלט של המאזנים. 28

  29. TokenTraversel codewith gap balancer

  30. ביצועי ה-Stack-likepool 30

  31. (כמעט) ליניאריזביליות • נגדיר פעולה שאינה ליניאריזבילית כפעולת הוצאה מהסוגe(x)->e(y)->d(x) בלי d(y) או ש- e(x)->e(y)->d(x)->d(y). • ה-stack-like pool היא כמעט ליניאריזבילית: • במקרים של תזמונים מאוד קיצוניים שחלק מהתהליכים איטיים ואחרים מהירים ואז תופר הליניאריזביליות. • בהתנהגות שכיחה בה הפעולות מתבצעות פחות או יותר באותה מהירות, הליניאריזביליות תישמר. סיימתי לאכול ולמחזר! עדיין אוכל... סיימתי לאכול ולמחזר! 31

  32. תוכן עניינים הקדמה Elimination Tree מימוש Pool מימוש Stack-like Pool סיכום

  33. הכרנו מבנה נתונים מקבילי חדש Elimination tree. המבנה מתבסס עלdiffracting tree ומגדיר מושג חדש:אנטי-טוקנים. המפתח להצלחה של מבנה זה הוא האבחנה שעבור מבני נתונים שיש להם פעולות משלימות ניתן להרוויח זמן יקר בביצוע ע"י החזקת מנסרה אחת עבור טוקנים ואנטי-טוקנים. טוקן ואנטי-טוקן לבצע פעולה של התנגשות מחסלת וחוסכים את הצורך להגיע לעלים. השתמשנו ברעיון של עץ אלימינציה על מנת לבנות pool ו-stack-like pool. 33

More Related