כן, כל מעבד ידפיס את הrank שלו וידפיס שה-root שלו הוא 3, מפני שכל המעבדים נכנסים ללולאת while ומבצעים bcast 4 פעמים של root כלומר root יקודם ל-3 (מתחיל ממינוס 1)
מיין לפי
אייל יקיר0 נקודות ·
יותר מ-6 חודשים
( תגובות)
מוניטין: 60
כן, כל מעבד ידפיס את הrank שלו וידפיס שה-root שלו הוא 3, מפני שכל המעבדים נכנסים ללולאת while ומבצעים bcast 4 פעמים של root כלומר root יקודם ל-3 (מתחיל ממינוס 1)
הקוד תקין אבל לא אופטימלי,
יש false sharing. כל thread מנסה לעדכן ערכים שונים של sum_local אבל הערכים האלו נמצאו באותו בלוק
.atomicבמקום ב reductionכדי לתקן אפשר להשתמש ב .cache
.Reduction(+:sum)
מיין לפי
אייל יקיר0 נקודות ·
יותר מ-6 חודשים
( תגובות)
מוניטין: 60
הקוד תקין אבל לא אופטימלי, יש false sharing. כל thread מנסה לעדכן ערכים שונים של sum_local אבל הערכים האלו נמצאו באותו בלוק .atomicבמקום ב reductionכדי לתקן אפשר להשתמש ב .cache .Reduction(+:sum)
ב. התוכנית תייצר באג מאחר והמשתנה x_y אינו מוגדר כ-shared
ג. התוכנית תייצר באג מאחר והמשתנה x_y אינו מוגדר כ-private
ד. התוכנית תייצר באג מאחר והשורה: ]x_y=x_y+x[i]*y[i אינה מוגדרת כקריטית
ה. התוכנית תקינה כל עוד n הוא כפולה שלמה של מספר התהליכונים
א. תוכנית זו אינה ניתנת למיקבול בגלל השימוש במספרים אקראיים
ב. תוכנית זו עושה שימוש במספרים אקראיים ולכן ניתן לשייכה למשפחת חישובי מונטה קרלו
ג. ניתן לכנות תוכנית מקבילית מסוג זה כ- Embarrassingly Parallel
ד. התוכנית מבצעת למעשה אינטגרציה
ה. בכדי שהתוכנית תחשב אומדן ל-pi על המשתנים random1, random2 להיות אקראיים לפי כל התפלגות שהיא (לאו דווקא אחידה)
ו. בכדי לקבל תוצאה נכונה נדרש seed בלתי תלוי לכל תהליך