למה בכלל להשקיע באלגוריתמים יעילים, אם אפשר פשוט לקנות מעבד חזק יותר? אם קראתם את הפוסט הקודם, אתם יודעים שהמעבדים היום כל כך מהירים שהכפל מהיר יותר מהחיבור! למי שלא מכיר, 'חוק' מור שכתב אחד ממייסדי אינטל ב1965 הוא מעין תחזית שאומרת שעוצמת המעבדים יוכפל כל שנה וחצי/שנתיים, בנתיים התחזית עומדת די יפה וחברות המעבדים מוציאים כל הזמן מעבדים שחזקים יותר עד פי שניים מהמעבדים הקודמים. אם כך, אם בסופו של דבר כל הבעיות יהיו פתירות במחשבים סופר מהירים, אז למה להשקיע בקוד יעיל? אבל למעשה חוק מור אומר הפוך. כשהמחשבים נהיו מהירים יותר, זה אומר שהבעיות נהיו גדולות ומורכבות יותר, שהשאיפות החישוביות שלנו גדלו יותר, ואנו מתמקדים בבעיות קשות יותר ויותר. במילים אחרות, עוצמת המיחשוב שיש בכל דור משקף למעשה את הבעיות החישוביות שלנו. חישבו על תכנית החלל אפולו, לפני עשרות שנים, הקוד שלו (ידעתם שהוא שוחרר וזמין ברשת?) רץ על מעבד שיש היום בכל טלפון פשוט, היום העולם עוסק בבינה מלאכותית, שדורש חוות שרתים מתקדמת שלמה כדי להריץ מודלים מתוחכמים. ככל שהמעבדים משתכללים יותר, זה אומר שיש לנו בעיות קשות יותר לחשב ולפתור. לא שהבעיות שלנו נשארו אותו דבר והמעבדים פשוט השתכללו. האתגרים שלנו הם אלו שנהיו יותר קשים... לכן חשוב להכיר אלגוריתמים שונים ולכתוב קוד יעיל, וכך לנסות 'לשמור' על היחס בין מורכבות האתגר מול עוצמת המעבד, יחס שנשאר אותו דבר עשרות שנים אם לא ביחס הפוך (שהבעיות גדלות יותר מהר מהתקדמות המחשבים). מה אתם חושבים? המעבדים יצליחו להדביק את מורכבות הבעיות החישוביות שלנו? בתמונה, מחשב מ1982 ואייפון מ2007 #algorithm #ai #code #Moore
אפרופו המעבד של אפולו, אחד הדברים שממש הצחיקו אותי זה ששמעתי פעם שקאנדי קראש צריך מעבד יותר חזק מהמעבד של שלה Shlomo Zalman Weisman ואגב המחשב הזה נראה ממש חמוד!
היתה חברה אחת שעבדתי בה שזה באמת היה הרעיון: העיקר תביא רעיון שעובד כמה שיותר מהר אפשר תמיד להביא מעבד חזק יותר אבל כבר זיהיתי את המקומות שבהם זה התחיל להשפיע, לא משנה כמה חזק המעבד שלך אם אתה צריך לעבור על כל הדטא כמה פעמים בשביל להציג טבלה
נצטרך להיות יעילים ולעבוד כדי לייצר מחשב שיעזור לנו לעבוד ולייצר מחשב וכו'.
אין ספק שגם תוכנות נהיות חזירות יותר במשאבים מתכנתים מרשים לעצמם לא להתחשב מדיי במעבד והזיכרון וככה העולם מדרדר לאבדון מוחלט עד שנחזור לחשבוניות עם חרוזים מעץ ולנעליים מעור אלפקה
Software and web developer | A volunteer developer on Facts-Commando | programming mentor | Code is my favorite music
7moמעבר לזה, יש רמות שונות של (חוסר-)יעילות. אם הלולאה שלך רצה פעמיים או שלוש כשהיה אפשר שהיא תרוץ פעם אחת במחיר של קוד פחות קריא - הייעול באמת לא שווה את זה במחשבים של היום. אבל אם אתה מריץ לולאה בתוך לולאה על קלטים שאינם מוגבלים למספרים קטנים - זה כבר יכול ממש להאט את התוכנה ושום מעבד מהיר לא יפתור את זה.