DCSIMG
June 2009 - Posts - GadiM - Gad J. Meir www.idag.co.il

GadiM - Gad J. Meir
www.idag.co.il

מסעותיו של משמיד חרקים ושרברב תהליכים במרחב הקיברנטי

קישורים

June 2009 - Posts

יום עיון על Multi Core Tools אוניברסיטת תל אביב, חלק שלישי ואחרון

החלק האחרון של היום נפתח בהרצאה של גיא קורלנד מאוניברסיטת תל אביב על Deuce.

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

מתכנת רב ליבות טוב, נמצא היום מבחינת המיקום שלו בפרמידת המקצוענות התכנותית הנדרשת. קצת מעל מתכנת של Device drivers, הרבה מעל מתכנת CPP, ובמרחק שנות אור ממתכנת VB או COBOL. זה שהוסיפו לשפה מילות מפתח כמו Parallel_Loop או Lock. או זה שנותנים לך ספריות שלמות כמו Open MP או TBB לא כל כך עוזר, למי שאין לו מושג על Data Dependency ועל Scalability, אלא להיפך, זה רק מגדיל את הסיכוי שהוא יגרום יותר נזק. הבעיה עם הנזק הזה, זה שאתה מגלה אותו לא רק אחרי שהמערכת נמצאת אצל הלקוח, אלא גם הרבה זמן לאחר שהיא גרמה המון נזקים מצטברים, שכבר קשה לתקן אותם.

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

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

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

גיא כיסח את הצורה לכל הפתרונות הקיימים לבעיה, כשהוא יורה לכל הכיוונים במהירות ויעילות שלא היו מביישים אף איש מכירות של מיקרוסופט (ואני מקווה שהוא לא ישנא אותי לעולמים על ה"מחמאה" הזו). המוטו של גיא היה, שהוא רוצה באמת ובתמים את הגביע הקדוש, דהינו מערכת, שתהיה כללית ולא ספציפית לתחום מסויים (כאן PLINQ נפצע קשה). שלא תדרדר אותנו לתחום של שפות פונקציונאליות (כאן חטף F# פגיעה ישירה ונדם). שלא תצטרך ללמוד כלים מורכבים לאיתור בעיות ואנליזה כדי לבנות קוד (כאן חוסלו בצורה ממוקדת כל כלי הפיתוח והאנליזה של מיקרוסופט ואינטל), ושאתה לא צריך לעשות כלום בקוד (כלום !!) אלא רק לקחת אותו כמו שהוא כתוב, ולהריץ אותו רגיל, והמערכת תעשה את השאר. כאן פחות או יותר חוסל כל  מי ששרד עד השלב הזה, אבל העיז לפתוח את הפה, ולהוסיף פה ושם איזה אופרטור או מילת מפתח חפה מפשע ותמימה לשפה. גיא גם טרח לבצע וידוא הריגה לכמה כיוונים שכבר היו מתים מזמן כמו JVSTM ו Atom-Java ליתר בטחון. ממש מחסל מקצועי. לאחר שקולות הקרב נדמו, והקברנים באו לקבור את הגופות, נשאר כמובן, באורח נס, רק פתרון אחד בחיים, Deuce.

 Juval 080

Deuce הוא פתרון שמבוסס על Java. אתה מצרף לספרית ה Run Time של Java שכבה שנותנת שרותים. אתה מתלבש על מנגנון הטעינה של ה Classes, ומשנה אותם בזמן הטעינה בטכניקות שמזכירות Code Injection של WCF, ואתה מקבל קוד, שהוא מוגן מקביליות בצורה הכי טובה שיש, ובלי צורך לשנות כלום בקוד שלך (פרט ללהוסיף באיזה שהוא מקום בהתחלה, שאתה רוצה את השרות הזה).

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

Juval 087

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

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

המרצה האחרון של היום היה Hazim Shafi ממיקרוסופט.שדיבר על Parallel tools in the upcoming VS 2010. חזים לא חידש לי הרבה, כי אני משתעשע בנושא הזה עוד מה PDC של שנה שעברה. פחות או יותר מאז שהכלים המקביליים של מיקרוסופט, הוכרזו פחות או יותר רשמית, ולא היו יותר משהו סודי. מה שהיה יותר מעניין בהרצאה הזו, זה שהמרצה לא נכח באולם, אלא הרצה ב Teleconferencing תוך שימוש במקבילה של Live messenger לארגונים. איכות הקול היתה סבירה, אבל המסך של המרצה, היה ברזולוציה גדולה מהמסך של המקרן, מה שחייב שמישהו ישב על הבמה, ויזיז מדי פעם את השקפים, כך שניתן יהיה לראות את התמונה המלאה. גם הדמו קצת סבל מהבעיה הזו (לא יותר מדי). ההרצאה הזו היתה מעין סגירת מעגל, לתאור של הכלים של אינטל, שהיו בהרצאה הראשונה של היום.

  Juval 118

יש הרבה חידושים מענינים בתחום הזה ב VS2010 ואני אשתדל איל"ז לכתוב עליהם פעם.

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

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

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

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

ארוע Think Next בהאנגר 11 בנמל תל אביב עם ריי אוזי

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

אז הערב מבחינתי התחיל ב 20:00 כאשר התחיל הארוע המרכזי. ליאור צורף פתח

Ozi 289

והזמין כל אחד מנותני החסות לברך.

Ozi 290Ozi 295 Ozi 296

אחר כך נבחר ההזנק שמצא הכי חן בעיני המשתתפים (הצבעת SMS כמובן). ואז עלה לבמה משה ליכטמן והלהיב את הקהל והציג את החיבור בין Windows Live ל SMS עליו כבר כתבתי בפוסט קודם. אחר כך עבר להציג את LightHouse שמנחש מה אתה רוצה ומביא לך את המידע ואחר כך הציג תוצר של ה Out of the box week שגם אותו כבר הזכרתי באותו פוסט, מסךמגע מבוסס על תגובה לאור כלוא. לא יאומן מה אפשר לעשות בשבוע אם צוות טוב ומסור למשימה.

  Ozi 303

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

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

 Ozi 307

משם הוא עבר לאסטרטגית שלוש מסכים וענן (הוזכר גם כן בבלוג הקודם) ומשם נע לחדשנות בעולם מרכזי המידע, מהעולם הישן והפשוט לדור הרביעי של מסדי נתונים בענן. חדשנות בעולם מערכות הפעלה מהעולם הישן על ל Azure. חדשנות בעולם ה Client שמתקשר ישירות ל Product as a service, דהינו להתקין תכנה רק לזמן השימוש שלה.משם עבר לחדשנות בארכיטקטורה ופיתוח.

משם אוזי עבר לתאור פרטני מדי שבו הוא קצת איבד את הקהל, על השיקולים של מיקרוסופט והדרכים שבהם מיקרוסופט מחליטה איך לחלק את תקציב החדשנות שלה. ואז הגיע סרט וידאו על טכנולוגיות משולבות של חישת תנועה וזיהוי קולי עם קצת "מבט עתידני", שהעיר את הקהל. הדגמה של מערכת ניווט מבוססת מצלמה, שעל התמונה במחשב, באמצעות Augmented riality, מקבלים חיוויים לאן ללכת (ללא GPS). לאחר מכן הודגם Write in the air. בהמשך הוצג ה Health Vault כתיק הרפואי האישי שלך. אני מכיר קצת את התחום הזה בגלל ש David Platt עוסק בו ואם הייתי יודע שבמרכז המחקר של מיקרוסופט עוסקים בתחום הזה הייתי מתאם מפגש ביניהם בביקור האחרון שלו בארץ. אחא כך עוד סרט עתידני וקצת הסברים על מעבדות המחקר של Office עם שילוב של Deep zoom של Silverlight עם PPT ועוד כמה שעשועים שנמצאים כבר במצב קרוב למימוש. אפילו קצת מאקסל 2010 בטיפול בכמויות עתק של נתונים על מחשב חלש. אני מזכיר שוב שלכל הדברים הללו מגיע לפי דעתי פוסט יותר מפורט, ולכן אני נותן פה רק את התקציר.

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

כאן התחיל הקטע של עשר הדגמות בעשר דקות שעליו אני אכתוב בהמשך בהרבה פרוט.

יום עיון על Multi Core Tools אוניברסיטת תל אביב, חלק שני

בשלב הבא עלה לבמה ערן סוחר מאוניברסיטת תל אביב ודיבר על Modeling the impact of interconnect technology on CMP architecture performance - RF-Interconnect as a test case. כשהוא התחיל לתאר את המחקר, חשבתי בהתחלה שהוא צוחק עלי. לקח לי כמה דקות לתפוס למה הפרויקט הזה בעצם מאד הגיוני. אז אני אנסה להוליך אתכם בתהליך שעברתי, צעד אחר צעד, כדי שתבינו מדוע. יש למחקר הזה כמובן תוצאת לואי, שכשהמעבד שערן הציג יהיה מסחרי, נצטרך להזהר עוד יותר, מלשים את המחשב הנייד על הברכיים (וזאת כמובן למען עתיד הגנום האנושי).

אז ככה, זה שיש לנו הרבה ליבות שצריכות לדבר אחת עם השניה, כבר הבנתם מהחלק הראשון. אז איך כמה מאות ליבות מתקשרות אחת עם השניה. הסתכלות תמימה אומרת בוא ונעשה את מה שאנחנו עושים כבר שנים במחשב שלנו, נשים Bus ונחבר אותם על ה Bus. זה עבד טוב ב ISA וב EISA וב IDE ואפילו ב SCSI אז החיים טובים. אז מסתבר שלא. אתה לא יכול לחבר כמה מאות יחידות על אותו Bus בלי Switch – ים ו Ruter – ים. אפילו USB נשבר באיזה שהוא שלב. מה שמוליך אותנו לזה שצריכה להיות בין הליבות רשת שלמה של חוטים ולא ניתן לשים את כולם על Bus אחד פשוט בלי מתווכים. עכשיו תוסיפו לבעיה של הטופולוגיה גם את ה Scale, ואתה נתקל בבעיה, שלא משנה איך תבנה את הרשת הזו, להעביר מידע מצד אחד של הפיסה לצד השני, יכול להיות תהליך שגם לוקח הרבה זמן, וגם צורך הרבה אנרגיה (המון פריקות וטעינות של קבלים).

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

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

Juval 025

למי שרוצה לראות איך נראה ג'וק כזה (כן כבר עשו אחד כזה, יש Proof of concept ואפילו Prototype) אז הנה:

Juval 022

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

 Juval 031

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

ואז, בדיוק שגמרתי את ארוחת הצהריים, נתקלתי פתאום ביורם אור-חן מהטכניון. יורם אור-חן והמעבדה לעיבוד אותות בטכניון היו ישות אחת, בדיוק כמו שאהוד והמעבדה הספרתית היו ישות אחת. הרבה מהסטודנטים שעשו את תרגיל החובה במעבדה הספרתית על ה 68000 של מוטורולה, הרבה שנים אחרי שעזבתי. לא ידעו שזה היה אחד הפרויקטים שעשיתי לאהוד. גם המעבדה של יורם, היתה מקום שבו שרצתי הרבה. מי שלא ראה את ציפי מכניסה באמצעות המפסקים את ה Rim Loader לאקליפס, לא ראה עבודת תכנות יפה מימיו. במעבדה של יורם עשיתי שם את ההנחיה הראשונה שלי, של פרויקט שנעשה על ה 29K של AMD. אם זה מעניין מישהו, זה היה כשלון טוטאלי. אבל יורם הבטיח לי שהוא סלח לי על זה.

Juval 036

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

לאחר הארוחה עלה על הבמה צביקה גוז מהטכניון. והציג לכולם את Simics.

Simics

במבט ראשון זה נראה לי כמו סוג של מכונה וירטואלית כמו ה Virtual PC של מיקרוסופט או ה Vmware Workstation של Vmware או ה Virtual Box של Sun ואפילו התלהבתי והתחלתי לשאול על התמיכה בגרפיקה. אבל פיספסתי את הנקודה לחלוטין. להגנתי אני רק יכול לומר שלא הייתי היחידי שפיספס את הנקודה, היו עוד כמה אנשי תעשיה בקהל, שהלכו לכיוון הזה (צרת רבים, נחמת טפשים). אז מה זה Simics בסופו של דבר ? מסתבר שזה זה:

Juval 040

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

Juval 055

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

המרצה הבא היה דב לבנגליק מחברת Freescale שזה תעשיה ולא אקדמיה. מי שלא יודע מה עושה Freescale מוזמן להציץ באתר שלהם. בסופו של דבר זה משהו שנקרא Embedded semiconductor solutions. הלקוח צריך מעבד יעודי, אז לוקחים מהספריה CPU, Uart, Timer קצת זכרון ועוד כמה דברים כאלה, מערבבים את זה טוב טוב עם קצת חול (למי שלא יודע אז רוב המעבדים כיום זה בעצם חול ים מזוהם בכמה חומרים כימיים). ומקבלים ג'וק אחד, שעושה את כל העבודה. קלאסי לטלפוניה, מכוניות, רשתות, ועוד כמה כאלה, שמעדיפים ג'וק אחד שעושה הכל, על הרבה ג'וקים מחוברים ביניהם על מעגל מודפס.

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

Juval 060

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

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

Juval 067

ואוו, אני שוב פעם ארוך מדי, ואני כידוע שונא פוסטים ארוכים, אז ההסתבכות שלי עם עולם ה Java תחכה לפוסט הבא.

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

יום עיון על Multi Core Tools אוניברסיטת תל אביב, חלק ראשון

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

Juval 006 Juval 005

אני מניח שיש מי ששואל את עצמו מה לעזזל אני עושה בכנס הזה. אז ככה. ברגע שאתה יכול לקנות בשוק החופשי מעבדים עם 4 ליבות ואו טו טו 8 ליבות ובקנה כבר מדברים על הרבה יותר. נושא ריבוי ליבות הופך להיות למה שנקרא בלע"ז Main Stream. חוק מור אמר שכל שנתיים ניתן יהיה לדחוס פי שניים טרנזיסטורים על כל גוק. אז תרשמו לכם את חוק גדי (שהוא תולדה ישירה של חוק מור), כל שנתיים מספר הליבות במעבד יגדל לפחות פי שניים. אז למי ששכח מה זה אקספוננטה, אז אחרי 8 בא 16 ואחר כך 32 ואז 64 ודרך אגב, זה לא תמיד יהיה כפולות יפות של שניים, בגלל שבאיזה שהוא שלב, מישהו בטח יעשה קלסטריזציה של העסק, ולכל קלסטר יהיה מעבד ניהול משלו, ואזור זכרון משלו, כך שפקטור שניים הוא רק המלצה וגבול תחתון שמרני.

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

מבחינת התכנה והאלגוריתמיקה, שמעניינת את רוב אוכלוסית המפתחים שאני נתקל בהם. הבעיה עדיין מתמקדת בתחום צר, של איך לעזזל עושים אלגורתים, שיכול לנצל את העובדה, שיש לך כל כך הרבה ליבות, ולתת יותר תוצאות בפחות זמן. כל מי שגדל (כמוני) על ברכי קנוט. צריך לעשות שינוי קונספטואלי די מהותי כדי להסתגל לעולם החדש, שינוי שמקביל פחות או יותר, למעבר של מתכנת מ COBOL ל F#. בתקופה שקנוט הוציא את האנציקלופדיה האלגוריתמית שלו, שהיתה פחות או יותר התנך, של כל מי שלמד מחשבים ביחד איתי. פעולה של כפל היתה יותר איטית מפעולה של חיבור. המעבדים היו מכונות ניומן פשוטות. מיקרו קוד היה משהו שכתבו עליו עבודות דוקטורט. גם לקנוט עצמו יש קשיי הסתגלות לעולם החדש (הוא לא אוהב ריבוי ליבות) על אחת כמה וכמה מה נאמר על מפתחים בני תמותה פשוטים, שחושבים שכל מה שצריך כדי להוציא את המיץ מהמקביליות, זה להשתמש ב Parallel_for במקום ב For וש Lock פותר את כל הבעיות (וזה בכלל לא מצחיק).

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

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

Juval 007

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

בשלב הבא עלתה על הבמה מריאנה ביברשטיין מהמרכז המדעי של IBM בחיפה ודיברה על Clock Synchronization in Cell BE Traces. לקח לי קצת זמן להבין על מה היא דיברה, כי שכחתי שאני באקדמיה, ויש עוד עולמות חוץ מאינטל ו AMD. אז היא דיברה על המכונה הזו:

Untitled

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

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

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

ברור שאם זה שתכנן את החמרה היה מכניס שעון זמן אמת לכל ליבה, הבעיה היתה פשוט נעלמת. אבל מה לעשות והיו לו סיבות טובות לא לעשות את זה, וזה מה יש ?

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

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

Juval 015

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

Juval 037

למי שחושב שהבעיה הזו לא אקטואלית, שיבדוק לאן הולכת אינטל. בכלל לא בטוח שהארכיטקטורה של SMP תישאר כמו שהיא בג'וק עם כמה מאות מעבדים. ולא בטוח בכלל שבכמות כזו של ליבות, לכל ליבה יהיה שעון זמן אמת. מה שאומר שלא בטוח בכלל שסינכרון של Trace בעתיד, לא ידרוש אלגוריתמיקה מיוחדת מהסוג שתואר כאן.

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

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

יום עיון על השפעת שוק האנרגיה על שוק התכנה עם Juval Lowy

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

Juval 135

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

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

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

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

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

Juval נתן ראיון על הנושא במסגרת Tech Ed 2005. מי שפיספס את יום העיון יכול לקבל תקציר בקישור הבא.

מיקרוסופט העולמית ביקשה מ Juval להעביר את ההרצאה הזו, בצורה קצת יותר מורחבת, ב PDC הבא, במסגרת ה Pre Conference. כך שמי שפיספס, יוכל לקבל שידור חוזר (הפעם בתשלום).

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

מי שהנושא מעניין אותו מוזמן ליצור עימי קשר ישיר לקבלת חומר ומידע נוסף

מפגש קבוצת משתמשים של ארכיטקטים עם אליק לוין על PTD

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

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

אחר כך אליק דיבר על ביצועים, על Treat Performance as a feature, על המחיר היקר שמשלמים אם לא מתיחסים ל Performance עוד בשלב ה Envisioning.

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

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

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

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

מי שמעדיף ללמוד לבד, אז להלן מסלול חליפי, שנקרא לו מסלול אליק. לך לבלוג של אליק ותורידו את המצגת. אחר כך תגיע כמה שיותר מהר לשקף 12, ותתחיל לעבור Case study אחרי Case study (כולל  הקישורים המצורפים). אחר כך תקדיש זמן ולמד כל Tool שמוזכר בחבילת השקפים (החל משקף 82). לסיום לך ל http://www.codeplex.com/AppArchGuide וקנח את הארוחה בקריאה של הספר, שכל מילה בו שווה זהב.

כמה תמונות:

 Juval 130 Juval 123

תדרוך שנתי של מרכז המחקר והפיתוח של מיקרוסופט ישראל

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

עוד לא יצא לי לפגוש פנים אל פנים אישית, את משה ליכטמן (שנושא בתואר המכובד של סגן נשיא במיקרוסופט העולמית ונשיא מרכז המו"פ של מיקרוסופט בישראל), אבל אם יצא לי, אני אלחץ לו את היד בכל הכבוד הראוי. מרכז המו"פ של מיקרוסופט בארץ שהוא הקים (בשנת 2006 סך הכל), מאגד במקום אחד, את כל השלבים שחברת הזנק עוברת לאורך כל מחזור החיים שלה. החל ממחקר הבסיס, דרך החממה, כל שלבי הכנת המוצר והטכנולוגיה, כל נושא המימון וההון סיכון ועד שלב ביצוע ה Exit שכל יזם שואף אליו. עם 600 עובדים, שפחות או יותר חצי מהם מגיעים מצמיחה אורגנית וחצי משישה קניות של חברות וטכנולוגיות בארץ. עם כל הקשיים של הכלכלה העולמית, הם מריצים במרכז שלהם ארבע עשר מיזמים שונים מתוכן 12 חדשים לחלוטין. זה שיש להם כבר כמה Exits זה בהחלט הישג יזמי בכל קנה מידה.

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

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

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

כמי שעוסק הרבה בשרברבות של תהליכים (MSF בשבילכם) משך את תשומת ליבי משהו שנקרא Out of the box week. פעם ברבעון עוצרים את הכל לשבוע ואומרים לאנשים תעשו מה שאתם רוצים, זה לא חייב להיות רלוונטי למיקרוסופט וגם לא חייב להיות קשור לתחום שבו אתם עוסקים ביום-יום. התנאי היחידי זה שבסוף השהוע יש לכם משהו עובד. לא דמו, לא שקפים, לא סרט וידאו, דגם אב עובד. לא מפתיע שאנשים שנותנים להם שבוע להשתולל ובתנאי שיצא מזה משהו, יכולים להביא דברים מדהימים, בפרק זמן קצר. מעבר ל "חופשה מהעבודה" ומהכף להיות עצמאי, זה מציב סטנדרט מאד גבוה לצפיות לביצועים גם בחיי היום יום. מעניין שזה התחיל "סתם ככה" וצבר תאוצה, ובאיזה שהוא שלב מחלקות אחרות ביקשו לצרף לזה אנשים שלהם, ואחר כך מצרפים סטודנטים (מתכנית ההצטינות של מיקרוסופט)  ועכשיו גם ילדים מחוננים… כולם נלחמים כדי לבוא ולהתערבב ולהיות חלק מתהליך היצירה. כשאתה מביא אנשים מרקעים שונים למקום אחד, ושי תקשורת ויש חזון, נוצרים קליקים מאד מעניינים, שלחלקם הגדול, יכול להיות המשך, כפרויקט מן המניין, בגן העדן היזמי, חממתי הזה.

מושג אחר שהועלה ושכדאי לזכור, זה אסטרטגיה של מיקרוסופט בשם Three Screens and one cloud. כל מוצר יתמוך בכל שלושת המסכים דהינו TV, נייד ו PC (ו Xbox ) שכולם מקושרים דרך הענן. מי שרוצה פרטם נוספים שיקשיב לרי אוזי בקטע השלישי.

משהו שהוזכר בקושי דקה אבל היה מאד מעניין מבחינה טכנית. הסתתר תחת שם הקוד Head Light. מבחינה טכנית זה עוד תכונה שתהיה בגירסא הבאה של ה Deep Zoom Composer שיוצא ביולי. קצת הסבר. אחד מהיכולות של ה Silverlight היא אפשרות לבצע Zoom בעומק אינסופי. ניתן לראות המון דוגמאות באתר הרשמי של Silverlight. דוגמא יפה זה למשל אתר הזכרון של HardRock. זה כבר קיים עוד מ SilverLight 1. החידוש הוא שימוש נבון בטכניקה הזו, שנותן לך כלים המאפשרים לך לנצל שטח קטן של מודעה, כדי לספק המון מידע ללקוח הפוטנציאלי. זה גן עדן למפרסמים ולכל מי שרוצה לדחוס המון מידע בצורה נגישה, בשטח קטן. הטכנולוגיה כאמור זמינה חינם, לכל משתמש שמותקן אצלו SilverLight (בקיצור כולם) ולכל ספק מידע, שיוריד את הגירסא הבאה של Deep Zoom Composer, שכוללת בנוסף ל Deep Zoom הרגיל, את הטכנולוגיה החדשה הזו.

מחלקת האבטחה הציגה את האנטי וירוס החדש של מיקרוסופט, Microsoft Security Essentials. היזם שהקים את המי-זנק (מיקרוסופט-הזנק) הזה, התבסס על העובדה שקרוב לחמישים אחוז מכלל המשתמשים הביתיים, בסופו של דבר אינם מוגנים על ידי אף תכנת אנטי וירוס. יש לזה הרבה סיבות וכולם מובילים לכשלי שוק של חברות האנטי וירוס הקיימות. החל בתמחור גבוה מדי וכלה בבנדלינג שמן מדי. אבל השורה התחתונה היא שחמישים אחוז מהמחשבים הביתיים חשופים לזדונות (Malware). הנזק שנגרם למיקרוסופט מהזדונות הללו הינו גבוה עד כדי כך, שכדאי למיקרוסופט לתת, למי שרוצה, פתרון חינמי לבעיה הספציפית הזו (ורק לה). זה יותר זול מאשר לטפל בנזקים שהחור הזה בהגנה גורם לה. יש להניח שהיזם, לא היה מקבל מימון לפרויקט שלו, מחברות ההון סיכון (מיקרוסופט מו"פ במקרה הזה), אם למשל 90 אחוז נהמחשבים הביתיים, היו מוגנים באמצעות אנטי וירוס זה או אחר. כך שמי שחושב שמיקרוסופט נכנסה לשוק הזה כדי לדחוף החוצה את חברות האנטי וירוס פשוט מבלבל בין ביצה לתרנגולת. מיקרוסופט נכנסת כאן לשוק בתול. ה MSE הוא מוצר אנטי וירוס מודרני מתקדם, עם response Center ועם טיפול דינמי בחתימות של מזיקים (DSS) שמתעדכן עננית (דרך הענן) וצורך מעט מאד משאבי מערכת. הקטע של מעט משאבי מחשב ושלן קטן וזריז הודגש בהדגמה. שימו לב ל User Experiance index של 2.2 וגם לדוגמא של מסך התגובה והכל כמובן על Windows 7.

DanceMSDev 463 DanceMSDev 464

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

DanceMSDev 452

הנושא השני שהועלה עסק במערכת המשלבת בתוך ה Messenger שלך שרותי SMS שקופים. אתה מצטט עם הסחבק שלך (תרגום מאולתר ל Buddy) ואם הוא כרגע לא על יד המחשב, אלא בדרכים, הטלפון הנייד שלו יקבל את ה Chat בצורה של SMS והוא ישיב לך מהטלפון כאילו זה SMS רגיל. יש משהו דומה ב ICQ בארץ, אבל הוא מוגבל. יש גם לקומברס מכונת SMS שהם מציעים למפעילים. אבל היתרון של המוצר המיקרוסופטי שהוא אינו מוגבל לאזור טריטוריאל (יעבוד גם אם אתה בחו"ל), אינו דורש שום התקנה בטלפון, ועובד עם כל טלפון נייד שיודע לעשות SMS. התכנה שעושה את העבודה נמצאת אצל המפעיל (במונחי ארצנו הקטנה סלקום, פרטנר, פלאפון) והיא יודעת לאתר מתי אתה מצטט עם המסנגר, דרך מערכת מספרים וירטואלית. הלקוח האמיתי לשרות, הזה שמדליק כל ילד בגיל ההתבגרות, זה כמובן המפעילים הסלולריים הגדולים. שכל תוספת של אחוז בתעבורת ה SMS-ים שלהם, זה תוספת כספית נכבדה למאזן.

DanceMSDev 475 DanceMSDev 476 הוא

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

כמה דקות באנגלית היו במפגש כאשר David cross ניסה להסביר על ה Threat management gateway, שזה כלי שנועד לארגונים ומאפשר לתת הגנה על המשתמשים, ולא משנה באיזה פלטפורמה הם משתמשים (כולל מק ולינוקס) ובאיזה דפדפן הם משתמשים (כולל שועלים ואחרים). ה TMG הוא צאצא של שרת ה ISA שמקורו בחיפה, אבל הרבה יותר משוכלל ומתוחכם ומיועד לניהול אבטחה בארגונים. יחסית לשאר הנושאים, הנושא לא משך התענינות רבה מצד העתונות.

המשתתפים קיבלו עותק של WSE ביתא (שרק בשביל זה היה שווה לבוא). התכנה כבר הותקנה ועובדת על מחשב הפיתוח שלי (חלונות 7) ואספר לכם עליה חוויות, אם וכאשר יהיו לי.

מסיבת התקנה Windows 7 במיקרוסופט ישראל

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

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

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

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

DanceMSDev 438 DanceMSDev 445

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

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

tux

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

ועכשיו לנושאים שיש בהם קורטוב של ביקורת בונה:

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

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

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

ושלא יספר לי אף אחד שמערכת הפעלה 64 ביט לא תומכת ב Derivers ושיש בעיות תאימות. אני בשוק הזה מסתובב הרבה וכמות החוסרי תאימות שנתקלתי בהם זניחה. אם ממכונת הפיתוח שלי שהיא כמובן Windos 7 בגירסת 64 ביט, אני יכול להדפיס על ה HP 930 C הישן שלי (בקרוב נזרק לזבל לאחר המון שנות שירות נאמנות), ואם על המדיה סנטר בבית שלי (64 ביט כמובן) הילדים מריצים את ה Sims, אז אצלי זה עובד ושיקפצו לי כולם.

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

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

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

אסף יפה, חברת RadVision ושוב James Reinders

אסף יפה מאינטל חיפה המשיך את תאור המוצרים והתרכז ב Intel Parallel Inspector ו Intel Oarallel Amplifier. הכלי הראשון מאתר בעיות בזכרון ובריבוי נימים בעיקר במערכות מרובות ליבות אבל לא רק. הכלי השני מזהה צווארי בקבוק מסוגים שונים כתוצאה מריבוי נימים כאשר יש לו תרומה חזקה יותר במערכות מרובות ליבות. שילוב מלא ב Visual Studio כבר אמרנו. חשוב להדגיש שבתוך VS יש כבר הרבה כלים מובנים למטרות האלה (ובמיוחד ב VS 2010), אבל בנושא המורכב הזה ריבוי כלים מיצרנים שונים הוא איסטרטגיה טובה כי לכל כלי יש תועלת ומספיק שאחד מכל הכלים האלה יגלה בעיה וכבר הרווחת את היומית שלו.

לאחר הפסקת קפה קצרה עלו על הבמה שני נציגים מ RadVision שגיא שובוקי ועופר גורן שנתנו סיפור הצלחה של הכלים הללו במערכת שלהם. חשוב לציין ש RadVison הצטרפה לכלים הללו בשלב הביתא שלהם וכך גם אינטל קיבלה Early Deployment וגם Radvision קיבלה יכולות של כלי הבדיקה שלא היו קיימות בשוק עדיין אלא בצורה של הביתא.

לסיום עלה שוב על הבמה James Reinders ונתן מבט לעתיד. כמה תוספות ל VTune, שיפור של Thread Checker כתוצאה מתוספים של Parallel Inspector וגירסאות עדכניות ל C++ ול (לא לצחוק) Fortran. שאלתי את James אם Fortran עדיין חי, והתשובה שלו היתה שכן. הוא הסביר שמי שלא עובד עם Fortran בדרך כלל מופתע לשמוע שהוא עדיין חי אבל יש עוד הרבה שעובדים עם השפה הזו (בעיקר מסדי קוד היסטוריים). דברים נוספים, בדיקת תאימות מלאה ל Windows 7 ול VS 2010 של כל הכלים המשך תמיכה מלאה ב Microsoft Cuncurrency Runtime ושיפורים ב Parallel Advisor. צפויה השקעה רבה בכל נושא ה Parallel Programming. אינטל תמשיך לטפל טוב ב Open MP וכמובן ב TBB. אבל החידוש הוא משהו שנקרא Ct Technology שזה נסיון נוסף לנסות להפוך את העולם המקבילי לפחות כיאוטי ויותר דטרמיניסטי. מאד מזכיר את הדברים ששמעתי במיקרוסופט שהוליכו ליצירת הקונספט של ה Task במיקרוסופט, שהמטרה העיקרית שלו היה לדאוג לכך שתכנית תוכל להשתמש בכל כמות של יע"מ-ים שיעמדו לרשותה בעתיד. הוזכר AVX שיחליף את SSE אי שם בעתיד. פרטים נוספים על כל הנושאים באתר  WhatIf.intel.com וגם ב www.intel.com/go/parallel.

בסוף היה קצת Q & A וכמובן ש WindRiver עלה על השולחן. להזכיר למי שלא יודע אז VX-Works ו Pesos וגם דברים נוספים שקשורים לשוק ה Unix, הם מוצרים של WindRiver. וידידינו James ניסה לא להיכנס לאף שדה מוקשים ודיבר במעורפל על תמיכה בשווקים של מוצרים יעודיים עם מעבדי ה Atom וכו וכמובן לא מפריע בשום צורה לשותפות הטובה שיש להם עם גופים אחרים (כמו למשל מיקרוסופט). העתיד לדעתו של James הולך על ויזואליזציה וזה מתקשר ליותר יכולות GPU בתוך המעבדים העתידיים ופחות עניין אותו שימוש ב GPU לחישובים נורמאליים. לדעתו כל הפרוססורים הגרפיים העתידיים יהיו מבוססי ארכיטקטורה של X86 אז מה הבעיה. מבחינתו של James לרבי גירסא 1, זה ג'וק גרפי ולא General Purpose.

בסוף היתה הגרלה למחשב אישי, שבו כמובן לא זכיתי. היו חמישה שיצאו בהגרלה וכבר לא היו נוכחים ובטח אוכלים עכשיו את הלב. היום הסתיים בסביבות 17:30 ועדיין היו באולם קרוב ל 150 איש. כמעט כל מי שהגיע ליום בתחילתו. ואפילו צילמתי תמונה לעדות. או שזה ההגרלה של המחשב האישי או שזה הנושאים המענינים ש James נכנס אליהם בזמן ה Q & A. סך הכל נצילות יום של קרוב ל 60% וזה לא רע אם כי ניתן לשפר לפעם הבאה עם קצת פחות שיווק ויותר טכניקה.

  IntelPc 010

לקראת ארוחת הצהריים, אורי ברון דר' עמי מרווקה וגיא בן חיים

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

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

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

ארוחת צהריים מעולה כמו שדן אכדיה יודעים לעשות.

הרצאה של James Reinders מאינטל ושל Blaise Vignon ממיקרוסופט

לאחר מילות הפתיחה עלה לבמה James Reinders. הספר שלו על TBB ניתן במתנה לכל משתתפי יום העיון. הכובע שלו זה כלי תכנה אינטל. הוא ביצע סריקה מחוף לחוף של כלל המוצרים וניסה לשים אותם בקונטקס הנכון. הדגש היה על Multi-Core וזה מן הסתם הנושא הכי לוהט כרגע, בעולם שבו מעבדי I7 עם 8 ליבות כבר זמינים. אז כמה נקודות מענינות שעלו בהרצאה שלו. גם ל Atom תהיה תמיכה בריבוי ליבות בשלב זה או אחר. Paralel Studio ואינטגרציה של כלים אינטליים בתוך סביבת ה Visual Studio המוכרת שלנו. תמיכה ב Open MP 3.0 וגם (אל תצחקו) ב Fortran. מקביליות ברמת ה Kernel עם MKL. המהדירים והספריות של אינטל נותנים תמיכה גם לתואמי Intel (למי שלא הבין הכוונה ל AMD) ומשפרים גם שם את הביצועים (אם כי השיפור הטוב ביותר יהיה על מעבדי Intel כמובן). המון דגש על אופימיזציה עם המון גרפים שבאים להוכיח שהכלים של אינטל עושים את זה יותר טוב מכולם. הגביע הקדוש כמובן Debugging של תהליכים מקביליים. אינטל הוסיפו למהדירים תמיכה מסוימת ב Debuggers זרים (למי שלא הבין הכוונה למיקרוסופט) בעיקר בתחום ה Paralel. יש גם דגש על כלים בסגנון Lint, כי כפי שידוע לכולם אם אתה מצליח לאתר את הבעיה עוד בשלב הקומפילציה זה משמעותית יותר קל מלמצוא אותה בזמן ריצה עם Debugger. כלי עזר בכתיבה של קוד מקבילי, IPP. שימוש ב Lambda Functions ב C++ מה שנותן יכולות נוחות לסמר אזורים שניתן לבצע במקביל בקוד שלך. כלי Verification שכוללים לא רק איתור גישה לא מסונכרנת לאזורים משותפים אלא גם איתור זליגות זכרון (דבר לא פשוט בסביבה רגילה שלא לדבר על סביבה מקבילית). וכמובן כלי Tuning. פשוט רשמו את מילות המפתח במנוע החיפוש האהוב עליכם והוסיפו Intel או שתלכו ישר לאתר המפתחים של אינטל ותמצאו המון חומר על כל אחד מהנושאים. שימו לב שחלק מהכלים שהוזכרו כאן יצאו לאור עוד שבועיים ולמרות שהם רשמית עדיין בביתא שבועיים זה לא הרבה זמן. אינטל מאד מתלהבת מה Concurrency Runtime של מיקרוסופט ומשלבת אותה בכלי המקביליות שלה ויש גם התלהבות מהשילוב של כלי אינטל ב Visual Studio 2010.

אחר כך עלה לבמה Blaise Vignon ממיקרוסופט צרפת, שהכובע שלו הוא לדחוף מפתחים בעולם המיקרוסופטי לעבור כמה שאפשר וכמה שיותר מהר לעולם המקבילי. קשה להבין אנגלית במבטא צרפתי כבד מה שגרם לכך שרמת העירנות בחדר ירדה. הוא פתח בזה ששאל כמה מהמשתתפים עובדים עם כלים של מיקרוסופט. היו כמה בודדים שהצביעו מתוך קרוב למאתיים משתתפים. דנתי בזה אחר כך עם יושבי השולחן שלי, והגענו למסקנה שכנראה היו יותר מקומץ אנשים שמשתמשים בכלי מיקרוסופט באולם, אבל הם התבישו להצביע. Blaise הדגים קצת Parallel LINQ ודיבר על Microsoft Parallel Computing Initiative וההרצאה שלו כללה בהתחלה המון חזון ואוירה, אבל הקהל היה מורכב מאנשים מאד טכנים, והוא מהר מאד איבד את הקהל שלו. גם שהוא בהמשך ההרצאה עבר לדברים יותר קונקרטיים, האנשים כבר היו רדומים ולא התעוררו. לדעתי הנושאים שהוא דיבר עליהם היו מאד חשובים ומעניינים, בעיקר לקהל הזה, ובידיים של מרצה אחר (נוסח יוסי תאגורי) המסר היה עובר יותר טוב, ובפעם הבאה יותר אנשים היו מודים בכך שהם עובדים עם כלים של מיקרוסופט.

השלב הבא הוא הפסקת קפה וזה חשוב מאד על מנת להתעורר מההרצאה.

ארוחת בוקר מול הים Intel Software Tools Developer Seminar

אני נוהג לפעמים לבקר בימי עיון וסמינרים שמארגנת אינטל בארץ. שלא יחשוב מישהו שישי לי משהו נגד AMD אבל פשוט אף אחד מ AMD לא טורח ליידע אותי על כנסים טכניים שהם עורכים בארץ ואילו מאגרי תוכנה לא מפספסים. לאינטל יש המון כלים מעניינים שנועדו לקהלים רבים של מפתחים ובתנאי שאתה משתמש ביע"מ-ים של אינטל. אני חסיד גדול של VS אבל יש דברים ש Vtune יודע לעשות ואף כלי אנליזה של VS לא יכול לעשות (בין השאר בגלל ש VS הוא Platform Independent). גם נושא ה Paralel Processing עם TBB וכלים וספריות נוספות הוא נושא שנמצא בחזית הטכנולוגיה וגם אם אתה בסופו של דבר בגלל התאימות משתמש בכלים של מיקרוסופט, אתה עדיין צריך לדעת מה קורה מסביב, כדי לקבל פרופורציות.

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

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

Intel 108 Intel 106