
ביקורת ספר: האם תכנות מקבילי קשה, ואם כן — מה אפשר לעשות
אנדרו הלבר פרסם ביקורת מפורטת על ספר הלימוד החינמי של פול אי. מקקני על תכנות מקבילי — מה עבד, מה לא, ואיפה הטקסט נשאר צמוד לליבת לינוקס.
אנדרו הלבר פרסם ביקורת מפורטת על ספר הלימוד החינמי המקוון «Is Parallel Programming Hard, And, If So, What Can You Do About It?» מאת פול אי. מקקני, מחבר מנגנון הסנכרון RCU בליבת לינוקס. הלבר קרא את רוב הספר במהלך חופשה משפחתית ומתאר מה עבד היטב, מה לא, ואיפה הטקסט נשאר בהקשר של ליבת לינוקס.
ממערכות מבוזרות לקוד ללא נעילות
אחרי עשור סביב TLA⁺ ומערכות מבוזרות, הלבר הגיע לספר בעקבות כנס Software Should Work 2026 בקולומביה, מיזורי. שיחה שם עם פיליפ פיזלו על הקושי לכתוב אוסף אשפה מקבילי ללא נעילות חשפה כמה מעט הוא ידע על מקביליות. פיזלו גם העיר ש־TLA⁺ אינה נוחה לנימוק על אירועים שמתרחשים ממש בו־זמנית, והדגיש את חשיבות הלינאריזביליות. הלבר חיפש ספר על תכנות ללא נעילות ולא על מוטקסים או העברת הודעות.
מטמוני מעבד, תעלולי מהדר ומונים
הפרק השלישי, «Hardware and its Habits», מסביר מה עושה מעבדים מודרניים למהירים ומה איטיים, כולל המקרה שבו ליבה כותבת לכתובת שאינה במטמון שלה. פרוטוקול הקוהרנטיות MESI מוזכר רק בנספח, אך הידע עליו מבהיר את שאר הספר: ליבות x86 כותבות למטמונים שלהן וזקוקות לבעלות בלעדית על שורת המטמון, ולכן כתיבה ממש בו־זמנית לאותה כתובת אינה מתרחשת — אם כי כתיבה החוצה כמה שורות מטמון עלולה להיקרע.
הפרק הרביעי, «Tools of the Trade», מתאר מה מהדר עלול לעולל לקוד מקבילי רשלני: קריעת ומיזוג טעינות ואחסונים, סידור מחדש של קוד, טעינות ואחסונים מומצאים, טרנספורמציות store-to-load ומחיקת קוד מת — ולפני שהמעבד מוסיף הפתעות משלו. הפרק החמישי, «Counting», הוא לב הספר: כעשרה דרכים שבהן כמה תהליכונים מגדילים מונה אחד; תוספות אטומיות נאיביות נפסלות בגלל ביצועים גרועים, והפרק מסתיים במונה signal-theft limit. הלבר הכי אהב מונים סטטיסטיים מבוססי מערך לכל תהליכון: הם דומים ל־conflict-free replicated datatypes מעולם המערכות המבוזרות וממחישים את מחיר ה־false sharing.
שורה תחתונה
הביקורת המרכזית היא שהדוגמאות ספציפיות מאוד לליבת לינוקס: העבודה של C++11 ו־C11 על מודלי זיכרון, כמו std::memory_order, זוכה רק לפסקאות קצרות, ודיונים ותיקים על מרוצי נתונים שפירים מדולגים. תכנות ללא נעילות מופיע רק בפרק 14, וסדר הזיכרון בפרק 15 — עד אז כבר פנה למקורות חיצוניים. הקישורים הפנימיים, שמועילים לשאלות בדיקה עצמית, אינם נוחים בקוראי ספרים אלקטרוניים. אף על פי כן, הלבר מכנה את הספר מעולה: הוא עורר בו רצון ללמוד עוד, והנושא הבא שלו יהיה איסוף אשפה בביצועים גבוהים.
SiTech — פיתוח אתרים בכוח ה-AI
אנחנו בונים אתרים מהירים ומודרניים ומשלבים AI בתהליכי עבודה אמיתיים. יש לכם פרויקט או שאלה? נשמח לעזור.