هسته پردازش

دسته بندی: 

تابحال به این موضوع فکر کرده‌ای که برای انجام امور مختلف به چه تعداد هسته پردازنده نیاز دارید؟ پاسخ به این سوال قطعا ساده نیست.

تابحال به این موضوع فکر کرده‌ای که برای انجام امور مختلف به چه تعداد هسته پردازنده نیاز دارید؟ پاسخ به این سوال قطعا ساده نیست. حتی ارزان‌ترین پردازنده‌های Celeron نیز دست کم دو هسته دارند و به خوبی می‌توانند توان مورد نیاز لپ‌تاپ‌های سبک را تامین نمایند. اما در سوی دیگر اگر روی پروژه تحلیل داده سنگینی کار می‌کنید که در آن زمان حکم پول را دارد هرچه تعداد هسته‌ها بیشتر باشد بهتر است.

برای اغلب ما این سوال همواره وجود دارد که آیا داشتن هسته‌های بیشتر در پردازنده ارزش پرداخت پول بیشتر را دارد یا خیر.

یک پردازنده دسکتاپی Core i3 با دو هسته فیزیکی حدودا ۱۶۰ دلار آب می‌خورد در حالی که برای یک پردازنده Core i7 با چهار هسته با چیپ AMD Ryzen 7 هشت هسته‌ای باید دست کم دوبرابر این میزان را بپردازید. اکر هم به گروه محصولات Extreme علاقمند باشید باید دست کم هزار دلار را برای خرید پردازنده ۱۸ هسته‌ای اینتل Core i9 7980XE بپردازید، لذا مرزبندی میان انتخاب‌ها کاری بس دشوار است.

 

البته بهتر است امید خود را از دست ندهید. شاید نتوان مشخص کرد که شما به عنوان یک کاربر به چه تعداد هسته پردازشی نیاز دارید اما می‌توانید به مزایای وجود هسته‌های بیشتر و تکنولوژی Hyper Threading اشاره نماییم تا راحت‌تر بتوانید برای انتخاب یک پردازنده هشت هسته‌ای تصمیم‌گیری نمایید و حتی مطمئن شوید که این کار ارزش پرداخت هزینه را ندارد.

 

چه تست‌هایی را انجام می‌دهیم؟

من برای این کار مجموعه‌ای از تست‌های بنچمارک را روی یک سیستم مشخص با هسته‌های پردازشی متفاوت انجام دادم؛ در واقع هربار صرفا پردازنده را عوض می‌کردم اما با دیگر بخش‌های سیستم کاری نداشتم.

 البته باید اشاره کنم که این کار دقیقا عملکرد چیپست‌ها را شبیه‌سازی نمی‌کند: مدل‌های دو هسته‌ای عموما سرعت کلاک پایین‌تری دارند و نسبت به انواع چهار هسته‌ای به کش آنبورد کمتری نیاز دارند. با این حال، در این روش مزایای هسته‌های بیشتر دراین روش به خوبی مشخص نمی‌شوند چراکه تست ما تحت تاثیر دیگر متغیرهاست.

 

خوشبختانه انجام این تست روی یک پی‌سی مدرن بسیار ساده است: اغلب اینترفیس‌های BIOS به شما امکان می‌دهند به صورت انتخابی برخی هسته‌ها را غیرفعال نموده یا هر زمان که خواستید قابلیت Hyper-Threading را خاموش یا روشن نمایید. بنابراین می‌توانید تست عملکرد تک هسته‌ای، دو هسته‌ای، چهار هسته‌ای و هشت هسته‌ای را روی یک پردازنده دسکتاپی Core i7 انجام دهید.

اما پلتفرمی که برای انجام این تست‌ها انتخاب شد هم کامپیوتر خود من بود: سیستم مبتنی بر ویندوز ۱۰ که از پردازنده Core i7-3770K بهره می‌برد. البته CPU من چندسالی قدمت دارد و از نوع آیوی بریج ۲۲ نانومتری بود که فاقد برخی پیچیدگی های سی کیبی لیک ۱۴ نانومتری است. اما مشکلی از این بابت وجود ندارد چراکه اصل اساسی رایانش چند هسته‌ای و چند ریسمانی سال‌هاست که تغییر نکرده است. اگر بخواهیم به زبان ساده بگوییم تمامی هسته‌ها به لحاظ الکترونیکی شبیه به هم هستند و ویندوز و CPU نیز با هم کار می‌کنند تا ریسمان‌ها را به را به هسته‌های پردازشی اختصاص دهند. اگر متوجه شدید که با تغییر دادن شمار هسته‌های پردازشی (در نوع آیوی بریج) از دو عدد به چهار عدد برنامه‌های‌تان با سرعت دوبرابری اجرا می‌شوند آنگاه می‌توانید انتظار داشته باشید که در نوع کیبی لیک و نسل‌های میانی‌اش نیز همین تغییر رخ دهد.

و نکته جالب اینکه نتایج باید در نسل‌های آتی این پردازنده‌ها هم به همین شکل باشد.. به همین خاطر انتظار می‌رود که AMD و اینتل نیز بالاخره روزی به معماری ناهمگون مشابه به معماری big.LITTLE متعلق به شرکت ARM روی بیاورند و آن را در پردازنده‌های مخصوص اسمارت فون پیاده سازی نمایند. در این معماری چند هسته کم مصرف در کنار هسته‌های پرمصرفی قرار دارند که کارهای سنگین درون پردازنده را بر عهده می‌گیرند و عموما زمانی فعال می‌شوند که هسته‌های دیگر به تنهایی توانایی انجام یک تسک را نداشته باشند. اما مهاجرت به این معماری می‌تواند فرایندی دشوار و زمان‌بر باشد؛ لذا انتظار میرود که پلتفرم‌های ویندوزی دست کم تا آینده نزدیک همچنان از همان طراحی همگن در پردازنده‌های خود بهره بگیرند.

من با استفاده از سخت‌افزاری که در اختیار داشتم تصمیم گرفتم سه تست مختلف را برای تعیین نقش مهیا بودن هسته‌ها در عملکرد سیستم مورد استفاده قرار دهم. هرچند وقتی پردازنده سیستم شما تعداد زیادی هسته داشته باشد این مساله تداخل چندانی در تجربه کاربری شما ایجاد نمی‌کند.

نکته دیگر اینکه تمامی این فرایندها نیازمند صرف منابع هستند و من این مساله را زمانی متوجه شدم که سیستم خود را در وضعیت عملکرد تک هسته‌ای وتک ریسمانی قرار دادم. بعد از ریبوت کردن متوجه شدم که سرعت سیستم به میزان قابل توجهی بالا رفته اما خود سیستم کاملا غیرپاسخگو بود. البته همچنان می‌توانستم ماوس را به اطراف حرکت دهم اما با کلیک کردن روی دکمه‌ها و کلیدها اتفاقی نمی‌افتاد.

وقتی در نهایت موفق شدم تسک منیجر را باز کنم تعریف بسیار ساده‌ای برایم نمایش داده شد: تمامی فرایندهای ویندوز تلاش داشتند که به صورت همزمان آغاز شوند و CPU به صورت صد در صدی پر شده بود. اطلاعاتی هم که در بخش Performance Monitor نمایش داده می‌شد حکایت از آن داشت که حتی بدون مداخله من نیز دست کم به دو دقیقه زمان نیاز بود تا سیستم به وضعیت عادی برگردد و البته حتی آن زمان نیز CPU تنها ۵۰ درصد پاسخگو بود. اگر تا بحال تلاش کرده باشید سیستم را در وضعیت تک هسته‌ای قرار دهید احتمالا متوجه شده‌اید که اپلیکیشن‌ها برای به دست آوردن منابع با یکدیگر می‌جنگند.

در این موارد بهتر است وضعیت Hyper-Threading را فعال کنید چراکه با کمک یک پردازنده مجازی بخش موسوم به گزارشات پر شدگی پردازنده یا Logjam در کمتر از نصف این زمان پاکسازی می‌شود هرچند حتی در اینصورت هم باز به مدت زمانی نیاز است تا کامپیوتر در وضعیت عملیاتی‌اش قرار بگیرد.

بعد از این مرحله میزان مصرف منابع توسط CPU باز هم کاهش می‌یابد هرچند بهتر است که زیاد هم به آن اعتماد نکنید:  ویندوز هسته‌های مجازی را به سان هسته‌های واقعی می‌بیند.

برای آنکه درک بهتری از تفاوت‌های میان هسته‌های واقعی و مجازی پیدا کنید بهتر است نگاهی به جدول عملکرد سیستم در وضعیت دو هسته‌ای و غیر Hyper-Threaded داشته باشید. در واقع اگر این روش به خوبی در اختیار داشتن یک هسته فیزیکی دوم بود باید شاهد بهبود عملکرد سیستم هم می‌بودیم.

البته این بدان معنا نیست که استفاده از مد Hyper-Threaded ارزش چندانی ندارد. بلکه در وضعیت مذکور و البته همزمان با فعالیت دو هسته CPU بالاخره توانست کلیه فرایندهای مربوط به بالا آمدن ویندوز را مدیریت نماید: اینکه استفاده از CPU تنها برای مدتی کوتاه به صد درصد برسد نشانگر آن است که سیستم تقریبا از پاسخگویی لازم برخوردار بوده. این را در واقع حداقل امکانات عملیاتی برای سیستم می‌خوانیم و اینکه پیکره‌بندی دو هسته ای و چهار ریسمانی به صورت استاندارد برای پردازنده‌های Core i3 تعریف میشود ابدا تصادفی نیست.

سوال اینجاست: آیا با مهاجرت به یک چیپ چهار هسته‌ای مزایای زیادی نصیب‌مان می‌شود؟ همانطور که گراف نشان می‌دهد به محض آنکه پیکره‌بندی چهار هسته‌ای برای سیستم فعال شد کامپیوتر از انجام وظایف ابتدایی خود برای استارتاپ باز ماند و امتیاز ۹۰ برای CPU ثبت گردید. در واقع تفاوت این بود که این بار فضای بیشتری آزاد شده است و به غیر از حجم کاری سنگینی که در ابتدای امر بر سیستم وارد می‌شود بعد از نمایان شدن دسکتاپ تقریبا همیشه یک هسته غیرفعال خواهید داشت؛ این یعنی می‌توانید اپلیکیشن‌ها را باز کنید و بدون آنکه متوجه اجرای برخی فرایندها در پس زمینه باشید به کارتان برسید. این در واقع همان پیکره‌بندی است که پردازنده های دسکتاپی Core i5 مورد استفاده قرار می‌دهند در حالی که مدل‌های Core i7 فرایند Hyper-Threading را هم به هشت هسته منطقی خود اضافه می‌کنند و در این موارد CPU هیچگاه به ظرفیت کامل و صد درصدی خود نزدیک هم نمی‌شود.

 

تست دوم؛ بنچمارک‌های دسکتاپی

مجموعه تست‌های بنچمارک دسکتاپی PC&Tech Authority دربرگیرنده سه تست مختلف می‌شود. نخست تست ویرایش عکس که قبل از اکسپورت کردن عکس‌ها به فرمت جی‌پگ از ابزار رایگان ImageMagick برای پیاده‌سازی اصلاحات رنگی و کنتراستی مختلف روی یک عکس بزرگ ۳۵ مگاپیکسلی با فرمت TIFF استفاده ‌می‌کند. در مرحله بعدی تس ویدیویی از هندبریک برای اجرای تغییرات مختلف روی یک فایل ویدیویی 1080p استفاده می‌کند و نتیجه کار را با فرمت H.264 در اختیارتان قرار می‌دهد. تست سوم نیز به مالتی‌تسکینگ بر می‌گردد و هر دوی اینها را به صورت یکجا انجام می‌دهد، ضمن آنکه یک ویدیوی  1080p را هم اجرا می‌کند. نتیجه نهایی را می‌توان برآیندی از هر سه این موارد دانست.

درست مانند مراحل قبلی این تست را با یک، دو و چهار هسته انجام دادیم و هربار نیز قابلیت Hyper-Threading را فعال و غیرفعال کردیم. نتایج این بنچمارک را می‌توانید در گراف روبرو مشاهده نمایید.

با کمی تامل در مورد نتایج می‌توانید به اطلاعات خوبی دست پیدا کنید. روشن است که در تست مالتی‌تسکینگ دست کم سه هسته فعال حضور دارند و به لطف نقدهای صورت گرفته روی پردازنده‌های قدرتمند نظیر رایزن ۷ با هشت هسته می‌دانیم که مزیت‌های این نوع پردازنده‌ها به این نقطه ختم نمی‌شود. در واقع هرچه به تعداد هسته‌ها اضافه می‌شود عملکرد پردازنده‌ها نیز بهتر میشود. از آنجا که برای پخش ویدیوهای HD به یک هسته نیاز است با یک حساب و کتاب ساده در خواهید یافت که یکی از دو فرایند دیگر (یعنی تست تصویر و یا تست ویدیو) نیازمند یک هسته دیگر خواهد بود.

اما با گذار از یک پردازنده دو هسته‌ای به چهار هسته‌ای متوجه شدیم که عملکرد سیستم در برنامه هندبریک دچار بهبود ۹۱ درصدی شده است. اما آنچه اطلاعات کمتری در رابطه‌اش داریم اینکه برنامه ImageMagick از فریم ورک OpenMP استفاده می‌کند که به آن امکان می‌دهد بار کاری‌اش را روی هسته‌ها تقسیم نماید. لذا در این بخش کمترین میزان بهبود عملکردی را شاهد بود. با افزایش دادن شمار هسته‌ها از دو عدد به چهار عدد، عملکرد سیستم تنها ۲۵ درصد بهبود پیدا کرد.

لذا از نظر عملکرد باید بگوییم که هرچه هسته‌ها بیشتر شوند عملکرد نیز بهبود می‌یابد هرچند این بهبود تا حدود زیادی به نوع اپلیکیشنی بستگی دارد که اجرا می‌کنید. زمانی که سیستم شما تنها یک تسک را انجام می‌دهد شاید تغییر از دو هسته به یک هسته تفاوت محسوسی را ایجاد نکند. اما اگر بخواهید چند کار سنگین را به پردازنده خود محول نمایید آنگاه مزایای افزایش شمار هسته‌ها بیشتر برایتان آشکار خواهند شد. در فرایند مالتی تسکینگ سیستم من از امتیاز ۲۰ در وضعیت دو هسته‌ای به ۷۴ در وضعیت چهارهسته‌ای دست یافت و زمانی که فناوری Hyper-Threading آن را فعال کردم این امتیاز به ۸۹ رسید. این در واقع بهبودی معادل با ۴۴۵ درصد را در عملکرد نشان می‌دهد.

نکته آخر اینکه گرچه نمی‌توانید ویندوز را به صورت واقعی روی یک پردازنده تک هسته‌ای اجرا نمایید، اینکه بنچمارک‌های مدرنی نظیر آنچه دیدید چطور توانستند این عملکرد را اندازه‌گیری کنند در نوع خود بسیار جالب توجه بود. امتیازهای خام اما زیاد هم بد نیستند و کامپیوترهای مبتنی بر پردازنده‌های اتم نیز عملکردی مشابه به این را از خود به نمایش می‌گذارند. در این تست نیز گرچه پلیر پخش ویدیوهای HD در حال اجرا بود اما سیستم به کلی هنگ کرده بود و هر چند دقیقه یک بار از یک فریم مخدوش به فریم دیگر می‌رفت.

نکته دیگر آنکه با روشن کردن Hyper Threadig اوضاع از این هم بدتر شد. البته تست‌های ویدیویی و عکسی به واسطه فعال شدن هسته‌های مجازی بهتر انجام شدند با این همه تلاش برای اجرای همگی‌شان به صورت همزمان دشوار بود.

در واقع در تعدادی از این تست‌ها فعال شدن هسته‌های بیشتری تغییری را در وضعیت به وجود نیاورد. CPU سیستم من نیز حتی در پایین‌ترین پیکره‌بندی اش همان نرخ ۳۰ فریم بر ثانیه را در زمان پخش ویدیوهای 1080p حفظ نمود، در نتیجه با اضافه کردن تعداد هسته‌های بیشتری تغییری در این مساله ایجاد نمی‌شد.

 

نکته دیگر آنکه تست‌های ساده دیگری نظیر برش و چسباندن نیز هیچ بهبودی را نشان نمی‌دادند: به سختی می‌توان تصور کرد که افزوده شدن بر شمار هسته‌ها چه تاثیری بر بهبود فرایندهای ساده‌ای از این دست خواهد داشت.

اما برخلاف انتظارات در تست‌های «ایجاد محتوای دیجیتالی» افزوده شدن بر شمار هسته‌ها هیچ نقشی در بهبود عملکرد سیستم نداشت. علاوه بر این، بعد از بررسی‌ها مشخص شد که این ماژول از OpenCL استفاده می‌کند و در نتیجه تست‌های انجام شده به جای آنکه روی پردازنده انجام شوند روی GPU اجرا می‌شدند. اما نکته اینجاست که در دیگر تست‌های مبتنی بر  OpenCL بعد از اضافه شدن بر تعداد هسته‌ها بهبود اندکی در عملکرد سیستم مشاهده شد. اما حتی اگر GPU را هدف تست‌هایتان قرار داده باشید باز هم CPU نقش پشتیبانی را برای آن اجرا خواهد کرد تا مطمئن شود که تسک‌های مبتنی بر GPU به بهترین شکل ممکن اجرا می‌شوند.

برای روشن شدن مساله من ۵ تست مختلف PCMark را انتخاب کردم. همانطور که در نمودارهای بالا می‌بینید عدد ۱۰۰ معرف عملکرد دستگاه در وضعیت چهار هسته‌ای و همزمان با فعال بودن قابلیت Hyper-Threading است.

 

اما با نگاه کردن به این نمودارها چند نکته در نظرتان روشن می‌شود: برای مثال متوجه خواهید شد که هیچ رقمی برای وضعیت‌های تک‌هسته‌ای و تک ریسمانی در اختیارتان قرار داده نشده است: در واقع وقتی پردازنده چنین پیکره بندی داشته باشد بنچکارک اصلا باز نمی‌شود.

علاوه بر این از روی این تست‌ها می‌توانید دریابید که با افزایش تعداد هسته‌ها از دو به چهار شاهد بهبود محسوسی در عملکرد سیستم خود خواهید بود: به صورت میانگین عملکرد یک پردازنده Core i3 حدودا ۵ درصد ضعیف‌تر از نوع چهار هسته‌ای است و هفت درصد هم ضعیف‌تر از زمانی خواهد بود که تکنولوژی Hyper Threading در آن فعال شده باشد. اما تستی که کمترین بهره را از بالا رفتن تعداد هسته‌ها داشته Copy data and Compute 2 نام دارد؛ یک عملیات ساده اکسل که با زیاد شدن تعداد هسته‌ها تغییری در سرعت اجرایش مشاهده نخواهید کرد. نکته عجیب در این باره آنکه وقتی از پردازنده دو هسته‌ای همراه با تکنولوژی Hyper Threading استفاده کردیم سرعت عملیات به مراتب پایین‌تر از زمانی بود که این فناوری غیرفعال شده بود. در واقع درست مانند بنچمارک مالتی تسکینگ تکنولوژی هسته مجازی اینتل ظاهرا در عملکرد هرچیزی اختلال ایجاد می‌کرد. البته تفاوت اندک بود و انجام فرایندها حدودا یک پنجم ثانیه کندتر انجام می‌گرفت.

اما تسکی که بیشترین بهره را از افزایش تعداد هسته‌ها برد Unsharp Mask 1 بود که البته جای تعجب هم ندارد. عملیات‌های گرافیکی را به سادگی می‌توان روی ریسمان‌های مختلف تقسیم کرد و به همین خاطر است که کارت‌های گرافیکی قدرتمند از معماری‌های موازی بهره می‌گیرند.

اما حتی در این صورت هم تست Video 2160p VP9 نتایج فوق‌العاده‌ای را به همراه داشت. در این تست یک ویدیوی 4K به فرمت فاقد امتیاز گوگل به نام VP9 انکد شد و با وجود آنکه CPU کامپیوتر من در تست‌های مختلف PCMark به خوبی عمل می‌کند در این تست دچار مشکل شد و صرفا توانست به نرخ ۳۰ فریم بر ثانیه با چهار هسته فعال دست پیدا کند. اما این امر هم دلایل خود را دارد:  نسل سوم پردازنده های آیوی بریج اینتل سخت‌افزار خاصی برای دی‌کد کردن ویدیوهای H.264 دارد اما Vp9 باید به صورت دستی از طریق CPU پردازش شود.

پردازنده‌های نسل ششم و هفتم اینتل که تحت عنوان اسکای لیک و کیبی لیک شناخته می‌شوند دربرگیرنده سخت‌افزار اختصاصی برای ویدیوهای VP9 هستند. بنابراین اگر پردازنده شما کاملا به روز است باید بتوانید ویدیوهای 4K VP9 را بدون وارد آمدن فشار زیاد به هسته‌ها اجرا نمایید.

در همین رابطه باید اشاره کنیم که پردازنده‌های رایزن AMD هیچگونه سخت‌افزار اختصاصی برای پردازش گرافیکی ندارند. با این حال این یعنی باید از یک کارت گرافیک اختصاصی استفاده نمایید که به احتمال زیاد هم در برگیرنده انجین دیکدینگ مختص به خود است.

از آنجا که همه مدل‌های رایزن دست کم چهار هسته دارند از توانایی کامل برای دیکد کردن دستی ویدیوهای 4K برخودارند.

نتیجه گیری

با در نظر داشتن تست‌های انجام گرفته و نتایج آنها حالا دیگر احتمالا خوب می‌دانید که چه تعداد هسته‌ برای انجام فعالیت‌های شما کافی خواهند بود. همانطور که پیشتر گفتیم پاسخ دادن به این سوال ابدا ساده نیست.

حتی در این صورت ما چندین اصل کلی را برایتان برشمردیم که می‌توانید با استفاده از آنها انتخاب بهتری داشته باشید. روشن است که مزایای افزایش تعداد هسته‌ها از یک تسک به تسک دیگر متفاوت خواهند بود بنابراین اگر بخش اعظمی از زمان خود را صرف پردازش کلمات یا تماشای ویدیو می‌کنید آنگاه پیکره‌بندی Core i3 بهترین گزینه برای شما خواهد بود.

به صورت کلی اما در اختیار داشتن تعداد هسته‌های بیشتر به نفع شما خواهد بود حتی اگر نرم‌افزار مورد استفاده‌تان برای محیط‌های چند ریسمانی طراحی نشده باشد.

این روزها تعداد نرم‌افزارهای در حال اجرا در پس‌زمینه ویندوز آنقدر زیاد است که فضای پردازشی در بالاترین میزان خود قرار دارد. و در مورد بنچمارک ویرایش عکس هم باید بگوییم حتی برنامه‌هایی که نیازمند هسته‌های مختلف برای اجرا نیستند هم به گونه‌ای نوشته‌شده‌اند که در زمان زیاد شدن تعداد هسته‌های فعال بهبودهایی را به لحاظ عملکردی دریافت نمایند.

علاوه بر این، به نظر می‌رسد که توسعه‌دهندگان بیشتر و بیشتر به منابع چند هسته‌ای وابسته خواهند شد. تاریخ نشان داده که هرچه مشخصات فنی یک کامپیوتر بهتر شده برنامه‌ها نیز به منابع بیشتری برای اجرا شدن نیاز پیدا کرده‌اند. با در نظر داشتن اینکه پردازنده‌های رایزن دارای هشت هسته پردازشی هستند تنها زمان کوتاهی طول خواهد کشید که پردازنده‌های دو هسته‌ای نیز مانند انواع تک هسته‌ای از گردونه خارج شوند.

البته منظور این نیست که باید تا آنجا که می‌توانید پردازنده‌هایی با تعداد پردازنده بیشتر را خریداری نمایید. اما اگر قصد پیکره‌بندی کامپیوتری را دارید صرفا تسک‌های کلی‌تان را به انجام برساند صرف پول و خرید سیستمی با پردازنده چهار هسته‌ای یا بیشتر قطعا می‌تواند طول عمر آن را بالا ببرد.

 

 

 

افزودن دیدگاه جدید