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