יום רביעי, 20 ביוני 2018

342 Optibus

פרק 342 רן ואורי מארחים את איתן יזם ו CTO ב Optibus


  • 1:05 איתן מספר על עצמו ועל הרקע המקצועי שלו
  • 2:18 איתן מספר על Optibus, מתמקדים בתחום הסעת ההמונים, לוקחים דאטה מעיר שלמה ומוציאים תכנית פעולה לרכבים ונהגים כדי לעמוד בביקוש התחבורה בעיר תחת אילוצים וחוקים רבים למשל טעינת רכב חשמלי או מנוחת נהג
  • 6:20 נקודת ההתחלה למערכת שלהם היא כאשר הנסיעות כבר תוכננו אבל לא יודע איך הולכים לבצע את הנסיעות בהינתן המשאבים הקיימים, שיבוץ רכבים, נהגים ומשאבים נוספים למסימות הקיימות, זוהי בעיה NP קשה, ובצורה נאיבית מחשב לא יצליח לשבץ בזמן סביר
  • 8:05 הפרויקט התחיל כאשר איתן ועמוס השותף שלו היו במהלך תואר במתמטיקה ומדעי המחשב, ונחשפו לעולם הבעיה הזה, ובהתחלה התמקדו בבעיה מצומצמת יותר בה יש רק רכבים ומתעלמים מהנהגים והשתמשו בפתרונות מעולם הגרפים בה כל נסיעה היא קודקוד בגרף, וקשת בין  2 נסיעות מסמנת רכב היכול לבצע נסיעה אחת ואחריה את הנסיעה השניה
  • 9:50 כאשר רוצים לכסות את כל הנסיעות בגרף כזה בעל עשרות אלפי קודקודים ומליוני קשתות, אפשר לתאר את זה על ידי כיסוי הגרף במסילות כאשר מסילה היא רצף קודקודים מחובר ורוצים כמה שפחות מסילות המכסות כמה שיותר קודקודים, זוהי הפשטה של הבעיה בה הם התחילו
  • 11:05 בעולם האמיתי הבעיה מסובכת יותר למשל לא דובר על חניונים ואיפה הרכב חונה, רכבים צריכים להיטען ונכנסים למורכבות של שיטות חיפוש בשילוב המון משתנים
  • 12:55 הכניסה של נהגים הופכת את הבעיה למורכבת בהרבה כי החוקים והאילוצים על נהגים הם רבים בדומה לבעיות של תכנון לינארי רק בסקייל גדול מאוד, נהג יכול לבצע חתיכת עבודה מרכב מסוים לרדת מהרכב להפסקה ולעבור רכב, אז צריך לחלק את המסילות לתתי-מסילות ולייצר סידור עבודה לרכבים, פה נכנסים לתכנון לינארי עם מיליארדי משתנים, החוכמה היא לצמצם את עולם החיפוש בצורה חכמה ולבזר את פתרון הבעיה להרבה מחשבים
  • 14:35 אחד הדברים המייחדים את Optibus היא היכולת לתת תכנית לעיר שלמה בסידרי גודל של שניות עד דקות בשונה מימים בפתרונות אחרים
  • 16:30 איתן ועמוס הקימו את החברה ב2014 ממרתף בנתניה, כאשר די בהתחלה כבר הייתה להם עיסקה עם אגד והתחילו בגיוס כספים, כיום הם מונים מעל 50 איש ויושבים בתל אביב ועובדים בארה״ב אנגליה אוסטרליה וסינגפור
  • 19:45 מעבר לתכנון בהנתן דאטה ידוע, הם מקבלים דאטה מסיגנלים של GPS ומזה מקבלים תובנות על איך התנהלה התכנית בשטח ומה הקורלציה בין התכנית לבין הביצוע בפועל, על המידע הזה מריצים אלגוריתמים של למידת מכונה ומקבלים פרדיקציה על איך התכנית הולכת להתנהג בפועל
  • 24:20 יש דמיון רב לתכנון טיסות, ההבדלים העיקריים הם שתכנון טיסות זה סקייל הרבה יותר קטן, ובאוטובוס נסיעה ריקה למשך כמה תחנות היא יותר נסבלת מלהוציא טיסה ריקה
  • 28:30 רן מסכם שיש פה בעיה אלגוריתמית קשה הדורשת הרבה כח חישוב, חלק מהבעיות הן NP קשות, ושואל איך ניתן לפתור את הבעיות האלה בזמנים של שניות
  • 29:20 יש הרבה דברים בהם השתמשו כדי לבצע את זה, דבר ראשון עובדים בפייתון, וכאשר עשו בנצ׳מארק מול שפות אחרות פייתון יצא איטי בסדר גודל, אבל כאשר השתמשו ב pypy שהוא אינטרפטר לפייתון העושה JIT compilation הגיעו לביצועים בסדר גודל של Node 
  • 31:45 בנוסף כאשר רצו לעשות רדוקציה לבעיה בגרף או למדל בעיה מתמטית כתבו בעצמם ב CPP
  • 32:20 את הדאטה טרום חישוב שומרים בMongoDB, את הדאטה שמייצרים תוך כדי אופטימיזציה מתחלק לחלק בזיכרון וחלק בדיסק כתלות בביזור
  • 33:30 ניצלו את היכול של Linux לעשות fork ל process ולהצביע על אותו מקום בזכרון כאשר לא כותבים אליו וכך חסכו סריאליזציה ודי-סריאליזציה של דאטה , זה מאפשר לנצל הרבה cores במחשב אחד
  • 35:50 כשרצו למקבל על כמה מכונות היה שלב בו השתמשו הרבה ב EFS כי היה נח שמי שמתחיל את העבודה כותב קובץ של כמה מאות מגה ושאר התהליכים קוראים אותו
  • 36:35 כעת חשבו על מיקבול גדול יותר, פה נכנס הקונספט של serverless, מכיוון שאופי העבודה הוא ספורדי ואפשר לקבל מספר אדיר של cores ברגע ולשלם רק על זמן העבודה
  • 37:55 אמזון מגבילים את מספר הקורים והמכונות ועכשיו הם נמצאים בשלב של poc עם בינאריס שנותנים latency נמוך ואפשרות להבנה של הסטייט
  • 39:45 על מנת לחסוך זמן החימום של ה process שיכול להגיע לעשר שניות ובסקייל של Optibus זה סדר גודל של יום בגלל מספר התהליכים, משתמשים ב snapshot של ה process לאחר חימום
  • 42:20 רן שואל האם השימוש ב copy-on-write ישים גם ב lambda, איתן מסביר שה serverless infra לא נותן מספיק cores ל process על מנת לנצל את זה
  • 45:05 איתן מציין שסוג החברות שעודות איתם הם לא רק חברות תחבורה, אלא כל חברה שצריכה הסעות המונים, למשל Facebook שצריכים להסיע את העובדים שלהם, ולדעתו התחום לקראת פריחה רצינית
  • 50:30 יש הטוענים שרכבים אוטונומיים יורידו את מספר המכוניות על הכביש כי נחלוק רכבים, מצד שני יש הטוענים כי מספר הנסיעות יעלה, איתן חושב שרק רכבים קטנים אוטונומיים לא יפתרו את הבעיה לבד אלא שילוב של נסיעות המונים עם רכבים אוטונומיים


הקובץ נמצא כאן, האזנה נעימה ותודה רבה לדניאל שלו על התמלול

אין תגובות:

פרסום תגובה