Discuss, Learn and be Happy דיון בשאלות

help brightness_4 brightness_7 format_textdirection_r_to_l format_textdirection_l_to_r

הסבר בקצרה כל אחת מהפקודות הבאות: התייחס לקלט הנדרש והפלא המתקבל לאחר ביצוען: א. MPI_Comm_size(Comm,rank) ב. MPI_Bcast(buf,count,datatype,root,comm) ג. MPI_IRecv(buf,count,datatype,source,tag,comm,request) ד. MPI_Allgather(sendbuf,sendcount,sendtype,recvbuf,recvcount,recvtype,comm) ה. MPI_Reduce(sendbuf,recvbuf,count,datatype,op,root,comm) ו. MPI_Scatter(sendbuf, sendcnt, sendtype, recvbuf, recvcnt, recvtype, root, comm) ז. MPI_AlltoAll(sendbuf, sendcnt, sendtype, recvbuf, recvcnt, recvtype, comm) ח. MPI_Init(&argc,&argv)

1
done
מקבל משתנה rank ואת Communicator( Comm) ומכניס למשתנה rank את מספר התהליכים שמשתתפים בחישוב. משתנה Communicator מייצג קבוצה של תהליכים והאופי בו הם מחוברים. MPI_Bcast(buf,count,datatype,root,comm) 3.13.2 שולח הודעה אחידה מהתהליך הראשי לכל שאר התהליכים בקבוצה (כולל עצמו). הודעה אחידה נמצאת בקלט buf, מועבר ממשתנה root אל שאר המעבדים ב-Comm. סוג המשתנה ששולחים או מקבלים הוא מסוג datatype וכמות המידע היא במשתנה count MPI_IRecv(buf,count,datatype,source,tag,comm,request) פקודת לא חוסמת של קבלה של הודעה. מזהה אזור בזיכרון שישמש כבאפר, התהליך ממשיך מיד מבלי לחכות שההודעה תתקבל ותועתק ל-Count .buf – כמות המידע, datatype סוג המידע שמתקבל, source – המקור ממנו מקבלים את המידע, id – tag להודעה, משמש כדי להבדיל בין הודעות שונות שנשלחות, request – מיועד לפעולות wait/test. MPI_Allgather(sendbuf,sendcount,sendtype,recvbuf,recvcount,recvtype,comm) פקודת העברת נתונים, אוספת תוצאות מכל המעבדים ואת התוצאה שולחת לכל המעבדים בקבוצה. Sendbuf – הבאפר של המעבד הראשי. Sendcount – כמות המידע. Sendtype – סוג הטיפוס של המידע שנשלח. Recvbuf – הבאפר של המקבלים. Recvcount - כמות המידע של המקבלים. Recvtype – סוג טיפוס של המידע למקבלים. Comm – מקשר MPI_Reduce(sendbuf,recvbuf,count,datatype,op,root,comm) פקודת חישוב קולקטיבית, אוספת ערכים מכל המעבדים למעבד "ראשי" שמוגדר בroot בתוספת פקודה שמבצעים על הערכים שנאספו (כמו חיבור, חיסור, פעולות לוגיות וכו') Sendbuf – הבאפר של השולח, recvbuf – באפר המקבל, count – מספר הערכים, datatype – סוג הטיפוס של המידע, opcode – op, סוג הפקודה, root – המקור, מי שאוסף את המידע, comm – מקשר MPI_Scatter(sendbuf, sendcnt, sendtype, recvbuf, recvcnt, recvtype, root, comm) פקודה השולחת הודעות נבדלות אחת מהשנייה ממקור מסוים לכל שאר התהליכים בקבוצה, מבצעת סוג של פיצול המידע לשאר המעבדים, MPI_AlltoAll(sendbuf, sendcnt, sendtype, recvbuf, recvcnt, recvtype, comm) כל תהליך בקבוצה מבצע שליחה של נתונים שונים לתהליכים שונים. הפקודה מבצעת transpose על המטריצה שמורכבת מהווקטורים שבתוך כלל התהליכים MPI_Init(&argc,&argv) מאתחלת את סביבת עבודת ה-MPI, חייבת להיות בכל תוכנית MPI בהתחלה לפני ביצוע פונקציית MPI אחרת כלשהי, מופיעה פעם אחת. Argc – פוינטר למספר הארגומנטים, argv – פוינטר לווקטור הארגומנט
by
מיין לפי
by אייל יקיר
אייל יקיר 0 נקודות · יותר מ-6 חודשים
מוניטין: 60
מקבל משתנה rank ואת Communicator( Comm) ומכניס למשתנה rank את מספר התהליכים שמשתתפים בחישוב. משתנה Communicator מייצג קבוצה של תהליכים והאופי בו הם מחוברים. MPI_Bcast(buf,count,datatype,root,comm) 3.13.2 שולח הודעה אחידה מהתהליך הראשי לכל שאר התהליכים בקבוצה (כולל עצמו). הודעה אחידה נמצאת בקלט buf, מועבר ממשתנה root אל שאר המעבדים ב-Comm. סוג המשתנה ששולחים או מקבלים הוא מסוג datatype וכמות המידע היא במשתנה count MPI_IRecv(buf,count,datatype,source,tag,comm,request) פקודת לא חוסמת של קבלה של הודעה. מזהה אזור בזיכרון שישמש כבאפר, התהליך ממשיך מיד מבלי לחכות שההודעה תתקבל ותועתק ל-Count .buf – כמות המידע, datatype סוג המידע שמתקבל, source – המקור ממנו מקבלים את המידע, id – tag להודעה, משמש כדי להבדיל בין הודעות שונות שנשלחות, request – מיועד לפעולות wait/test. MPI_Allgather(sendbuf,sendcount,sendtype,recvbuf,recvcount,recvtype,comm) פקודת העברת נתונים, אוספת תוצאות מכל המעבדים ואת התוצאה שולחת לכל המעבדים בקבוצה. Sendbuf – הבאפר של המעבד הראשי. Sendcount – כמות המידע. Sendtype – סוג הטיפוס של המידע שנשלח. Recvbuf – הבאפר של המקבלים. Recvcount - כמות המידע של המקבלים. Recvtype – סוג טיפוס של המידע למקבלים. Comm – מקשר MPI_Reduce(sendbuf,recvbuf,count,datatype,op,root,comm) פקודת חישוב קולקטיבית, אוספת ערכים מכל המעבדים למעבד "ראשי" שמוגדר בroot בתוספת פקודה שמבצעים על הערכים שנאספו (כמו חיבור, חיסור, פעולות לוגיות וכו') Sendbuf – הבאפר של השולח, recvbuf – באפר המקבל, count – מספר הערכים, datatype – סוג הטיפוס של המידע, opcode – op, סוג הפקודה, root – המקור, מי שאוסף את המידע, comm – מקשר MPI_Scatter(sendbuf, sendcnt, sendtype, recvbuf, recvcnt, recvtype, root, comm) פקודה השולחת הודעות נבדלות אחת מהשנייה ממקור מסוים לכל שאר התהליכים בקבוצה, מבצעת סוג של פיצול המידע לשאר המעבדים, MPI_AlltoAll(sendbuf, sendcnt, sendtype, recvbuf, recvcnt, recvtype, comm) כל תהליך בקבוצה מבצע שליחה של נתונים שונים לתהליכים שונים. הפקודה מבצעת transpose על המטריצה שמורכבת מהווקטורים שבתוך כלל התהליכים MPI_Init(&argc,&argv) מאתחלת את סביבת עבודת ה-MPI, חייבת להיות בכל תוכנית MPI בהתחלה לפני ביצוע פונקציית MPI אחרת כלשהי, מופיעה פעם אחת. Argc – פוינטר למספר הארגומנטים, argv – פוינטר לווקטור הארגומנט
by

מערכת מרובת מעבדים, כוח חישוב השיאי (peak) הוא 100GFLOPS. קוד סיריאלי מבוצע בקצב של 1GFLOPS. מהי ההאצה (speedup) כאשר 10% מהקוד הוא סיריאלי ו-90% מהקוד ניתנים למיקבול מושלם? כתוב נוסחה לפתרון ואת התוצאה:

1
done
התשובה היא 9.17
by
מיין לפי
by אייל יקיר
אייל יקיר 0 נקודות · יותר מ-6 חודשים
מוניטין: 60
התשובה היא 9.17
by

הגדר מה הוא רוחב חציה (bisection width) ברשת תקשורת

1
done
מספר הקשרים (לינקים) שצריך לחתוך כדי לחלק את המערכת לשני חלקים שווים
by
מיין לפי
by אייל יקיר
אייל יקיר 0 נקודות · יותר מ-6 חודשים
מוניטין: 60
מספר הקשרים (לינקים) שצריך לחתוך כדי לחלק את המערכת לשני חלקים שווים
by

נתון רשת תקשורת בקצב 100 ג'יגה ביט לשנייה וזמן שהות של 10 מיקרו שניות. חשב כמה זמן לוקח לצומת לבצע החלפת מידע ( Exchange) באמצעות תקשורת בינו לבין ארבעת שכניו הקרובים, בדומה לאיטרציות ג'קובי שנלמדו בכיתה. הנח גודל מסר הוא 8 בייט. ראה תרשים

1
mood
תשובה יא 80 מיקרו
by
מיין לפי
by אייל יקיר
אייל יקיר 0 נקודות · יותר מ-6 חודשים
מוניטין: 60
תשובה יא 80 מיקרו
by

חוק אמדהל נותן אומדן להאצה, מהי ההאצה לפי חוק אמדהל ולפי התרשים? מהו ? אין סוף , ומהו ה-Parallelism?

1
done
תשובה היא 1/6 9 2
by
מיין לפי
by אייל יקיר
אייל יקיר 0 נקודות · יותר מ-6 חודשים
מוניטין: 60
תשובה היא 1/6 9 2
by

3.19 מהו ה-diameter ברשת תקשורת?

1
done
by
מיין לפי
by Omer Pilosof
Omer Pilosof 0 נקודות · יותר מ-6 חודשים
מוניטין: 2
זה לא המסלול הכי קצר של שני הצמתים הכי מרוחקים
by

מה מטרת קובץ הmachine file בשימוש MPI? מה ההבדל בין לרוץ איתו בלעדיו?

1
done
קובץ שמכיל את שמות המכשירים עליהם נריץ את התוכנית, אם לא מציינים אותו התוכנית תרוץ במחשב הלוקלי
by
מיין לפי
by אייל יקיר
אייל יקיר 0 נקודות · יותר מ-6 חודשים
מוניטין: 60
קובץ שמכיל את שמות המכשירים עליהם נריץ את התוכנית, אם לא מציינים אותו התוכנית תרוץ במחשב הלוקלי
by

3.73 השתמשו בחוק אמדהל וחשבו האצה בשביל תוכנית אשר 85% ממנה ניתן לווקטוריזציה עבור מערכת עם 4,8,16,32 מעבדים. סעיף הבא: מה יכול להילקח כמספר סביר של מעבדים כדי לבנות מערכת מחשב אופטימלית עבור אותה תוכנית )נגדיר אופטימלי בתור מערכת מחשב המשיגה 85% מההאצה השיאית התיאורטית (

1
done
ואז עבור ההאצה: ??=??/?? ??4=???4=??0.3625??=2.758 ההאצה השיאית התיאורטית היא 1? כלומר ?????=10.15=6.67 ??=??(?−1)+1=?0.15?+0.85=6.67∙0.85⏟ ???????? ?????????=5.6695 ?=0.85?+4.819→?=32.127→???? 32 ??????????
by
מיין לפי

3.72 שינוי לולאה בקוד לשתי לולאת בשיטת האריח ) tiling ( נועד לסייע למיקבול על יד י שיפור ה- multi-threading או הווקטוריזציה?

1
done
הווקטוריזציה
by
מיין לפי

שאלה בגוף התמונה

1
done
החץ הימני מציין Parallelism (כמה מעבדים צריך, כמה עבודה עודפת יש לנו מעבר לנתיב הקריטי) והחץ השמאלי מציין את הspeedup הלינארי(חסם עליון לינארי להאצה) (הכחול בפנים זה התחום בו נוכל לקבל את ערכי ההאצה הראויים שלנו כתלות בחלקי הקוד הניתנים למיקבול)
by
מיין לפי
by אייל יקיר
אייל יקיר 0 נקודות · יותר מ-6 חודשים
מוניטין: 60
החץ הימני מציין Parallelism (כמה מעבדים צריך, כמה עבודה עודפת יש לנו מעבר לנתיב הקריטי) והחץ השמאלי מציין את הspeedup הלינארי(חסם עליון לינארי להאצה) (הכחול בפנים זה התחום בו נוכל לקבל את ערכי ההאצה הראויים שלנו כתלות בחלקי הקוד הניתנים למיקבול)
by