על Windows ומעבדים מעל 16 ליבות

בשנים האחרונות אנחנו רואים יותר ויותר מעבדים חדשים מ-AMD עם יותר ויותר ליבות במחירים מאוד מפתיעים, הן לתחנות עבודה והן לשרתים. להלן 2 דוגמאות:

  • מעבד AMD Threadripper 2990WX עם 32 ליבות ו-64 נימים עולה 1700$ (מיועד לתחנות עבודה)
  • מעבד AMD EPYC 7551P עם 32 ליבות ו-64 נימים עולה $2700 (מיועד לשרתים בעלי תושבת מעבד יחידה)

לשם השוואה: המעבד לתחנות עבודה ושרתים הכי זול עם 16 ליבות מאינטל (Xeon SP Gold 6130) עולה נכון להיום $1932. ההצעה הזולה ביותר מעל 16 ליבות של אינטל היא מעבד Xeon Gold 6140 וכיום מחירה הוא $2500, כך שבמחיר של מעבד אחד מאינטל אפשר לקנות מעבד עם כמות כפולה של ליבות לתחנות עבודה, ובתוספת של 200$ אפשר לרכוש מעבד לשרת עם כמות כפולה של ליבות (בהשוואה ל-6140 של אינטל).

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

אך מה יקרה אם נרצה לקנות מכונה כזו להריץ אותה כתחנת עבודה או כשרת Windows (לא וירטואלי)? צפו לביצועים נמוכים ב-30-50% בהשוואה ללינוקס עם אותם מעבדים.

כשאינטל שחררה את משפחת Xeon SP, אינטל הציגה בגאווה כמה המעבדים לשרתים (אז לא היה Threadripper) שלה הרבה יותר מהירים ממעבדי EPYC של AMD. סקירות עצמאיות הוכיחו שאינטל פחות או יותר צודקת (יש מספר מבחנים די תמוהים של אינטל ועל כך הופיע פוסט ב-Anandtech). רוב הסוקרים ציינו כי הבעיה של הביצועים קשורה לארכיטקטורת ה-NUMA של AMD.

שנתיים חלפו מאז ש-AMD הוציאה את משפחת מעבדי EPYC לשרתים. AMD הוציאה באותו זמן את משפחת ה-Threadripper דור ראשון (עד 16 ליבות) ואת משפחת ה-Threadripper דור שני (מבוסס על ארכיטקטורת +ZEN). עם הדור השני, AMD הוציאה את המעבדים 2970WX ואת 2990WX -האחד עם 24 ליבות והשני עם 32 ליבות. ההבדל בין מעבדים אלו לבין המעבדים ממשפחת EPYC – היא שמעבדי Threadripper משתמשים ב-4 ערוצי זכרון ולחלק מהליבות אין גישה ישירה לזכרון, בשעה שמעבדי EPYC מקבלים גישה ל-8 ערוצי זכרון.

המחיר הזול גרם ללא מעט אנשים להתעניין לראשונה במעבדים עם 24 ו-32 ליבות ולא מעט אנשים רכשו אותם. המעבדים עובדים מצוין אולם מי שבחן אותם על Windows קיבל "הפתעה" – גם כאן, Windows הציג ביצועים נמוכים ב-30-50% בהשוואה ללינוקס (הבעיה אינה קיימת בדגמים כמו 2950X שהם עם 16 ליבות).

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

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

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

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

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

לסיכום: אין מנוס מלציין משהו פשוט. מיקרוסופט נרדמה בעמידה. מיקרוסופט עם Windows 2019 בהחלט מעוניינת שתריצו Kubernetes וקונטיינרים, אבל אם נסתכל לדוגמא במבחנים של Phoronix על מכונה עם 40 ליבות שמריצה Windows Server בגרסאות שונות ("על הברזל") מול הפצות לינוקס שונות – לינוקס ברוב המקרים פשוט "בועט" ב-Windows, גם כשלא מדובר כלל במעבדים של AMD. מישהו שם צריך להתעורר.

פוליגרף ככלי בלתי אמין לבדיקות

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

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

כמובן שכל המשתתפים הרימו גבה, ועל כך הפוסט הזה.

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

אתן דוגמא על עצמי: עד היום עברתי בין 5-6 בדיקות פוליגרף עבור חברות שונות. את כולן עברתי בהצלחה למעט אחת. מה קרה באותה בדיקה אחת שלא עברתי? התשובה קצת מורכבת: ביום חם כשהטמרפטורות משתוללות ואחוזי הלחות מגיעים ל-80-90%, הגוף שלי ובמיוחד הידיים שלי – מתחילים לרעוד. הפתרון לכך הוא לשבת מתחת למזגן, לשתות משהו קר מתוק ולאחר כרבע שעה לערך כשהגוף מתקרר והזיעה מפסיקה, הגוף שלי חוזר לתפקוד נורמלי. הגעתי ביום כזה למשרד שנראה כמו ביקור במחנה מעצר בריטי משנות ה-40 (אין מזגן, יש מאוורר עתיק, ואין מים). ביקשו ממני למלא שאלון במחשב (הרבה זמן לא ראיתי מחשב 286 עם מסך ירוק!) ולאחר מכן נשאלתי מספר שאלות בעל פה וניסיתי להסביר בנימוס שיש לי בעיה עקב החום. אותו "חוקר" לא ממש התייחס, חיבר אליי את הסנסורים והתחיל לשאול שאלות. לפי קפיצות המחט הבנתי עוד בהתחלה שלעבור – אני לא יעבור, אפילו בשאלה "האם שמך חץ" המחט קפצה ואותו "חוקר" פשוט התעלם. לאחר יומיים קיבלתי תשובה שלא עברתי. דמיינו אותי מופתע!

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

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

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

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

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