|
||||
|
||||
יחידת flop היא floating point operation כאשר מאפיינים קצב עבודה של מחשב ב MHz האינדיקציה היא למהירות השעון שלו. השעון הזה מסנכרן את הפעולות הבסיסיות ביותר של המחשב. פעולת חישוב מתבצעת ב 4 מחזורים כאילו (קריאת הפקודה, הבאת הנתונים, חישוב, הצבת התוצאה) כלומר מחשב של 800 MHz ייתן ביצועים של 200 Mflops קיימת טכנולוגיה בשם pipelining שמבצעת במקביל פעולות בסיסיות של פקודות שונות אבל עד כמה שידוע לי התמיכה של מחשבים אישיים בטכנולוגיה הזו היא מאוד עלובה (אולי בפנטיום 4 או 5). כלומר בשיא הביצועים מחשב ביתי ייתן 200 Mflops. ריבוי מעבדים דומה במידה מסוימת לעבודה בצוות. כאשר יש הנהגה נכונה (מע' הפעלה) וחלוקת עבודה טובה (אלגוריתם חישוב מקבילי מתאים לבעיה) ניתן לפתור בעיה בצורה הרבה יותר טובה מאשר בצורה טורית. במקרים מסוימים ריבוי מעבדים יאט את קצב העבודה. כאש מדובר בבעיה טורית קל יותר יהיה לכבות את רוב המעבדים ולתת לאחד לבצע את רוב העבודה (למשל בעיה מסוג של ספירה. כל איטרציה דורשת תוצאה של חישוב קודם וזהו אם יש יותר מידי מעבדים מערכת ההפעלה וההגנות שהיא מפעילה רק יעקבו את החישוב). בעיות גדולות (כמו ממוצע) ניתן לחלק לבעיות קטנות ולשפר את הזמן הכולל לפתרון אבל מכיוון שבחלוקה אנחנו מוסיפים חשובים (איסוף התוצאות חיבורם וחלוקה מחדש) אנחנו פוגעים בתפוקה בעיה כזו שמחולקת ל 10 מעבדים תיקח יותר מעשירית הזמן שהיה לוקח לפתור אותה במעבד אחד. דוגמא לבעיה בעלת אופי מקבילי. נניח שהבעיה שלנו היא 100 חלקיקים שיושבים במיכל. לגבי כל אחד צריך לחשב את השקול הכוחות בין כל חלקיק לחלקיק. כלומר נחזיק בזיכרון מבנה נתונים שיתאר את מצבי כל החלקיקים (מסה, מהירות מטען וכו') בכל איטרציה עוברים על המבנה ומחשבים את המצב הבא של כל חלקיק (כלומר 10000 פעולות חישוב). בצורה כזו ניתן להקטין את זמן העיבוד פי מספר המעבדים במחשב על (כל מעבד מחשב בנפרד עבור כל חלקיק ובסוף מעדכן את המבנה נתונים). לכאורה מדובר בבעיה פתירה גם במחשב רגיל, במקום יום שלם, המחשב ירוץ עשרה ימים ונקבל פתרון אבל בפועל זה לא עובד (מתי בפעם האחרנה ראית מחשב טוחן יותר מחצי שעה בלי להיתקע?). בעבודה עם רשת מחשבים אין טעם בכלל לנסות לפתור בעיה כזו מכיוון שבסוף כל איטרציה נצטרך לעדכן כל אחד מהמחשבים במצב של כל אחד מהחלקיקים כך שמאמצי התקשורת ייקחו הרבה יותר זמן מהחישובים. ועכשיו השוס אין לי שום מושג בחישוב מקבילי. מה שתיארתי כאן הוא לא חישוב מקבילי אלא האלגוריתם הכי טרויאני לבעיה לא מאוד מסובכת (שבטח פותרים כמה כמוה בזמן תכנון פצצת נויטרון). אלגוריתמים מתקדמים יותר יפתרו את הבעיה הזו הרבה יותר מהר (אני מתכוון אקספוננציאלית אני לא מכיר אותם אבל אני מכיר אנשים שעשו על אלגוריתמים כאלו תזות של תואר שני ככה שיש בשר בעניין אם נדבר שוב בעוד שנה או שנתיים אני אדע יותר ואולי אוכל לתאר לך אחד כזה). בכל אופן אני מאוד שמח שצריך לעשות יותר מממוצע של הרבה מספרים כדי ליצר פצצות. האתר של חברת קריי הוא http://www.cray.com/ הרצתי בו חיפוש על המילה history והגעתי למאמר המדובר. |
חזרה לעמוד הראשי | המאמר המלא |
מערכת האייל הקורא אינה אחראית לתוכן תגובות שנכתבו בידי קוראים | |
RSS מאמרים | כתבו למערכת | אודות האתר | טרם התעדכנת | ארכיון | חיפוש | עזרה | תנאי שימוש | © כל הזכויות שמורות |