ישן

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

done

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

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

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