אתרי אינטרנט

Parallelism צרכים Killer בקשה לאימוץ המוניים

Parallelism: The secret to great writing

Parallelism: The secret to great writing
Anonim

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

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

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

חוקרים בברקלי מנסים להביא מקבילות על ידי החלפת פיסות קוד שנכתבו במקור באמצעות שפות scripting כמו Python ו- Ruby on Rails עם קוד חדש ברמה נמוכה. הקוד החדש מתמקד במשימות ספציפיות, כגון ניתוח דפוס קול מסוים ביישום זיהוי דיבור, אמר פטרסון בראיון. הקוד נכתב באמצעות OpenMP או MPI, ממשקי תכנות יישומים שנועדו לכתוב יישומים מקבילים ברמת מכונה.

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

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

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

כלים רבים מקביליות הזמינות כיום נועדו לרתום את יכולות עיבוד מקבילי של המעבדים יחידות עיבוד גרפיקה כדי לשפר את ביצועי המערכת. אפל, אינטל, Nvidia ו- Advanced Micro Devices הן בין החברות המקדמות את OpenCL, סביבת תכנות מקבילה שתתמוך במערכת ההפעלה הקרובה Mac OS X 10 של אפל, הקרויה גם Snow Leopard, אשר צפויה לצאת ביום שישי. OpenCL מתחרה עם מיקרוסופט, שמקדמת את כלי התכנות המקבילים של DirectX, ו- Nvidia, שמציעה את מסגרת ה- CUDA.

OpenCL כוללת שפת תכנות דמוית C עם ממשקי API (ממשקי תכנות יישומים) לניהול הפצה של גרעינים בחומרה כמו ליבות מעבד ומשאבים אחרים. OpenCL יכול לסייע ל- Mac OS לפענח וידאו מהר יותר על-ידי הפצת עיבוד פיקסלים על-פני יחידות עיבוד מרובות של CPU ועיבוד גרפי במערכת.

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

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

קוזיארקיס אמר סטנפורד הקימה מעבדה שמטרתה "לעשות פיתוח יישומים מקבילים מעשי עבור ההמונים", על ידי 2012 החוקרים עובדים עם חברות כמו אינטל, AMD, IBM, Sun, Hewlett-Packard ו- Nvidia.

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