نوشته شده توسط
SajjadKhati
در 1 نخ در 1 پروسه ، هم برای وقتی که Turbo Boost Clock فعال هست (نتیجه ی زمان اجرای کد ،23.519 ثانیه شد) (در این حالت ، میانگین کلاک پردازنده بین 3.33 تا 3.35 بود که حالا هی بالا و پایین تر میرفت اما میانگین اش این بود) و هم در زمانی که Turbo Boost Clock غیر فعال هست (نتیجه ی زمان اجرای کد ، 24.687 ثانیه شد) (در این حالت ، کلاک پردازنده ، 3.19 بود) را مقایسه کنید ، میبینید که اختلاف کلاک ها ، تقریبا 100 مگاهرتز ، یعنی تقریبا 1.047 برابر ، کلاک شون با هم اختلاف داشت و تفاوت زمانی شون هم 1.048 برابر هست .
بجز این ، تفاوت را بیشتر در پردازنده هایی بهتر میشه متوجه شد که اختلاف turbo boost clock و کلاک پایه شون ، زیاد و زیادتر باشه (حداقل 400 مگاهرتز یا بیشتر) . معمولا لپتاپ ها اختلاف شون خیلی زیاد تر هه .
این داده های شما است :
/// Turbo Boost: OFF
/// 1 thread 24687 ms
/// 2 threads 24649 ms, 24748 ms
/// 3 threads 25668 ms, 25593 ms 25662 ms
/// 4 threads 26048 ms, 25953 ms 26122 ms 26231 ms
///
/// 1+1 threads 24723 ms, 24695 ms
/// 2+2 threads 25907 ms, 25879 ms, 25886 ms, 26217 ms
///
/// Turbo Boost: ON
/// 1 thread 23519 ms
/// 2 threads 23635 ms, 23646 ms
/// 3 threads 24339 ms, 24291 ms 24319 ms
/// 4 threads 25278 ms, 25186 ms 25320 ms 25339 ms
///
/// 1+1 threads 24017 ms, 23953 ms
/// 2+2 threads 25610 ms, 25504 ms, 25425 ms, 25767 ms
طبق گفته شما وقتی یک هسته فعالیتش زیاد میشه Turbo Boost فرکانس هسته رو بالاتر میبره و این فرکانس با افزایش فشار روی سایر هسته ها کم میشه و دلیل کاهش سرعت اجرای چند نخ نسبت به یک نخ این Turbo Boost ئه.
حالا شما Turbo Boost رو غیر فعال کردید که نشون بدید بدون اثر این Turbo Boost اجرای چند هسته ای کاهش سرعتی که با Turbo Boost فعال داشتید ندارن.
ولی زمان اجرای تک نخی 24687 تون در 2+2 نخ رسیده به 25907 و 25879 و 25886 و 26217 میلی ثانیه. کند تر نشده؟
طبق گفته شما این Turbo Boost بود که فرکانس هسته پایین تری رو برای اجرای چند نخی اعمال میکرد و منجر به کندی اجرای چند نخی نسبت به تک نخ شده بود. که غیر فعالش کردید تا تاثیر نذاره.
اجرای تک نخی با Turbo Boost غیر فعال چقدر بود؟ 24687 میلی ثانیه، وقتی 4 نخ رو اجرا کردید به چند رسید؟ جمعا 104354 میلی ثانیه، یعنی 5.68 درصد نخ های کند تری بودن :
100 * (24687 - (104354 / 4)) / 24687 = 5.68
با اجرای 3 نخی به چند رسید؟ حمعا 76923 میلی ثانیه، یعنی هسته ها 3.86 درصد کند تر شدن.
با احرای 2 + 2 نخی به چند رسید؟ جمعا 103889 میلی ثانیه، یعنی هسته ها 5.21 درصد کند تر شدن. چیزی هم در حلقه for کدتون نداشتید که بین شون مشترک باشه.
شما که مدعی هستید این نخ ها هر کدوم میتوانند در هسته مجزایی اجرا بشن و دیگه Turbo Boost هم تداخلی در محاسبات نداره دیگه برای کاهش کارایی شون چه دلیلی دارید؟