הבית > תערוכה > תוכן

מעבד מרובה ליבות

Mar 14, 2019

גרסה מיושנת של יישום אנטי וירוס עשויה ליצור חוט חדש עבור תהליך סריקה, בעוד פתיל GUI מחכה פקודות של המשתמש (למשל לבטל את הסריקה). במקרים כאלה, ארכיטקטורה מרובת ליבות היא תועלת קטנה עבור היישום עצמו בשל חוט יחיד עושה את כל הרמת כבד ואת חוסר היכולת לאזן את העבודה באופן שווה על פני מספר ליבות. תכנות קוד מרובה הליכי באמת דורש לעתים קרובות תיאום מורכב של חוטים והוא יכול בקלות להציג באגים עדין וקשה למצוא בשל interweaving של עיבוד על נתונים משותפים בין הנושאים (ראה בטיחות הבטיחות). כתוצאה מכך, קוד כזה הוא הרבה יותר קשה באגים מאשר קוד אחד הליכי כאשר זה שובר. יש חוסר נתפס המוטיבציה לכתיבת יישומים ברמת הליכי הצרכן בגלל הנדירות היחסית של הביקוש ברמת הצרכן לשימוש מרבי בחומרת המחשב. למרות יישומים מושחל לשאת קצת עונש ביצועים נוספים על מכונות מעבד יחיד, תקורה נוספת של הפיתוח היה קשה להצדיק בשל שפע של מכונות מעבד יחיד. כמו כן, משימות טורי כמו פענוח אלגוריתמים קידוד האנטרופי המשמשים רכיבי codec וידאו אינם ניתנים מקבילים כי כל תוצאה שנוצר משמש כדי לעזור ליצור את התוצאה הבאה של אלגוריתם פענוח האנטרופיה.


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


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


טכניקות תכנות מקבילי יכול להפיק תועלת ליבות מרובות ישירות. קיימים מספר מודלים קיימים של תכנות מקבילי כגון Cilk Plus, OpenMP, OpenHMPP, FastFlow, Skandium, MPI ו- Erlang. ניתן להשתמש בפלטפורמות מרובות ליבות. אינטל הציגה הפשטה חדשה עבור מקבילות C + בשם TBB. מאמצי מחקר אחרים כוללים את מערכת הקודשים של סימפלי, Cray's Chapel, מבצר השמש ו- X10 של יבמ.


עיבוד מרובה ליבות השפיע גם על היכולת של פיתוח תוכנה חישובית מודרנית. תכנות למפתחים בשפות חדשות יותר עשוי לגלות שהשפות המודרניות שלהם אינן תומכות בפונקציונליות מרובת ליבות. זה דורש מכן שימוש בספריות מספריות כדי לגשת לקוד כתוב בשפות כמו C ו Fortran, אשר לבצע חישוב מתמטיקה מהר יותר שפות חדשות כמו C #. אינטל של MKL ו- ACD של AMD נכתבות בשפות דוברות אלו ומנצלות עיבוד מרובה ליבות. איזון עומס העבודה של היישום על פני המעבדים יכול להיות בעייתי, במיוחד אם יש להם מאפייני ביצועים שונים. קיימים מודלים קונספטואליים שונים לטיפול בבעיה, למשל באמצעות שפת תיאום ובניית אבני תוכנה (ספריות תיכנות או פונקציות מסדר גבוה יותר). כל בלוק יכול להיות יישום יליד שונה עבור כל סוג מעבד. משתמשים פשוט באמצעות תוכנית אלה מופשטים ו מהדר חכם בוחר את הטוב ביותר יישום מבוסס על ההקשר.


ניהול מקביליות מקבלת תפקיד מרכזי בפיתוח יישומים מקבילים. השלבים הבסיסיים בעיצוב יישומים מקבילים הם:


מחיצות

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

תקשורת

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

אגלומראציה

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

מיפוי

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

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


רישוי

ספקים רשאים לקבל רישיון "לכל מעבד". זה יכול לעורר עמימות, כי "מעבד" עשוי להכיל או של ליבה אחת או שילוב של ליבות.


בתחילה, עבור חלק מתוכנות הארגון שלה, המשיכה מיקרוסופט להשתמש במערכת רישוי לכל שקע. עם זאת, עבור תוכנות מסוימות כגון BizTalk Server 2013, SQL Server 2014 ו- Windows Server 2016, מיקרוסופט עברה לרישיון לכל ליבה.

Oracle Corporation מעריכה AMD X2 או מעבד ליבה כפולה של אינטל כמעבד יחיד, אך משתמשת בערכים אחרים עבור סוגים אחרים, במיוחד עבור מעבדים עם יותר משתי ליבות.