Whatsup - לינוקס, תוכנה חופשית וקוד פתוח בעברית

מילון מונחים/מושגים - מה זה core ? מה זה dual core ? מה זה hyperthreading ?

Anonymous - 06/01/2011 - 09:39
נושא ההודעה: מה זה core ? מה זה dual core ? מה זה hyperthreading ?
אני יודע שכל המילים האלו הם טכנולוגיות
אבל מה כל אחד מהם אומר ?
ניסיתי לקרוא את מאמרים בויקיפדיה אבל הם רק סיבכו אותי עוד יותר

אז מה כל אחד מהם אומר ?
sijp - 06/01/2011 - 09:49
נושא ההודעה:
בגדול זה אומר כמה תהליכים המעבד מסוגל לבצע באמת במקביל.
העניין הוא שמעבד בעל ליבה אחת לא מסוגל באמת לבצע 2 תהליכים במקביל. המקבילות היא מדומה (הוא עובד מהר וכל פעם עושה קצת מכל תהליך ואז זה נראה כאילו הוא עושה שני דברים במקביל). כשיש לך יותר מליבה אחת אתה יכול לבצע יותר דברים במקביל באמת וזה משפר את יכולות ה־multitasking שלך.
Anonymous - 06/01/2011 - 10:11
נושא ההודעה:
הבנתי

אבל מה ההבדל בין כל אחת מהטכנולוגיות האלו ?
מה זה core ?
מה ההבדל בין hyperthreading לבין dualcore ?
Anonymous - 06/01/2011 - 10:25
נושא ההודעה:
Anonymous :
הבנתי

אבל מה ההבדל בין כל אחת מהטכנולוגיות האלו ?
מה זה core ?
מה ההבדל בין hyperthreading לבין dualcore ?

core הוא מעבד מלא שארוז ביחידה אחת, כך שלוח עם תקע למעבד יחיד יכול להריץ כמה cores ולמעשה מדובר בכמה מעבדים ממש.
hyperthreading זו שיטה המפצלת מעבד יחיד לשניים, אבל רק באופן חלקי. ביצוע פקודת מכונה כרוך בכמה שלבים - חישוב הכתובות המעורבות, הבאת הנתונים אל היחידה הלוגית, הביצוע בפועל ואיחסון התוצאה. hyperthreading מאפשר למעבד יחיד לבצע חלק מהתהליך במקביל עבור שני תהליכים בו זמנית (חישוב כתובות והבאת נתונים אבל לא הביצוע בפועל - זה יתבצע סדרתית)
ארתיום - 06/01/2011 - 10:27
נושא ההודעה:
בגדול:

- hyperthreading זה הרצת שני חישובים מקביל על אותה ליבה בעזרת החומרה. כך שאתה רואה כבכיכול שני עבדים אבל בפועל יש מעבד אחד.
- dual core - זה הרצת שני חישובים במקביל בשתי ליבות שונות לגמרי.


ימשל יש מעבדי iCore 5 עם שתי ליבות ו־4 threads: מבחינתך אתה תראה כאילו יש לך 4 מעבדים אבל בפועל ייהיו לך שתי ליבות.

מה שיקרה בפועל במצב כזה:

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

- אם תריץ אפליקציה אחת היא תסיים לרוץ על המעבד הזה בכ-10 שניות.
- אם תריץ שתי אפליקציות שתיהן תסיימנה לרוץ על המעבד הזה גם בכ-10 שניות
- אם תרי. ארבעה אפליקציות אז ארבעתן תסיימנה לרוץ על המעבד הזה בד"כ בזמן בין 10 ל־20 שניות (בד"כ קצת פחות מ־20 אבל תלוי באפליקציה - זה יכול להיות קרוב ל-20 וגם קרוב ל-10). כאשר אם היה לך רק 2 cores בלי hiperthreading אז הריצה הייתה מסתיימת ב-20 שניות (לא פחות) ואם היה לך 4 ליבות אמתיות הריצה הייתה מתסיימת ב-10 שניות.

מדוע hiperthreading יכול לעזור לפעמים.

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

לכן שיפור ביצועים מאוד תלוי באפליקציה.
Anonymous - 06/01/2011 - 10:31
נושא ההודעה:
בגדול core זה ליבה שמבצעת את הפקודות של המחשב בעצם זה CPU כשאומרים dual core מתייחסים לזה שיש למעבד שתי ליבות פיזיות כלומר בעצם שני CPU שכל אחד מהם נפרד מהשני על אותו סיליקון כך שהם יכולים לחלק ביניהם את העבודה. ככל שאתה מגדיל את מספר ה- core אתה מגדיל את רמת הביצועים הכללית של המחשב ל- AMD יש מעבדים עם 6 ליבות כלומר כביכול מחשב בעל 6 מעבדים נפרדים.
hyperthreding זה טכנולוגיה של אינטל שמדמה יותר ליבות ל- CPU כך שזה מגדיל את הביצועים ללא הוספה פיזית של ליבות עיבוד.
yp - 06/01/2011 - 11:21
נושא ההודעה:
כדאי להזכיר שאם לא מדובר בצרכים מקצעיים ,לא רצוי בכלל יותר מ 2 ליבות "אמיתיות" גם לא למשחקים
מוכח מדעית~(+-)!
Anonymous - 06/01/2011 - 12:09
נושא ההודעה:
yp :
כדאי להזכיר שאם לא מדובר בצרכים מקצעיים ,לא רצוי בכלל יותר מ 2 ליבות "אמיתיות" גם לא למשחקים
מוכח מדעית~(+-)!


איפה ההוכחה ה"מדעית"? בכל מקרה כשהאפליקציה יודעת לעשות שימוש במספר ליבות אתה תקבל ביצועים יותר טובים ככל שיהיו יותר ליבות. משחקים בדר"כ יודעים להשתמש רק בליבה אחת ככה שגם 2 ליבות זה לא יעזור. ולמה המרכאות על ה"אמיתיות"? זה באמת שתי ליבות.
yp - 06/01/2011 - 13:18
נושא ההודעה:
פתח את מנתר המעבד האהוב עליך ותקבץ איזה קובץ ל gz.tar , או אולי נסה להמיר קבצי שמיעה ל ogg או סרטים לכל פורמט שהוא לא X264
יאללה תאמת עבדו עלינו סתם דיכאון שקניתי מעבד עם 4 ליבות ,שחד וחלק מחשב במפרט דומה עם מעבד יותר "נחות" "בזול" או מה שתרצה, עושה לי את הפעולות הפשוטות היומיות יותר מהר
ואמרתי את האמיתיות בהקשר לדיון ,ראה מעלי הסבר.
Anonymous - 06/01/2011 - 13:24
נושא ההודעה:
yp :
פתח את מנתר המעבד האהוב עליך ותקבץ איזה קובץ ל gz.tar , או אולי נסה להמיר קבצי שמיעה ל ogg או סרטים לכל פורמט שהוא לא X264
יאללה תאמת עבדו עלינו סתם דיכאון שקניתי מעבד עם 4 ליבות ,שחד וחלק מחשב במפרט דומה עם מעבד יותר "נחות" "בזול" או מה שתרצה, עושה לי את הפעולות הפשוטות היומיות יותר מהר
ואמרתי את האמיתיות בהקשר לדיון ,ראה מעלי הסבר.


אמרת הוכחה מדעית עדיין לא הבאת אותה. תקבץ קובץ gz זה לא הוכחה מדעית.
sijp - 06/01/2011 - 14:46
נושא ההודעה:
yp :
פתח את מנתר המעבד האהוב עליך ותקבץ איזה קובץ ל gz.tar , או אולי נסה להמיר קבצי שמיעה ל ogg או סרטים לכל פורמט שהוא לא X264
יאללה תאמת עבדו עלינו סתם דיכאון שקניתי מעבד עם 4 ליבות ,שחד וחלק מחשב במפרט דומה עם מעבד יותר "נחות" "בזול" או מה שתרצה, עושה לי את הפעולות הפשוטות היומיות יותר מהר
ואמרתי את האמיתיות בהקשר לדיון ,ראה מעלי הסבר.


אוי מסכן Wink.

אף אחד לא עבד עליך, זו אשמתך בלבד שבחרת מחשב שלא מתאים לצרכים שלך.
אני בטוח שלצרכים הלא מקצועיים שלי 4 ליבות יעשו המון טוב (כן, חנוק לי לפעמים עם רק 2 ליבות).
yp - 06/01/2011 - 15:09
נושא ההודעה:
השוואה בין
AMD Phenom X4 9700 Sample * 2.40 GHz, DDR2-1066 (Agena)
ל
AMD Phenom X3 8750 * 2.40 GHz, DDR2-1066 (Toliman)

שימו לב לתוצאות שבלינוקס ... בכל מקרה אותה מהירות שעון פחות ליבות ,ההשוואה לפניכם
http://www.tomshardware.com/charts/desktop-cpu-charts-q3-2008/compare,842.html?prod[2169]=on&prod[2173]=on

דרך אגב אני אשמח לקצת עידוד
Anonymous - 06/01/2011 - 15:43
נושא ההודעה:
http://www.tomshardware.com/charts/desktop-cpu-charts-2010/compare,2429.html?prod[4437]=on&prod[4442]=on

Compare Phenom II X6 1090T Black Edition Hexa Core Processor, Phenom II X4 955 Black Edition Quad Core Processor

השוואה בין 6 core ל- 4 core באותה מהירות שעון.
Anonymous - 06/01/2011 - 15:53
נושא ההודעה:
Anonymous :
http://www.tomshardware.com/charts/desktop-cpu-charts-2010/compare,2429.html?prod[4437]=on&prod[4442]=on

Compare Phenom II X6 1090T Black Edition Hexa Core Processor, Phenom II X4 955 Black Edition Quad Core Processor

השוואה בין 6 core ל- 4 core באותה מהירות שעון.


הפנום X6 מוביל בכל קטגוריה למעט משחקים ו- GPU perfromance (שזה קשור).
כל השאר: וידאו ו- image encoding ועריכה, הצפנה fritz chess וגם archiving .
אז מה שאמרת לא מוכח מדעית. ההיפך למעשה.
Anonymous - 06/01/2011 - 15:57
נושא ההודעה:
100$ לפח הזבל!
הייתי בהחלט אומר, שהטעון של YP ניפץ פה מיתוס... Rolling Eyes Razz
Anonymous - 06/01/2011 - 16:15
נושא ההודעה:
yp -תראה, זה תלוי באלגורתים, תוכנה (המימוש של האלגוריתם וה OS ), חומרה, ןכו...
מה בטוח שבעולם האמיתי היחס בין מספר ליבות לביצועים הוא לא לינארי.

לגבי GZIP , נסה את זה:
http://www.zlib.net/pigz/
וגם קח בחשבון שאם את עובד עם קבצים ה HD הוא לרוב צוואר בקבוק.


דווקא לדעתי משחקים (על ה PC ) זה מקום קלאסי להרבה ליבות כי המשחקים המודרניים
מורכבים מהרבה משימות שרצות במקביל, פלוס הם צרכים לחלוק את המכונה עם
עוד הרבה דברים ברקע ואז אתה משלם מחיר על כל ה context switching שה OS
עושה - ווינדוס היא אגרסיבית במיוחד בעניין הזה, בגלל זה יש את האשליה שווינדוס מהירה
יותר תחת עומס - נכון, היא מגיבה מהר יותר אבל משלמת מחיר.

אבל בתכלס היום הטרנד הוא להשתמש ב GPU בשביל דברים שדורשים הרבה חישובים
מקביליים כמו collision detection ובכלל כל מה שקשור לפיזיקה (תקרא על havok ו
physx ).
yp - 06/01/2011 - 17:17
נושא ההודעה:
בכל זאת מילה טובה היום המצב רק משתפר +הבטים נוספים של יתרונות בצריכת חשמל ופיזור חום ,שאלו הם גם יתרונות גדולים בריבוי ליבות
הלוואי שהתוכנה תתקדם באותו קצב של החומרה ...אני רק אומר לא צריך לקפוץ על כל עגלה
Anonymous - 06/01/2011 - 18:06
נושא ההודעה:
ורק בשביל הבלבול: core הוא גם מונח עתיק לזכרון. מכאן גם:
http://en.wikipedia.org/wiki/Core_dump
(קבצים גדולים בשם core שמופיעים פתאום)
Anonymous - 08/01/2011 - 10:58
נושא ההודעה:
אני חושב שאני מבין

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

וdual core זה למעשה שני שבבים של מעבדים (אותו סוג) על אותו צ'יפ קטן, אני צודק עד עכשיו ?

אבל רגע אחד, אם יש לי שני מעבדים לא יכול לקרות מצב של race condition או משהו ?
איך שני המעבדים יודעים לחלק ביניהם את העבודה ? (מעבד 1 עשה פעולה על פרוסס X לפני עשר שניות ואז הפקודה הבאה באה למעבד 2 על אותו פרוסס )
איך שני המעבדים יודעים שאסור להם לגשת ביחד לאותה כתובת ?

ויותר מזה, למה פשוט לא ליצור עוד ועוד מעבדים על אותו צ'יפ ? קראתי שיש quad core אז למה hyperthreading עדיף ? (או שהוא לא עדיף ?)
kaplan - 08/01/2011 - 12:16
נושא ההודעה:
והסבר נוסף בעניין: http://content.dell.com/us/en/enterprise/d/large-business/thread-cores-which-you-need.aspx?dgc=SM&cid=57468&lid=1479422
etal - 08/01/2011 - 12:44
נושא ההודעה:
ציטוט:
זה למעשה שני שבבים של מעבדים (אותו סוג) על אותו צ'יפ קטן, אני צודק עד עכשיו ?

כן, dual core זה שני מעבדים נפרדים על אותו שבב.

ציטוט:
אבל רגע אחד, אם יש לי שני מעבדים לא יכול לקרות מצב של race condition או משהו ?
איך שני המעבדים יודעים לחלק ביניהם את העבודה ? (מעבד 1 עשה פעולה על פרוסס X לפני עשר שניות ואז הפקודה הבאה באה למעותר מזה, למה פשוט לא ליצור עוד ועוד מעבדים על אותו צ'יפ ?בד 2 על אותו פרוסס )
איך שני המעבדים יודעים שאסור להם לגשת ביחד לאותה כתובת ?

התשובה פשוטה - הם לא יודעים.

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

ציטוט:
למה פשוט לא ליצור עוד ועוד מעבדים על אותו צ'יפ ?

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

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

ציטוט:
למה hyperthreading עדיף ?

hyperthreading לא עדיף, זו דרך זולה יחסית להוציא עוד קצת ביצועים מהמעבדים הקיימים.
Anonymous - 08/01/2011 - 13:15
נושא ההודעה:
אבל לפי מה שאמרת כרגע אם עולה לייצר עוד מעבד על אותו צ'יפ
הרי שעדיף ליצור עוד ט'ראד על אותו מעבד ובעצם להשתמש בhyperthreading

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


ציטוט:

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

מה העיקרון שאומר למעשה לתכנת בריבוי תהליכים ?
Anonymous - 08/01/2011 - 13:30
נושא ההודעה:
Question
מה עדיף?

זה?
אינטל: מעבד עם אלף ליבות? ממש לא מדע בדיוני

או זה?
מעבדים במהירות 1 טרה-הרץ


ואולי שילוב של השניים? Wink
etal - 08/01/2011 - 13:53
נושא ההודעה:
Anonymous :
אבל לפי מה שאמרת כרגע אם עולה לייצר עוד מעבד על אותו צ'יפ
הרי שעדיף ליצור עוד ט'ראד על אותו מעבד ובעצם להשתמש בhyperthreading

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

העיקרון שעומד מאחורי hyperthreading הוא שליבה רגילה שמריצה תהליך יחיד היא לא 100% יעילה. הליבה בנויה מיחידות חישוב שונות ויש רגעים שבהם היא מחכה למידע שיגיע מהזכרון או שבהם יחידת חישוב אחת מחכה לתוצאה של יחידת חישוב אחרת שעוד לא סיימה.
hyperthreading מאפשר לנצל את אותם רגעים מבוזבזים ומנסה למלא אותם בחישובים של ט'ראד אחר. מרוויחים ככה קצת (ארתיום כתב עד 20%) אבל לא מדובר פה בתוספת אמיתית של יחידות חישוב וזה לא בא במקום ריבוי מעבדים אמיתי שתמיד יתן ביצועים טובים יותר.

Anonymous :

מה העיקרון שאומר למעשה לתכנת בריבוי תהליכים ?

העיקרון הוא לנסות להפריד את התוכנה לתהליכים שונים שיכולים לעבוד במקביל, שיהיו כמה שיותר עצמאים ויזדקקו לכמה שפחות תאום ותקשורת ביניהם. כאמור כמה זה אפשרי מאוד תלוי בתוכנה ומה שהיא עושה, צריך לזכור שגם התאום והתקשורת בין התהליכים השונים זה משהו שדורש זמן ומשאבים מהמערכת וזה גם מסבך את התיכנות עצמו.
Anonymous - 08/01/2011 - 15:47
נושא ההודעה:
זה נכון ויפה אם יש לך מקביליות.

אבל אם יש לך כבר שתי ליבות, ואתה לא מנצל את זה, ה־hyper-threading סתם יוצר לך ארבעה "מעבדים" חלשים (שרוב הזמן שלושה מהם לא יעשו כלום) במקום שני "מעבדים" קצת יותר חזקים שרוב הזמן אחד מהם לא יעשה כלום.
Anonymous - 08/01/2011 - 16:14
נושא ההודעה:
צפריר :
זה נכון ויפה אם יש לך מקביליות.

אבל אם יש לך כבר שתי ליבות, ואתה לא מנצל את זה, ה־hyper-threading סתם יוצר לך ארבעה "מעבדים" חלשים (שרוב הזמן שלושה מהם לא יעשו כלום) במקום שני "מעבדים" קצת יותר חזקים שרוב הזמן אחד מהם לא יעשה כלום.

אז אתה אומר בעצם שאם אני אכבה את הHyper Threading בi7 920 שלי, המחשב יהיה מהיר יותר?
Anonymous - 08/01/2011 - 16:33
נושא ההודעה:
Anonymous :
צפריר :
זה נכון ויפה אם יש לך מקביליות.

אבל אם יש לך כבר שתי ליבות, ואתה לא מנצל את זה, ה־hyper-threading סתם יוצר לך ארבעה "מעבדים" חלשים (שרוב הזמן שלושה מהם לא יעשו כלום) במקום שני "מעבדים" קצת יותר חזקים שרוב הזמן אחד מהם לא יעשה כלום.

אז אתה אומר בעצם שאם אני אכבה את הHyper Threading בi7 920 שלי, המחשב יהיה מהיר יותר?

כל הזמנים הם GMT + 2 שעות