חשמל ומחשבים עיבוד מקבלי

לחץ כאן לכל השאלות

האם התוכנית רצה? ואם כן מה היא עושה

1
done
כל מעבד ידפיס הודעת hello world from #rank כאשר rank יהיה הrank בהתאם למעבד שמדפיס. היא מבצעת זאת בכך שמעבד 0 שולח את ההודעה (יש בעיה הטיפוס הוא לא int אלא אמור להיות MPI_CHAR, לא יודע אם זה בעיה בשחזור של הקוד). אז מעבד 0 שולח את ההודעה לכל המעבדים האחרים שיש בקומינקטור בעזרת לולאת פור. ואז שאר המעבדים יכנסו לפקודת הrecv ויקבלו את ההודעה. גודל הבאפר גדול מההודעה עצמה לכן זה עדיין יעבוד אבל יש פה בזבוז זיכרון. הtag בשניהם זהה (שליחה וקבלה) לכן אין פה בעיה. איך ניתן לפשט? – לבצע פקודת bcast ממעבד 0 שישלח את ההודעה לכולם במקום להשתמש בsend, recv.
by
מיין לפי
by אייל יקיר
אייל יקיר 0 נקודות · יותר מ-6 חודשים
מוניטין: 60
כל מעבד ידפיס הודעת hello world from #rank כאשר rank יהיה הrank בהתאם למעבד שמדפיס. היא מבצעת זאת בכך שמעבד 0 שולח את ההודעה (יש בעיה הטיפוס הוא לא int אלא אמור להיות MPI_CHAR, לא יודע אם זה בעיה בשחזור של הקוד). אז מעבד 0 שולח את ההודעה לכל המעבדים האחרים שיש בקומינקטור בעזרת לולאת פור. ואז שאר המעבדים יכנסו לפקודת הrecv ויקבלו את ההודעה. גודל הבאפר גדול מההודעה עצמה לכן זה עדיין יעבוד אבל יש פה בזבוז זיכרון. הtag בשניהם זהה (שליחה וקבלה) לכן אין פה בעיה. איך ניתן לפשט? – לבצע פקודת bcast ממעבד 0 שישלח את ההודעה לכולם במקום להשתמש בsend, recv.
by

* השאלה נוספה בתאריך: 15-07-2023