תיבת הפנדורה של מפתחי התוכנה

לחוקרי מחשבים יש שאיפה גדולה: לבנות מחשב בהשראת רשתות ביולוגיות של המוח האנושי. אבל האם המוח האנושי כבר מסוגל לדמיין מחשב כזה?
X זמן קריאה משוער: 9 דקות

פיטר בנטלי הוא אופטימיסט. במשרד שמשקיף על גגות יוניברסיטי קולג' בלונדון, הוא מתכנת מחשב שלא מסוגל להריץ שום תוכנה קיימת. נכון לעכשיו, הוא בקושי מסתדר עם פעולות חשבון פשוטות. אבל בנטלי חושב שהמכונה שלו – או אחרות כמוה – תוכל לרסק 70 שנות חוכמה מקובלת ולשנות את עתיד המחשוב.
המכונה של בנטלי נוצרה בהשראת רשתות ביולוגיות כמו המוח, שבהן מיליארדי תאי עצב מחווטים לאלפי תאי עצב אחרים. "בכל פעם שאתה תופס כדור, אתה עושה דבר שווה ערך לפתירת משוואות מסובכות מאוד במקביל," הוא אומר. השימוש בהרבה צמתים קטנים הפועלים בו-זמנית נראה כמו הדרך הטובה ביותר לבצע פעולות חישוביות – עוצמתית יותר, יעילה יותר ומהירה הרבה יותר. זה עובד בטבע, אז למה לא במחשב?

אנחנו עדיין רחוקים מאוד מהגשמת רעיון המוח המלאכותי, אבל אנחנו מתקדמים. עם כל דור חדש של שבבי מחשב, אנחנו מתכננים מחדש את אופן הרכבתם. במקום לעשות מעבדים מהירים יותר, יצרניות המחשבים שמות יותר מעבדים על שבב אחד. זה לא בדיוק מוח מלאכותי, אבל העיקרון דומה: יותר זה יותר טוב.

ייתכן שכבר יש לכם מחשב או סמארטפון מרובי ליבות עם כמה מעבדים שעובדים במקביל, אבל השאיפה האולטימטיבית היא לרתום יחד עשרות אלפי ואף מיליוני מעבדים. זה ייתן למחשבים שלנו יכולת לימוד וקבלת החלטות חסרת תקדים: מכוניות ללא נהג שמצוידות בשבבים כאלה, למשל, יוכלו להיות ערניות תמיד לסכנה, עם רפלקסים מהירים יותר מאלה שלנו. בטווח הארוך, משאבי מחשוב כאלה יוכלו לעזור לנו לדמות אירועים, כגון מערכות מזג אוויר או עימותים צבאיים, וככה נוכל לחזות את העתיד בפרטי פרטים.

סאטר חושב שעוד כמה שנים יהיה אפשר לכתוב קוד שירוץ על טלפונים, אך יפיק תועלת גם ממספר אינסופי של ליבות עם חיבור לאינטרנט

כדי להגיע למטרות האלה, נצטרך לבנות כלי תכנות חדשים לגמרי שמפיקים את המרב מהטכנולוגיה. בלעדיהם ידרדר תחום התוכנה לקיפאון ויסתבר לנו שהתכנון המחודש של השבבים היה לחינם. כאן נכנסים לתמונה אנשים כמו בנטלי שמתנתקים מיסודות המחשוב עם עיצובים רדיקליים שלא דומים בכלל לדברים שראינו עד היום.
כמעט כל המחשבים הקיימים כיום מסתמכים על העקרונות ששרבט לעצמו ג'ון פון נוימן בנסיעת רכבת בשנת 1945. הם נבנים מ"מתגים" חשמליים הידועים כטרנזיסטורים, שמעבדים נתונים על-ידי ויסות של הזרם החשמלי לפי פעולות לוגיות בסיסיות. בתחילה, טרנזיסטורים היו ברוחב של קצת יותר מסנטימטר, אבל במהרה הם התחילו להתכווץ בהתאם למגמה שהוגדרה לראשונה בשנת 1965 על-ידי גורדון מור – אחד ממייסדי יצרנית השבבים אינטל. חוק מור קובע שמספר הטרנזיסטורים שאפשר לדחוס לתוך גודל מסוים של מעגל, יוכפל מדי כשנתיים. גידול מעריכי כזה הוא עדיין כוח מניע בתעשיית המחשבים גם במאה העשרים ואחת. כיום יש לנו טרנזיסטורים ברוחב של עשרים ושניים ננומטר בלבד – ארבעת אלפים טרנזיסטורים, זה לצד זה, יגיעו לרוחב של שערה אנושית.

מותו של חוק מור

עוד טרנזיסטורים הובילו לשבבים מורכבים ומהירים יותר, עם מעבדים שביצעו הוראות יותר ויותר מהר. ולכן במשך זמן מה ניבא חוק מור גם את הגידול במהירות המעבדים. מספר ההוראות שמעבד מסוגל להתמודד איתן זינק ממאתיים אלף, בערך, במחשבים הביתיים הראשונים של שנות השמונים, למאה מיליארד במחשבים הניידים המודרניים.

אבל חוק מור הגיע לסוף ימיו. אף על פי שהטרנזיסטורים ממשיכים להתכווץ, השבבים החדשים נעשים כל כך מורכבים עד שהם מתקרבים לתקרת זכוכית: היכולת שלהם לפזר חום. "לשבבים האלה יש צלעות קירור ומאווררים וכל מיני דברים," אומר בנטלי. "אבל הם עדיין מתחממים כל כך עד שהם נמסים."

תשובתה של התעשייה היתה פשוטה. הכפלות. במקום להשתמש בפי שניים טרנזיסטורים כדי לבנות מעבדים מהירים יותר, היא שמה כמה מעבדים – או ליבות – על כל שבב. כל מעבד בפני עצמו לא היה מהיר יותר, ולכן הוא לא ייצר יותר חום, אבל המעבדים רצו במקביל וביצעו הוראות בכמה זרמים בבת אחת. חשבו על זה במונחים של "טובים השניים (ומעלה) מן האחד." עד לאחרונה, מקביליות כזאת נמצאה רק במחשבי-על, יחידות בודדות שנבנו ותוחזקו על-ידי מומחים כדי לעזור עם מטרות מדעיות נישתיות. אבל כיום תמצאו מחשבים רבים עם שמונה ליבות. אפילו סמארטפונים כוללים שני מעבדים או יותר, בשביל יישומים שתופרים יחד תמונות כדי לבנות נוף פנורמי, למשל.

אבל בשעה שהחשיבה המקבילית פתרה את בעיית התחממות היתר, המעבדים שנוצרו הפכו לתיבת הפנדורה של מפתחי התוכנה. הרבּ סאטר ממייקרוסופט, שיושב בעמק הסיליקון בקליפורניה, היה אחד הראשונים שזיהה את הסכנה. בשנת 2004 הוא כתב מאמר שנקרא The Free Lunch Is Over והיה קריאת השכמה למפתחים שקיוו לרכוב על גל החומרה המשתכללת.

הבעיה היא שרק סוגים מסוימים של תוכנות אפשר לפרק בקלות למשימות מקבילות. למשל, עיבוד תמונות וידאו, משום שכל ליבה עובדת על חלק מהפיקסלים. אבל רוב התוכנות נתקעות מהר מאוד בצווארי בקבוק כי הן משתפות נתונים בין הליבות. מלבד עיכובים ארוכים, התוכנה עלולה לקרוס אם שני שבבים מנסים לגשת לאותם נתונים בו-זמנית.

יתרה מזו, כמעט בלתי אפשרי לְדַבֵּג את הבעיות האלה כי הן כל כך בלתי צפויות – הבעיה עשוי להתגלות רק אחת לכל עשר הרצות. באג כזה שחומק מהעין כמעט חיסל את משימת "מארס פאת'פיינדר" בשנת 1997, זמן קצר אחרי שרכב החלל נחת. "הבעיה לא התעוררה בבדיקות שלפני הטיסה כי היא התעוררה רק בתרחישי עומס מסוימים שלא נצפו מראש," אומר פול קלי מאימפריאל קולג' לונדון.

ייתכן שיש דרכים לעקוף את הבעיות האלה. קלי, למשל, מחפש דרכים לנהל את הנתונים המשמשים לבניית מודל של דינמיקות מורכבות של נוזלים, כגון זרמי אוקיינוסים או זרימת אוויר מעל מכוניות מרוץ. ההדמיות האלה יוצרות בעיות ייחודיות כי הן כוללות נתונים שתלויים זה בזה – בדרך כלל חייבים לדעת מהי זרימת האוויר בנפח חלל מסוים כשרוצים לחשב את התנועות ביחידת הנפח הבאה. קלי עובד על טריקים שיאפשרו למתכנתים לזהות את ה"מִפְרָקים" שבמבנה הנתונים בכך שיחשפו את המקומות הטובים ביותר לחלק מידע בלי לפגוע בקשרים שבין הנתונים.

פתרונות חכמים כמו זה ייעשו יותר ויותר חיוניים ככל שהתוכניות לעיבוד מקבילי ייעשו יותר ויותר שאפתניות. התברר שעיבוד מרובה ליבות הוא רק הראשון מבין ארבעה סוגים נבדלים של מקביליות. החדשנות השנייה היא מקביליות וקטורית, שבה אפשר להריץ מקטעים קצרים של קוד מקביל – בדרך כלל פעולות חשבוניות מהירות – בליבה אחת. בשבבים מסוימים יש כעת ליבות מקבילות שמריצות מקטעי קוד במקביל; מקביליות בריבוע. ויש גם שבבים שמשלבים סוגים שונים של ליבות. סאטר קורא לזה מקביליות הטרוגנית. רוב הליבות הן ליבות כלליות שנועדו להריץ כל סוג של תוכנה. אבל ליבות מסוימות, כגון מעבדים גרפיים (GPU) מוכוונות לסוג מסוים של עבודת מחשוב. בתיאוריה, שבבים המשלבים ליבות שונות מספקות למתכנתים מבחר של משאבי מחשבו ומאפשרות להם לכוון כל חלק בתוכנה שלהם לרוץ על סוג הליבה שהכי מתאים לו.

כוח ענן

אבל ייתכן שמקור המקביליות האולטימטיבי יהיה הענן. סאטר חושב שעוד כמה שנים יהיה אפשר לכתוב קוד שירוץ על טלפונים, אך יפיק תועלת גם ממספר אינסופי של ליבות עם חיבור לאינטרנט. הקוד ישאב למעשה את כוחם של כמה מחשבים לתוך שבב יחיד אך מקבילי ביותר. "ייתכן שלכל מחשב כזה יהיו כמה ליבות הטרוגניות עם יחידות וקטוריות," אומר סאטר. "ויוכלו להיות לי גם עשרת אלפים כאלה." יכול להיות שבעוד כמה שנים מתכנתים יוכלו להריץ גם מיליון פעולות במקביל.

כל מהפכה תעשה למתכנתים כאבי ראש חדשים. דבר ראשון, כל סוג של מקביליות צריך לתכנת בצורה שונה. גם קידוד לענן טומן בחובו בעיות משלו, כמו עיכובים בזמני התגובה וליבות שנעלמות באמצע פעולה כשהחיבור קורס. מתכנתים יצטרכו גם לאחד את הפרוצדורות שלהם כדי לוודא שאותם סוגים של קוד יעבדו בכל סוגי המקביליות – בין שמדובר בריבוי ליבות ובין שמדובר בענן.
ככל שהבעיות מצטברות, אנשים מסוימים מתחילים להאמין שאנחנו בשלים לחולל מהפכה ביסודות המחשוב עצמם. "אם אנחנו הולכים להתחיל מאפס וליצור מחשב מקבילי, לא כדאי שנעשה את זה ככה," אומר בנטלי. הוא משווה את זה לניסיון לבנות רכבת מחלקים שנאספים מכלי רכב אחרים. יכול להיות שזה יעבוד, הוא אומר, "אבל אני מעדיף שתהיה לי רכבת שהייתה רכבת כבר מהתחלה."
עם החששות האלה, בנטלי נמצא בחברה טובה. נדמה שגם פון נוימן, לקראת סוף חייו, נטש את עבודתו פורצת הדרך על המחשב המקורי ופנה לחקור עיבוד מקבילי בהשראת המוח.

העיצובים של בנטלי נעשו גם הם בהשראת דינמיקות של המוח ומערכות ביולוגיות אחרות. אחד הרעיונות המרכזיים הוא להפריד את התקשורת ההדוקה שבין הליבות. במחשבים מקביליים קונבנציונאליים, הליבות מקבלות הוראות במהירות, בזו אחר זו, ולעתים נוצרים עיכובים כשהן ממתינות לנתונים. הליבות של בנטלי פועלות באופן חופשי; הן מתקשרות לפי הצורך, בדיוק כמו שאזורים שונים במוח מתקשרים ביניהם אד הוק. נשמע כאילו זה לא יעבוד, אבל מכיוון שהליבות לא חולקות ביניהן מאגר משותף של נתונים או הוראות, נוצרים פחות פקקים, וכך נפתרות רבות מהבעיות של המקביליוּת מרובת הליבות הנפוצה כיום.

בנטלי ועמיתו, כריסטוס סאקֶלָריוּ, כבר בנו אב-טיפוס והציגו אותו ב- International Conference on Evolvable Systems באפריל בסינגפור. הוא משתמש בשבב מיוחד שנקרא field-programmable gate array, שכולל מעגלים לוגיים ניתנים להתאמה שמחקים את הגמישות הקיימת במערכת טבעית.
מתוך הכרח, המערכת הורכבה מהחלקים שהיו זמינים להם. אף על פי שהיא עדיין לא מסוגלת להריץ תוכנה מתקדמת, היא כבר מתעלה על מחשב צרכני חזק בבדיקות מהירות פשוטות. "וזה סתם איזה אב-טיפוס קטן וטיפשי," הוא אומר. "אין לנו משאבים כמו לאינטל."

בנטלי אינו היחיד שפונה לעקרונות של המוח. סטיב פורבר מאוניברסיטת מנצ'סטר התפרסם לראשונה כמעצב המיקרו מחשב של הבי-בי-סי, ומאוחר יותר פיתח את שבב ה-ARM, שנמצא כיום בגרסאות שונות ביותר מתשעים אחוז מהסמארטפונים. כיום הוא מוכר יותר בזכות בניית מחשב מקבילי ניסיוני שנקרא SpiNNaker, שבו הליבות מקושרות מאוד ביניהן, כמו תאי עצב. וכמו במעגלים עצביים, יש ברשתות הגמישות האלה כמות מסוימת של יתירוּת. זאת אומרת שהליבות מסוגלות להעסיק את עצמן במשימות אחרות במקום לחכות להודעה שמתעכבת או שהלכה לאיבוד.
מערכת שלישית נוצרה על-ידי גורו המחשבים ג'רון לנייר, שייעץ ללינדן לאבס בבניית Second Life ועזר למייקרוסופט לפתח את מצלמת העומק של קינקט. הגישה של המערכת דומה לאלה שהוזכרו. למודולים הבודדים במערכת המקבילית שלו יש "איבר חישה וירטואלית" שמאפשר להם לזהות את תהליכי העיבוד זה של זה וליצור מודלים פנימיים של שכניהם. כמו במושבת נמלים, שחברותיה מבצעות את תפקידיהן אך בו בזמן ממשיכות לעקוב אחרי תנועות הנמלים האחרות. זה אמור לאפשר למחשב למנוע מראש צווארי בקבוק עיבודיים.

תנועה שמווסתת את עצמה

לחוקרים יש שאיפות גדולות. לנייר, למשל, חושב שהמערכת שלו תעזור למכוניות ללא נהג, מכיוון שרשתות של כלי רכב אוטומטיים יצטרכו לנהל את עצמן בבטחה ובה בעת להימנע מפקקי תנועה. "בעיית התיאום בין המכוניות תדרוש פתרון מקבילי עצום שיפעל בזמן אמת," אומר לנייר. אבל האתגר לא יהיה לתאר את המערכת הזאת מבחינה מתמטית. "החלק הלוגיסטי, לוודא שכל החלקים מדברים זה עם זה כל הזמן, הוא זה שיהיה קשה," הוא אומר. "המורכבות יכולה להיות אדירה בדברים כאלה. אני חושב שכאן עיצוב חומרה חדש ממש יעזור; כזה שיהיה קל יותר להבין."
לנייר חושב גם שיום אחד עיבוד מקבילי יאפשר לנטר בזמן אמת את טביעת הרגל הפחמנית של חברה שלמה, בעזרת מיליוני חיישנים. זה ישפר משמעותית את תחזיות האקלים.

למרות ההתלהבות שלהם לגבי האפשרות שחומרה מהסוג הזה תפתור חלק גדול מהבאגים שקיימים בסוגים אחרים של עיבוד מקבילי, ישנם חוקרים שפוחדים כי מחשבים מהסוג הזה יתנגשו עם הגבולות הקוגניטיביים של המתכנתים. אף על פי שאזורים שונים במוח יכולים לפעול במקביל ברקע, התקשורת שלנו תמיד פעלה בצורה סדרתית, משפה ומתמטיקה ועד שפות מחשב מודרניות. מתכנתים מדברים לעתים קרובות על "מערכות מורשת (legacy systems)" שמונעות את ההתקדמות, ובנטלי חושב שהתקשורת הסדרתית שלנו עלולה להיות הבעיה הגדולה ביותר. "זאת מערכת מורשת בת אלפי שנים."

ייתכן שכדי להתגבר על ההרגל הזה יידרש סגנון חשיבה מסוים שקיים רק אצל מעט אנשים. בנטלי מצביע על מתמטיקאים מסוימים שלפי האופן שבו הם מתארים בעיות, נראה שהם משתמשים בחלקים שונים במוחם לעשות חישובים שונים בו-זמנית.
"אלה אנשים מדהימים שעושים מתמטיקה ברמות גבוהות יותר מכולם," אומר בנטלי, "האיינשטיינים של העולם, שמסוגלים לתרגם אותו ולכתוב אותו בצורה שייחודית להם." גם פון נוימן השתייך לסוג האנשים הזה. אחד העמיתים שלו אמר שהמוח של פון נוימן משתייך ל"מין מתוחכם יותר מאשר בני האדם."
אין ספר שהמצאת המחשב דרשה מוח מיוחד מאוד. נצטרך הרבה מוחות כאלה כדי להביא את המכשיר של פון נוימן לגלגולו הבא.

 

מאמר זה התפרסם באלכסון ב על־ידי דאגלס הֶבֶן, New Scientist.

תגובות פייסבוק

> הוספת תגובה

4 תגובות על תיבת הפנדורה של מפתחי התוכנה

01
חיים זלצר

האם לא הוזהרנו שוב ושוב
מהתוצאה האפוקליפטית של מוחות מכונה?
המסקנות העצמאיות שמוחות כאלה
עשויים להגיע אליהן על סמך רציונליות לשמה?
בעיקר לגבי זכות המין האנושי לשלוט
על הפלנטה הזו?
המגחכים מוזמנים להצטרף לאבותיהם ההיסטוריים
שגיחכו על רעיונותיו המופרכים של ז'ול וורן
כמו צוללות מתוחכמות ומסעות בחלל.
ספרות המדע הבידיונית של המאה ה20
מסדרת חולית דרך טרמינייטור ועד המטריקס.
מציעה תסריטים לא נעימים.

03
זכריה

יש מושג אחד מרכזי שעליו בעצם מדבר המאמר, אבל הוא לא מופיע בו בכלל: חישוב מבוזר. כשמדברים על חישוב מקבילי, הכוונה היא לריצה של מעבדים עם גישה לאותו זיכרון משותף. כלומר, כל אחד מהמעבדים יכול לשנות (כמעט) כל נתון, בכל רגע. צורת העבודה הזאת יותר קלה לתכנות, אבל היא גם הרבה פחות בטוחה. חישוב מבוזר, לעומת זאת, אומר שלכל מעבד (או קבוצת מעבדים) יש זיכרון נפרד, שלא נגיש לאחרים. צורת החישוב הזאת יותר בטוחה מכיוון שהיא מתבססת על שליחת הודעות, וכך יש לכל מעבד שליטה מוחלטת על המידע שהוא מנהל. מצד שני, יותר קשה לכתוב תוכניות כאלה, בגלל האופי הא-סינכרוני שלהן.

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

04
אורן

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

אגב FPGA הוא לא ממש מושג חדש או מהפכני