עבור לתוכן

האם יתכנו 2 מעבדים שלא מנצלים 100% מכוחם ועובדים במהירויות שונות? (ז"א ביצועים שונים)

Featured Replies

פורסם

היי,

בעקבות הפוסט הזה:

http://hwzone.co.il/community/threads/526801-Radeon-HD-6850-האם-אני-מקבל-ביצועים-הגיוניים

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

מתנצל על ההקפצה הקצת ישנה-

זה הגיוני שהבעיה של הבחור היא במעבד?

לפי הגרפים שהוא צירף בשום נקודה המעבד לא הגיע ל100% שימוש וגם לא הליבה הגרפית. אז זה ייתכן שהמעבד הזה בכל זאת מגביל?

אם כן האם זה בגלל שעונים נמוכים יותר? או אולי פחות IPC? כלומר 2 מעבדים עם 2 ליבות (למקרה שהמשחק לא מנצל 4) בפחות מ 100% שימוש (אותו כרטיס גרפי)- אחד מהם יכול לתת יותר FPSים?

אפשרי?

תודה.

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

תודה.

פורסם

קירטועים במשחקי MMO יהיו גם עם המפרטים הכי מטורפים בעולם. בזמנו, שיחקתי lineage 2 על כמעט אותו מפרט שיש לי היום וגם הוא קירטע לי באיזורים עירוניים.אגב, אני גם משחק עכשיו גילד וורז 2 והמשחק מקרטע אצלי ב-lions arch, ממש יורד לסביבות 17 FPS. כנ"ל גם באירועים של דרקונים ו-WVW.

פורסם

לאינטל יש TURBO BOOST בדגמי ה CORE I שלהם, אם יש פחות ליבות בשימוש, הם מקבלים SPEED BOOST.

פורסם
  • מחבר
קירטועים במשחקי MMO יהיו גם עם המפרטים הכי מטורפים בעולם. בזמנו, שיחקתי lineage 2 על כמעט אותו מפרט שיש לי היום וגם הוא קירטע לי באיזורים עירוניים.אגב, אני גם משחק עכשיו גילד וורז 2 והמשחק מקרטע אצלי ב-lions arch, ממש יורד לסביבות 17 FPS. כנ"ל גם באירועים של דרקונים ו-WVW.

ז"א שיכול להיות שהקירטוע בכלל לא אצלך?

(כלומר לא בקופסא אלא בחיבור האינטרנט או בכלל אצלם).

לאינטל יש TURBO BOOST בדגמי ה CORE I שלהם, אם יש פחות ליבות בשימוש, הם מקבלים SPEED BOOST.

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

אבל אם המעבד לא מגיע ל100% שימוש במילא, איך זה עוזר? אם יש פקודות שצריך למלא הוא לא ישתמש במשאבים הפנויים (ויגיע ל100%)?

פורסם
  • מחבר

... קוד מוחרבן...

מצטער על הבורות, אבל האם לא גם קוד מחורבן ינצל את כל ה100% של ליבת המעבד?

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

או שבקוד כזה המתכנת נותן למחשב לעבוד נניח על 2 פקודות שגוזלות 20% מהליבה הבודדת וכל המיליון פקודות שנשארו, מחכות בתור כדי לקבל מידע מהפקודות שעובדו, וככה מעבדים אותם זוגות -זוגות?

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

אלא אם התחום עובד בכלל בצורה אחרת ורשמתי כרגע דברים לא קשורים?

נערך על-ידי abatiah

פורסם
.

אלא אם התחום עובד בכלל בצורה אחרת ורשמתי כרגע דברים לא קשורים?

לא קשורים.

פורסם
  • מחבר

:silly:

אפשר להרחיב?

פורסם

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

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

הבנתי.

אממ... אם אז אם נחזור לשאלה המקורית, זה אומר שגם בקוד מחורבן 2 המעבדים יעבדו באותה מהירות? (ז"א שהטורבו בוסט של אינטל לא יעזור).

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

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

פורסם

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

למעשה נצילות שהיא מעל ל- 80-85% היא כבר בעייתית. ההסבר מגיע מתורת התורים שאומרת שכאשר יש לך צרכן (המעבד ש"צורך" פקודות) של פקודות שמגיעות בהתפלגות פואסונית (קירוב של המציאות), זמן ההמתנה בתור (מרגע שהפקודה נשלחת עד שנכנסת למעבד ומתחילה להתבצע) עולה אקספוננציאלית בנצילות, ולכן בנצילויות גבוהות מאוד, התור "יתפוצץ" והזמן הזה יתארך משמעותית (במונחים של CPU כמה שניות זה נצח), מה שגורם לתקיעות המעצבנות (אפילו של העכבר ב- desktop של וינדוז) שכולנו חווינו מתישהו בחיינו הדיגיטליים.

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

פורסם

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

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

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

למעשה נצילות שהיא מעל ל- 80-85% היא כבר בעייתית. ההסבר מגיע מתורת התורים שאומרת שכאשר יש לך צרכן (המעבד ש"צורך" פקודות) של פקודות שמגיעות בהתפלגות פואסונית (קירוב של המציאות), זמן ההמתנה בתור (מרגע שהפקודה נשלחת עד שנכנסת למעבד ומתחילה להתבצע) עולה אקספוננציאלית בנצילות, ולכן בנצילויות גבוהות מאוד, התור "יתפוצץ" והזמן הזה יתארך משמעותית (במונחים של CPU כמה שניות זה נצח), מה שגורם לתקיעות המעצבנות (אפילו של העכבר ב- desktop של וינדוז) שכולנו חווינו מתישהו בחיינו הדיגיטליים.

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

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

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

שלישית, אני לא יודע איך סטודנטים בעבר הסתדרו ללא יוטוב. בנושאים מתמטיים ויקיפדיה מועילה רק למי שדובר מתמטית רהוטה.

רביעית, הנושא מעניין ותודה על ההכוונה, מה שגורם לי לעדכן את השאלה הראשית "האם בין 2 מעבדים שעובדים בנצילות של פחות מ20% יכולים להיות הבדלים במהירות העיבוד?"

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

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

עכשיו אני חושב שהבנתי את כוונתך.

אז הטורבו בוסט יעזור כשהנצילות מתחילה לעלות מעל 80% כדי שהמעבד ימשיך לעבוד ביכולות המקסימליות שלו.

נערך על-ידי abatiah

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

למידת דברים חדשים אף פעם לא תזיק, יכול להיות שבעתיד תגלה שהיה שווה את זה ;)

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

העלייה האקספוננציאלית קיימת במודל התיאורטי, ולא רק במערכת מציאותית.

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

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

עכשיו כשהבנו את זה, אפשר להבין אינטואיטיבית למה זה קורה:

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

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

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

גרף אופייני של זמן ההמתנה הממוצע כתלות בנצילות נראה ככה:

G1345_Queuing-Delay.jpg

רביעית, הנושא מעניין ותודה על ההכוונה, מה שגורם לי לעדכן את השאלה הראשית "האם בין 2 מעבדים שעובדים בנצילות של פחות מ20% יכולים להיות הבדלים במהירות העיבוד?"

השאלה הזאת קצת בעייתית אבל אני אנסה לענות בכל זאת.

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

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

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

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

עכשיו כשהבנו את זה, אפשר להבין אינטואיטיבית למה זה קורה:

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

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

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

גרף אופייני של זמן ההמתנה הממוצע כתלות בנצילות נראה ככה:

אאאאאה.

זמן השירות הוא גם לא קבוע- אוקיי זה כבר מסביר יותר. האמת היא שעוד לא תפסתי את זה באופן אינטואיטיבי לגבי הסיבה לגדילה המעריכית ולמה דווקא 80% היא נקודת הסינגולריות. הסרט שאני רואה במוחי הוא כזה:

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

ל100 נותני שירות (כל עובד משרת לקוח אחד בשניה) מגיע גל של 50 לקוחות שמעסיקים 50 משרתים, בשניה הבאה מגיע גל של 50 נוספים כאשר 25 מהקודמים מתפנים ועכשיו 75 שרתים עסוקים, בשניה הבאה 50 מתפנים ו25 נשארים. אם לפתע הגל הבא עולה ל80 לקוחות אז כשהם מגיעים- 5 יצטרכו לחכות בתור עד שה25 מהגל הקודם ישורתו. ואם גם כאן חצי מהלקוחות ישארו יותר זמן אז זה יהיה 40 נקודות אדומות שלעברם נע הגל הבא של 80 נקודות וכך 20 יצטרכו לחכות.

כמובן, כמו שאמרתי, זה עדיין לא אינטואיטיבי (כלומר את הסרט בניתי לפי התסריט שנאמר לי ולא לפי הארה פנימית) ולא ברור לי למה גם ב 50 אחוז לא יכול להיות שהלקוחות לא יתעקבו כולם למשך 4 נחשולים כך ש 100 מהם ישארו בתור, או לחילופין מ80 לקוחות רק 20 יעוקבו...

אבל את הבסיס או לפחות את השביל שדרכו ניתן לחפש הלאה- נתת.

תודה רבה!!! :cheesy::xyxthumbs:

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

אה כן- אתה יודע במקרה אם הTASK MANAGER בווינדוס מראה את הקפיצות הללו ל100% שנגרמות בגלל 80% פעילות- או שזה עובד שם על ממוצעים?

למידת דברים חדשים אף פעם לא תזיק, יכול להיות שבעתיד תגלה שהיה שווה את זה ;)

:D

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

השאלה הזאת קצת בעייתית אבל אני אנסה לענות בכל זאת.

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

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

חשבתי שאולי משתנים כמו IPC, מהירות שעון או דברים אחרים שאני לא יודע עליהם ישנו כאן. ז"א לדוגמא מעבד א' I3 שפועל ב 1% מול מעבד ב' פנטיום D שפועל ב 20%, אבל אתה אומר שזה לא משנה כי במילא איטיות הטיפול בפקודה תפוצה ע"י יותר משרתים.

תודה!!!

:xyxthumbs:

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

דיונים חדשים