כן הקוד תקין, (נניח שיש שני תהליכונים) נשים לב עבור העדכון של e יש לנו שני תהליכונים שרצים עליו, אז תהליכון ראשון רץ על עדכון c והשני על עדכון d. יש לנו nowait אז נגיד השני סיים לפני הראשון אז הוא עושה את e ואין לו את כל c עדיין אז זה לא נורא כי אחרי שהתהליך הראשון יסיים את c הוא יעשה את e (כשיש לנו את d) ואז יעדכן כמו שצריך לערכים הנכונים.
ניתן להאיץ את הקוד מפני שהריצות לא תלויות אז אפשר לחלק כל לולאה "עד N" מעבדים. אפשר להוסיף barrier בסוף הsections כדי שהעדכון של e יתבצע על ידי תהליך יחיד
מיין לפי
אייל יקיר0 נקודות ·
יותר מ-6 חודשים
( תגובות)
מוניטין: 60
כן הקוד תקין, (נניח שיש שני תהליכונים) נשים לב עבור העדכון של e יש לנו שני תהליכונים שרצים עליו, אז תהליכון ראשון רץ על עדכון c והשני על עדכון d. יש לנו nowait אז נגיד השני סיים לפני הראשון אז הוא עושה את e ואין לו את כל c עדיין אז זה לא נורא כי אחרי שהתהליך הראשון יסיים את c הוא יעשה את e (כשיש לנו את d) ואז יעדכן כמו שצריך לערכים הנכונים. ניתן להאיץ את הקוד מפני שהריצות לא תלויות אז אפשר לחלק כל לולאה "עד N" מעבדים. אפשר להוסיף barrier בסוף הsections כדי שהעדכון של e יתבצע על ידי תהליך יחיד