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